CNN卷積神經(jīng)網(wǎng)絡(luò)全面生動解讀-深度學(xué)習(xí)筆記1

原文地址:http://www.itdecent.cn/p/1c9daf19b0d9
更多機(jī)器學(xué)習(xí)、深度學(xué)習(xí)筆記(含python、TensorFlow代碼實現(xiàn)):http://blog.csdn.net/qq_31456593/article/details/69340697

一、前言

卷積神經(jīng)網(wǎng)絡(luò)的產(chǎn)生是為了解決深層神經(jīng)網(wǎng)絡(luò)參數(shù)多訓(xùn)練難的問題,并獲得更好的分類效果。我們知道在深度學(xué)習(xí)出現(xiàn)之前,傳統(tǒng)神經(jīng)網(wǎng)絡(luò)當(dāng)層數(shù)變多時,反向傳播將會變得困難,且對于一些高維的輸入往往需要大量的參數(shù),因此復(fù)雜神經(jīng)網(wǎng)絡(luò)的訓(xùn)練成了急需解決的問題。同時,由于全連接網(wǎng)絡(luò)提取的前一層的全部信息,整體特征擬合能力較低,且易于過擬合于局部樣本。

卷積神經(jīng)網(wǎng)絡(luò)的實現(xiàn)來源于對于視覺神經(jīng)系統(tǒng)的研究。科學(xué)家發(fā)現(xiàn),人對事物的觀察是通過對不同特征捕獲的綜合,視覺神經(jīng)系統(tǒng)中有專門負(fù)責(zé)不同特征感知的視覺元。從對視覺神經(jīng)系統(tǒng)的研究出發(fā),神經(jīng)網(wǎng)絡(luò)的研究者提出用一個神經(jīng)元每次觀察輸入的部分特征(比如圖片的一小塊),然后通過逐步移動的方法觀察整個輸入的方法,然后用多個這種神經(jīng)元提取輸入的輸入的不同特征,最后在通過一個全連接網(wǎng)絡(luò)對這些特征進(jìn)行整合,最終達(dá)成分類效果。下圖形象的描述了這種特征的提取。


通過多個特征神經(jīng)元代替一個全連接層,我們發(fā)現(xiàn)參數(shù)的數(shù)量大大減小,且由于圖像存在大量相同的基本特征信息,卷積神經(jīng)網(wǎng)絡(luò)在計算機(jī)視覺領(lǐng)域取得了非常好的效果。

二、簡介

卷積神經(jīng)網(wǎng)絡(luò)就是由卷積層、池化層、全連接層構(gòu)成的具有局部感知和權(quán)值共享能力的深層神經(jīng)網(wǎng)絡(luò)。


卷積神經(jīng)網(wǎng)絡(luò)最主要的特點就是局部感知和權(quán)值共享。局部感知使其每次只需感知較小的區(qū)域,降低了參數(shù)數(shù)量,也提供了特征擬合能力(特征簡單了,擬合更容易)。而全值共享,使一些基本特征可得到重復(fù)利用,使參數(shù)可以共享,提高了神經(jīng)網(wǎng)絡(luò)的訓(xùn)練效果。
卷積層: 做特征的提取,輸出對應(yīng)得feature map
池化層: 就是對數(shù)據(jù)進(jìn)行下采樣,減少數(shù)據(jù)處理量同時保留有用信息
全連接層: 就是對提取特征進(jìn)行組織綜合,輸出識別物體的分類情況
關(guān)于網(wǎng)絡(luò)的形象理解可見下圖。

三、重要概念

接下來我們來看一些重要概念。

卷積

卷積的本質(zhì)就是加權(quán)疊加。卷積核與一個連接觀察窗口的全連接神經(jīng)元類似,因此我們用它來代替我們上文提到的特征觀察神經(jīng)元,并最后通過窗口滑動觀察整個輸入,輸出一個 feature map

一維卷積


圖中的M向量為卷積核,N向量為輸入,P向量為輸出。其中P[2] = N[0] * M[0] + ... + N[4] * M[4]。
因為圖像是二維的,所以我們用到的一般是下面的二維卷積

二維卷積


卷積層中卷積核的使用,一般如上圖所示。卷積層是卷積核在上一級輸入層上通過逐一滑動窗口計算而得,卷積核中的每一個參數(shù)都相當(dāng)于傳統(tǒng)神經(jīng)網(wǎng)絡(luò)中的權(quán)值參數(shù),與對應(yīng)的局部像素相連接,將卷積核的各個參數(shù)與對應(yīng)的局部像素值相乘之和,(通常還要再加上一個偏置參數(shù)),得到卷積層上的結(jié)果(即feature map)。

多通道多個卷積核的卷積計算

下面是3通道(RGB),2個卷積核的計算過程。


  • 左邊是輸入(773中,7*7代表圖像的像素/長寬,3代表R、G、B 三個顏色通道)
  • 中間部分是兩個不同的濾波器Filterw0、Filter w1
  • 最右邊則是兩個不同的輸出(即2個feature map,該隱藏層深度為2,提取2類特征)
    隨著左邊數(shù)據(jù)窗口的平移滑動,卷積核Filter w0 / Filter w1對不同的局部數(shù)據(jù)進(jìn)行卷積計算。其中每個卷積核有3個3*3的矩陣分別與與三個通道的觀察窗口做卷積最后求和作為輸出。
    卷積核的權(quán)重矩陣就是訓(xùn)練時要學(xué)習(xí)的,它就是要提取的特征,神經(jīng)網(wǎng)絡(luò)再根據(jù)卷積提取的特征去觀察輸入(比如圖片)

Relu激活函數(shù)

最近幾年卷積神經(jīng)網(wǎng)絡(luò)中,激活函數(shù)往往不選擇sigmoid或tanh函數(shù),而是選擇relu函數(shù)。Relu函數(shù)的定義是:$f(x)= max(0,x)$
Relu函數(shù)圖像如下圖所示:



Relu函數(shù)作為激活函數(shù),有下面幾大優(yōu)勢:

  • 速度快 和sigmoid函數(shù)需要計算指數(shù)和倒數(shù)相比,relu函數(shù)其實就是一個max(0,x),計算代價小很多。
  • 減輕梯度消失問題 回顧計算梯度的公式$\nabla=\sigma'\delta x$。其中,$\sigma'$是sigmoid函數(shù)的導(dǎo)數(shù)。在使用反向傳播算法進(jìn)行梯度計算時,每經(jīng)過一層sigmoid神經(jīng)元,梯度就要乘上一個$\sigma'$。從下圖可以看出,$\sigma'$函數(shù)最大值是1/4。因此,乘一個會導(dǎo)致梯度越來越小,這對于深層網(wǎng)絡(luò)的訓(xùn)練是個很大的問題。而relu函數(shù)的導(dǎo)數(shù)是1,不會導(dǎo)致梯度變小。當(dāng)然,激活函數(shù)僅僅是導(dǎo)致梯度減小的一個因素,但無論如何在這方面relu的表現(xiàn)強(qiáng)于sigmoid。使用relu激活函數(shù)可以讓你訓(xùn)練更深的網(wǎng)絡(luò)。
  • 稀疏性 通過對大腦的研究發(fā)現(xiàn),大腦在工作的時候只有大約5%的神經(jīng)元是激活的,而采用sigmoid激活函數(shù)的人工神經(jīng)網(wǎng)絡(luò),其激活率大約是50%。有論文聲稱人工神經(jīng)網(wǎng)絡(luò)在15%-30%的激活率時是比較理想的。因為relu函數(shù)在輸入小于0時是完全不激活的,因此可以獲得一個更低的激活率

四、網(wǎng)絡(luò)結(jié)構(gòu)

  • 最左邊是數(shù)據(jù)輸入層
    對數(shù)據(jù)做一些處理,比如去均值(把輸入數(shù)據(jù)各個維度都中心化為0,避免數(shù)據(jù)過多偏差,影響訓(xùn)練效果)、歸一化(把所有的數(shù)據(jù)都?xì)w一到同樣的范圍)、PCA/白化等等。CNN只對訓(xùn)練集做“去均值”這一步。
  • 中間是
    CONV:卷積層,線性乘積 求和。
    RELU:激勵層,使用relu做卷積層的激活函數(shù)。
    POOL:池化層,簡言之,即取區(qū)域平均或最大。
  • 最右邊是
    FC:全連接層
    之所以出現(xiàn)這么多不同的描述卷積神經(jīng)網(wǎng)絡(luò)的圖是為了循序漸進(jìn)地幫助大家理解其網(wǎng)絡(luò)結(jié)構(gòu)。

卷積層


卷積核雖然模擬的是一個特征觀察神經(jīng)元,但它并不屬于卷積層,它相當(dāng)于一個特征過濾器(或說是一個權(quán)重矩陣)。它將符合自己要求的特征輸出到feature map上。
至于卷積層為什么可以提取特征并取得很好的效果,可以看下面表示特征的卷積核與輸入圖片進(jìn)行運算后提取的feature map



可以看出不同卷積核將提取圖片中不同的特征,一般第一層提取的都是邊、角、色彩強(qiáng)度等低維的特征。正如下圖



然后多個卷積層對特征進(jìn)行提取和重組后,就能得到比較復(fù)雜的特征

relu層

我們這里暫且把激勵函數(shù)relu也當(dāng)作一層,卷積后加上relu激勵函數(shù)有


池化層


池化層里我們用的maxpooling,將主要特征保留,舍去多余無用特征,這樣就可以實現(xiàn)信息壓縮,比如下圖所示



經(jīng)過多輪的卷積和池化,將得到最終的特征表示


全連接層

最后用全連接層對特征進(jìn)行擬合



并輸出不同分類的概率



這就是卷積神經(jīng)網(wǎng)絡(luò)獲取特征并實現(xiàn)圖像分類的整個過程,通過這個過程,大家應(yīng)該也對卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)有了比較深刻全面的了解。

五、應(yīng)用

幾個典型的神經(jīng)網(wǎng)絡(luò)應(yīng)用如下

  • LeNet,這是最早用起來的卷積神經(jīng)網(wǎng)絡(luò),Yann LeCun在論文LeNet提到。
  • AlexNet,2012 ILSVRC比賽遠(yuǎn)超第2名的卷積神經(jīng)網(wǎng)絡(luò),和LeNet的結(jié)構(gòu)比較像,只是更深,同時用多層小卷積層疊加提到大卷積層。
  • ZF Net,2013 ILSVRC比賽冠軍,可以參考論文ZF Net
  • GoogLeNet,2014 ILSVRC比賽冠軍,Google發(fā)表的論文Going Deeper with
    Convolutions有具體介紹。
  • VGGNet,也是2014 ILSVRC比賽中的模型,有意思的是,即使這個模型當(dāng)時在分類問題上的效果,略差于google的GoogLeNet,但是在很多圖像轉(zhuǎn)化學(xué)習(xí)問題(比如object detection)上效果奇好,它也證明卷積神經(jīng)網(wǎng)的『深度』對于最后的效果有至關(guān)重要的作用。預(yù)訓(xùn)練好的模型在pretrained
    model site可以下載。

參考材料

卷積神經(jīng)網(wǎng)絡(luò):http://blog.csdn.net/stdcoutzyx/article/details/41596663
cs231n 卷積神經(jīng)網(wǎng)絡(luò):http://cs231n.github.io/convolutional-networks/
cnn筆記通俗理解卷積神經(jīng)網(wǎng)絡(luò):http://blog.csdn.net/v_july_v/article/details/51812459
卷積神經(jīng)網(wǎng)絡(luò)工作原理直觀的解釋?:https://www.zhihu.com/question/39022858
CNN入門詳解及TensorFlow源碼實現(xiàn)--深度學(xué)習(xí)筆記:http://blog.csdn.net/qq_31456593/article/details/71108257
[透析] 神經(jīng)網(wǎng)絡(luò)如何工作(視頻):https://www.youtube.com/embed/FmpDIaiMIeA
卷積神經(jīng)網(wǎng)絡(luò):https://www.zybuluo.com/hanbingtao/note/485480

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 卷積神經(jīng)網(wǎng)絡(luò)類似于一般的神經(jīng)網(wǎng)絡(luò),由可學(xué)習(xí)的權(quán)重和誤差組成,每一個神經(jīng)元接受一些輸入,完成一些非線性的操作。整個神...
    與爾巖說閱讀 2,487評論 0 4
  • 本系列文章面向深度學(xué)習(xí)研發(fā)者,希望通過Image Caption Generation,一個有意思的具體任務(wù),深入...
    imGeek閱讀 2,721評論 1 33
  • 一個好的習(xí)慣,只要堅持下來,就會有收獲。但是最怕的是沒有恒心。 最近在讀《原則》一書,其中有一段話說的特別的好:做...
    衣小羊閱讀 655評論 0 51
  • 一周的高強(qiáng)度工作讓我內(nèi)心充盈,但稍一停歇的身心就迸出小疲憊,于是開啟修復(fù)模式,早晨晚起補覺,中午繼續(xù)補覺,...
    艷之雪閱讀 283評論 0 0
  • 感情里哪來那么多對錯,愛的多的那一方永遠(yuǎn)都會先低頭,心都給你了還要怎么計較,如果當(dāng)初不對你那么在乎 是不是分開了也...
    檐下聽雨閱讀 236評論 0 0

友情鏈接更多精彩內(nèi)容