上節(jié)課,我們講了如何為卷積網(wǎng)絡(luò)構(gòu)建一個卷積層。今天我們看一個深度卷積神經(jīng)網(wǎng)絡(luò)的具體示例,順便練習(xí)一下我們上節(jié)課所學(xué)的標(biāo)記法。
假設(shè)你有一張圖片,你想做圖片分類或圖片識別,把這張圖片輸入定義為x,然后辨別圖片中有沒有貓,用0或1表示,這是一個分類問題,我們來構(gòu)建適用于這項任務(wù)的卷積神經(jīng)網(wǎng)絡(luò)。針對這個示例,我用了一張比較小的圖片,大小是39×39×3,這樣設(shè)定可以使其中一些數(shù)字效果更好。所以n_H^([0])=n_W^([0]),即高度和寬度都等于39,n_c^([0])=3,即0層的通道數(shù)為3。
假設(shè)第一層我們用一個3×3的過濾器來提取特征,那么f^([1])=3,因為過濾器時3×3的矩陣。s^([1])=1,p^([1])=0,所以高度和寬度使用same卷積。
如果有10個過濾器,神經(jīng)網(wǎng)絡(luò)下一層的激活值為37×37×10,寫10是因為我們用了10個過濾器,37是公式(n+2p-f)/s+1的計算結(jié)果,也就是(39+0-3)/1+1=37,所以輸出是37×37,它是一個vaild卷積,這是輸出結(jié)果的大小。第一層標(biāo)記為n_H^([1])=n_W^([1])=37,n_c^([1])=10,n_c^([1])等于第一層中過濾器的個數(shù),這(37×37×10)是第一層激活值的維度。
假設(shè)還有另外一個卷積層,這次我們采用的過濾器是5×5的矩陣。在標(biāo)記法中,神經(jīng)網(wǎng)絡(luò)下一層的f=5,即f^[2] =5步幅為2,即s^[2] =2。padding為0,即p^[2] =0,且有20個過濾器。所以其輸出結(jié)果會是一張新圖像,這次的輸出結(jié)果為17×17×20,因為步幅是2,維度縮小得很快,大小從37×37減小到17×17,減小了一半還多,過濾器是20個,所以通道數(shù)也是20,17×17×20即激活值a^[2] 的維度。因此n_H^[2] =n_W^[2] =17,n_c^[2] =20。
我們來構(gòu)建最后一個卷積層,假設(shè)過濾器還是5×5,步幅為2,即f^[2] =5,s^[3] =2,計算過程我跳過了,最后輸出為7×7×40,假設(shè)使用了40個過濾器。padding為0,40個過濾器,最后結(jié)果為7×7×40。
到此,這張39×39×3的輸入圖像就處理完畢了,為圖片提取了7×7×40個特征,計算出來就是1960個特征。然后對該卷積進行處理,可以將其平滑或展開成1960個單元。平滑處理后可以輸出一個向量,其填充內(nèi)容是logistic回歸單元還是softmax回歸單元,完全取決于我們是想識圖片上有沒有貓,還是想識別K種不同對象中的一種,用^y表示最終神經(jīng)網(wǎng)絡(luò)的預(yù)測輸出。明確一點,最后這一步是處理所有數(shù)字,即全部的1960個數(shù)字,把它們展開成一個很長的向量。為了預(yù)測最終的輸出結(jié)果,我們把這個長向量填充到softmax回歸函數(shù)中。
這是卷積神經(jīng)網(wǎng)絡(luò)的一個典型范例,設(shè)計卷積神經(jīng)網(wǎng)絡(luò)時,確定這些超參數(shù)比較費工夫。要決定過濾器的大小、步幅、padding以及使用多少個過濾器。這周和下周,我會針對選擇參數(shù)的問題提供一些建議和指導(dǎo)。
而這節(jié)課你要掌握的一點是,隨著神經(jīng)網(wǎng)絡(luò)計算深度不斷加深,通常開始時的圖像也要更大一些,初始值為39×39,高度和寬度會在一段時間內(nèi)保持一致,然后隨著網(wǎng)絡(luò)深度的加深而逐漸減小,從39到37,再到17,最后到7。而通道數(shù)量在增加,從3到10,再到20,最后到40。在許多其它卷積神經(jīng)網(wǎng)絡(luò)中,你也可以看到這種趨勢。關(guān)于如何確定這些參數(shù),后面課上我會更詳細(xì)講解,這是我們講的第一個卷積神經(jīng)網(wǎng)絡(luò)示例。
一個典型的卷積神經(jīng)網(wǎng)絡(luò)通常有三層,一個是卷積層,我們常常用Conv來標(biāo)注。上一個例子,我用的就是CONV。還有兩種常見類型的層,我們留在后兩節(jié)課講。一個是池化層,我們稱之為POOL。最后一個是全連接層,用FC表示。雖然僅用卷積層也有可能構(gòu)建出很好的神經(jīng)網(wǎng)絡(luò),但大部分神經(jīng)望樓架構(gòu)師依然會添加池化層和全連接層。幸運的是,池化層和全連接層比卷積層更容易設(shè)計。后兩節(jié)課我們會快速講解這兩個概念以便你更好的了解神經(jīng)網(wǎng)絡(luò)中最常用的這幾種層,你就可以利用它們構(gòu)建更強大的網(wǎng)絡(luò)了。
再次恭喜你已經(jīng)掌握了第一個卷積神經(jīng)網(wǎng)絡(luò),在后面的筆記里,我們會學(xué)習(xí)如何訓(xùn)練這些卷積神經(jīng)網(wǎng)絡(luò)。
不過在這之前,我還要簡單介紹一下池化層和全連接層。然后再訓(xùn)練這些網(wǎng)絡(luò),到時我會用到大家熟悉的反向傳播訓(xùn)練方法。那么下節(jié)筆記,我們就先來了解如何構(gòu)建神經(jīng)網(wǎng)絡(luò)的池化層。