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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

​模型优化漫谈:BERT的初始标准差为什么是0.02?

發布時間:2024/10/8 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ​模型优化漫谈:BERT的初始标准差为什么是0.02? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?PaperWeekly 原創 ·?作者 | 蘇劍林

單位 |?追一科技

研究方向 | NLP、神經網絡

前幾天在群里大家討論到了“Transformer 如何解決梯度消失”這個問題,答案有提到殘差的,也有提到 LN(Layer Norm)的。這些是否都是正確答案呢?事實上這是一個非常有趣而綜合的問題,它其實關聯到挺多模型細節,比如“BERT 為什么要 warmup?”、“BERT 的初始化標準差為什么是 0.02?”、“BERT 做 MLM預測之前為什么還要多加一層 Dense?”,等等。本文就來集中討論一下這些問題。

梯度消失說的是什么意思?

在文章《也來談談 RNN 的梯度消失/爆炸問題》中,我們曾討論過 RNN 的梯度消失問題。事實上,一般模型的梯度消失現象也是類似,它指的是(主要是在模型的初始階段)越靠近輸入的層梯度越小,趨于零甚至等于零,而我們主要用的是基于梯度的優化器,所以梯度消失意味著我們沒有很好的信號去調整優化前面的層。

換句話說,前面的層也許幾乎沒有得到更新,一直保持隨機初始化的狀態;只有比較靠近輸出的層才更新得比較好,但這些層的輸入是前面沒有更新好的層的輸出,所以輸入質量可能會很糟糕(因為經過了一個近乎隨機的變換),因此哪怕后面的層更新好了,總體效果也不好。最終,我們會觀察到很反直覺的現象:模型越深,效果越差,哪怕訓練集都如此。

解決梯度消失的一個標準方法就是殘差鏈接,正式提出于 ResNet [1] 中。殘差的思想非常簡單直接:你不是擔心輸入的梯度會消失嗎?那我直接給它補上一個梯度為常數的項不就行了?最簡單地,將模型變成

這樣一來,由于多了一條“直通”路 ,就算 中的 梯度消失了, 的梯度基本上也能得以保留,從而使得深層模型得到有效的訓練。


LN真的能緩解梯度消失?

然而,在 BERT 和最初的 Transformer 里邊,使用的是 Post Norm 設計,它把 Norm 操作加在了殘差之后:

其實具體的 Norm 方法不大重要,不管是 Batch Norm 還是 Layer Norm,結論都類似。在文章《淺談 Transformer 的初始化、參數化與標準化》[2] 中,我們已經分析過這種 Norm 結構,這里再來重復一下。

在初始化階段,由于所有參數都是隨機初始化的,所以我們可以認為 與 是兩個相互獨立的隨機向量,如果假設它們各自的方差是 1,那么 的方差就是 2,而 操作負責將方差重新變為 1,那么在初始化階段, 操作就相當于“除以 ”:

遞歸下去就是:

我們知道,殘差有利于解決梯度消失,但是在 Post Norm 中,殘差這條通道被嚴重削弱了,越靠近輸入,削弱得越嚴重,殘差“名存實亡”。所以說,在 Post Norm 的 BERT 模型中,LN 不僅不能緩解梯度消失,它還是梯度消失的“元兇”之一。

那我們為什么還要加LN

那么,問題自然就來了:既然 LN 還加劇了梯度消失,那直接去掉它不好嗎?

是可以去掉,但是前面說了, 的方差就是 2 了,殘差越多方差就越大了,所以還是要加一個 Norm 操作,我們可以把它加到每個模塊的輸入,即變為 ,最后的總輸出再加個 就行,這就是 Pre Norm 結構,這時候每個殘差分支是平權的,而不是像 Post Norm 那樣有指數衰減趨勢。

當然,也有完全不加 Norm 的,但需要對 進行特殊的初始化,讓它初始輸出更接近于 0,比如 ReZero、Skip Init、Fixup 等,這些在《淺談 Transformer 的初始化、參數化與標準化》[2] 也都已經介紹過了。

但是,拋開這些改進不說,Post Norm 就沒有可取之處嗎?難道 Transformer 和 BERT 開始就帶了一個完全失敗的設計?

顯然不大可能。雖然 Post Norm 會帶來一定的梯度消失問題,但其實它也有其他方面的好處。最明顯的是,它穩定了前向傳播的數值,并且保持了每個模塊的一致性。比如 BERT base,我們可以在最后一層接一個 Dense 來分類,也可以取第 6 層接一個 Dense 來分類;但如果你是 Pre Norm 的話,取出中間層之后,你需要自己接一個 LN 然后再接 Dense,否則越靠后的層方差越大,不利于優化。

其次,梯度消失也不全是“壞處”,其實對于 Finetune 階段來說,它反而是好處。在 Finetune 的時候,我們通常希望優先調整靠近輸出層的參數,不要過度調整靠近輸入層的參數,以免嚴重破壞預訓練效果。而梯度消失意味著越靠近輸入層,其結果對最終輸出的影響越弱,這正好是 Finetune 時所希望的。所以,預訓練好的 Post Norm 模型,往往比 Pre Norm 模型有更好的 Finetune 效果,這我們在《RealFormer:把殘差轉移到 Attention 矩陣上面去》也提到過。

我們真的擔心梯度消失嗎?

其實,最關鍵的原因是,在當前的各種自適應優化技術下,我們已經不大擔心梯度消失問題了。

這是因為,當前 NLP 中主流的優化器是 Adam 及其變種。對于 Adam 來說,由于包含了動量和二階矩校正,所以近似來看,它的更新量大致上為

可以看到,分子分母是都是同量綱的,因此分數結果其實就是 的量級,而更新量就是 量級。也就是說,理論上只要梯度的絕對值大于隨機誤差,那么對應的參數都會有常數量級的更新量;這跟 SGD 不一樣,SGD 的更新量是正比于梯度的,只要梯度小,更新量也會很小,如果梯度過小,那么參數幾乎會沒被更新。

所以,Post Norm 的殘差雖然被嚴重削弱,但是在 base、large 級別的模型中,它還不至于削弱到小于隨機誤差的地步,因此配合 Adam 等優化器,它還是可以得到有效更新的,也就有可能成功訓練了。當然,只是有可能,事實上越深的 Post Norm 模型確實越難訓練,比如要仔細調節學習率和 Warmup 等。

Warmup是怎樣起作用的?

大家可能已經聽說過,Warmup 是Transformer訓練的關鍵步驟,沒有它可能不收斂,或者收斂到比較糟糕的位置。為什么會這樣呢?不是說有了Adam就不怕梯度消失了嗎?

要注意的是,Adam 解決的是梯度消失帶來的參數更新量過小問題,也就是說,不管梯度消失與否,更新量都不會過小。但對于 Post Norm 結構的模型來說,梯度消失依然存在,只不過它的意義變了。根據泰勒展開式:

也就是說增量 是正比于梯度的,換句話說,梯度衡量了輸出對輸入的依賴程度。如果梯度消失,那么意味著模型的輸出對輸入的依賴變弱了。

Warmup 是在訓練開始階段,將學習率從 0 緩增到指定大小,而不是一開始從指定大小訓練。如果不進行 Wamrup,那么模型一開始就快速地學習,由于梯度消失,模型對越靠后的層越敏感,也就是越靠后的層學習得越快,然后后面的層是以前面的層的輸出為輸入的,前面的層根本就沒學好,所以后面的層雖然學得快,但卻是建立在糟糕的輸入基礎上的。

很快地,后面的層以糟糕的輸入為基礎到達了一個糟糕的局部最優點,此時它的學習開始放緩(因為已經到達了它認為的最優點附近),同時反向傳播給前面層的梯度信號進一步變弱,這就導致了前面的層的梯度變得不準。但我們說過,Adam 的更新量是常數量級的,梯度不準,但更新量依然是數量級,意味著可能就是一個常數量級的隨機噪聲了,于是學習方向開始不合理,前面的輸出開始崩盤,導致后面的層也一并崩盤。

所以,如果 Post Norm 結構的模型不進行 Wamrup,我們能觀察到的現象往往是:loss 快速收斂到一個常數附近,然后再訓練一段時間,loss 開始發散,直至 NAN。如果進行 Wamrup,那么留給模型足夠多的時間進行“預熱”,在這個過程中,主要是抑制了后面的層的學習速度,并且給了前面的層更多的優化時間,以促進每個層的同步優化。

這里的討論前提是梯度消失,如果是 Pre Norm 之類的結果,沒有明顯的梯度消失現象,那么不加 Warmup 往往也可以成功訓練。

初始標準差為什么是0.02?

喜歡扣細節的同學會留意到,BERT 默認的初始化方法是標準差為 0.02 的截斷正態分布,在《淺談 Transformer 的初始化、參數化與標準化》[2] 我們也提過,由于是截斷正態分布,所以實際標準差會更小,大約是 。這個標準差是大還是小呢?對于 Xavier 初始化來說,一個 的矩陣應該用 的方差初始化,而 BERT base 的 為 768,算出來的標準差是 。這就意味著,這個初始化標準差是明顯偏小的,大約只有常見初始化標準差的一半。

為什么 BERT 要用偏小的標準差初始化呢?事實上,這還是跟 Post Norm 設計有關,偏小的標準差會導致函數的輸出整體偏小,從而使得 Post Norm 設計在初始化階段更接近于恒等函數,從而更利于優化。具體來說,按照前面的假設,如果 的方差是 , 的方差是 ,那么初始化階段, 操作就相當于除以 。如果 比較小,那么殘差中的“直路”權重就越接近于 1,那么模型初始階段就越接近一個恒等函數,就越不容易梯度消失。

正所謂“我們不怕梯度消失,但我們也不希望梯度消失”,簡單地將初始化標注差設小一點,就可以使得 變小一點,從而在保持 Post Norm 的同時緩解一下梯度消失,何樂而不為?那能不能設置得更小甚至全零?一般來說初始化過小會喪失多樣性,縮小了模型的試錯空間,也會帶來負面效果。綜合來看,縮小到標準的 1/2,是一個比較靠譜的選擇了。

當然,也確實有人喜歡挑戰極限的,最近筆者也看到了一篇文章,試圖讓整個模型用幾乎全零的初始化,還訓練出了不錯的效果,大家有興趣可以讀讀,文章為《ZerO Initialization: Initializing Residual Networks with only Zeros and Ones》[3]。

為什么MLM要多加Dense?

最后,是關于 BERT 的 MLM 模型的一個細節,就是 BERT 在做 MLM 的概率預測之前,還要多接一個 Dense 層和 LN 層,這是為什么呢?不接不行嗎?

之前看到過的答案大致上是覺得,越靠近輸出層的,越是依賴任務的(Task-Specified),我們多接一個 Dense 層,希望這個 Dense 層是 MLM-Specified 的,然后下游任務微調的時候就不是 MLM-Specified 的,所以把它去掉。這個解釋看上去有點合理,但總感覺有點玄學,畢竟 Task-Specified 這種東西不大好定量分析。

這里筆者給出另外一個更具體的解釋,事實上它還是跟 BERT 用了 0.02 的標準差初始化直接相關。剛才我們說了,這個初始化是偏小的,如果我們不額外加 Dense 就乘上 Embedding 預測概率分布,那么得到的分布就過于均勻了(Softmax 之前,每個 logit 都接近于 0),于是模型就想著要把數值放大。

現在模型有兩個選擇:第一,放大 Embedding 層的數值,但是 Embedding 層的更新是稀疏的,一個個放大太麻煩;第二,就是放大輸入,我們知道 BERT 編碼器最后一層是 LN,LN 最后有個初始化為 1 的 gamma 參數,直接將那個參數放大就好。

模型優化使用的是梯度下降,我們知道它會選擇最快的路徑,顯然是第二個選擇更快,所以模型會優先走第二條路。這就導致了一個現象:最后一個 LN 層的 gamma 值會偏大。如果預測 MLM 概率分布之前不加一個 Dense+LN,那么? BERT 編碼器的最后一層的 LN 的 gamma 值會偏大,導致最后一層的方差會比其他層的明顯大,顯然不夠優雅;而多加了一個 Dense+LN 后,偏大的 gamma 就轉移到了新增的 LN 上去了,而編碼器的每一層則保持了一致性。

事實上,讀者可以自己去觀察一下 BERT 每個 LN 層的 gamma 值,就會發現確實是最后一個 LN 層的 gamma 值是會明顯偏大的,這就驗證了我們的猜測~

希望大家多多海涵批評斧正

本文試圖回答了 Transformer、BERT 的模型優化相關的幾個問題,有一些是筆者在自己的預訓練工作中發現的結果,有一些則是結合自己的經驗所做的直觀想象。不管怎樣,算是分享一個參考答案吧,如果有不當的地方,請大家海涵,也請各位批評斧正。

參考文獻

[1] https://arxiv.org/abs/1512.03385

[2] https://kexue.fm/archives/8620

[3] https://arxiv.org/abs/2110.12661

特別鳴謝

感謝 TCCI 天橋腦科學研究院對于 PaperWeekly 的支持。TCCI 關注大腦探知、大腦功能和大腦健康。

更多閱讀

#投 稿?通 道#

?讓你的文字被更多人看到?

如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。

總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?

PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學術熱點剖析科研心得競賽經驗講解等。我們的目的只有一個,讓知識真正流動起來。

📝?稿件基本要求:

? 文章確系個人原創作品,未曾在公開渠道發表,如為其他平臺已發表或待發表的文章,請明確標注?

? 稿件建議以?markdown?格式撰寫,文中配圖以附件形式發送,要求圖片清晰,無版權問題

? PaperWeekly 尊重原作者署名權,并將為每篇被采納的原創首發稿件,提供業內具有競爭力稿酬,具體依據文章閱讀量和文章質量階梯制結算

📬?投稿通道:

? 投稿郵箱:hr@paperweekly.site?

? 來稿請備注即時聯系方式(微信),以便我們在稿件選用的第一時間聯系作者

? 您也可以直接添加小編微信(pwbot02)快速投稿,備注:姓名-投稿

△長按添加PaperWeekly小編

🔍

現在,在「知乎」也能找到我們了

進入知乎首頁搜索「PaperWeekly」

點擊「關注」訂閱我們的專欄吧

·

總結

以上是生活随笔為你收集整理的​模型优化漫谈:BERT的初始标准差为什么是0.02?的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 亚洲性在线 | 久久机热这里只有精品 | 97人妻天天摸天天爽天天 | 少妇网站在线观看 | 在线aa| 色婷婷777777仙踪林 | 色国产精品 | 久久人人精 | 国产成人无码精品久久 | 亚洲h网站 | 神马久久午夜 | 久久综合久久鬼色 | 国产成人无码a区在线观看视频 | 成人狠狠干| 影音先锋成人 | 久久在线免费观看视频 | 永久免费无码av网站在线观看 | 一区二区三区在线电影 | 天天射网站 | 丰满熟女一区二区三区 | 亚洲欧美日韩精品久久亚洲区 | 久久入口 | 亚洲毛片一区 | 日韩欧美中文字幕在线视频 | 国产97色| 999精品在线观看 | 九七电影院97理论片 | 欧美一级欧美三级在线观看 | 国产在线欧美在线 | 国模av在线| 国产福利一区在线观看 | 狠狠狠狠狠狠干 | 中文字幕在线播 | 国内成人精品视频 | 91黄色免费网站 | 天天射天天 | 神马国产 | 国产第四页 | 骚av在线| 兔费看少妇性l交大片免费 日韩高清不卡 | 911美女片黄在线观看游戏 | 成 人 黄 色 片 在线播放 | 黑丝美女啪啪 | 欧美自拍在线 | 国产精品丝袜黑色高跟鞋 | 美女隐私无遮挡免费 | 国产人妖ts重口系列网站观看 | 亚洲色图1| 四虎国产精品永久免费观看视频 | 美女自拍视频 | 国产91免费看 | 国产高清视频在线观看 | 中文字幕在线播放一区 | 嫩草网站入口 | 中文字幕日韩专区 | 脱美女衣服亲摸揉视频 | 久青草视频在线 | 韩国美女福利视频 | 波多野吉衣一区 | 成人久久一区 | 午夜激情av| 在线免费一级片 | 国产免费黄色小视频 | 妺妺窝人体色www在线下载 | 福利视频亚洲 | 新x8x8拨牐拨牐永久免费影库 | 久久久久久久久久综合 | 日韩伦理av | 成人夜视频| av在线影视| 黄色男人的天堂 | 全黄一级裸体片 | 韩国电影大尺度在线观看 | 成人三级在线视频 | 亚洲最大网 | 国产精品一区二三区 | 欧洲美一区二区三区亚洲 | 日韩在线视频在线观看 | 四虎黄色网址 | 久久久久免费看 | 日本xxxxxxxxx69 | 免费在线看黄的网站 | 免费国产一级 | 少妇极品熟妇人妻无码 | 亚洲成人av一区二区三区 | 国产网红av | 91av在线免费 | 韩国伦理av | 欧美在线观看视频一区 | 天堂av2018| 欧美视频一区二区三区四区在线观看 | 国产激情视频一区二区 | 欧美熟女一区二区 | 亚洲熟妇无码一区二区三区 | 日韩欧美高清在线观看 | zzji欧美大片 | 大肉大捧一进一出好爽mba | www婷婷av久久久影片 | 国产三级国产精品国产专区50 |