摘要:卷積神經(jīng)網(wǎng)絡(luò)已經(jīng)斷斷續(xù)續(xù)的學(xué)了大半年了,卻發(fā)現(xiàn)自己還是一頭霧水,連基本的概念都沒搞清楚。將卷積神經(jīng)網(wǎng)絡(luò)的基本概念和原理理了一下,并整理出來(lái),以供大家參考。
??卷積神經(jīng)網(wǎng)絡(luò)已經(jīng)斷斷續(xù)續(xù)的學(xué)了大半年了,卻發(fā)現(xiàn)自己還是一頭霧水,連基本的概念都沒搞清楚。這兩天在網(wǎng)上查了一些資料,看了一些教程。將卷積神經(jīng)網(wǎng)絡(luò)的基本概念和原理理了一下,并整理出來(lái),以供大家參考。注:本文中有些結(jié)論是本人對(duì)卷積神經(jīng)網(wǎng)絡(luò)的理解和總結(jié),如有不正,還請(qǐng)各位大蝦指正!
1.卷積神經(jīng)網(wǎng)絡(luò)的概念??卷積神經(jīng)網(wǎng)絡(luò)是(Convolutional Neural Networks,CNN)是一類包含卷積計(jì)算且有深度結(jié)構(gòu)的前饋型神經(jīng)網(wǎng)絡(luò),是深度學(xué)習(xí)的代表算法之一。卷積神經(jīng)網(wǎng)絡(luò)是模仿生物神經(jīng)網(wǎng)絡(luò)的行為特征,他從信息處理的角度對(duì)人腦神經(jīng)元網(wǎng)絡(luò)進(jìn)行抽象,建立某種簡(jiǎn)單數(shù)學(xué)模型,按不同的連接方式組成不同的網(wǎng)絡(luò)。
??卷積神經(jīng)網(wǎng)絡(luò)的構(gòu)成:
數(shù)據(jù)輸入/input-> 卷積層(卷積/CONV->激勵(lì)/RELU->池化/POOL ... n)->全連接/fullconnection->softmax/分類/歸一化->輸出2 數(shù)據(jù)輸入層
??數(shù)據(jù)輸入時(shí),需要對(duì)原始數(shù)據(jù)圖像進(jìn)行預(yù)處理,包括以下3各步驟:
??1.去均值;即將樣本的均值轉(zhuǎn)化為0.
??2.歸一化;即將樣本在各個(gè)維度上進(jìn)行歸一化處理
??3.PCA/白化; PCA(principal components analysis),是一種降維和去除相關(guān)性的方法,它通過方差來(lái)評(píng)價(jià)特征的價(jià)值,認(rèn)為方差大的特征包含信息多,應(yīng)予以保留。白化是將PCA去相關(guān)性之后將每一特征的方差歸一化到1
??在學(xué)習(xí)卷積層之前,先來(lái)了解一下卷積層相關(guān)的一些概念。
感受野(Receptive Field):
??卷積神經(jīng)網(wǎng)絡(luò)每一層輸出的特征圖(feature map)上的像素點(diǎn)在輸入圖片上映射的區(qū)域大小。通俗點(diǎn)講就是特征圖上一個(gè)點(diǎn)對(duì)應(yīng)輸入圖上的區(qū)域。
卷積核:
??卷積核就是圖像處理時(shí),給定輸入圖像,在輸出圖像中每一個(gè)像素時(shí)輸入圖像中一個(gè)小區(qū)域中像素的加權(quán)平均,其中權(quán)值由一個(gè)函數(shù)定義,這個(gè)函數(shù)稱為卷積核,也就是下面說到的filter、濾波器
卷積深度:
??卷積層卷積的次數(shù)
卷積核大?。?br>??卷積核/濾波器做卷積時(shí)每次采樣的感受野的大小。卷積核大小可以指定為小于輸入圖像尺寸的任意值,卷積核越大,可提取的輸入特征越復(fù)雜。
步長(zhǎng)/stride:
??定義了卷積核相鄰兩次掃過特征圖時(shí)位置的距離,卷積步長(zhǎng)為1時(shí),卷積核會(huì)逐個(gè)掃過特征圖的元素,步長(zhǎng)為n時(shí)會(huì)在下一次掃描跳過n-1個(gè)像素。
填充/padding:
??對(duì)圖像做卷積時(shí),nn的圖像每次卷積之后會(huì)生成(n-f+1)(n-f+1)特征,隨著卷積層數(shù)的增多,最終的卷積結(jié)果會(huì)一直縮小下去,最后變成0。這是因?yàn)樵谧鼍矸e的時(shí)候邊緣像素使用的次數(shù)相對(duì)其它像素較少,導(dǎo)致卷積后邊緣特征的不斷弱化。為了解決這個(gè)問題,我們可以在圖片邊緣進(jìn)行加0填充。稱為zero-padding。這樣padding操作就可以保證卷積前后寬高不變化。填充可以分為以下四種:
??1.有效填充(valid padding):即完全不使用填充,卷積核只允許訪問特征圖中包含完整感受野的位置。輸出的所有像素都是輸入中相同數(shù)量像素的函數(shù)。使用有效填充的卷積被稱為“窄卷積(narrow convolution)”,窄卷積輸出的特征圖尺寸為(L-f+1)/s。
??2.相同填充/半填充(same/half padding):只進(jìn)行足夠的填充來(lái)保持輸出和輸入的特征圖尺寸相同。相同填充下特征圖的尺寸不會(huì)縮減但輸入像素中靠近邊界的部分相比于中間部分對(duì)于特征圖的影響更小,即存在邊界像素的欠表達(dá)。使用相同填充的卷積被稱為“等長(zhǎng)卷積(equal-width convolution)”。
??3.全填充(full padding):進(jìn)行足夠多的填充使得每個(gè)像素在每個(gè)方向上被訪問的次數(shù)相同。步長(zhǎng)為1時(shí),全填充輸出的特征圖尺寸為L(zhǎng)+f-1,大于輸入值。使用全填充的卷積被稱為“寬卷積(wide convolution)”
??4.任意填充(arbitrary padding):介于有效填充和全填充之間,人為設(shè)定的填充,較少使用。
??卷積層參數(shù)包括卷積核大小、步長(zhǎng)和填充,三者共同決定了卷積層輸出特征圖的尺寸,是卷積神經(jīng)網(wǎng)絡(luò)重要的超參數(shù)(注:超參數(shù)是在開始學(xué)習(xí)過程之前設(shè)置值的參數(shù))。
??1. 卷積的數(shù)學(xué)概念:
??卷積/convolution是通過兩個(gè)函數(shù)f和g生成第三個(gè)函數(shù)的一種數(shù)學(xué)方法,表征函數(shù)f與g經(jīng)過翻轉(zhuǎn)和和平移后重疊部分的面積,因此,卷積也就是具備了翻轉(zhuǎn)和平移不變性。
??2.卷積的作用
??通過指定大小的卷積核/濾波器(感受野大小通常為奇數(shù)1,3,5,7,...), 按一定步長(zhǎng)對(duì)逐個(gè)掃描圖像做卷積,用來(lái)提取圖像特征。
??3.卷積操作
??做卷積時(shí),使用卷積核ffNC的矩陣,NC為輸入圖像的channel數(shù),按固定步長(zhǎng)s掃描輸入圖像進(jìn)行卷積操作。如下圖所示,卷積核/濾波器將矩陣中的數(shù)據(jù)與掃描區(qū)域?qū)?yīng)的數(shù)據(jù)相乘,并累加得到的結(jié)果作為卷積輸出結(jié)果(栗子中輸入圖像和濾波器channel為1)。掃描完整個(gè)輸入圖像之后可以得到該圖像的卷積矩陣RW*RH。
??RW=[(NW+2p-f)/s + 1];
??RH=[(NH+2p-f)/s + 1];
??對(duì)一幅圖像進(jìn)行特征提取的結(jié)果:
??從上圖可知,同樣的圖片,使用不同的卷積核,不同的卷積核/濾波器,會(huì)導(dǎo)致提取的特征點(diǎn)不一樣。
??1.池化的原理和作用
??在圖像中,相鄰位置的圖像像素具有很大的相關(guān)性。圖像在卷積之后圖像/特征的尺寸變化不大,由于圖像的相關(guān)性,導(dǎo)致卷積之后提取的圖像特征會(huì)有很大的相關(guān)性而導(dǎo)致產(chǎn)生很多冗余的特征。而池化則能夠?qū)μ卣鲌D像進(jìn)行壓縮,一方面可以簡(jiǎn)化網(wǎng)絡(luò)復(fù)雜度,另一方面可以保留圖像的主要特征。
??2.池化主要有兩種類型:
??最大池化
??池化時(shí)取區(qū)域像素的最大值作為該區(qū)域的池化結(jié)果,是目前比較通用的池化方法。
??平均池化
??池化時(shí)取區(qū)域像素的平均值作為該區(qū)域的池化結(jié)果,目前使用不多。
??3.池化的過程
??池化時(shí),使用濾波器對(duì)輸入圖像進(jìn)行掃描,在掃描區(qū)域內(nèi)取最大值(如果是平均池化則取區(qū)域內(nèi)的平均值)作為池化的結(jié)果,這樣不僅能壓縮特征圖像的大小,還能保留圖像的主要特征。濾波器使用給定的跨度對(duì)輸入圖像/特征進(jìn)行掃描,并輸出結(jié)果區(qū)域內(nèi)的最大值作/平均值作為池化結(jié)果。如下圖所示:
??假設(shè)輸入圖像的寬是NW,高是NH,濾波器尺寸是ff,步長(zhǎng)是s,池化輸出結(jié)果是RWRH。填充為P。那么
RW=[(NW-2p-f)/s+1];
RH=[(NH-2p-f)/s+1];
??如上圖所示,池化后圖像的特征數(shù)減少,可以有效的降低網(wǎng)絡(luò)的復(fù)雜度,同時(shí)保留圖像的主特征。有些類似于圖像的縮放,但有所不同的是,圖像縮放時(shí)所有的圖像特征都有有損失,但是最大池化會(huì)優(yōu)先保留圖像的主特征(最大值),從而到達(dá)更好的特征提取效果。
??激勵(lì)函數(shù)在神經(jīng)網(wǎng)絡(luò)的作用通俗上講就是將多個(gè)線性輸入轉(zhuǎn)換為非線性的關(guān)系。不使用激勵(lì)函數(shù)的話,神經(jīng)網(wǎng)絡(luò)每層都只做線性變換,多層輸入疊加后還是線性變化。因?yàn)榫€性模型的表達(dá)力不夠,激勵(lì)函數(shù)可以引入非線性因素。
??常見的激勵(lì)函數(shù):
??1.sigmoid
??如上圖所示,sigmoid函數(shù)將一個(gè)實(shí)數(shù)壓縮至0-1之間。當(dāng)x非常大時(shí),該函數(shù)無(wú)限接近1,當(dāng)x為非常大的負(fù)數(shù)時(shí),該函數(shù)無(wú)限接近0。sigmoid函數(shù)很好地解釋了神經(jīng)元受到刺激后是否會(huì)激活和向后傳遞的場(chǎng)景(0,沒有被激活,1,被完全激活),故在早期的神經(jīng)網(wǎng)絡(luò)中用得比較多。但是sigmoid函數(shù)容易出現(xiàn)梯度彌散(靠近輸出層的梯度大,參數(shù)更新快,靠近輸入層的梯度小,參數(shù)更新慢)或者梯度飽和(靠近輸出層的梯度小,參數(shù)更新慢,幾乎不再變化)。
??2.tanh
??如上圖所示,tanh(tanh(x)=sinh(x)/cosh(x))函數(shù)將輸入值壓縮至-1到1之間。tanh函數(shù)在特征相差明顯時(shí)會(huì)有很好的效果,在循環(huán)過程中會(huì)不斷擴(kuò)大特征效果。該函數(shù)與sigmoid類似,也存在著梯度彌散或梯度飽和的缺點(diǎn),它們的區(qū)別是,tanh函數(shù)是0均值的,因此在實(shí)際應(yīng)用中會(huì)比sigmoid更好。
??3.ReLU
??ReLU(Rectified Linear Unit),線性整流函數(shù),又叫修正線性單元。該函數(shù)被認(rèn)為有一定的生物學(xué)原理,并且由于在實(shí)踐中通常有著比其他常用激活函數(shù)更好的效果,而被如今的深度神經(jīng)網(wǎng)絡(luò)廣泛使用于諸如圖像識(shí)別等計(jì)算機(jī)視覺人工智能領(lǐng)域。對(duì)于進(jìn)入神經(jīng)元的輸入x,使用線性整流激活函數(shù)的神經(jīng)元會(huì)輸出max(0, wTx+b)。ReLU的缺點(diǎn)是比較脆弱,當(dāng)一個(gè)非常大的梯度經(jīng)過ReLU神經(jīng)元時(shí),更新參數(shù)后,這個(gè)神經(jīng)元再也不會(huì)被激活,導(dǎo)致所有流過這個(gè)神經(jīng)元的梯度都將變成0,造成ReLu神經(jīng)元的死亡。故在訓(xùn)練中學(xué)習(xí)率不宜設(shè)置得太高。
??4. LReLU
??LReLU(Leaky ReLU),帶泄漏線性整流函數(shù),是為了嘗試解決ReLU死亡問題而產(chǎn)生的一個(gè)變種。如上圖所示,其中ai是一個(gè)很小的常數(shù),i表示不同通道對(duì)于不同的ai。ReLU中,當(dāng)x<0時(shí),函數(shù)值為0,而Leaky ReLU則是給出了一個(gè)很小的負(fù)數(shù)梯度值。這樣保留了一些負(fù)軸的值,使得負(fù)軸的信息不會(huì)全部丟失。
??5.ELU
emsp;?ELU(The exponential Linear unit),指數(shù)線性單元。如上圖所示,ELU融合了sigmoid和RELU,左側(cè)具有軟飽和性,讓ELU對(duì)輸入變化或噪音更魯棒。右側(cè)無(wú)飽和性,能夠緩解ELU梯隊(duì)消失。
??6.Maxout
??Maxout時(shí)ReLU的一個(gè)泛化版本,如上圖所示,當(dāng)w1、b1設(shè)置為0時(shí),便轉(zhuǎn)換為ReLU公式。因此Maxout繼承了ReLU的優(yōu)點(diǎn),有沒有“一不小心就死掉”的擔(dān)憂。該函數(shù)相當(dāng)于在網(wǎng)絡(luò)中加入一個(gè)激活函數(shù)層,該函數(shù)層與其它激活函數(shù)的不同之處在于,該函數(shù)層增加了k個(gè)&神經(jīng)元,并輸出k個(gè)神經(jīng)元中最大的激活值。常見的隱含層輸出:
??hi(x)=sigmoid(xTW…i+bi)
??而Maxout網(wǎng)絡(luò)中輸出
??hi(x)=max(Zi1,Zi2,..., Zik);
??其中Zij=XTWij + bij,其中j取值范圍為[1,k]
??因此,Maxout是一個(gè)可學(xué)習(xí)的分段線性函數(shù)。實(shí)驗(yàn)證明,Maxout可以擬合任何凸函數(shù),是一個(gè)通用的函數(shù)你擬合器。如下圖所示:
;優(yōu)點(diǎn):
??1)、擬合能力非常強(qiáng),可以擬合任意凸函數(shù)
??2)、具有ReLU的所有優(yōu)點(diǎn),線性,不飽和性。
??3)、不會(huì)導(dǎo)致神經(jīng)元死亡
??缺點(diǎn):
??每個(gè)神經(jīng)元有兩組(W,b)參數(shù),那么參數(shù)量就增加一倍,這就導(dǎo)致了整體參數(shù)的數(shù)量和運(yùn)算量激增。
??全連接(Full Connection)層的每一個(gè)結(jié)點(diǎn)都與上一層的所有結(jié)點(diǎn)相連,用來(lái)把前邊提取到的特征綜合起來(lái)。它在整個(gè)卷積神經(jīng)網(wǎng)絡(luò)中起到分類器的作用。如果說卷積層、池化層和激活函數(shù)層等操作是將原始數(shù)據(jù)映射到隱層特征空間的話,全連接層則起到將學(xué)到的“分布式特征表示”映射到樣本標(biāo)記空間的作用。全連接的核心操作就是矩陣向量乘積
y=Wx
??本質(zhì)就是由一個(gè)特征空間線性變換到另一個(gè)特征空間。如下圖所示:
??在CNN網(wǎng)絡(luò)中,經(jīng)過多個(gè)卷積層和池化層后,連接著1個(gè)或1個(gè)以上的全連接層。全連接層的每個(gè)神經(jīng)元與其前一層的所有神經(jīng)元進(jìn)行全連接。全連接層可以整合卷積層或者池化層中具有類別區(qū)分的局部信息。為了提升CNN網(wǎng)絡(luò)性能,全連接層每個(gè)神經(jīng)元激勵(lì)函數(shù)一般采用ReLU函數(shù),最后一層全連接層的輸出值被傳遞給一個(gè)輸出,可以采用softmax邏輯回歸(softmax regression)進(jìn)行分類,該層可以稱為softmax層。對(duì)于一個(gè)具體的分類任務(wù),選擇一個(gè)合適的損失函數(shù)是十分重要的,CNN網(wǎng)絡(luò)中幾種常用的損失函數(shù)并分析了它們各自的特點(diǎn)。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/19902.html
摘要:神經(jīng)網(wǎng)絡(luò)的補(bǔ)充前篇后篇數(shù)據(jù)預(yù)處理權(quán)重初始化經(jīng)典神經(jīng)網(wǎng)絡(luò)搞明白后,我們接下來(lái)看看他的變種,也是本系列的主角卷積神經(jīng)網(wǎng)絡(luò)。卷積神經(jīng)網(wǎng)絡(luò)一個(gè)普通的卷積神經(jīng)網(wǎng)絡(luò)由各種層按順序堆疊而成,這些層主要分三類卷積層池化層和全連接層。 【DL-CV】神經(jīng)網(wǎng)絡(luò)的補(bǔ)充【DL-CV】數(shù)據(jù)預(yù)處理&權(quán)重初始化 經(jīng)典神經(jīng)網(wǎng)絡(luò)搞明白后,我們接下來(lái)看看他的變種,也是本系列的主角——卷積神經(jīng)網(wǎng)絡(luò)(Convolution...
閱讀 4710·2021-09-22 16:06
閱讀 2092·2021-09-22 15:22
閱讀 1435·2019-08-30 15:54
閱讀 2524·2019-08-30 15:44
閱讀 2351·2019-08-29 16:31
閱讀 2022·2019-08-29 16:26
閱讀 2339·2019-08-29 12:41
閱讀 744·2019-08-29 12:22