元学习简单总结

输入输出

输入:很多训练任务以及任务对应的训练数据
输出:F,F用于输出最终测试用的f

数据集

training set, support set, testing set
support set 和 testing set 标签相同
将training set进一步分为 support set (sample set) 和 testing set (query set)

构建任务

  • N-ways K-shot:类别数叫做ways;每个类别下的样本数叫做shot
  • 根据一个数据集可以构建很多 N-ways K-shot 任务,作为元学习的输入(任务、数据)来源。
  • 构建的任务分为训练任务 (train task)、测试任务 (test task);每个任务包含训练数据(support set,SS)、测试数据 (query set,QS)

MAML

Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks,uc berkeley和OPAI 2017年提出

MAML (model-agnostic meta-learning,模型无关的元学习)

  • 目的:学到一组好的模型初始化参数(让模型自己学会初始化),这组参数称为 先验知识。目标使得 这个先验知识 在新的NK任务上表现得更好。
  • 流程:
  1. 从训练集中采样,产生训练任务和测试任务。需要N个训练任务,以及每个任务对应的SS和QS;再准备几个测试任务,用于评估ML学到的参数效果。
  2. 定义网络结构。初始化meta网络(初始化参数为 θ 0 \theta_0 θ0),meta网络存储 先验知识, 最终用于测试。meta网络结构和子任务网络结构必须相同。
  3. 预训练循环:
    a) 采样一个训练任务A(或几个训练任务),将 θ 0 \theta_0 θ0赋给子任务A的网络
    b) 使用A的 SS和学习率训练1次(优化一次),更新A的参数,基于优化后的A,使用A的QS计算loss,计算loss对更新后的参数的梯度
    c) 用上述梯度乘以meta-网络学习率,更新 θ 0 \theta_0 θ0 θ 1 \theta_1 θ1 (meta网络梯度方向和子任务网络梯度方向一致,如果有多个子任务,则mata-网络梯度为所有子任务梯度之和)
    d) 采样另一个任务B,将 θ 1 \theta_1 θ1赋给B的网络,优化一次,更新B的参数,基于优化后的B,使用B的QS计算B的loss,计算loss对更新后的参数的梯度
    e)用上述该梯度乘以meta-网络学习率,更新 θ 1 \theta_1 θ1 θ 2 \theta_2 θ2
    f) 在训练集上,重复上述a) - e)的过程
  4. 通过3. 预训练得到meta网络参数,在测试任务中,使用测试任务的SS 对meta网络finetune;最终使用测试任务的QS进行测试

meta-learning (ML) 和 迁移学习的区别

  • ML 输入是训练数据和任务,不只是数据
  • ML 梯度更新是根据 更新后的 子任务网络在QS上的loss对其 更新后的 参数的梯度进行,而不是直接使用子任务网络更新后的参数,或者直接使用子任务网络在其SS上的梯度。迁移学习是直接使用子任务的梯度来更新
  • 迁移学习最小化的是当前模型在所有任务或当前任务上的loss;ML最小化的是更新后的子任务网络在其QS上的loss。更关注 更新后的参数在 新的测试集(未来)的潜力 【不太理解】

问题

  1. 为什么子任务只更新一次?
  • 子任务比较多,只更新一次训练比较快
  • MAML的目标是希望得到的meta网络参数在遇到新的测试任务时,fine tune一下,效果好。如果只更新一次,就可以在新任务上有很好的表现,这个目标正好符合meta网络的训练目标
  • 最终meta网络应用到具体任务时,也可以finetune多次。至于训练时子任务的更新次数,可以根据子任务对meta网络的影响程度(重要程度)决定,比如重要的子任务可以设置它更新多次。
  • few shot learning中训练数据较少的原因

Reptile

On First-Order Meta-Learning Algorithms,也叫 Reptile: A Scalable Meta-Learning Algorithm,2018, OpenAI提出

与MAML的不同之处

  1. 子任务训练多次
  2. meta网络更新时,不计算梯度,直接参数 ϵ \epsilon ϵ 乘以 meta网络和子任务网络参数的差 来更新meta网络,计算速度提升
  3. 效果与MAML持平

其他 元学习

  1. 上述方法是为了帮助确定meta网络的参数,其他帮助确定meta网络的结构的元学习
  2. 元学习 和 AutoML,迁移学习(Transfer Learning)和终身学习(Life Long Learning)的区别

https://zhuanlan.zhihu.com/p/136975128

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值