多余的元学习废话也不多说,直接上干货:

算法:

关于学习率:
两个学习率a、b,要知道,为了一步优化探测task最优参数的位置(inner loop),我们必须使用稍微大点的学习率a,这叫一步到位。
而优化你真正模型参数的学习率应该是很小的(outer loop),因为他必须在参数空间中经过漫长的迭代,慢慢找到最合适的位置。

关于损失函数:分类交叉熵,回归MSE

关于1阶和2阶的MAML:
首先,Nway K shot ,support set 和query set的知识就不介绍了。

看这个图,训练的过程中,在每一个task中(上面算法中的4-6),我们在support set 上由g1得到θm,在query set 上由θm得到loss,如果一个meta_batch(内循环)里面有多个task,我们是需要将这些task的loss求和,然后在外循环中更新模型参数(就是上面算法的第8步),此时φ0变为了φ1,然后一步一步走外循环的迭代。这是正向。

那求梯度呢?L1’(φ1) =L1’(φ0) * (φ1/φ0)’ ,这个两个导数相乘的就是2-order,而近似以后的L1’(φ0)就是1-order.
作者通过理论推导,证明了两种方法理论差距不是很大,但是1-order会快很多。

关于算法理解
一、 为什么我们要在训练集上更新一次参数,然后测试集的损失值传回外循环,进行下一步的更新?

1.如果只在训练集上更新损失值,那么无法合理利用测试集,相当于pretraining预训练。如果此时你直接反传,继续优化,你的model参数就沿着这个专一的任务越走越远了。
2.训练集数量较少,用于传损失值不具有参考性。(N way K shot 只约束了训练集的数量,并没有约束测试集的数量,按理说测试集的数量增加,对模型的性能会越好。)
3.在训练集上更新参数,其实是可以更新很多次的,但是为了简化运算量,因此我们只更新了一次。我们在训练集上更新一次参数,然后将测试集上的损失值传回,是因为我们要找的并不是使当前模型最优的参数,而是在进行梯度更新以后能够收敛到最优损失值的参数。即算法要根据训练集产生一个可以很好适应测试集的agent,这样经过多个任务的训练之后也就学会了快速学习的方法。


MAML的优点:
可用于小样本学习,快速适应
可以用于回归、分类和增强学习多种任务上。
MAML的缺点:
1.模型结构是固定的,在算法中,模型的图像输入尺寸也是一定的,因此泛化性不好。
2.任务可以不同,但是需要有一定的相关性
3.二次梯度可能不稳定
4. Robustness一般:不是说MAML的robustness不好,因为也是由一阶online的优化方法SGD求解出来的,会相对找到一个flatten minima location。然而这和非gradient-based meta learning方法求解出来的model的robust肯定是没法比的。

关于MAML的那些事相关推荐

  1. 遇事不责怪别人,换位思考能成全更好的自己

    在生活中,有时候有些人做的某些事可能会让你感觉不爽:这时,你最好不要急着去责怪他:试着把自己放在对方的处境,看看别人的生活,你才能看到人间百态,理解他人的难处. 每个人的生长环境不同,心境就不同:有些 ...

  2. 力所能及的做些自己喜欢和有趣的事

    我们每个人都有自己喜欢做的事:在自己可控且力所能及的情况下,在闲时,按自己的意愿去做些自己喜欢和有趣的事,会感觉到这事很有意义.在忙时,要为理想和奋斗而忙:不浪费时间在无意义的事和人身上. 朋友要的是 ...

  3. 不要纠结于过去发生的事

    在这个社会中,有些人很早就经历了一些不好的事,遇到不好的人:让他留了一些阴影.这时,应该学会不要纠结于过去发生的事情了!一件事情已经发生了,不管再怎么后悔也不能改变结局: 对这件事一直有懊悔之心,只会 ...

  4. 【运维学习笔记】生命不息,搞事开始。。。

    001生命不息,搞事不止!!! 这段时间和hexesdesu搞了很多事情! 之前是机械硬盘和固态硬盘的测速,我就在那默默的看着他一个硬盘一个机械测来测去. 坐在他后面,每天都能看到这位萌萌的小男孩,各 ...

  5. 保护嵌入式802.11 Wi-Fi设备时需要考虑的10件事

    保护嵌入式802.11 Wi-Fi设备时需要考虑的10件事 10 things to consider when securing an embedded 802.11 Wi-Fi device 随着 ...

  6. Python爬虫实战糗事百科实例

    爬取糗事百科段子,假设页面的URL是 http://www.qiushibaike.com/8hr/page/1 要求: 使用requests获取页面信息,用XPath / re 做数据提取 获取每个 ...

  7. 关于.NET玩爬虫这些事 【初码干货】

    这几天在微信群里又聊到.NET可以救中国但是案例太少不深的问题,我说.NET玩爬虫简直就是宇宙第一,于是大神朱永光说,你为何不来写一篇总结一下? 那么今天就全面的来总结一下,在.NET生态下,如何玩爬 ...

  8. 《创业维艰分享之五》所有得,有所乐,日事日清,循序渐进。

    这两个月公司连续做了两个大客户紧接着发布新版本再然后又是连续五个小版本迭代计划. 每天16小时的超强度工作,我已经看到兄弟的脸上都写着一个字:累! 我自己又何尝不是,既是客服,又是程序员,还必须是行政 ...

  9. 计算机改变了我们的生活英语作文带翻译,一件事改变了我的生活的英语作文,带翻译,求帮忙,最好是符合初中三年级的英语作文...

    满意答案 niqwe0j8 2020.03.21 采纳率:44%    等级:7 已帮助:57人 One thing that changed my life completely was that ...

最新文章

  1. docker load 出错 open /var/lib/docker/tmp/docker-import-837327978/bin/json: no such file or directory
  2. matlab 打开txt文件窗口,Matlab读取txt文件、xlsx文件
  3. Linux Socket编程(不限Linux)
  4. 布局文件中fill_parent、match_parent和wrap_content有什么区别?
  5. Linux高级文本处理之sed(三)
  6. php5.2 zengd,大对杀狗狗再犯低级错误 ZEN狂输200目笑翻棋友
  7. ASP.NET MEMBERSHIP的XML配置
  8. VDI序曲二十七 IE7,IE8,IE9应用程序虚拟化
  9. matlab 功率谱密度 汉宁窗_[振动与测试 2] 什么是PSD(功率谱密度)
  10. docker~学习笔记索引
  11. 微博上一些有用的话(二)
  12. 使用REG注册表文件添加、修改或删除注册表键值和子项介绍
  13. Android 上 Https 双向通信— 深入理解KeyManager 和 TrustManagers
  14. 简单制作一个百度注册页面
  15. 【AnimeJs】——仿Animejs徒手实现SVG动画
  16. 【Java基础】Java开发环境搭建并编写第一个入门程序HelloWorld
  17. 从创建服务器到搭建一台内网穿透服务器
  18. Hibernate第四篇【集合映射、一对多和多对一】
  19. 翌加:抖音小店可以绑定几个抖音号
  20. 在 Jenkins 上轻松重用 Tekton 和 Jenkins X

热门文章

  1. StringBuilder笔记
  2. java学生成绩管理系统设计的个人体会
  3. [BZOJ3197][Sdoi2013]assassin(树形DP+树同构+二分图最优匹配)
  4. rabbitmq 学习 之 心跳检测(13)
  5. VC游戏开发-图片镂空
  6. 读书、听评书、看电视的些许区别
  7. 刷题记录:牛客NC200211装备合成
  8. 【国产虚拟仪器】基于dsp+fpga+AD+ENDAC的半导体运动台高速数据采集电路仿真设计(四)
  9. PTA L1-045:宇宙无敌打招呼 (python)
  10. ThinkPHP 5.1商城系统,电脑端+手机H5+微商城+小程序+买家端APP+卖家端APP+源码IM客服系统+线下收银系统