溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

CNN網(wǎng)絡(luò)層的知識有哪些

發(fā)布時間:2022-01-04 15:24:35 來源:億速云 閱讀:168 作者:柒染 欄目:大數(shù)據(jù)

這篇文章給大家介紹CNN網(wǎng)絡(luò)層的知識有哪些,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

卷積神經(jīng)網(wǎng)絡(luò)(CNN)由輸入(Inputs)、卷積層(Convolutions layer)、激活層(Activation)、池化層(Pooling layer)和全連接層(Fully Connected,  FC)成。這句話的意思是CNN里面可以有這些層,但是每種網(wǎng)絡(luò)層(Layer)的個數(shù)理論上是可以任意多個的。這也就有了后來的AlexNet,GoogLeNet,ResNet等著名的網(wǎng)絡(luò)結(jié)構(gòu),后面我會選擇一兩個介紹下吧。他們的主要區(qū)別就在于Layer的深度不一樣,也就是Layer的數(shù)量。一般來說Layer越深,能學(xué)習(xí)到的特征就越多。但是Layer越多需要的數(shù)據(jù)量就越大,需要的計(jì)算資源也就更多。但是近幾年大量可獲得的數(shù)據(jù)的出現(xiàn)(ImageNet Datasets),更牛皮的GPU (NVIDIA),促進(jìn)了Layer向更深的方向發(fā)展。

今天呢我還是會再舉個栗子,通過下面這張圖,把CNN涉及到的網(wǎng)絡(luò)層的一些細(xì)節(jié)逐一介紹。

CNN網(wǎng)絡(luò)層的知識有哪些

圖1:卷積神經(jīng)網(wǎng)絡(luò)細(xì)節(jié)圖(來源于網(wǎng)絡(luò))

我們從左往右逐個先大概瀏覽一下,首先是一張31x39x1大小的一張灰度圖,然后通過4個Convolution layer,3個Pooling layer, 一個FC,最后是一個用于分類的SoftMax layer。如果換做彩色圖,也是可以的,對于灰度圖和彩色圖處理上的區(qū)別,可能就在于最開始的通道數(shù)(channel number)不一樣,其實(shí)并不影響什么,通過卷積之后得到的特征圖(FeatureMaps),其實(shí)就是通道(channel)。

1.  Inputs-->Convolutional layer1-->max-Pooling1

        輸入是一張圖片,然后對他做一系列的處理計(jì)算,最后就能知道它是什么,比如說可以知道它是一個人頭像的照片。

然后我們看一下細(xì)節(jié)的東西,圖片的中間有一個4x4x1大小的卷積核。通過Convolutional layer 1得到一個28x36x20大小的Feature Maps。這里有個公式之前提到過,就是(31-4+1)x(39-4+1)=28x36。如果圖片大小和卷積核大小變了,還是一樣的計(jì)算方法哈。這里是沒有加邊緣的,就是之前提到過得Zero Padding,后面遇到了再說細(xì)節(jié)。為什么是20個Feature Maps呢?是因?yàn)樗昧?0個4x4大小的卷積核對圖像做卷積處理。為什么要用20個呢?是因?yàn)樘卣鲌D越多,可以學(xué)習(xí)到的特征就越多。那可不可以用更大的數(shù)字?可以的。但是不保證效果一定就好。

還是那句話,deep learning是一門實(shí)驗(yàn)性極強(qiáng)的學(xué)科,參數(shù)的設(shè)置都是要通過具體的問題,經(jīng)過多次實(shí)驗(yàn)最終得到的。所以說做deep learning是一個很費(fèi)時間,資源的工作。還記得我剛開始要學(xué)deep learning的時候,有人就說不建議一個人去搞這個,最好有個團(tuán)隊(duì),因?yàn)闊o論從硬件和軟件,都是一個挑戰(zhàn),我敢說國內(nèi)很多大學(xué)的實(shí)驗(yàn)室,是沒有相關(guān)的計(jì)算資源的。當(dāng)時我就不明白為啥一個人不行,所以我傻乎乎的堅(jiān)持學(xué),哎,想想那個過程,都是淚?。?!如果你現(xiàn)在的狀態(tài)和我開始的時候是一樣的,我建議keep going,you can do it better ! 打好基礎(chǔ),問題會一步步解決的!卷積層就說到這,下面再看一下Pooling。

你可能也注意到了,這張圖寫的Max-Pooling,也叫最大值池化。那有沒有別的Pooling?有。還有一種但沒有Max更常用的叫做均值Pooling,Mean-Pooling。從名稱上應(yīng)該就能體會到他們的區(qū)別,MaxPooling呢就是取池化窗口(Pooling Window)中最大的那個值最為新的值,MeanPooling呢就是取平均值。上圖的Pooling Window的池化大?。≒ooling size)是2x2,也就是一個window里面有4個值,對吧,然后max一下,就是把最大的取出來。先別想整幅圖,就看這個2x2大小的圖,Pooling之后相當(dāng)于把長和寬都取了一半,對不對?2x2取最大值,那不就剩下1個數(shù)了,1個就是1x1大小。那么對于整副圖來說,圖片的大小也就變?yōu)樵瓉淼囊话?。那么問題來了,為什么要做Pooling?不做行不行?

一般來說,Pooling可以減小輸入的大小,加速模型的訓(xùn)練過程。但是這樣做會不會造成信息的損失呢?損失肯定是有的,但是相比如訓(xùn)練時間以及最后的準(zhǔn)確度,這點(diǎn)損失幾乎可以忽略。為什么可以忽略?那是因?yàn)閳D片具有“靜態(tài)性”的屬性,簡單說就是一副圖片相鄰區(qū)域的特征幾乎一樣,想想實(shí)際生活中的圖片正是這樣的,你懂的!

然后說了這么多,貌似沒有提到Activation,Activation一般是加在Convolutional后面,Activation的作用呢就是激活。怎么理解激活呢,從神經(jīng)學(xué)的角度來說,有些神經(jīng)元通過卷積之后可能就died了,所以激活一下,讓他活過來。好了別鬧了,我們處理的是圖片,明顯是無生命的東西。從數(shù)學(xué)的角度講,Activation就是為了把一些丟失的值給變回來,來彌補(bǔ)Convolutional造成的信息的損失, Activation通常有很多種做法,不同的做法對應(yīng)不同的激活函數(shù)(Activationfunction)。常見的之前提到過,比如softmax,relu,Leak relu,tanh,sigmoid等。區(qū)別是什么呢?這個各位看官自己去查一下吧,不難,就是幾個數(shù)學(xué)公式,我舉個栗子吧,不想單獨(dú)講一次了。比如我們的relu,公式是

F(x) = max(0, x)

是不是很簡單!relu就是把輸入x和0比較一下,取最大值,說白了就是把正數(shù)保留,負(fù)數(shù)變?yōu)?。函數(shù)圖像就不畫了,但是各位要去看一下哦~。

    

CNN網(wǎng)絡(luò)層的知識有哪些

圖2: (./copy圖1.sh )(方便看)

2.  Convolutional layer 4--> Deephidden identity features

         在這個之前把1 Inputs-->Convolutional layer1-->max-Pooling1再double一下就可以了,計(jì)算方法完全一樣,其實(shí)你也可以triple kill,quadruple kill,甚至 penta kill一下。都是沒得問題的。只不過需要注意的是,不論你用什么框架,TensorFlow,Keras,還是Caffe,還是別的,都要注意他們先后的參數(shù)設(shè)置,要保證正確。如果不正確就會導(dǎo)致前一個Layer的輸出無法作為后一個Layer的輸入,說白了就是要匹配。如果不懂,可以去嘗試寫n個這樣的循環(huán),先不考慮最后分類的結(jié)果怎么樣,n你自己定,然后你就明白了。(為了讓大家動手寫,我也是操碎了心吶?。?/p>

到了Convolutional 4的時候,原始圖片變?yōu)榱?0個1x2的Feature Maps。最后這個FC稍微有點(diǎn)特殊,特殊之處在于他的一部分是Convolutional layer 4,一部分是Max-Pooling layer 3。暫且可以不考慮那么多,就說Convolutionallayer 4,他經(jīng)過FC之后,變?yōu)?0x2x1=160維特征的一個特征向量。Deep hidden identity features就是經(jīng)過前面這一系列完美(亂七八糟)的計(jì)算得到的深層的關(guān)于輸入圖像的特征。到這里應(yīng)該明白了什么是FC,簡單說就是把上一個layer的特征全部鋪平(Dense)了。

關(guān)于特征(Features)其實(shí)坑點(diǎn)也挺多的,在Machine Learning里面Feature selection 也是一個重要的課題,后面再講吧。最后面的那個Soft-max layer,就是把FC做一個多分類回歸,關(guān)于soft-max分類呢,他是sigmoid的一個推廣,sigmoid一般解決二分類問題,而soft-max呢是多分類。細(xì)節(jié)請關(guān)注后續(xù)分享!

關(guān)于CNN網(wǎng)絡(luò)層的知識有哪些就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

cnn
AI