引言
在生物界的研究中,當細胞還尚不能稱作細胞時,海底火山的諸多孔洞裡,生命已悄然發生了分化。
其實這并不難了解。火山口強弱有别,噴出的物質雖基本相似但比例各異,形成的生命若都是一樣的形制才堪稱奇怪。
0_神經認知機
就目前來看,應用卷積神經網絡最廣泛還當屬是視覺領域。若我們順着時間線溯源,回到上世紀60年代感受野(Receptive Field)這個概念首次被Hubel等人提出的年代。原來從尚未誕生之始,卷積神經網絡便與視覺牢牢捆在了一起。
感受野是Hubel與Wiesel提出的視覺系統模型中的重要組成部分。它指的是眼睛中的單個視覺神經元所能處理的視野在整片視野中的尺寸。将其應用到認知機模型裡,便構成了卷積神經網絡的前身。
認知機是遠古大神福島邦彥開發的一種神經網絡模型。不同于感覺機模型通過激活函數來處理神經元輸出,在認知機中,神經元輸出與否依賴兩類突觸神經元:興奮神經元和抑制神經元的權重和。
認知機的另一大優勢就是部分連接配接。認知機中,下一層神經元的參數更新并不受到上層全部神經元的作用,而是隻取相鄰神經元的輸入。這兩大優勢極大影響了網絡的穩定性和參數數量,使得認知機在一定程度上避免了其他神經網絡的梯度不穩定問題。
神經認知機的架構則更加複雜。它引入了感受野的機制,不僅在同層神經元間是部分連接配接,在神經元的内部,感受野也進一步縮小了下層神經元的輸入尺寸。
在神經認知機中,出現了當代卷積神經網絡的兩個主要子產品。
卷積層(講解來自量子位)
- 有數字圖像處理經驗的同學可以跳過這一小段,基本上是一樣的。卷積的具體步驟如下:
-
- 在圖像的某個位置上覆寫濾波器;
-
- 将濾波器中的值與圖像中的對應像素的值相乘;
-
- 把上面的乘積加起來,得到的和是輸出圖像中目标像素的值;
-
- 對圖像的所有位置重複此操作。
- 讓我們舉個例子吧。看下面的4x4灰階圖像和3x3濾波器:
- 圖像中的數字表示像素亮度,0是黑色,255是白色。我們将對輸入圖像和濾波器進行卷積,生成2x2輸出圖像。首先,讓我們将濾鏡覆寫在圖檔的左上角:
- 接下來,我們在重疊的圖像和濾波器元素之間逐個進行乘法運算,按照從左向右、從上到下的順序。
- 把最右列的乘積結果全部相加,得到:
- 由于濾波器覆寫在輸入圖像的左上角,是以目标像素是輸出圖像的左上角像素:
- 用同樣的方式處理圖像剩下的區域:
- 使用的卷積核不同,卷積操作的作用也大緻分為平滑和銳化兩種。
-
池化層(講解來自量子位)
- 圖像中的相鄰像素傾向于具有相似的值,是以通常卷積層相鄰的輸出像素也具有相似的值。這意味着,卷積層輸出中包含的大部分資訊都是備援的。如果我們使用邊緣檢測濾波器并在某個位置找到強邊緣,那麼我們也可能會在距離這個像素1個偏移的位置找到相對較強的邊緣。但是它們都一樣是邊緣,我們并沒有找到任何新東西。池化層解決了這個問題。這個網絡層所做的就是通過減小輸入的大小降低輸出值的數量。池化一般通過簡單的最大值、最小值或平均值操作完成。以下是池大小為2的最大池層的示例:
1_LeNet
LeNet是卷積神經網絡之父Yan LeCun提出的第一種網絡構型,雖然是個相對簡單的模型,但幾乎囊括了現如今卷積神經網絡中的大部分的内容。LeNet的結構如下圖:
簡化來看,LeNet主要由輸入層——歸一化層——卷積層——激活函數層——池化層——全連接配接層——softmax——輸出層這樣構成。通過卷積層——激活函數層——池化層的堆疊加強網絡能力。