日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LayerNorm是Transformer的最优解吗?

發布時間:2024/7/5 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LayerNorm是Transformer的最优解吗? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一只小狐貍帶你解鎖 煉丹術&NLP?秘籍

前言

眾所周知,無論在CV還是NLP中,深度模型都離不開歸一化技術(Normalization)。在CV中,深度網絡中一般會嵌入批歸一化(BatchNorm,BN)單元,比如ResNet;而NLP中,則往往向深度網絡中插入層歸一化(LayerNorm,LN)單元,比如Transformer。

為什么在歸一化問題上會有分歧呢?一個最直接的理由就是,BN用在NLP任務里實在太差了(相比LN),此外,BN還難以直接用在RNN中,而RNN是前一個NLP時代的最流行模型。

雖然有大量的實驗觀測,表明NLP任務里普遍BN比LN差太多,但是迄今為止,依然沒有一個非常嚴謹的理論來證明LN相比BN在NLP任務里的優越性。甚至,連BN自身為什么work的問題都一直存在爭議。

早期對BN有效性的解釋是其有助于緩解神經網絡“內部協方差漂移”(Internal Covariance Shift,ICS)問題。即,后面的層的學習是基于前面層的分布來的,只有前面一層的分布是確定的,后面的層才容易學習到有效的模式,然而,由于前面的層的分布會隨著batch的變化而有所變動,導致了后面的層看來“前面一直在動,我無法安心學習呀”。

而BatchNorm這類歸一化技術,目的就是讓每一層的分布穩定下來,讓后面的層可以在前面層的基礎上安心學習知識。顧名思義,BatchNorm就是通過對batch size這個維度歸一化來讓分布穩定下來。LayerNorm則是通過對Hidden size這個維度歸一化來讓某層的分布穩定。

然而,后來也有一些研究diss了這個解釋,說這個解釋是錯誤或不充分的(incorrect/incomplete)[1],近期也有一些研究[2][3]表明BN之所以有助于訓練深度神經網絡,是因為它可以讓loss曲面變得更加平滑。Anyway,這依然是一個未完全解開的老謎。

除了BN之外,LN也有同樣的“為什么work”的終極問題。研究[4]表明,LN在反向時有助于梯度的歸一化。也有研究[5][6]表示LN的主要作用是在訓練初期緩解梯度消失和爆炸的問題,提升穩定性。

所以說,BN和LN本身的作用機理都沒有完全搞清楚,自然也很難去證明為什么BN在NLP數據上就不work,LN就更work。

不過,近期小夕無意間刷到了一篇UC Berkeley的《Rethinking Batch Normalization in Transformers》[7],發現了一個比較有趣的實驗結論,并基于這個觀測,作者提出了一種針對NLP data(確切說是Transformer)改進的新的歸一化方法,叫冪歸一化(PowerNorm)。

后臺回復【0407】獲取論文PDF噢~

強上BN后的Transformer

作者這里做了一個實驗,為BN在NLP data(Transformer)上不work提供了一個更加微觀的觀測證據。

首先,作者將Transformer中的LN都替換成了BN,然后在CV和NLP兩個任務上觀測BN中的兩個統計量(即均值和方差)及其他們的梯度和在訓練過程中的穩定程度。

上圖中,藍色是ResNet20在Cifar-10做圖像分類的結果,橙色是Transformer+BN在IWSLT14做翻譯的結果。X軸是訓練時間,Y軸是基于batch的統計值和它對應的移動平均值的歐式距離。

可以看到,ResNet20在Cifar-10任務上統計量的震蕩很小,而使用BN的Transformer不僅震蕩劇烈,還有很極端的異常值,這會導致和的統計不準確,造成train/test不一致,預測效果下降

基于這個有趣的觀測結果,作者這里針對性的提出了兩點改進,并將改進后的BN稱之為冪歸一化(PowerNorm,PN)。

PowerNorm

1. PN-V

BN強制將數據轉換成均值為0方差為1的正態分布,但在數據本身均值方差劇烈震蕩的情況下,強制移動均值會起到不好的效果。因此作者提出了新的scale方式,只強制數據有unit quadratic mean

這樣針對batch的前向只需一個統計量,反向也簡化成一個梯度:

對比新的(橙色)和之前的(藍色),發現震蕩明顯減小:

2. Running Statistics in Training

從PN-V的改進可以看到,雖然震蕩減少了很多,但還是有很多異常值。因此作者改用移動平均的方式計算:

但使用移動平均的話,在求梯度時無法對之前所有求導,因此作者用當前batch的統計量去近似,感興趣的同學可以看下論文中的推導。

與LN的比較

雖然如前所述,難以說清楚在NLP data上LN比BN優越在哪里,但是是容易說清楚PN對BN的優越性的(畢竟PN的誕生就是基于BN在NLP data上的實驗觀測)。

那么問題來了:PN和LN哪個更有效?自然也沒法直接在理論層面上進行比較,所以作者跑了一把實驗,分別嘗試了機器翻譯和語言模型任務:

對于上述結果,小夕也去paperwithcode網站查了一下,目前IWSLT14的SOTA是36.3,論文中的35.9可以排在第二的位置;WMT14 En-De的SOTA是35,論文中的30.1可以排在第五的位置;WikiText-103的SOTA是10.8,論文的結果排在第八名第位置。由于作者沒有做其他優化,看起來總體結果還是不錯的~當然,PN在其他NLP data和任務上是否有效,還有待進一步驗證。

由于BN和PN的統計量受batchsize的影響,作者在消融實驗中也探究了不同batchsize的效果:

可以看到PN在整體上還是優于LN的。

總結

由于深度學習的不可解釋性,歸一化方法在網絡中真正的作用和優劣一直是個謎。本文針對BN提供了一個新的研究角度,通過對統計量及梯度的穩定性觀測,找到了BN為什么在NLP問題上不work的其中一個原因,即數據分布的震蕩和異常值導致train/test不一致。基于該觀測證據,作者對BN進行了對應的改進,提出了更適合NLP data的冪歸一化PowerNorm,得到了優于原生BN的效果,且在部分任務上超過了LN的表現。

另外,看到這里后,相信會有很多小伙伴會關心BERT+PN的效果。燃鵝眾所周知,要復現BERT的預訓練過程是非常不可描述的,所以作者這里沒有給出相應實驗,也是合乎情理的。

所以目前結構創新都不會用BERT去驗證,機器翻譯和LM任務確實是常規benchmark。是否真正有用,可能需要慢慢被大家用起來才知道。

后臺回復【0407】獲取論文PDF噢~

夕小瑤的賣萌屋

_

關注&星標小夕,帶你解鎖AI秘籍

訂閱號主頁下方「撩一下」有驚喜哦

參考文獻

[1]Ali Rahimi. Nuerips 2017 test-of-time award presentation, December 2017: https://www.zachpfeffer.com/single-post/2018/12/04/Transcript-of-Ali-Rahimi-NIPS-2017-Test-of-Time-Award-Presentation-Speech[2]How does batch normalization help optimization?: https://papers.nips.cc/paper/7515-how-does-batch-normalization-help-optimization.pdf

[3]PyHessian: Neural networks through the lens of the Hessian.: https://arxiv.org/pdf/1912.07145.pdf

[4]Understanding and Improving Layer Normalization: https://arxiv.org/abs/1911.07013
[5]Improving Deep Transformer with Depth-Scaled Initialization and Merged Attention: https://arxiv.org/abs/1908.11365
[6]Fixup Initialization: Residual Learning Without Normalization: https://arxiv.org/abs/1901.09321

[7]Rethinking Batch Normalization in Transformers: https://arxiv.org/abs/2003.07845
[8]詳解深度學習中的Normalization,BN/LN/WN: https://zhuanlan.zhihu.com/p/33173246

總結

以上是生活随笔為你收集整理的LayerNorm是Transformer的最优解吗?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。