假设,我有一个骨干网络(卷积神经网络)。网络结束后,输出输入到两个神经网络中。两者都建立在特征提取器(CNN)输出的基础上。现在,如果我想从零开始训练这个完整的网络,在两个不同的任务上,骨干网络之后的层权重可以很容易地更新,但是我应该如何更新骨干网络的权重。我的意思是,我可以计算两个损失的梯度,是主干网中梯度的平均值,还是一定要加权和?如果是加权和,那么如何更新加权和的参数?
谢谢
发布于 2020-07-30 15:08:12
通常,任何基于梯度的学习都是在标量函数上进行的,因此这些函数f:ℝ^n↦ℝ。(实际上,这是梯度的意思)。主要是如果您想要定义任何最小化问题,您需要一个值来最小化,而不是更多。
这意味着:最终你的损失必须是一个标量(一个数字)。将中间的渐变组合起来(所以在支撑到你的骨干之前)最终就等于将损失组合起来。加权损失将更容易实现。
作为参考,你可以看看特斯拉如何在一个主干网上完成多任务学习,以及如何处理合并不同损失的A. Kaparthy的讲话。
https://datascience.stackexchange.com/questions/78534
复制相似问题