機器學習算法篇—卷積神經網絡(Convolutional Neural Network)

定義:

首先來了解一下深度學習的定義:深度學習是以數據的原始形態作為算法輸入,經過算法層層抽象將原始數據逐層抽象為自身任務所需的最終特徵表示,最後以特徵到任務目標的映射作為結束,從原始數據到最終任務目標,“一條龍服務” 並無夾雜任何人為操作。普通話說就是“省去了人為的特徵工程,實現完全封閉。是一種‘端到端’的學習方式”,而傳統機器學習的天花板是由特徵工程決定的。

卷積神經網路:是一類特殊的人工神經網絡,其最主要的特點是卷積運算操作。可以理解為是一種層次模型,其輸入是原始數據,如圖像、原始音頻數據等。其中,不同類型操作在卷積神經網絡中一般稱作“層”:卷積操作對應“卷積層”,池化操作對應“池化層”。

準備知識:

  1. 卷積核:是一個函數,可以看作對某個局部的加權求和;它是對應局部感知,它的原理是在觀察某個物體時我們既不能觀察每個像素也不能一次觀察整體,而是先從局部開始認識,這就對應了卷積。卷積核的大小一般有1x1,3x3和5x5的尺寸。

機器學習算法篇—卷積神經網絡(Convolutional Neural Network)

  1. 卷積步長:每做一個卷積所移動的距離

  2. 前饋運算:概括的說就是“預測和推理”,卷積神經網絡通過卷積操作、池化操作和激活函數映射等一系列操作的層層堆疊,將高層語義信息逐層由原始數據輸入層中抽取出來,逐層抽象,這一過程便是“前饋運算”。

  3. 反饋運算:“訓練和學習”,卷積神經網絡的最後一層將其目標任務形式化為目標函數。通過計算預測值與真實值之間的誤差或損失(之前的文章講過的最小二乘法),憑藉反向傳播算法(BP)將誤差或損失由最後一層逐層向前反饋,更新每層參數。

  4. 池化:其實也就是把特徵圖像區域的一部分求個均值或者最大值,用來代表這部分區域。如果是求均值就是mean pooling,求最大值就是max pooling。

  5. 激活函數:是增加整個網絡的表達能力(即非線性)。否則, 若干線性操作層的堆疊仍然只能起到線性映射的作用,無法形成複雜的函數。最常用的是sigmoid激活函數和ReLU激活函數 (目前主流是ReLU,因為ReLU避免了梯度飽和效應的發生)

CNN工作流程:

這次的準備知識點比較多,因為作者,也就是在下,熟悉的領域就是計算機視覺,圖像處理,之前做ios的時候,濾鏡,紅眼,磨皮等等圖片處理的功能都是自己寫的,研究過GPUIImage的源碼,還做過名片識別的app。雖然迫於生計,工作中遇到圖像處理的場景少,但是從2011年到現在從來沒有停止對圖像處理技術的研究,從去年開始做機器學習的時候就選定計算機視覺為主要方向,讓自己的長板更長。

好,收,廢話一說就停不下來了,下面來介紹一下卷機神經網絡的工作流程:

首先介紹一下卷積神經網絡的基本部件:

  1. 卷積操作

  2. 池化操作

  3. 激活函數

  4. 全連接層

  5. 目標函數

整個卷積神經網絡通過這些基本部件的 “有機組合”即可實現將原始數據映射到高層語義、進而得到樣本預測標記的功能。用一張圖片來展示一下通用的深度模型:

機器學習算法篇—卷積神經網絡(Convolutional Neural Network)

對深度模型而言,其輸入數據是未經任何人為加工的原始樣 本形式,後續則是堆疊在輸入層上的眾多操作層。這些操作層整體可看作一個複雜的函數 fcnn,最終損失函數由數據損失和模型參數的正則化損失共同組成,深度模型的訓練過程可以簡單抽象為從原始數據向最終目標的直接‘擬合’,而中間的這些部件正起到了將原始數據映射為特徵隨後在映射為樣本標記的作用。

卷積操作:

卷積是一種局部操作,通過一定大小的卷積核作用於局部圖像區域獲 得圖像的局部信息。卷積操作中有兩個重要的超參數:卷積核大小和卷積步長。

假設輸入圖像為如圖 中右側的 5 × 5 矩陣,其對應的卷積核為一個 3 × 3 的矩陣。同時,假定卷積操作時每做一次卷積,卷積核移動一個像素位置,即卷積步長 為1。第一次卷積操作從圖像 (0, 0) 像素開始,由卷積核中參數與對應位置圖像像 素逐位相乘後累加作為一次卷積操作結果,即 1×1+2×0+3×1+6×0+ 7 × 1 + 8 × 0 + 9 × 1 + 8 × 0 + 7 × 1 = 1 + 3 + 7 + 9 + 7 = 27,如圖 所示:

機器學習算法篇—卷積神經網絡(Convolutional Neural Network)

類似地,在步長為1時,如上圖所示,卷積核按照步長大小在輸入圖像上從左至右自上而下依次將卷積操作進行下去,最終輸出 3 × 3 大小的卷 積特徵,同時該結果將作為下一層操作的輸入。之後再進行上文講的‘有機組合’中去,進行反覆的前後反饋計算,直到出最後結果。

總結:

本篇介紹了深度學習的關鍵思想‘端到端’的關鍵思想,瞭解了深度學習的工作流程以及卷機操作,基本知識:卷積核,卷積步長,前饋運算,反饋運算,池化,激活函數。下篇文章會講:池化操作和激活函數。


分享到:


相關文章: