An Overview of Multi-Task Learning in Deep Neural Networks

在人类学习中,不同学科之间的往往能起到相互促进的作用。那么,对于机器学习是否也是这样的,我们不仅仅让它专注于学习一个任务,而是让它学习多个相关的任务,是否可以让机器在各个任务之间融会贯通,从而提高在主任务上面的结果呢?

1.multi-task的两种形式

前面的层是权重共享的,后面的层权重是不同的。

所有的层权重都是不同的,但是对于前面的层,我们会约束他们的权重尽可能地接近,通过会加上L2 distance作为惩罚项。

2. 为什么有用?

(1)减少过拟合:我们约束前面的层是适用于多个任务的,这就降低了模型只拟合当前数据集的情况,或者可以理解为数据量增加为原来数据的k倍,k代表任务的个数,这一点在数据量小的情况下效果应该会更加明显。

(2)注意力的集中:在单任务时,由于更容易造成过拟合的情况,从而使得提取的特征和目标之间存在假相关性,而多个任务的学习可以降低这种假相关性,从而更加关注到有用的特征。

(3)学习到一些难学的特征:假设对于主任务A,某些特征是有用的,但是它可能是很难学习到的,这时候或许可以通过任务B来学习到这些特征。

(4)更具代表性:多任务学习到的特征通用性更强(或许预训练模型应该用多任务进行训练)

(5)一种regularization:比如我们可以把网络参数尽可能接近0作为我们的第二个task,这样就相当于使用了L1或者L2的regularization。

3. 具体的形式(略)

4.辅助任务的选择

(1)相关的任务

(2)对抗的任务

(3)暗示Hints:我们可以将暗示通过辅助任务的形式传递给网络

(4)集中注意力:对于一些出现次数较少的特征,可能会被掩盖掉,比如对于解剖层分割的网络中,肿瘤本来是一个乳腺层的显著特征,但是由于肿瘤数量太小,模型无法学习出来,这时候就可以通过multi-task来解决。

(5)量化平滑:比如我们根据label数值的大小分为高中低,然后将其作为辅助任务的label,这样可能方便学习。

(6)将输出作为辅助label:使得模型保存足够的信息。

(7)使用未来预测现在:对于一些指标在test中无法得到(可能是时间超前),我们这时候不能将其作为输入,但是我们可以将其作为辅助任务的label。

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值