0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ResNet原始結(jié)果無法復(fù)現(xiàn)?大神何愷明受到了質(zhì)疑

DPVg_AI_era ? 來源:lp ? 2019-04-19 11:21 ? 次閱讀

ResNet原始結(jié)果無法復(fù)現(xiàn)?大神何愷明的經(jīng)典之作受到了網(wǎng)友質(zhì)疑,不過何愷明本人現(xiàn)身解答之后,讓真理越辯越明。

大神何愷明受到了質(zhì)疑。

今天,Reddit上一位用戶對何愷明的ResNet提出質(zhì)疑,他認為:

何愷明2015年的原始殘差網(wǎng)絡(luò)的結(jié)果沒有被復(fù)現(xiàn),甚至何愷明本人也沒有。

網(wǎng)友稱,他沒有發(fā)現(xiàn)任何一篇論文復(fù)現(xiàn)了原始ResNet網(wǎng)絡(luò)的結(jié)果,或與原始殘差網(wǎng)絡(luò)論文的結(jié)果進行比較,并且所有的論文報告的數(shù)字都比原始論文的更差。

論文中報告的top1錯誤率的結(jié)果如下:

ResNet-50 @ 20.74

resnet - 101 @ 19.87

resnet - 152 @ 19.38

何愷明等人在2015年提出ResNet之后,ResNet很快成為計算機視覺最流行的架構(gòu)之一,這篇論文已經(jīng)被引用了超過20000次。

不過,網(wǎng)友稱,DenseNet(https://arxiv.org/abs/1608.06993,3000+引用)和WideResNets(https://arxiv.org/abs/1605.07146,~1000引用)都沒有使用這個結(jié)果。甚至在何愷明最近的一篇論文中,也沒有使用這個結(jié)果。

按理說,何愷明這篇論文應(yīng)該是這個領(lǐng)域被引用最多的論文之一,原始ResNet的結(jié)果真的沒有被復(fù)現(xiàn)出來嗎?在繼續(xù)討論之前,讓我們先來回顧一下ResNet的思想,以及它之所以強大的原因。

重新審視ResNet:計算機視覺最流行的架構(gòu)之一

2015年,ResNet大大吸引了人們的眼球。實際上,早在ILSVRC2012分類競賽中,AlexNet取得勝利,深度殘差網(wǎng)絡(luò)(deepResidualNetwork)就成為過去幾年中計算機視覺和深度學(xué)習(xí)領(lǐng)域最具突破性的工作。ResNet使得訓(xùn)練深達數(shù)百甚至數(shù)千層的網(wǎng)絡(luò)成為可能,而且性能仍然優(yōu)異。

由于其表征能力強,ResNet在圖像分類任務(wù)之外的許多計算機視覺應(yīng)用上也取得了巨大的性能提升,例如對象檢測和人臉識別。

自2015年以來,許多研究對ResNet架構(gòu)進行了調(diào)整和改進。其中最著名的一些ResNet變體包括:

何愷明等人提出的ResNeXt

康奈爾大學(xué)、清華大學(xué)和Facebook聯(lián)合提出的DenseNet

谷歌MobileNet

孫劍團隊ShuffleNet

顏水成團隊的雙通道網(wǎng)絡(luò)DPN

最近南開大學(xué)、牛津大學(xué)等提出的 Res2Net

……

那么ResNet 的核心思想是什么呢?

根據(jù)泛逼近定理(universalapproximationtheorem),如果給定足夠的容量,一個單層的前饋網(wǎng)絡(luò)就足以表示任何函數(shù)。但是,這個層可能是非常大的,而且網(wǎng)絡(luò)容易過擬合數(shù)據(jù)。因此,研究界有一個共同的趨勢,就是網(wǎng)絡(luò)架構(gòu)需要更深。

從AlexNet的提出以來,state-of-theart的CNN架構(gòu)都是越來越深。雖然AlexNet只有5層卷積層,但后來的VGG網(wǎng)絡(luò)和GoogLeNet分別有19層和22層。

但是,如果只是簡單地將層堆疊在一起,增加網(wǎng)絡(luò)的深度并不會起太大作用。這是由于難搞的梯度消失(vanishinggradient)問題,深層的網(wǎng)絡(luò)很難訓(xùn)練。因為梯度反向傳播到前一層,重復(fù)相乘可能使梯度無窮小。結(jié)果就是,隨著網(wǎng)絡(luò)的層數(shù)更深,其性能趨于飽和,甚至開始迅速下降。

網(wǎng)絡(luò)深度增加導(dǎo)致性能下降

在ResNet之前,已經(jīng)出現(xiàn)好幾種處理梯度消失問題的方法,例如,2015年C.Szegedy等人提出的GoogLeNet在中間層增加一個輔助損失(auxiliaryloss)作為額外的監(jiān)督,但遺憾的是,沒有一個方法能夠真正解決這個問題。

ResNet的核心思想是引入一個“恒等捷徑連接”(identityshortcutconnection),直接跳過一層或多層,如下圖所示:

一個殘差塊

何愷明等人于2015年發(fā)表的論文《用于圖像識別的深度殘差學(xué)習(xí)》(DeepResidualLearningforImageRecognition)中,認為堆疊的層不應(yīng)該降低網(wǎng)絡(luò)的性能,因為我們可以簡單地在當(dāng)前網(wǎng)絡(luò)上堆疊identity映射(層不處理任何事情),并且所得到的架構(gòu)性能不變。這表明,較深的模型所產(chǎn)生的訓(xùn)練誤差不應(yīng)比較淺的模型的誤差更高。作者假設(shè)讓堆疊的層擬合一個殘差映射(residualmapping)要比讓它們直接擬合所需的底層映射更容易。上面的殘差塊(residualblock)顯然仍讓它做到這點。

ResNet 的架構(gòu)

那么這次質(zhì)疑“不能復(fù)現(xiàn)”的結(jié)果是什么呢?討論點集中在原始論文中的表3和表4:

表3:ImageNet驗證集上10-crop測試的錯誤率

表4:ImageNet驗證集上sigle-model的錯誤率結(jié)果

由于其結(jié)果優(yōu)異,ResNet迅速成為各種計算機視覺任務(wù)最流行的架構(gòu)之一。

新智元昨天發(fā)表的文章《對 ResNet 本質(zhì)的一些思考》,對ResNet做了較深入的探討。作者表示:

不得不贊嘆KaimingHe的天才,ResNet這東西,描述起來固然簡單,但是對它的理解每深一層,就會愈發(fā)發(fā)現(xiàn)它的精妙及優(yōu)雅,從數(shù)學(xué)上解釋起來非常簡潔,非常令人信服,而且直切傳統(tǒng)痛點。

ResNet本質(zhì)上就干了一件事:降低數(shù)據(jù)中信息的冗余度。

具體說來,就是對非冗余信息采用了線性激活(通過skipconnection獲得無冗余的identity部分),然后對冗余信息采用了非線性激活(通過ReLU對identity之外的其余部分進行信息提取/過濾,提取出的有用信息即是殘差)。

其中,提取 identity 這一步,就是 ResNet 思想的核心。

何愷明回應(yīng)ResNet結(jié)果不能復(fù)現(xiàn)

再回到文章開頭的討論:原始ResNet的結(jié)果真的無法復(fù)現(xiàn)嗎?

針對網(wǎng)友的質(zhì)疑,不少人在帖子下回復(fù),可以總結(jié)為兩個方面:

ImageNet有多種測試策略,后來的論文在復(fù)現(xiàn)ImageNet時采用的是當(dāng)時流行的策略,而非ResNet原始論文的策略;

后來的論文在訓(xùn)練時采用了一些與原始論文不同的優(yōu)化技巧,使得結(jié)果甚至比原始ResNet 論文的結(jié)果更好

何愷明本人也第一時間作出回復(fù):

ImageNet上有幾種測試策略:(i)single-scale,single-crop測試;(ii)single-scale,multi-crop或fully-convolutional測試;(iii)multi-scale,multi-crop或fully-convolutional測試;(iv)多個模型集成。

在這些設(shè)置下,這篇論文的ResNet-50模型的top-1錯誤率為:(i)24.7%(1-crop,如我的GitHubrepo所展示),(ii)22.85%(10-crop,論文中的表3),(iii)20.74%(full-conv,multi-scale,論文中的Table4)。論文中使用的(ii)和(iii)的描述見第3.4節(jié)。

當(dāng)時是2015年,(ii)和(iii)是最流行的評估設(shè)置。策略(ii)是AlexNet的默認值(10-crop),(ii)和(iii)是OverFeat、VGG和GoogleNet中常用的設(shè)置。Single-crop測試在當(dāng)時并不常用。

2015/2016年后,Single-crop測試開始流行。這在一定程度上是因為社區(qū)已經(jīng)變成一個對網(wǎng)絡(luò)精度的差異很感興趣的環(huán)境(因此single-crop足以提供這些差異)。

ResNet是近年來被復(fù)現(xiàn)得最多的架構(gòu)之一。在我的GitHubrepo中發(fā)布的ResNet-50模型是第一次訓(xùn)練的ResNet-50,盡管如此,它仍然十分強大,并且在今天的許多計算機視覺任務(wù)中仍然是預(yù)訓(xùn)練的骨干。我認為,ResNet的可復(fù)現(xiàn)性經(jīng)受住了時間的考驗。

Reddit用戶ajmooch指出:

你忘記了測試時數(shù)據(jù)增強(test-timeaugmentation,TTA)。表4中的數(shù)字來自于不同scales的multi-crop的平均預(yù)測(以計算時間為代價優(yōu)化精度),而其他論文中的數(shù)字是single-crop的。

表3列出了10-crop測試的數(shù)據(jù)。表4的數(shù)字更好,所以它肯定不是singlecrop的數(shù)字。我的猜測是n-crop,可能還包括其他增強,比如翻轉(zhuǎn)圖像。

這個帖子讀起來有點像指責(zé),我不喜歡。ResNet因為在ImageNet測試集上表現(xiàn)出色而著名,而ImageNet測試集隱藏在服務(wù)器上,他們沒有辦法在那里處理這些數(shù)字。ResNet是我能想到的被復(fù)現(xiàn)最多的架構(gòu)之一。它顯然是合理的。在開始批評別人之前,我們應(yīng)該先了解我們在批評什么。

谷歌大腦工程師hardmaru也回復(fù)道:

在何愷明加入FAIR之前,F(xiàn)AIRTorch-7團隊獨立復(fù)現(xiàn)了ResNet:https://github.com/facebook/fb.resnet.torch

經(jīng)過訓(xùn)練的ResNet18、34、50、101、152和200模型,可供下載。我們包括了使用自定義數(shù)據(jù)集,對圖像進行分類并獲得模型的top5預(yù)測,以及使用預(yù)訓(xùn)練的模型提取圖像特征的說明。

他們的結(jié)果如下表:

經(jīng)過訓(xùn)練的模型比原始ResNet模型獲得了更好的錯誤率。

但是,考慮到:

這個實現(xiàn)與ResNet論文在以下幾個方面有所不同:

規(guī)模擴大(Scaleaugmentation):我們使用了GooLeNet中的的規(guī)模和長寬比,而不是ResNet論文中的scaleaugmentation。我們發(fā)現(xiàn)這樣的驗證錯誤更好。

顏色增強(Coloraugmentation):除了在ResNet論文中使用的AlexNet風(fēng)格的顏色增強外,我們還使用了AndrewHoward提出的的亮度失真(photometricdistortions)。

權(quán)重衰減(Weightdecay):我們將權(quán)重衰減應(yīng)用于所有權(quán)重和偏差,而不僅僅是卷積層的權(quán)重。

Stridedconvolution:當(dāng)使用瓶頸架構(gòu)時,我們在3x3卷積中使用stride2,而不是在第一個1x1卷積。

何愷明的GitHub有Caffe模型訓(xùn)練的原始版本和更新版本的resnet,而且報告的也不同:

(https://github.com/KaimingHe/deep-residual-networks/blob/master/README.md)

也許他的GitHub報告中的方法與論文不一致,但為了可重復(fù)性而不使用相同的方法也有點奇怪。

也許arxiv或repo應(yīng)該使用一致的數(shù)字進行更新,或者更好的是,使用多次獨立運行的平均值。

但是隨著SOTA的改進和該領(lǐng)域的發(fā)展,其他人花費資源來產(chǎn)生舊的結(jié)果的動機就更少了。人們寧愿使用他們的資源來復(fù)現(xiàn)當(dāng)前的SOTA或嘗試其他新想法。

許多人引用它是因為它的概念本身,而不是為了報告排行榜分數(shù)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 梯度
    +關(guān)注

    關(guān)注

    0

    文章

    30

    瀏覽量

    10333
  • 計算機視覺
    +關(guān)注

    關(guān)注

    8

    文章

    1699

    瀏覽量

    46050
  • resnet
    +關(guān)注

    關(guān)注

    0

    文章

    12

    瀏覽量

    3174

原文標(biāo)題:經(jīng)典ResNet結(jié)果不能復(fù)現(xiàn)?何愷明回應(yīng):它經(jīng)受住了時間的考驗

文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    調(diào)試ADS1256,到了讀轉(zhuǎn)換結(jié)果的時候結(jié)果總是為0,為什么?

    最近一直在調(diào)試ADS1256,目前讀寫寄存器沒有問題,但是到了讀轉(zhuǎn)換結(jié)果的時候 結(jié)果總是為0,我做的是單端測量,AINp選的通道3,AINn選的是AINCOM 但總是讀不出結(jié)果來,哪
    發(fā)表于 01-09 08:12

    傳感器的響應(yīng)時間對測量結(jié)果影響?

    傳感器 的響應(yīng)時間對測量結(jié)果有以下幾方面的影響:測量準(zhǔn)確性 快速變化信號測量失真:當(dāng)測量對象的物理量變化較快時,如果 傳感器 響應(yīng)時間過長,就無法及時跟上變化,導(dǎo)致測量結(jié)果與實際值存在偏差。例如
    的頭像 發(fā)表于 11-29 09:24 ?368次閱讀
    傳感器的響應(yīng)時間對測量<b class='flag-5'>結(jié)果</b>有<b class='flag-5'>何</b>影響?

    ADS1259工作一段時間后轉(zhuǎn)換結(jié)果飽和怎么解決?

    時,當(dāng)增加到92%左右,ADS1259就會輸出一個飽和值,這個時候reset單片機沒有任何效果,只有重新掉電再上電,ADS1259的輸出結(jié)果又恢復(fù)正常。 反復(fù)試驗,很容易復(fù)現(xiàn)這個現(xiàn)象。 實在是想不明白,求大神指教
    發(fā)表于 11-22 07:38

    ADS8689 REFIO、PEFCAP引腳的輸出電流能力大概在多少?

    在數(shù)據(jù)手冊中提到REFIO、PEFCAP引腳不可以直接驅(qū)動負載,受到了輸出電流的限制,想請問一下,該引腳的輸出電流能力大概在多少。
    發(fā)表于 11-19 06:37

    基于改進ResNet50網(wǎng)絡(luò)的自動駕駛場景天氣識別算法

    ResNet50網(wǎng)絡(luò)4組模塊內(nèi)加入SE模塊,以便更好地擬合通道間復(fù)雜的魯棒性?;谧詣玉{駛汽車路測圖像數(shù)據(jù)對所提算法進行Python編程實現(xiàn),結(jié)果表明:SE模塊的加入能夠增加算法的魯棒性和準(zhǔn)確性,提高了自動駕駛的天氣識別精度。
    的頭像 發(fā)表于 11-09 11:14 ?959次閱讀
    基于改進<b class='flag-5'>ResNet</b>50網(wǎng)絡(luò)的自動駕駛場景天氣識別算法

    用IO模擬I2C時序讀寫ADC3101寄存器,果無論寫入什么值還是讀默認的值都顯示255,為什么?

    根據(jù)手冊時序 用IO模擬I2C時序 讀寫ADC3101寄存器 手冊時序如下圖 最后結(jié)果無論寫入什么值 還是讀默認的值都顯示255,求解答
    發(fā)表于 10-22 06:05

    果無線充發(fā)射端接收端磁吸組件——輕松充電,享受便捷生活

    果無線充發(fā)射端接收端磁吸組件——輕松充電,享受便捷生活
    的頭像 發(fā)表于 10-08 09:29 ?261次閱讀

    SIM卡座二合一的設(shè)計受到了廣大用戶的青睞

    SIM卡座二合一連接器設(shè)計以其節(jié)省空間、便捷切換、增強安全性、支持多樣化網(wǎng)絡(luò)制式、促進技術(shù)創(chuàng)新以及環(huán)保節(jié)能等諸多優(yōu)勢,成為了當(dāng)前智能手機市場的一大亮點。它不僅提升了用戶體驗,還推動了移動通信產(chǎn)業(yè)的持續(xù)發(fā)展。其中SIM卡座二合一的設(shè)計便是近年來備受矚目的創(chuàng)新之一。這種設(shè)計不僅優(yōu)化了手機內(nèi)部空間結(jié)構(gòu),還帶來了諸多使用上的優(yōu)勢,同時能極大地提升了用戶體驗。
    的頭像 發(fā)表于 09-18 17:22 ?572次閱讀
    SIM卡座二合一的設(shè)計<b class='flag-5'>受到了</b>廣大用戶的青睞

    LM6703照著datasheet里面撘了一個電路,設(shè)定Rf為300放大10倍結(jié)果無論怎樣都只放大2倍左右,為什么?

    照著datasheet里面撘了一個電路,設(shè)定Rf為300放大10倍結(jié)果無論怎樣都只放大2倍左右,另外改了Rf為900歐一樣沒有改變只有兩倍,SD管腳我是懸空的。
    發(fā)表于 09-06 08:26

    數(shù)半導(dǎo)體發(fā)布專為低壓供電的電機驅(qū)動芯片

    在現(xiàn)今日新月異的電子科技領(lǐng)域中,電機驅(qū)動芯片作為電子設(shè)備的核心部件之一,其性能和應(yīng)用范圍直接影響到產(chǎn)品的整體性能和用戶體驗。數(shù)半導(dǎo)體公司近期推出的SLM8837電機驅(qū)動芯片,憑借其高效節(jié)能和專為低壓供電應(yīng)用而設(shè)計的特性,在市場中脫穎而出,受到了廣泛的關(guān)注和好評。
    的頭像 發(fā)表于 06-29 11:33 ?668次閱讀

    把NVS_KEY_NAME_MAX_SIZE這個宏修改后,結(jié)果無法正常寫入和讀取了怎么解決?

    應(yīng)用需要一個輕量化的數(shù)據(jù)庫,現(xiàn)在是用NVS實現(xiàn)的,但是key的最大長度太短了,不夠用,我試著把NVS_KEY_NAME_MAX_SIZE這個宏改成64(默認是16),結(jié)果無法正常寫入和讀取了。請問有什么辦法解決呢?
    發(fā)表于 06-06 07:40

    stm8l discovery IAR無法調(diào)試的原因?

    新手剛接觸,某寶買了塊stm8l discovery 評估板,用IAR開發(fā)。結(jié)果無法調(diào)試下載程序。調(diào)試信息如下: 調(diào)試模式啟動不了了,請問是怎么回事啊,JP1跳線帽接在on上,ST-LINK兩個跳線
    發(fā)表于 05-08 07:42

    STM32F103C8T6 STOP模式無法通過RTC喚醒是為什么?

    使用如下函數(shù) RTC_SetAlarm(RTC_GetCounter()+10); //設(shè)置待機時間 PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);//進入低功耗結(jié)果無法通過RTC喚醒,是為啥啊
    發(fā)表于 03-25 06:12

    晶豐源2023業(yè)績下滑 庫存回歸理性

    對于公司在過去一年中的困境,晶豐源解釋道,這是因為受到了包括上游產(chǎn)能松動、下游需求萎縮以及渠道庫存壓力增大等多重因素的影響。為應(yīng)對這些問題,公司相應(yīng)地采取了庫存清理和產(chǎn)品成本結(jié)構(gòu)優(yōu)化措施。
    的頭像 發(fā)表于 02-26 15:36 ?626次閱讀

    無法使用MATLAB中的Position2 Go雷達套件提取原始數(shù)據(jù)怎么解決?

    無法使用 MATLAB 中的 Position2 Go 雷達套件提取原始數(shù)據(jù)。 MATLAB 錯誤: 使用串行時出錯(第 99 行)指定了 無效的端口。 RadarSystem(第 10 行)中
    發(fā)表于 01-31 06:15