CNN卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)筆記

本篇博客主要歸納整理,CNN相關(guān)的基礎(chǔ)知識和部分經(jīng)典卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)與特點。圖片大部分來自Fei-Fei Li CNN課程PPT、網(wǎng)絡(luò)和paper,如有侵犯請及時告知

CNN相關(guān)基礎(chǔ)知識

卷積神經(jīng)網(wǎng)絡(luò)和全連接神經(jīng)網(wǎng)絡(luò)的區(qū)別

卷積和全連接的區(qū)別

區(qū)別:如上圖所示,

  1. 全連接神經(jīng)網(wǎng)絡(luò)中每個神經(jīng)元或者filter都與輸入圖像的每個像素相關(guān)聯(lián),參數(shù)量
  2. 卷積神經(jīng)網(wǎng)絡(luò)中每個神經(jīng)元或者filter只與原圖中部分像素相關(guān)聯(lián),即只關(guān)心局部信息,參數(shù)量

卷積核

如圖所示,一個33的卷積核對原圖的一個33區(qū)域(這個區(qū)域也叫做卷積核的感受野)做卷積,其具體的計算過程是對應(yīng)元素相乘再相加。

卷積過程

整體過程


如上圖:

  1. filter從左上角開始以設(shè)定的步長移動至右下角,每次移動都會通過點積(卷積)得到一個數(shù)值
  2. 單個filter的深度總是和原圖像的通道數(shù)一樣
  3. filter的個數(shù)決定了生成activation map的個數(shù),一個activation map 代表原圖像中某個feature(特征)
  4. 單個filter的權(quán)值是共享的

計算過程


如上圖:

  1. Filter w0 和原圖像以步長為2做卷積后,會得到Output Volume 中的第一個3*3的 feature(activation) map
  2. 單個filter的三個通道做完卷積后會做線性相加,并加上一個偏置項bias,從而得出feature map中的某個數(shù)值

feature map大小計算

上圖中一個77的原圖經(jīng)過33的filter以步長為2來做卷積后,為什么輸出也是一個33的數(shù)組呢?*

不使用padding 0 填充:


如圖所示,每個卷積可以得到一個值,以步長為2,卷積核在原圖橫向和縱向上都可以卷積三次,所以最后輸出的矩陣為33,不使用0填充計算輸出矩陣的長寬的公式為:Output size = (N - F) / stride + 1*

使用padding:

根據(jù)上圖我們可以發(fā)現(xiàn),如果我們不停的層層卷積下去,那么原來尺寸很大的圖片到最后會變得很小,甚至成為一個像素點,在一些想輸出圖片的應(yīng)用上這個是我們不想看到的結(jié)果,所以我們怎么保證即做卷積運算還不改變輸出尺寸呢?


如圖所示,我們將原來77的圖片長寬個加上0填充,這個時候我們使用33的filter以步長為1來對原圖做卷積,那么它的輸出還是 77的feature map,計算 padding 的公式為:P = ( F - stride ) / 2* 有 padding 輸出矩陣長寬公式為:Output size = (N - F + 2P) / stride + 1

激活函數(shù)


如上圖所示,一個filter或者神經(jīng)元的內(nèi)部計算過程,我們可以看到通過卷積并加上bias后(其實在感知機那個時代到這一步就可以了,模型就具備了線性分類的能力,但是大千世界我們的分類問題很少是線性函數(shù)可以擬合的,所以我們就需要擬合非線性函數(shù)),filter還做了一次函數(shù)映射運算,這里的函數(shù) f 就是我們的非線性激活函數(shù),它的作用是:使模型不再是線性組合,具有可以逼近任意函數(shù)的能力。下圖就是我們經(jīng)常使用激活函數(shù) ReLU,還有sigmoid函數(shù)或者tanh函數(shù)這些,讀者可以自行搜索。

池化過程

池化的作用和特點:

  1. 降維,減少網(wǎng)絡(luò)的參數(shù),達到防止過擬合的效果
  2. 可以實現(xiàn)平移、旋轉(zhuǎn)的不變性
  3. 只改變圖像尺寸,不改變圖像深度
  4. 沒有需要訓(xùn)練的參數(shù)
  5. 計算公式為:Output size = (N - F) / stride + 1

以上我們了解了 卷積神經(jīng)網(wǎng)絡(luò) -- 卷積核 -- 卷積過程 -- 池化過程,下面我們就來了解一些經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò)。

經(jīng)典卷積神經(jīng)網(wǎng)絡(luò)

LeNet-5

論文名字:Gradient-Based Learning Applied to Document Recognition
論文地址:
chrome-extension://ikhdkkncnoglghljlkmcimlnlhkeamad/pdf-viewer/web/viewer.html?file=http%3A%2F%2Fwww.dengfanxin.cn%2Fwp-content%2Fuploads%2F2016%2F03%2F1998Lecun.pdf

特點:

  1. 奠定了現(xiàn)代卷積神經(jīng)網(wǎng)絡(luò)的基石
  2. 不是使用獨立像素直接作為輸入,使用卷積包含了圖像的空間相關(guān)性(多個像素共同作用)
  3. 每個卷積層包含三個部分:卷積、池化和非線性激活函數(shù)
  4. 使用卷積提取空間特征
  5. 降采樣的平均池化層
  6. 雙曲正切(Tanh)或S型(Sigmoid)的激活函數(shù)
  7. MLP(多層感知機,全連接輸出)作為最后的分類器
  8. 層與層之間的稀疏連接減少計算復(fù)雜度

AlexNet


論文名字:ImageNet Classification with Deep Convolutional Neural Networks
論文地址:
chrome-extension://ikhdkkncnoglghljlkmcimlnlhkeamad/pdf-viewer/web/viewer.html?file=http%3A%2F%2Fpapers.nips.cc%2Fpaper%2F4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf

特點:

  1. ILSVRC 2012 第一名
  2. 成功使用Relu作為CNN的激活函數(shù),比sigmoid好:①計算量小,sigmoid涉及指數(shù)運算、②不容易出現(xiàn)梯度消失,sigmoid在兩頭梯度接近于0、③緩解過擬合,會使部分神經(jīng)元輸出為0
  3. 訓(xùn)練時使用使用dropout避免過擬合
  4. 使用最大池化,避免平均池化的模糊效果,并讓步長比池化核的尺寸小,提升特征豐富性
  5. 提出了LRN(Local Response Normalization)層,即局部響應(yīng)歸一化層,對局部神經(jīng)元響應(yīng)較大的值變得更大并抑制反饋較小的神經(jīng)元,增強了模型的泛化能力(后面的網(wǎng)絡(luò)不怎么會使用了,因為效果不明顯并且有其它更好的方法)
  6. 使用CUDA(Compute Unified Device Architecture)通用并行計算架構(gòu),加速深度卷積網(wǎng)絡(luò)的訓(xùn)練
  7. 數(shù)據(jù)增強:隨機重256的原始圖像上截取224大小并水平翻轉(zhuǎn),預(yù)測時取圖片四個角加中間共五個位置并左右翻轉(zhuǎn),共進行10次預(yù)測求均值
  8. 因為當(dāng)時計算速度的限制,如圖,這里有兩個分支,即使用了兩塊GPU同時計算

名詞解釋:

  • SGD:stochastic gradient descent,即隨機梯度下降
  • Momentum:即動量,它模擬的是物體運動時的慣性,即更新的時候在一定程度上保留之前更新的方向,同時利用當(dāng)前batch的梯度微調(diào)最終的更新方向
  • L2:正則化方法
  • TOP5:從一千類里面找出5五個最后可能的分類結(jié)果,其中你五個判定結(jié)果都不對的概率

ZFNet


論文名字:Visualizing and Understanding Convolutional Neural Networks
論文地址:
chrome-extension://ikhdkkncnoglghljlkmcimlnlhkeamad/pdf-viewer/web/viewer.html?file=https%3A%2F%2Farxiv.org%2Fpdf%2F1311.2901.pdf

特點:

  1. ILSVRC 2013 第一名
  2. 大量闡述了卷積神經(jīng)網(wǎng)絡(luò)的直觀概念,以及可視化操作的方法值得借鑒
  3. 基于AlexNet的優(yōu)化

VGGNet


論文名字:Very Deep Convolutional Networks for Large-Scale Image Recognition
論文地址:
chrome-extension://ikhdkkncnoglghljlkmcimlnlhkeamad/pdf-viewer/web/viewer.html?file=https%3A%2F%2Farxiv.org%2Fpdf%2F1409.1556.pdf

特點:

  1. 只使用了33的小型卷積核以及22的最大池化層,結(jié)構(gòu)簡潔
  2. 得出了LRN層作用不大
  3. 得出了越深的網(wǎng)絡(luò)效果越好
  4. 11的卷積也是很有效的,但是沒有33的卷積好,大一些的卷積可以學(xué)習(xí)更大的空間特征
  5. 2個串聯(lián)的33卷積的感受野和一個55的感受野一樣,并且擁有比一個5*5的卷積層更多的非線性變換(前者使用了二次ReLU激活函數(shù))
  6. 得出了越深的網(wǎng)絡(luò)效果越好
  7. ILSVRC 2014 第二名


GoogLeNet



注,這里只是V1模型,Google Inception Net大家族里面還有其它的模型,比如:V2、V3、V4等,讀者可以自行了解

論文名字:Going deeper with convolutions
論文地址:
chrome-extension://ikhdkkncnoglghljlkmcimlnlhkeamad/pdf-viewer/web/viewer.html?file=https%3A%2F%2Farxiv.org%2Fpdf%2F1409.4842.pdf

特點:

  1. 控制了計算量和參數(shù)量的同時,獲得了非常好的分類性能
  2. 除去了最后的全連接層,使用全局平均池化層,減少了參數(shù)量減輕了過擬合,并且一個通道就代表一個類型的特征
  3. Inception module模型的精心設(shè)計,本身就是一個小網(wǎng)絡(luò)而且具有分支提高了網(wǎng)絡(luò)的寬度,通過疊加可以構(gòu)建一個大網(wǎng)絡(luò)
  4. 使用中間層輸出分類并加到最終分類結(jié)果中,相當(dāng)于做了模型融合,增加了反向傳播的梯度信號,也提供了額外正則化,預(yù)測前向傳播的時候會將其拋棄
  5. 大量是用了1*1的卷積核,使用很小的計算量就能增加一層特征變化和非線性化
  6. ILSVRC 2014 第一名

11卷積的好處:*
1.實現(xiàn)跨通道特征信息的整合
2.可以對輸出通道升維和降維 (33、55都涵蓋了局部信息所以不能像 1*1 一樣只考慮通道信息來升降維度,卷積核的深度適合原圖像保持一致的,升降維是體現(xiàn)在卷積核的個數(shù)上面)

ResNet


注,人類的top5為5.1%單從這方面考慮它已超越人類

論文名字:Going deeper with convolutions
論文地址:
chrome-extension://ikhdkkncnoglghljlkmcimlnlhkeamad/pdf-viewer/web/viewer.html?file=https%3A%2F%2Farxiv.org%2Fpdf%2F1409.4842.pdf

提出原因

提出的思想

  1. resnet最初的想法是在訓(xùn)練集上,深層網(wǎng)絡(luò)不應(yīng)該比淺層網(wǎng)絡(luò)差,因為只需要深層網(wǎng)絡(luò)多的那些層做恒等映射就簡化為了淺層網(wǎng)絡(luò)。所以從學(xué)習(xí)恒等映射這點出發(fā),考慮到網(wǎng)絡(luò)要學(xué)習(xí)一個F(x)=x的映射比學(xué)習(xí)F(x)=0的映射更難,所以可以把網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計成H(x)= F(x) + x,這樣就即完成了恒等映射的學(xué)習(xí),又降低了學(xué)習(xí)難度。這里的x是殘差結(jié)構(gòu)的輸入,F(xiàn)是該層網(wǎng)絡(luò)學(xué)習(xí)的映射,H是整個殘差結(jié)構(gòu)的輸出。 -- 知乎回答
  2. 網(wǎng)絡(luò)解釋:其實就是將輸入x傳到輸出作為初始結(jié)果,那么我們需要學(xué)習(xí)的目標(biāo)就是F(x) = H(x) – x ,
    H(x)是期望輸出,F(xiàn)(x)是學(xué)習(xí)的映射函數(shù),即學(xué)習(xí)他們之間的差比學(xué)習(xí)整個內(nèi)容容易

基本網(wǎng)絡(luò)結(jié)構(gòu)

特點:

  1. 每個CNN層都使用了Batch Normalization :對每個mini-batch數(shù)據(jù)的內(nèi)部進行標(biāo)準(zhǔn)化處理,使輸出規(guī)范化到0-1的正太分布,某種意義上起到了正則化的作用,所以可以減少或者取消dropout并學(xué)習(xí)率可以設(shè)置大一點
  2. 使用了xavier算法,通過輸入和輸出神經(jīng)元的數(shù)目自動確定權(quán)值矩陣的初始化大小。
  3. Residual Networks are Exponential Ensembles of Relatively Shallow Networks 論文指出,這個網(wǎng)絡(luò)其實就是由多個淺層網(wǎng)絡(luò)疊加而且并不是真正意義上的極深網(wǎng)絡(luò),并沒有解決梯度消失問題而是規(guī)避了
  4. ILSVRC 2015 第一名

參考:《TensorFlow實戰(zhàn)》 -- 黃文堅 唐源 、Fei-Fei Li CNN課程PPT、網(wǎng)絡(luò)相關(guān)paper

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,156評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,401評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,069評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,873評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 71,635評論 6 408
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,128評論 1 323
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,203評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,365評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,881評論 1 334
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,733評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,935評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,475評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,172評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,582評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,821評論 1 282
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,595評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 47,908評論 2 372

推薦閱讀更多精彩內(nèi)容