R-Drop:填補Dropout缺陷,簡(jiǎn)單又有效的正則方法
編者按:深度神經(jīng)網(wǎng)絡(luò )是深度學(xué)習的基礎,但其在訓練模型時(shí)會(huì )出現過(guò)擬合的問(wèn)題,而簡(jiǎn)單易用的 Dropout 正則化技術(shù)可以防止這種問(wèn)題的發(fā)生。然而 Dropout 的操作在一定程度上會(huì )使得訓練后的模型成為一種多個(gè)子模型的組合約束。
基于此,微軟亞洲研究院與蘇州大學(xué)提出了更加簡(jiǎn)單有效的正則方法 R-Drop(Regularized Dropout)。實(shí)驗表明,R-Drop 在5個(gè)常用的包含 NLP(自然語(yǔ)言處理) 和 CV(計算機視覺(jué)) 的任務(wù)中都取得了當前最優(yōu)的結果。本文將介紹 R-Drop 的實(shí)施方法、作用與效果,讓大家一窺 R-Drop 的玄機。
深度神經(jīng)網(wǎng)絡(luò )(DNN)近來(lái)已經(jīng)在各個(gè)領(lǐng)域都取得了令人矚目的成功。在訓練這些大規模的 DNN 模型時(shí),正則化(regularization)技術(shù),如 L2 Normalization、Batch Normalization、Dropout 等是不可缺少的模塊,以防止模型過(guò)擬合(over-fitting),同時(shí)提升模型的泛化(generalization)能力。在這其中,Dropout 技術(shù)由于只需要簡(jiǎn)單地在訓練過(guò)程中丟棄一部分的神經(jīng)元,而成為了被最廣為使用的正則化技術(shù)。
近日,微軟亞洲研究院與蘇州大學(xué)在 Dropout [1] 的基礎上提出了進(jìn)一步的正則方法:Regularized Dropout,簡(jiǎn)稱(chēng)R-Drop。與傳統作用于神經(jīng)元(Dropout)或者模型參數(DropConnect [2])上的約束方法不同,R-Drop 作用于模型的輸出層,彌補了 Dropout 在訓練和測試時(shí)的不一致性。簡(jiǎn)單來(lái)說(shuō)就是在每個(gè) mini-batch 中,每個(gè)數據樣本過(guò)兩次帶有 Dropout 的同一個(gè)模型,R-Drop 再使用 KL-divergence 約束兩次的輸出一致。所以,R-Drop 約束了由于 Dropout 帶來(lái)的兩個(gè)隨機子模型的輸出一致性。
與傳統的訓練方法相比,R- Drop 只是簡(jiǎn)單增加了一個(gè) KL-divergence 損失函數項,并沒(méi)有其他任何改動(dòng)。雖然該方法看起來(lái)很簡(jiǎn)單,但實(shí)驗表明,在5個(gè)常用的包含 NLP 和 CV 的任務(wù)中(一共18個(gè)數據集),R-Drop 都取得了非常不錯的結果提升,并且在機器翻譯、文本摘要等任務(wù)上取得了當前最優(yōu)的結果。
論文鏈接:https://arxiv.org/abs/2106.14448
GitHub 鏈接:https://github.com/dropreg/R-Drop
R-Drop方法
由于深度神經(jīng)網(wǎng)絡(luò )非常容易過(guò)擬合,因此 Dropout 方法采用了隨機丟棄每層的部分神經(jīng)元,以此來(lái)避免在訓練過(guò)程中的過(guò)擬合問(wèn)題。正是因為每次隨機丟棄部分神經(jīng)元,導致每次丟棄后產(chǎn)生的子模型都不一樣,所以 Dropout 的操作一定程度上使得訓練后的模型是一種多個(gè)子模型的組合約束?;?Dropout 的這種特殊方式對網(wǎng)絡(luò )帶來(lái)的隨機性,研究員們提出了 R-Drop 來(lái)進(jìn)一步對(子模型)網(wǎng)絡(luò )的輸出預測進(jìn)行了正則約束。
圖1:R-Drop 框架,在訓練時(shí)由 Dropout 帶來(lái)的兩次概率 P_1 和 P_2 的不同
具體來(lái)說(shuō),當給定訓練數據 D={x_i,y_i }_(i=1)^n 后,對于每個(gè)訓練樣本 x_i,會(huì )經(jīng)過(guò)兩次網(wǎng)絡(luò )的前向傳播,從而得到兩次輸出預測:P_1 (y_i│x_i ), P_2 (y_i |x_i)。由于 Dropout 每次會(huì )隨機丟棄部分神經(jīng)元,因此 P_1 和 P_2 是經(jīng)過(guò)兩個(gè)不同的子網(wǎng)絡(luò )(來(lái)源于同一個(gè)模型)得到的不同的兩個(gè)預測概率(如圖1所示)。R-Drop 利用這兩個(gè)預測概率的不同,采用了對稱(chēng)的 Kullback-Leibler (KL) divergence 來(lái)對 P_1 和 P_2 進(jìn)行約束:
再加上傳統的最大似然損失函數:
最終的訓練損失函數即為:
其中 α 是用來(lái)控制 L_KL^i 的系數,因此整個(gè)模型的訓練非常簡(jiǎn)單。在實(shí)際實(shí)現中,數據 x_i 不需要過(guò)兩次模型,而只需要把 x_i 在同一個(gè) batch 中復制一份即可。直觀(guān)地說(shuō),在訓練時(shí),Dropout 希望每一個(gè)子模型的輸出都接近真實(shí)的分布,然而在測試時(shí),Dropout 關(guān)閉使得模型僅在參數空間上進(jìn)行了平均,因此訓練和測試存在不一致性。而 R-Drop 則在訓練過(guò)程中通過(guò)刻意對于子模型之間的輸出進(jìn)行約束,來(lái)約束參數空間,讓不同的輸出都能一致,從而降低了訓練和測試的不一致性。另外,研究員們還從理論的角度出發(fā),闡述了 R-Drop 的約束項對于模型自由度的控制,從而更好地提升模型的泛化性能。
NLP+CV實(shí)驗
為了驗證 R-Drop 的作用,研究員們在5個(gè)不同的 NLP 以及 CV 的任務(wù):機器翻譯、文本摘要、語(yǔ)言模型、語(yǔ)言理解、圖像分類(lèi),總計包含18個(gè)數據集上,進(jìn)行了實(shí)驗驗證。
1. 在機器翻譯任務(wù)上,基于最基礎的Transformer [3]模型,R-Drop 的訓練在 WMT14英語(yǔ)->德語(yǔ)以及英語(yǔ)->法語(yǔ)的任務(wù)上取得了最優(yōu)的 BLEU 分數(30.91/43.95),超過(guò)了其他各類(lèi)復雜、結合預訓練模型、或更大規模模型的結果:
表1:R-Drop 在 WMT14 英語(yǔ)->德語(yǔ)與英語(yǔ)->法語(yǔ)機器翻譯上的結果
2. 在圖像分類(lèi)任務(wù)上,基于預訓練好的 Vision Transformer(ViT)[4] 為骨架網(wǎng)絡(luò ),R-Drop 在 CIFAR-100 數據集以及 ImageNet 數據集上微調之后,ViT-B/16 和 ViT-L/16 的模型均取得了明顯的效果提升:
表2:R-Drop 基于 Vision Transformer 在 CIFAR-100、ImageNet 微調后圖像分類(lèi)的結果
3. 在NLU 語(yǔ)言理解任務(wù)上,R-Drop 在預訓練 BERT-base [5] 以及 RoBERTa-large [6] 的骨架網(wǎng)絡(luò )上進(jìn)行微調之后,在 GLEU 基礎數據集上輕松取得了超過(guò)1.2和0.8個(gè)點(diǎn)的平均分數提升:
表3:R-Drop 在 GLUE 語(yǔ)言理解的驗證集上的微調結果
4. 在文本摘要任務(wù)上,R-Drop 基于 BART [7] 的預訓練模型,在 CNN/Daily Mail 數據上微調之后也取得了當前最優(yōu)的結果:
表4:R-Drop 基于 BART 模型在 CNN/Daily Mail 文本摘要上微調的結果
5. 在語(yǔ)言模型任務(wù)上,基于原始 Transformer 以及 Adaptive Transformer [8],R-Drop 的訓練在 Wikitext-103 數據集上取得了1.79和0.80的 ppl 提升:
表5:R-Drop 在 Wikitext-103 數據上的語(yǔ)言模型結果
可以看到,R-Drop 雖然很簡(jiǎn)單,但效果非常出眾,取得了很多任務(wù)上的最優(yōu)結果,并且在文本、圖像等不同的領(lǐng)域都能通用。除此之外,研究員們還進(jìn)行了各類(lèi)的分析實(shí)驗,包括訓練復雜度,k 步的 R-Drop、m 次的 R-Drop 等等,更進(jìn)一步對 R-Drop 進(jìn)行了全面的剖析。
結語(yǔ)與展望
R-Drop 的提出基于 Dropout 的隨機性,簡(jiǎn)單有效。在該工作中,目前只對于有監督的任務(wù)進(jìn)行了研究,未來(lái)在無(wú)監督、半監督學(xué)習中,以及更多不同數據類(lèi)型的任務(wù)中,也值得更為深入地探索。歡迎大家使用 R-Drop 訓練技術(shù)在各類(lèi)實(shí)際的場(chǎng)景中進(jìn)行應用。期待 R-Drop 的思想能啟發(fā)更多好的工作。
相關(guān)分享:
又是Dropout兩次!這次它做到了有監督任務(wù)的SOTA
https://kexue.fm/archives/8496
參考文獻:
[1] Srivastava, Nitish, et al. "Dropout: a simple way to prevent neural networks from overfitting." The journal of machine learning research 15.1 (2014): 1929-1958.
[2] Wan, Li, et al. "Regularization of neural networks using dropconnect." International conference on machine learning. PMLR, 2013.
[3] Vaswani, Ashish, et al. "Attention is all you need." Advances in neural information processing systems. 2017.
[4] Dosovitskiy, Alexey, et al. "An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale." International Conference on Learning Representations. 2020.
[5] Kenton, Jacob Devlin Ming-Wei Chang, and Lee Kristina Toutanova. "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding." Proceedings of NAACL-HLT. 2019.
[6] Liu, Yinhan, et al. "Roberta: A robustly optimized bert pretraining approach." arXiv preprint arXiv:1907.11692 (2019).
[7] Lewis, Mike, et al. "BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension." Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics. 2020.
[8] Baevski, Alexei, and Michael Auli. "Adaptive Input Representations for Neural Language Modeling." International Conference on Learning Representations. 2018.
*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。
led燈相關(guān)文章:led燈原理