week1 L1:Course introduction

  • 为什么需要多任务学习&元学习?(在我们业务中落地点)
    1. 需要更通用的模型:多语种翻译/图像任务/各种nlp任务(RL&robot=>RL=>ML)
    2. 没有大量数据:医学图像、机器人、稀有语言翻译
    3. 数据呈现长尾分布,长尾的数据得不到建模
    4. 快速学习,如新用户/新任务/新环境,不从头开始
  • 多任务的多体现在:
    • 不同的目标、人、物体、光线、词、语言等;不是局限的“任务”,很“宽泛”
  • 关键假设:不同任务共享一些结构
    • 如果假设不成立,使用单任务学习就好了
    • 好消息是很多任务底层是共享的,虽然你可能看起来不相关。
  • 不太严格的定义
    • 多任务:一起学比单独学习更快/更熟练;
    • 元学习:给定一些任务数据和经验,在新任务学的更快、更熟练
  • why now
    • 有需求-让更多领域可以使用/受惠deep learning
  • 学生提问

    • transfer learning与meta-learning/multi-learning的区别
      • transfer learning是一种学习方式;是从一份数据/经验迁移到另一个任务上,目标:避免从零开始
      • 可以说transfer learning囊括(encapsulate)了meta-learning/multi-learning
    • 单任务可以用meta-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(未展开)
    • 最优化:
      • 两次采样:先采任务,再采样本;多寡可根据实际情况变化
  • 挑战
    • 有时多任务带来负向效果(Negative transfer),为什么?
      • 优化器
        • 任务间干扰(一个没学好影响另一个)
        • 任务间学习率不同(一个已学好/样本量不均衡)
      • 表达能力受限
        • 理论上需要的参数量大于单任务
      • 如何解决任务间样本量不均衡
        • 采样
      • 少分享一点参数
        • 不一定二选一,可以是“软参数共享”:加上task参数的相似度限制,可以加在某些层或某几个任务上。
          • 在完全独立的网络上做软参数共享,类似于L2的约束让参数共享,但不强制
    • 过拟合:多分享一点参数
  • case study:youtube视频推荐的多任务学习(MMOE)
  • 迁移学习VS多任务学习VSfine-tuning
    • 迁移学习是多任务学习的最终解决方案,反过来不成立
    • 通过fine-tuning来迁移学习