這篇文章給大家介紹CNN網(wǎng)絡(luò)層的知識有哪些,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
成都創(chuàng)新互聯(lián)公司專注于薛城企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城網(wǎng)站建設(shè)。薛城網(wǎng)站建設(shè)公司,為薛城等地區(qū)提供建站服務(wù)。全流程按需求定制制作,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
卷積神經(jīng)網(wǎng)絡(luò)(CNN)由輸入(Inputs)、卷積層(Convolutions layer)、激活層(Activation)、池化層(Pooling layer)和全連接層(Fully Connected, FC)成。這句話的意思是CNN里面可以有這些層,但是每種網(wǎng)絡(luò)層(Layer)的個(gè)數(shù)理論上是可以任意多個(gè)的。這也就有了后來的AlexNet,GoogLeNet,ResNet等著名的網(wǎng)絡(luò)結(jié)構(gòu),后面我會選擇一兩個(gè)介紹下吧。他們的主要區(qū)別就在于Layer的深度不一樣,也就是Layer的數(shù)量。一般來說Layer越深,能學(xué)習(xí)到的特征就越多。但是Layer越多需要的數(shù)據(jù)量就越大,需要的計(jì)算資源也就更多。但是近幾年大量可獲得的數(shù)據(jù)的出現(xiàn)(ImageNet Datasets),更牛皮的GPU (NVIDIA),促進(jìn)了Layer向更深的方向發(fā)展。
今天呢我還是會再舉個(gè)栗子,通過下面這張圖,把CNN涉及到的網(wǎng)絡(luò)層的一些細(xì)節(jié)逐一介紹。
圖1:卷積神經(jīng)網(wǎng)絡(luò)細(xì)節(jié)圖(來源于網(wǎng)絡(luò))
我們從左往右逐個(gè)先大概瀏覽一下,首先是一張31x39x1大小的一張灰度圖,然后通過4個(gè)Convolution layer,3個(gè)Pooling layer, 一個(gè)FC,最后是一個(gè)用于分類的SoftMax layer。如果換做彩色圖,也是可以的,對于灰度圖和彩色圖處理上的區(qū)別,可能就在于最開始的通道數(shù)(channel number)不一樣,其實(shí)并不影響什么,通過卷積之后得到的特征圖(FeatureMaps),其實(shí)就是通道(channel)。
1. Inputs-->Convolutional layer1-->max-Pooling1
輸入是一張圖片,然后對他做一系列的處理計(jì)算,最后就能知道它是什么,比如說可以知道它是一個(gè)人頭像的照片。
然后我們看一下細(xì)節(jié)的東西,圖片的中間有一個(gè)4x4x1大小的卷積核。通過Convolutional layer 1得到一個(gè)28x36x20大小的Feature Maps。這里有個(gè)公式之前提到過,就是(31-4+1)x(39-4+1)=28x36。如果圖片大小和卷積核大小變了,還是一樣的計(jì)算方法哈。這里是沒有加邊緣的,就是之前提到過得Zero Padding,后面遇到了再說細(xì)節(jié)。為什么是20個(gè)Feature Maps呢?是因?yàn)樗昧?0個(gè)4x4大小的卷積核對圖像做卷積處理。為什么要用20個(gè)呢?是因?yàn)樘卣鲌D越多,可以學(xué)習(xí)到的特征就越多。那可不可以用更大的數(shù)字?可以的。但是不保證效果一定就好。
還是那句話,deep learning是一門實(shí)驗(yàn)性極強(qiáng)的學(xué)科,參數(shù)的設(shè)置都是要通過具體的問題,經(jīng)過多次實(shí)驗(yàn)最終得到的。所以說做deep learning是一個(gè)很費(fèi)時(shí)間,資源的工作。還記得我剛開始要學(xué)deep learning的時(shí)候,有人就說不建議一個(gè)人去搞這個(gè),最好有個(gè)團(tuán)隊(duì),因?yàn)闊o論從硬件和軟件,都是一個(gè)挑戰(zhàn),我敢說國內(nèi)很多大學(xué)的實(shí)驗(yàn)室,是沒有相關(guān)的計(jì)算資源的。當(dāng)時(shí)我就不明白為啥一個(gè)人不行,所以我傻乎乎的堅(jiān)持學(xué),哎,想想那個(gè)過程,都是淚?。。∪绻悻F(xiàn)在的狀態(tài)和我開始的時(shí)候是一樣的,我建議keep going,you can do it better ! 打好基礎(chǔ),問題會一步步解決的!卷積層就說到這,下面再看一下Pooling。
你可能也注意到了,這張圖寫的Max-Pooling,也叫最大值池化。那有沒有別的Pooling?有。還有一種但沒有Max更常用的叫做均值Pooling,Mean-Pooling。從名稱上應(yīng)該就能體會到他們的區(qū)別,MaxPooling呢就是取池化窗口(Pooling Window)中最大的那個(gè)值最為新的值,MeanPooling呢就是取平均值。上圖的Pooling Window的池化大?。≒ooling size)是2x2,也就是一個(gè)window里面有4個(gè)值,對吧,然后max一下,就是把最大的取出來。先別想整幅圖,就看這個(gè)2x2大小的圖,Pooling之后相當(dāng)于把長和寬都取了一半,對不對?2x2取最大值,那不就剩下1個(gè)數(shù)了,1個(gè)就是1x1大小。那么對于整副圖來說,圖片的大小也就變?yōu)樵瓉淼囊话?。那么問題來了,為什么要做Pooling?不做行不行?
一般來說,Pooling可以減小輸入的大小,加速模型的訓(xùn)練過程。但是這樣做會不會造成信息的損失呢?損失肯定是有的,但是相比如訓(xùn)練時(shí)間以及最后的準(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ū)別是什么呢?這個(gè)各位看官自己去查一下吧,不難,就是幾個(gè)數(shù)學(xué)公式,我舉個(gè)栗子吧,不想單獨(dú)講一次了。比如我們的relu,公式是
F(x) = max(0, x)
是不是很簡單!relu就是把輸入x和0比較一下,取最大值,說白了就是把正數(shù)保留,負(fù)數(shù)變?yōu)?。函數(shù)圖像就不畫了,但是各位要去看一下哦~。
圖2: (./copy圖1.sh )(方便看)
2. Convolutional layer 4--> Deephidden identity features
在這個(gè)之前把1 Inputs-->Convolutional layer1-->max-Pooling1再double一下就可以了,計(jì)算方法完全一樣,其實(shí)你也可以triple kill,quadruple kill,甚至 penta kill一下。都是沒得問題的。只不過需要注意的是,不論你用什么框架,TensorFlow,Keras,還是Caffe,還是別的,都要注意他們先后的參數(shù)設(shè)置,要保證正確。如果不正確就會導(dǎo)致前一個(gè)Layer的輸出無法作為后一個(gè)Layer的輸入,說白了就是要匹配。如果不懂,可以去嘗試寫n個(gè)這樣的循環(huán),先不考慮最后分類的結(jié)果怎么樣,n你自己定,然后你就明白了。(為了讓大家動手寫,我也是操碎了心吶!)
到了Convolutional 4的時(shí)候,原始圖片變?yōu)榱?0個(gè)1x2的Feature Maps。最后這個(gè)FC稍微有點(diǎn)特殊,特殊之處在于他的一部分是Convolutional layer 4,一部分是Max-Pooling layer 3。暫且可以不考慮那么多,就說Convolutionallayer 4,他經(jīng)過FC之后,變?yōu)?0x2x1=160維特征的一個(gè)特征向量。Deep hidden identity features就是經(jīng)過前面這一系列完美(亂七八糟)的計(jì)算得到的深層的關(guān)于輸入圖像的特征。到這里應(yīng)該明白了什么是FC,簡單說就是把上一個(gè)layer的特征全部鋪平(Dense)了。
關(guān)于特征(Features)其實(shí)坑點(diǎn)也挺多的,在Machine Learning里面Feature selection 也是一個(gè)重要的課題,后面再講吧。最后面的那個(gè)Soft-max layer,就是把FC做一個(gè)多分類回歸,關(guān)于soft-max分類呢,他是sigmoid的一個(gè)推廣,sigmoid一般解決二分類問題,而soft-max呢是多分類。細(xì)節(jié)請關(guān)注后續(xù)分享!
關(guān)于CNN網(wǎng)絡(luò)層的知識有哪些就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
當(dāng)前標(biāo)題:CNN網(wǎng)絡(luò)層的知識有哪些
當(dāng)前網(wǎng)址:http://muchs.cn/article16/jsoedg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)、App開發(fā)、品牌網(wǎng)站制作、營銷型網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)