多任务学习漫谈:分主次之序
?PaperWeekly 原創(chuàng) ·?作者 | 蘇劍林
單位 | 追一科技
研究方向 | NLP、神經(jīng)網(wǎng)絡
多任務學習是一個很寬泛的命題,不同場景下多任務學習的目標不盡相同。在《多任務學習漫談(一):以損失之名》和《多任務學習漫談(二):行梯度之事》中,我們將多任務學習的目標理解為“做好每一個任務”,具體表現(xiàn)是“盡量平等地處理每一個任務”,我們可以稱之為“平行型多任務學習”。然而,并不是所有多任務學習的目標都是如此,在很多場景下,我們主要還是想學好某一個主任務,其余任務都只是輔助,希望通過增加其他任務的學習來提升主任務的效果罷了,此類場景我們可以稱為“主次型多任務學習”。
在這個背景下,如果還是沿用平行型多任務學習的“做好每一個任務”的學習方案,那么就可能會明顯降低主任務的效果了。所以本文繼續(xù)沿著“行梯度之事”的想法,探索主次型多任務學習的訓練方案。
目標形式
在這篇文章中,我們假設讀者已經(jīng)閱讀并且基本理解《多任務學習漫談:行梯度之事》里邊的思想和方法,那么在梯度視角下,讓某個損失函數(shù)保持下降的必要條件是更新量與其梯度夾角至少大于 90 度,這是貫穿全文的設計思想。
約束優(yōu)化
現(xiàn)在假設主次型多任務學習場景下,我們有 個任務的損失函數(shù),分別為 ,其中 是主任務損失,我們希望它越小越好;而 是輔助損失,相當于正則項,我們只希望它在訓練過程中不要往上升的方向走,但不一定要“拼了命地變小”。
沿用《多任務學習漫談:行梯度之事》的記號,我們記每一步的更新量為 ,既然我們以 為主任務,那么自然希望最大化 與 的內積,可以設計優(yōu)化目標為
這里 是對應損失的梯度。如果沒有其他約束,那么將會解得 ,這就是普通的梯度下降。但事實上我們還有輔助任務 ,我們希望它們不要往上升的方向走,所以至少還要保證 ,它們是優(yōu)化的約束條件,從而總的目標是
求解這個約束優(yōu)化問題,就可以得到滿足條件的更新量。
拉氏乘子
求解這種帶約束優(yōu)化問題的標準方案是拉格朗日乘子法,簡稱“拉氏乘子”,它將約束條件整合到目標函數(shù)中,轉化為一個 min-max 問題:
這里約定對 的求和是從 到 。怎么理解這個轉換呢?假如 ,那么 這一步就只能得到 ,因為只有 能使得它取最小,此時 ;如果 ,那么自然地 ;如果 ,那么 這一步就會得到 ,此時 。但是別忘了, 的優(yōu)化是取 的,所以在0與 之間,它自然會選擇0,也就是完成該 min-max 優(yōu)化后,必然自動地有 以及 。這意味著 min-max 的優(yōu)化結果跟原來帶約束的 max 優(yōu)化完全等價。
為了方便后面的推導,這里引入跟上一篇文章類似的記號:
那么式(3)可以記為
求解算法
至此,我們將主次型多任務學習的更新方向求解轉化為了一個 min-max 問題 (5)。接下來,跟上一篇文章的方式類似,我們先通過 Minimax 定理來交換 和 的次序,然后進一步通過 Frank-Wolfe 算法給出求解方式,最后我們會比較它跟它跟上一篇文章結果的異同。
交換次序
注意到問題(5)的 和 是有次序的,正常來說必須要先完成 這一步后才能再做 這一步,貿然交換次序可能會得到錯誤的結果。然而, 這一步是有約束的優(yōu)化,而 這一步是無約束的,因此相對來說 確實簡單一些。如果我們能交換次序,先進行 這一步,那么問題就可以得到簡化。
所以,我們需要先判斷兩者的次序能否交換。幸運的是,馮·諾依曼提出了美妙的 Minimax 定理 [1],它告訴我們如果 和 的參數(shù)可行域都是一個凸集,并且目標函數(shù)關于 的參數(shù)是凸的、關于? 的參數(shù)是凹的,那么 和 的次序就可以交換。更幸運的是,容易看出問題(5)滿足 Minimax 定理的條件,從而它等價于
這樣我們就將問題簡化為只有 操作了,其中等號右邊是因為左邊的目標函數(shù)只是關于 的二次函數(shù),它的最大值在 取到,代入即得等號右邊結果。
簡單情形
現(xiàn)在問題變成了求 與 的最小模長的加權疊加。按照慣例,我們先試著解決最簡單的情形,即 時的 ,它有著形象的幾何意義和簡單的解析解。
▲ 簡單例子的精確解
如上圖所示,共有兩種情形:第一種情形是 ,這說明 與 本就不沖突,所以直接取 就行;第二種情形是 ,從上面右圖可以看出, 的最小值在 與 垂直時取到,于是由 解得 。最后,當 時,也可以統(tǒng)一寫成
迭代求解
接下來我們處理一般情形,其思想依然源自 Frank-Wolfe 算法 [2]。
首先,我們通過 找出下一步更新的可行方向 。接著,我們進行一維搜索,但跟之前不同的是,這次不是在 與 之間插值搜索,而是直接重新確定 對應的系數(shù),也就是說,我們直接在 中把 部分刪掉,然后重新用 情形的算法重新計算 對應的系數(shù)。
由此,我們得到下述迭代過程:
兩相比較
至此,我們完成了本文所探究的主次型多任務學習的求解。對于認真推導過兩篇文章的數(shù)學結果的同學來說,定然會感覺到平行型和主次型的方法和結果都非常相似。事實上確實如此,它們有諸多相似之處,但細微之處又有不同。
為了加深大家的理解,我們可以將這兩種多任務學習的異同對比如下:
經(jīng)過這樣對比,我們也不難將結果推廣到有 個主任務、 個輔任務的混合型多任務學習,其對偶結果是:
至于具體的迭代算法,請大家自行思考~
應用思考
在這一節(jié)中,我們通過幾個例子說明,很多常見的問題都可以對應到這種有主次之分的多任務學習中,某種意義上來說,主次型多任務學習可能比平行型多任務學習更為常見。
正則損失
最常見的例子可能是往任務損失函數(shù)里邊加入的正則項,比如 L2 正則:
如果我們將 和 看成是兩個任務的損失,那么這也可以視為一個多任務學習問題。很顯然,我們并沒有想要 越小越好,而只是希望 的加入能夠提高 的泛化性能,所以這就無法對應上平行型多任務學習,而更貼近主次型多任務學習了。
L2 正則項 的梯度比較簡單,就是 。那么,套用本文的結果(7),我們可以修改優(yōu)化器,將梯度項改為
這樣就可以實現(xiàn)往模型里邊加入 L2 正則但又不用調正則項系數(shù) 了。當然,也可以像 AdamW 那樣直接對原本的更新量進行處理,實現(xiàn)解耦形式的權重衰減(Decoupled Weight Decay)。
當然,除了這種對參數(shù)的直接正則外,還有很多其他形式的輔助損失,比如有往分類模型加入對比學習損失的、有往生成模型加入長度懲罰的,等等。這些做法多多少少都可以對應上主次型多任務學習中,因此可以嘗試套用本文的結果。如果覺得完整梯度的計算量較大,那么也可以跟上一篇文章一樣,對“共享編碼”的情形進行近似來降低計算量。
帶噪學習
此外,有一種常見的訓練場景,大家可能沒意識到它是一個多任務學習問題,但它本質上確實也可以視為多任務學習問題來理解,那就是“帶噪學習”。
假設對于同一種任務,我們只有少量精標的干凈數(shù)據(jù),但同時有大量的噪聲數(shù)據(jù)。由于噪聲數(shù)據(jù)較多,所以我們傾向于以噪聲數(shù)據(jù)為主進行學習,假設對應的損失為 。然而,由于數(shù)據(jù)中存在噪聲,因此純粹最小化 未必能得到理想的模型,它可能把錯誤的標注也背下來了。這時,干凈數(shù)據(jù)就可以派上用場了,我們可以用干凈數(shù)據(jù)算一個損失 。由于干凈數(shù)據(jù)的噪聲較少,可以認為 比 更能反映模型的真實性能,那么我們就可以增加一個限制:
不管怎么最小化 ,都不能讓 上升。換句話說,你可以用噪聲數(shù)據(jù)訓練,但不能讓干凈數(shù)據(jù)的效果變差。
這剛好就是以 為主、 為輔的主次型多任務學習問題!
無獨有偶,去年 Google 的一篇論文《Gradient-guided Loss Masking for Neural Machine Translation》[3] 也給出了類似做法,但細節(jié)略有不同。它是通過算每個噪聲樣本對參數(shù)的梯度,只保留與干凈數(shù)據(jù)梯度 夾角小于 90 度(內積大于 0)的樣本。也就是說,大家都是以與干凈數(shù)據(jù)梯度的內積為判斷依據(jù),不同的是,主次型多任務中,如果內積小于 0,則對更新量做一個修正,而在 Google 的文章中,則是直接刪掉對應的樣本。
本文小結
本文將前一篇文章的平行型多任務學習的結果推廣到了“主次型”多任務學習,即多任務學習的目標不再是做好所有的任務,而是以某個任務為主、其余任務為輔,其結果跟原來的平行型多任務學習有不少相似之處,但細微之處又不盡相同,最后介紹了主次型多任務學習的一些經(jīng)典例子,如正則項、帶噪學習等。
參考文獻
[1] https://en.wikipedia.org/wiki/Minimax_theorem
[2] https://en.wikipedia.org/wiki/Frank–Wolfe_algorithm
[3] https://arxiv.org/abs/2102.13549
特別鳴謝
感謝 TCCI 天橋腦科學研究院對于 PaperWeekly 的支持。TCCI 關注大腦探知、大腦功能和大腦健康。
更多閱讀
#投 稿?通 道#
?讓你的文字被更多人看到?
如何才能讓更多的優(yōu)質內容以更短路徑到達讀者群體,縮短讀者尋找優(yōu)質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發(fā)出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優(yōu)質內容,可以是最新論文解讀,也可以是學術熱點剖析、科研心得或競賽經(jīng)驗講解等。我們的目的只有一個,讓知識真正流動起來。
📝?稿件基本要求:
? 文章確系個人原創(chuàng)作品,未曾在公開渠道發(fā)表,如為其他平臺已發(fā)表或待發(fā)表的文章,請明確標注?
? 稿件建議以?markdown?格式撰寫,文中配圖以附件形式發(fā)送,要求圖片清晰,無版權問題
? PaperWeekly 尊重原作者署名權,并將為每篇被采納的原創(chuàng)首發(fā)稿件,提供業(yè)內具有競爭力稿酬,具體依據(jù)文章閱讀量和文章質量階梯制結算
📬?投稿通道:
? 投稿郵箱:hr@paperweekly.site?
? 來稿請備注即時聯(lián)系方式(微信),以便我們在稿件選用的第一時間聯(lián)系作者
? 您也可以直接添加小編微信(pwbot02)快速投稿,備注:姓名-投稿
△長按添加PaperWeekly小編
🔍
現(xiàn)在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
·
總結
以上是生活随笔為你收集整理的多任务学习漫谈:分主次之序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AAAI 2022 | 条件局部图卷积网
- 下一篇: 数字人民币是啥意思 和微信支付宝有什么