Reptile原理以及代码详解

论文:2018-On First-Order Meta-Learning Algorithms

算法简介
MAML,FOMAML,reptile这些都是关于fewshot任务中参数初始化的问题,这些算法都是寻找一个模型合理的初始化参数,使模型能够较快的适应小样本数据,在新任务上也能有较好的表现。
MAML在论文中是二阶的,但是作者通过简化,推出了first-order MAML,(FOMAML),这个算法是一阶的,更方便实施。
reptile也是一个一阶的基于梯度的元学习算法。

伪代码
在这里插入图片描述
这个图很经典,但是要注意的是,我们k(对一个任务的更新次数)一般会大于2,大家可以想一下如果是1会变成什么样子。
对变成了,pretrained的样子。也就是对多个任务求最优(论文里的“联合训练”)。那就不行了,后面实验2能让你看见一步和多步的差距。
在这里插入图片描述
步骤:
1.初始化参数
2.开始循环迭代i =0,1,2…
3.采样一个meta batch,每个batch内有多个任务task
4.对于每一个task,根据迭代次数k采样出含k个batch的minibatch,
5.对minibatch内的每一个batch使用梯度下降法更新初始化参数,得到Ψ’
6.将每个task更新后的参数Ψ’与初始参数Ψ相减,将这个相减的结果经过某个映射(将这个差值看做某个梯度,加入到某种自适应的算法中)。在我们的实现中一般是(Ψ’-Ψ)/a,这个a我们一般设置为一个可以变的值。
7.回到2,继续,直到循环结束。
在这里插入图片描述
(后面放个代码详细介绍一下)

案例:一维sin函数回归问题

通过不同的a,b构造不同的sin函数,作为不同的task,采样(x,y)的点进行实验。

在这里插入图片描述
从左到右,依次为随机初始化网络和MAML、reptile算法给的初始化参数在迭代32次以后的结果。(迭代32次,MLp网络)
在这里插入图片描述

分析:为什么reptile可以?

方法1:泰勒级数展开
首先我们看一下参数更新的过程(以两步的SGD为例):
在这里插入图片描述

放几个定义,要仔细看gi和

  • 8
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
Reptile是一种元学习算法,它的名称来源于原论文中的一种玩笑说法,可能是为了找一个与爬行动物相关的名称而取得。Reptile算法的核心思想是在算法流程的第一步中进行多次更新,并在第三步使用差向量作为更新方向。可以将Reptile视为MAML(Model-Agnostic Meta-Learning)、模型预训练(model pre-training)和Reptile三者的梯度更新方向的综合。通过理解这些概念,我们可以更容易地理解Reptile元学习算法。 元学习是指学习如何学习的一种方法,也被称为learning to learn。元学习与传统的深度学习、终身学习(life-long learning)和迁移学习有所区别。终身学习的目标是通过学习一个模型来完成所有任务,而元学习是通过掌握其他任务的内在原理来举一反三。换句话说,元学习使我们能够快速学习新任务,就像一个程序员掌握了基本的编程语言后能够迅速掌握新的语言一样。元学习可以被看作是一种更接近人类学习方式的算法,即触类旁通、举一反三。与传统的深度学习方法相比,元学习算法可以节省算力和时间的消耗。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [深入浅出元学习-拆解MAML和Reptile算法「Meta-learning」「AI核心算法」](https://blog.csdn.net/u9Oo9xkM169LeLDR84/article/details/110211715)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值