1. 程式人生 > >卷積算法歸納總結(淺識)

卷積算法歸納總結(淺識)

vgg 接下來 優化 般的 通過 分享圖片 計算 卷積 near

歸納卷積神經網絡的常用算法
在卷積算法之前,是有很多圖片分類和識別的機器學習算法,像SVM向量機的原理特別復雜,卷積算法還是比較易懂,一方面避免全連接帶來的龐大參數,主要通過提取特征值,算法準確率也是最高的,幾乎可以跟人工識別相提並論了。

技術分享圖片

經典算法:

1,LeNet算法:

LeNet算法的流程是:

Input –>conv2->relu->pool->conv2->relu->pool->CF->softmax->output

技術分享圖片

Input:輸入; 矩陣為(w,h,c) w:寬的像素;h:高的像素;c:通道

Conv:卷積計算

卷積就是把一個圖層(w,h)

Conv2:表示二維圖的卷積

一個圖層可能是64*64,通過W過濾層為(6,6) 通常有多個過濾層,輸出層為矩陣維度為64-6+1=59 ,即(59,59)

以下面的圖簡單為例:

技術分享圖片

Pool:是池化操作,可能翻譯原因表述不一樣,池化層是單層的,池化層分為最大值池化和平均值池化;其實,也就是提取特征值最明顯的值,最大值池化的效果相對來說更好,所以建議使用。

技術分享圖片

FC:也就是全連接了,即WX+b=Y

Softmax:歸一化的處理,分類

技術分享圖片

在conv2到pool過程中,還有一層no_linear_normal的操作,也是比較難懂,作用似乎沒那麽大,就被忽略了。

2,AlexNet算法:
其實就是一個leNet的變形,先來看一張圖:

技術分享圖片

大體過程可分為:

Input->conv2->pool->conv2->pool->pool->pool->pool->pool->FC->FC->FC->softmax

當然中間還有一些relu激化函數就略過了,在激活函數前會通過LRN進行局部歸一化,減少使用復雜的激化函數。

3,VGG-16 算法:

VGG-16 跟VGG-19算法 主要是在層次多少區別,算法效果差不多,所以一般建議使用VGG-16

技術分享圖片

VGG算法跟alexNet的最大不同是這個算法重點是conv2卷積多次,達到集中特征收集的目的

==========================================================

高效的算法:
殘差算法:ResNet算法

卷積算法,流程都是通過多個過濾器進行特征值提取,中間的過程容易造成層次越多,原始特征丟失越嚴重,損失函數在逆向優化時梯度下降太快,所以需要加一些特征優化降低這個速度。對於一些神經深度越大的,這種算法越見優勢。
首先來一般的神經深度過程:
Input –>linear->rule->linear->relu->a
而resNet是加了一步
Input –>linear->rule->linear->?->relu->a
運算過程:
技術分享圖片

技術分享圖片

技術分享圖片

接下來是:?
技術分享圖片

不是,這樣網絡越大,會增加錯誤幾率,所以得保真:
技術分享圖片

把上上步的a[L] 拿過來加進去求激活函數,這樣就能保真。再看一張圖:

技術分享圖片


總體的流程如圖:

技術分享圖片


這不是真正的跳躍,而是把原先的a值拿來求激活函數。

Inception network 算法
其實是谷歌的一個卷積算法 googleNet,這個算法真的比較負責,當然他的深度可以很深,也可以通過增加卷積的conv2的層次,識別一張圖片裏的多個事物;首先,我們先來一張圖:
技術分享圖片
Previous layer是前一層 激活函數之後的
然後進行conv2或者pool進行,然後把各個層的卷積組成一個大的卷積。
有輔助卷積是可以識別出更多的物體。

技術分享圖片

FaceNet算法 是人物識別

人物識別通常可用於監控,或者關卡或者上班的臉譜識別,通過卷積然後根據卷積後的CF後的特征計算誤差;通常會需要某個人物的十多張圖片作為訓練,然後再找其他的圖片作為對比。

自己本人圖片的計算誤差小於等於跟他人圖片的誤差

技術分享圖片

這裏只是作為學習的一個總結,具體實現要leNet-5,googleNet,inception Network, faceNet等關鍵詞去githup搜索相應的開源代碼去研究;這些都是開源出來的,至少你可以查到他的論文,不過幾乎都是英文。這才原汁原味。

參考:吳恩達視頻教程

卷積算法歸納總結(淺識)