loss 加权_多任务学习中各 loss 权重应该如何设计?

本文探讨了在多任务学习中如何设计各损失函数的权重,提出使用Adaptive Learning Rate来针对不同任务调整学习率。通过分析Adagrad等优化算法,指出传统方法在多任务学习中的局限,并提出按任务更新速度调整学习率的方法。在实践中,这种方法在初期能改善模型训练效果,但长期效果仍有待观察。同时,文中提到了分任务训练、参数初始化和归一化的研究方向。
摘要由CSDN通过智能技术生成

个人感觉这是一个非常有意思的问题。之前在训练多任务神经网络的时候遇到过类似的问题,在我的问题中,损失函数有两项贡献,

$l(\theta) = f(\theta) + g(\theta)$

这两项 f 和 g,分别对应着分类损失和分割损失。随着学习的进行,这两个损失函数减小的速度很不一致。往往是一项减小的非常快,另一项减小的超级慢。

看到这个问题的时候,我回想,应该可以对不同的损失项使用不同的学习率,即 Adaptive learning rate。其实 Adaptive Learning Rate 不是新东西,在 Adagrad, RMSProp, Adam 等等优化算法中,都有这个适配学习率的贡献。但那里的适配学习率,是对高维参数空间 $\theta$ 不同的方向,使用不同的学习率。

对更新快的方向,使用小一点的学习率,对更新慢的方向,使用大一点的学习率。

比如在 Adagrad 算法中,适配学习率的梯度下降算法公式为,

$\theta = \theta - \frac{lr}{\sqrt{G_{tt} + \epsilon}}\frac{\partial l}{\partial \theta}$

其中 $lr$ 是学习率, $\frac{\partial l}{\partial \theta}$ 是损失函数对网络参数的梯度,普通的 SGD 应该是 $\theta = \theta - lr \frac{\partial l}{\partial \theta}$ 。这里将学习率除以一个适配的常数 $\sqrt{G{tt} + \epsilon}$ ,其中 $ \epsilon = 1.0^{-8}$ 是一个很小的正数ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值