卷積神經網絡學習總結


摘要:

  1.算法概述

  2.算法要點與推導

  3.算法特性及優缺點

  4.注意事項

  5.實現和具體例子

  6.適用場合

內容:

1.算法概述:

  卷積神經網絡(Convolutional Neural Network,CNN)最開始是為了解決圖像識別問題被設計而來的,CNN使用圖像的原始像素作為輸入,訓練時可以自動提取圖像特征卷積神經網絡的三個基本要點是:局部連接,權值共享和降采樣。其中局部連接和權值共享降低了參數量,減少了模型復雜度;而降采樣則進一步降低了輸出參數量,並賦予模型對輕度畸變的容忍性,提高了模型的泛化能力。

 

 1.1局部連接(感受野):

 每一次卷積操作,輸入神經元只有一小片區域會被連接到下一層的一個神經元,這個區域被稱為局部感受野;如果局部感受野是5x5的,一次移動一格(stride),輸入圖像是28x28的,那么隱層有24x24(28-5+1)個神經元。

 

1.2權值共享:

卷積網絡中某一個層的所有神經元使用相同的權重和偏置。也就是說,對於隱藏層的第j行第k列的神經元,它的輸出為:

其中σ是激活函數,b是共享偏置,Wl,m是共享權重的5x5數組,用ax,y表示輸入層的第x行第y列的神經元的輸出值,即隱層的第j行第k列的神經元的若干個輸入。

共享,意味着這一個隱層的所有神經元檢測完全相同的特征,在輸入圖像的不同位置。這說明卷積網絡可以很好地適應圖片的平移不變性。

圖像分類中我們會卷積多次(卷積核不同),也稱為特征映射,下圖卷積了3次,識別了3種特征: 

一次卷積我們需要5x5=25個共享權重,加上一個共享偏置共26個參數。如果我們卷積了20次,那么共有20x26=520個參數。與全連接對比,輸入神經元有28x28=784個,隱層神經元設為30個,共有784x30個權重,加上30個偏置,共有23550個參數。

 

1.3降采樣:池化層一般在卷積層之后使用,池化層的每個單元概括了前一層的一個小區域,常見的方法有mean-pooling,max-pooling和stochastic pooling。 
  

2.算法要點與推導

  2.1前向推斷過程:

  第一步:卷積操作:

  其中卷積核為,

  

    2.2激活函數ReLU

    2.3池化操作:

  

    2.1后向求導過程:

   http://note.youdao.com/noteshare?id=1babdc0a6670d94a3b90f7e65949874d

  參考:Deep Learning模型之:CNN卷積神經網絡推導和實現 ;CNN卷積神經網絡和反向傳播

3.算法特性及優缺點

  局部連接,權值共享和降采樣。其中局部連接和權值共享降低了參數量,減少了模型復雜度;而降采樣則進一步降低了輸出參數量,並賦予模型對輕度畸變的容忍性,提高了模型的泛化能力。

  優點:具有空間不變性,自動提取特征;

  缺點:相比傳統模型,卷積復雜度高。訓練時間長,只能提取局部特征,不能提取全局特征;

4.注意事項:

  

5.實現和具體例子

    《Tensorflow實戰》實現簡單CNN處理mnist數據

    《TensorFlow實戰》實現增加了L2正則化與LRN層的CNN處理CIFAR-10數據

    《TensorFlow實戰》實現AlexNet網絡

    《TensorFlow實戰》實現VGGNet-16網絡

    《TensorFlow實戰》實現InceptionNet V3網絡

    《TensorFlow實戰》實現殘差網絡(ResNet)

    Implementing a CNN for Text Classification in TensorFlow

    Character-level Convolutional Networks for Text Classification

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM