用于深度学习的多任务学习 (MTL) 简介
多任务学习是深度学习的一个子领域。建议您熟悉神经网络的概念,以了解多任务学习的含义。
什么是多任务学习?
多任务学习是机器学习的一个子领域,旨在通过利用不同任务之间的相似性来同时解决多个不同的任务。这可以提高学习效率,也可以作为我们稍后讨论的正则化器。
形式上,如果有n 个任务(传统的深度学习方法旨在使用 1 个特定模型仅解决 1 个任务),其中这n 个任务或它们的子集彼此相关但不完全相同,多任务学习(MTL)通过使用所有 n 个任务中包含的知识,将有助于改进特定模型的学习。
多任务学习 (MTL) 背后的直觉:
通过使用深度学习模型,我们通常旨在学习输入数据的特征或属性的良好表示,以预测特定值。形式上,我们的目标是通过训练模型和微调超参数来优化特定函数,直到性能无法进一步提高。
通过使用 MTL,有可能通过强制模型在学习(更新其权重)时学习更通用的表示来进一步提高性能,而不仅仅是针对一项特定任务,而是针对一堆任务。
在生物学上,人类以同样的方式学习。如果我们学习多项相关任务而不是长时间专注于一项特定任务,我们会学得更好。
MTL 作为正则化器:
在机器学习的术语中,MTL 也可以被视为一种诱导偏见的方式。它是一种归纳转移的形式,使用多个任务会导致偏向于偏爱可以解释所有n 个任务的假设。
MTL 通过引入如上所述的归纳偏置来充当正则化器。它显着降低了过度拟合的风险,也降低了模型在训练期间适应随机噪声的能力。
现在,让我们讨论使用 MTL 的主要和流行的技术。
硬参数共享 –
一个公共隐藏层用于所有任务,但几个任务特定层在模型结束时保持不变。这种技术非常有用,因为通过一个公共隐藏层学习各种任务的表示,我们降低了过度拟合的风险。
软参数共享 –
每个模型都有自己的权重和偏差集,并且不同模型中这些参数之间的距离被正则化,使得参数变得相似并且可以代表所有任务。
假设和注意事项——使用 MTL 在任务之间共享知识只有在任务非常相似时才非常有用,但是当违反这个假设时,性能会显着下降。
应用:
MTL 技术已经找到了各种用途,其中一些主要应用是-
- 物体检测和面部识别
- 自动驾驶汽车:可以同时检测行人、停车标志和其他障碍物
- Web 应用程序的多域协同过滤
- 股票预测
- 语言建模和其他 NLP 应用程序
参考:多任务学习概述