吳教授的CNN課堂:進階 | 從LeNet到殘差網(wǎng)絡(ResNet)和Inception Net

基礎篇
吳教授的CNN課堂:基礎篇 | 卷積和池化

第二周是關于卷積網(wǎng)絡(CNN)進階部分,學到挺多新東西痪枫。因為之前了解過CNN基礎后,就大多在用RNN進行自然語言處理方面的研究砖第,很多CNN的最新進展雖有耳聞绍移,但是并不清楚艳悔。

特別是各個論文模型又喜歡取一些奇怪的名字(比如昨天讀的兩篇論文急凰,一個叫NTT,一個叫TMD)猜年,如果沒讀過論文抡锈,不了解一些緣由,真是傻傻分不清乔外。

之前看視覺問答時床三,預處理圖片部分需選擇訓練好的網(wǎng)絡,結(jié)果一看杨幼,一大堆什么VGG撇簿、Res聂渊、Incept這些看不懂的名詞,而且后面還加著16四瘫、19汉嗽、101等數(shù)字和V1、V2找蜜、V3這樣的版本數(shù)饼暑。結(jié)果只能兩眼一抹黑,參考別人的論文洗做,瞎選了一個弓叛。

閑話不多說,開始吧诚纸。

那些曾經(jīng)輝煌過的Net

在提到之后的ResNet和Inception Net前撰筷,最好先回顧一下CNN里面成功架構(gòu)的發(fā)展,這樣就可以把握住一條清晰的發(fā)展脈絡咬清,之后講解進階網(wǎng)絡的時候也能很快理解闭专。

首先是爺爺級的LeNet-5,因為這大概是20年前提出來的了旧烧。是當時尚且青澀影钉,而現(xiàn)在已是深度學習四大天王里的LeCun提出的,LeNet也是取自他名字前半截掘剪,5表示只有五層平委,當時用于處理MNIST這樣的手寫數(shù)字識別。

在基礎課里面吳教授也有親手把整個架構(gòu)畫出來夺谁,所以并不是很復雜廉赔。分別卷積和池化兩次后,然后直接輸入全連接網(wǎng)絡就可以了匾鸥。

LeNet

LeNet后蜡塌,因為人工智能寒冬,所以很長時間并沒有太大發(fā)展勿负。

直到13年的時候馏艾,后起之秀Alex Krizhevsky (相信不少人也看過他的博客,聽過他有名的Stanford cs231) 提出了AlexNet奴愉,在ImageNet比賽上取得了很大的成功琅摩,向大家展示了深度學習的力量,從此掀起一次浪潮锭硼。

AlexNet和LeNet差別并不是很大房资,主要不同有以下三點。

  1. 卷積層過濾器大小的一些變化檀头,網(wǎng)絡層數(shù)也多了些轰异;
  2. 使用了ReLU激活函數(shù)岖沛;
  3. 在當時用了兩個GPU來訓練
AlexNet

在AlexNet展示了深度學習在圖像處理上的成功后搭独,大家也就開始不斷在其之上完善圖像處理的CNN構(gòu)架烫止。而VGG就是第一個非常簡潔又系統(tǒng)化,提出了一套怎么使用更深的網(wǎng)絡來訓練的網(wǎng)絡架構(gòu)戳稽。

VGG

VGG的創(chuàng)舉之點在于馆蠕,比起之前那些網(wǎng)絡其中參數(shù)的混雜,它很有計劃和條理地布置了架構(gòu)中各個層的結(jié)構(gòu)惊奇。比如說可以列舉出一下幾點:

  1. 卷積層一定用3x3的過濾器互躬,填充用"same",步長選擇1颂郎;
  2. 池化層一定用2x2的窗口大小吼渡,步長選擇2;
  3. 還有就是把整個網(wǎng)絡分成幾個大的部分乓序,每部分都是卷積加池化寺酪,并且每部分過濾器的個數(shù)也有規(guī)律的增加,像這樣64 -> 128 -> 256 -> 512 -> 512替劈。

VGG是當時參賽組(Visual Geometry Group)的名稱寄雀。一般現(xiàn)在大家用到的都是VGG-16或者VGG-19,16和19也正如所想陨献,分別是對應的VGG版本中的層數(shù)盒犹。

看上去16和19層好像也很多了,但和之后ResNet這樣的動不動就101眨业,152層的巨無霸相比急膀,還是小巫見大巫。

那為什么不也增加VGG的層數(shù)呢龄捡?

這里要提到深層神經(jīng)網(wǎng)絡訓練中的一個大問題了卓嫂,那就是當層數(shù)過大時,會產(chǎn)生所謂的梯度爆炸(Exploding Gradients)和梯度消失(Vanishing Gradients)現(xiàn)象聘殖。

打個比方晨雳,如果每次的梯度相乘的系數(shù)都是小于1的數(shù),假如說0.6, 那么19 層算下來就斤,0.6的19次方就已經(jīng)是0.00061了悍募,更別提上百層了蘑辑。這樣傳播到最底層的時候洋机,能夠學習到的參數(shù)就很小了,這就是梯度消失洋魂。

反過來绷旗,梯度爆炸的情況喜鼓,如果系數(shù)大于1,多次累乘后就會得到一個很大的數(shù)衔肢,也會造成不好的結(jié)果庄岖。有點像是復利的概念,也就是那個和國王打賭要一棋盤稻子的故事角骤。

梯度爆炸還好解決隅忿,可以用梯度修剪(Gradient Clipping)修剪一下就好了。而梯度消失就有點難解決了邦尊。

因為這樣的問題背桐,所以雖然理論上普通的深處網(wǎng)絡是越深學的越好,但是實際上卻事與愿違蝉揍。下圖橫軸是網(wǎng)絡層數(shù)链峭,豎軸是訓練誤差(越小越好)。理論上隨著層數(shù)增加又沾,誤差就減小弊仪,但是實際是過了某個點之后,誤差反而會增大杖刷。

普通網(wǎng)絡訓練

那么ResNet是怎么訓練到上百層的呢励饵,難道它就不怕上面的問題嗎?

它用一個很簡單的方法解決了上面的問題滑燃。

殘差網(wǎng)絡 (ResNet)

有很多很棒的論文曲横,沒讀之前,看名字覺得很厲害的不瓶。但結(jié)果一看論文禾嫉,才發(fā)現(xiàn)方法非常之簡潔,特別是有一些利用數(shù)學知識推導出的簡單解決方法蚊丐,讓人不得不一邊拍手稱贊熙参,一邊感嘆自己數(shù)學渣。

ResNet也是這樣子的麦备,看名字很酷炫孽椰,但是打開論文一看,才發(fā)現(xiàn)原來是這樣啊凛篙。

ResNet的最主要就是Shortcut(捷徑)這個概念黍匾。來看看這到底是什么吧,首先假設我們從一個神經(jīng)網(wǎng)絡中取出兩層呛梆,當做是一個塊(block)锐涯,先不管中間是MLP或者是CNN。

而shortcut就如下圖一樣填物,從第一層的輸入直接建立一條捷徑到第二層的輸出纹腌,激活函數(shù)前霎终。

增加捷徑

也就是說第二層激活后的輸出可以會發(fā)生這樣的變化。

變成

這樣子處理之后升薯,我們得到的這一小塊就叫做Residual Block(殘差塊)莱褒,而把這些塊堆疊起來就是我們的殘差網(wǎng)絡了。很簡單吧涎劈,像下面這樣广凸,一個34層的殘差網(wǎng)絡。

34層殘差網(wǎng)絡

這樣子我們就得到殘差網(wǎng)絡蛛枚,那么實際上訓練會怎么樣呢炮障。

正是我們想要的模型,也非常符合理論坤候。

最后再提一下殘差網(wǎng)絡背后的原理胁赢,為什么這樣簡單改一下就能夠有這么好的表現(xiàn)呢。

原因是捷徑的建立白筹,使得每一個殘差塊可以很容易地學習到恒等函數(shù)智末,也就是f(x)=x。也就是說加入殘差塊之后徒河,再差也能學會恒等函數(shù)系馆,保留信息,把之前的結(jié)果直接這樣傳下去顽照,所以也就不用擔心之前提到的梯度消失問題了由蘑。

Inception網(wǎng)絡

1x1卷積

介紹Inception網(wǎng)絡前,先介紹一下其中一個很重要的概念1x1卷積代兵。

初看1x1卷積的概念會覺得很奇怪尼酿,這樣子每次對一個像素進行卷積有什么用,我們本來不就是想檢測局部的特征嗎植影。但是如果理解了通道概念的話裳擎,就能很好理解了。

因為思币,如果說普通的大窗口卷積更注重一個通道內(nèi)各個特征的互動的話鹿响,那么1x1卷積就是只在通道與通道進行卷積運算,加強了通道之間的互動谷饿。

這就是第一點惶我,加強了通道與通道之間的交流。用這個就可以只對通道進行一些操作,如用1x1卷積增加通道數(shù),減少通道數(shù)列牺,也可以不增不減带族,但是對之前的通道進行整理恃轩。

1x1卷積網(wǎng)絡還有一個好處,那就是通過合理運用可以減少整體網(wǎng)絡的運算量黎做。

還是來舉例子吧叉跛,假設有以下一個卷積過程。

正常5x5卷積

那么上面這個過程所需要的運算量大約一億兩千萬次蒸殿。

而如果我們巧妙地利用1x1卷積來對通道進行合理處理的話筷厘,像下面這樣。

利用1x1卷積

運算量會變得只有大概一千二百萬左右宏所,一下子就縮小了十倍酥艳。

什么是Inception網(wǎng)絡

有了上面的知識以后,一切就簡單多了爬骤。Inception網(wǎng)絡的核心概念是充石,既然在選擇CNN架構(gòu)的時候要為了過濾器的窗口大小考慮半天,那么何不把各個尺寸都用上去霞玄,最后再把結(jié)果接起來就好了呢骤铃。

于是就有了下面這樣的Inception模塊。有用1x1坷剧、3x3惰爬、5x5各個尺寸的卷積,而且還用到之前講到的利用1x1卷積減少運算量的技巧惫企。

最后至于整個Inception網(wǎng)絡撕瞧,就像之前殘差網(wǎng)絡一樣,把Inception模塊堆疊起來就好了狞尔。

當然論文中還有一些次要細節(jié)丛版,這里就不多說了。

而且自最初的論文之后偏序,Inception網(wǎng)絡也有很多改進硼婿,加入了很多技巧,比如之前的殘差網(wǎng)絡中的技巧禽车。所以現(xiàn)在網(wǎng)上的Inception網(wǎng)絡寇漫,后面會有V1、V2殉摔、V3之類后綴州胳,表示的就是各個版本。

深一點逸月,再深一點(不要想歪)

最后栓撞,作為余談,說說為什么Inception網(wǎng)絡要叫做Inception網(wǎng)絡。

因為在這篇正經(jīng)的學術論文里面瓤湘,作者引用了一個鏈接瓢颅,點開后會出現(xiàn)這張圖片。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末弛说,一起剝皮案震驚了整個濱河市挽懦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌木人,老刑警劉巖信柿,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異醒第,居然都是意外死亡渔嚷,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門稠曼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來形病,“玉大人,你說我怎么就攤上這事霞幅≈吓螅” “怎么了?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵蝗岖,是天一觀的道長侥猩。 經(jīng)常有香客問我,道長抵赢,這世上最難降的妖魔是什么欺劳? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮铅鲤,結(jié)果婚禮上划提,老公的妹妹穿的比我還像新娘。我一直安慰自己邢享,他們只是感情好鹏往,可當我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著骇塘,像睡著了一般伊履。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上款违,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天唐瀑,我揣著相機與錄音,去河邊找鬼插爹。 笑死哄辣,一個胖子當著我的面吹牛请梢,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播力穗,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼毅弧,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了当窗?” 一聲冷哼從身側(cè)響起够坐,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎超全,沒想到半個月后咆霜,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體邓馒,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡嘶朱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了光酣。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片疏遏。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖救军,靈堂內(nèi)的尸體忽然破棺而出财异,到底是詐尸還是另有隱情,我是刑警寧澤唱遭,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布戳寸,位于F島的核電站,受9級特大地震影響拷泽,放射性物質(zhì)發(fā)生泄漏疫鹊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一司致、第九天 我趴在偏房一處隱蔽的房頂上張望拆吆。 院中可真熱鬧,春花似錦脂矫、人聲如沸枣耀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽捞奕。三九已至,卻和暖如春拄轻,著一層夾襖步出監(jiān)牢的瞬間缝彬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工哺眯, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留谷浅,地道東北人。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像一疯,于是被迫代替她去往敵國和親撼玄。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內(nèi)容