多工學習中loss多次backward和loss加和後backward有區別嗎?

時間 2021-05-08 19:43:18

1樓:邱歡

各個任務的loss可通過不同的權重加權求和,再根據最終的loss計算梯度。而不同任務的權重設定可以有多種策略。

2樓:

題主已經標明了是Torch,那麼沒區別,backward只是積累梯度而已,哪怕同乙個loss,你backward兩次,就是積累兩倍梯度。

要使用optimizer.step之後才會根據積累的梯度更新權重。至於梯度是怎麼積累的,optimizer不會管。

雖然其實和題目無關,但前面的答主們很嗨的研究多工優化問題,還是很讚的。。。

3樓:

理論上,如果使用sgd這類沒有引數的優化器,兩者是等價的;如果使用adam這類有引數的優化器,兩者是不等價的。

實踐上,應該沒有啥區別。

4樓:

反向傳播是沿著資料流圖相反方向求導的操作,而求導操作滿足線性性,即

也就是說多個函式線性組合的導數等於對這些函式分別求導結果的線性組合。所以結果是等價的。

不等價的情況會出現在每步反向傳播後都更新引數的時候,這時loss是基於更新後的引數得到的,所以會不等價

5樓:Liyuan Liu

Update: 如果用了loss scaling (fp16), 結果會不一樣... 除此之外下面的結論就還是成立的

算出來結果是一樣的 (只有計算精度導致的微小差別)

但速度上,一起backward更快(除非兩個loss的計算圖完全不一樣)

舉個簡單的例子就是:x * y * ( b + c ) 要比 x * y * b + x * y * c 要快, 雖然兩者結果相同

PS: 預設backward指的是只算gradient,不update

6樓:

這個題目是有歧義的。根據題目條件,可以產生兩種解釋:

1)交替使用 和 來優化網路,也即,在不同 iteration 中計算 和 。

2)和 在同一次 iteration 中完成 forward pass;

一、交替使用 和 來優化網路

二、和 在同一次 iteration 中完成 forward pass;

設各 的優化演算法和引數配置一定。因為題目已限定 。因此,求和後做 backward 等於先做 backward 後再求和。

道理是顯而易見的,以比較權重 獲得的梯度為例。的梯度就是 對 的偏導數。

也即,求和後算梯度,等於,分別求梯度後的和。因為優化演算法一定,故 backward() 操作也能得到同樣的結論。

7樓:zzzz

對於線性系統求解來說

依次算loss更新是succesive displacement,相對應的是gauss siedal method。收斂會更快。

同時算loss是simultaneous displacement,相對應的是jacobi method。更容易並行。

兩者對於凸優化的結果一致,但對於深度學習不好說。。

ps:本人學工程的,數學理解不深,可能說的不嚴謹。。。

pss:總覺得dl net本質上就是個multigrid solver

8樓:

Empirically, 兩種方法最後結果差不多。沒有見到過相關理論,但是讀過不同的實驗。

直覺上加起來作為目標函式比較合理,然而實驗結果表明另一種方式也能訓練成功。

哎,神經網路的事都挺玄學的。深度學習領域急招一名牛頓。

下面我定性口胡乙個直覺解釋啊。

按照加起來一起優化的方式有

按照分別更新的方式有

那麼按照不同方式更新後,引數的差是

如果假設 f_1 f_2 梯度光滑,且學習率比較小,那麼根據f_1光滑,這兩個theta的差距就很有限,再根據f_2光滑,梯度的差距就有限,另外外面還套了乙個小學習率,那麼這兩個引數的差就更小了。(口胡證明法,後果自負)

9樓:Jsgfery

這個backward應該是只反向傳播梯度,沒有利用梯度更新模型引數吧。

有沒有區別就在於兩種backward方式反向傳播計算出的梯度是不是相同的。

由於梯度之和等於和的梯度,如果多個loss對應相同的forward過程,那麼計算出的梯度應該是相同的。

具體的,如果多次backward對應同乙個forward應該沒有區別。如果多次backward對應多個forward在有隨機操作(如dropout)的網路裡有區別,在沒有隨機操作的網路裡沒有區別。

10樓:李韶華

對優化理論基本不懂,但是直覺上,兩個學習任務的目標是找到一組引數,讓模型在兩個任務上的loss同時都最小,數學形式就是 argmin L1 + L2. 而個人經驗是,優化實際使用的objective function和想達到的目標一致時,一般效果最好。所以我猜兩個loss加起來之後backward可能更好一些(收斂時的loss更小一些)。

多工學習中各loss權重應該如何設計呢?

付濤 最近有篇綜述,這個問題總結的挺好的,可以看看Multi Task Learning for Dense Prediction Tasks A Survey 前面幾種都比較好理解 最後一種 pareto 向量優化的方式 Multi Objective Optim.如果數學基礎不錯的話非常值得細緻...

在 iOS 上手動關閉多工中的應用對可以提公升效能和節省電量嗎?

潘祖輝 大多數情況下沒用,用完按HOME鍵返回即可,不需要去清理多工。當然也有極端情況,有幾次碰到應用一直在後台執行 約十幾個小時 應該是位置類的應用。手機耗電異常快,查了下耗電情況這乙個應用就佔了一大半耗電量。果斷解除安裝。 馮東 嚴格的說就是 遇到設計非常良好的程式加上一些附加條件,手動關閉應用...

如何做到在與前女友較多工作聯絡中不涉及感情問題?

你可聽清 人和人之間真的很奇妙,不是兩個人是好人就不能分手,也不是兩個人都是壞人就不能相愛 你和前女友看得出來,都是重感情的好人,但只是沒有戀愛的緣分了。這時你就要放平心態,不要再挑逗她,讓她和現男友有內疚的感覺。你愛過她,至少還是朋友,是朋友就有義務有責任讓她幸福。以後,你要規避和她單獨相處的機會...