多任务学习
作者:互联网
多任务学习(Multi-task learning)是迁移学习(Transfer Learning)的一种,而迁移学习指的是将从源领域的知识(source domin)学到的知识用于目标领域(target domin),提升目标领域的学习效果。 而多任务学习也是希望模型同时做多个任务时,能将其他任务学到的知识,用于目标任务中,从而提升目标任务效果。
如果我们换个角度理解,其实多任务学习,其实是对目标任务做了一定的约束,或者叫做regularization。我们不希望模型只局限于目标任务的学习,而是能够适应多个任务场景,这样可以大大的增加模型的泛函能力(generalization)。
举个形象的例子,单人多任务学习模型就像一个一门心思只做一样事情的匠人,在他自己的领域,他可能可以做一百分,如果换个任务也许他就会做的不是特别好,而多任务学习模型就像一个什么任务都做得还算优秀但是不完美的人。可是在实际深度学习任务中,测试集和训练集的分布还是会有一定的偏差,那测试集可能就意味给让模型做一个目标微调后任务。所以在测试集上,多任务模型大概率是表现优异那一个。
这里需要强调一点,这里的多任务的各个任务之间一定要有强相关性,如果任务之间本身的关联性就不大,多任务学习并不会对模型的提升并不一定会有用。
多任务学习(Multi-task learning)的两种模式
深度学习中两种多任务学习模式:隐层参数的硬共享与软共享。
隐层参数硬共享,指的是多个任务之间共享网络的同几层隐藏层,只不过在网络的靠近输出部分开始分叉去做不同的任务。
隐层参数软共享,不同的任务使用不同的网络,但是不同任务的网络参数,采用距离(L1,L2)等作为约束,鼓励参数相似化。
而本次的代码实现采用的是隐层参数硬共享,也就是两个任务共享网络浅层的参数。
作者:王同学死磕技术
链接:https://www.jianshu.com/p/a6cf116c1bde
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
标签:隐层,学习,任务,参数,共享,多任务 来源: https://blog.csdn.net/qq_42584399/article/details/121466137