GradNorm 简介

论文链接:https://arxiv.org/pdf/1711.02257.pdf

之前讲过了多任务学习,如简单的shared bottom,都存在一个问题:多个任务的loss如何融合?简单的方式,就是将多个任务的loss直接相加:

但实际情况是,不同任务loss梯度的量级不同,造成有的task在梯度反向传播中占主导地位,模型过分学习该任务而忽视其它任务。此外,不同任务收敛速度不一致的,可能导致有些任务还处于欠拟合,可有些任务已经过拟合了。当然,我们可以人工的设置超参数,如:

由于各任务在训练过程中自己的梯度量级和收敛速度也是动态变化的,所以很显然这样定值的w做并没有很好的解决问题。作者提出了一种可以动态调整loss的w的算法——GradNorm

从上图可知,GradNorm 是以平衡的梯度作为目标,优化Grad Loss,从而动态调整各个任务的w。

那下面我们就来看看Grad Loss是怎么样的:

Gradient Loss被定义为所有task在当前时间t“真实gradient和target gradient norm的L1正则”相加之和。

解释一下这个式子:

  • W是什么:要对那些变量取gradient呢?为了方便起见,作者选取了最后一层shared layer的weights。
  • G(i)W(t): task i梯度l2标准化的值。

  • GW(t): 平均gradient norm。

  • ri(t): task i的相对反向训练速度。

  • a: 额外的参数。

伪代码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值