深度学习的多个loss如何平衡?

2020 年 3 月 16 日 极市平台

加入极市专业CV交流群,与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度 等名校名企视觉开发者互动交流!

同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。关注 极市平台 公众号 ,回复 加群,立刻申请入群~


问题 :在一个端到端训练的网络中,如果最终的loss = a*loss1+b*loss2+c*loss3...,对于a,b,c这些超参的选择,有没有什么方法?
链接: https://www.zhihu.com/question/375794498


知乎高质量回答


一、作者:Evan
字节跳动研究员
https://www.zhihu.com/question/375794498/answer/1052779937
本文来自知乎问答,仅供学习参考,著作权归作者所有。

其实这是目前深度学习领域被某种程度上忽视了的一个重要问题,在近几年大火的multi-task learning,generative adversarial networks, 等等很多机器学习任务和方法里面都会遇到,很多paper的做法都是暴力调参结果玄学……这里偷偷跟大家分享两个很有趣的研究视角:


1. 从预测不确定性的角度引入Bayesian框架,根据各个loss分量当前的大小自动设定其权重。有代表性的工作参见Alex Kendall等人的CVPR2018文章 Multi-Task Learning Using Uncertainty to Weigh Losses for Scene Geometry and Semantics,https://arxiv.org/abs/1705.07115。文章的二作Yarin Gal是Zoubin Ghahramani的高徒,近几年结合Bayesian思想和深度学习做了很多solid的工作。



2. 构建所有loss的Pareto,以一次训练的超低代价得到多种超参组合对应的结果。有代表性的工作参见Intel在2018年NeurIPS(对,就是那个刚改了名字的机器学习顶会)发表的Multi-Task Learning as Multi-Objective Optimization,http://papers.nips.cc/paper/7334-multi-task-learning-as-multi-objective-optimization。因为跟文章的作者都是老熟人,这里就不尬吹了,大家有兴趣的可以仔细读一读,干货满满。



二、作者:杨奎元
深动科技联合创始人
https://www.zhihu.com/question/375794498/answer/1050963528
本文来自知乎问答,回答已获作者授权,禁止二次转载。


1. 一般都是多个loss之间平衡,即使是单任务,也会有weight decay项。比较简单的组合一般通过调超参就可以。


2. 对于比较复杂的多任务loss之间平衡,这里推荐一篇通过网络直接预测loss权重的方法[1]。以两个loss为例,   和   由网络输出,由于整体loss要求最小,所以前两项希望   越大越好,为防止退化,最后第三项则希望 越小越好。当两个loss中某个比较大时,其对应的 也会取较大值,使得整体loss最小化,也就自然处理量纲不一致或某个loss方差较大问题。



该方法后来被拓展到了物体检测领域[2],用于考虑每个2D框标注可能存在的不确定性问题。



[1] Alex Kendall, Yarin Gal, Roberto Cipolla. Multi-Task Learning Using Uncertainty to Weigh Losses for Scene Geometry and Semantics. CVPR, 2018.

[2] Yihui He, Chenchen Zhu, Jianren Wang, Marios Savvides, Xiangyu Zhang. Bounding Box Regression with Uncertainty for Accurate Object Detection. CVPR, 2019.



三、作者:郑泽嘉
自动驾驶程序员
https://www.zhihu.com/question/375794498/answer/1056695768
本文来自知乎问答,回答已获作者授权,禁止二次转载。


Focal loss 会根据每个task的表现帮你自动调整这些参数的。


我们的做法一般是先分几个stage 训练。stage 0 : task 0, stage 1: task 0 and 1. 以此类推。在stage 1以后都用的是focal loss。


是这样的。


首先对于每个 Task,你有个 Loss Function,以及一个映射到 [0, 1] 的 KPI (key performance indicator) 。比如对于分类任务, Loss function 可以是 cross entropy loss,KPI 可以是 Accuracy 或者 Average Precision。对于 regression 来说需要将 IOU 之类的归一化到 [0, 1] 之间。KPI 越高表示这个任务表现越好。


对于每个进来的 batch,每个Task_i 有个 loss_i。每个Task i 还有个不同的 KPI: k_i。那根据 Focal loss 的定义,FL(k_i, gamma_i) = -((1 - k_i)^gamma_i) * log(k_i)。一般来说我们gamma 取 2。


于是对于这个 batch 来说,整个 loss = sum(FL(k_i, gamma_i) * loss_i) 

在直观上说,这个 FL,当一个任务的 KPI 接近 0 的时候会趋于无限大,使得你的 loss 完全被那个表现不好的 task 给 dominate。这样你的back prop 就会让所有的权重根据那个kpi 不好的任务调整。当一个任务表现特别好 KPI 接近 1 的时候,FL 就会是0,在整个 loss 里的比重也会变得很小。


当然根据学习的速率不同有可能一开始学的不好的task后面反超其他task。 http://svl.stanford.edu/assets/papers/guo2018focus.pdf 这篇文章里讲了如何像momentum 一样的逐渐更新 KPI。


由于整个 loss 里现在也要对 KPI 求导,所以文章里还有一些对于 KPI 求导的推导。


当然我们也说了,KPI 接近 0 时,Loss 会变得很大,所以一开始训练的时候不要用focal loss,要确保网络的权重更新到一定时候再加入 focal loss。 


希望大家训练愉快。



-END -

推荐阅读:


极市平台视觉算法季度赛,提供真实应用场景数据和免费算力,特殊时期,一起在家打比赛吧!



添加极市小助手微信 (ID : cv-mart) ,备注: 研究方向-姓名-学校/公司-城市 (如:目标检测-小极-北大-深圳),即可申请加入 目标检测、目标跟踪、人脸、工业检测、医学影像、三维&SLAM、图像分割等极市技术交流群 ,更有 每月大咖直播分享、真实项目需求对接、求职内推、算法竞赛、 干货资讯汇总、行业技术交流 一起来让思想之光照的更远吧~


△长按添加极市小助手


△长按关注极市平台,获取最新CV干货


觉得有用麻烦给个在看啦~  

登录查看更多
5

相关内容

最新《生成式对抗网络》简介,25页ppt
专知会员服务
168+阅读 · 2020年6月28日
深度强化学习策略梯度教程,53页ppt
专知会员服务
176+阅读 · 2020年2月1日
GANs最新综述论文: 生成式对抗网络及其变种如何有用
专知会员服务
70+阅读 · 2019年10月19日
非平衡数据集 focal loss 多类分类
AI研习社
33+阅读 · 2019年4月23日
被忽略的Focal Loss变种
极市平台
29+阅读 · 2019年4月19日
分享神经网络中设计loss function的一些技巧
极市平台
34+阅读 · 2019年1月22日
深度学习如何调参?
炼数成金订阅号
6+阅读 · 2018年10月18日
何恺明大神的「Focal Loss」,如何更好地理解?
PaperWeekly
10+阅读 · 2017年12月28日
如何找到最优学习率?
AI研习社
11+阅读 · 2017年11月29日
深度学习超参数简单理解
计算机视觉战队
4+阅读 · 2017年11月28日
wGAN如何解决GAN已有问题(附代码实现)
数据派THU
17+阅读 · 2017年6月27日
One-Shot Federated Learning
Arxiv
9+阅读 · 2019年3月5日
Polarity Loss for Zero-shot Object Detection
Arxiv
3+阅读 · 2018年11月22日
A General and Adaptive Robust Loss Function
Arxiv
7+阅读 · 2018年11月5日
Parsimonious Bayesian deep networks
Arxiv
5+阅读 · 2018年10月17日
Arxiv
6+阅读 · 2018年3月12日
VIP会员
相关资讯
非平衡数据集 focal loss 多类分类
AI研习社
33+阅读 · 2019年4月23日
被忽略的Focal Loss变种
极市平台
29+阅读 · 2019年4月19日
分享神经网络中设计loss function的一些技巧
极市平台
34+阅读 · 2019年1月22日
深度学习如何调参?
炼数成金订阅号
6+阅读 · 2018年10月18日
何恺明大神的「Focal Loss」,如何更好地理解?
PaperWeekly
10+阅读 · 2017年12月28日
如何找到最优学习率?
AI研习社
11+阅读 · 2017年11月29日
深度学习超参数简单理解
计算机视觉战队
4+阅读 · 2017年11月28日
wGAN如何解决GAN已有问题(附代码实现)
数据派THU
17+阅读 · 2017年6月27日
相关论文
Top
微信扫码咨询专知VIP会员