【讀論文】AlexNet (ImageNet Classification with Deep Convolutional Neural Networks)

這是一片十年前的文章(2012年),讓我們回到十年前來(lái)看看Alex小哥、Hinton大佬和他的小伙伴們是怎么設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)的。

論文下載地址https://papers.nips.cc/paper/2012/hash/c399862d3b9d6b76c8436e924a68c45b-Abstract.html
李沐老師的精讀視頻https://www.bilibili.com/video/BV1ih411J7Kz/?spm_id_from=333.788&vd_source=9e5b81656aa2144357f0dca1094e9cbe
AlexNet實(shí)現(xiàn)http://www.reibang.com/p/d364a03dce2b

一、標(biāo)題 Title

Title:ImageNet Classification with Deep Convolutional Neural Networks

  • ImageNet 當(dāng)時(shí)最大的圖片數(shù)據(jù)集竖伯,120萬(wàn)張圖片,1000類(lèi)因宇。
  • Deep Convolutional Neural Networks 神經(jīng)網(wǎng)絡(luò)我們比較熟悉七婴,但是當(dāng)時(shí)主流的神經(jīng)網(wǎng)絡(luò)是SVM,樹(shù)等等羽嫡,deep convolution是一個(gè)新穎的概念本姥。

二、摘要 Abstract

大概內(nèi)容:我們訓(xùn)練了一個(gè)很大很深的神經(jīng)網(wǎng)絡(luò)杭棵,在ImageNet上對(duì)1000類(lèi)進(jìn)行分類(lèi)。錯(cuò)誤率比其他人都要低氛赐,網(wǎng)絡(luò)中有6000萬(wàn)的參數(shù)魂爪,65000個(gè)神經(jīng)元。網(wǎng)絡(luò)結(jié)構(gòu)中有5個(gè)卷積層艰管,三層全連接層滓侍,有max-pooling和softmax。為了加速神經(jīng)網(wǎng)絡(luò)的訓(xùn)練使用GPU加速計(jì)算牲芋。為了減少過(guò)擬合撩笆,使用了dropout捺球。然后又拿著這個(gè)模型參加了比賽,拿了第一且比第二名的成績(jī)要好一些夕冲。


三氮兵、討論 Discussion

比較清奇的是這篇文章沒(méi)有結(jié)論,是一個(gè)討論discussion歹鱼。討論一般為吐吐槽啥的泣栈,看看未來(lái)需要干什么事情。
結(jié)論一般是和摘要的一一對(duì)應(yīng)弥姻,是一種總結(jié)性的段落南片。

大致內(nèi)容:結(jié)果顯示大的深的網(wǎng)絡(luò)是很有用的。如果將網(wǎng)絡(luò)中的某個(gè)層拿掉的話(huà)庭敦,例如疼进,去掉中間層的話(huà)大概會(huì)下降2%左右的精度。

(但是這個(gè)邏輯似乎是錯(cuò)誤的秧廉,不能說(shuō)拿掉一層颠悬,精度下降就說(shuō)深度很重要。因?yàn)橛锌赡苁菂?shù)沒(méi)調(diào)好所導(dǎo)致的問(wèn)題定血。)

為了簡(jiǎn)化模型赔癌,我們沒(méi)有使用非監(jiān)督的圖片進(jìn)行預(yù)訓(xùn)練,我們期待這是有幫助的澜沟,如果我們有足夠強(qiáng)大的計(jì)算資源能夠?qū)⒕W(wǎng)絡(luò)變大灾票,不使用預(yù)訓(xùn)練也沒(méi)關(guān)系。(現(xiàn)在的bert出來(lái)之后茫虽,發(fā)現(xiàn)其實(shí)預(yù)訓(xùn)練的方法會(huì)更好更快的提高模型精度和模型收斂速度)只要網(wǎng)絡(luò)夠大刊苍,訓(xùn)練時(shí)間足夠長(zhǎng),結(jié)構(gòu)就能夠得到改善濒析,但是依然比不上人類(lèi)的視覺(jué)系統(tǒng)正什。 我們還想使用更大更深的網(wǎng)絡(luò)在視頻序列上。


四号杏、精讀

1. 簡(jiǎn)介 introduction:

第一段:目前目標(biāo)識(shí)別的主要方法依然是機(jī)器學(xué)習(xí)的方法婴氮。為了更好地證明他們的性能,我們可以收集更大的數(shù)據(jù)集盾致,學(xué)習(xí)更強(qiáng)大的模型主经,并利用更好的技術(shù)來(lái)防止過(guò)擬合。現(xiàn)如今的數(shù)據(jù)集相對(duì)較型ハА(NORB[16], Caltech, CIFAR)簡(jiǎn)單的識(shí)別任務(wù)都能夠被很好的解決罩驻,尤其是使用了標(biāo)簽保存轉(zhuǎn)換(label-preserving transformations)進(jìn)行數(shù)據(jù)增強(qiáng)的話(huà)。例如护赊,MINIST手寫(xiě)數(shù)字識(shí)別惠遏。但是顯示世界中的物體具有多樣性砾跃,所以想要學(xué)會(huì)去識(shí)別他們就需要更大的訓(xùn)練數(shù)據(jù)集。小數(shù)據(jù)集的缺點(diǎn)已經(jīng)被人們認(rèn)識(shí)到了节吮,直到最近才出現(xiàn)了數(shù)百萬(wàn)張圖象組成的數(shù)據(jù)集抽高,其中ImageNet就是由超過(guò)1500萬(wàn)張標(biāo)記的高分辨率圖片組成,并且種類(lèi)超過(guò)22000個(gè)類(lèi)別课锌。

大概內(nèi)容:以前的數(shù)據(jù)集太小了厨内,而現(xiàn)實(shí)世界的事物擁有多樣性,我們需要更大的數(shù)據(jù)集渺贤,其中ImagetNet就是一個(gè)很大的數(shù)據(jù)集雏胃。

第二段
為了在上百萬(wàn)的圖片中學(xué)會(huì)上千個(gè)物品的種類(lèi),我們需要一個(gè)具有大的學(xué)習(xí)能力的模型志鞍。即使是ImageNet這樣大的數(shù)據(jù)集也不一定能夠解決該問(wèn)題瞭亮,因此我們的模型也需要許多先驗(yàn)知識(shí)來(lái)補(bǔ)償數(shù)據(jù)集不足帶來(lái)的缺陷。卷積神經(jīng)網(wǎng)絡(luò)就是這樣的一類(lèi)模型(CNNs)模型的能力可以通過(guò)改變寬度和深度進(jìn)行控制固棚,而且CNN還對(duì)圖像的性質(zhì)做出了強(qiáng)有力的统翩、大部分是正確的假設(shè)。因此此洲,與具有類(lèi)似大小的層的標(biāo)準(zhǔn)前饋神經(jīng)網(wǎng)絡(luò)相比厂汗,CNN 的鏈接參數(shù)少得多,更加容易訓(xùn)練呜师,而理論上可能只是稍微差一點(diǎn)娶桦。

第三段
即使CNN有著良好的性能和架構(gòu),但是被用于高分辨率的圖像中依舊是昂貴的汁汗。幸運(yùn)的是現(xiàn)在的GPU配合高度優(yōu)化的二維卷積實(shí)現(xiàn)衷畦,足夠強(qiáng)大能夠訓(xùn)練大型的CNN。最近的數(shù)據(jù)集知牌,如ImageNet包含足夠的標(biāo)記示例祈争,以訓(xùn)練此類(lèi)模型,而不會(huì)出現(xiàn)嚴(yán)重的過(guò)擬合

第四段
本文的具體貢獻(xiàn):訓(xùn)練了迄今為止最大的神經(jīng)網(wǎng)絡(luò)角寸,參加了兩個(gè)比賽(ILSVRC-2010 and ILSVRC-2012菩混, 都用了ImageNet的子集),在這些數(shù)據(jù)集上取得了最好的成績(jī)袭厂。我們寫(xiě)了一個(gè)基于高度優(yōu)化GPU的二維卷積和徐連神經(jīng)網(wǎng)絡(luò)所需要的其他操作墨吓,并且將其公開(kāi)。

在文章的第三部分纹磺,我們會(huì)介紹一些新的,并且不同尋常的特點(diǎn)來(lái)提高模型的表現(xiàn)和縮短訓(xùn)練時(shí)間亮曹。

在文章的第四部分橄杨,我們會(huì)介紹:由于我們模型的規(guī)模會(huì)導(dǎo)致嚴(yán)重的過(guò)擬合問(wèn)題秘症,即使有120萬(wàn)個(gè)標(biāo)簽,我們用了一些特殊的技術(shù)來(lái)阻止過(guò)擬合問(wèn)題式矫。

我們最后的模型包含了五層卷積層乡摹,三個(gè)全連接層。模型的深度似乎也是一個(gè)問(wèn)題:我們發(fā)現(xiàn)一走任何一個(gè)卷積層都會(huì)導(dǎo)致較差的結(jié)果采转。(每個(gè)層包含的參數(shù)不超過(guò)模型參數(shù)的1%)

第五段
最后聪廉,網(wǎng)絡(luò)的大小受限于GPU上的可用內(nèi)存,以及我們?cè)敢馊萑痰挠?xùn)練時(shí)間故慈。我們的網(wǎng)絡(luò)需要5到6天的時(shí)間來(lái)訓(xùn)練兩臺(tái)GTX 580 3GB GPU板熊。
我們所有的實(shí)驗(yàn)結(jié)果都表明,我們的結(jié)果能夠被簡(jiǎn)單地提高:等待更好性能的GPU或者可用的更大的數(shù)據(jù)集察绷。

總結(jié): 簡(jiǎn)介部分主要講述了現(xiàn)實(shí)世界面臨的圖像識(shí)別問(wèn)題更加復(fù)雜干签,所以我們需要更大的數(shù)據(jù)集,現(xiàn)在比較大的數(shù)據(jù)集是ImageNet拆撼,這樣大的數(shù)據(jù)集也能夠減少過(guò)擬合的情況容劳。CNN這種模型似乎能夠高效的訓(xùn)練模型,并且能保證精度闸度。而且由于GPU的加速竭贩,使得用CNN模型訓(xùn)練神經(jīng)網(wǎng)絡(luò)成為了可能。接下來(lái)莺禁,介紹本文的貢獻(xiàn)是留量,訓(xùn)練了迄今為止最大的模型,在一個(gè)比賽中取得了最好的成績(jī)睁宰,其中用到了一些新的技術(shù)來(lái)縮短訓(xùn)練時(shí)間肪获,解決過(guò)擬合問(wèn)題。

2. 數(shù)據(jù)集

數(shù)據(jù)集:ImageNet
樣本數(shù):1500萬(wàn)
樣本類(lèi)別量:22000
數(shù)據(jù)來(lái)源:web柒傻,人工標(biāo)注
分辨率:不固定

ILSVRC比賽中用到的數(shù)據(jù)集
ILSVRC使用ImageNet的一個(gè)子集孝赫,每個(gè)子集大約有1000張圖像,1000類(lèi)別红符∏啾總共大約有120萬(wàn)張訓(xùn)練圖像,5萬(wàn)張驗(yàn)證圖像预侯,以及150000測(cè)試圖像致开。

在ImageNet中會(huì)有兩種錯(cuò)誤率(top1和top5):

  • top1錯(cuò)誤率,預(yù)測(cè)標(biāo)簽不是正確標(biāo)簽的比例萎馅。
  • top5錯(cuò)誤率双戳,正確標(biāo)簽不在預(yù)測(cè)圖象最有可能的五個(gè)標(biāo)簽中的比例。

圖像處理:將圖像采樣到256*256

  • 縮放圖片糜芳,短邊為256
  • 中心裁剪飒货,256*256
  • 使用像素的原始RGB值訓(xùn)練網(wǎng)絡(luò)
3. 模型架構(gòu) Architecture

該圖AlexNet 的網(wǎng)絡(luò)架構(gòu)了魄衅,當(dāng)時(shí)由于算力的約束,所以需要兩個(gè)GPU并行訓(xùn)練塘辅。

模型包含了8層可學(xué)習(xí)的層:5個(gè)卷積層和3個(gè)全連接層晃虫。

3.1 ReLU 非線(xiàn)性
當(dāng)時(shí)激活函數(shù)通常會(huì)選取:
f(x) = tanh(x)

f(x) = (1 + e^{?x})^{?1}
上述的這些激活函數(shù)被稱(chēng)之為:飽和的非線(xiàn)性函數(shù)扣墩,他們通常會(huì)比非飽和的非線(xiàn)性函數(shù)的模型收斂速度要慢許多哲银。
其中,ReLU就是一個(gè)非飽和的非線(xiàn)性激活函數(shù)呻惕。

飽和函數(shù):簡(jiǎn)單的理解就是說(shuō)是否有極限荆责,一個(gè)函數(shù)擁有極限就是說(shuō)這個(gè)函數(shù)是一個(gè)飽和函數(shù),否則反之蟆融。例如sigmoid函數(shù)草巡、tanh函數(shù)是飽和函數(shù),relu函數(shù)是非飽和函數(shù)型酥。

f(x) = max(0, x)

下圖是作者用四層神經(jīng)網(wǎng)絡(luò)在CIFAR10上的迭代次數(shù)山憨。實(shí)線(xiàn)是relu,虛線(xiàn)是tanh弥喉。

結(jié)論是:如果使用傳統(tǒng)的飽和非線(xiàn)性函數(shù)郁竟,就無(wú)法用大的神經(jīng)網(wǎng)絡(luò)進(jìn)行本文的工作。
(當(dāng)然在現(xiàn)在看來(lái)由境,關(guān)于激活函數(shù)的選取棚亩,對(duì)收斂速度的影響并沒(méi)有這么大的差距)

文中還提到了 Jarrett . 也做了關(guān)于激活函數(shù)的研究。

(K. Jarrett, K. Kavukcuoglu, M. A. Ranzato, and Y. LeCun. What is the best multi-stage architecture for object recognition? In International Conference on Computer Vision, pages 2146–2153. IEEE, 2009.)

3.2 多GPU訓(xùn)練模型
當(dāng)時(shí)使用的GPU是 GTX 580, 這個(gè)GPU只有3G的顯存虏杰,然而120萬(wàn)個(gè)訓(xùn)練樣本一個(gè)GPU是放不下去的讥蟆,所以將模型部署在兩個(gè)GPU上。

兩個(gè)GPU直接通過(guò)顯存通信而不經(jīng)過(guò)主機(jī)內(nèi)存纺阔,但是僅在特定的層進(jìn)行通信瘸彤,在第三層和全連接層的第一層。

如果你對(duì)多GPU訓(xùn)練不了解的話(huà)笛钝,可以參考以下鏈接:
【簡(jiǎn)單使用多GPU筆記】:http://www.reibang.com/p/ad415cb1f673
【pytorch 多卡并行訓(xùn)練教程】:https://www.bilibili.com/video/BV1yt4y1e7sZ/?vd_source=9e5b81656aa2144357f0dca1094e9cbe

需要注意的是质况,這里的GPU并行計(jì)算是屬于模型并行,但是要區(qū)別于筆記中的模型并行(筆記中的模型并行是將模型攔腰截?cái)嗖C遥兂勺笥覂刹糠纸衢懊婺P偷妮敵鍪呛竺婺P偷妮斎耄_@里是將模型輸入輸出數(shù)據(jù)橫切為兩部分囤捻,兩塊GPU上模型的對(duì)應(yīng)層的輸出數(shù)據(jù)首尾相接起來(lái)才是一個(gè)單GPU模型的數(shù)據(jù)大小臼朗。在現(xiàn)在來(lái)看,這樣的操作似乎過(guò)于復(fù)雜了,而且并不好實(shí)現(xiàn)依溯。

3.3 局部響應(yīng)歸一化 Local Response Normalization

譯文:relu有一個(gè)理想的特性老厌,即它們不需要輸入歸一化來(lái)防止飽和瘟则。如果至少有一些訓(xùn)練實(shí)例產(chǎn)生正向輸入到ReLU黎炉,學(xué)習(xí)就會(huì)在那個(gè)神經(jīng)元中發(fā)生。然而醋拧,我們?nèi)匀话l(fā)現(xiàn)下面的局部歸一化方案有助于泛化慷嗜。用ai x,y表示在(x, y)位置應(yīng)用核i計(jì)算神經(jīng)元的活動(dòng),然后應(yīng)用ReLU非線(xiàn)性丹壕,響應(yīng)歸一化活動(dòng)bi x,y由表達(dá)式給出

其中求和在同一空間位置的n個(gè)“相鄰”核映射上運(yùn)行庆械,n為層中核的總數(shù)。內(nèi)核映射的順序當(dāng)然是任意的菌赖,并且是在訓(xùn)練開(kāi)始之前確定的缭乘。這種反應(yīng)正常化實(shí)現(xiàn)了一種由真實(shí)神經(jīng)元中發(fā)現(xiàn)的類(lèi)型激發(fā)的橫向抑制形式琉用,在使用不同核計(jì)算的神經(jīng)元輸出之間創(chuàng)造了對(duì)大型活動(dòng)的競(jìng)爭(zhēng)堕绩。常數(shù)k, n, α和β是超參數(shù)邑时,其值由驗(yàn)證集確定;我們使用k = 2, n = 5奴紧, α = 10?4,β = 0.75晶丘。我們?cè)谀承又袘?yīng)用了ReLU非線(xiàn)性之后應(yīng)用了這個(gè)歸一化(見(jiàn)3.5節(jié))黍氮。該方案與Jarrett等人[11]的局部對(duì)比度歸一化方案有一些相似之處,但我們的方案更準(zhǔn)確地稱(chēng)為“亮度歸一化”浅浮,因?yàn)槲覀儧](méi)有減去平均活度沫浆。響應(yīng)歸一化將我們的前1和前5錯(cuò)誤率分別降低了1.4%和1.2%。我們還在CIFAR-10數(shù)據(jù)集上驗(yàn)證了該方案的有效性:一個(gè)四層CNN在未歸一化的情況下實(shí)現(xiàn)了13%的測(cè)試錯(cuò)誤率滚秩,在歸一化后實(shí)現(xiàn)了11%的測(cè)試錯(cuò)誤率3.

(不大理解什么是飽和专执,什么不飽和,不過(guò)在現(xiàn)在看來(lái)不那么重要)

3.4 重疊池化 Overlapping Pooling
沒(méi)看懂叔遂,原文+譯文

譯文:cnn中的池化層匯總了同一內(nèi)核映射中相鄰神經(jīng)元組的輸出。傳統(tǒng)上已艰,由相鄰池單元總結(jié)的鄰域不重疊(例如,[17,11,4])哩掺。更準(zhǔn)確地說(shuō),池化層可以被認(rèn)為是由池化單元網(wǎng)格組成,池化單元之間間隔s個(gè)像素盒件,每個(gè)單元匯總以池化單元位置為中心的大小為z × z的鄰域蹬碧。如果我們?cè)O(shè)置s = z炒刁,我們得到傳統(tǒng)的本地池,通常在cnn中使用翔始。如果我們?cè)O(shè)置s < z罗心,我們得到重疊池。這是我們?cè)谡麄€(gè)網(wǎng)絡(luò)中使用的城瞎,s = 2 z = 3。與非重疊方案s = 2, z = 2相比飒箭,該方案將top-1和top-5錯(cuò)誤率分別降低了0.4%和0.3%,且輸出的維數(shù)相等弦蹂。在訓(xùn)練過(guò)程中卷员,我們通常觀(guān)察到重疊池的模型過(guò)擬合難度略高。

大概是說(shuō)毕骡,對(duì)傳統(tǒng)的polling做了一些改變,提升了一些精度未巫。

3.5 總體架構(gòu) Overall Architecture

AlexNet = 5*conv + 3*dense
由于當(dāng)時(shí)的硬件限制用了兩個(gè)GPU,所以這個(gè)網(wǎng)絡(luò)結(jié)構(gòu)看起來(lái)比較復(fù)雜劈伴,如果在單CPU上還是挺簡(jiǎn)單的。圖中的方框是輸入輸出的大小跛璧,包括長(zhǎng)寬和通道數(shù)新啼。兩個(gè)GPU上有自己獨(dú)立的卷積核,所以說(shuō)是各學(xué)各的燥撞,論文中提到的卷積核的數(shù)量是指兩個(gè)GPU上的總數(shù)迷帜。第一層色洞,先從256256的圖片中隨機(jī)裁取244244作為圖片的輸入,使用原始的RGB火诸,3個(gè)通道的的原始值直接進(jìn)行輸入(這其實(shí)是一個(gè)很厲害的操作)。第一層到第二層之間GPU之間不通信惭蹂,每個(gè)GPU依然都更新自己的權(quán)重伞插;在第三層卷積層會(huì)將第二個(gè)卷積層中GPU0和GPU1的卷積結(jié)果作為輸入,兩個(gè)GPU之間會(huì)通訊一次盾碗。

第一層:卷積層,卷積核11*11舀瓢,stride=4, 卷積核數(shù)量為96/2廷雅,輸出大小為55*55*48。后面有一個(gè)max pooling(最大池化層)stride=2京髓。
第二層:卷積層航缀,卷積核5*5,padding=2堰怨,卷積核數(shù)量為256/2, 輸出大小為:27*27*128芥玉。后面有一個(gè)max pooling(最大池化層)stride=2备图。
第三層:卷積層,卷積核3*3抠藕,stride=2蒋困,卷積核數(shù)量為384/2, 輸出大小為:13*13*192。
第四層:卷積層雪标,卷積核3*3忆谓,padding=1,卷積核數(shù)量為384/2, 輸出大小為:13*13*192。
第五層:卷積層庐船,卷積核3*3侦镇,padding=1,卷積核數(shù)量為256/2, 輸出大小為:13*13*128拟蜻。后面有一個(gè)max pooling(最大池化層)stride=2。

高寬慢慢變小诡必、深度慢慢增加搔扁,隨著深度的增加,慢慢地將空間信息壓縮扭勉,直到最后每一個(gè)像素能夠代表前面一大塊的像素苛聘,然后再將通道數(shù)慢慢增加,可以認(rèn)為每個(gè)通道數(shù)是去看一種特定的模式(例如192個(gè)通道可以簡(jiǎn)單地認(rèn)為设哗,能夠識(shí)別圖片中的192種不同的模式)
慢慢將空間信息壓縮,語(yǔ)義空間慢慢增加震缭,到最后卷積完之后战虏,進(jìn)入全連接層
全連接層中又出現(xiàn)了GPU之間的通訊,全連接層的輸入是每個(gè)GPU第五個(gè)卷積的輸出合并起來(lái)做全連接

4. 減少過(guò)擬合 Reducing Overfitting

我們的模型有六千萬(wàn)個(gè)參數(shù)徐裸,雖然有1000類(lèi)啸盏,但依舊是非常容易過(guò)擬合的。

4.1 數(shù)據(jù)增強(qiáng) Data Augmentation
文中指出從數(shù)據(jù)的角度較少過(guò)擬合气笙,就需要增大我們的數(shù)據(jù)集怯晕,文中提出了兩個(gè)方法。

  • 方法一:我們?cè)嫉膱D片是256*256的舟茶,那么如果我們?cè)谥虚g隨機(jī)的裁剪出224*224大小的圖片堵第,并且經(jīng)過(guò)平移和翻轉(zhuǎn)隧出。數(shù)據(jù)集就擴(kuò)大了約2048倍,(但實(shí)際是有很多圖片都是及其相似的)针余。
  • 方法二:我們對(duì)ImageNet上的訓(xùn)練集的所有RGB像素值執(zhí)行PCA(主成分分析)凄诞,對(duì)于每個(gè)訓(xùn)練圖像,我們添加找到的主成分的倍數(shù)伪朽。該方案近似地捕捉了自然圖像的一個(gè)重要特性既忆,即物體的一致性不受光照強(qiáng)度和顏色的變化影響。該方案將top1錯(cuò)誤率降低了1%以上患雇。

關(guān)于數(shù)據(jù)增強(qiáng)的筆記:http://www.reibang.com/p/8ba8e8e708df

4.2 Dropout

不熟悉dropout的話(huà)可以看我的另一篇筆記:http://www.reibang.com/p/ad00cf171353

文中提到使用多個(gè)模型共同對(duì)數(shù)據(jù)進(jìn)行預(yù)測(cè)往往是非常成功的減少測(cè)試誤差的一種方法苛吱,及模型融合器瘪,但是算力代價(jià)往往也是昂貴的。所以文中使用了dropout技術(shù)援所。隨機(jī)的把一些隱藏層的輸出變成用50%的概率設(shè)為0欣除,每一次都是把一些東西設(shè)置為0,所以模型也就發(fā)生了變化滔岳,就好像每次得到一個(gè)新的模型挽牢,但是這些模型之間權(quán)重是共享的除了設(shè)置成0的,非0的東西都是一樣的禽拔,這樣就等價(jià)于做了模型融合室叉。

后來(lái)大家發(fā)現(xiàn)dropout其實(shí)也不是在做模型融合硫惕,更多的dropout就是一個(gè)正則項(xiàng)(dropout在現(xiàn)行模型上等價(jià)于一個(gè)L2正則項(xiàng))

這里將dropout用在了前面的兩個(gè)全連接層上面
文章說(shuō)沒(méi)有dropout的話(huà)疲憋,overfitting會(huì)非常嚴(yán)重,有dropout的話(huà)缚柳,訓(xùn)練會(huì)比別人慢兩倍。這是由于后面有兩個(gè)非常大的全連接層(4096*4096)這也是為什么GPU上放不下這么大模型的原因彩掐,但現(xiàn)在CNN的設(shè)計(jì)通常不會(huì)使用那么大的全連接層灰追,所以dropout也不那么重要,而且GPU朴下、內(nèi)存也沒(méi)那么吃緊了

當(dāng)然dropout在全連接上還是很有用的苦蒿,在RNN和Attension中使用的非常多

5 模型學(xué)習(xí)的細(xì)節(jié) Details of learning

這里是一些訓(xùn)練過(guò)程中的實(shí)現(xiàn)細(xì)節(jié)。首先是我們的一些超參數(shù)和優(yōu)化器的選擇:

  • 優(yōu)化器:SGD(隨機(jī)梯度下降)
  • 批量大型爬摹:128
  • 動(dòng)量(momentum):0.9
  • 權(quán)重衰退系數(shù):0.0005

這里選擇了使用SGD作為優(yōu)化器在當(dāng)時(shí)是不多見(jiàn)的报强,因?yàn)镾GD比較難調(diào)參,但是后來(lái)發(fā)現(xiàn)SGD里面的噪音對(duì)模型的泛化性其實(shí)是有好處的力惯,所以現(xiàn)在深度學(xué)習(xí)中普遍使用SGD對(duì)模型進(jìn)行訓(xùn)練坚嗜。在這個(gè)文章之后SGD基本上在機(jī)器學(xué)習(xí)界成為了最主流的一個(gè)優(yōu)化算法。關(guān)于weight decay可一看我的另一篇筆記:http://www.reibang.com/p/995516301b0a

  • 關(guān)于權(quán)重初始化苍蔬,就是使用了均值為0碟绑,方差為0.01的正態(tài)分布進(jìn)行權(quán)重的初始化茎匠,對(duì)于一些簡(jiǎn)單的網(wǎng)絡(luò)來(lái)說(shuō)押袍,這往往就足夠了,但是對(duì)于更深的網(wǎng)絡(luò)來(lái)說(shuō)谊惭,可以考慮更多的優(yōu)化方法。

  • 關(guān)于偏差豹芯,在第二層驱敲、第四層和第五層的卷積層把初始的偏移量(bias)初始化成1,剩下的全部初始化成0握牧。但是現(xiàn)在來(lái)說(shuō)的話(huà)娩梨,我們習(xí)慣于將bias初始化為0.

  • 關(guān)于學(xué)習(xí)率,每個(gè)層使用同樣的學(xué)習(xí)率矫俺,從0.01開(kāi)始掸冤,然后呢如果驗(yàn)證誤差不往下降了友雳,就手動(dòng)的將他乘以0.1,就是降低十倍押赊。
    在Alex之后的很多訓(xùn)練里面,都是做規(guī)則性地將學(xué)習(xí)率往下下降十倍涕俗,這是一個(gè)非常主流的做法神帅,例如,ResNet就是每隔30個(gè)epoch下降0.1元镀。但是現(xiàn)在很少用了,現(xiàn)在使用更加平滑的曲線(xiàn)來(lái)降低學(xué)習(xí)率栖疑,比如果用一個(gè)cos的函數(shù)比較平緩地往下降遇革。一開(kāi)始的選擇也很重要,如果選的太大可能會(huì)發(fā)生爆炸萝快,如果太小又有可能訓(xùn)練不動(dòng),所以現(xiàn)在主流的做法是學(xué)習(xí)率從0開(kāi)始再慢慢上升量窘,慢慢下降氢拥。

  • 關(guān)于epoch,模型訓(xùn)練了90個(gè)epoch冬殃,然后每一遍用的是ImageNet完整的120萬(wàn)張圖片叁怪,需要5-6天在兩個(gè)GTX GPU上訓(xùn)練

6 結(jié)果 result

在2010年的ILSVRC比賽中,本文中設(shè)計(jì)的模型拿到了最好的成績(jī)涣觉。

在2012年的ILSVRC比賽中血柳,本文中設(shè)計(jì)的模型依然是拿到了最好的成績(jī)。下表中帶有*號(hào)的是有預(yù)訓(xùn)練的AlexNet膝宁。

有意思的是根吁,我們似乎并沒(méi)有注意過(guò)ImageNet的完整數(shù)據(jù)集是890萬(wàn)張圖片,共有10184類(lèi)介返。我們往往只記住了比賽中用到的120萬(wàn)張圖片和1000個(gè)分類(lèi)愚争。并且結(jié)果顯示用完整的ImageNet的結(jié)果更好一些挤聘。

6.1 定性評(píng)估 Qualitative Evaluations

作者在實(shí)驗(yàn)中發(fā)現(xiàn)了一個(gè)奇怪的現(xiàn)象捅彻,我們的模型使用兩塊GPU訓(xùn)練的,然而作者發(fā)現(xiàn)在GPU1上从隆,卷積核學(xué)習(xí)到的都是和顏色無(wú)關(guān)的內(nèi)容缭裆。在GPU0上卷積核學(xué)習(xí)到的都是和顏色有關(guān)的內(nèi)容。作者說(shuō)辛燥,他經(jīng)過(guò)多次試驗(yàn)后依舊是這樣的結(jié)果缝其,他表示很不理解。(就現(xiàn)在來(lái)看内边,其實(shí)我們也不大能解釋這其中發(fā)生了什么漠其,很有可能就是說(shuō)其實(shí)和GPU并沒(méi)有什么關(guān)系)

左邊的部分就是說(shuō),有可能我們預(yù)測(cè)出來(lái)的結(jié)果雖然不正確和屎,但是我們把前幾個(gè)的預(yù)測(cè)結(jié)果拿出來(lái)看一下柴信,其實(shí)發(fā)現(xiàn),里面有很多標(biāo)簽是很合理的颠印,是有可能被認(rèn)錯(cuò)的抹竹。

右邊的圖片就是說(shuō),我們把相似的幾張圖片放進(jìn)模型中钞楼,并且分別將全連接層的4096的向量提取出來(lái)袄琳,我們對(duì)這些向量進(jìn)行歐氏距離的計(jì)算燃乍,發(fā)現(xiàn)他們的距離是很近的宛琅。就有可能就是說(shuō),神經(jīng)網(wǎng)絡(luò)認(rèn)為他們是相似的舆瘪。作者提到說(shuō)红伦,他更傾向于認(rèn)為模型是在檢索具有相似邊緣模式的圖像,無(wú)論他們語(yǔ)義是否相似召调。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蛮浑,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子玻墅,更是在濱河造成了極大的恐慌壮虫,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件剩拢,死亡現(xiàn)場(chǎng)離奇詭異饶唤,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)办素,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)祸穷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人需曾,你說(shuō)我怎么就攤上這事〈敉颍” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵牡彻,是天一觀(guān)的道長(zhǎng)逃顶。 經(jīng)常有香客問(wèn)我以政,道長(zhǎng),這世上最難降的妖魔是什么盈蛮? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任抖誉,我火速辦了婚禮,結(jié)果婚禮上袒炉,老公的妹妹穿的比我還像新娘。我一直安慰自己孽文,他們只是感情好夺艰,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著减牺,像睡著了一般存谎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上草雕,一...
    開(kāi)封第一講書(shū)人閱讀 49,111評(píng)論 1 285
  • 那天固以,我揣著相機(jī)與錄音,去河邊找鬼诫钓。 笑死篙螟,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的遍略。 我是一名探鬼主播,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼下愈,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蕾久!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起履因,我...
    開(kāi)封第一講書(shū)人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤盹愚,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后毅舆,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體端逼,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年余掖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了礁鲁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡冗美,死狀恐怖析二,靈堂內(nèi)的尸體忽然破棺而出节预,到底是詐尸還是另有隱情属韧,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布糠赦,位于F島的核電站锅棕,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏顾瞻。R本人自食惡果不足惜顺少,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望梅猿。 院中可真熱鬧秒裕,春花似錦、人聲如沸几蜻。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)弧烤。三九已至,卻和暖如春莺戒,著一層夾襖步出監(jiān)牢的瞬間急波,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工名段, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人伸辟。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓自娩,卻偏偏與公主長(zhǎng)得像渠退,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子碎乃,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

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