1.8 简单卷积网络示例-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
| 1.7 單層卷積網絡 | 回到目錄 | 1.9 池化層 |
簡單卷積網絡示例 (A Simple Convolution Network Example)
上節課,我們講了如何為卷積網絡構建一個卷積層。今天我們看一個深度卷積神經網絡的具體示例,順便練習一下我們上節課所學的標記法。
假設你有一張圖片,你想做圖片分類或圖片識別,把這張圖片輸入定義為 xxx ,然后辨別圖片中有沒有貓,用0或1表示,這是一個分類問題,我們來構建適用于這項任務的卷積神經網絡。針對這個示例,我用了一張比較小的圖片,大小是39×39×3,這樣設定可以使其中一些數字效果更好。所以 nH[0]=nW[0]n_H^{[0]}=n_W^{[0]}nH[0]?=nW[0]? ,即高度和寬度都等于39, nc[0]=3n_c^{[0]}=3nc[0]?=3 ,即0層的通道數為3。
假設第一層我們用一個3×3的過濾器來提取特征,那么 f[1]=3f^{[1]}=3f[1]=3 ,因為過濾器時3×3的矩陣。 s[1]=1,p[1]=0s^{[1]}=1,p^{[1]}=0s[1]=1,p[1]=0 ,所以高度和寬度使用valid卷積。如果有10個過濾器,神經網絡下一層的激活值為37×37×10,寫10是因為我們用了10個過濾器,37是公式 n+2p?fs+1\frac{n+2p-f}{s}+1sn+2p?f?+1 的計算結果,也就是 39+0?31+1=37\frac{39+0-3}{1}+1=37139+0?3?+1=37 ,所以輸出是37×37,它是一個vaild卷積,這是輸出結果的大小。第一層標記為 nH[1]=nW[1]=37,nc[1]=10n_H^{[1]}=n_W^{[1]}=37,n_c^{[1]}=10nH[1]?=nW[1]?=37,nc[1]?=10 , nc[1]n_c^{[1]}nc[1]? 等于第一層中過濾器的個數,這(37×37×10)是第一層激活值的維度。
假設還有另外一個卷積層,這次我們采用的過濾器是5×5的矩陣。在標記法中,神經網絡下一層的 f=5f=5f=5 ,即步幅 f[2]=5f^{[2]}=5f[2]=5 為2,即 s[2]=2s^{[2]}=2s[2]=2 。padding為0,即 p[2]=0p^{[2]}=0p[2]=0 ,且有20個過濾器。所以其輸出結果會是一張新圖像,這次的輸出結果為17×17×20,因為步幅是2,維度縮小得很快,大小從37×37減小到17×17,減小了一半還多,過濾器是20個,所以通道數也是20,17×17×20即激活值 a[2]a^{[2]}a[2] 的維度。因此 nH[2]=nW[2]=17,nc[2]=20n_H^{[2]}=n_W^{[2]}=17,n_c^{[2]}=20nH[2]?=nW[2]?=17,nc[2]?=20 。
我們來構建最后一個卷積層,假設過濾器還是5×5,步幅為2,即 f[2]=5,s[3]=2f^{[2]}=5,s^{[3]}=2f[2]=5,s[3]=2 ,計算過程我跳過了,最后輸出為7×7×40,假設使用了40個過濾器。padding為0,40個過濾器,最后結果為7×7×40。
到此,這張39×39×3的輸入圖像就處理完畢了,為圖片提取了7×7×40個特征,計算出來就是1960個特征。然后對該卷積進行處理,可以將其平滑或展開成1960個單元。平滑處理后可以輸出一個向量,其填充內容是logistic回歸單元還是softmax回歸單元,完全取決于我們是想識圖片上有沒有貓,還是想識別 KKK 種不同對象中的一種,用 y^\hat{y}y^? 表示最終神經網絡的預測輸出。明確一點,最后這一步是處理所有數字,即全部的1960個數字,把它們展開成一個很長的向量。為了預測最終的輸出結果,我們把這個長向量填充到softmax回歸函數中。
這是卷積神經網絡的一個典型范例,設計卷積神經網絡時,確定這些超參數比較費工夫。要決定過濾器的大小、步幅、padding以及使用多少個過濾器。這周和下周,我會針對選擇參數的問題提供一些建議和指導。
而這節課你要掌握的一點是,隨著神經網絡計算深度不斷加深,通常開始時的圖像也要更大一些,初始值為39×39,高度和寬度會在一段時間內保持一致,然后隨著網絡深度的加深而逐漸減小,從39到37,再到17,最后到7。而通道數量在增加,從3到10,再到20,最后到40。在許多其它卷積神經網絡中,你也可以看到這種趨勢。關于如何確定這些參數,后面課上我會更詳細講解,這是我們講的第一個卷積神經網絡示例。
一個典型的卷積神經網絡通常有三層,一個是卷積層,我們常常用Conv來標注。上一個例子,我用的就是CONV。還有兩種常見類型的層,我們留在后兩節課講。一個是池化層,我們稱之為POOL。最后一個是全連接層,用FC表示。雖然僅用卷積層也有可能構建出很好的神經網絡,但大部分神經望樓架構師依然會添加池化層和全連接層。幸運的是,池化層和全連接層比卷積層更容易設計。后兩節課我們會快速講解這兩個概念以便你更好的了解神經網絡中最常用的這幾種層,你就可以利用它們構建更強大的網絡了。
再次恭喜你已經掌握了第一個卷積神經網絡,本周后幾節課,我們會學習如何訓練這些卷積神經網絡。不過在這之前,我還要簡單介紹一下池化層和全連接層。然后再訓練這些網絡,到時我會用到大家熟悉的反向傳播訓練方法。那么下節課,我們就先來了解如何構建神經網絡的池化層。
課程板書
| 1.7 單層卷積網絡 | 回到目錄 | 1.9 池化層 |
總結
以上是生活随笔為你收集整理的1.8 简单卷积网络示例-深度学习第四课《卷积神经网络》-Stanford吴恩达教授的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.7 单层卷积网络-深度学习第四课《卷
- 下一篇: 1.9 池化层-深度学习第四课《卷积神经