写点什么

从 OpenAI 的魔方机械手,看元学习的崛起

2019 年 10 月 23 日

从OpenAI的魔方机械手,看元学习的崛起


元学习(Meta-Learning)描述了设计与训练深度神经网络有关的更高级别组件的抽象。 当涉及神经网络架构的自动化设计时,元学习这个术语常常出现引用“自动机器学习(AutoML)”、“小样本学习(Few-Shot Learning)”或“神经网络架构搜索(Neural Architecture Search)” 的深度学习文献中。源于如《学习通过梯度下降法来梯度下降地学习(Learning to learn by gradient descent by gradient descent)”等戏剧化命名的论文,OpenAI 的魔方机械手的成功证明了该想法的成熟。元学习是推动最先进的深度学习和人工智能最有希望的范式。


通过展示经过强化学习(Reinforcement Learning)训练的机械手突破性的能力,OpenAI 燃爆了 AI 世界。这一成功建立在一个非常类似的研究的基础上,2018 年 7 月发表的该研究让一只机械手在一个匹配视觉提示的配置中定向一个块。从块定向到解决魔方问题的演变是通过元学习算法控制训练数据在模拟中的分布,即自动域随机化(Automatic Domain Randomization,简称 ADR) 推动的。


域随机化( Domain Randomization)—— 数据增强(Data Augmentation)

域随机化是为 Sim2Real 迁移解决数据增强问题的算法。函数逼近(和深度学习)的核心功能是把从训练中所学到的推广到从未见过的测试数据。尽管对于几乎没有明显的对抗性噪声的注入,不会像误分类那样令人惊讶,但是,如果没有进行特别的修改,那么,深度卷积神经网络就不会将模拟图像上的训练(如左下方所示)推广到真实视觉数据(如右下图所示)。



《用机械手解决魔方问题》 作者:Ilge Akkaya,Marcin Andrychowicz,Maciek Chociej,Mateusz Litwin,Bob McGrew,Arthur Petron,Alex Paino,Matthias Plappert,Glenn Powell,Raphael Ribas,Jonas Schneider,Nikolas Tezak,Jerry Tworek,Peter Welinder,Lilian Weng,Qiming Yuan,Wojciech Zaremba,Lei Zhang


当然,有两种方法可以使模拟的和真实的数据分布保持一致。一种这样的方法是由苹果公司的研究人员开发的,称为 SimGAN。SimGAN 使用对抗损失来训练生成式对抗网络(Generative Adversarial Network)的生成器,以让模拟图像看起来尽可能逼真,由鉴别器把图像归类为真实或模拟的数据集。该研究在人眼注视估计和手势估计方面获得了积极的成果。另一种方法是让模拟数据尽可能多样化,尽可能地与真实性相反。


后一种方法被称为域随机化。下图来自 2017 年 Tobin 等人的论文,它很好地阐述了这个想法:



《把深度神经网络从模拟环境迁移到真实世界的域随机化》作者:Josh Tobin、Rachel Fong、Alex Ray、 Jonas Schneider、 Wojciech Zaremba、Pieter Abbeel


域随机化似乎是弥合 Sim2Real 差距的关键,它允许深度神经网络在模拟数据上训练后,推广到真实数据。 不像大多数算法,域随机化带有很多需要调整的参数。下图显示了在块的颜色、环境的光线和影子的大小等等上的随机化。每个随机化环境的功能都具有一个有下界到上界的区间和某种采样分布。比如,在随机环境中采样时,该环境有非常明亮的光线的概率是多少?


在 OpenAI 最初的 Dactyl 研究中,通过机械手实现了块定向,在实验前,对域随机化数据课程进行手工编码。该域随机化超越了视觉世界,使物理模拟器中的组件随机化,以形成一个策略,使机械手可以灵活准确地移动。与视觉随机化想法类似,这些物理随机化包括维度,如立方体的大小/质量以及机械手的手指的摩擦等等(更多细节请参看《用机械手解决魔方问题》一文的附录B)。


从 Dactyl 到魔方求解器(Rubik’s Cube solver)的关键是,域随机化是一门课程,它定义了随机化的强度是自动的,而不是手动设计的,ADR 算法中的这几行明确定义了这一点:



图像来自《用机械手解决魔方问题》。如果代理的性能超过了参数性能阈值,那么,随机化的强度会提高(由带有 phi 定义环境参数分布的 delta 给出)


自行设计数据的 AI

自行设计数据的 AI 的最佳示例之一是配对开放式开拓者算法(Paired Open-Ended Trailblazer,简称 POET)算法,该算法由 Uber AI 实验室的研究人员开发。



《配对开放式开拓者算法(Paired Open-Ended Trailblazer,简称 POET):无休止地生成日益复杂和多样化的学习环境及其解决方案》,作者:Rui Wang、Joel Lehman、 Jeff Clune、Kenneth O. Stanley


POET 通过同时优化代理和步行学习环境,来训练双足步行代理。POET 与 OpenAI 的魔方求解器的不同在于,其使用进化算法,维持步行者的群体和环境。拥有代理的群体和环境的结构是在该研究中构建复杂演变的关键。尽管使用强化学习来训练单个代理,而基于群体的学习适应一组代理,但是,POET 和自动域随机化是非常类似的。它们都以自动化的方式开发了一系列越来越具有挑战性的训练数据集。Bipedal 的步行环境不会作为人工编码的功能而改变,而是作为步行者群体在不同环境中表现的结果,在需要加大地形挑战的时候给出信号。


数据或模型?

元学习的研究常常把重点放在数据和模型架构上,但有例外,如元学习优化器,它似乎仍然在模型优化的范畴内。在如自动域随机化等数据领域中的元学习已经以数据增强的形式进行了大量的研究。


尽管我们已经看到物理数据如何能被增强和随机化,但是,在图像数据上下文中,数据增强是最容易理解的。这些图像增强特别包含水平翻转和小幅度的旋转或平移。这种增强在任何计算机视觉管道(如图像分类、对象检测或超分辨率)中都是典型的。


课程学习(Curriculum Learning)是另一种数据级别的优化,其涉及数据呈现给学习模型的顺序。比如,在引入像 23 = 8 这种更难的想法之前,我们从 2 + 2 = 4 这个简单例子开始。课程学习的元学习控制器根据感知到的难易程度以及数据应该被呈现的顺序,来查看数据的排序。在 ICML 2019 大会上,Hacohen 和 Weinshall 展示了他们最近的研究,他们用这个(如下图所示)取得了有趣的成果。



Guy Hacohen 和 Daphan Weinshall 合著的《论课程学习在训练深度网络中的力量》。在最左侧的灰色条是 Vanilla SGD 数据选择,它比课程学习方法好。


神经架构搜索或者元学习模型常常受到比数据级优化更多的关注。这主要由深度学习研究中的趋势驱动的。把基础 AlexNet 架构扩展到 ResNet 架构带来很明显的性能优势,AlexNet 架构是大型 GPU 计算的大数据集上训练的深度卷积网络的先驱。RetNet 用人工设计(如 DenseNet)进行了进一步的扩展,然后被元学习技术(如 AmoebaNet 和 EfficientNet)超越了。可以在paperswithcode.com上找到图像分类基准进展的时间线。


元学习神经架构试图描述一个可能的架构空间,然后,根据一个或多个客观指标来寻找最佳架构。


高级元学习者

神经架构搜索已经应用了范围广泛的算法,用于搜索架构、随机搜索(Random Search)、网格搜索(Grid Search)、贝叶斯优化(Bayesian Optimization)、神经进化(Neuro-evolution)、强化学习(Reinforcement Learning)以及可微搜索(Differentiable Search)。与 OpenAI 的自动域随机化中显示的技术相比,这些搜索算法都相对复杂。看起来,自动域随机化的想法可以用高级搜索算法进行改善,如,像基于人口的搜索已经被加州大学伯克利分校的研究人员或谷歌的 AutoAugment 证明数据增强(Data Augmentation)有用。


元学习的表现力如何?

常用于解决神经架构搜索的元学习的限制之一是搜索空间的局限性。神经架构搜索初始于一个可能架构的人工设计的编码。该人工编码自然地限制了搜索可能的发现。然而,让搜索完全可计算,必须进行权衡。


当前的架构搜索把神经架构视为有向无环图(Directed Acyclic Graphs,简称 DAGs),并试图优化节点之间的连接。Gaier 和 Ha 合著的论文《权重不可知神经网络(Weight Agnostic Neural Networks)》以及 Xie 等人合著的论文《探索图像识别的随机有线神经网络(Exploring Randomly Wired Neural Networks for Image Recognition)》等都表明,构建 DAG 神经架构是复杂的,并且不好理解。


一个有趣的问题是,神经架构搜索何时能够优化在节点上的操作、节点之间的连接,然后可以自由地发现新的激活函数、优化器或像批量归一化(Batch Normalization)这样的归一化技术。


思考元学习控制器的抽象程度是很有趣的。比如,OpenAI 的魔方求解器本质上有 3 个“智能”组件,分别是符合魔方求解器、视觉模型和用来操控机械手的控制器网络。元学习控制器是否足够聪明,能理解这种模块化并设计介于符号和深度学习系统(最近由 Gary Marcus 倡导的)之间的混合系统?


元学习数据强化也很受约束。大多数数据强化搜索(甚至自动域随机化)都被约束于元学习控制器可用的一组转换中。这些转换可能包括像图像的亮度或模拟中阴影的强度。提高数据强化自由度的一个有趣的机会是把这些控制器和能够探索每个独特数据点的生成模型结合起来。这些生成模型可以设计狗和猫的新图像,而不是旋转现有的图像或让图像变暗/变亮。尽管非常有趣,但是,它似乎不像当前最先进的生成模型(如 BigGAN 或 VQ-VAE-2),可用于 ImageNet 分类的数据增强。


迁移和元学习

“元学习”常常用于描述迁移和小样本学习的能力,与“自动机器学习”用于描述模型或数据集的优化方式不同。这种定义与用自动域随机化解决的 Sim2Real 的域适应性任务是一致的。然而,这个定义还描述了像从 ImageNet 分类到识别钢材缺陷的迁移的学习。



魔方求解器的一个有趣结果是具有适应扰动的能力。比如,尽管在机械手上套上了橡胶手套、把手指绑在一起、完全遮挡魔方(视觉模型必须完全受损,因此,传感必须由 Giiker 魔方传感器完成),该求解器仍然能够持续地工作。这种迁移元学习(Transfer Meta-Learning)是策略网络中用于训练机械手控制的 LSTM 层的结果。我认为,这种“元学习”的使用与自动机器优化相比,更像是记忆增强网络的一个特征。我认为,这个说明了统一元学习和为这个术语确定单一定义的困难。


结 论

显然,魔方求解器的成功令人信服,它展示了机械手的协调能力。然而,该研究更有趣的部分是隐藏在表面之下的元学习数据随机化。这是一个在设计其训练数据的同时进行学习的算法。Jeff Clune 的 AIGAs 中所描述的这种范式,包含了元学习架构、元学习学习算法本身、生成有效学习环境的算法,将为深度学习和人工智能的进步提供巨大的机会。


原文链接:The Rise of Meta Learning


2019 年 10 月 23 日 17:271070

评论

发布
暂无评论
发现更多内容

职场发展的思考

子不语

生涯规划 职业规划

基于大疆无人机SDK二次开发

sydMobile

android 无人机

开源一个自研的基于Netty的高性能网络通信框架

Geek_373e87

TCP dubbo Netty

自助设备系列——自助设备的春天

孙苏勇

产品

小米手机广告在日本「炸」了,背后的教训是什么?

葛仲君

产品 本地化 小米 日本 文化

企业招聘的需求决定了C/C++程序员的学习方向

C语言技术网-码农有道

C/C++

新人怎么寻求解决问题的方法

波波

编程 职场 新人

专题:快速开发那点事儿 | 轮子怎么选

Java_若依框架教程

Java 敏捷开发 Ruoyi 快速开发

hive 建表语句迁移

杨飞

MyBatis 3 解析Mapper映射配置

杨家昌

mybatis 配置 Mapper XMLMapperBuilder

LeetCode 565: Array Nesting

隔壁小王

算法

原创 | 使用JUnit、AssertJ和Mockito编写单元测试和实践TDD (一)什么是单元测试

编程道与术

1分钟理解M2M和IoT概念

老任物联网杂谈

物联网 M2M IoT

快速开发那点事儿 | 选择最合适的轮子,量产跑车

Java_若依框架教程

敏捷开发 JAVA开发 RouYI 快速开发

【预告】千亿数据的潘多拉魔盒:从分库分表到分布式数据库

kimmking

分布式数据库 分库分表 分布式系统 中间件

Flutter 中SharedPreferences 的初始化?

三爻

flutter android

我们迫切需要块状时间

Neco.W

效率 时间分配 时间管理 工作效率 提升效率

Flink 作为现代数据仓库的统一引擎:Hive 集成生产就绪!

Apache Flink

大数据 flink 流计算 实时计算 大数据处理

一种消息消费失败的处理方案

redis kafka

LeetCode 153. Find Minimum in Rotated Sorted Array

隔壁小王

算法

MyBatis 3 XML配置

杨家昌

mybatis mybatis-config.xml XML配置 配置

IT人的职业提升只靠技术精进行的通吗?

MavenTalker

程序员 程序人生 职业规划 技术人

为什么很多技术都觉得前端很简单?

极客时间

前端 前端开发 前端工程

央行:取消境外机构投资者额度限制,推动金融市场进一步开放

kimmking

中年危机,我们如何面对?

石云升

言简意赅,聊聊RPC的123事

一叶而不知秋

RPC

new[]和delete[]为何要配对使用?

helloworld

c c++ C#

游戏夜读 | 有哪几种游戏玩家?

game1night

源码分析shared_ptr实现

helloworld

c c++ C#

从2009到2020,世界编程语言排行榜分析

C语言技术网-码农有道

编程语言

MyBatis 3 解析mybatis-config.xml配置

杨家昌

深度解析 mybatis 初始化 XMLConfigBuilder Configuration

2021年全国大学生计算机系统能力大赛操作系统设计赛 技术报告会

2021年全国大学生计算机系统能力大赛操作系统设计赛 技术报告会

从OpenAI的魔方机械手,看元学习的崛起-InfoQ