手把手 | OpenAI开发可拓展元学习算法Reptile,能快速学习(附代码)

OpenAI开发的Reptile算法是一种元学习方法,旨在通过少量样本快速学习。该算法简单易操作,计算效率高,与MAML性能相当。Reptile适用于小样本分类任务,通过最大化不同小批量梯度的内积提高泛化能力。在Omniglot和Mini-ImageNet基准测试中展现出良好效果,且由于方差减小,收敛速度更快。
摘要由CSDN通过智能技术生成

这里写图片描述

大数据文摘作品

编译:Zoe Zuo、丁慧、Aileen

本文来自OpenAI博客,介绍一种新的元学习算法Retile。

在OpenAI, 我们开发了一种简易的元学习算法,称为Reptile。它通过对任务进行重复采样,利用随机梯度下降法,并将初始参数更新为在该任务上学习的最终参数。


其性能可以和MAML(model-agnostic meta-learning,由伯克利AI研究所研发的一种应用广泛的元学习算法)相媲美,操作简便且计算效率更高。


MAML元学习算法:

http://bair.berkeley.edu/blog/2017/07/18/learning-to-learn/


元学习是学习如何学习的过程。此算法接受大量各种的任务进行训练,每项任务都是一个学习问题,然后产生一个快速的学习器,并且能够通过少量的样本进行泛化。


一个深入研究的元学习问题是小样本分类(few-shot classification),其中每项任务都是一个分类问题,学习器在每个类别下只能看到1到5个输入-输出样本(input-output examples),然后就要给新输入的样本进行分类。


下面是应用了Reptile算法的单样本分类(1-shot classification)的互动演示,大家可以尝试一下。


尝试单击“Edit All”按钮,绘制三个不同的形状或符号,然后在右侧的输入区中绘制其中一个,并查看Reptile如何对它进行分类。前三张图是标记样本,每图定义一个类别。最后一张图代表未知样本,Reptile要输出此图属于每个类别的概率。


Reptile的工作原理


像MAML一样,Reptile试图初始化神经网络的参数,以便通过新任务产生的少量数据来对网络进行微调。


但是,当MAML借助梯度下降算法的计算图来展开和区分时,Reptile只是以标准方法在每个任务中执行随机梯度下降(stochastic gradient descent, SGD)算法,并不展开计算图或者计算二阶导数。这使得Reptile比MAML需要更少的计算和内存。示例代码如下:



初始化Φ,初始参数向量
对于迭代1,2,3……执行
        随机抽样任务T
        在任务T上执行k>1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值