對於圖像分析而言,具體能夠將其劃分爲不少類型的任務,好比分類、對象檢測、識別、描述等。對於圖像分類器而言,即便在諸如遮擋、照明變化、視覺等變化的狀況下,也應該可以以高精度的性能工做。以特徵工程爲主要步驟的傳統圖像分類方法不適合在豐富環境中工做,即便是該領域的專家也不能給出一組可以在不一樣變化下達到高精度的特徵,沒法保證手工所選的特徵是否合適。在這個問題的啓發下,特徵學習的思想應運而生,經過自主學習來得到合適的圖像特徵,這也是人工神經網絡(ANN)對於圖像分析任務魯棒性的緣由之一。基於梯度降低算法(GD)等學習算法,ANN能夠自動學習到圖像特徵,將原始圖像輸入人工神經網絡後,ANN可以自動地生成描述它的特徵。算法
如今一塊兒看看人工神經網絡是如何對進行處理的,以及CNN爲何在時間和內存上相較於全鏈接網絡更高效。如圖1所示,輸入的是一個3x3大小的灰度圖。例子中使用小尺寸的圖像是爲了方便講解,而不是代表ANN只能處理小尺寸的圖像。
網絡
圖像1ide
圖像2函數
圖像3性能
圖像4學習
上面例子中的參數數目彷佛還能夠接受,可是隨着輸入圖像尺寸變大以及隱藏層數量增長,網絡參數將大大增長。優化
例如,若網絡具備兩個隱層,分別有90和50個神經元,那麼輸入層和第一隱藏層之間的參數數目是9x90=810,兩個隱藏層之間的參數數目爲90x50=4500,該網絡的參數總數爲810+4500=5310。對於這樣簡單的網絡結構就有這麼多的參數數量,顯然是不合適的;另一種狀況是輸入圖像尺寸較大,好比32x32大小的圖像(1024個像素),若是網絡使用單個隱藏層(含有500個神經元),則總共有1024x500=512000個參數(權重),這對於只含單個隱藏層的網絡而言是一個巨大的數字。所以,必須有一個解決方案來減小網絡參數,那麼針對於此,卷積神經網絡(CNN)應運而生,雖然它網絡模型一般比較大,但大大下降了參數數量。ui
即便是很小的全鏈接網絡,網絡參數數目變得很是大的緣由在於其層與層之間神經元每條鏈接上都是不一樣的參數。所以,能夠考慮給一組神經元提供相同的參數,如圖5所示,一組神經元內的神經元都將分配同一個參數。
阿里雲
圖像5翻譯
圖像6
圖像7
圖像8
以前所述內容使得每一個神經元接受全部像素,若存在接受4個輸入的函數f(x1,x2,x3,x4),則這意味着要基於全部這4個輸入來進行決定。若是隻有2個輸入,但其輸出結果與使用4個輸入的結果相同,那麼將沒必要使用全部的這4個輸入,只需給出對結果有影響的2個輸入便可。借鑑該思想,每一個神經元接受輸入的9個像素,若能使用更少的像素得到相同或更好的結果就大大下降了參數數量,所以能夠朝着這個方向優化網絡參數。
一般,在圖像分析中,輸入圖像被轉換爲像素矩陣,像素矩陣中的每一個像素與它周圍的像素高度相關,兩個像素之間的距離越遠,兩者越不相關。例如,如圖9所示,面部的像素與面部周圍的像素相關,但它與天空、地面等像素的相關性較低。
圖像9
圖像10
因爲CNN使用權重共享,使用較少的參數,這使得CNN網絡結構通常層數比較多,這是全鏈接網絡沒法具備的特性。
如今只有4個權重分配給同一組中的全部神經元,那麼這4個權重如何涵蓋9個像素點呢?讓咱們看看這是如何處理的吧!
圖11展現了圖10中的一個網絡,併爲每條鏈接添加了權重標記。在神經元內部,4個輸入像素中的每個都與其相應的權重相乘,如圖11中公式所示。
圖像11
圖像12
Aghdam, Hamed Habibi, and Elnaz Jahani Heravi. Guide to Convolutional Neural Networks: A Practical Application to Traffic-Sign Detection and Classification. Springer, 2017.
做者信息
Ahmed Gad,教師、專一於深度學習、計算機視覺
本文由阿里云云棲社區組織翻譯。
文章原標題《Derivation of Convolutional Neural Network from Fully Connected Network Step-By-Step》,