为什么我用Multi-task likelihoods来动态调整loss weights时loss变成了负数?

问题描述 投票:0回答:0

基于论文“Multi-Task Learning Using Uncertainty to Weighting Losses for Scene Geometry and Semantics”,可以通过最大似然估计来学习多任务损失的权重,将其转换为最小化函数: enter image description here

据我了解,我们计算每个任务的损失后(通常我们使用均方误差),它形成一个参数为ε的多变量函数,我们使用Adam来求解。然后可以使用损失函数来更新神经网络的参数。

当我尝试在我的神经网络中实现这个方法时,我发现当每个部分的损失小于 1 时,计算的总损失变为负数。这是因为 (1/ε2)*Loss 的符号总是正的,但 log(ε) 为负,abs 值更大。

所以我想知道我哪里错了?还是方法的特点?

我的神经网络的损失有三个损失部分,在每个epoch中,我计算每个部分的损失,得到三个ε值,用Adam求解multi_varaible函数。然后参数ε被用来计算总损失来更新神经网络的参数。

neural-network regression multitasking
© www.soinside.com 2019 - 2024. All rights reserved.