博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MTL多任务学习-Multitask Learning
阅读量:4044 次
发布时间:2019-05-24

本文共 871 字,大约阅读时间需要 2 分钟。

把多个相关(related)的任务(task)放在一起学习

多任务学习时,多个任务之间的模型空间(Trained Model)是共享的

多任务学习涉及多个相关的任务同时并行学习,梯度同时反向传播,多个任务通过底层的共享表示(shared representation)来互相帮助学习,提升泛化效果。

学习过程中通过一个在浅层的共享表示来互相分享、互相补充学习到的领域相关的信息,互相促进学习,提升泛化的效果。

MTL中共享表示有两种方式:

(1)基于参数的共享(Parameter based):比如基于神经网络的MTL,高斯处理过程。
(2)基于约束的共享(regularization based):比如均值,联合特征(Joint feature)学习(创建一个常见的特征集合)。

小tip

1 整合损失函数

多任务损失函数“简单求和”替换为“加权求和”。加权可以使每个损失函数的尺度一致,但也带来了新的问题:加权的超参难以确定

《Multi-Task Learning Using Uncertainty to Weigh Losses for Scene Geometry and Semantics》通过“不确定性(uncertainty)”来调整损失函数中的加权超参

2调整学习率:对于不同的task,我们可以采用不同的learning rate

3、任务A的评估作为其他任务的特征

有效的原因

1、引入其他任务噪声可以提高学习的泛化(generalization)效果

2、单任务学习时,梯度的反向传播倾向于陷入局部极小值。多任务学习中不同任务的局部极小值处于不同的位置,通过相互作用,可以帮助隐含层逃离局部极小值

3、添加的任务可以改变权值更新的动态特性,可能使网络更适合多任务学习。比如,多任务并行学习,提升了浅层共享层(shared representation)的学习速率,可能,较大的学习速率提升了学习效果。

4、多个任务在浅层共享表示,可能削弱了网络的能力,降低网络过拟合,提升了泛化效果。

参考:

 

MTL资源整理:

转载地址:http://ymhdi.baihongyu.com/

你可能感兴趣的文章
kprobe学习
查看>>
慢慢欣赏linux phy驱动初始化2
查看>>
慢慢欣赏linux CPU占用率学习
查看>>
2020年终总结
查看>>
Homebrew指令集
查看>>
React Native(一):搭建开发环境、出Hello World
查看>>
React Native(二):属性、状态
查看>>
JSX使用总结
查看>>
React Native(四):布局(使用Flexbox)
查看>>
React Native(七):Android双击Back键退出应用
查看>>
Android自定义apk名称、版本号自增
查看>>
adb command not found
查看>>
Xcode 启动页面禁用和显示
查看>>
【剑指offer】q50:树中结点的最近祖先
查看>>
二叉树的非递归遍历
查看>>
【leetcode】Reorder List (python)
查看>>
【leetcode】Linked List Cycle (python)
查看>>
【leetcode】Linked List Cycle (python)
查看>>
【leetcode】Candy(python)
查看>>
【leetcode】Clone Graph(python)
查看>>