自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

站在巨人的肩膀上,深度學(xué)習(xí)的9篇開(kāi)山之作

開(kāi)發(fā) 開(kāi)發(fā)工具
今天,我們將帶領(lǐng)大家一起閱讀9篇為計(jì)算機(jī)視覺(jué)和卷積神經(jīng)網(wǎng)絡(luò)領(lǐng)域里帶來(lái)重大發(fā)展的開(kāi)山之作,為大家摘錄每篇論文的主要思路、重點(diǎn)內(nèi)容和貢獻(xiàn)所在。

 

站在巨人的肩膀上,深度學(xué)習(xí)的9篇開(kāi)山之作

 

 

作者 | Adit Deshpande

 

 

編譯 | 酒酒  朱璇  萬(wàn)如苑  徐凌霄  錢天培

 

自從2012年CNN首次登陸ImageNet挑戰(zhàn)賽并一舉奪取桂冠后,由CNN發(fā)展開(kāi)來(lái)的深度學(xué)習(xí)一支在近5年間得到了飛速的發(fā)展。

今天,我們將帶領(lǐng)大家一起閱讀9篇為計(jì)算機(jī)視覺(jué)和卷積神經(jīng)網(wǎng)絡(luò)領(lǐng)域里帶來(lái)重大發(fā)展的開(kāi)山之作,為大家摘錄每篇論文的主要思路、重點(diǎn)內(nèi)容和貢獻(xiàn)所在。

AlexNet (2012)

https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf

這篇論文可謂是CNN的開(kāi)山鼻祖(當(dāng)然,有些人也會(huì)說(shuō)Yann LeCun 1998年發(fā)表的Gradient-Based Learning Applied to Document Recognition才是真正的開(kāi)山之作)。該論文題為“ImageNet Classification with Deep Convolutional Networks”,目前已經(jīng)被引用6184次,是該領(lǐng)域公認(rèn)影響最為深遠(yuǎn)的論文之一。

在這篇論文中,Alex Krizhevsky, Ilya Sutskever, 和Geoffrey Hinton 共同創(chuàng)造了一個(gè)“大規(guī)模深度神經(jīng)網(wǎng)絡(luò)”,并用它贏得了2012 ImageNet挑戰(zhàn)賽 (ImageNet Large-Scale Visual Recognition Challenge)的冠軍。(注:ImageNet可被視作計(jì)算機(jī)視覺(jué)領(lǐng)域的奧林匹克大賽,每年,來(lái)自全世界的各個(gè)團(tuán)隊(duì)在這項(xiàng)競(jìng)賽中激烈競(jìng)爭(zhēng),不斷發(fā)現(xiàn)用于分類、定位、探測(cè)等任務(wù)的最優(yōu)計(jì)算機(jī)視覺(jué)模型。)

2012年,CNN首次登場(chǎng)便以15.4%的錯(cuò)誤率拔得頭籌,遠(yuǎn)遠(yuǎn)優(yōu)于第二名的26.2%。CNN對(duì)計(jì)算機(jī)視覺(jué)領(lǐng)域的貢獻(xiàn)可見(jiàn)一斑。自這場(chǎng)比賽后,CNN就變得家喻戶曉了。

這篇論文里討論了AlexNet神經(jīng)網(wǎng)絡(luò)的具體結(jié)構(gòu)。相比現(xiàn)在流行的神經(jīng)網(wǎng)絡(luò)構(gòu)架,它的結(jié)構(gòu)其實(shí)非常簡(jiǎn)單:5個(gè)卷積層、最大池化層(max pooling layer),dropout層,和3個(gè)全連接層(fully connected layers)。但這個(gè)結(jié)構(gòu)已經(jīng)可以被用來(lái)分類1000種圖片了。

AlexNet的結(jié)構(gòu)

AlexNet的結(jié)構(gòu)

 

可能你會(huì)注意到,圖上出現(xiàn)了兩個(gè)分支,這是因?yàn)橛?xùn)練計(jì)算量太大了,以至于他們不得不把訓(xùn)練過(guò)程分到兩個(gè)GPU上。

劃重點(diǎn):

  • 訓(xùn)練集ImageNet data有超過(guò)1500萬(wàn)張標(biāo)記圖片,共22000個(gè)分類。
  • 解非線性方程用的是ReLu算法(因?yàn)榘l(fā)現(xiàn)ReLu的訓(xùn)練時(shí)間相比卷積tanh函數(shù)要快上數(shù)倍)。
  • 使用了包括圖像平移(image translations),水平翻轉(zhuǎn)(horizontal reflections),和圖像塊提取(patch extractions)等數(shù)據(jù)增強(qiáng)技術(shù)。
  • 使用了dropout層來(lái)避免對(duì)訓(xùn)練數(shù)據(jù)的過(guò)度擬合。
  • 使用了特定的動(dòng)量(momentum)和權(quán)重衰減(weight decay)參數(shù)的批量隨機(jī)梯度下降(batch stochastic gradient descent)算法來(lái)訓(xùn)練模型。
  • 在兩塊GTX580GPU上訓(xùn)練了5到6天。

意義總結(jié):

這個(gè)由Krizhevsky,Sutskever和Hinton在2012年共同提出的神經(jīng)網(wǎng)絡(luò)開(kāi)始了CNN在計(jì)算機(jī)視覺(jué)領(lǐng)域的盛宴,因?yàn)檫@是有史以來(lái)第一個(gè)在ImageNet數(shù)據(jù)集上表現(xiàn)如此優(yōu)異的模型。里面用到的一些技術(shù),如數(shù)據(jù)增強(qiáng)和丟棄(data augmentation and dropout),至今仍然在被廣泛使用。這篇論文詳述了CNN的優(yōu)勢(shì),而它在比賽上的驚艷表現(xiàn)也讓它名留青史。

ZF Net (2013)

https://arxiv.org/pdf/1311.2901v3.pdf

AlexNet在2012年大放異彩之后,2013年的ImageNet大賽上出現(xiàn)了大量的CNN模型,而桂冠則由紐約大學(xué)的Matthew Zeiler和Rob Fergus摘得,折桂模型就是ZF Net。這一模型達(dá)到了11.2%的錯(cuò)誤率。它好比是之前AlexNet的更精確調(diào)試版本,但它提出了如何提高準(zhǔn)確率的關(guān)鍵點(diǎn)。此外,它花了大量篇幅解釋了ConvNets背后的原理,并且正確地可視化了神經(jīng)網(wǎng)絡(luò)的過(guò)濾器(filter)和權(quán)重(weights)。

作者Zeiler 和 Fergus在這篇題為“Visualizing and Understanding Convolutional Neural Networks”的論文開(kāi)篇就點(diǎn)出了CNN能夠再次興起的原因:規(guī)模越來(lái)越大的圖片訓(xùn)練集,和GPU帶來(lái)的越來(lái)越高的計(jì)算能力。同時(shí)他們也點(diǎn)出,很多研究者其實(shí)對(duì)于這些CNN模型的內(nèi)在原理認(rèn)知并不深刻,使得“模型優(yōu)化過(guò)程只不過(guò)是不斷試錯(cuò)”,而這一現(xiàn)象在3年后的今天依舊廣泛存在于研究者當(dāng)中,盡管我們對(duì)CNN有了更加深入的理解!論文的主要貢獻(xiàn)在于細(xì)述了對(duì)AlexNet的優(yōu)化細(xì)節(jié),及以用一種巧妙的方式可視化了特征圖。

ZF Net 結(jié)構(gòu)

ZF Net 結(jié)構(gòu)

劃重點(diǎn):

  • 除了一些細(xì)小的修改,ZF Net模型與AlexNet構(gòu)架很相似。
  • AlexNet使用了1500萬(wàn)張圖片做訓(xùn)練,ZF Net只用了130萬(wàn)張。
  • AlexNet在第一層用了11x11的過(guò)濾器,而ZF Net用了減小了步長(zhǎng)(stride)的7x7過(guò)濾器,原因是第一層卷積層用小一點(diǎn)的過(guò)濾器可以保留更多原始數(shù)據(jù)的像素信息。用11x11的過(guò)濾器會(huì)跳過(guò)很多有用信息,尤其在第一個(gè)卷積層。
  • 過(guò)濾器的數(shù)目隨著神經(jīng)網(wǎng)絡(luò)的增長(zhǎng)而增多。
  • 激活函數(shù)用了ReLu,誤差函數(shù)用了交叉熵?fù)p失(cross-entropy loss),訓(xùn)練使用批量隨機(jī)梯度下降方法。
  • 在一塊GTX580 GPU上訓(xùn)練了12天。
  • 開(kāi)發(fā)了一種被稱為Deconvolutional Network(解卷積網(wǎng)絡(luò))的可視化技術(shù),能夠檢測(cè)不同特征激活與對(duì)應(yīng)輸入空間(input space)間的關(guān)系。之所以稱之為“解卷積網(wǎng)”(deconvnet),是因?yàn)樗馨烟卣饔成浠貙?duì)應(yīng)的像素點(diǎn)上(正好和卷積層做的事相反)。

這個(gè)網(wǎng)絡(luò)結(jié)構(gòu)背后的思路就是,在訓(xùn)練CNN的每一層都加上一個(gè)“deconvnet”,從而可以回溯到對(duì)應(yīng)的像素點(diǎn)。一般的前向傳播過(guò)程是給CNN輸入一個(gè)圖片,然后每一層計(jì)算出一個(gè)激活函數(shù)值。假設(shè)現(xiàn)在我們想檢測(cè)第四層某一特征的激活,我們就把除了此特征之外的其他特征激活值設(shè)為0,再把此時(shí)的特征映射矩陣輸入給deconvnet。Deconvnet與原始的CNN有相同的過(guò)濾器結(jié)構(gòu),再針對(duì)前三層網(wǎng)絡(luò)進(jìn)行一系列反池化過(guò)程(unpool,maxpooling的逆過(guò)程)、激活(rectify)和過(guò)濾操作,直到回到最初的輸入空間。

這樣做是為了找出圖像中刺激生成某一特征的結(jié)構(gòu)所在。我們來(lái)看看對(duì)第一層和第二層的可視化結(jié)果:

可視化結(jié)果

前兩層的可視化結(jié)果:每一層演示了兩個(gè)結(jié)果,第一個(gè)是過(guò)濾器的可視化,另外一個(gè)是圖片中被過(guò)濾器激活最明顯的部分。例如圖上Layer2部分展示了16個(gè)過(guò)濾器

我們?cè)贑NN入門手冊(cè)(上)里說(shuō)過(guò),ConvNet的第一層永遠(yuǎn)做的是一些最基礎(chǔ)的特征檢測(cè),像是簡(jiǎn)單的邊緣和這里的顏色特征。我們能看到,到了第二層,更多的環(huán)形結(jié)構(gòu)特征就顯示出來(lái)了。再看看第三、四、五層:

3,4,5層的可視化結(jié)果

這些層已經(jīng)能顯示出更高級(jí)特征,像是小狗和花朵。別忘了在第一層卷積之后,我們一般會(huì)有一個(gè)池化層減少圖片的采樣(例如從32x32x3減少到16x16x3)。這樣做能讓第二層對(duì)原始圖片有一個(gè)更廣闊的視角。如欲獲取更多關(guān)于deconvnet和這篇論文的信息,可以看看Zeiler他本人這篇演講(https://www.youtube.com/watch?v=ghEmQSxT6tw)。

意義總結(jié):

ZF Net的意義不僅在于奪得了2013年比賽的第一名,更重要的是它直觀展示了CNN如何工作,并且提出了更多提高CNN表現(xiàn)的方法。這些可視化技術(shù)不僅描述了CNN內(nèi)部的工作原理,同時(shí)對(duì)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的優(yōu)化提供了深刻的見(jiàn)解。精妙的deconv可視化展示和里面提到的閉塞實(shí)驗(yàn)(occlusion experiments)都讓其成為我最喜歡的論文之一。

VGG Net (2014)

https://arxiv.org/pdf/1409.1556v6.pdf

簡(jiǎn)單、深度,就是這個(gè)2014年模型的理念。它由牛津大學(xué)的Karen Simonyan 和Andrew Zisserman提出,在ImageNet大賽中達(dá)到了7.3%的錯(cuò)誤率(不過(guò)不是當(dāng)年的第一)。它是一個(gè)19層的CNN模型,每一層都由步長(zhǎng)和填充(pad)為1的3x3 過(guò)濾器,和步長(zhǎng)為2的2x2 maxpooling層組成,是不是很簡(jiǎn)單呢?

VGG Net (2014)

劃重點(diǎn):

  • 與AlexNet的11x11過(guò)濾器和ZF Net7x7的過(guò)濾器非常不同,作者解釋了為什么選擇用只有3x3的結(jié)構(gòu):兩個(gè)3x3的卷積與一個(gè)5x5的卷積效果相同,這樣我們可以用很小的過(guò)濾器模擬出較大的過(guò)濾器的效果。一個(gè)直接的好處就是減少了參數(shù)數(shù)量,同時(shí)用兩個(gè)卷積層就能用到兩次ReLu
  • 3個(gè)卷積層與一個(gè)7x7的過(guò)濾器感受效果相同
  • 輸入空間隨著層數(shù)增多而減少(因?yàn)榫矸e和池化),但隨著卷積和過(guò)濾器的增多,卷積深度不斷加深
  • 值得注意的是每次maxpool之后過(guò)濾器的數(shù)量都翻倍了。這也再次實(shí)踐了減少空間維度但加深網(wǎng)絡(luò)深度的理念
  • 在圖像分類和定位上都表現(xiàn)很好,作者將定位用在了回歸中(論文第10頁(yè))
  • 使用Caffe建立模型
  • 利用抖動(dòng)(scale jittering)作為訓(xùn)練時(shí)數(shù)據(jù)增強(qiáng)的手段
  • 每個(gè)卷積層后都有一個(gè)ReLu,用批量梯度下降來(lái)訓(xùn)練
  • 在4個(gè)英偉達(dá)Titan Black GPU上訓(xùn)練了2到3周

意義總結(jié):

我認(rèn)為VGG Net算得上最具影響力的論作之一,因?yàn)樗鼜?qiáng)調(diào)了卷積神經(jīng)網(wǎng)絡(luò)需要用到深度網(wǎng)絡(luò)結(jié)構(gòu)才能把圖像數(shù)據(jù)的層次表達(dá)出來(lái)。

GoogLeNet (2015)

http://www.cv-foundation.org/openaccess/content_cvpr_2015/papers/Szegedy_Going_Deeper_With_2015_CVPR_paper.pdf

還記得我們剛剛談到的網(wǎng)絡(luò)架構(gòu)簡(jiǎn)單化的想法嗎?谷歌就把這個(gè)想法引入了他們的Inception模塊。 GoogLeNet是一個(gè)22層CNN,它憑著6.7%的錯(cuò)誤率殺入五強(qiáng)并成為2014年ImageNet大賽的優(yōu)勝者。 據(jù)我所知,這是第一個(gè)真正不同于原有的簡(jiǎn)單疊加順序卷基層和池化層的構(gòu)建方法的CNN架構(gòu)之一。 這篇文章的作者還強(qiáng)調(diào)這個(gè)新模式在內(nèi)存和功耗方面進(jìn)行了重要的改進(jìn)。(這是一個(gè)重要注意事項(xiàng):堆疊層次并添加大量的過(guò)濾器都將產(chǎn)生巨大的計(jì)算和內(nèi)存開(kāi)銷,也更容易出現(xiàn)過(guò)度擬合。)

GoogLeNet架構(gòu)示意圖之一

GoogLeNet架構(gòu)示意圖之一

GoogLeNet架構(gòu)示意圖之二

GoogLeNet架構(gòu)示意圖之二

Inception模塊

讓我們來(lái)看一下GoogLeNet的結(jié)構(gòu)。我們首先要注意到一點(diǎn):并不是所有的過(guò)程都按順序發(fā)生。如上圖所示,GoogLeNet里有并行進(jìn)行的網(wǎng)絡(luò)結(jié)構(gòu)。

綠框內(nèi)顯示GoogLeNet的并行區(qū)

綠框內(nèi)顯示GoogLeNet的并行區(qū)

上圖綠框里的結(jié)構(gòu)叫做Inception模塊。下面讓我們來(lái)仔細(xì)看一下它的構(gòu)成。

綠框內(nèi)顯示GoogLeNet的并行區(qū)

展開(kāi)的Inception模塊

上圖中,底部的綠色框是我們的輸入,而頂部的綠色框是模型的輸出。(將這張圖片右轉(zhuǎn)90度, 與前一張GoogLeNet全景圖聯(lián)系起來(lái)一起看,可以看出完整網(wǎng)絡(luò)的模型。 )基本上,在傳統(tǒng)ConvNet的每一層里,你都必須選擇是否進(jìn)行池化操作或卷積操作,以及過(guò)濾器的尺寸。 一個(gè)Inception模塊允許你并行執(zhí)行所有這些操作。 事實(shí)上這正是作者最初提出的一個(gè)“天真”的想法。

關(guān)于Inception模塊的一個(gè)“天真”的想法

那么,為什么這樣的設(shè)計(jì)并不可行?因?yàn)檫@將導(dǎo)致太多太多的輸出,使得我們最終因大輸出量而停留在一個(gè)非常深的信道(channel)。 為了解決這個(gè)問(wèn)題,作者在3x3和5x5層之前添加1x1卷積操作。 1x1卷積,又叫作網(wǎng)絡(luò)層中的網(wǎng)絡(luò),提供了一種降低維數(shù)的方法。 例如,假設(shè)您的輸入量為100x100x60(不一定是圖像的尺寸,只是網(wǎng)絡(luò)中任意一層的輸入尺寸), 應(yīng)用1x1卷積的20個(gè)過(guò)濾器可以將輸入降低到100x100x20,從而3x3和5x5卷積的處理量不會(huì)太大。 這可以被認(rèn)為是一種“特征池化”(pooling of features),因?yàn)槲覀儨p小了輸入量的深度,這類似于我們通過(guò)標(biāo)準(zhǔn)的max-pooling層降低高度和寬度的維度。 另一個(gè)值得注意的點(diǎn)是,這些1x1卷積層之后的ReLU單元 的功能, 不會(huì)因降維而受到的損害。(參見(jiàn)Aaditya Prakash的博客http://iamaaditya.github.io/2016/03/one-by-one-convolution/以了解更多1x1卷積的效果等信息。) 你可以在這個(gè)視頻中看到最終過(guò)濾器級(jí)聯(lián)的可視化https://www.youtube.com/watch?v=_XF7N6rp9Jw。 )

你可能有這樣的疑問(wèn)“這個(gè)架構(gòu)為什么好用”?這個(gè)架構(gòu)提供了一個(gè)模塊,它包括一個(gè)網(wǎng)絡(luò)層的網(wǎng)絡(luò)、一個(gè)中等大小的卷積過(guò)濾器 、一個(gè)大型的卷積過(guò)濾器和一個(gè)池化操作。 網(wǎng)絡(luò)層的網(wǎng)絡(luò)的卷積能夠提取關(guān)于輸入的非常細(xì)節(jié)的信息,而5x5濾鏡能夠覆蓋輸入的較大接收?qǐng)觯虼艘材軌蛱崛∑湫畔ⅰ?/p>

你還可以用一個(gè)池化操作來(lái)減少占用空間大小,并防止過(guò)度擬合。 此外,每個(gè)卷積層之后都進(jìn)行ReLUs,這有助于提高網(wǎng)絡(luò)的非線性。大體來(lái)講,這樣的網(wǎng)絡(luò)能夠做到執(zhí)行各類操作的同時(shí)仍保持計(jì)算性。 這篇論文還提出了一個(gè)高層次的推理,涉及稀疏性(sparsity)和密集連接(dense connections)等主題。(參見(jiàn)論文http://www.cv-foundation.org/openaccess/content_cvpr_2015/papers/Szegedy_Going_Deeper_With_2015_CVPR_paper.pdf的第3段和第4段。我并不很理解這方面的內(nèi)容,但很樂(lè)意聽(tīng)到你們?cè)谠u(píng)論中發(fā)表自己的見(jiàn)解。)

劃重點(diǎn):

  • 在整個(gè)架構(gòu)中使用了9個(gè)inception模塊,共有100多層?,F(xiàn)在看來(lái)很有深度…
  • 不使用完全連接的層 !他們使用平均池化代替,將7x7x1024的輸入量轉(zhuǎn)換為1x1x1024的輸入量。 這節(jié)省了大量的參數(shù)。
  • 使用比AlexNet少12倍的參數(shù)。
  • 在測(cè)試期間,創(chuàng)建了同一圖像的多個(gè)版本,輸入到神經(jīng)網(wǎng)絡(luò)中,并且用softmax概率的平均值給出最終解決方案。
  • 在檢測(cè)模型中使用了R-CNN的概念(隨后的一篇論文中將討論) 。
  • Inception模塊現(xiàn)在有多個(gè)更新版本(版本6和7)。
  • 在一周內(nèi)使用“幾個(gè)高端GPU”訓(xùn)練模型。

意義總結(jié):

GoogLeNet是率先引入“CNN層并不需要按順序堆疊”這一概念的模型之一。隨著 Inception模塊的提出, 作者認(rèn)為有創(chuàng)意的層次結(jié)構(gòu)可以提高性能和計(jì)算效率。 這篇文章為接下來(lái)幾年出現(xiàn)的一些驚人架構(gòu)奠定了基礎(chǔ)。

[[202446]]

借用李?yuàn)W納多的一句臺(tái)詞“我們需要更深入。”

微軟的ResNet(2015)

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

讓我們來(lái)想像一個(gè)深度CNN架構(gòu),對(duì)其層數(shù)加倍,然后再增加幾層。但是這個(gè)CNN結(jié)構(gòu)可能還是比不上微軟亞洲研究院2015年底提出的ResNet體系結(jié)構(gòu)那么深。ResNet是一個(gè)新的152層網(wǎng)絡(luò)架構(gòu),它以一個(gè)令人難以置信的架構(gòu)在分類、檢測(cè)和定位等方面創(chuàng)造了新的記錄。 除了層次上的新紀(jì)錄之外,ResNet還以令人難以置信的3.6%的錯(cuò)誤率贏得了2015年ImageNet大賽的桂冠。其他參賽者的錯(cuò)誤率一般徘徊在5-10%左右。(參見(jiàn)Andrej Karpathy的博客http://karpathy.github.io/2014/09/02/what-i-learned-from-competing-against-a-convnet-on-imagenet/,這篇文章說(shuō)明了其在ImageNet挑戰(zhàn)賽與競(jìng)爭(zhēng)對(duì)手ConvNets競(jìng)爭(zhēng)的經(jīng)歷。)

上圖ResNet架構(gòu)示意圖

Residual Block(殘差塊)

Residual Block背后的想法是把輸入x通過(guò)conv-relu-conv序列輸出。 這將先輸出一些F(x),再把這些結(jié)果添加到原始輸入x 即H(x)= F(x) + x。 而在傳統(tǒng)的CNN中,H(x)直接等于F(x)。 所以,在ResNet中,我們不僅計(jì)算這個(gè)簡(jiǎn)單轉(zhuǎn)換(從x到F(x)),還將F(x)加到輸入x中。 在下圖所示的迷你模塊計(jì)算中,原輸入x被做輕微變化,從而得到一個(gè)輕微改變的輸出 。(當(dāng)我們考慮傳統(tǒng)CNN時(shí),從x到F(x)是一個(gè)全新的表達(dá),不保留關(guān)于原始x的任何信息。 作者認(rèn)為“優(yōu)化殘差映射比優(yōu)化原始映射更容易。”)

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

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

Residual Block之所以有效的另一個(gè)原因是,在反向傳播過(guò)程中,由于我們對(duì)加法運(yùn)算分布了梯度,梯度能夠很容易地流過(guò)圖。

劃重點(diǎn):

  • “超級(jí)深” - Yann LeCun。
  • 152層…
  • 有趣的是,在僅僅前兩層之后,空間大小從224x224的輸入量壓縮到56x56。
  • 作者聲稱,在普通網(wǎng)絡(luò)中簡(jiǎn)單增加層次,將導(dǎo)致較高的訓(xùn)練和測(cè)試誤差(論文里的圖1)
  • 該小組嘗試了一個(gè)1202層網(wǎng)絡(luò),但可能由于過(guò)擬合而導(dǎo)致測(cè)試精度較低。
  • 在8個(gè)GPU機(jī)器上訓(xùn)練了兩到三周 。

意義總結(jié):

3.6%的錯(cuò)誤率就足以說(shuō)服你。 ResNet模型是我們目前擁有的最好的CNN架構(gòu),是殘差學(xué)習(xí)思想的一大創(chuàng)新。 自2012年以來(lái),ResNet模型的錯(cuò)誤率逐年下降。我相信我們已經(jīng)到了“堆疊很多層的神經(jīng)網(wǎng)絡(luò)也不能帶來(lái)性能提升”的階段了 。接下來(lái)肯定會(huì)有創(chuàng)新的新架構(gòu),就像過(guò)去2年一些新嘗試的出現(xiàn)。

推薦閱讀:

ResNets內(nèi)的ResNets http://arxiv.org/pdf/1608.02908.pdf。

基于區(qū)域的CNN

  • R-CNN – 2013:https://translate.googleusercontent.com/translate_c?act=url&depth=1&hl=en&ie=UTF8&prev=_t&rurl=translate.google.com&sl=en&sp=nmt4&tl=zh-CN&u=https://arxiv.org/pdf/1311.2524v5.pdf&usg=ALkJrhgwBa8jBFOgSDEuZFOmg5CeahQVSw
  • Fast R-CNN – 2015:https://translate.googleusercontent.com/translate_c?act=url&depth=1&hl=en&ie=UTF8&prev=_t&rurl=translate.google.com&sl=en&sp=nmt4&tl=zh-CN&u=https://arxiv.org/pdf/1504.08083.pdf&usg=ALkJrhiMQQ68G9lTdUV9DYnKPAUOb6PDaA
  • Faster R-CNN – 2015:https://translate.googleusercontent.com/translate_c?act=url&depth=1&hl=en&ie=UTF8&prev=_t&rurl=translate.google.com&sl=en&sp=nmt4&tl=zh-CN&u=http://arxiv.org/pdf/1506.01497v3.pdf&usg=ALkJrhjfeXGyTfxi4AmeFDqjODJ4qoHN8w

有些人可能會(huì)認(rèn)為,這篇首次描述R-CNN的論文比之前所有創(chuàng)新網(wǎng)絡(luò)架構(gòu)論文都更有影響力。 隨著第一個(gè)R-CNN論文被引用超過(guò)1600次,Ross Girshick和他在加州大學(xué)伯克利分校領(lǐng)導(dǎo)的研究組,實(shí)現(xiàn)了計(jì)算機(jī)視覺(jué)領(lǐng)域中最有影響力的進(jìn)步之一。 他們的標(biāo)題清楚地表明:Fast R-CNN和Faster R-CNN能使模型更快和更適配的用于當(dāng)前的目標(biāo)檢測(cè)任務(wù)。

R-CNN的目的是解決目標(biāo)檢測(cè)問(wèn)題。 對(duì)給定圖像,我們希望能為圖像里的全部物體繪制邊界框。 這個(gè)過(guò)程可以分為兩個(gè)步驟:區(qū)域提取和分類。

作者指出,任何類別不可知的區(qū)域提取方法都能用于R-CNN。 其中選擇性搜索(https://ivi.fnwi.uva.nl/isis/publications/2013/UijlingsIJCV2013/UijlingsIJCV2013.pdf)特別適用于R-CNN。選擇性搜索先執(zhí)行生成 2000個(gè)概率最高的含有物體的不同區(qū)域的函數(shù)。隨后這些被建議的區(qū)域都被“扭曲”(warp)成為一個(gè)個(gè)合適尺寸大小的圖像, 輸入到一個(gè)訓(xùn)練好的CNN(文章里用的是AlexNet)。這個(gè)CNN將為每個(gè)區(qū)域提取出一個(gè)特征向量,然后這些向量被輸入到一組針對(duì)每類物體分別進(jìn)行訓(xùn)練的線性SVM,從而輸出分類結(jié)果。 同時(shí)這些向量也被輸入給訓(xùn)練好的邊界框回歸器,以獲得最準(zhǔn)確的坐標(biāo)。

R-CNN流程圖

R-CNN流程圖

接下來(lái)R-CNN使用非最大值抑制(Non-maxima suppression)來(lái)處理明顯重疊的物體邊界框。

Fast R-CNN:

針對(duì)三個(gè)主要問(wèn)題,他們對(duì)原始模型進(jìn)行了改進(jìn)。 模型訓(xùn)練被分成幾個(gè)階段(ConvNets到SVM到邊界框回歸),計(jì)算量極其大, 而且非常慢(RCNN在每個(gè)圖像上花費(fèi) 53秒)。 Fast R-CNN基本上通過(guò)共享不同方案之間的轉(zhuǎn)換層計(jì)算、交換生成區(qū)域提案的順序、和運(yùn)行CNN,從而解決了速度問(wèn)題。

在該模型中,圖像首先進(jìn)入ConvNet, 從ConvNet的最后一個(gè)特征圖中獲取用于區(qū)域提取的特征(更多詳細(xì)信息請(qǐng)參閱該論文的2.1部分),最后還有完全連接層、回歸、和分類開(kāi)始。

Faster R-CNN可以用于解決R-CNN和Fast R-CNN所使用的復(fù)雜的訓(xùn)練管線 。 作者在最后一個(gè)卷積層之后插入了一個(gè)區(qū)域候選網(wǎng)絡(luò)(region proposal network,RPN)。 該網(wǎng)絡(luò)能夠在僅看到最后的卷積特征圖后就從中產(chǎn)生區(qū)域建議。 從那個(gè)階段開(kāi)始,與R-CNN相同的管道就被使用了(感興趣區(qū)域池層 ROI pooling,全連接層FC, 分類classification,回歸regression… )。

Faster R-CNN工作流程

Faster R-CNN工作流程

意義總結(jié):

能夠確定特定對(duì)象在圖像中是一回事,但是能夠確定對(duì)象的確切位置是另外一回事,那是計(jì)算機(jī)知識(shí)的巨大跳躍。 Faster R-CNN已經(jīng)成為今天對(duì)象檢測(cè)程序的標(biāo)準(zhǔn)。

生成對(duì)抗網(wǎng)絡(luò)(2014)

https://arxiv.org/pdf/1406.2661v1.pdf

據(jù)Yann LeCun介紹,這些網(wǎng)絡(luò)可能是下一個(gè)大發(fā)展。 在談?wù)撨@篇文章之前,讓我們談?wù)勔恍?duì)抗范例。 例如,讓我們考慮一個(gè)在ImageNet數(shù)據(jù)上運(yùn)行良好的CNN。 我們先來(lái)看一個(gè)示例圖,再用一個(gè)干擾或一個(gè)微小的修改使預(yù)測(cè)誤差最大化,預(yù)測(cè)的對(duì)象類別結(jié)果因此而改變,盡管擾動(dòng)后的圖像相比愿圖像本身看起來(lái)相同。 從高層視野 來(lái)看,對(duì)抗組示例基本上是愚弄ConvNets的圖像。

生成對(duì)抗網(wǎng)絡(luò)(2014)

對(duì)抗的例子(《神經(jīng)網(wǎng)絡(luò)中的有趣屬性》)肯定讓很多研究人員感到驚訝,并迅速成為一個(gè)令人感興趣的話題。現(xiàn)在我們來(lái)談一談生成對(duì)抗網(wǎng)絡(luò)。讓我們來(lái)看兩個(gè)模型,一個(gè)生成模型和一個(gè)判別模型。鑒別模型的任務(wù)是,確定一個(gè)給定的圖像是否看起來(lái)自然(來(lái)自數(shù)據(jù)集的圖像)或者看起來(lái)像人造的。生成器的任務(wù)是創(chuàng)建圖像,使鑒別器得到訓(xùn)練并產(chǎn)生正確的輸出。這可以被認(rèn)為是一個(gè)雙玩家間的零和博弈(zero-sum)或最大最小策略(minimax)。

該論文中使用的類比是:生成模式就像“一批冒牌者試圖生產(chǎn)和使用假貨”,而判別模式就像“警察試圖檢測(cè)假冒貨幣”。生成器試圖愚弄判別器,而判別器試圖不被生成器愚弄。隨著模型的訓(xùn)練,兩種方法都得到了改進(jìn),直到“假冒品與正品無(wú)法區(qū)分”為止。

意義總結(jié):

聽(tīng)起來(lái)很簡(jiǎn)單,但為什么我們關(guān)心這些網(wǎng)絡(luò)呢?正如Yann LeCun 所說(shuō),判別器現(xiàn)在知道“數(shù)據(jù)的內(nèi)部表示”是因?yàn)樗牙斫鈦?lái)自數(shù)據(jù)集的真實(shí)圖像和人為創(chuàng)建的之間的差異。 因此,你可以把它作為一個(gè)特征提取器用于CNN中 。 此外,您可以創(chuàng)建一些非??岬娜嗽靾D像,而且這些圖像在我看來(lái)是很自然的(The Eyescream Project) 。

Generating Image Descriptions (2014)

https://arxiv.org/pdf/1412.2306v2.pdf

當(dāng)你把CNN與RNN組合起來(lái)時(shí)會(huì)發(fā)生什么?不好意思,您不會(huì)得到R-CNN的。但是你會(huì)得到一個(gè)非常棒的應(yīng)用程序。 作者Andrej Karpathy(我個(gè)人最喜歡的作者之一)和Fei-Fei Li一起撰寫了這篇論文, 研究了CNN和雙向RNN (Recurrent Neural Networks)的組合,以生成不同圖像區(qū)域的自然語(yǔ)言描述。大體來(lái)講,該模型能夠拍攝一張圖像并輸出如下圖片:

這很不可思議!我們來(lái)看看這與正常的CNN相比如何。 對(duì)于傳統(tǒng)的CNN,訓(xùn)練數(shù)據(jù)中每個(gè)圖像都有一個(gè)明確的標(biāo)簽。 本論文中所描述的模型,其每個(gè)訓(xùn)練實(shí)例都具有一個(gè)與各個(gè)圖像相關(guān)聯(lián)的句子或標(biāo)題 。 這種類型的標(biāo)簽被稱為弱標(biāo)簽,其中句子的成分指的是圖像的(未知)部分。 使用這個(gè)訓(xùn)練數(shù)據(jù),一個(gè)深度神經(jīng)網(wǎng)絡(luò)“推斷出句子的各個(gè)部分和他們描述的區(qū)域之間的潛在對(duì)應(yīng)”(引自論文)。 另一個(gè)神經(jīng)網(wǎng)絡(luò)將圖像作為輸入,并生成文本描述。 讓我們來(lái)看看這兩個(gè)組件:對(duì)準(zhǔn)和生成。

1. 對(duì)準(zhǔn)模型(Alignment Model):

這一部分模型的目標(biāo)是,對(duì)齊視覺(jué)數(shù)據(jù)和文本數(shù)據(jù)(圖像及其句子描述)。 該模型通過(guò)接受圖像和句子作為輸入,輸出它們的匹配 程度得分。

現(xiàn)在讓我們考慮將這些圖像表現(xiàn)出來(lái)。 第一步是將圖像送到R-CNN中,以便檢測(cè)各個(gè)物體。 該R-CNN已對(duì)ImageNet數(shù)據(jù)進(jìn)行了訓(xùn)練。 最先的19個(gè)(加上原始圖像)對(duì)象區(qū)域被嵌入到500維的空間中。 現(xiàn)在我們有20個(gè)不同的500維向量(在論文中由v表示)。 我們有了關(guān)于圖像的信息,現(xiàn)在我們想要有關(guān)句子的信息。 我們通過(guò)使用雙向循環(huán)神經(jīng)網(wǎng)絡(luò),將單詞嵌入到同一個(gè)多模態(tài)空間中。 從最高層次來(lái)說(shuō),這是用來(lái)說(shuō)明給定句子中單詞的上下文信息的。 由于關(guān)于圖片和句子的信息都在相同的空間中,我們可以通過(guò)計(jì)算它們的內(nèi)積來(lái)得到它們的相似度。

2. 生成模型(Generation Model):

對(duì)準(zhǔn)模型的主要目的是創(chuàng)建一個(gè)數(shù)據(jù)集,其中包括一組圖像區(qū)域(由RCNN找到)和其相應(yīng)的文本(由BRNN找到)。 現(xiàn)在,生成模型將從該數(shù)據(jù)集中學(xué)習(xí),以生成給定圖像的描述。 該模型接收?qǐng)D像并交給CNN處理。最軟層(softmax layer)被忽略,因?yàn)橥耆B接層的輸出將成為另一個(gè)RNN的輸入。 RNN的功能是形成一個(gè)句子中不同單詞的概率分布(RNN也需要像CNN那樣訓(xùn)練)。

免責(zé)聲明:這絕對(duì)是本章節(jié)中詰屈聱牙的論文之一,所以如果有任何更正或其他解釋,我很樂(lè)意聽(tīng)到他們的意見(jiàn)。

意義總結(jié):

組合使用這些看似不同的RNN和CNN模型來(lái)創(chuàng)建一個(gè)非常有用的應(yīng)用程序,對(duì)我來(lái)說(shuō)是個(gè)有趣的想法,這是結(jié)合計(jì)算機(jī)視覺(jué)和自然語(yǔ)言處理領(lǐng)域的一種方式。 這開(kāi)啟了處理跨領(lǐng)域的任務(wù)時(shí)實(shí)現(xiàn)計(jì)算機(jī)和模型更加智能化的新思路。

Spatial Transformer Networks (2015)

https://arxiv.org/pdf/1506.02025.pdf

最后,讓我們走近一篇最近發(fā)表的論文。這篇文章是由Google Deepmind的一個(gè)小組在一年多前撰寫的,主要貢獻(xiàn)是引入空間變換模塊。這個(gè)模塊的基本思想是, 以一種方式轉(zhuǎn)換輸入圖像,使得隨后的圖層更容易進(jìn)行分類。作者擔(dān)心的是在將圖像在輸入特定的卷積層之前出現(xiàn)的更改,而不是對(duì)CNN主體架構(gòu)本身進(jìn)行的更改 。這個(gè)模塊希望糾正的兩件事情是,形狀正則化(對(duì)象被傾斜或縮放)和空間注意力(引起對(duì)擁擠圖像中的正確對(duì)象的關(guān)注)。對(duì)于傳統(tǒng)的CNN,如果你想使模型對(duì)不同尺度和旋轉(zhuǎn)的圖像保持不變性,你需要大量的訓(xùn)練示例。讓我們來(lái)詳細(xì)了解這個(gè)變換模塊是如何幫助解決這個(gè)問(wèn)題。

傳統(tǒng)CNN模型中,處理空間不變性的實(shí)體是最大分池層[1] ( maxpooling layer)[2] 。 這一層背后的直觀原因是,一旦我們知道某一個(gè)特定的特征位于原始輸入空間內(nèi)(任何有高激活值的地方),它的確切位置就不像其他特征的相對(duì)位置那樣重要了。 這種新的空間變換器是動(dòng)態(tài)的,它將為每個(gè)輸入圖像產(chǎn)生不同的行為(不同的扭曲或變換)。 它不僅僅是一個(gè)傳統(tǒng)的maxpool那么簡(jiǎn)單和預(yù)定義。 我們來(lái)看看這個(gè)變換模型的工作原理。 該模塊包括:

  • 一個(gè)本地化網(wǎng)絡(luò),應(yīng)用參數(shù)有輸入量和空間變換輸出。 對(duì)于仿射變換(affine transformation),參數(shù) θ可以是6維的。
  • 創(chuàng)建一個(gè)采樣網(wǎng)格。這是通過(guò)在本地化網(wǎng)絡(luò)中用創(chuàng)建的仿射變換theta來(lái)扭曲常規(guī)網(wǎng)格的結(jié)果。
  • 一個(gè)采樣器,其目的是對(duì)輸入特征圖做扭曲變換。

該模塊可以隨時(shí)投入CNN,并且會(huì)幫助網(wǎng)絡(luò)學(xué)習(xí)如何以在訓(xùn)練中以最小化成本函數(shù)的方式來(lái)轉(zhuǎn)換特征圖。

意義總結(jié):

這篇論文之所以引起了我的注意,主要是因?yàn)樗嬖V我們CNN的改進(jìn)不一定要來(lái)自網(wǎng)絡(luò)架構(gòu)的巨大變化,我們不需要?jiǎng)?chuàng)建下一個(gè)ResNet或Inception模塊。 這篇論文實(shí)現(xiàn)了對(duì)輸入圖像進(jìn)行仿射變換的簡(jiǎn)單思想,使得模型對(duì)轉(zhuǎn)換、縮放、旋轉(zhuǎn)操作變得更加穩(wěn)定。

【本文是51CTO專欄機(jī)構(gòu)大數(shù)據(jù)文摘的原創(chuàng)譯文,微信公眾號(hào)“大數(shù)據(jù)文摘( id: BigDataDigest)”】

     大數(shù)據(jù)文摘二維碼

戳這里,看該作者更多好文

責(zé)任編輯:趙寧寧 來(lái)源: 51CTO專欄
相關(guān)推薦

2011-03-31 13:13:24

編程

2015-06-04 17:26:26

2014-04-02 12:57:55

袁學(xué)鋒HPC天河二號(hào)

2013-09-02 11:33:38

百度

2013-05-30 09:53:04

阿里金融阿里巴巴大數(shù)據(jù)

2025-01-07 08:20:00

2018-03-09 11:25:09

微信

2023-12-25 09:35:51

自動(dòng)駕駛技術(shù)

2018-10-16 11:03:19

API開(kāi)發(fā)者AR

2025-02-19 12:23:52

2022-05-07 08:00:37

Span數(shù)據(jù)結(jié)構(gòu)內(nèi)存

2022-02-10 11:32:40

DynamoDB亞馬遜云科技數(shù)據(jù)庫(kù)

2025-03-03 11:41:11

2014-09-28 09:58:36

Yahoo Direc雅虎

2017-04-19 09:15:57

深度學(xué)習(xí)

2017-04-13 17:20:21

深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)

2025-02-19 12:40:54

2017-11-16 17:26:35

深度學(xué)習(xí)移動(dòng)設(shè)備MobileNets應(yīng)

2011-12-14 09:55:36

AiriSiri

2011-01-12 11:53:17

馬云
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)