序言
在人工智能的浩瀚星空中,深度学习作为一颗璀璨的明星,正引领着技术革命的新浪潮。随着数据量的爆炸性增长和计算能力的飞跃,深度学习模型在诸多领域展现出了前所未有的性能与潜力。而多任务学习(Multi-Task Learning, MTL),作为深度学习领域的一颗璀璨新星,更是为这一技术浪潮增添了新的活力与可能。多任务学习旨在通过同时优化多个相关任务来改进模型的学习效率和泛化能力,它巧妙地利用了任务间的共享信息和互补性,使得模型在解决复杂问题时能够展现出更加卓越的性能。
多任务学习
-
多任务学习(Multi-Task Learning, MTL)(Caruana, 1993) 是通过合并几个任务中的样例(可以视为对参数施加的软约束)来提高泛化的一种方式。额外的训练样本以同样的方式将模型的参数推向泛化更好的方向,当模型的一部分在任务之间共享时,模型的这一部分更多地被约束为良好的值(假设共享是合理的),往往能更好地泛化。
-
图例:多任务学习在深度学习框架中可以以多种方式进行,该图说明了任务共享相同输入但涉及不同目标随机变量的常见情况。
-
说明:
- 深度网络的较低层(无论是监督前馈的,还是包括向下箭头的生成组件)可以跨这样的任务共享,而任务特定的参数(分别于从 h ( 1 ) \boldsymbol{h}^{(1)} h(1)和 h ( 2 ) \boldsymbol{h}^{(2)} h(2)进入和发出的权重)可以在共享表示 h ( shared ) \boldsymbol{h}^{(\text{shared})} h(shared)之上学习。
- 这里的基本假设是存在解释输入 x \bold{x} x变化的共同因素池,而每个任务与这些因素的子集相关联。
- 额外假设顶层隐藏单元 h ( 1 ) \boldsymbol{h}^{(1)} h(1)和 h ( 2 ) \boldsymbol{h}^{(2)} h(2)专用于每个任务(分别预测 y ( 1 ) \bold{y}^{(1)} y(1)和 y ( 2 ) \bold{y}^{(2)} y(2)),而一些中间层表示 h ( shared ) \boldsymbol{h}^{(\text{shared})} h(shared)在所有任务之间共享。
- 在无监督学习情况下,一些顶层因素不与输出任务( h ( 3 ) \boldsymbol{h}^{(3)} h(3))的任意一个关联是有意义的:这些因素可以解释一些输入变化但与预测 y ( 1 ) \bold{y}^{(1)} y(1)和 y ( 2 ) \bold{y}^{(2)} y(2)不相关。
-
上图展示了多任务学习中非常普遍的一种形式,其中不同的监督任务(给定 x \bold{x} x预测 y ( i ) \bold{y}^{(i)} y(i)共享相同的输入 x \bold{x} x以及一些中间层表示 h ( shared ) \boldsymbol{h}^{(\text{shared})} h(shared),能学习共同的因素池。
-
该模型通常可以分为两个部分并相关参数:
- 具体任务的参数(只能从各自任务的样本中实现良好的泛化)。如上图中的上层。
- 所有任务共享的通用参数(从所有任务的汇集数据中获益)。上图中的下层。
-
因为共享参数,其统计强度可大大提高(共享参数的样本数量相对于单任务模式的增加的比例),能改善泛化和泛化误差(Baxter, 1995)。
-
当然,仅当不同的任务之间存在某些统计关系的假设是合理时才会发生,也就是意味着某些参数能通过不同任务共享。
-
从深度学习的观点看,底层的先验知识如下:能解释数据变化(在与之相关联的不同任务中观察到)的因素中,一些是跨两个或更多任务共享的。
总结
- 总而言之,多任务学习是深度学习中一种高效且强大的学习策略,它通过联合优化多个相关任务,不仅促进了知识在不同任务间的迁移与共享,还显著提升了模型的泛化能力和学习效率。
- 在实践中,多任务学习已被广泛应用于计算机视觉、自然语言处理、强化学习等多个领域,并取得了令人瞩目的成果。
- 未来,随着研究的不断深入和技术的持续进步,多任务学习有望在更多复杂场景和实际应用中发挥其独特优势,推动人工智能技术的进一步发展与应用。
往期内容回顾
深度网络现代实践 - 深度前馈网络之隐藏单元篇
应用数学与机器学习基础 - 无监督学习算法篇