multi task深度神經網路如何實現,優化?

時間 2021-05-06 11:44:56

1樓:知識達人

多工學習有很多形式,如聯合學習(Joint Learning),自主學習(Learning to Learn),借助輔助任務學習(Learning with Auxiliary Tasks)等,這些只是其中一些別名。概括來講,一旦發現正在優化多於乙個的目標函式,你就可以通過多工學習來有效求解(Generally, as soon as you find yourself optimizing more than one loss function, you are effectively doing multi-task learning (in contrast to single-task learning))。在那種場景中,這樣做有利於想清楚我們真正要做的是什麼以及可以從中得到一些啟發。

2樓:啦啦啦

可行倒是可行啦。說白了就是在某個地方讓網路分叉,連多個softmax沒問題,也可以從某個fc layer開始分叉,我都試過。loss weight估計要調調看。。。。

最後結果如何真的看運氣。

從有限的經驗裡來看,多連點資料幫忙train(從頭上開始分個叉)會提高正確率;連不同種類的loss(這個有參考文獻)也會提高點。至於弄40個softmax,好豪放完全木有經驗。。。

3樓:Song

試過同時分類性別和年齡,測試集總體檢測率並不會比單獨分類提高,但從實用性上看,這樣模型的效能和rom size會更快和更小,更有優勢。

4樓:

多工網路確實會在有限的資料下得到更好的特徵,可能原因有:多個任務相互補充,更容易發現背後的latent factor;更多的任務可能從不同方面引入了更加豐富的監督資訊;同乙個網路不同的任務同時訓練,可能本身是一種正則。

不同的任務對應不同的損失,不一定都是softmax,識別的,分類的,排序的,甚至同乙個任務用幾個損失函式,都是可以的。

至於訓練,一般要把幾個損失寫在乙個式子裡,但是有的任務收斂快,有的任務收斂慢,有的任務簡單,有的任務複雜,這些目前看來全是調參的功夫。

deepid的網路,我覺得就是乙個識別的任務乙個排序的任務訓練出來的,可以同時多個任務訓練,也可以先訓練乙個,再在另乙個上finetune,都可以試試

5樓:王贇 Maigo

你說的方法(在最後乙個隱藏層之上放置多個並列的softmax層)是可以的。

研究收斂性並沒有什麼卵用,最後的效能要看運氣。

一深度神經網路如果用zero initialized而不是random會怎樣?

類似於 大腦一片空白 吧。畢竟權重為零的話,第一次向前傳播的時候是沒有問題的,儘管結果是零。但是開始反向傳播的時候,loss function計算的誤差會無法更新的,僵住了。 sgd 到 mini batch gd 是為了提高計算速度,一定的資料量,單個array計算沒有matrix計算快。和引數初...

深度學習與神經網路有什麼區別?

徐佳逸 深度學習可以理解成用深度神經網路 DNN,Deep Neural Network 來進行機器學習,他倆的關係可以從這個定義中一目了然地看出來。深度神經網路 DNN 一般分為三種架構 樸素的DNN 就是一般性的神經網路往多層擴充套件,缺點很多包括訓練緩慢,用Backprop進行訓練梯度衰減得厲...

深度學習,神經網路中,如何調節weight(以及其原理)?

陳瀚可 半年後的我終於有能力回答我自己沒水準的問題 由於資料集非常大的緣故,在 batch size 比較大的情況下梯度較於平緩.local minimum 實際上已經是乙個很不錯的 solution 了.如果要跳出 local minimum,可以使用 sin 形狀的 learning rate ...