CVPR2016:ResNet 從根本上解決深度網(wǎng)絡(luò)退化問(wèn)題

深度殘差網(wǎng)絡(luò)(Deep residual network, ResNet)的提出是CNN圖像史上的一件里程碑事件朋魔,在2015年提出的時(shí)候便取得了五項(xiàng)第一棚菊,而何愷明大神也憑借這一paper斬獲CVPR 2016 Best Paper Honorable Mention显押。

目錄

  • 背景(深度網(wǎng)絡(luò)的退化問(wèn)題)
  • 殘差結(jié)構(gòu)
  • 殘差結(jié)構(gòu)起作用的原因
  • 網(wǎng)絡(luò)結(jié)構(gòu)
  • 實(shí)驗(yàn)結(jié)果
  • 論文地址

背景(深度網(wǎng)絡(luò)的退化問(wèn)題)

  • 對(duì)于卷積神經(jīng)網(wǎng)絡(luò)扳肛,深度是一個(gè)很重要的因素。深度卷積網(wǎng)絡(luò)自然的整合了低中高不同層次的特征乘碑,特征的層次可以靠加深網(wǎng)絡(luò)的層次來(lái)豐富挖息。因此在構(gòu)建卷積網(wǎng)絡(luò)時(shí),網(wǎng)絡(luò)的深度越高兽肤,可抽取的特征層次就越豐富越抽象套腹。所以一般我們會(huì)傾向于使用更深層次的網(wǎng)絡(luò)結(jié)構(gòu),以便取得更高層次的特征资铡。但是更深層的網(wǎng)絡(luò)結(jié)構(gòu)真的帶來(lái)了更好的表現(xiàn)嗎电禀?我們看下面這張圖:
    image
  • 可以看到,擁有56層數(shù)的網(wǎng)絡(luò)結(jié)構(gòu)表現(xiàn)明顯差于擁有20層數(shù)的網(wǎng)絡(luò)結(jié)構(gòu)害驹,造成這一現(xiàn)象的原因大概有:過(guò)擬合鞭呕、梯度消失/爆炸和深度網(wǎng)絡(luò)的退化,我們來(lái)一一剖析宛官。

過(guò)擬合

  • 對(duì)于這一點(diǎn)答案是顯然的葫松,因?yàn)檫^(guò)擬合會(huì)讓網(wǎng)絡(luò)在訓(xùn)練集上表現(xiàn)得很好,而從上圖我們可以看出底洗,無(wú)論是在訓(xùn)練集還是測(cè)試集中腋么,擁有更深層次的網(wǎng)絡(luò)表現(xiàn)均比淺層次的網(wǎng)絡(luò)差,那顯然就不是過(guò)擬合導(dǎo)致的亥揖。

梯度消失/爆炸

  • 我們先簡(jiǎn)單回顧一下概念:梯度消失/爆炸是因?yàn)樯窠?jīng)網(wǎng)絡(luò)在反向傳播的時(shí)候珊擂,反向連乘的梯度小于1(或大于1),導(dǎo)致連乘的次數(shù)多了之后(網(wǎng)絡(luò)層數(shù)加深)费变,傳回首層的梯度過(guò)小甚至為0(過(guò)大甚至無(wú)窮大)摧扇,這就是梯度消失/爆炸的概念。
  • 但我們知道挚歧,如今我們已經(jīng)習(xí)慣加入BN層(Batch Normalize)扛稽,他可以通過(guò)規(guī)整數(shù)據(jù)的分布基本解決梯度消失/爆炸的問(wèn)題,所以這個(gè)問(wèn)題也不是導(dǎo)致深層網(wǎng)絡(luò)退化的原因滑负。

深度網(wǎng)絡(luò)的退化問(wèn)題

  • 我們選擇加深網(wǎng)絡(luò)的層數(shù)在张,是希望深層的網(wǎng)絡(luò)的表現(xiàn)能比淺層好,或者是希望它的表現(xiàn)至少和淺層網(wǎng)絡(luò)持平(相當(dāng)于直接復(fù)制淺層網(wǎng)絡(luò)的特征)矮慕,可實(shí)際的結(jié)果卻讓我們大吃一驚(深度網(wǎng)絡(luò)退化)帮匾,接下來(lái)我們深究一下導(dǎo)致深度網(wǎng)絡(luò)退化的原因。
  1. MobileNet V2的論文中提到痴鳄,由于非線性激活函數(shù)Relu的存在瘟斜,每次輸入到輸出的過(guò)程都幾乎是不可逆的,這也造成了許多不可逆的信息損失。我們?cè)囅胍幌潞咦粋€(gè)特征的一些有用的信息損失了明未,那他的表現(xiàn)還能做到持平嗎槽华?答案是顯然的
    image
  2. 我們用一個(gè)直觀的例子來(lái)感受一下深層網(wǎng)絡(luò)與淺層網(wǎng)絡(luò)持平的表現(xiàn):


    image
  • 我們把右邊的網(wǎng)絡(luò)理解為左邊淺層網(wǎng)絡(luò)加深了三層(框起來(lái)的部分)壹蔓,假如我們希望右邊的深層網(wǎng)絡(luò)與左邊的淺層網(wǎng)絡(luò)持平,即是希望框起來(lái)的三層跟沒加一樣猫态,也就是加的三層的輸入等于輸出佣蓉。我們假設(shè)這三層的輸入為x,輸出為H(x)亲雪,那么深層網(wǎng)絡(luò)與淺層網(wǎng)絡(luò)表現(xiàn)持平的直觀理解即是:H(x)=x勇凭,這種讓輸出等于輸入的方式,就是論文中提到的恒等映射(identity mapping)义辕。
  • 所以ResNet的初衷虾标,就是讓網(wǎng)絡(luò)擁有這種恒等映射的能力,能夠在加深網(wǎng)絡(luò)的時(shí)候灌砖,至少能保證深層網(wǎng)絡(luò)的表現(xiàn)至少和淺層網(wǎng)絡(luò)持平璧函。

殘差結(jié)構(gòu)

  • 通過(guò)對(duì)深度網(wǎng)絡(luò)退化問(wèn)題的認(rèn)識(shí)我們已經(jīng)明白,要讓之不退化基显,根本原因就是如何做到恒等映射蘸吓。事實(shí)上,已有的神經(jīng)網(wǎng)絡(luò)很難擬合潛在的恒等映射函數(shù)H(x) = x撩幽。但如果把網(wǎng)絡(luò)設(shè)計(jì)為H(x) = F(x) + x库继,即直接把恒等映射作為網(wǎng)絡(luò)的一部分,就可以把問(wèn)題轉(zhuǎn)化為學(xué)習(xí)一個(gè)殘差函數(shù)F(x) = H(x) - x.只要F(x)=0窜醉,就構(gòu)成了一個(gè)恒等映射H(x) = x宪萄。 而且,擬合殘差至少比擬合恒等映射容易得多(后面第三部分會(huì)解釋)榨惰。我們看一下殘差結(jié)構(gòu)與正常結(jié)構(gòu)對(duì)比圖:
    image
  • 我們可以看到拜英,殘差結(jié)構(gòu)比正常的結(jié)構(gòu)多了右側(cè)的曲線,這個(gè)曲線也叫作shortcut connection读串,通過(guò)跳接在激活函數(shù)前聊记,將上一層(或幾層)的輸出與本層輸出相加,將求和的結(jié)果輸入到激活函數(shù)作為本層的輸出恢暖。
  • 我們從數(shù)學(xué)的角度來(lái)看殘差結(jié)構(gòu)排监,假設(shè)殘差結(jié)構(gòu)的輸入為x,則輸出H(x)等于:H(x)=F(x,{W_i})+x
  • 其中F(x,{W_i})就是我們要學(xué)習(xí)的殘差,我們把x移到等式的左側(cè)杰捂,殘差就等于H(x)-x舆床,以上圖為例,殘差就是中間有一個(gè)Relu激活的雙層權(quán)重,即:
    F=W_2\sigma(W1_x)
  • 其中\sigma是Relu激活函數(shù)挨队,而W_1,W_2是指兩個(gè)weight layer谷暮。

殘差結(jié)構(gòu)起作用的原因

  • 關(guān)于殘差結(jié)構(gòu)之所以work,我想這一點(diǎn)也是很多讀者疑惑的地方盛垦,這里分四點(diǎn)和大家解釋湿弦。
  1. 首先給大家一個(gè)我自己的理解:我覺得加了殘差結(jié)構(gòu)后就是給了輸入x多一個(gè)選擇在神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)到這層的參數(shù)是冗余的時(shí)候它可以選擇直接走這條“跳接”曲線腾夯,跳過(guò)這個(gè)冗余層颊埃,而不需要再去擬合參數(shù)使得輸出H(x)等于x
  2. 因?yàn)?strong>學(xué)習(xí)殘差的計(jì)算量比學(xué)習(xí)輸出等于輸入小蝶俱。假設(shè)普通網(wǎng)絡(luò)為A班利,殘差網(wǎng)絡(luò)為B,輸入為2榨呆,輸出為2(輸入和輸出一樣是為了模擬冗余層需要恒等映射的情況)罗标,那么普通網(wǎng)絡(luò)就是A(2)=2,而殘差網(wǎng)絡(luò)就是B(2)=F(2)+2=2积蜻,顯然殘差網(wǎng)絡(luò)中的F(2)=0闯割。我們知道網(wǎng)絡(luò)中權(quán)重一般會(huì)初始化成0附近的數(shù),那么我們就很容易理解浅侨,為什么讓F(2)(經(jīng)過(guò)權(quán)重矩陣)擬合0會(huì)比A(2)=2容易了纽谒。
  3. 我們知道ReLU能夠?qū)⒇?fù)數(shù)激活為0,而正數(shù)輸入等于輸出如输。這相當(dāng)于過(guò)濾了負(fù)數(shù)的線性變化鼓黔,讓F(x)=0變得更加容易。
  4. 我們知道殘差網(wǎng)絡(luò)可以表示成H(x)=F(x)+x不见,這就說(shuō)明了在求輸出H(x)對(duì)輸入x的倒數(shù)(梯度)澳化,也就是在反向傳播的時(shí)候,H'(x)=F'(x)+1稳吮,殘差結(jié)構(gòu)的這個(gè)常數(shù)1也能保證在求梯度的時(shí)候梯度不會(huì)消失缎谷。

網(wǎng)絡(luò)結(jié)構(gòu)

  • 先上網(wǎng)絡(luò)的結(jié)構(gòu)圖,左到右分別是VGG灶似,沒有殘差的PlainNet列林,有殘差的ResNet,我們從這張圖也可以感受當(dāng)年ResNet對(duì)VGG的統(tǒng)治力:


    image
  • 細(xì)心的讀者會(huì)發(fā)現(xiàn)酪惭,在ResNet中有的跳接線是實(shí)線希痴,有的跳接線是虛線。虛線的代表這些模塊前后的維度不一致春感,因?yàn)槿サ魵埐罱Y(jié)構(gòu)的Plain網(wǎng)絡(luò)還是和VGG一樣砌创,也就是每隔n層進(jìn)行下采樣但深度翻倍(VGG通過(guò)池化層下采樣ResNet通過(guò)卷積)虏缸。這里就有兩個(gè)情況:
  • 空間上不一致時(shí),需要給輸入的X做一個(gè)線性的映射:H(x)=F(x,{W_i})+x -> H(x)=F(x,{W_i})+W_sx
  • 深度上不一致時(shí)嫩实,有兩種解決方法刽辙,一種是在跳接過(guò)程中加一個(gè)1×1的卷積層進(jìn)行升維,另一種則是直接補(bǔ)零(先做下采樣)甲献。試驗(yàn)后發(fā)現(xiàn)兩種方法都可以宰缤。
  • 針對(duì)比較深的神經(jīng)網(wǎng)絡(luò),作者也考慮到計(jì)算量竟纳,會(huì)先用1×1的卷積將輸入的256維降到64維撵溃,然后通過(guò)1×1恢復(fù)。這樣做的目的是減少參數(shù)量和計(jì)算量锥累。
    image

實(shí)驗(yàn)結(jié)果

  • 作者對(duì)比了18層的神經(jīng)網(wǎng)絡(luò)和34層的神經(jīng)網(wǎng)絡(luò),發(fā)現(xiàn)殘差結(jié)構(gòu)確實(shí)解決了網(wǎng)絡(luò)的退化問(wèn)題:


    image
  • 作者還對(duì)比了在ImgaeNet上的測(cè)試結(jié)果集歇,發(fā)現(xiàn)ResNet確實(shí)效果非常好:
    image

論文地址

https://arxiv.org/pdf/1512.03385.pdf

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末桶略,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子诲宇,更是在濱河造成了極大的恐慌际歼,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,451評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件姑蓝,死亡現(xiàn)場(chǎng)離奇詭異鹅心,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)纺荧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門旭愧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人宙暇,你說(shuō)我怎么就攤上這事输枯。” “怎么了占贫?”我有些...
    開封第一講書人閱讀 164,782評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵桃熄,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我型奥,道長(zhǎng)瞳收,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,709評(píng)論 1 294
  • 正文 為了忘掉前任厢汹,我火速辦了婚禮螟深,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘坑匠。我一直安慰自己血崭,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著夹纫,像睡著了一般咽瓷。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上舰讹,一...
    開封第一講書人閱讀 51,578評(píng)論 1 305
  • 那天茅姜,我揣著相機(jī)與錄音,去河邊找鬼月匣。 笑死钻洒,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的锄开。 我是一名探鬼主播素标,決...
    沈念sama閱讀 40,320評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼萍悴!你這毒婦竟也來(lái)了头遭?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,241評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤癣诱,失蹤者是張志新(化名)和其女友劉穎计维,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體撕予,經(jīng)...
    沈念sama閱讀 45,686評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鲫惶,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了实抡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片欠母。...
    茶點(diǎn)故事閱讀 39,992評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖澜术,靈堂內(nèi)的尸體忽然破棺而出艺蝴,到底是詐尸還是另有隱情,我是刑警寧澤鸟废,帶...
    沈念sama閱讀 35,715評(píng)論 5 346
  • 正文 年R本政府宣布猜敢,位于F島的核電站请毛,受9級(jí)特大地震影響满钟,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜廊蜒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評(píng)論 3 330
  • 文/蒙蒙 一添寺、第九天 我趴在偏房一處隱蔽的房頂上張望胯盯。 院中可真熱鬧,春花似錦计露、人聲如沸博脑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)叉趣。三九已至泞边,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間疗杉,已是汗流浹背阵谚。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留烟具,地道東北人梢什。 一個(gè)月前我還...
    沈念sama閱讀 48,173評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像朝聋,于是被迫代替她去往敵國(guó)和親嗡午。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評(píng)論 2 355

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