問題筆記-卷積神經網絡

神經網絡介紹:大話卷積神經網絡(CNN)

參考:deeplearning.ai-class4-week1.md

1、什麼是卷積深度(depth)?

對於特定的卷積層,feature maps的個數等於該層濾波器的數目,即想要獲得的特徵數目。


在這裏插入圖片描述

2、爲什麼使用卷積神經網絡,而不使用傳統標準神經網絡?

假設有一張32×32×3維度的圖片,這是上節課的示例,假設用了6個大小爲5×5的過濾器,輸出維度爲28×28×6。32×32×3=3072,28×28×6=4704。我們構建一個神經網絡,其中一層含有3072個單元,下一層含有4074個單元,兩層中的每個神經元彼此相連,然後計算權重矩陣,它等於4074×3072≈1400萬,所以要訓練的參數很多。雖然以現在的技術,我們可以用1400多萬個參數來訓練網絡,因爲這張32×32×3的圖片非常小,訓練這麼多參數沒有問題。如果這是一張1000×1000的圖片,權重矩陣會變得非常大。我們看看這個卷積層的參數數量,每個過濾器都是5×5,一個過濾器有25個參數,再加上偏差參數,那麼每個過濾器就有26個參數,一共有6個過濾器,所以參數共計156個,參數數量還是很少。

卷積網絡映射這麼少參數有兩個原因:

一是參數共享。觀察發現,特徵檢測如垂直邊緣檢測如果適用於圖片的某個區域,那麼它也可能適用於圖片的其他區域。也就是說,如果你用一個3×3的過濾器檢測垂直邊緣,那麼圖片的左上角區域,以及旁邊的各個區域(左邊矩陣中藍色方框標記的部分)都可以使用這個3×3的過濾器。每個特徵檢測器以及輸出都可以在輸入圖片的不同區域中使用同樣的參數,以便提取垂直邊緣或其它特徵。它不僅適用於邊緣特徵這樣的低階特徵,同樣適用於高階特徵,例如提取臉上的眼睛,貓或者其他特徵對象。即使減少參數個數,這9個參數同樣能計算出16個輸出。直觀感覺是,一個特徵檢測器,如垂直邊緣檢測器用於檢測圖片左上角區域的特徵,這個特徵很可能也適用於圖片的右下角區域。因此在計算圖片左上角和右下角區域時,你不需要添加其它特徵檢測器。假如有一個這樣的數據集,其左上角和右下角可能有不同分佈,也有可能稍有不同,但很相似,整張圖片共享特徵檢測器,提取效果也很好。
在這裏插入圖片描述

第二個原因是使用了稀疏連接,我來解釋下。這個0是通過3×3的卷積計算得到的,它只依賴於這個3×3的輸入的單元格,右邊這個輸出單元(元素0)僅與36個輸入特徵中9個相連接。而且其它像素值都不會對輸出產生任影響,這就是稀疏連接的概念。
在這裏插入圖片描述
再舉一個例子,這個輸出(右邊矩陣中紅色標記的元素 30)僅僅依賴於這9個特徵(左邊矩陣紅色方框標記的區域),看上去只有這9個輸入特徵與輸出相連接,其它像素對輸出沒有任何影響。

神經網絡可以通過這兩種機制減少參數,以便我們用更小的訓練集來訓練它,從而預防過度擬合。你們也可能聽過,卷積神經網絡善於捕捉平移不變。通過觀察可以發現,向右移動兩個像素,圖片中的貓依然清晰可見,因爲神經網絡的卷積結構使得即使移動幾個像素,這張圖片依然具有非常相似的特徵,應該屬於同樣的輸出標記。實際上,我們用同一個過濾器生成各層中,圖片的所有像素值,希望網絡通過自動學習變得更加健壯,以便更好地取得所期望的平移不變屬性。

這就是卷積或卷積網絡在計算機視覺任務中表現良好的原因。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章