ICLR2020满分论文 | 为什么梯度裁剪能加速模型训练?
一只小狐貍帶你解鎖 煉丹術(shù)&NLP?秘籍
作者:蘇劍林(來自追一科技,人稱“蘇神”)
前言
需要許多時間步計算的循環(huán)神經(jīng)網(wǎng)絡(luò),如LSTM、GRU,往往存在梯度爆炸的問題。其目標函數(shù)可能存在懸崖一樣斜率較大的區(qū)域,這是由于時間步上幾個較大的權(quán)重相乘導致的。當參數(shù)接近這樣的懸崖區(qū)域時,如果更新梯度不足夠小,很有可能就會直接跳過這樣的懸崖結(jié)構(gòu),然后被彈射到非常遠的地方。梯度裁剪(gradient clipping),是這類問題的常用解決辦法。它的核心思想就是根據(jù)目標函數(shù)的光滑程度對梯度進行縮放[1]。
本文介紹來自MIT的一篇ICLR2020滿分論文《Why gradient clipping accelerates training: A theoretical justification for adaptivity》。顧名思義,這篇論文就是分析為什么梯度裁剪能加速深度學習的訓練過程。原文很長,公式很多,還有不少研究復(fù)雜性的概念,說實話對筆者來說里邊的大部分內(nèi)容也是懵的,不過大概能捕捉到它的核心思想:引入了比常用的L約束更寬松的約束條件,從新的條件出發(fā)論證了梯度裁剪的必要性。本文就是來簡單描述一下這個過程,供讀者參考。
論文鏈接:https://arxiv.org/pdf/1905.11881.pdf
Arxiv訪問慢的小伙伴也可以在訂閱號后臺回復(fù)關(guān)鍵詞【0615】下載論文PDF。
梯度裁剪
假設(shè)需要最小化的函數(shù)為,就是優(yōu)化參數(shù),那么梯度下降的更新公式就是(滑動查看完整公式)
其中就是學習率。而所謂梯度裁剪(gradient clipping),就是根據(jù)梯度的模長來對更新量做一個縮放,比如
或者
其中? ,是一個常數(shù)。這兩種方式都被視為梯度裁剪,總的來說就是控制更新量的模長不超過一個常數(shù)。其實從下面的不等式就可以看到其實兩者基本是等價的:
L約束
有不少優(yōu)化器相關(guān)的理論結(jié)果,在其證明中都假設(shè)了待優(yōu)化函數(shù)的梯度滿足如下的L約束:
由于? 是梯度的波動程度,實際上衡量的就是? 的光滑程度,所以上述約束也稱為“L光滑性條件(L-smooth)”[2]。值得提醒的是,不同的場景可能會需要不同的L約束,比如有時候我們要假設(shè)模型輸出關(guān)于輸入滿足L約束,有時候我們要假設(shè)模型輸出關(guān)于參數(shù)滿足L約束,而上面假設(shè)的是模型 loss 的梯度關(guān)于參數(shù)滿足L約束。如果條件 (5) 成立,那么很多優(yōu)化問題都將大大簡化。因為我們可以證明[3]:
對于梯度下降來說,,代入上式得到
因此,為了保證每一步優(yōu)化都使得? 下降,一個充分條件是? ,即? ,而? 的最小值在? 時取到,所以只需要讓學習率為? ,那么每步迭代都可以使得? 下降,并且下降速度最快。
放松約束
條件 (5) 還可以帶來很多漂亮的結(jié)果,然而問題是在很多實際優(yōu)化問題中條件 (5) 并不成立,比如四次函數(shù)? 。這就導致了理論與實際的差距。而本文要介紹的論文,則引入了一個新的更寬松的約束:
也就是將常數(shù)? 換成動態(tài)的? ,原文稱之為“(L0, L1)-smooth”,這里也稱為“(L0, L1)約束”。顯然這個條件就寬松多了,比如可以檢驗? 是滿足這個條件的,因此基于此條件所推導出的理論結(jié)果適用范圍會更廣。
在新的約束之下,不等式 (6) 依舊是成立的,只不過換成對應(yīng)的動態(tài)項:
代入得到
所以很明顯了,現(xiàn)在要保證每一步下降,那么就要求
以及最優(yōu)學習率是
這就導出了梯度裁剪 (3)。而保證了每一步都下降,那么就意味著在優(yōu)化過程中每一步都沒有做無用功,所以也就加速了訓練過程。
作者們是怎么提出這個條件 (8) 的呢?論文中說是做實驗觀察出來的:觀察到損失函數(shù)的光滑程度與梯度模長呈“線性相關(guān)”關(guān)系.png,如下圖所示。但筆者感覺吧,至少應(yīng)該還有些從結(jié)果反推的成分在里邊,不然誰那么無聊會去觀察這兩者的關(guān)系呢?
文章小結(jié)
本文簡要介紹了ICLR2020的一篇分析梯度裁剪的滿分論文,主要思路是引入了更寬松普適的假設(shè)條件,在新的條件下能體現(xiàn)出了梯度裁剪的必要性,并且由于放松了傳統(tǒng)的約束,因此理論結(jié)果的適用范圍更廣,這也就表明,梯度裁剪確實是很多場景下都適用的技巧之一。
參考文獻
[1]
參考文獻 lan Goodfellow et. al, "Deep Learning", MIT press, 2016
[2]關(guān)于L約束可以作者其他博客: 《深度學習中的Lipschitz約束:泛化與生成模型》、《BN究竟起了什么作用?一個閉門造車的分析》。
[3]證明過程可參考https://kexue.fm/archives/6992。
可
能
喜
歡
萬能的BERT連文本糾錯也不放過
面試必備!賣萌屋算法工程師思維導圖—統(tǒng)計機器學習篇
告別自注意力,谷歌為Transformer打造新內(nèi)核Synthesizer
NLP中的少樣本困境問題探究
ACL20 | 讓笨重的BERT問答匹配模型變快!
7款優(yōu)秀Vim插件幫你打造完美IDE
賣萌屋原創(chuàng)專輯首發(fā),算法鎮(zhèn)魂三部曲!
夕小瑤的賣萌屋
_
關(guān)注&星標小夕,帶你解鎖AI秘籍
訂閱號主頁下方「撩一下」有驚喜哦
總結(jié)
以上是生活随笔為你收集整理的ICLR2020满分论文 | 为什么梯度裁剪能加速模型训练?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度CTR预估模型中的特征自动组合机制演
- 下一篇: 您的DST大礼包请查收