NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

不用训练就能获得性能优越的神经网络模型?Google 提出探索权重不可知神经网络新方法

  • 2019-09-04
  • 本文字数:2615 字

    阅读完需:约 9 分钟

不用训练就能获得性能优越的神经网络模型?Google提出探索权重不可知神经网络新方法

在探索权重不可知网络过程中,Google 提出了一种无需学习权重参数就能在其环境中运行良好的“代理”:1.使用一个完善的拓扑搜索算法(NEAT),通过逐个添加单个连接和单个节点来演化神经网络架构;2.通过简单地找到最佳的单个共享权重参数,来训练 WANN,从而最大限度地提高其性能。


当训练神经网络去完成给定的图像分类或强化学习任务时,我们都会细化一组权重,这种权重往往是与网络中的各个连接相关联的。另一种已经取得实质性进展的神经网络创建方法是神经网络架构搜索,它利用人工调配组件(如卷积网络组件转换器块)构建神经网络。研究表明,利用这些组件构建的神经网络(如深度卷积网络),对图像处理任务具有很强的归纳偏置,甚至可以在权重随机初始化的情况下执行。虽然神经网络架构搜索提供了一些新的方法,可以为当前的任务域安排具有已知归纳偏置的人工调配组件,但在自动发现具有此类归纳偏置的新神经网络(用于不同的任务域)方面几乎没有进展。


就像某些从出生起就具有反捕食行为的早熟物种,无需学习就能完成复杂的运动和感观任务一样,也许我们也可以构建出不需要训练就能很好地完成任务的神经网络。当然,这些自然的(人工的)神经网络可以通过训练得到进一步的完善,但它们即使不学习也能执行任务的能力表明,对于任务的偏置,它们也可以很好的适用。


在“权重不可知神经网络”(WANN)中,我们提出了专门搜索这些带有归纳偏置网络的第一步:这些神经网络架构即使使用随机共享的权重,也可以执行各种任务。我们这项工作的目的是:了解这种神经网络在不学习任何权重参数的情况下,仅依靠其神经网络架构,对给定任务的完成度是多少。通过研究这样的神经网络架构,我们提出了一种无需学习权重参数就能在其环境中运行良好的代理。此外,为了促进该领域的进步,我们还开放了源代码,以便更广泛的研究社区重现我们的 WANN 实验。



左图:一个人工调配、完全连接的深度神经网络,具有 2760 个权重连接。使用学习算法,我们可以解出 2760 个权重参数的集合,使该网络能够执行BipedalWalker-v2任务。

右图:一种与权重无关的神经网络架构,具有 44 个连接,可以执行相同的 Bipedal Walker 任务。与全连接网络不同,此 WANN 无需训练每个连接的权重参数,仍然可以执行任务。实际上,为了简化训练,WANN 被设计成在每个权重连接的值相同或共享时执行,甚至在这个共享权重参数被随机采样时也会起作用。

寻找 WANN

我们从一组最小的神经网络架构候选对象开始,每个候选对象只有很少的连接,并使用一个完善的拓扑搜索算法(NEAT),通过逐个添加单个连接和单个节点来演化架构。WANN 背后的关键理念是通过降低权重来搜索架构。与传统的神经架构搜索方法不同,新架构的所有权重参数都需要使用学习算法进行训练,我们采用了一种更简单、更有效的方法。这里,在搜索过程中,所有候选架构首先在每次迭代时分配一个共享权重值,然后进行优化,以便在广泛的共享权重值范围内很好地执行任务。



用于搜索网络拓扑空间的操作符

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

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

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

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

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

:可能的激活函数(线性、阶跃、sin、cos、高斯、tanh、sigmoid、逆、绝对值、ReLU)


除了探索一系列与权重无关的神经网络之外,重要的是还要寻找只有它们需要的复杂网络架构。我们利用多目标优化技术,同时对网络的性能和复杂度进行优化。



权重不可知神经网络搜索概述及其用于搜索网络拓扑空间的相应运算符。

训练 WANN 架构

与传统神经网络不同的是,我们可以通过简单地找到最佳的单个共享权重参数来训练 WANN,从而最大限度地提高其性能。在下面的例子中,我们可以看到权重不可知神经网络架构(在某种程度上)使用恒定的权重来完成一个摇摆式cartpole任务




WANN 以各种不同的权重参数执行 Cartpole Swing-up 任务,并且还使用微调的权重参数。


正如我们在上图中看到的,虽然 WANN 可以使用一系列共享权重参数来执行其任务,但是其性能仍然无法与学习每个单独连接权重的神经网络相比较。如果我们想进一步提高它的性能,我们可以使用 WANN 架构和最佳共享权作为起点,使用学习算法微调每个连接的权重,就像我们通常训练其他神经网络一样。以网络架构的权重无关属性为起点,并通过学习对其性能进行微调,可能有助于提供动物学习方式的深刻类比。




通过对性能和网络简单性的多目标优化,我们的方法找到了一个简单的 WANN,可以用于汽车比赛的像素任务,而无需明确训练神经网络的权重


神经网络架构仅使用随机权重的功能还提供了其他优势。例如,通过使用相同 WANN 架构的副本,但是其中 WANN 的每个副本都分配了不同的权重值,我们可以为相同的任务创建多个不同模型的集合。这种集合通常比单个模型获得更好的性能。我们通过一个MNIST分类器使用随机权重的演化过程说明这一点:



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


传统的随机初始化神经网络在 MNIST 上的精度约为 10%,而这种使用随机权重的特殊神经网络架构在应用于 MNIST 上时,其精度远高于随机(> 80%)。当使用 WANN 集合,其中每个 WANN 分配有不同的共享权重时,精确度可以提高到> 90%。


即使没有集成方法,也可以将网络中的权重值压缩为一,从而使网络能够快速调整。快速调整权重的能力可能在持续、终生学习中很有用,在这种学习中,代理在整个生命周期内获得、适应和转移技能。这使得 WANN 特别适合利用Baldwin效应,Baldwin 效应是一种进化压力,它奖励那些倾向于学习有用行为的个体,而不会陷入“学习学习”这个代价高昂的计算陷阱。

结论

我们希望这项工作可以作为一个垫脚石,帮助发现新的基础神经网络组件,如卷积网络,其发现和应用已经在深度学习取得了令人难以置信的进展。自卷积神经网络被发现以来,研究领域可用的计算资源显著增加。如果我们将这些资源用于自动发现并希望在神经网络架构中实现更多的增量改进,那么我们同样相信,使用新的构建块(而不仅仅是它们的安排)来搜索也是值得的。


如果有兴趣了解更多,我们邀请你阅读互动文章(或离线阅读 pdf 版本的论文)。除了将这些实验开源给研究社区外,我们还发布了一个名为PrettyNEAT的通用 Python 实现,以帮助感兴趣的读者从基本原理出发探索令人兴奋的神经网络领域。


原文链接


http://ai.googleblog.com/2019/08/exploring-weight-agnostic-neural.html


公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2019-09-04 11:048104

评论

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

松华说|如何快速熟悉和上手业务

松花皮蛋me

代理

卢卡多多

代理 代理原理 7月日更

Reactive Spring实战 -- 响应式MySql交互

binecy

MySQL 响应式编程 Reactive Spring

ARTS 日常打卡 - 7

pjw

如何优雅的实现一个Client

Apologize

Java 设计模式 代码设计 client

两天搞定一个BUG

IT蜗壳-Tango

7月日更

我被InfoQ写作平台签约啦

xcbeyond

程序人生 签约计划

给AI时代装配“新大脑”:数据密集型超算带来了哪些变革?

脑极体

Ansible Role

耳东@Erdong

ansible 7月日更 ansible role

自建开发工具系列-Webkit内存动量监控UI(四)

Tim

UI JSX

在线ASCII流程图编辑器工具

入门小站

工具

初探 Redis 客户端 Lettuce:真香

白亦杨

Java redis

让AI抛弃“小作坊”,拥抱“工业化”:盘古大模型究竟是什么?

脑极体

登录验证那些事儿

江湖一点雨

Token Cookie JWT session处理方案 单点登录

Rust从0到1-智能指针-RefCell<T>

rust 智能指针 smart pointer RefCell<T>

共1575道,内卷把我逼成“收集王”汇总十家大厂面试题后,产出Java“完美圣经”

Java架构师迁哥

Linux之文件属性详解

入门小站

Linux

打通“任督二脉”:Android 应用安装优化实战

vivo互联网技术

android 打包APK so文件

从0到1:用脚做一个路由器漏洞实例

网络安全学海

运维 网络安全 信息安全 渗透测试· SQL注入

一篇并不起眼的Kafka面试题

王知无

架构训练营模块一作业

老实人Honey

架构实战营

架构之:serverless架构

程序那些事

系统架构 软件架构 架构设计

linux服务器开发人员必须要彻底理解的关于【Linux】IO的线程模型

Linux服务器开发

reactor 网络编程 epoll Linux服务器开发 IO模型

Flink生产环境TOP难题与优化,阿里巴巴藏经阁YYDS

王知无

🏆【SpringBoot技术专题】「Cache缓存组件」Redis缓存使用技巧及注解大全

洛神灬殇

redis cache Sprint Boot 7月日更

Xshell 如何导入 PuTTYgen 生成的 key

HoneyMoose

【LeetCode】三数之和Java题解

Albert

算法 LeetCode 7月日更

如何加速应用网格化部署?看这款社交产品怎么做

阿里巴巴中间件

推荐系统的人工调控策略(三十五)

数据与智能

人工智能 商业价值 推荐系统

用太极拳讲分布式理论,真舒服!

悟空聊架构

分布式 事务 CAS Base 7月日更

【Flutter 专题】88 初识状态管理 Bloc (三)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 7月日更

不用训练就能获得性能优越的神经网络模型?Google提出探索权重不可知神经网络新方法_AI&大模型_Google AI_InfoQ精选文章