WDK李宏毅学习笔记第十八周01_Meta learning-MAML and Gradient descent as LSTM

Meta learning-MAML and Gradient descent as LSTM


摘要

本章要讲的是Meta learning,MAML及 Gradient descent as LSTM。Meta learning是让机器能够在学习中进步,使得自己的学习能力越来越强。MAML是找最好的初始化参数的方法。Gradient descent as LSTM是LSTM向着MAML的变形,也是用来找最好的初始化参数的。

1、Meta learning

1.1 Meta learning是什么

Meta learning是让机器学习如何去学习,让机器可以从以往的学习中找到学习的经验,使得机器学习能力越来越强。
在这里插入图片描述
以下图猫狗辨识为例,Meta learning是输入资料,输出F,F可以找到一个Function f,f可以完成猫狗辨别的任务。
在这里插入图片描述

1.2 Meta Learning架构

首先设计一个Network Structure架构,用一个合适的方法对模型参数初始化,根据训练资料和初始化参数计算Gradient,再更新参数,反复多次,直至找到最佳的参数值。
在这里插入图片描述
显然,Meta Learning中最重要的就是Network Structure的设计,也就是Learning Algorithm的设计。

1.3 如何评价Learning Algorithm

让其去完成多个任务,得到完成每个任务后的loss值,用loss值的和,用来评估该Learning Algorithm的好坏。
在这里插入图片描述
有一个叫Ominglot的数据集是专门用来评价Mate learning的t的好坏的。
在这里插入图片描述

2、Meta learning最近的技巧

2.1 MAML

MAML是用来找最好的初始化参数的,它是以初始化参数Φ作为训练目标来训练model的。
在这里插入图片描述
具体点说,我们找的初始化参数Φ是希望它经过训练后能找到最小的loss值点,MAML并不在意初始化参数Φ在训练前的表现,所以MAML认为最好的点是下图所示的点。
在这里插入图片描述
而Model Pre-training不同,它在意的是初始化参数Φ在训练前的表现,它需要找的是能让loss值在训练前最好的初始化参数Φ。所以Model Pre-training认为最好的点是下图所示的点。
在这里插入图片描述
MAML在实做时,为了缩短训练时间,通常用只更新一次得到的Loss值代替完全训练好的模型的loss值。
在这里插入图片描述

2.2 MAML-Real Implementation

在更新初始化参数时,取第二次的导数来更新初始化参数的值。在这里插入图片描述
而Model Pre-training是直接将每次的导数都用在初始化参数的更新上。
在这里插入图片描述

2.3 Reptile

Reptile是更新很多次参数得到θm,然后将初始化参数直接向着θm的方向进行更新。
在这里插入图片描述
对三者进行比较可以发现,Pre-train的结果是比较烂的,MAML是最好的,Reptile随着训练次数的增加,慢慢逼近于MAML。
在这里插入图片描述

3、Gradient Descent as LSTM

在这里插入图片描述
上图是MAML,与下图的RNN做对比,可以发现两者其实是很像的。
在这里插入图片描述
现在用的一般都是RNN的变形LSTM。
在这里插入图片描述
于是写出LSTM的公式,与MAML做比较,可以观察到两个公式是有相似的地方的,再以此对LSTM进行变形,希望它和MAML公式一样。
在这里插入图片描述

  1. 将Ct和Ct-1当作θt和θt-1。
  2. 将ht-1和Xt换成Gradient -▽θL。
  3. 让Z就是Gradient-▽θL。
  4. 让Zf永远都是1。
  5. 让Zi是η。
    经过以上变形,得到下图所示的LSTM,此时的LSTM和MAML就是一样的了。
    在这里插入图片描述
    因为Zf代表的是记忆功能,Zi代表的是学习速率,若它们的值是固定的,那么在处理问题时就无法随机应变,就显得不够智能,如果让机器自己学到根据不同实际情况取不同的Zf和Zi的值,这样就更有效更智能了。有一个常用的办法是将θt-1得到的loss值作为Other输入,于是最终的model(LSTM for Gradient Descent)就变成了下图所示:
    在这里插入图片描述
    LSTM for Gradient Descent和一般的LSTM比较可以发现,它们的区别在于前者的θ会作为输入影响Gradient。
    在这里插入图片描述
    在实做上,为了减少运算量,我们只用一个LSTM进行训练,所有的参数都是共用同一个LSTM。
    在这里插入图片描述

方法

  1. Meta learning的做法是设计一个Network Structure,这个Network Structure是复杂的神经网络,让其完成多个训练任务,当它遇到与曾经训练过的任务类似的任务时,它会凭借还保留在神经网络里的一部分参数,快速找到完整的参数,以此提高效率。
  2. MAML的model架构和Meta learning是相同的,它们的区别是MAML是以找到最好的初始化参数Φ作为训练目标,所以在训练过程中,每训练一次得到的loss,需要对Φ求导,再向梯度方向改变Φ,循环往复,直至求得最好的Φ。
  3. Gradient descent as LSTM它的目的和MAML是一样的,都是为了找到最好的初始化参数,不过前者是在对LSTM向着MAML的方向进行的变形。

结论与展望

Meta learning为什么能够做到让机器能够从学习中进步,提高学习效率?我认为是因为Meta learning每完成一个任务,都会记下该任务的一部分参数,当再次遇到类似的问题时,会调用这一部分参数作为初始化参数,这样就会缩短训练时间并一定程度的提高了准确率。但是该方法存在明显的问题,就是当Meta learning的Network Structure太简单或者训练任务太多时,最开始完成的任务留在神经网络的参数会被后面任务的参数覆盖,导致最开始完成的任务被machine遗忘,这个问题还尚待解决。 Meta learning在实做中,还需要和MAML一起用,在Meta learning完成任务的同时MAML找到最好的初始化参数,这样Model学习能力的提升才比较明显

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值