重读经典:《ImageNet Classification with Deep Convolutional Neural Networks》
9年后重讀深度學(xué)習(xí)奠基作之一:AlexNet【下】【論文精讀】
這兩天偶然間在B站看了李沐博士對AlexNet論文的重新解讀,收獲滿滿。AlexNet是當(dāng)今深度學(xué)習(xí)浪潮奠基作之一,發(fā)表在2012年。在視頻中,李沐博士主要是分享了他的三步法快速讀論文。即當(dāng)我們看一篇新的論文,可以按照下面這種方法去讀:
- 第一遍:論文標(biāo)題、摘要、結(jié)論。順帶看看論文中重要的圖和表。花費(fèi)十幾分鐘時(shí)間判斷論文是否和自己的研究方向相同。
- 第二遍:確定論文值得讀之后,可以快速的把整個(gè)論文過一遍,不需要知道所有的細(xì)節(jié),但是需要了解重要的圖和表,知道每一個(gè)部分在干什么,圈出相關(guān)文獻(xiàn)。覺得文章太難理解的話,可以先看看論文中引用的其它文獻(xiàn),了解相關(guān)背景知識。
- 第三遍:最詳細(xì)的一遍,知道每一段和每一句話是什么意思,在復(fù)現(xiàn)論文時(shí)再反復(fù)研讀。
AlexNet論文鏈接:https://proceedings.neurips.cc/paper/2012/file/c399862d3b9d6b76c8436e924a68c45b-Paper.pdf
1.第一遍
首先是論文標(biāo)題,論文標(biāo)題中文意思是:使用深度卷積神經(jīng)網(wǎng)絡(luò)對ImageNet數(shù)據(jù)集進(jìn)行分類。第一次讀論文標(biāo)題時(shí)要注意下面幾個(gè)關(guān)鍵詞:
- ImageNet:論文使用的數(shù)據(jù)集是ImageNet,ImageNet數(shù)據(jù)集具體內(nèi)容是什么樣的?
- Neural Networks :神經(jīng)網(wǎng)絡(luò),這篇文章使用了神經(jīng)網(wǎng)絡(luò)技術(shù)。
- Deep Convolutional:卷積神經(jīng)網(wǎng)絡(luò)工作原理是什么? 同時(shí)作者為什么要使用深度的卷積神經(jīng)網(wǎng)絡(luò)。
下面是論文的作者,論文一作是Alex,這也是本篇論文提出的網(wǎng)絡(luò)被稱為AlexNet的原因??赡軐φ撐那皟蓚€(gè)作者不是很熟悉,但是論文通信作者是Hinton,長期研究神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)。
下面是論文摘要,摘要總共六句話。
- 前2句話介紹了自己做的工作,訓(xùn)練了一個(gè)很大很深的卷積神經(jīng)網(wǎng)絡(luò)在LSVRC-2010 contest取得了很好的結(jié)果。
- 第3句話介紹了網(wǎng)絡(luò)的模型,有6000萬個(gè)參數(shù)和65萬個(gè)神經(jīng)元,模型包含5個(gè)卷積層,以及最大池化層和3個(gè)全連接層。
- 第4句和第5句介紹了如何訓(xùn)練網(wǎng)絡(luò),使用了不飽和的神經(jīng)元和GPU實(shí)現(xiàn),為了減少全連接層的過擬合,使用了dropout技術(shù)。
- 最后一句, 介紹在ILSVRC-2012比賽取得了第一名,錯(cuò)誤率比第二名低了10.9%,可以看到本文設(shè)計(jì)的網(wǎng)絡(luò)模型效果很好。
最后是論文結(jié)論部分,不過本篇論文的結(jié)論是討論,和一般論文稍有不同。論文討論有兩段,第一段說我們在有監(jiān)督學(xué)習(xí)上取得了很好的效果,證明了網(wǎng)絡(luò)的深度很重要。第二段說我們沒有使用任何的無監(jiān)督預(yù)訓(xùn)練,這直接導(dǎo)致了后面的深度學(xué)習(xí)研究都集中在有監(jiān)督學(xué)習(xí)上;同時(shí)作者提出未來會研究視頻數(shù)據(jù)(當(dāng)前研究的一個(gè)很火方向),因?yàn)橐曨l數(shù)據(jù)會提供時(shí)序信息,這是靜態(tài)圖像數(shù)據(jù)所缺失的。
在第一遍時(shí),可以順帶看看論文中重要的圖和表,如網(wǎng)絡(luò)結(jié)構(gòu)圖,可能第一遍不一定能看懂。第一遍讀完后,可以決定后面是否再度第二遍論文,如果是研究圖片分類方向的話,則需要再讀第二遍。
2.第二遍
首先是Introduction部分,分為5段。前3段主要是研究內(nèi)容背景知識介紹,第4段介紹了本文主要貢獻(xiàn)。本文訓(xùn)練了一個(gè)很大的卷積神經(jīng)網(wǎng)絡(luò)在ILSVRC比賽上取得了最好的結(jié)果,同時(shí)本文在GPU實(shí)現(xiàn)了2D卷積操作。本文訓(xùn)練的網(wǎng)絡(luò)包含一些新的和不常見的特征來提高網(wǎng)絡(luò)性能和減少訓(xùn)練時(shí)間,這部分在論文第3節(jié)進(jìn)行了介紹。第4節(jié)介紹了新的技術(shù)來防止過擬合。整個(gè)網(wǎng)絡(luò)包含5個(gè)卷積層和3個(gè)全連接層,同時(shí)發(fā)現(xiàn)網(wǎng)絡(luò)深度是很重要的,即使移除任意一層卷積層,都會導(dǎo)致性能下降。
作者還強(qiáng)調(diào)了由于GPU內(nèi)存的限制,在兩塊GPU上進(jìn)行訓(xùn)練時(shí)需要5-6天時(shí)間,如果能有更快的GPU和更大的數(shù)據(jù)集,網(wǎng)絡(luò)性能還能進(jìn)一步提升。
然后是ImageNet Dataset部分,分為3段。介紹了整個(gè)數(shù)據(jù)集大約有1500萬張圖片,共有22000類。ILSVRC比賽共有1000類,每一類大約有1000張圖片。在2010的比賽中,可以得到測試集數(shù)據(jù)標(biāo)簽,但是在2012年的比賽中則沒有測試集標(biāo)簽。
由于ImageNet數(shù)據(jù)集圖片精度并不相同,因此我們每一張圖片下采樣到256×256256\times256256×256。當(dāng)短邊尺寸小于256時(shí),我們先上采樣到256,然后再從圖片中截取 256×256256\times256256×256 的圖片作為輸入。我們沒有對圖片進(jìn)行任何的預(yù)處理,整個(gè)網(wǎng)絡(luò)是在每個(gè)像素的原始RGB值進(jìn)行訓(xùn)練(也就是端到端訓(xùn)練,這也是深度學(xué)習(xí)的一大優(yōu)勢)。
再然后是Architecture部分,分為5個(gè)小節(jié)。
第一個(gè)介紹的是ReLU激活函數(shù),函數(shù)形式為 f(x)=max(0,x)f(x)=max(0,x)f(x)=max(0,x),形式比較簡單。作者說這是一個(gè)非飽和的非線性函數(shù),比其它激活函數(shù)訓(xùn)練要快(具體原因沒解釋),關(guān)于ReLU函數(shù)的具體介紹可以看參考文獻(xiàn)[20]。作者做了一個(gè)實(shí)驗(yàn),如圖1所示,在將錯(cuò)誤率降低到25%時(shí),ReLU比tanh函數(shù)訓(xùn)練時(shí)要快6倍。
第2小節(jié)-第4小節(jié)介紹的是多GPU訓(xùn)練,歸一化處理、pooling處理,主要是偏工程實(shí)現(xiàn),這些部分可先跳過,在讀第3遍時(shí)再看。
第5小節(jié)是網(wǎng)絡(luò)結(jié)構(gòu)介紹,輸入是 224×224×3224\times224\times3224×224×3 的圖片,然后是5個(gè)卷積層,接著是3個(gè)全連接層,最后一層是softmax層,輸出為1000個(gè)類別標(biāo)簽的預(yù)測概率分布。使用了兩個(gè)GPU進(jìn)行訓(xùn)練(現(xiàn)在訓(xùn)練網(wǎng)絡(luò)一般可以不同分割模型),將網(wǎng)絡(luò)模型切成兩半分別在兩個(gè)GPU中進(jìn)行訓(xùn)練。第2個(gè)、第4個(gè)和第5個(gè)卷積層的輸入為同一GPU上之前一層卷積層的輸出,而第3個(gè)卷積層的輸入為兩個(gè)GPU上的第2個(gè)卷積層輸出。每個(gè)全連接層的輸入都為前一層網(wǎng)絡(luò)的全部輸出。可以看到,隨著網(wǎng)絡(luò)深度的增加,卷積層中圖像大小在減少,而深度在不斷增加。
接著是Reducing Overfitting部分,作者首先使用了數(shù)據(jù)增強(qiáng),增加數(shù)據(jù)的多樣性,然后使用了新的降低過擬合技術(shù)dropout。具體原理作者并沒有解釋,作者使用了50%的概率值來使每一個(gè)隱藏層神經(jīng)元輸出為0。這里dropout技術(shù)主要用在前兩個(gè)全連接層。
下面是實(shí)驗(yàn)設(shè)置,使用SGD進(jìn)行訓(xùn)練,同時(shí)使用了權(quán)重衰減(0.0005)。初始化時(shí)使用了均值為0標(biāo)準(zhǔn)差為0.01的高斯分布,第2、4、5層和全連接層偏差初始值為1,其余層為0。在訓(xùn)練時(shí)會手動改變學(xué)習(xí)率的值,當(dāng)驗(yàn)證集上誤差率不再變化時(shí),將學(xué)習(xí)率除以10,學(xué)習(xí)率初始值為0.01。
下面是論文實(shí)驗(yàn)結(jié)果部分,可以看到在ILSVRC-2010/2012數(shù)據(jù)上作者都取得了最低的錯(cuò)誤率,同時(shí)作者也在2009年版本的ImageNet全部數(shù)據(jù)上進(jìn)行了訓(xùn)練,不過在ImageNet全部數(shù)據(jù)集上進(jìn)行訓(xùn)練的研究比較少。
作者在訓(xùn)練時(shí)也發(fā)現(xiàn)了一些有意思的現(xiàn)象,就是兩個(gè)GPU,一個(gè)GPU上和卷積核和圖像顏色是有關(guān)的,一個(gè)和圖像顏色是無關(guān)的,這個(gè)還待解釋。另一個(gè)是圖4所示,當(dāng)最后一個(gè)隱藏層(4096)神經(jīng)元?dú)W幾里得空間距離相近是,兩張圖片基本上是同一類(深度學(xué)習(xí)的解釋性也是一個(gè)很重要的研究方向)。
至此,論文解讀到此結(jié)束,后面如果想復(fù)現(xiàn)本篇論文時(shí),就需要再多讀幾遍。
總結(jié)
以上是生活随笔為你收集整理的重读经典:《ImageNet Classification with Deep Convolutional Neural Networks》的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 4.深度学习练习:Building yo
- 下一篇: 金发辣妹COS女版祖国人:果然美女也可以