我正在优化两个具有非常不同值的损失函数。举个例子:
loss1 = 1534
loss2 = 0.723
我想优化
loss1+loss2
。将 loss1 重新调整为更接近 loss2 的值是个好主意吗?我尝试了在总损失项(总和)内将 loss2 乘以 1000 的天真方法,但问题是,随着 loss1
下降(比如大约 600、500),loss2
变得太大。
我的想法是想办法在整个优化过程中将两个损失项保持在同一范围内。这样做的最佳方法是什么?
也许你可以使用最小-最大缩放器来缩放 0 和 1 之间的损失。 所以这样做:
loss1 = mse(predicted, target)
loss2 = passion(predicted, target)
loss1_scaled = (loss1 - loss1.min())/(loss1.max() - loss1.min())
loss2_scaled = (loss2 - loss2.min())/(loss2.max() - loss2.min())
total_loss = loss1_scaled + loss2_scaled