吴恩达神经网络和深度学习-学习笔记-27-多任务学习
在迁移学习中,你的步骤是串行的。
在多任务学习中,你是试图让神经网络同时做几件事情,然后希望这里每个任务都能其他所有任务。
一个自动驾驶的例子:
在这里,一个x对应多个y,或者说Y = [y(1), y(2), y(3), y(4)]
对神经网络的训练如下:
需要强调的是,损失函数需要的四个y求和。与Softmax分类给一张图一个标签不同,这里的每张图会有多个标签。
当然也可以,训练4个神经网络来实现功能,但是它们的低水平特征在识别不同物体的时候都会用到。所以训练一个网络的多任务学习,确实要好于训练多个神经网络单目标学习。
另外,对于未完全标记的数据集,我们也可以在上面训练算法。
什么时候多任务学习有意义:
汉语翻译:
- 你训练的一组任务可以共用低层次特征。
- 通常:如果每个任务的数据量很接近。
相对于迁移学习的一个对另一个提升的关系(大数据量 -> 小数据量),多任务学习的不同任务之间是相互提升(其余 -> 本身)。 - 当你可以训练一个足够大的网络,来同时做好所有的工作。
多任务学习会降低性能的唯一情况(相比于训练单个神经网络):
神经网络不够大。
小结:
多任务学习能让你训练一个神经网络来执行许多任务,这可以给比单独完成各个任务你更高的性能。
在实践中,多任务学习的使用频率要低于迁移学习(计算机视觉的物体检测是一个例外)。