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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

多目标机器学习_NIPS2018 - 用多目标优化解决多任务学习

發布時間:2025/3/19 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 多目标机器学习_NIPS2018 - 用多目标优化解决多任务学习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題外話: 多任務學習可以說是機器學習的終極目標之一, 就像物理學家在追求統一所有力一樣, 個人認為機器學習也在追求一個模型解決幾乎所有問題. 雖然我們現在還離這個目標很遠, 但是多任務學習在實際應用中是非常有價值的, 對于像BERT這么復雜的模型, 用一個模型解決多個問題才能物盡其用啊. (稍稍推廣下bert-multitask-learning)

這是Intel在NIPS 2018上發表的關于多任務學習的文章: Multi-Task Learning as Multi-Objective Optimization. 多任務學習其實有很多種做法, hard parameter sharing, soft parameter sharing等等, 但是個人認為hard parameter sharing更加具有實用價值, 這里不展開說了. 這篇文章屬于用hard parameter sharing 做多任務學習, 通過loss weighting來提升效果, 而本文的主要貢獻是對這個weight的快速計算. 作者在文章中說了以下事情:

  • 介紹了用多目標優化解決多任務學習的一般形式
  • 介紹了怎么比較多任務學習結果的優劣: 帕累托最優
  • 將帕累托最優的求解轉化成任務權重的求解
  • 證明如何簡化該計算
  • 文章的idea其實很簡單, 但是理論比較多, 如果對理論不感興趣的話了解一下作者做了什么工作就好了: 通過鏈式法則的推導, 并證明了, 在梯度為full rank的情況下, 我們不需要對每個任務的向后傳播都算到底(所有層), 只需要算到共享模型的最后一層, 用這個去解出各個任務的權重, 既能加快速度, 又能得到一個比較好的解. 下面我會嘗試總結一下作者的推導過程.

    符號解釋

    • : 任務以及任務集合
    • : 模型參數, 共享的模型參數
    • : 任務權重
    • : 學習率
    • : 的最后一層輸出
    • : 損失函數
    • : 輸出空間和任務t的標簽空間

    多目標優化解決多任務學習的一般形式

    多任務學習可以一般可以表示為最小化下面式子:

    帕累托最優

    我們可以想象, 對于不同的

    的取值, 我們可以學到不同的參數 , 那么我們怎么判斷參數之間的優劣呢? 顯然的, 如果對于參數 , 在每個任務上的表現都大于等于 , 那么我們就認為 比 要好(dominiate). 按照這個條件, 如果參數 不差于任何參數,那么 則稱為帕累托最優.

    用求解任務權重解帕累托最優

    這是問題的第一步轉換, 理論基礎是這篇文章(我沒看). 文章證明了, 下面式子的解要么是帕累托靜止點(帕累托最優的必要條件), 要么是一個能優化所有任務的好的優化方向.

    我們可以看到,

    的梯度和 是沒啥關系的, 只作用在 的梯度上, 因此向后傳播的過程為:
  • 對所有做一般的gradient descent
  • 解出上面式子, 并對做 的gradient descent.
  • 計算過程寫下來就是原文里面的Algorithm 2:

    簡化上述計算

    從Algorithm 2第8行可以看到, 對于share parameters的梯度, 需要對每個任務都算一遍, 當任務比較多的時候, 運算復雜度高, 因此, 作者提出了第二步轉換, 也是本文的主要工作.

    復合函數求導的鏈式法則可得上界:

    其中Z為輸入的最后一層的表示. 去掉與alpha不想關的項, 可得:

    然后作者證明了

    在full rank 的情況下, MGDA-UB(Multiple Gradient Descent Algorithm – Upper Bound, 就是上面的那個公式)的解要么是Pareto stationary point(Pareto optimal的必要條件), 要么是一個能優化所有任務的好的優化方向. 那么算法修改的地方是Algorithm 2中的第8行的梯度計算, 從對所有share parameters算梯度改成對最后一層表示的梯度.

    實驗結果

    作者在MultiMNIST和CelebA數據集上取得了超過single task的結果. 訓練時間也極大地縮短了(任務越多, 訓練時間差距越大). 從作者的實驗結果也可以看到, 簡單的average的效果其實是不如single task的.

    需要注意的是, 在本文我忽略了很多過程, 只把我認為的最關鍵的部分拿了出來, 主要是為了簡單敘述一下作者簡化計算的方法.

    原文鏈接: https://github.com/JayYip/deep-learning-nlp-notes/blob/master/%E7%94%A8%E5%A4%9A%E7%9B%AE%E6%A0%87%E4%BC%98%E5%8C%96%E8%A7%A3%E5%86%B3%E5%A4%9A%E4%BB%BB%E5%8A%A1%E5%AD%A6%E4%B9%A0.md

    總結

    以上是生活随笔為你收集整理的多目标机器学习_NIPS2018 - 用多目标优化解决多任务学习的全部內容,希望文章能夠幫你解決所遇到的問題。

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