理解卷积神经网络的利器:9篇重要的深度学习论文(上)
摘要:?為了更好地幫助你理解卷積神經(jīng)網(wǎng)絡(luò),在這里,我總結(jié)了計(jì)算機(jī)視覺和卷積神經(jīng)網(wǎng)絡(luò)領(lǐng)域內(nèi)許多新的重要進(jìn)步及有關(guān)論文。
? ? ? ??手把手教你理解卷積神經(jīng)網(wǎng)絡(luò)(一)
? ? ? ??手把手教你理解卷積神經(jīng)網(wǎng)絡(luò)(二)
本文將介紹過去五年內(nèi)發(fā)表的一些重要論文,并探討其重要性。論文1—5涉及通用網(wǎng)絡(luò)架構(gòu)的發(fā)展,論文6—9則是其他網(wǎng)絡(luò)架構(gòu)的論文。點(diǎn)擊原文即可查看更詳細(xì)的內(nèi)容。
1.AlexNet(2012)
AlexNet是卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)的起源(盡管可能會(huì)有人認(rèn)為,1998年Yann LeCun發(fā)表的論文才是真正的開創(chuàng)性出版物)。這篇名為“基于深度卷積網(wǎng)絡(luò)ImageNet分類”的論文總共被引用6,184次,被公認(rèn)為是該領(lǐng)域最具影響力的論文之一。在2012年的ImageNet大規(guī)模視覺識(shí)別挑戰(zhàn)賽中,Alex Krizhevsky等人創(chuàng)建的“大而深的卷積神經(jīng)網(wǎng)絡(luò)”取得了大賽冠軍——將分類誤差從26%降至15%,這是一個(gè)驚人的改進(jìn),幾乎讓所有的計(jì)算機(jī)視覺社區(qū)為之震撼。從那時(shí)起,卷積神經(jīng)網(wǎng)絡(luò)被廣泛傳播,成了一個(gè)家喻戶曉的名字。
? ? 該論文討論了AlexNet架構(gòu)的網(wǎng)絡(luò)結(jié)構(gòu)。與現(xiàn)代架構(gòu)相比,AlexNet使用了相對(duì)簡(jiǎn)單的網(wǎng)絡(luò)結(jié)構(gòu):由5個(gè)卷積層、最大池化層、drop-out層和3個(gè)全連接層組成。他們?cè)O(shè)計(jì)的網(wǎng)絡(luò)可用于對(duì)1000個(gè)類別進(jìn)行分類。?
主要論點(diǎn)
1.在ImageNet數(shù)據(jù)集上訓(xùn)練網(wǎng)絡(luò),ImageNet數(shù)據(jù)集包含超過1500萬張注釋圖像,類別超過22000個(gè)。
2.使用ReLU處理非線性函數(shù)(這樣可以減少訓(xùn)練時(shí)間,因?yàn)镽eLU比傳統(tǒng)的tanh函數(shù)運(yùn)行速度要快幾倍)。
3.使用的數(shù)據(jù)增強(qiáng)技術(shù)包括:圖像轉(zhuǎn)換,水平反射和補(bǔ)丁提取。
4.采用drop-out層,解決了訓(xùn)練數(shù)據(jù)的過擬合問題。
5.使用批量隨機(jī)梯度下降訓(xùn)練架構(gòu),其中動(dòng)量和權(quán)重衰減都有固定的具體值。
重要性
Krizhevsky等人在2012年開發(fā)出來的神經(jīng)網(wǎng)絡(luò),是卷積神經(jīng)網(wǎng)絡(luò)在計(jì)算機(jī)視覺社區(qū)的一場(chǎng)盛宴。這是首次在ImageNet數(shù)據(jù)集上性能表現(xiàn)非常好的架構(gòu),利用了今天仍在使用的技術(shù),如數(shù)據(jù)增強(qiáng)和dropout。這篇論文闡述了卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn),并創(chuàng)造了其他神經(jīng)網(wǎng)絡(luò)難以逾越的性能。
2.ZF Net
由于AlexNet在2012年閃亮登場(chǎng),在2013的ImageNet大規(guī)模視覺識(shí)別挑戰(zhàn)賽中出現(xiàn)的卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)數(shù)量大幅度增加,該年度大賽冠軍是由紐約大學(xué)的Matthew Zeiler團(tuán)隊(duì)創(chuàng)建的網(wǎng)絡(luò)——ZF Net,該架構(gòu)實(shí)現(xiàn)了低至11.2%的誤差率。ZF Net架構(gòu)相當(dāng)于對(duì)AlexNet架構(gòu)做了微調(diào),但作者仍然提出了一些能夠提高模型性能的重要設(shè)想。這篇論文之所以特別重要,另一個(gè)原因就是作者花了很多精力來解釋卷積神經(jīng)網(wǎng)絡(luò)的可視化,并展示了如何正確的可視化濾波器和權(quán)重。
在這篇題為“卷積神經(jīng)網(wǎng)絡(luò)的可視化和理解”的論文中,Zeiler團(tuán)隊(duì)首先解釋了重新對(duì)卷積神經(jīng)網(wǎng)絡(luò)感興趣的原因,這源自于大型訓(xùn)練集的可訪問性,以及隨著GPU的使用率增大,計(jì)算能力也有提高。作者還提到“更好的架構(gòu)會(huì)減少試驗(yàn)和誤差次數(shù)”。盡管和三年前相比,我們對(duì)卷積神經(jīng)網(wǎng)絡(luò)有了更全面的理解,但這仍然是很多研究人員所面臨的問題!本文的主要貢獻(xiàn)是對(duì)AlexNet架構(gòu)的細(xì)節(jié)做了微調(diào),并且以一種很有意思的方法對(duì)特征映射做了可視化處理。
?主要論點(diǎn)
1.ZF Net與AlexNet模型有非常相似的架構(gòu),同時(shí)也做了一些微調(diào)。
2.AlexNet訓(xùn)練了1500萬張圖片,而ZF Net僅僅訓(xùn)練了130萬張圖片。
3.AlexNet在第一層使用11*11的濾波器,而ZF Net使用了7*7的濾波器和一個(gè)較小的步長(zhǎng)。做這一調(diào)整的原因是第一個(gè)卷積層中使用較小的濾波器有助于將大量的原始像素信息保留在輸入數(shù)組中。11*11的濾波器會(huì)過濾掉很多有用的信息,尤其是在第一個(gè)卷積層。
4.隨著卷積網(wǎng)絡(luò)的發(fā)展,使用濾波器的數(shù)量有所增加。
5.將ReLUs作為其激活函數(shù),交叉熵代價(jià)函數(shù)作為誤差函數(shù),并使用批量隨機(jī)梯度下降進(jìn)行訓(xùn)練。
6.開發(fā)了一種名為去卷積網(wǎng)絡(luò)的可視化技術(shù),有助于測(cè)試不同的特征激活與輸入數(shù)組的關(guān)系。之所以被稱為“去卷積”,因?yàn)樗鼘?/span>特征映射為像素(與卷積層的作用正好相反)。
DeConvNet
DeConvNet模型的基本思想是,在卷積神經(jīng)網(wǎng)絡(luò)已經(jīng)訓(xùn)練好的每一層,都增加一個(gè)“去卷積”返回圖像像素。圖像輸入到卷積神經(jīng)網(wǎng)絡(luò)中,并在每個(gè)級(jí)別計(jì)算其特征激活。假設(shè)現(xiàn)在要檢查第四個(gè)卷積層中某個(gè)特征激活,我們來存儲(chǔ)這一個(gè)特征映射的激活,但將卷積層中的所有其他激活都設(shè)為0,然后將此特征映射作為輸入傳遞給DeConvNet模型。該DeConvNet模型具有與原始卷積神經(jīng)網(wǎng)絡(luò)相同的濾波器。然后,輸入經(jīng)過一系列的反池化(和最大池化相反)、校正以及前面每個(gè)層的濾波器操作,然后到達(dá)輸入數(shù)組。
我們知道,卷積層中的第一層是一個(gè)基本特征檢測(cè)器,檢測(cè)邊緣或顏色。如上圖所示,我們可以看到,在第二層有更多的循環(huán)特征被檢測(cè)到。下面,我們來看看第3、4、5層。
?
這些層顯示了更多高級(jí)特征,如狗的頭部或鮮花。需要注意的是,在第一個(gè)卷積層之后,我們通常會(huì)有一個(gè)池化層對(duì)圖像進(jìn)行下采樣(例如,將32*32*3數(shù)組轉(zhuǎn)換為16*16*3的數(shù)組)。這樣做可以在第二層看到原始圖像范圍更廣的特征。
重要性
ZF Net模型不僅是2013年度ImageNet大規(guī)模視覺識(shí)別挑戰(zhàn)賽的冠軍,而且還提供了有關(guān)卷積神經(jīng)網(wǎng)絡(luò)運(yùn)行的絕佳的視覺效果,并展示了更多能夠提高性能的方法。?ZF Net模型所描述的可視化方法不僅有助于解釋卷積神經(jīng)網(wǎng)絡(luò)的內(nèi)部運(yùn)行機(jī)制,而且還提供了對(duì)網(wǎng)絡(luò)架構(gòu)進(jìn)行改進(jìn)的獨(dú)特見解。
3.?VGG Net?(2014)
VGG Net是2014年創(chuàng)建的架構(gòu)(但并不是ImageNet大規(guī)模視覺識(shí)別挑戰(zhàn)賽的冠軍),其利用率達(dá)到7.3%。來自牛津大學(xué)的Karen Simonyan和Andrew Zisserman創(chuàng)建了一個(gè)特別簡(jiǎn)單的19層的卷積神經(jīng)網(wǎng)絡(luò),使用步長(zhǎng)為1的3*3的濾波器,步長(zhǎng)為2的2*2池化層。
主要論點(diǎn)
1.僅僅使用了3*3的濾波器,這與AlexNet第一層使用的11*11濾波器和ZF Net使用的7*7濾波器大不相同。作者證明了兩個(gè)3*3?卷積層的組合具有5*5的有效感受野。在使用較小的濾波器的同時(shí),也模擬出了一個(gè)更大的濾波器,同時(shí)也減少了參數(shù)的數(shù)量。此外,我們還可以在兩個(gè)卷積層中使用ReLU層。
2.三個(gè)卷積層的組合具有7*7的有效感受野。
3.隨著每層的深入,輸入數(shù)組隨之減小(卷積層和池化層的原因),過濾器的數(shù)量隨之,因此數(shù)組的深度也不斷增加。
4.有趣的是,濾波器的數(shù)量在每個(gè)最大池化層之后都會(huì)增加一倍。這強(qiáng)化了縮小空間維度的想法,但增加了網(wǎng)絡(luò)的深度。
5.特別適用于圖像分類和本地化任務(wù)。作者使用本地化的形式作為回歸。
6.用Caffe構(gòu)建架構(gòu)。
7.在訓(xùn)練過程中使用數(shù)據(jù)增強(qiáng)技術(shù)是抖動(dòng)(?scale jittering?)。
8.在每個(gè)卷積層之后使用ReLU層,并采用批梯度下降進(jìn)行訓(xùn)練。
重要性
VGG Net模型一直都是我心目中最有影響力的論文之一,因?yàn)樗?/span>強(qiáng)化了這一觀點(diǎn):為了使視覺數(shù)據(jù)可以分層表示,卷積神經(jīng)網(wǎng)絡(luò)必須具有更加深入的網(wǎng)絡(luò)層。
4. GoogLeNet?(2015)
谷歌使用了Inception模塊來代替簡(jiǎn)單網(wǎng)絡(luò)架構(gòu)這一概念,GoogLeNet模型是一個(gè)22層的卷積神經(jīng)網(wǎng)絡(luò)架構(gòu),并且是2014年度ImageNet大規(guī)模視覺識(shí)別挑戰(zhàn)賽的冠軍,誤差率高達(dá)6.7%。據(jù)我所知,這是第一個(gè)真正摒棄了在順序結(jié)構(gòu)中對(duì)卷積層和池化層進(jìn)行簡(jiǎn)單堆疊的卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)之一。這個(gè)新架構(gòu)著重考慮內(nèi)存和功耗(堆疊所有的這些層并添加大量的濾波器會(huì)產(chǎn)生計(jì)算成本和內(nèi)存成本,同時(shí)也會(huì)增加過擬合的概率)。
?
Inception模塊
并不是像以前的架構(gòu)按順序運(yùn)行,GoogLeNet架構(gòu)中存在可以并行的網(wǎng)絡(luò)。如下圖所示,這個(gè)方框被稱為Inception模塊。
?
讓我們來看看它的內(nèi)部組成。
?
底部的綠色框是輸入,最上面的是輸出。在傳統(tǒng)的卷積網(wǎng)絡(luò)的每一層,你必須選擇是否進(jìn)行池化或卷積操作(也可以選擇過濾器大小)。Inception模塊可以所有這些操作。這正是GoogLeNet的亮點(diǎn)之一。
這樣會(huì)導(dǎo)致太多的輸出,為了解決這一問題,作者在3*3和5*5的層前面添加1*1?的卷積操作對(duì)其進(jìn)行降維。舉個(gè)例子,假設(shè)輸入數(shù)組為100*100*60(這不一定是圖像大小,只是網(wǎng)絡(luò)任意一層的輸入)。使用20個(gè)1*1卷積濾波器可以讓將數(shù)組降到100*100*20。這就意味著3*3和5*5的卷積操作不會(huì)有大量的操作。由于我們正在降低數(shù)組的維度,這一操作被稱作“特征池化”,這和我們用普通的最大池化層來減小圖片的高度和寬度比較相似。
GoogLeNet模型有什么用?這個(gè)網(wǎng)絡(luò)由網(wǎng)絡(luò)層的一個(gè)網(wǎng)絡(luò)、一個(gè)中型卷積濾波器、一個(gè)大型卷積濾波器和一個(gè)池化操作組成。卷積網(wǎng)絡(luò)能夠提取輸入數(shù)組的細(xì)節(jié)信息,而5*5濾波器能夠覆蓋輸入較大范圍的接受野,因此也能夠提取其細(xì)節(jié)信息。你還可以在GoogLeNet模型中進(jìn)行池化操作,這有助于降低空間維度并避免過擬合。最重要的是,在每個(gè)卷積層之后都有ReLU函數(shù),這有助于改善網(wǎng)絡(luò)的非線性。基本上,網(wǎng)絡(luò)在執(zhí)行這些操作的同時(shí),仍能夠保持計(jì)算上的良好性能。
主要論點(diǎn)
1.在整個(gè)架構(gòu)中使用了九個(gè)Inception模塊,總共超過100層!
2.沒有使用全連接層!?他們使用平均池化,這大大節(jié)省了參數(shù)的數(shù)量。
3.使用的參數(shù)比AlexNet架構(gòu)少12倍。
4.利用R-CNN的概念介紹其檢測(cè)架構(gòu)。
5.Inception模塊有了版本更新(版本6和7)。
重要性
GoogLeNet模型是第一個(gè)引入“卷積神經(jīng)網(wǎng)絡(luò)層并不需要依次疊加”這一理念的架構(gòu)之一,作為Inception模塊的一部分,富有創(chuàng)造性的層結(jié)構(gòu)提高了整體性能和計(jì)算效率。
敬請(qǐng)期待后續(xù)論文介紹——理解卷積神經(jīng)網(wǎng)絡(luò)的利器:9篇重要的深度學(xué)習(xí)論文(下)!
??以上為譯文。
本文由阿里云云棲社區(qū)組織翻譯。
作者:【方向】
原文:
理解卷積神經(jīng)網(wǎng)絡(luò)的利器:9篇重要的深度學(xué)習(xí)論文(上)
干貨好文,請(qǐng)關(guān)注掃描以下二維碼:
總結(jié)
以上是生活随笔為你收集整理的理解卷积神经网络的利器:9篇重要的深度学习论文(上)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: YAFFS2移植到AliOS Thing
- 下一篇: 理解卷积神经网络的利器:9篇重要的深度学