为什么我们无法串联具有两个成本函数的神经网络模型



我正在尝试实现一个我想要优化两个成本函数的神经网络。您能否让我知道您对执行以下方法的方法的想法:

for i in it 
    ...      
    min lose_1  // modified the weight matrix W 
    min loss_2  // modified the weight matrix W (the last matrix resulting by  minimized the loss_1)
end

所以,我用成本函数1执行一种反向传播的迭代,然后带有成本函数2。

谢谢。

通常拥有两个目标来优化两个目标,而典型的解决方案是将它们通过加权总和组合到单个成本函数中:

C = a*C1 + b*C2

选择ab以确保一个术语不占主导地位。

这样,您可以计算一个梯度并使用它来更新每个训练步骤的权重。

编辑:如果您没有得到好的结果,则要么1。不能同时最大程度地减少两者的好方法。@sascha在评论中给出了一个微不足道的例子:c1 = x and c2 = -x。

编辑2:如果您要针对C1的梯度更新参数,然后相对于C2的梯度,这与我建议的非常相似,因为总和是梯度的总和。

但是,如果您要在第一步之后重新计算梯度,那么这可能会导致不稳定的解决方案,因为第二步可能是"撤消"第一步的工作,反之亦然,尤其是在成本正常的情况下不兼容。在我的方法中,您更有可能达到最低限度。但是这两种方法都非常相似,如果您遇到问题,这可能是我提到的原因之一。

最新更新