1.11 为什么使用卷积-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
| 1.10 卷積神經網絡示例 | 回到目錄 | 1.12 總結 |
為什么使用卷積 (Why Convolutions?)
這是本周最后一節課,我們來分析一下卷積在神經網絡中如此受用的原因,然后對如何整合這些卷積,如何通過一個標注過的訓練集訓練卷積神經網絡做個簡單概括。和只用全連接層相比,卷積層的兩個主要優勢在于參數共享和稀疏連接,舉例說明一下。
假設有一張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個輸入特征與輸出相連接,其它像素對輸出沒有任何影響。
神經網絡可以通過這兩種機制減少參數,以便我們用更小的訓練集來訓練它,從而預防過度擬合。你們也可能聽過,卷積神經網絡善于捕捉平移不變。通過觀察可以發現,向右移動兩個像素,圖片中的貓依然清晰可見,因為神經網絡的卷積結構使得即使移動幾個像素,這張圖片依然具有非常相似的特征,應該屬于同樣的輸出標記。實際上,我們用同一個過濾器生成各層中,圖片的所有像素值,希望網絡通過自動學習變得更加健壯,以便更好地取得所期望的平移不變屬性。
這就是卷積或卷積網絡在計算機視覺任務中表現良好的原因。
最后,我們把這些層整合起來,看看如何訓練這些網絡。比如我們要構建一個貓咪檢測器,我們有下面這個標記訓練集, xxx 表示一張圖片, y^\hat{y}y^? 是二進制標記或某個重要標記。我們選定了一個卷積神經網絡,輸入圖片,增加卷積層和池化層,然后添加全連接層,最后輸出一個softmax,即 y^\hat{y}y^? 。卷積層和全連接層有不同的參數 www 和偏差 bbb ,我們可以用任何參數集合來定義代價函數。一個類似于我們之前講過的那種代價函數,并隨機初始化其參數 www 和 bbb ,代價函數 JJJ 等于神經網絡對整個訓練集的預測的損失總和再除以 mmm (即 CostJ=1m∑i=1mL(y^(i),y(i))Cost\ J=\frac1m\sum_{i=1}^mL(\hat{y}^{(i)},y^{(i)})Cost?J=m1?∑i=1m?L(y^?(i),y(i)) )。所以訓練神經網絡,你要做的就是使用梯度下降法,或其它算法,例如Momentum梯度下降法,含RMSProp或其它因子的梯度下降來優化神經網絡中所有參數,以減少代價函數 JJJ 的值。通過上述操作你可以構建一個高效的貓咪檢測器或其它檢測器。
恭喜你完成了這一周的課程,你已經學習了卷積神經網絡的所有基本構造模塊,以及如何在高效圖片識別系統中整合這些模塊。透過本周編程練習,你可以更加具體了解這些概念,試著整合這些構造模塊,并用它們解決自己的問題。
下周,我們將繼續深入學習卷積神經網絡。我曾提到卷積神經網絡中有很多超參數,下周,我打算具體展示一些最有效的卷積神經網絡示例,你也可以嘗試去判斷哪些網絡架構類型效率更高。人們通常的做法是將別人發現和發表在研究報告上的架構應用于自己的應用程序。下周看過更多具體的示例后,相信你會做的更好。此外,下星期我們也會深入分析卷積神經網絡如此高效的原因,同時講解一些新的計算機視覺應用程序,例如,對象檢測和神經風格遷移以及如何利用這些算法創造新的藝術品形式。
課程板書
| 1.10 卷積神經網絡示例 | 回到目錄 | 1.12 總結 |
總結
以上是生活随笔為你收集整理的1.11 为什么使用卷积-深度学习第四课《卷积神经网络》-Stanford吴恩达教授的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.10 卷积神经网络示例-深度学习第四
- 下一篇: 1.12 总结-深度学习第四课《卷积神经