元学习MAML算法详解

Meta learning

Meta learning 基本定义

元学习:又称“学习如何学习”,就像我们人类学习新知识往往从以往得经验出发而很少从头开始一样,元学习以一种系统得、数据驱动得方式从先前得经验中学习,是一个可用于描述所以基于其他先前任务经验来学习的方法的概念。学习学习的方法

元学习MAML算法详解_第1张图片

元学习MAML算法详解_第2张图片

元学习MAML算法详解_第3张图片

元学习MAML算法详解_第4张图片

元学习MAML算法详解_第5张图片

MAML and Model Pre-training

区别:
MAML:MAML的loss是训练后的结果在评估模型上计算得到
Pre-training:loss在预训练上的模型上计算的

元学习MAML算法详解_第6张图片

为了进一步区分两者,MAML在意训练后KaTeX parse error: Undefined control sequence: \thea at position 6: \hat{\̲t̲h̲e̲a̲}^{n}表现得好,如图处,对task1和task2都下降很快
MAML:

  • MAML注重找到一个任务最优点,对于所有的任务都能较快收敛,关注于潜力都不关注于此时任务上的收敛情况

  • 在MAML中找到的 ϕ \phi ϕ在task1上不是全局最优解,但是他在两个任务上都下降很快
    Pre-training:

  • 预训练在训练任务上找最优,收敛

  • 在Pre-training在task1上找到全局最优作为初始值可能就在task2上陷入局部最优

元学习MAML算法详解_第7张图片

在图中Model Pre-training在所有task上都最好
元学习MAML算法详解_第8张图片
两者就像刚毕业学生一样,Model Pre-training就是直接毕业工作拿工资,对于当前是很好,MAML相当于去读博,有了高学历对于以后发展会很好。

元学习MAML算法详解_第9张图片

Example

元学习MAML算法详解_第10张图片
可以看到

  • Model Pre-training,学习到的网络初始参数预测出来的是绿色曲线,找到不同的sin函数上都好的,而不同sin函数叠加起来波峰与波谷抵消,为了使每个任务上都好最后得到一条近乎水平的线,所以用transfering learning在新任务上用这几个点迭代几次依然不好
  • 而MAML学习到了初始参数预测有一些波动,在经过几个训练点上几次迭代很快就能拟合到橙色曲线。
    元学习MAML算法详解_第11张图片
    https://towardsdatascience.com/paper-repro-deep-metalearning-using-maml-and-reptile-fd1df1cc81b0

Two way one shot

理论证明

元学习MAML算法详解_第12张图片
算法分析

  • 给定task分布,由于MAML执行两次梯度更新,所以可以设置两个学习率
  • 第一步随机初始化参数
  • 2,相当于epocjh
  • 3,采batch task
  • 4-7在采的task上计算梯度
  • 8在第一次所有采样任务上再算一次梯度,然后将梯度方向作用于 θ \theta θ

元学习MAML算法详解_第13张图片

元学习MAML算法详解_第14张图片

元学习MAML算法详解_第15张图片
元学习MAML算法详解_第16张图片

Reptile

元学习MAML算法详解_第17张图片

元学习MAML算法详解_第18张图片

元学习MAML算法详解_第19张图片

元学习应用

元学习MAML算法详解_第20张图片

迁移学习其实也可以算元学习的一种,但是更多关注于两个相似模型上的关联性,其原理更多偏向于预训练,而不是元学习的典型算法MAML,迁移学习可以称为单独的一种学习方式

变形

元学习MAML算法详解_第21张图片

问题

解决
元学习MAML算法详解_第22张图片

元学习MAML算法详解_第23张图片

你可能感兴趣的:(深度学习,机器学习)