卷積神經網路的最佳解釋!
CNN在圖像和視頻識別,推薦系統和自然語言處理中有著廣泛的應用。在這篇文章中舉的例子是計算機視覺,但是,基本概念是一致的,可以應用於任何其他用例。
作者
|
Harsh Pokharna
編譯 | 專知
參與 | Yingying, Xiaowen
添加微信:MLAPython
(姓名-單位-方向)
即可加入機器學習交流群
The best explanation of Convolutional Neural Networks
on the Internet!
CNN由由可學習權重和偏置的神經元組成。每個神經元接收多個輸入,對它們進行加權求和,將其傳遞給一個激活函數並用一個輸出作為響應。整個網路有一個損失函數,在神經網路開發過程中的技巧和竅門仍然適用於CNN。很簡單,對吧?
那麼,卷積神經網路與神經網路有什麼不同呢?
和神經網路輸入不同,這裡的輸入是一個多通道圖像(在這種情況下是3通道,如RGB)。
在我們深入之前,讓我們先了解一下卷積的含義。
卷積
我們用5 * 5 * 3的濾波器滑過整個圖像,並在滑動過程中與滑過的圖像部分點積。
每個點積的結果都是標量。
那麼,當我們將整個圖像與濾波器進行卷積時會發生什麼?
卷積結果的大小28是怎麼來的留給讀者思考。(提示:有28 * 28個獨特的位置,濾波器可以放在圖像上)
現在回到CNN
卷積層是卷積神經網路的重要部分。
卷積層包含一組獨立的濾波器(在所示的例子中是6個)。每個濾波器都與圖像獨立卷積,最終形成6個形狀為28 * 28 * 1的特徵圖。
假設我們有多個卷積層。然後會發生什麼?
所有這些濾波器都是隨機初始化的,並在網路訓練過程中學習參數。
下面是訓練好的網路的例子。
看看第一層中的濾波器(在這是5 * 5 * 3的濾波器)。通過反向傳播,逐漸調整成為彩色碎片和邊緣的斑點。當層次變深時,濾波器與先前一層的輸出做點積。所以,他們正在用較小的彩色碎片或邊緣製作出更大的碎片。
對於特定的特徵圖,每個神經元僅與輸入圖像的一小塊連接,並且所有神經元具有相同的連接權重,這就是CNN與神經網路的最大區別。
參數共享和局部連接
參數共享指的是特定特徵圖中所有神經元的權重共享。
局部連接是每個神經只與輸入圖像的一個子集連接(不同於全連接的神經網路)
這有助於減少整個系統中的參數數量,並使計算更加高效。
池化層
池化層是CNN的另一個構建塊。
其功能是逐步縮小表示空間的大小,以減少網路中的參數和計算量。池化層獨立地在每個特徵映射上工作。
最常用的方法是最大池化(max pooling)。
CNN的典型架構
我們已經介紹了卷積層(由CONV表示)和池化層(由POOL表示)。
RELU只是一個應用於神經單元的非線性激活函數。
FC是CNN末端的全連接層。全連接層中的神經元與前一層中的所有激活都有完全連接,如常規神經網路中所見,並以相似的方式工作。
CNN架構有許多變化,但正如我之前提到的,基本概念保持不變。
原文鏈接:
https://medium.com/technologymadeeasy/the-best-explanation-of-convolutional-neural-networks-on-the-internet-fbb8b1ad5df8