最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

無需額外數(shù)據(jù)、Tricks、架構(gòu)調(diào)整,CMU開源首個(gè)將ResNet50精度提升至80%+新方法

2020-11-18 10:54 作者:極市平臺(tái)  | 我要投稿

本文是CMU的Zhiqiang Shen提出的一種提升標(biāo)準(zhǔn)ResNet50精度的方法,它應(yīng)該是首個(gè)將ResNet50的Top1精度刷到80%+的(無需額外數(shù)據(jù),無需其他tricks,無需網(wǎng)絡(luò)架構(gòu)調(diào)整)。該文對(duì)于研究知識(shí)蒸餾的同學(xué)應(yīng)該是有不少可參考的價(jià)值,尤其是里面提到的幾點(diǎn)討論與結(jié)論,值得深思。

paper:?https://arxiv.org/abs/2009.08453

code:?https://github.com/szq0214/MEAL-V2

本文首發(fā)自極市平臺(tái),作者@Happy,轉(zhuǎn)載需獲授權(quán)。

Abstract

該文提出一種簡單而有效的方法,無需任何tricks,它可以將標(biāo)準(zhǔn)ResNet50的Top1精度提升到80%+。該方法是基于作者之前MEAL(通過判別方式進(jìn)行知識(shí)蒸餾集成)改進(jìn)而來,作者對(duì)MEAL進(jìn)行了以下兩點(diǎn)改進(jìn):

(1) 僅在最后的輸出部分使用相似性損失與判別損失;

(2) 采用所有老師模型的平均概率作為更強(qiáng)的監(jiān)督信息進(jìn)行蒸餾。

該文提到一個(gè)非常重要的發(fā)現(xiàn):在蒸餾階段不應(yīng)當(dāng)使用one-hot方式的標(biāo)簽編碼。這樣一種簡單的方案可以取得SOTA性能,且并未用到以下幾種常見漲點(diǎn)tricks:(1)類似ResNet50-D的架構(gòu)改進(jìn);(2)額外訓(xùn)練數(shù)據(jù);(3) AutoAug、RandAug等;(4)cosine學(xué)習(xí)率機(jī)制;(5)mixup/cutmix數(shù)據(jù)增廣策略;(6) 標(biāo)簽平滑。

在ImageNet數(shù)據(jù)集上,本文所提方法取得了80.67%的Top1精度(single crop@224),以極大的優(yōu)勢(shì)超越其他同架構(gòu)方案。該方法可以視作采用知識(shí)蒸餾對(duì)ResNet50漲點(diǎn)的一個(gè)新的基準(zhǔn),該文可謂首個(gè)在不改變網(wǎng)路架構(gòu)、無需額外訓(xùn)練數(shù)據(jù)的前提下將ResNet提升到超過80%Top1精度的方法。

Method

提升模型精度的trick一般包含這樣幾點(diǎn):(1) 更好的數(shù)據(jù)增廣方法,比如Mixup、Cutmix、AutoAug、RandAug、Fix resolution discrepancy等;(2) 網(wǎng)絡(luò)架構(gòu)的調(diào)整,比如SENet、ResNeSt之于ResNet;(3)更好的學(xué)習(xí)率調(diào)整機(jī)制,比如cosine;(4)額外的訓(xùn)練數(shù)據(jù);(5) 知識(shí)蒸餾。而本文則聚焦于采用知識(shí)蒸餾(teacher-student)的方法提升標(biāo)準(zhǔn)ResNet50的精度。該文所用方法具有這樣幾點(diǎn)優(yōu)勢(shì)(與已有方法的對(duì)比見下表):

  • No Architecture Modification;

  • No outsize training data beyond ImageNet;

  • No cosine learning rate

  • No extra data augmentation, like mixup, autoaug;

  • No label Smoothing.

與此同時(shí),該文還得到這樣一個(gè)發(fā)現(xiàn):The one-hot/hard label is not neccssary and could not be used in the distillation process,該發(fā)現(xiàn)對(duì)于知識(shí)蒸餾尤為重要。

接下來,我們將從Teachers Ensemble,?KL-divergence,?Discriminator三個(gè)方面進(jìn)行該文方法的介紹。

Teachers Ensemble

在該文的知識(shí)蒸餾框架中,采用老師模型集成的方式提升更精度的預(yù)測(cè)并用于指導(dǎo)學(xué)生模型訓(xùn)練。上圖給出了MEALV1與MEALV2的兩者的區(qū)別與聯(lián)系,在訓(xùn)練階段,在每次迭代開始前MEALV1通過老師選擇模塊選擇用于蒸餾的老師模型;而該文則是采用多個(gè)老師模型的平均預(yù)測(cè)概率作為監(jiān)督信息。那么,這里所提到的Teachers Ensemble可以描述如下:

其中,X,K,p分別表示輸入、老師模型個(gè)數(shù),以及老師模型的預(yù)測(cè)概率。

KL-divergence

KL散度是知識(shí)蒸餾領(lǐng)域最常用的一種損失,它用度量兩個(gè)概率分布之間的相似性。在該文中,KL散度用于度量學(xué)生模型的預(yù)測(cè)概率與前述老師模型的平均預(yù)測(cè)概率之間的相似性。KL散度損失函數(shù)可以描述如下:

當(dāng)然,各位同學(xué)不用花費(fèi)精力去研究上述公式,目前各大深度學(xué)習(xí)框架中均有該損失函數(shù)的實(shí)現(xiàn),直接調(diào)用就好。除了KL散度損失外,另一個(gè)常用的損失函數(shù)就是交叉熵?fù)p失,定義如下:

各位有沒有發(fā)現(xiàn),截止到目前上述所提到的信息基本上就是知識(shí)蒸餾最基本的一些信息了。除了Teachers Ensemble外,該文的創(chuàng)新點(diǎn)在哪里呢?

Discriminator

判別器是一個(gè)二分類器,它用于判別輸入特征來自老師模型還是來自學(xué)生模型。它由sigmoid與二值交叉熵?fù)p失構(gòu)成,定義如下:

作者定義了一個(gè)sigmoid函數(shù)用于模擬老師-學(xué)生的概率,定義如下:

考慮到該文采用的是Teachers Ensemble方式,不方便得到中間特征輸出;同時(shí)為了使整個(gè)框架更簡潔,作者僅僅采用了相似損失與判別損失用于蒸餾。作者通過實(shí)驗(yàn)表明:老師集成模型的的最后一層輸出足以蒸餾一個(gè)強(qiáng)學(xué)生模型。

Experiments

訓(xùn)練數(shù)據(jù):ImageNet,即ILSVRC2012訓(xùn)練集,包含1000個(gè)類別,120W數(shù)據(jù);測(cè)試集:ImageNet,包含5W數(shù)據(jù)。

在訓(xùn)練過程中,作者采用了最基本的數(shù)據(jù)增廣:RandomResizedCrop、RandomHorizontalFlip,在測(cè)試階段采用了CenterCrop。8GPU用訓(xùn)練,batch=512,優(yōu)化器為SGD,未采用weight decay,StepLR,初始學(xué)習(xí)率為0.01,合計(jì)訓(xùn)練180epoch,在100epoch時(shí)學(xué)習(xí)率x0.1。

當(dāng)學(xué)生模型的輸入為224*224時(shí),老師模型為senet154,resnet152_vl;當(dāng)學(xué)生模型的輸入為380*380時(shí),老師模型為efficientnet_b4, efficientnet_b4_ns。注:預(yù)訓(xùn)練模型源自rwightman大神(https://github.com/rwightman/pytorch-image-models)。

在實(shí)驗(yàn)方面,作者分別以ResNet50、MobileNetV3為基準(zhǔn)進(jìn)行了實(shí)驗(yàn)對(duì)比,那么接下來就分別進(jìn)行相關(guān)結(jié)果的介紹。

ResNet50

上表給出了所提方法在ResNet50上的性能對(duì)比。當(dāng)輸入為224*224時(shí),該方法取得了80.67%的Top1精度,以2.46%的指標(biāo)優(yōu)于MEAL;甚至,所提方法還超越了ResNeSt50-fast的80.64%(需要修改網(wǎng)路結(jié)構(gòu),同時(shí)用到了諸多tricks);當(dāng)輸入增大到380*380后,所提方法取得了81.72%的Top1精度,以2.62%優(yōu)于FixRes的79.1%(訓(xùn)練224,測(cè)試384)。

作者同時(shí)還探索了所提方法與其他數(shù)據(jù)增廣的互補(bǔ)性,當(dāng)引入CutMix后,模型的性能還可以進(jìn)一步提升達(dá)到80.98%@224。盡管該提升并不大,但這意味著ResNet50還有繼續(xù)提升的空間。

更有意思的是,所提學(xué)生模型的精度非常接近兩個(gè)老師模型的精度(81.22%/95.36%, 81.01%/95.42%)了。

MobileNetV3

上表給出了所提方法在MobileNetV3與EfficientNetB0上的性能對(duì)比??梢钥吹剑篗obileNetV3-Samall-0.75的性能提升了2.20%,MobileNetV3-Small-1.0的性能提升了2.25%, MobileNetV3-Large-1.0的性能提升了1.72%, EfficietnNet-B0的性能提升了1.49%(76.8/93.2源自EfficientNet原文,而77.3、93.5源自rwightman大神)。在輕量型模型上取得這樣的性能提升著實(shí)令人驚訝,要知道,該文方法不會(huì)導(dǎo)致推理的任何調(diào)整。

Discussion

接下來就是“填坑”時(shí)間了,對(duì)前文的幾個(gè)“坑”來進(jìn)行簡單的分析與討論。

  • Why is the hard/one-hot label not necessary in knowledge distillation?

One-hot標(biāo)簽是人工標(biāo)注的,存在不正確或標(biāo)注信息不全。ImageNet數(shù)據(jù)中有不少圖像包含不止一個(gè)目標(biāo),但僅賦予了one-hot標(biāo)簽,難以很好的表示圖像的內(nèi)容信息。而更精度的老師模型足以提供高質(zhì)量的內(nèi)容信息并更好的引導(dǎo)老師模型的優(yōu)化方向。

  • How does the discriminator help the optimization?

判別器用于防止學(xué)生模型在訓(xùn)練數(shù)據(jù)上過擬合,同時(shí)可以起到正則作用。

  • How about the generalization ability of our method on large students?

作者同時(shí)還嘗試了一些大模型(比如ResNeXt-101 32x8d)同時(shí)作為老師和學(xué)生模型,這意味著老師模型與學(xué)生模型具有相近的容量,正如所期望的,提升不如小模型,但仍可以看到一些提升。一般而言,源自老師模型的軟監(jiān)督信息要比人工標(biāo)準(zhǔn)信息更優(yōu)化??偠灾痪湓挘焊鼜?qiáng)的老師模型可以蒸餾出更強(qiáng)的學(xué)生模型。

  • Is there still room to improve the performance of vanilla ResNet50?

答案是肯定的。替換更多、更強(qiáng)的老師模型還可以進(jìn)一步提升學(xué)生模型的精度,同時(shí)引入其他tricks可能同樣有益(作者沒有去嘗試哦,資源約束,深表同感,哈哈)。作者提到:當(dāng)前的老師-學(xué)生模型選擇是從訓(xùn)練效率、計(jì)算資源等方面均衡的選擇,該文的目的是驗(yàn)證方法的有效性,而非更高精度(看到這里,無言以對(duì))。

全文到此結(jié)束,對(duì)該文感興趣的同學(xué)建議去查看一下原文的分析。



無需額外數(shù)據(jù)、Tricks、架構(gòu)調(diào)整,CMU開源首個(gè)將ResNet50精度提升至80%+新方法的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
石家庄市| 华池县| 克什克腾旗| 盐津县| 轮台县| 佛冈县| 洪江市| 双牌县| 伊通| 定襄县| 武邑县| 福州市| 独山县| 会理县| 北京市| 张家口市| 合肥市| 石景山区| 湘潭市| 什邡市| 宁海县| 旬邑县| 花莲市| 永德县| 隆林| 双城市| 中西区| 沾益县| 曲水县| 兴义市| 蒲城县| 西昌市| 仁寿县| 汕尾市| 黄石市| 额尔古纳市| 潼南县| 平乡县| 五台县| 株洲市| 鄢陵县|