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

卷積神經(jīng)網(wǎng)絡(luò)的層級結(jié)構(gòu)

? ? ? ? 數(shù)據(jù)輸入層/ Input layer

  ? 卷積計算層/ CONV layer

  ? ReLU激勵層 / ReLU layer

  ? 池化層 / Pooling layer

  ? 全連接層 / FC layer

典型的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)

LeNet答倡、AlexNet嘿辟、VGG亏吝、GoogLeNet、Network in Network帚豪、Resnet、SENet吧碾、SKNet忍燥,以及輕量級的結(jié)構(gòu),如ShuffleNet系列紊扬、MobileNet系列等蜒茄。(以后再說)

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

卷積神經(jīng)網(wǎng)絡(luò)實際上是層次模型(hierarchical model),原始輸出通常經(jīng)過卷積操作餐屎、池化操作和非線性激活函數(shù)映射等的層層組合檀葛。原始數(shù)據(jù)一層層經(jīng)過網(wǎng)絡(luò),逐漸抽取出低層特征腹缩,直至高級語義特征屿聋,這一過程為前饋運算;網(wǎng)絡(luò)根據(jù)前饋運算的結(jié)果與真實結(jié)果之間的誤差藏鹊,通過反向傳播算法由最后一層逐漸向前反饋润讥,更新模型的參數(shù);在更新參數(shù)的模型上進行再次前饋運算伙判,重復(fù)上述步驟象对,直至整個網(wǎng)絡(luò)模型收斂。一般地宴抚,前饋運算指對樣本進行推理或者預(yù)測,反饋運算指預(yù)測誤差反向傳播更新參數(shù)甫煞。

層級結(jié)構(gòu)介紹

1.數(shù)據(jù)輸入層(對原始圖像數(shù)據(jù)進行預(yù)處理)

該層要做的處理主要是對原始圖像數(shù)據(jù)進行預(yù)處理菇曲,其中包括:

? 去均值:把輸入數(shù)據(jù)各個維度都中心化為0,如下圖所示抚吠,其目的就是把樣本的中心拉回到坐標(biāo)系原點上常潮。

? 歸一化:幅度歸一化到同樣的范圍,如下所示楷力,即減少各維度數(shù)據(jù)取值范圍的差異而帶來的干擾喊式,比如,我們有兩個維度的特征A和B萧朝,A范圍是0到10岔留,而B范圍是0到10000,如果直接使用這兩個特征是有問題的检柬,好的做法就是歸一化献联,即A和B的數(shù)據(jù)都變?yōu)?到1的范圍。

? PCA/白化:用PCA降維;白化是對數(shù)據(jù)各個特征軸上的幅度歸一化

去均值與歸一化效果圖:

去相關(guān)與白化效果圖:

2.卷積層

卷積層是卷積神經(jīng)網(wǎng)絡(luò)的核心基石里逆。在圖像識別里我們提到的卷積是二維卷積进胯,即離散二維濾波器(也稱作卷積核)與二維圖像做卷積操作,簡單的講是二維濾波器滑動到二維圖像上所有位置原押,并在每個位置上與該像素點及其領(lǐng)域像素點做內(nèi)積胁镐。卷積操作被廣泛應(yīng)用與圖像處理領(lǐng)域,不同卷積核可以提取不同的特征诸衔,例如邊沿盯漂、線性、角等特征署隘。在深層卷積神經(jīng)網(wǎng)絡(luò)中宠能,通過卷積操作可以提取出圖像低級到復(fù)雜的特征。

先介紹卷積層遇到的幾個名詞:

H:圖片高度磁餐;

W:圖片寬度违崇;

D:depth/原始圖片通道數(shù),也是卷積核個數(shù)诊霹;

F:卷積核高寬大行哐印;

P:圖像邊擴充大衅⒒埂伴箩;

S:滑動步長/stride(窗口一次滑動的長度)

K:?深度,輸出單元的深度

填充值是什么呢鄙漏?以下圖為例子嗤谚,比如有這么一個5*5的圖片(一個格子一個像素),我們滑動窗口取2*2怔蚌,步長取2巩步,那么我們發(fā)現(xiàn)還剩下1個像素沒法滑完,那怎么辦呢桦踊?

那我們在原先的矩陣加了一層填充值椅野,使得變成6*6的矩陣,那么窗口就可以剛好把所有像素遍歷完籍胯。這就是填充值的作用竟闪。

卷積計算

上圖給出一個卷積計算過程的示例圖,輸入圖像大小為H=5,W=5,D=3杖狼,即5×5大小的3通道(RGB炼蛤,也稱作深度)彩色圖像。這個示例圖中包含兩(用K表示)組卷積核本刽,即圖中濾波器W0和W1鲸湃。在卷積計算中赠涮,通常對不同的輸入通道采用不同的卷積核,如圖示例中每組卷積核包含(D=3)個3×3(用F×F表示)大小的卷積核暗挑。另外笋除,這個示例中卷積核在圖像的水平方向(W方向)和垂直方向(H方向)的滑動步長為2(用S表示);對輸入圖像周圍各填充1(用P表示)個0炸裆,即圖中輸入層原始數(shù)據(jù)為藍色部分垃它,灰色部分是進行了大小為1的擴展,用0來進行擴展烹看。經(jīng)過卷積操作得到輸出為3×3×2(用Ho×Wo×K表示)大小的特征圖国拇,即3×3大小的2通道特征圖,其中Ho計算公式為:Ho=(H?F+2×P)/S+1惯殊,Wo同理酱吝。 而輸出特征圖中的每個像素,是每組濾波器與輸入圖像每個特征圖的內(nèi)積再求和土思,再加上偏置bo务热,偏置通常對于每個輸出特征圖是共享的。輸出特征圖o[:,:,0]中的最后一個?2計算如上圖右下角公式所示己儒。

在卷積操作中卷積核是可學(xué)習(xí)的參數(shù)崎岂,經(jīng)過上面示例介紹,每層卷積的參數(shù)大小為D×F×F×K闪湾。卷積層的參數(shù)較少冲甘,這也是由卷積層的主要特性即局部連接和共享權(quán)重所決定。

??局部連接:每個神經(jīng)元僅與輸入神經(jīng)元的一塊區(qū)域連接途样,這塊局部區(qū)域稱作感受野(receptive field)江醇。在圖像卷積操作中,即神經(jīng)元在空間維度(spatial dimension何暇,即上圖示例H和W所在的平面)是局部連接嫁审,但在深度上是全部連接。對于二維圖像本身而言赖晶,也是局部像素關(guān)聯(lián)較強。這種局部連接保證了學(xué)習(xí)后的過濾器能夠?qū)τ诰植康妮斎胩卣饔凶顝姷捻憫?yīng)辐烂。局部連接的思想遏插,也是受啟發(fā)于生物學(xué)里面的視覺系統(tǒng)結(jié)構(gòu),視覺皮層的神經(jīng)元就是局部接受信息的纠修。

??權(quán)重共享:計算同一個深度切片的神經(jīng)元時采用的濾波器是共享的胳嘲。例上圖中計算o[:,:,0]的每個每個神經(jīng)元的濾波器均相同,都為W0扣草,這樣可以很大程度上減少參數(shù)了牛。共享權(quán)重在一定程度上講是有意義的颜屠,例如圖片的底層邊緣特征與特征在圖中的具體位置無關(guān)。但是在一些場景中是無意的鹰祸,比如輸入的圖片是人臉甫窟,眼睛和頭發(fā)位于不同的位置,希望在不同的位置學(xué)到不同的特征 蛙婴。請注意權(quán)重只是對于同一深度切片的神經(jīng)元是共享的粗井,在卷積層,通常采用多組卷積核提取不同特征街图,即對應(yīng)不同深度切片的特征浇衬,不同深度切片的神經(jīng)元權(quán)重是不共享。另外餐济,偏重對同一深度切片的所有神經(jīng)元都是共享的耘擂。

通過介紹卷積計算過程及其特性,可以看出卷積是線性操作絮姆,并具有平移不變性(shift-invariant)醉冤,平移不變性即在圖像每個位置執(zhí)行相同的操作。卷積層的局部連接和權(quán)重共享使得需要學(xué)習(xí)的參數(shù)大大減小滚朵,這樣也有利于訓(xùn)練較大卷積神經(jīng)網(wǎng)絡(luò)冤灾。

3.激勵層

把卷積層輸出結(jié)果做非線性映射。如果沒有激活函數(shù)辕近,或者稱為非線性映射韵吨,整個網(wǎng)絡(luò)缺失非線性,再多層的堆疊移宅,其本質(zhì)仍然是線性的归粉。常見的激活函數(shù)有Sigmoid、tanh漏峰、ReLU(參數(shù)化ReLU糠悼、隨機ReLU、leaky ReLU等)浅乔,Sigmoid與tanh容易發(fā)生飽和區(qū)倔喂,容易造成梯度消失,同時Sigmoid的值域被壓到[0, 1]靖苇。

CNN采用的激勵函數(shù)一般為ReLU(The Rectified Linear Unit/修正線性單元)席噩,它的特點是收斂快,求梯度簡單贤壁,但較脆弱悼枢,圖像如下。

激勵層的實踐經(jīng)驗:

①不要用sigmoid脾拆!不要用sigmoid馒索!不要用sigmoid莹妒!

② 首先試RELU,因為快绰上,但要小心點

③ 如果②失效旨怠,請用Leaky ReLU或者Maxout

④ 某些情況下tanh倒是有不錯的結(jié)果,但是很少

深度神經(jīng)網(wǎng)絡(luò)要解決的是一個很復(fù)雜的非凸優(yōu)化問題渔期,參數(shù)上的冗余保證了網(wǎng)絡(luò)能夠收斂到比較好的最優(yōu)值运吓。目前存在的一些辦法有:

??知識蒸餾、緊湊的網(wǎng)絡(luò)設(shè)計疯趟、濾波器層面的剪枝(如何衡量濾波器的重要性以確定剪枝對象)等

??低秩近似(稠密矩陣能夠由若干低秩小矩陣近似重構(gòu))拘哨、未加限制的剪枝、參數(shù)量化(使用聚類中心的權(quán)重代替原有權(quán)重或使用哈希)信峻、二值網(wǎng)絡(luò)(參數(shù)量化的極端情況倦青,如何二值化權(quán)重?如何傳遞梯度盹舞?)等产镐。

4.池化層

池化,又可以稱作匯合踢步,英文pooling癣亚,目的是為了減少特征圖,主要作用是通過減少網(wǎng)絡(luò)的參數(shù)來減小計算量获印, 本質(zhì)是一種降采樣述雾,具有特征不變性、特征降維兼丰、防止過擬合等作用玻孟,一般是均值池化(average pooling)和最大池化(max pooling)。通常在卷積層的后面會加上一個池化層鳍征,池化操作將保存深度大小不變黍翎,如果池化層的輸入單元大小不是二的整數(shù)倍,一般采取邊緣補零(zero-padding)的方式補成2的倍數(shù)艳丛,然后再池化匣掸。池化操作對每個深度切片獨立,規(guī)模一般為 2*2氮双,相對于卷積層進行卷積運算旺聚,池化層進行的運算一般有以下幾種:?

??最大池化(Max Pooling):取4個點的最大值。這是最常用的池化方法眶蕉。?

??均值池化(Mean Pooling):取4個點的均值。?

??高斯池化:借鑒高斯模糊的方法唧躲。不常用造挽。?

??可訓(xùn)練池化:訓(xùn)練函數(shù) ff 碱璃,接受4個點為輸入,出入1個點饭入。不常用嵌器。

??特征不變性,也就是我們在圖像處理中經(jīng)常提到的特征的尺度不變性谐丢,池化操作就是圖像的resize爽航,平時一張狗的圖像被縮小了一倍我們還能認出這是一張狗的照片,這說明這張圖像中仍保留著狗最重要的特征乾忱,我們一看就能判斷圖像中畫的是一只狗讥珍,圖像壓縮時去掉的信息只是一些無關(guān)緊要的信息,而留下的信息則是具有尺度不變性的特征窄瘟,是最能表達圖像的特征衷佃。

??特征降維,我們知道一幅圖像含有的信息是很大的蹄葱,特征也很多氏义,但是有些信息對于我們做圖像任務(wù)時沒有太多用途或者有重復(fù),我們可以把這類冗余信息去除图云,把最重要的特征抽取出來惯悠,這也是池化操作的一大作用。

5.全連接層

兩層之間所有神經(jīng)元都有權(quán)重連接竣况,通常全連接層在卷積神經(jīng)網(wǎng)絡(luò)尾部克婶。也就是跟傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)神經(jīng)元的連接方式是一樣的:

數(shù)據(jù)增廣與不平衡樣本處理

對數(shù)據(jù)簡單進行數(shù)據(jù)增廣,比如水平翻轉(zhuǎn)帕翻、隨機截取鸠补、尺度變換、旋轉(zhuǎn)等嘀掸;同時紫岩,可對顏色等進行改變從而增加數(shù)據(jù),比如顏色抖動睬塌,改變RGB或者HSV空間的值泉蝌。特殊地,如AlexNet中使用Fancy PCA揩晴,或者針對不同的任務(wù)有不同的增廣方式勋陪,如目標(biāo)檢測領(lǐng)域還涉及到檢測框,可以參見之前的一篇文章硫兰,谷歌使用數(shù)據(jù)增廣策略在目標(biāo)檢測任務(wù)上達到SOTA [4]诅愚。

對于不平衡樣本,需要從數(shù)據(jù)劫映、算法兩個層面解決违孝。

??數(shù)據(jù)層面:數(shù)據(jù)重采樣(上采樣刹前,復(fù)制或者數(shù)據(jù)擴充使得樣本少類與樣本最多的類一致;下采樣雌桑,比如在每個batch中保證正負比例相等)喇喉、類別平衡采樣(將樣本歸類,將所有類擴充到與樣本最多的類一致后隨機打亂校坑,方法與數(shù)據(jù)重采樣中的上采樣類似)

??算法層面:代價敏感

模型集成

??數(shù)據(jù)層面:測試階段數(shù)據(jù)增廣(對同一張圖像增廣成n張拣技,將n張輸入模型得到n個結(jié)果進行集成)、簡易集成法

??模型層面:單模型集成(多層特征融合耍目,將多層特征融合膏斤;網(wǎng)絡(luò)快照法)、多模型集成(多模型生成制妄,同一模型不同初始化掸绞、同一模型不同訓(xùn)練輪數(shù)、不同目標(biāo)函數(shù)耕捞、不同網(wǎng)絡(luò)結(jié)構(gòu)衔掸;多模型集成,直接平均俺抽、加權(quán)平均敞映、投票法、堆疊法(將集成結(jié)果作為新的特征訓(xùn)練另一個模型磷斧,這里的模型可以是神經(jīng)網(wǎng)絡(luò)振愿,也可以是傳統(tǒng)機器學(xué)習(xí)方法))

網(wǎng)格參數(shù)初始化

??全零初始化,但是當(dāng)全零初始化時弛饭,導(dǎo)致網(wǎng)絡(luò)輸出全部相同冕末,梯度更新完全相同,模型無法訓(xùn)練

??隨機初始化侣颂,在實際應(yīng)用档桃,通常將隨機參數(shù)服從均勻分布或者高斯分布,具體的由Xavier方法等

目標(biāo)函數(shù)(損失函數(shù)憔晒,個人認為非常重要)

??分類任務(wù):交叉熵損失函數(shù)(常用目標(biāo)函數(shù))合頁損失函數(shù)藻肄、坡道損失函數(shù)、中心損失函數(shù)

??回歸任務(wù):L1損失函數(shù)拒担、L2損失函數(shù)

網(wǎng)絡(luò)正則化(保證范化能力的同時嘹屯,避免過擬合)

??L2正則化(在機器學(xué)習(xí)中被稱為嶺回歸)、L1正則化(相比于L2从撼,能夠產(chǎn)生更稀疏的參數(shù))州弟、Elastic網(wǎng)絡(luò)正則化(L1和L2按比例混合)

??隨機失活,注意訓(xùn)練階段和測試階段的區(qū)別,需要乘系數(shù)

??增加訓(xùn)練數(shù)據(jù)呆馁,使用更多的數(shù)據(jù)擴充方式

??加入隨機噪聲

超參數(shù)設(shè)定與網(wǎng)絡(luò)訓(xùn)練

??超參數(shù)設(shè)定:輸入數(shù)據(jù)像素大小桐经、卷積層參數(shù)設(shè)定(卷積核大小、卷積操作的步長浙滤、卷積核個數(shù);通常卷積核大小為奇數(shù)气堕,一般推薦為3纺腊、5;卷積核個數(shù)一般為2的次冪)茎芭、池化層參數(shù)設(shè)定

??網(wǎng)絡(luò)訓(xùn)練:在每輪訓(xùn)練前將訓(xùn)練集順序打亂(參考依據(jù):信息論中從不相似的事件中學(xué)習(xí)總是比從相似事件中學(xué)習(xí)更具信息量)揖膜、學(xué)習(xí)率設(shè)定(初始不宜過大,后續(xù)需要減緩)梅桩、是否使用Batch Normalization壹粟、優(yōu)化算法的選擇(SGD、基于動量的SGD宿百、Nesterov趁仙、Adagrad、Adadelta垦页、RMSProp雀费、Adam等)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市痊焊,隨后出現(xiàn)的幾起案子盏袄,更是在濱河造成了極大的恐慌,老刑警劉巖薄啥,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件辕羽,死亡現(xiàn)場離奇詭異,居然都是意外死亡垄惧,警方通過查閱死者的電腦和手機刁愿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赘艳,“玉大人酌毡,你說我怎么就攤上這事±俟埽” “怎么了枷踏?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長掰曾。 經(jīng)常有香客問我旭蠕,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任掏熬,我火速辦了婚禮佑稠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘旗芬。我一直安慰自己舌胶,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布疮丛。 她就那樣靜靜地躺著幔嫂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪誊薄。 梳的紋絲不亂的頭發(fā)上履恩,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天,我揣著相機與錄音呢蔫,去河邊找鬼切心。 笑死,一個胖子當(dāng)著我的面吹牛片吊,可吹牛的內(nèi)容都是我干的绽昏。 我是一名探鬼主播,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼定鸟,長吁一口氣:“原來是場噩夢啊……” “哼而涉!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起联予,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤啼县,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后沸久,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體季眷,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年卷胯,在試婚紗的時候發(fā)現(xiàn)自己被綠了子刮。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡窑睁,死狀恐怖挺峡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情担钮,我是刑警寧澤橱赠,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站箫津,受9級特大地震影響狭姨,放射性物質(zhì)發(fā)生泄漏宰啦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一饼拍、第九天 我趴在偏房一處隱蔽的房頂上張望赡模。 院中可真熱鬧,春花似錦师抄、人聲如沸漓柑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽欺缘。三九已至,卻和暖如春挤安,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背丧鸯。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工蛤铜, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人丛肢。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓围肥,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蜂怎。 傳聞我的和親對象是個殘疾皇子穆刻,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,514評論 2 348