【问题标题】:optimizing multiple loss functions in pytorch在pytorch中优化多个损失函数
【发布时间】:2022-03-04 07:58:34
【问题描述】:
我正在 PyTorch 中训练一个具有不同输出的模型,我有四种不同的位置(以米为单位)、旋转(以度为单位)和速度损失,以及模型必须预测的布尔值 0 或 1 .
AFAIK,这里有两种定义最终损失函数的方法:
one - 损失的朴素加权总和
two - 每个损失的定义系数以优化最终损失。
所以,我的问题是如何更好地权衡这些损失以获得最终损失,正确吗?
【问题讨论】:
标签:
python
optimization
pytorch
loss-function
loss
【解决方案1】:
这不是关于编程的问题,而是关于多目标设置中的优化问题。您描述的两个选项归结为相同的方法,即损失项的线性组合。但是,请记住,还有许多其他方法,包括动态损失权重、不确定性权重等……在实践中,最常用的方法是线性组合,其中每个目标都获得一个权重,该权重通过网格搜索或随机搜索。
您可以查看这项关于多任务学习的调查,其中展示了一些方法:多任务学习密集预测任务:调查,Vandenhende 等, T-PAMI'20。
这是一个活跃的研究方向,因此,您的问题没有明确的答案。