视频来自 https://www.bilibili.com/video/BV15t4y127V1。视频于 12:25 正式开始。
简介和概览
本视频从 30:10 开始介绍多任务学习,之前都是在做简单的介绍。 首先如何定义任务(task)?给定数据集 \(\mathcal{D}\) 以及损失函数 \(\mathcal{L}\),然后使用它们训练模型 \(f_{\theta}\)。这是目前的简单定义,课程后期会更严谨地进行定义。 所以不同的任务会根据,1)不同的对象(different objects)比如一个任务是对猫分类,另一个任务是对杯子分类;2)不同的人(different people),对不同的人进行不同的预测;3)不同的目标(different objective)等进行变化。
批判性的假设
坏消息:不同的任务需要共享一些结构,如果你做不到这一点,那么你最好还是将它们拆开来,用原始的单任务学习方法。 好消息:许多任务都可以共享结构,即使它们在表面上看不出来可以共享结构,甚至可以是看起来毫无关联的任务。
非正式的问题定义
多任务学习问题:相比于独立地学习,学习所有的任务可以更快速以及更熟练。 元学习问题:给定先前任务上数据或者经验,在学习一个新任务时会更迅速并且/或者更熟练。 之后的课程会更形式化地进行定义。 视频中(38:00)的观点,transfer learning 更像是 multi-task learning 和 meta learning 的结合版。 视频中还有一个观点,多任务学习难道不是就是一个单任务学习吗?我们把所有的数据集拼接在一起 \(\mathcal{D} = \sum \mathcal{D}_i\),不就只剩一个数据集了?然后将所有的损失函数求和 \(\mathcal{L} = \sum \mathcal{L_i}\),不就是一个损失函数了? 结论是这是可行的!但是我们可以做得更好。
为什么要在现在研究多任务学习?
事实上 20 多年前就有人在研究了,1997 Caruana 提出了 Multitask Learning。事实上,早在 1992 年,Bengio 就提出了一种类似的思想。
多任务学习和元学习基础
- Concatenation-based conditioning
- Addive conditioning
- Multi-head architecture
- Multiplicative conditioning
- More complex choice...