吳恩達深度學習筆記(78)-簡單卷積網絡示例

上節課,我們講了如何為卷積網絡構建一個卷積層。今天我們看一個深度卷積神經網絡的具體示例,順便練習一下我們上節課所學的標記法。

假設你有一張圖片,你想做圖片分類或圖片識別,把這張圖片輸入定義為x,然後辨別圖片中有沒有貓,用0或1表示,這是一個分類問題,我們來構建適用於這項任務的卷積神經網絡。針對這個示例,我用了一張比較小的圖片,大小是39×39×3,這樣設定可以使其中一些數字效果更好。所以n_H^([0])=n_W^([0]),即高度和寬度都等於39,n_c^([0])=3,即0層的通道數為3。

吳恩達深度學習筆記(78)-簡單卷積網絡示例

假設第一層我們用一個3×3的過濾器來提取特徵,那麼f^([1])=3,因為過濾器時3×3的矩陣。s^([1])=1,p^([1])=0,所以高度和寬度使用same卷積

如果有10個過濾器,神經網絡下一層的激活值為37×37×10,寫10是因為我們用了10個過濾器,37是公式(n+2p-f)/s+1的計算結果,也就是(39+0-3)/1+1=37,所以輸出是37×37,它是一個vaild卷積,這是輸出結果的大小。第一層標記為n_H^([1])=n_W^([1])=37,n_c^([1])=10,n_c^([1])等於第一層中過濾器的個數,這(37×37×10)是第一層激活值的維度。

吳恩達深度學習筆記(78)-簡單卷積網絡示例

假設還有另外一個卷積層,這次我們採用的過濾器是5×5的矩陣。在標記法中,神經網絡下一層的f=5,即f^[2] =5步幅為2,即s^[2] =2。padding為0,即p^[2] =0,且有20個過濾器。所以其輸出結果會是一張新圖像,這次的輸出結果為17×17×20,因為步幅是2,維度縮小得很快,大小從37×37減小到17×17,減小了一半還多,過濾器是20個,所以通道數也是20,17×17×20即激活值a^[2] 的維度。因此n_H^[2] =n_W^[2] =17,n_c^[2] =20。

吳恩達深度學習筆記(78)-簡單卷積網絡示例

我們來構建最後一個卷積層,假設過濾器還是5×5,步幅為2,即f^[2] =5,s^[3] =2,計算過程我跳過了,最後輸出為7×7×40,假設使用了40個過濾器。padding為0,40個過濾器,最後結果為7×7×40。

吳恩達深度學習筆記(78)-簡單卷積網絡示例

到此,這張39×39×3的輸入圖像就處理完畢了,為圖片提取了7×7×40個特徵,計算出來就是1960個特徵。然後對該卷積進行處理,可以將其平滑或展開成1960個單元。平滑處理後可以輸出一個向量,其填充內容是logistic迴歸單元還是softmax迴歸單元,完全取決於我們是想識圖片上有沒有貓,還是想識別K種不同對象中的一種,用^y表示最終神經網絡的預測輸出。明確一點,最後這一步是處理所有數字,即全部的1960個數字,把它們展開成一個很長的向量。為了預測最終的輸出結果,我們把這個長向量填充到softmax迴歸函數中。

這是卷積神經網絡的一個典型範例,設計卷積神經網絡時,確定這些超參數比較費工夫。要決定過濾器的大小、步幅、padding以及使用多少個過濾器。這周和下週,我會針對選擇參數的問題提供一些建議和指導。

吳恩達深度學習筆記(78)-簡單卷積網絡示例

而這節課你要掌握的一點是,隨著神經網絡計算深度不斷加深,通常開始時的圖像也要更大一些,初始值為39×39,高度和寬度會在一段時間內保持一致,然後隨著網絡深度的加深而逐漸減小,從39到37,再到17,最後到7。而通道數量在增加,從3到10,再到20,最後到40。在許多其它卷積神經網絡中,你也可以看到這種趨勢。關於如何確定這些參數,後面課上我會更詳細講解,這是我們講的第一個卷積神經網絡示例。

一個典型的卷積神經網絡通常有三層,一個是卷積層,我們常常用Conv來標註。上一個例子,我用的就是CONV。還有兩種常見類型的層,我們留在後兩節課講。一個是池化層,我們稱之為POOL。最後一個是全連接層,用FC表示。雖然僅用卷積層也有可能構建出很好的神經網絡,但大部分神經望樓架構師依然會添加池化層和全連接層。幸運的是,池化層和全連接層比卷積層更容易設計。後兩節課我們會快速講解這兩個概念以便你更好的瞭解神經網絡中最常用的這幾種層,你就可以利用它們構建更強大的網絡了。

吳恩達深度學習筆記(78)-簡單卷積網絡示例

再次恭喜你已經掌握了第一個卷積神經網絡,在後面的筆記裡,我們會學習如何訓練這些卷積神經網絡。

不過在這之前,我還要簡單介紹一下池化層和全連接層。然後再訓練這些網絡,到時我會用到大家熟悉的反向傳播訓練方法。那麼下節筆記,我們就先來了解如何構建神經網絡的池化層。


分享到:


相關文章: