多任务学习顾名思义就是在某一进程中实现多个任务,举例来说,我们在看到一辆自行车时,会看到自行车的两个车轮,颜色,车辆标志,车辆形状,这基本都是在同一时间就可以获得的信息。而对于深度学习模型面对各式各样的需求,也需要一个模型能够实现多个任务。
首先介绍深度学习的两个简单的模型构建方式:
多任务学习基础的模型结构大致为:
(1)交替学习
交替学习的概念为模型存在共享层,但是在训练过程中是交替进行的,且损失函数和优化函数是独立的。例如给定一个选择比例(随机选择或者固定概率选择),让任务1的一个batch在此次进行训练,让任务2的一个batch在下次进行训练。
从图中可以看出,交替训练是损失函数并未相加,而是独立存在,因此只要使其能够在训练时实现交替训练。
交替训练适合对于每个任务都有不同的数据集,例如英语-德语和英语-法语,那么就可以使用。但是很明显的是交替训练会导致模型具有很大的偏向性,会使得模型偏向于数据量较大的任务。
(2)联合学习
联合训练的概念为在最终的输出中,将两个任务的损失函数相加,然后使用同一个优化函数,这样训练较快,且对于同一个数据集要求其输出有两个相关性的任务输出,联合学习是比较合适的;且联合学习对于任务具有一定的相关性是好处的。