【花師小哲】面向一般大眾的神經(jīng)網(wǎng)絡(luò)科普(3)-CV圖像和其他
這篇來講講神經(jīng)網(wǎng)絡(luò)在CV(機(jī)器視覺)和圖像領(lǐng)域的應(yīng)用。會(huì)涉及到大家可能比較關(guān)注的圖像生成(但是只講圖像生成的一個(gè)祖宗,其他的我不太熟悉)。還會(huì)講講其他領(lǐng)域的應(yīng)用。
?

3.CV+圖像
3.1卷積CNN
卷積神經(jīng)網(wǎng)絡(luò)CNN是CV+圖像領(lǐng)域最重要的神經(jīng)網(wǎng)絡(luò)之一。

圖像不像是詞語,我們是可以把二維的圖像“攤平”成一維的數(shù)組進(jìn)行輸入的,但MLP的問題是我們一般認(rèn)為數(shù)據(jù)之間是沒有關(guān)系的,雖然隱層是會(huì)建立一些關(guān)系。和attention想法差不多,我們?yōu)槭裁床?span id="s0sssss00s" class="color-blue-01">顯式建立關(guān)系呢?
當(dāng)然,這種關(guān)系不能像attention那樣做,畢竟這樣關(guān)系的數(shù)量級(jí)就N^4了。萬幸的是,對(duì)人類視覺的研究表明人類是有“感受野”的,也就是人不僅會(huì)看一點(diǎn),而是會(huì)看一片。這樣我們就可以認(rèn)為每個(gè)像素點(diǎn)是和周圍的一些像素點(diǎn)是有關(guān)系的,為了計(jì)算這種關(guān)系,就引入了卷積:

卷積解釋起來很麻煩的,簡(jiǎn)單來說,我們想要讓輸入圖像和卷積核做一些運(yùn)算,實(shí)際上輸出的是“感受野”圖像,即我們把原始圖像的每個(gè)像素點(diǎn)和旁邊的像素做了一定的操作得到輸出。通常來說,輸出是會(huì)變小的。
這個(gè)操作具體怎么做是由卷積核決定的,卷積核是需要訓(xùn)練的。
?
CNN還涉及到池化等問題,這里不展開講,只需要了解CNN的思路是讓像素點(diǎn)建立和其他像素點(diǎn)之間的關(guān)系就可以了。
?
3.2圖像識(shí)別存在的問題
圖像識(shí)別存在的問題很多,這里主要講一個(gè)問題。這個(gè)問題實(shí)質(zhì)上能為其他一些問題產(chǎn)生一定的啟示,即神經(jīng)網(wǎng)絡(luò)到底是怎樣看圖像的。
看下面這張圖:

對(duì)于熊貓這個(gè)圖片,一開始神經(jīng)網(wǎng)絡(luò)表現(xiàn)得很好,認(rèn)為這張圖像是熊貓的概率是93%,但如果我們加一個(gè)很小的隨機(jī)噪聲,加上這個(gè)噪聲后,人是看不到這兩張圖像有什么差別的,但神經(jīng)網(wǎng)絡(luò)會(huì)識(shí)別錯(cuò)誤。
這也是我之前說過的,不要以人的思維去理解AI,對(duì)AI來說,圖像只是一些數(shù)字罷了。
?
3.3生成對(duì)抗網(wǎng)絡(luò)GAN
上面這個(gè)做法實(shí)際上是騙神經(jīng)網(wǎng)絡(luò),讓人來騙神經(jīng)網(wǎng)絡(luò)有點(diǎn)low,根據(jù)一切都可換成神經(jīng)網(wǎng)絡(luò)的思想,我們?yōu)楹尾?span id="s0sssss00s" class="color-blue-01">用神經(jīng)網(wǎng)絡(luò)來騙神經(jīng)網(wǎng)絡(luò)呢?于是就有了生成對(duì)抗網(wǎng)絡(luò)GAN。
GAN是非常經(jīng)典的生成圖像的模型,是圖像生成的老祖宗級(jí)別的存在。

GAN有兩個(gè)網(wǎng)絡(luò),一個(gè)是生成器Generator,另一個(gè)是判別器Discriminator。
生成器的輸入是隨機(jī)噪聲(目的是保證每次生成的圖像不一樣),生成的是圖像(假圖像),生成器的目的是為了生成像真圖像的圖像來騙過判別器;判別器的輸入是圖像,可以是假圖像,也可以是真圖像,判別器的目的就是判斷輸入圖像的真假。
一開始,生成器生成的圖像質(zhì)量比較低,判別器一下就能判別出來,隨著這兩個(gè)網(wǎng)絡(luò)進(jìn)行對(duì)抗,最終生成器能生成很多以假亂真的圖像。
?
4.神經(jīng)網(wǎng)絡(luò)與強(qiáng)化學(xué)習(xí)——PPO
強(qiáng)化學(xué)習(xí)也是很經(jīng)典的機(jī)器學(xué)習(xí)方法。

強(qiáng)化學(xué)習(xí)是說,我們有一個(gè)智能體(agent),它會(huì)根據(jù)一些策略生成一些動(dòng)作和環(huán)境(environment)進(jìn)行交互,根據(jù)環(huán)境的反饋改進(jìn)智能體的策略。
沒錯(cuò),把神經(jīng)網(wǎng)絡(luò)替換進(jìn)去,這就是PPO(不展開講)
?
5.圖神經(jīng)網(wǎng)絡(luò)
神經(jīng)網(wǎng)絡(luò)不是黑盒嘛,不是沒有知識(shí)嘛,那么什么是有知識(shí)的呢?沒錯(cuò),知識(shí)圖譜:

知識(shí)圖譜實(shí)際上可以看做是概念形成的圖。
圖神經(jīng)網(wǎng)絡(luò)的思想就是直接在圖上跑神經(jīng)網(wǎng)絡(luò)。
方法還是很多的,例如我們可以在圖上用類似于卷積的方式,或者把每個(gè)節(jié)點(diǎn)的邊的信息做embedding加入到節(jié)點(diǎn)中。
attention實(shí)際上就等價(jià)于全連接圖上的圖神經(jīng)網(wǎng)絡(luò)。
圖神經(jīng)網(wǎng)絡(luò)還算是很新興的技術(shù),但可能是神經(jīng)網(wǎng)絡(luò)一條很好的出路。
?
6.表格領(lǐng)域
雖然神經(jīng)網(wǎng)絡(luò)看上去很強(qiáng)大,但仍然有些領(lǐng)域很難啃下來,一個(gè)領(lǐng)域就是表格領(lǐng)域,也就是常說的“xgboost is all you need”的領(lǐng)域。
那么在表格領(lǐng)域到底是誰占據(jù)霸主地位呢?就是各種樹模型,例如很基礎(chǔ)的樹模型——決策樹:

決策樹就是根據(jù)特征進(jìn)行選擇,就是這樣一個(gè)看上去比神經(jīng)網(wǎng)絡(luò)還要簡(jiǎn)單的方法確實(shí)非常強(qiáng)大,又有可解釋性。
一個(gè)可能的原因是,我們制作表格不是隨便搜集數(shù)據(jù)的,屬性選擇本身就有很多人類經(jīng)驗(yàn),所以樹模型就很強(qiáng)。
當(dāng)然,并不是說神經(jīng)網(wǎng)絡(luò)不能在表格領(lǐng)域獲得更好的性能,而是神經(jīng)網(wǎng)絡(luò)在訓(xùn)練時(shí)間、可解釋性、使用方便性等方面都被樹模型吊打,性能得到的提升也沒有特別大,那么為什么不選擇方便好用的樹模型呢?
?

這樣就簡(jiǎn)單過了一下,有很多都沒有涉及到,但也能夠幫助大家更好地理解神經(jīng)網(wǎng)絡(luò)。