百科问答小站 logo
百科问答小站 font logo



多任务学习中loss多次backward和loss加和后backward有区别吗? 第1页

  

user avatar   deepphysics 网友的相关建议: 
      

之前回答过一个类似的问题。多任务训练时,先对loss求和再使用一个Adam做梯度下降,不等价于对多个任务使用不同的Adam做梯度下降,然后求和。

具体的区别是第二种方法能对不同的任务学到不同的适配学习率。

而第一种方法只能依赖于训练初始时刻不同任务被分配的权重。

对于本问题,先考虑最简单的情况。做3个假设,前两个假设固定

  1. 假设只有一个优化器 -- 简单的随机梯度下降(SGD),不对不同任务使用适配学习率。
  2. 假设只有两个子任务,既共享部分神经元,也独自拥有各自的神经元

考虑 loss = ,其中 是两个任务共有的参数,

是第一个任务独有的参数, 是第二个任务独有的参数。

对第一个任务做梯度下降,损失函数定为 ,

假设此时并未使用更新后的神经网络参数重新计算一个batch的loss,

对第二个任务做梯度下降,损失函数定为 ,则

因为整体的 loss 等于 , 所以两者并无区别。

假设此时使用更新后的神经网络参数重新计算了一个batch的loss,

对第二个任务做梯度下降,损失函数定为 ,则

原则上, , 在这种假设下,对第二个任务使用 SGD 时,神经网络表示的泛函已经发生了改变。

假设神经网络的优化目标有如下泛函形式,

其中 x 是神经网络输入, 分别是共有神经元与独立神经元经过训练后学会的函数,加 ‘ 表示这些函数的一阶导数。完全训练后,对这些函数的任意改变都会导致 的增大。

如果第一次更新后,函数 y 更新为 , 其中 。

对第二个任务做梯度下降时,就要考虑函数形式发生变化后 loss 对 与 的梯度。

函数形式发生变化后,损失函数的变分大概为,

里面会多出来由于 与 改变引起的 , , , 等项。

暂时还没想明白这个影响有多大,以后想的更清楚了再来更新。




  

相关话题

  2021年了,如何评价微软亚研提出的对偶学习(Dual Learning)? 
  如何评价剑桥,腾讯, DeepMind以及港大团队新作 SimCTG ? 
  如何评价陈天奇的模块化深度学习系统NNVM? 
  强化学习和自适应控制的关系是什么? 
  为什么Bert中的CLS在未fine tune时作为sentence embedding性能非常糟糕? 
  如何理解MCMC中的细致平稳条件? 
  如何评价小米开源的移动端深度学习框架MACE? 
  如何看待何恺明最新一作论文Masked Autoencoders? 
  如果你是面试官,你怎么去判断一个面试者的深度学习水平? 
  Yann LeCun、Geoffrey Hinton或Yoshua Bengio能得图灵奖吗? 

前一个讨论
能否详细说明一下对称算法中的DES,AES?
下一个讨论
TensorFlow 中 padding 的 SAME 和 VALID 两种方式有何异同?





© 2025-05-03 - tinynew.org. All Rights Reserved.
© 2025-05-03 - tinynew.org. 保留所有权利