百科问答小站 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 对 与 的梯度。

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

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

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




  

相关话题

  能否对卷积神经网络工作原理做一个直观的解释? 
  AI(或者说神经网络/深度学习)能够实现科学(尤其是物理学)研究中提出假设这一步嘛? 
  为什么现在不看好 CV 方向了呢? 
  如何评价 DeepMind 公布的可生成算法竞赛解题代码的 AlphaCode? 
  ICLR 2021 有什么值得关注的投稿? 
  视觉算法的工业部署及落地方面的技术知识,怎么学? 
  人工智能可以为人类找寻他们心目中的另一半吗? 
  迁移学习入门,新手该如何下手? 
  TensorFlow 有哪些令人难以接受的地方? 
  CTC和Encoder-Decoder有什么关系? 

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





© 2024-06-29 - tinynew.org. All Rights Reserved.
© 2024-06-29 - tinynew.org. 保留所有权利