3.2.4 迁移学习和多任务学习

迁移学习

总结一下,什么时候迁移学习是有意义的?如果你想从任务A学习并迁移一些知识到任务B,那么当任务A和任务B都有同样的输入时,迁移学习是有意义的。在第一个例子中,A和B的输入都是图像,在第二个例子中,两者输入都是音频。当任务A的数据比任务多得多时,迁移学习意义更大。所有这些假设的前提都是,你希望提高任务B的性能,因为任务B每个数据更有价值,对任务A来说通常任务的数据量必须大得多,才有帮助,因为任务A里单个样本的价值没有比任务B单个样本价值大。然后如果你觉得任务A的低层次特征,可以帮助任务B的学习,那迁移学习更有意义一些。

迁移学习最有用的场合是,如果你尝试优化任务B的性能,通常这个任务数据相对较少,例如,在放射科中你知道很难收集很多X射线扫描图来搭建一个性能良好的放射科诊断系统,所以在这种情况下,你可能会找一个相关但不同的任务,如图像识别,其中你可能用1百万张图片训练过了,并从中学到很多低层次特征,所以那也许能帮助网络在任务B在放射科任务上做得更好,尽管任务B没有这么多数据。迁移学习什么时候是有意义的?它确实可以显著提高你的学习任务的性能,但我有时候也见过有些场合使用迁移学习时,任务A实际上数据量比任务B要少,这种情况下增益可能不多。

多任务学习

在迁移学习中,你的步骤是串行的,你从任务A里学习知识然后迁移到任务B。在多任务学习中,你是同时开始学习的,试图让单个神经网络同时做几件事情,然后希望这里每个任务都能帮到其他所有任务。

我们来看一个例子,假设你在研发无人驾驶车辆,那么你的无人驾驶车可能需要同时检测不同的物体,比如检测行人、车辆、停车标志,还有交通灯各种其他东西。比如在左边这个例子

这里写图片描述

那么多任务学习什么时候有意义呢?当三件事为真时,它就是有意义的。

第一,如果你训练的一组任务,可以共用低层次特征。对于无人驾驶的例子,同时识别交通灯、汽车和行人是有道理的,这些物体有相似的特征,也许能帮你识别停车标志,因为这些都是道路上的特征。

第二,这个准则没有那么绝对,那个小任务的平均数据量差不多。

吴教主深度学习和神经网络课程总纲

猜你喜欢

转载自blog.csdn.net/einstellung/article/details/80212312