输入梯度惩罚与参数梯度惩罚的一个不等式
?PaperWeekly 原創 ·?作者 |?蘇劍林
單位 |?追一科技
研究方向 |?NLP、神經網絡
在本博客中,已經多次討論過梯度懲罰相關內容了。從形式上來看,梯度懲罰項分為兩種,一種是關于輸入梯度懲罰與參數梯度懲罰的一個不等式在本博客中,已經多次討論過梯度懲罰相關內容了。從形式上來看,梯度懲罰項分為兩種,一種是關于輸入的梯度懲罰 ,在《對抗訓練淺談:意義、方法和思考(附Keras實現)》、《泛化性亂彈:從隨機噪聲、梯度懲罰到虛擬對抗訓練》等文章中我們討論過,另一種則是關于參數的梯度懲罰 ,在《從動力學角度看優化算法(五):為什么學習率不宜過小?》、《我們真的需要把訓練集的損失降低到零嗎?》[1] 等文章我們討論過。
在相關文章中,兩種梯度懲罰都聲稱有著提高模型泛化性能的能力,那么兩者有沒有什么聯系呢?筆者從 Google 最近的一篇論文《The Geometric Occam's Razor Implicit in Deep Learning》[2] 學習到了兩者的一個不等式,感覺以后可能用得上,在此做個筆記。
最終結果
假設有一個 l 層的 MLP 模型,記為:
其中 是當前層的激活函數,,并記為,即模型的原始輸入,為了方便后面的推導,我們記 ;參數全體為 。設 是 的任意標量函數,那么成立不等式:
其中上式中 、和 用的是普通的 范數,也就是每個元素的平方和再開平方,而 和 用的則是矩陣的“譜范數”(參考《深度學習中的 Lipschitz 約束:泛化與生成模型》)。該不等式顯示,參數的梯度懲罰一定程度上包含了輸入的梯度懲罰。
推導過程
顯然,為了不等式(2),我們只需要對每一個參數證明:
然后遍歷所有 ,將每一式左右兩端相加即可。這兩個不等式的證明本質上是一個矩陣求導問題,但多數讀者可能跟筆者一樣,都不熟悉矩陣求導,這時候最佳的辦法就是寫出分量形式,然后就變成標量的求導問題。
具體來說, 寫成分量形式:
然后由鏈式法則:
然后:
這里 是克羅內克符號。現在我們可以寫出:
代入(6)得到:
兩邊乘以 得:
約定原始向量為列向量,求梯度后矩陣的形狀反轉,那么上述可以寫成矩陣形式:
兩邊左乘 得:
兩邊取范數得:
等于第二個不等號來說,矩陣的范數用 范數或者譜范數都是成立的。于是選擇所需要的范數后,整理可得式(3);至于式(4)的證明類似,這里不再重復。
簡單評析
可能有讀者會想問具體該如何理解式(2)?事實上,筆者主要覺得式(2)本身有點意思,以后說不準在某個場景用得上,所以本文主要是對此做個“筆記”,但對它并沒有很好的解讀結果。
至于原論文的邏輯順序是這樣的:在《從動力學角度看優化算法(五):為什么學習率不宜過小?》中我們介紹了《Implicit Gradient Regularization》(跟本篇論文同一作者),里邊指出 SGD 隱式地包含了對參數的梯度懲罰項,而式(2)則說明對參數的梯度懲罰隱式地包含了對輸入的梯度懲罰,而對輸入的梯度懲罰又跟 Dirichlet 能量有關,Dirichlet 能量則可以作為模型復雜度的表征。所以總的一串推理下來,結論就是:SGD 本身會傾向于選擇復雜度比較小的模型。
不過,原論文在解讀式(2)時,犯了一個小錯誤。它說初始階段的 會很接近于 0,所以式(2)中括號的項會很大,因此如果要降低式(2)右邊的參數梯度懲罰,那么必須要使得式(2)左邊的輸入梯度懲罰足夠小。然而從《從幾何視角來理解模型參數的初始化策略》[3] 我們知道,常用的初始化方法其實接近于正交初始化,而正交矩陣的譜范數其實為 1,如果考慮激活函數,那么初始化的譜范數其實還大于 1,所以初始化階段 會很接近于 0 是不成立的。
事實上,對于一個沒有訓練崩的網絡,模型的參數和每一層的輸入輸出基本上都會保持一種穩定的狀態,所以其實整個訓練過程中 、、 其實波動都不大,因此右端對參數的梯度懲罰近似等價于左端對輸入的乘法懲罰。這是筆者的理解,不需要“ 會很接近于 0”的假設。
文章小結
本文主要介紹了兩種梯度懲罰項之間的一個不等式,并給出了自己的證明以及一個簡單的評析。
參考文獻
[1] https://kexue.fm/archives/7643
[2 ]https://arxiv.org/abs/2111.15090
[3] https://kexue.fm/archives/7180
特別鳴謝
感謝 TCCI 天橋腦科學研究院對于 PaperWeekly 的支持。TCCI 關注大腦探知、大腦功能和大腦健康。
更多閱讀
#投 稿?通 道#
?讓你的文字被更多人看到?
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學術熱點剖析、科研心得或競賽經驗講解等。我們的目的只有一個,讓知識真正流動起來。
📝?稿件基本要求:
? 文章確系個人原創作品,未曾在公開渠道發表,如為其他平臺已發表或待發表的文章,請明確標注?
? 稿件建議以?markdown?格式撰寫,文中配圖以附件形式發送,要求圖片清晰,無版權問題
? PaperWeekly 尊重原作者署名權,并將為每篇被采納的原創首發稿件,提供業內具有競爭力稿酬,具體依據文章閱讀量和文章質量階梯制結算
📬?投稿通道:
? 投稿郵箱:hr@paperweekly.site?
? 來稿請備注即時聯系方式(微信),以便我們在稿件選用的第一時間聯系作者
? 您也可以直接添加小編微信(pwbot02)快速投稿,備注:姓名-投稿
△長按添加PaperWeekly小編
🔍
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
·
總結
以上是生活随笔為你收集整理的输入梯度惩罚与参数梯度惩罚的一个不等式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 喜马拉雅将递交上市计划 又是一个跑去港股
- 下一篇: 系统删除u盘启动怎么办 U盘启动被误删怎