week1 L1:Course introduction
- 为什么需要多任务学习&元学习?(在我们业务中落地点)
- 需要更通用的模型:多语种翻译/图像任务/各种nlp任务(RL&robot=>RL=>ML)
- 没有大量数据:医学图像、机器人、稀有语言翻译
- 数据呈现长尾分布,长尾的数据得不到建模
- 快速学习,如新用户/新任务/新环境,不从头开始
- 多任务的多体现在:
- 不同的目标、人、物体、光线、词、语言等;不是局限的“任务”,很“宽泛”
- 关键假设:不同任务共享一些结构
- 如果假设不成立,使用单任务学习就好了
- 好消息是很多任务底层是共享的,虽然你可能看起来不相关。
- 不太严格的定义
- 多任务:一起学比单独学习更快/更熟练;
- 元学习:给定一些任务数据和经验,在新任务学的更快、更熟练
- why now
- 有需求-让更多领域可以使用/受惠deep learning
学生提问
- transfer learning与meta-learning/multi-learning的区别
- transfer learning是一种学习方式;是从一份数据/经验迁移到另一个任务上,目标:避免从零开始
- 可以说transfer learning囊括(encapsulate)了meta-learning/multi-learning
- 单任务可以用meta-learning吗
- 可以,切分成多个子任务
week1 L2:Supervised multi-task learning, transfer learning
- 可以,切分成多个子任务
- transfer learning与meta-learning/multi-learning的区别
概览
- 多任务
- models & training
- challenges
- case study of real-world multi-task learning
- 元学习
- Porblem formualtion
- General recipe of meta-learning algorithms
- Black-box adaptation approaches
- 多任务
怎么定义task:损失函数&input_x分布&P(y/x)三者有不同
- 多任务学习:损失函数一样;另两者不同
- 多标签学习:损失函数、目标函数也一样,p(y/x)不同
- 也可以各任务定义自己的loss function
- task Z_i嵌入方式
- Z_i设置的位置影响共享参数的多寡,两个极端
- 两种视角
- 多任务学习中的model/objective/Optimization
- model(连接方式)
- add/concat/multi-head/Multiplicative
- Multiplicative好一些:表达能力强/可泛化成“独立头”和“独立网络”
- 更多结构:与任务相关/靠直觉和经验/无科学依据(未展开)
- 目标函数:
- 权重连接各目标:人工置顶+动态调整;回归问题label归一化
- 问题:任务冲突/权重自动学习/差任务优化/任务间梯度norm(未展开)
- 最优化:
- 两次采样:先采任务,再采样本;多寡可根据实际情况变化
- model(连接方式)
- 挑战
- 有时多任务带来负向效果(Negative transfer),为什么?
- 优化器
- 任务间干扰(一个没学好影响另一个)
- 任务间学习率不同(一个已学好/样本量不均衡)
- 表达能力受限
- 理论上需要的参数量大于单任务
- 如何解决任务间样本量不均衡
- 采样
- 少分享一点参数
- 不一定二选一,可以是“软参数共享”:加上task参数的相似度限制,可以加在某些层或某几个任务上。
- 在完全独立的网络上做软参数共享,类似于L2的约束让参数共享,但不强制
- 不一定二选一,可以是“软参数共享”:加上task参数的相似度限制,可以加在某些层或某几个任务上。
- 优化器
- 过拟合:多分享一点参数
- 有时多任务带来负向效果(Negative transfer),为什么?
- case study:youtube视频推荐的多任务学习(MMOE)
- 迁移学习VS多任务学习VSfine-tuning