谷歌新研究:探索权重无关神经网络,已开放相关源代码

2019 年 11 月 22 日 新智元




  新智元报道  

来源: Google TensorFlow 

文 / Adam Gaier 学生研究员 和 David Ha 研究员

【新智元导读】在“权重无关神经网络”(Weight Agnostic Neural Networks, WANN) 中,谷歌踏出了第一步:使用随机共享权重执行各种任务的神经网络架构。这项工作旨在探索:针对给定任务,当不学习任何权重参数时,神经网络架构编码解决方案的表现如何。此外,为促进此研究领域的交流,谷歌还开放了相关源代码,以便更多研究社区能够重现 WANN 实验。新智元 AI 朋友圈说说你的观点~


无论是图像分类还是强化学习,在通过训练神经网络来完成一项给定任务时,都需要对神经网络中每个连接的权重进行调优。


而在创建有效的神经网络时,另一种行之有效的方法是神经架构搜索(通过手工构建的组件,如卷积网络组件或代码块,来搭建神经网络架构)。研究表明,利用这些组件搭建的神经网络架构(如深度卷积网络)在图像处理任务方面具有很强的归纳偏置(inductive biases),甚至能在随机初始化权重的情况下执行这些任务。这种神经架构搜索提供的新方法虽然可用于为当前的任务域安排具有已知归纳偏置的人工设计组件,但对自动发现具有此类归纳偏置的 新 神经网络架构(用于各类任务域)则表现效果甚微。


注:神经架构搜索

https://ai.googleblog.com/2017/05/using-machine-learning-to-explore.html

卷积网络组件

https://ai.googleblog.com/2018/03/using-evolutionary-automl-to-discover.html

随机初始化

https://arxiv.org/abs/1711.10925


我们可以以这些组件的先天和后天为例进行类比。在生物学领域,某些早熟性物种 (precocial species) 天生具有反捕食行为 (anti-predator behaviors),它们无需学习就能进行复杂的运动和感官活动。我们或许能以此构建无需训练就能出色完成任务的神经网络。显然这些自然物种(类比人工神经网络)通过训练可以进一步强化,但这种即使不学习也能执行任务的能力表明,它们包含非常适合这些任务的偏置。


在“权重无关神经网络”(Weight Agnostic Neural Networks, WANN) 中,我们踏出了专门搜索具有此类偏置的网络的第一步:使用随机共享权重执行各种任务的神经网络架构。这项工作旨在探索:针对给定任务,当不学习任何权重参数时,神经网络架构编码解决方案的表现如何。通过探索此类神经网络架构,我们提出一种无需学习权重参数就能在其环境中出色执行任务的智能体。此外,为促进此研究领域的交流,我们还开放了相关源代码,以便更多研究社区能够重现我们的 WANN 实验。

注:权重无关神经网络

https://weightagnostic.github.io/



左图:经人工设计且拥有 2760 个权重连接的全连接深度神经网络。借助某种学习算法,我们可以求解出 2760 个权重参数的集合,使该网络能够执行 BipedalWalker-v2 任务。

右图:仅有 44 个连接,但能够执行相同 Bipedal Walker 任务的权重无关神经网络架构。不同于全连接网络,此 WANN 无需训练每个连接的权重参数便能执行该任务。实际上,为简化训练,此 WANN 只会在每个权重连接的值相同或共享时 执行任务,即使采用随机采样的共享权重参数也不受影响。


注:BipedalWalker-v2

https://gym.openai.com/envs/BipedalWalkerHardcore-v2/


搜索 WANN

我们从一组最小的神经网络架构候选对象开始(每个候选对象只有很少的连接),使用完善的拓扑搜索算法 (topology search algorithm, NEAT),进而通过逐个添加单连接和单节点来演化架构。WANN 背后的核心理念是通过弱化权重的重要性来进行架构搜索。与传统的将所有权重参数都通过学习算法进行训练得到不同,我们采用了一种更简单有效的方法。在搜索过程中,我们先在每次迭代时为所有候选架构分配一个共享权重值,然后对其进行优化,以期通过更大范围的共享权值来获得更好的表现。


注:拓扑搜索算法

http://nn.cs.utexas.edu/?stanley:ec02



用于搜索网络拓扑空间的算子

左图:最小的网络拓扑结构,输入和输出仅部分连接。

中间图:网络的三种更改方式:

(1) 插入节点:通过拆分现有连接插入新节点。

(2) 添加连接:通过连接两个先前未连接的节点来添加新连接。

(3) 更改激活:重新分配隐藏节点的激活函数。

右图:支持的激活函数(线性函数、阶跃函数、正弦函数、余弦函数、高斯函数、正切函数、Sigmoid 函数、反函数、绝对值函数、ReLU 函数)


除了探索各类权重无关神经网络之外,我们还必须寻找能满足所需的复杂网络架构。为此,我们利用多目标优化 (multi-objective optimization) 技术同时优化网络的性能和复杂度。


权重无关神经网络搜索以及用于搜索网络拓扑空间的相应算子概览


训练 WANN 架构

与传统神经网络不同的是,我们只需找到单个最优性能的最佳共享权重参数,便能轻松训练 WANN。如下例所示,在使用恒定权重执行 swing-up cartpole 任务时,我们的架构可以发挥一定作用:


注:Swing-up Cartpole 任务

http://underactuated.csail.mit.edu/underactuated.html?chapter=acrobot


在不同权重参数下执行 swing-up cartpole 任务 WANN,以及使用微调权重参数的 WANN


如上图所示,虽然 WANN 可使用一系列共享权重参数来执行任务,但其性能通常仍无法与学习每个连接权重的神经网络相比。


如果想进一步提高其性能,我们可以先使用 WANN 架构和最佳共享权重, 然后像神经网络的常规训练方法一样, 通过学习算法微调每个连接的权重。这种先使用网络架构的权重无关特性,然后通过学习微调其性能的方法有助于为研究动物的学习方式提供有参考价值的类比。


注:动物的学习方式

https://www.nature.com/articles/s41467-019-11786-6


通过针对性能和网络简单性使用多目标优化,我们找到了一种适用于像素赛车任务(https://gym.openai.com/envs/CarRacing-v0/)的简单 WANN,该网络无需显式权重训练即可出色执行任务


使用随机权重的神经网络架构不仅能执行任务,而且还具有其他优势。例如,通过使用相同 WANN 架构的副本,但为 WANN 的每个副本分配不同的权重值,我们可以为同一任务创建多个不同模型组成的集合。相较于单个模型,此类集合通常具有更好的性能。为证明这一点,我们给出下方 MNIST 分类器使用随机权重的演化示例:


注:MNIST

http://yann.lecun.com/exdb/mnist/


MNIST 分类器使用随机权重的演化过程


传统随机初始化的网络在 MNIST 上的精度约为 10%,但针对 MNIST,这种使用随机权重的特殊网络架构却能实现精度高于随机初始化网络(高于 80%)。当使用 WANN 集合并为其中每个 WANN 分配不同的共享权重时,精度甚至能够升至 90% 以上。


即使不使用集合方法,我们也可将网络中权重值的数量压缩为 1,从而能够快速调整网络。在持续的终身学习中,快速微调权重的能力也有助于智能体在整个生命周期内获得、适应和转移技能。这使得 WANN 特别适合鲍德温效应 (Baldwin effect),这种进化压力会倾向于学习有用行为的个体,避免陷入“学会学习”这个代价高昂的计算陷阱。


注:进化压力

http://www.cs.toronto.edu/~hinton/absps/maynardsmith.pdf


结论

我们希望以此项工作为基石,促进发现更多新的基础神经网络组件,如卷积网络,其发现和应用已为深度学习领域做出巨大贡献。自发现卷积神经网络以来,研究领域可用的计算资源有了显著增加。如果此类资源的增加能促进网络架构的自动发现并有望实现网络架构的革命性改进,我们认为,使用新的构建块(而不仅仅是其安排)进行搜索也值得一试。


如果您有兴趣了解这项工作的更多相关内容,欢迎阅读我们的互动文章(或离线阅读 pdf 版本的论文)。除了将这些实验面向研究社区开源之外,我们还公开了一个名为 PrettyNEAT 的通用 Python 实现,旨在帮助有兴趣的读者从基本原理开始了解神经网络。

注:互动文章

https://weightagnostic.github.io/

pdf 版本论文

https://arxiv.org/abs/1906.04358

PrettyNEAT

https://github.com/google/brain-tokyo-workshop/tree/master/WANNRelease/prettyNEAT


新智元AI朋友圈详细使用教程,8000名AI大玩家和实践者都在这里!
登录查看更多
1

相关内容

人工神经网络(Artificial Neural Network,即ANN ),是20世纪80 年代以来人工智能领域兴起的研究热点。它从信息处理角度对人脑神经元网络进行抽象, 建立某种简单模型,按不同的连接方式组成不同的网络。在工程与学术界也常直接简称为神经网络或类神经网络。神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。每个节点代表一种特定的输出函数,称为激励函数(activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。 最近十多年来,人工神经网络的研究工作不断深入,已经取得了很大的进展,其在模式识别、智能机器人、自动控制、预测估计、生物、医学、经济等领域已成功地解决了许多现代计算机难以解决的实际问题,表现出了良好的智能特性。
专知会员服务
73+阅读 · 2020年5月21日
Python导论,476页pdf,现代Python计算
专知会员服务
260+阅读 · 2020年5月17日
【Nature论文】深度网络中的梯度下降复杂度控制
专知会员服务
38+阅读 · 2020年3月9日
【Google】利用AUTOML实现加速感知神经网络设计
专知会员服务
29+阅读 · 2020年3月5日
麻省理工学院MIT-ICLR2020《神经网络能推断出什么?》
专知会员服务
50+阅读 · 2020年2月19日
真正的神经网络,敢于不学习权重
机器之心
6+阅读 · 2019年6月13日
吴恩达团队:神经网络如何正确初始化?
AI100
11+阅读 · 2019年5月15日
神经网络中的权重初始化一览:从基础到Kaiming
大数据文摘
12+阅读 · 2019年4月18日
3分钟看懂史上最强NLP模型BERT
机器学习算法与Python学习
8+阅读 · 2019年2月27日
OpenAI提出Reptile:可扩展的元学习算法
深度学习世界
7+阅读 · 2018年3月9日
从零开始:教你如何训练神经网络
机器之心
5+阅读 · 2017年12月11日
CNN超参数优化和可视化技巧详解
量子位
4+阅读 · 2017年7月15日
Arxiv
26+阅读 · 2019年3月5日
Physical Primitive Decomposition
Arxiv
4+阅读 · 2018年9月13日
Arxiv
10+阅读 · 2018年2月4日
Arxiv
5+阅读 · 2016年10月24日
VIP会员
相关VIP内容
专知会员服务
73+阅读 · 2020年5月21日
Python导论,476页pdf,现代Python计算
专知会员服务
260+阅读 · 2020年5月17日
【Nature论文】深度网络中的梯度下降复杂度控制
专知会员服务
38+阅读 · 2020年3月9日
【Google】利用AUTOML实现加速感知神经网络设计
专知会员服务
29+阅读 · 2020年3月5日
麻省理工学院MIT-ICLR2020《神经网络能推断出什么?》
专知会员服务
50+阅读 · 2020年2月19日
相关资讯
真正的神经网络,敢于不学习权重
机器之心
6+阅读 · 2019年6月13日
吴恩达团队:神经网络如何正确初始化?
AI100
11+阅读 · 2019年5月15日
神经网络中的权重初始化一览:从基础到Kaiming
大数据文摘
12+阅读 · 2019年4月18日
3分钟看懂史上最强NLP模型BERT
机器学习算法与Python学习
8+阅读 · 2019年2月27日
OpenAI提出Reptile:可扩展的元学习算法
深度学习世界
7+阅读 · 2018年3月9日
从零开始:教你如何训练神经网络
机器之心
5+阅读 · 2017年12月11日
CNN超参数优化和可视化技巧详解
量子位
4+阅读 · 2017年7月15日
相关论文
Arxiv
26+阅读 · 2019年3月5日
Physical Primitive Decomposition
Arxiv
4+阅读 · 2018年9月13日
Arxiv
10+阅读 · 2018年2月4日
Arxiv
5+阅读 · 2016年10月24日
Top
微信扫码咨询专知VIP会员