天天看點

Noisy Student自訓練方法

作者:商業網絡

原文:Xie, Qizhe, Eduard H. Hovy, Minh-Thang Luong and Quoc V. Le. “Self-Training With Noisy Student Improves ImageNet Classification.” 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) (2020): 10684-10695.

源碼:https://github.com/google-research/noisystudent

我們提出了一種簡單的自訓練方法Noisy Student,在ImageNet上實作了88.4%的Top-1精度,比之前的SOTA模型提高了2.0%。在穩健性測試集上,它将ImageNet-A的Top-1精度從61.0%提高到了83.7%,将ImageNet-C的平均損壞誤差從45.7降低到了28.3,并将ImageNet-P的平均翻轉率從27.8降低到了12.2。

為了實作這一結果,我們首先在有标簽的ImageNet圖像上訓練了一個EfficientNet模型,并将其作為教師模型給300M無标簽圖像打上僞标簽。然後,我們使用上述有标簽圖像和僞标簽圖像訓練了一個更大的EfficientNet作為學生模型。接着,我們讓學生模型成為新的教師模型來疊代這個過程。在生成僞标簽的過程中,教師模型不受幹擾,使僞标簽盡可能準确。而在學生模型的學習過程中,我們通過RandAugment引入dropout、random depth、data augmentation等噪聲,使學生模型的泛化能力優于教師模型。

Noisy Student自訓練方法

表1:Noisy Student與之前的SOTA模型結果的比較。

★ 背景知識

計算機視覺中的半監督學習

SimCLR v2:大型自監督模型是強大的半監督學習者

★ 模型方法

首先,我們基于有标簽圖像,使用标準交叉熵損失訓練一個教師模型。然後,我們使用教師模型在無标簽的圖像上生成僞标簽,僞标簽可以是軟的(連續分布),也可以是硬的(獨熱分布)。然後,我們基于上述有标簽和僞标簽圖像,使用标準交叉熵損失訓練一個學生模型。最後,我們疊代這個過程,将學生模型作為新的教師模型,以生成新的僞标簽并訓練新的學生模型。

圖1:NoisyStudent的方法。

Noisy Student自訓練方法

算法1:NoisyStudent的算法。

★ 實驗結果

Noisy Student自訓練方法

表2:NoisyStudent和之前的SOTA模型在ImageNet上的Top-1和Top-5精度。

Noisy Student自訓練方法

圖2:NoisyStudent使所有型号的EfficientNet都有了顯著的改進。

Noisy Student自訓練方法

表3:在ImageNet-A上的魯棒性結果。

Noisy Student自訓練方法

表4:在ImageNet-C上的魯棒性結果。

Noisy Student自訓練方法

表5:在ImageNet-P上的魯棒性結果。

Noisy Student自訓練方法

圖3:從ImageNet-A、C和P中選擇的圖像示例。在ImageNet-A和C上,帶NoisyStudent的EfficientNet生成了正确的Top-1預測(黑色),而不帶NoisyStudent的EfficientNet生成了錯誤的Top-1預測(紅色)。在ImageNet-P上,不帶NoisyStudent的EfficientNet經常改變預測。

Noisy Student自訓練方法

圖4:NoisyStudent提高了對FGSM攻擊的對抗魯棒性,盡管該模型未針對對抗魯棒性進行優化。

Noisy Student自訓練方法

表6:關于噪聲的消融研究。

Noisy Student自訓練方法

表7:疊代訓練提高了精度,其中Batch Size Ratio表示無标簽資料和有标簽資料之間的批量大小比率。

Noisy Student自訓練方法

表8:本文中使用的EfficientNets的架構規範。

Noisy Student自訓練方法

表9:使用我們的最佳模型(Top-1精度為88.4%)作為教師模型可以帶來更多的性能提升。

Noisy Student自訓練方法

表10:Noisy Student訓練的性能随着無标簽資料量的增加而提高。

Noisy Student自訓練方法

圖5:對于低置信度資料(域外資料),軟僞标簽可以帶來更好的性能。

Noisy Student自訓練方法

表11:使用更大的學生模型可以提高性能。

Noisy Student自訓練方法

表12:對于小型模型,資料平衡會産生更好的結果。

Noisy Student自訓練方法

表13:聯合訓練比預訓練和微調的效果更好。

Noisy Student自訓練方法

表14:對于固定的有标簽資料的批量大小,增大無标簽資料的批量大小可以提高EfficientNet-L2的性能,其中Batch Size Ratio表示無标簽資料和有标簽資料之間的批量大小比率。

Noisy Student自訓練方法

表15:由教師模型初始化的學生模型仍然需要至少140個epoch才能表現良好。

Noisy Student自訓練方法

表16:在ResNet-50上的實驗。

Noisy Student自訓練方法

表17:在SVHN上的結果。

Noisy Student自訓練方法

表18:使用YFCC100M和JFT作為無标簽資料集的結果。

★ 總結讨論

以前關于弱監督學習的工作需要大量的弱标記資料來改進SOTA ImageNet模型。在這項工作中,我們證明了使用無标簽圖像可以顯著提高SOTA ImageNet模型的精度和魯棒性。我們發現,自訓練是一種簡單有效的算法,可以大規模利用無标簽資料。我們通過給學生模型增加噪聲(是以得名NoisyStudent)來改進它,使其可以學到超出教師模型的知識。

我們的實驗表明,帶NoisyStudent的EfficientNet可以達到88.4%的精度,比不帶NoisyStudent時提高了2.9%,這一結果達到了新的SOTA水準,比之前使用弱标記資料的最佳方法提高了2.0%。

我們工作的一個重要貢獻是證明NoisyStudent增強了計算機視覺模型的魯棒性。實驗表明,我們的模型在ImageNet-A、C和P上的性能都有顯著提高。

多模态人工智能

為人類文明進步而努力奮鬥^_^↑

50篇原創内容

歡迎關注“多模态人工智能”公衆号,一起進步^_^↑