ResNet原始結(jié)果無(wú)法復(fù)現(xiàn)?大神何愷明的經(jīng)典之作受到了網(wǎng)友質(zhì)疑,不過(guò)何愷明本人現(xiàn)身解答之后,讓真理越辯越明。
大神何愷明受到了質(zhì)疑。
今天,Reddit上一位用戶對(duì)何愷明的ResNet提出質(zhì)疑,他認(rèn)為:
何愷明2015年的原始?xì)埐罹W(wǎng)絡(luò)的結(jié)果沒(méi)有被復(fù)現(xiàn),甚至何愷明本人也沒(méi)有。
網(wǎng)友稱,他沒(méi)有發(fā)現(xiàn)任何一篇論文復(fù)現(xiàn)了原始ResNet網(wǎng)絡(luò)的結(jié)果,或與原始?xì)埐罹W(wǎng)絡(luò)論文的結(jié)果進(jìn)行比較,并且所有的論文報(bào)告的數(shù)字都比原始論文的更差。
論文中報(bào)告的top1錯(cuò)誤率的結(jié)果如下:
ResNet-50 @ 20.74
resnet - 101 @ 19.87
resnet - 152 @ 19.38
何愷明等人在2015年提出ResNet之后,ResNet很快成為計(jì)算機(jī)視覺(jué)最流行的架構(gòu)之一,這篇論文已經(jīng)被引用了超過(guò)20000次。
不過(guò),網(wǎng)友稱,DenseNet(https://arxiv.org/abs/1608.06993,3000+引用)和WideResNets(https://arxiv.org/abs/1605.07146,~1000引用)都沒(méi)有使用這個(gè)結(jié)果。甚至在何愷明最近的一篇論文中,也沒(méi)有使用這個(gè)結(jié)果。
按理說(shuō),何愷明這篇論文應(yīng)該是這個(gè)領(lǐng)域被引用最多的論文之一,原始ResNet的結(jié)果真的沒(méi)有被復(fù)現(xiàn)出來(lái)嗎?在繼續(xù)討論之前,讓我們先來(lái)回顧一下ResNet的思想,以及它之所以強(qiáng)大的原因。
重新審視ResNet:計(jì)算機(jī)視覺(jué)最流行的架構(gòu)之一
2015年,ResNet大大吸引了人們的眼球。實(shí)際上,早在ILSVRC2012分類競(jìng)賽中,AlexNet取得勝利,深度殘差網(wǎng)絡(luò)(deepResidualNetwork)就成為過(guò)去幾年中計(jì)算機(jī)視覺(jué)和深度學(xué)習(xí)領(lǐng)域最具突破性的工作。ResNet使得訓(xùn)練深達(dá)數(shù)百甚至數(shù)千層的網(wǎng)絡(luò)成為可能,而且性能仍然優(yōu)異。
由于其表征能力強(qiáng),ResNet在圖像分類任務(wù)之外的許多計(jì)算機(jī)視覺(jué)應(yīng)用上也取得了巨大的性能提升,例如對(duì)象檢測(cè)和人臉識(shí)別。
自2015年以來(lái),許多研究對(duì)ResNet架構(gòu)進(jìn)行了調(diào)整和改進(jìn)。其中最著名的一些ResNet變體包括:
何愷明等人提出的ResNeXt
康奈爾大學(xué)、清華大學(xué)和Facebook聯(lián)合提出的DenseNet
谷歌MobileNet
孫劍團(tuán)隊(duì)ShuffleNet
顏水成團(tuán)隊(duì)的雙通道網(wǎng)絡(luò)DPN
最近南開(kāi)大學(xué)、牛津大學(xué)等提出的 Res2Net
……
那么ResNet 的核心思想是什么呢?
根據(jù)泛逼近定理(universalapproximationtheorem),如果給定足夠的容量,一個(gè)單層的前饋網(wǎng)絡(luò)就足以表示任何函數(shù)。但是,這個(gè)層可能是非常大的,而且網(wǎng)絡(luò)容易過(guò)擬合數(shù)據(jù)。因此,研究界有一個(gè)共同的趨勢(shì),就是網(wǎng)絡(luò)架構(gòu)需要更深。
從AlexNet的提出以來(lái),state-of-theart的CNN架構(gòu)都是越來(lái)越深。雖然AlexNet只有5層卷積層,但后來(lái)的VGG網(wǎng)絡(luò)和GoogLeNet分別有19層和22層。
但是,如果只是簡(jiǎn)單地將層堆疊在一起,增加網(wǎng)絡(luò)的深度并不會(huì)起太大作用。這是由于難搞的梯度消失(vanishinggradient)問(wèn)題,深層的網(wǎng)絡(luò)很難訓(xùn)練。因?yàn)樘荻确聪騻鞑サ角耙粚樱貜?fù)相乘可能使梯度無(wú)窮小。結(jié)果就是,隨著網(wǎng)絡(luò)的層數(shù)更深,其性能趨于飽和,甚至開(kāi)始迅速下降。
網(wǎng)絡(luò)深度增加導(dǎo)致性能下降
在ResNet之前,已經(jīng)出現(xiàn)好幾種處理梯度消失問(wèn)題的方法,例如,2015年C.Szegedy等人提出的GoogLeNet在中間層增加一個(gè)輔助損失(auxiliaryloss)作為額外的監(jiān)督,但遺憾的是,沒(méi)有一個(gè)方法能夠真正解決這個(gè)問(wèn)題。
ResNet的核心思想是引入一個(gè)“恒等捷徑連接”(identityshortcutconnection),直接跳過(guò)一層或多層,如下圖所示:
一個(gè)殘差塊
何愷明等人于2015年發(fā)表的論文《用于圖像識(shí)別的深度殘差學(xué)習(xí)》(DeepResidualLearningforImageRecognition)中,認(rèn)為堆疊的層不應(yīng)該降低網(wǎng)絡(luò)的性能,因?yàn)槲覀兛梢院?jiǎn)單地在當(dāng)前網(wǎng)絡(luò)上堆疊identity映射(層不處理任何事情),并且所得到的架構(gòu)性能不變。這表明,較深的模型所產(chǎn)生的訓(xùn)練誤差不應(yīng)比較淺的模型的誤差更高。作者假設(shè)讓堆疊的層擬合一個(gè)殘差映射(residualmapping)要比讓它們直接擬合所需的底層映射更容易。上面的殘差塊(residualblock)顯然仍讓它做到這點(diǎn)。
ResNet 的架構(gòu)
那么這次質(zhì)疑“不能復(fù)現(xiàn)”的結(jié)果是什么呢?討論點(diǎn)集中在原始論文中的表3和表4:
表3:ImageNet驗(yàn)證集上10-crop測(cè)試的錯(cuò)誤率
表4:ImageNet驗(yàn)證集上sigle-model的錯(cuò)誤率結(jié)果
由于其結(jié)果優(yōu)異,ResNet迅速成為各種計(jì)算機(jī)視覺(jué)任務(wù)最流行的架構(gòu)之一。
新智元昨天發(fā)表的文章《對(duì) ResNet 本質(zhì)的一些思考》,對(duì)ResNet做了較深入的探討。作者表示:
不得不贊嘆KaimingHe的天才,ResNet這東西,描述起來(lái)固然簡(jiǎn)單,但是對(duì)它的理解每深一層,就會(huì)愈發(fā)發(fā)現(xiàn)它的精妙及優(yōu)雅,從數(shù)學(xué)上解釋起來(lái)非常簡(jiǎn)潔,非常令人信服,而且直切傳統(tǒng)痛點(diǎn)。
ResNet本質(zhì)上就干了一件事:降低數(shù)據(jù)中信息的冗余度。
具體說(shuō)來(lái),就是對(duì)非冗余信息采用了線性激活(通過(guò)skipconnection獲得無(wú)冗余的identity部分),然后對(duì)冗余信息采用了非線性激活(通過(guò)ReLU對(duì)identity之外的其余部分進(jìn)行信息提取/過(guò)濾,提取出的有用信息即是殘差)。
其中,提取 identity 這一步,就是 ResNet 思想的核心。
何愷明回應(yīng)ResNet結(jié)果不能復(fù)現(xiàn)
再回到文章開(kāi)頭的討論:原始ResNet的結(jié)果真的無(wú)法復(fù)現(xiàn)嗎?
針對(duì)網(wǎng)友的質(zhì)疑,不少人在帖子下回復(fù),可以總結(jié)為兩個(gè)方面:
ImageNet有多種測(cè)試策略,后來(lái)的論文在復(fù)現(xiàn)ImageNet時(shí)采用的是當(dāng)時(shí)流行的策略,而非ResNet原始論文的策略;
后來(lái)的論文在訓(xùn)練時(shí)采用了一些與原始論文不同的優(yōu)化技巧,使得結(jié)果甚至比原始ResNet 論文的結(jié)果更好
何愷明本人也第一時(shí)間作出回復(fù):
ImageNet上有幾種測(cè)試策略:(i)single-scale,single-crop測(cè)試;(ii)single-scale,multi-crop或fully-convolutional測(cè)試;(iii)multi-scale,multi-crop或fully-convolutional測(cè)試;(iv)多個(gè)模型集成。
在這些設(shè)置下,這篇論文的ResNet-50模型的top-1錯(cuò)誤率為:(i)24.7%(1-crop,如我的GitHubrepo所展示),(ii)22.85%(10-crop,論文中的表3),(iii)20.74%(full-conv,multi-scale,論文中的Table4)。論文中使用的(ii)和(iii)的描述見(jiàn)第3.4節(jié)。
當(dāng)時(shí)是2015年,(ii)和(iii)是最流行的評(píng)估設(shè)置。策略(ii)是AlexNet的默認(rèn)值(10-crop),(ii)和(iii)是OverFeat、VGG和GoogleNet中常用的設(shè)置。Single-crop測(cè)試在當(dāng)時(shí)并不常用。
2015/2016年后,Single-crop測(cè)試開(kāi)始流行。這在一定程度上是因?yàn)樯鐓^(qū)已經(jīng)變成一個(gè)對(duì)網(wǎng)絡(luò)精度的差異很感興趣的環(huán)境(因此single-crop足以提供這些差異)。
ResNet是近年來(lái)被復(fù)現(xiàn)得最多的架構(gòu)之一。在我的GitHubrepo中發(fā)布的ResNet-50模型是第一次訓(xùn)練的ResNet-50,盡管如此,它仍然十分強(qiáng)大,并且在今天的許多計(jì)算機(jī)視覺(jué)任務(wù)中仍然是預(yù)訓(xùn)練的骨干。我認(rèn)為,ResNet的可復(fù)現(xiàn)性經(jīng)受住了時(shí)間的考驗(yàn)。
Reddit用戶ajmooch指出:
你忘記了測(cè)試時(shí)數(shù)據(jù)增強(qiáng)(test-timeaugmentation,TTA)。表4中的數(shù)字來(lái)自于不同scales的multi-crop的平均預(yù)測(cè)(以計(jì)算時(shí)間為代價(jià)優(yōu)化精度),而其他論文中的數(shù)字是single-crop的。
表3列出了10-crop測(cè)試的數(shù)據(jù)。表4的數(shù)字更好,所以它肯定不是singlecrop的數(shù)字。我的猜測(cè)是n-crop,可能還包括其他增強(qiáng),比如翻轉(zhuǎn)圖像。
這個(gè)帖子讀起來(lái)有點(diǎn)像指責(zé),我不喜歡。ResNet因?yàn)樵贗mageNet測(cè)試集上表現(xiàn)出色而著名,而ImageNet測(cè)試集隱藏在服務(wù)器上,他們沒(méi)有辦法在那里處理這些數(shù)字。ResNet是我能想到的被復(fù)現(xiàn)最多的架構(gòu)之一。它顯然是合理的。在開(kāi)始批評(píng)別人之前,我們應(yīng)該先了解我們?cè)谂u(píng)什么。
在何愷明加入FAIR之前,F(xiàn)AIRTorch-7團(tuán)隊(duì)獨(dú)立復(fù)現(xiàn)了ResNet:https://github.com/facebook/fb.resnet.torch
經(jīng)過(guò)訓(xùn)練的ResNet18、34、50、101、152和200模型,可供下載。我們包括了使用自定義數(shù)據(jù)集,對(duì)圖像進(jìn)行分類并獲得模型的top5預(yù)測(cè),以及使用預(yù)訓(xùn)練的模型提取圖像特征的說(shuō)明。
他們的結(jié)果如下表:
經(jīng)過(guò)訓(xùn)練的模型比原始ResNet模型獲得了更好的錯(cuò)誤率。
但是,考慮到:
這個(gè)實(shí)現(xiàn)與ResNet論文在以下幾個(gè)方面有所不同:
規(guī)模擴(kuò)大(Scaleaugmentation):我們使用了GooLeNet中的的規(guī)模和長(zhǎng)寬比,而不是ResNet論文中的scaleaugmentation。我們發(fā)現(xiàn)這樣的驗(yàn)證錯(cuò)誤更好。
顏色增強(qiáng)(Coloraugmentation):除了在ResNet論文中使用的AlexNet風(fēng)格的顏色增強(qiáng)外,我們還使用了AndrewHoward提出的的亮度失真(photometricdistortions)。
權(quán)重衰減(Weightdecay):我們將權(quán)重衰減應(yīng)用于所有權(quán)重和偏差,而不僅僅是卷積層的權(quán)重。
Stridedconvolution:當(dāng)使用瓶頸架構(gòu)時(shí),我們?cè)?x3卷積中使用stride2,而不是在第一個(gè)1x1卷積。
何愷明的GitHub有Caffe模型訓(xùn)練的原始版本和更新版本的resnet,而且報(bào)告的也不同:
(https://github.com/KaimingHe/deep-residual-networks/blob/master/README.md)
也許他的GitHub報(bào)告中的方法與論文不一致,但為了可重復(fù)性而不使用相同的方法也有點(diǎn)奇怪。
也許arxiv或repo應(yīng)該使用一致的數(shù)字進(jìn)行更新,或者更好的是,使用多次獨(dú)立運(yùn)行的平均值。
但是隨著SOTA的改進(jìn)和該領(lǐng)域的發(fā)展,其他人花費(fèi)資源來(lái)產(chǎn)生舊的結(jié)果的動(dòng)機(jī)就更少了。人們寧愿使用他們的資源來(lái)復(fù)現(xiàn)當(dāng)前的SOTA或嘗試其他新想法。
許多人引用它是因?yàn)樗母拍畋旧?,而不是為了?bào)告排行榜分?jǐn)?shù)。
-
梯度
+關(guān)注
關(guān)注
0文章
30瀏覽量
10451 -
計(jì)算機(jī)視覺(jué)
+關(guān)注
關(guān)注
9文章
1706瀏覽量
46545 -
resnet
+關(guān)注
關(guān)注
0文章
13瀏覽量
3287
原文標(biāo)題:經(jīng)典ResNet結(jié)果不能復(fù)現(xiàn)?何愷明回應(yīng):它經(jīng)受住了時(shí)間的考驗(yàn)
文章出處:【微信號(hào):AI_era,微信公眾號(hào):新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
基于RV1126開(kāi)發(fā)板的resnet50訓(xùn)練部署教程

IGBT模塊的反向恢復(fù)現(xiàn)象

德賽電池榮膺仲愷高新區(qū)三項(xiàng)榮譽(yù)
振弦式應(yīng)變計(jì)的安裝對(duì)測(cè)量結(jié)果有何影響?如何避免安裝誤差?

惠州隆利榮獲2024年仲愷高新區(qū)優(yōu)秀企業(yè)經(jīng)濟(jì)突出貢獻(xiàn)獎(jiǎng)
調(diào)試ADS1256,到了讀轉(zhuǎn)換結(jié)果的時(shí)候結(jié)果總是為0,為什么?
傳感器的響應(yīng)時(shí)間對(duì)測(cè)量結(jié)果有何影響?

ADS1259工作一段時(shí)間后轉(zhuǎn)換結(jié)果飽和怎么解決?
基于改進(jìn)ResNet50網(wǎng)絡(luò)的自動(dòng)駕駛場(chǎng)景天氣識(shí)別算法

用IO模擬I2C時(shí)序讀寫ADC3101寄存器,果無(wú)論寫入什么值還是讀默認(rèn)的值都顯示255,為什么?
蘋果無(wú)線充發(fā)射端接收端磁吸組件——輕松充電,享受便捷生活
SIM卡座二合一的設(shè)計(jì)受到了廣大用戶的青睞

評(píng)論