《Evolving Neural Networks through Augmenting Topologies》by Kenneth O. Stanley and Risto Miikkulainen

本文主要是介绍《Evolving Neural Networks through Augmenting Topologies》by Kenneth O. Stanley and Risto Miikkulainen,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 Abstract

要解决的问题:网络的结构和参数一起进化

优势:①提出了一种在不同结构之间交叉的方法;②通过种族(speciation)来保障种群的创新性;③从一个最小的拓扑结构进行进化。

实验:①通过对比实验证明,在加强学习的任务上,增长性的结构比固定结构性能更好;②通过剪切实验证明NEAT算法的各个部分不可或缺。

贡献:①证明GA可以同时优化和复杂化(这里的复杂化应该指的是多样化)解。

 

 

介绍

①神经进化被证明有利于加强学习(Gomez and Miikkulainen 1999; Gruau et al. 1996; Moriarty and Miikkulainen 1997; Potter et al. 1995; Whitley et al. 1993)

原因:父代信息可以有效保存在基因中,因此更有益于解决非马尔科夫问题(需要了解过去的状态来做决策的问题)。

②传统的NE是在一开始就选择了一个固定的拓扑结构(一个输入层和一个输出层,中间一个隐藏层,全连接),然后使用算法优化结构中的参数。但是结果的好坏是和网络的结构也是有关的。

③本篇文章的贡献:证明结构和参数的进化都可以加强神经进化算法的性能。

④解决的问题:1,拓扑结构能有意义地交叉;2,拓扑结构能在优化前不被换掉;3,在进化的过程中最小化结构。

 

 

背景

TWEANN Encoding

TWEANN 全称Topology and Weight Evolving Artificial Neural Network,指结构和参数共同进化的神经网络。

Binary Encoding

传统的编码方式是将每一个节点编码为基因上的一个染色体,假设有n个节点,然后节点之间的连接就用一个n^2的矩阵表示。这个方法的缺陷在于需要人为确定最大节点的值,不能自由地拓展节点的数量。

Graph Encoding

使用更方便的图编码来表示一个网络。例如Pujol and Poli (1997)使用两个染色体来表示网络,一个表示网络的结构,一个线性表示连接。图交叉则使用网格表示,点交叉则使用线性表示。

Non-mating

由于网络结构的交叉会频繁导致性能的变化,因此,一些人放弃了交叉。也有论文GNARL证明TWEANN问题不需要经过交叉。

Indirect Encoding

间接编码是指基因不能直接表示,但是可以通过基因推导出来。

Competing Conventions

Competing Conventions Problem,也称Permutations Problem,是指有多种方式来表示一个神经网络的参数。 

两个染色体在交换后会失去基因信息,例如论文中(A,B,C)和(C,B,A)交叉后的子代。

Protecting Innovatin with Speciationo

一个新的结构形成之后需要经过几代的演化才可以产生好的参数,因此新的结构需要保护。

方案:结构相同的个体划分为同一个物种,同一个物种内进化。

Initial Populations and Topological Innovation

随机初始缺点:①输入输出没有连接;②不利于寻找最简单结构的解,因为会生成许多无用的节点。

最小化网络结构:①将网络的大小加入fitness function。缺点:无法定义网络大小在fitness function中的比例,而且有些问题的解决确实需要大的网络。②从最小的网络开始,如果添加一个节点是有利于找到解的,则增加。

当前TWEANN问题没有从最小网络开始的原因是,最小网络一开始时一个最简单的全连接,在演化的过程中没办法产生复杂的新结构,但是,加入物种这一个概念之后,可以通过物种之间的交叉变异来产生新的结构。

An Integrated Scheme

NEAT就是将以上方法综合在一起

 

NeuroEvolution of Augmenting Topologies (NEAT)

Genetic Encoding

connection genes:每个基因表示两个节点之间的连接

node genes:包含输入节点,隐藏节点,输出节点

connection gene:包含入节点,出节点,节点的参数,是否启用,创新号。

mutation:①mutate add connection 在两个未连接的节点之间添加连接;②mutate add node:在一个连接之间添加一个节点,新节点到旧out节点之间的参数继承旧连接,旧in节点到新节点之间的参数设为1

Tracking Genes through Historical Markings

innovation number的产生:当连接7中间添加一个新的node后,一个连接被切断成两个新的连接,然后命名为8,9。这样产生的innovation number在交叉变异后保持不变。

防止重复innovation number号的产生:如果一个相同的结构经过多次变异后会产生相同的结构,但是会有多个不同的innovation number,为了防止这种情况产生,通过维持一个list of the innovations occurred in the current generation,记录当前种群发生变异。

交叉:通过对应innovation number,然后随机从父代中选择相对应的基因,组成新的基因组。

Protecting Innovation through Speciation

通过把类似的结构划分为一个物种,然后相同的结构在同一个物种之间相互进化。

计算两个网络之间的距离:

E:两个网络之间节点的数量差

D:两个网络之间innovation number不对应的数量

W:两个网络之间参数的平均值的差

c1,c2,c3是调节权重的参数

将个体根据距离划分为不同的物种:

个体g与每个物种中的代表个体进行比较,距离小于compatibility threshold Æ,则加入物种,若都不相符,则产生新的物种

物种之间的交流:explicit fitness sharing

为了防止某一物种拓展太大,即使物种内的个体都比较优良。需要调整fitness

子物种的大小由fi决定

Minimizing Dimensionality through Incremental Growth from Minimal Structure

NEAT的初始网络从一个最简单的,只包含输入层和输出层的全连接网络,然后在网络上添加节点,添加连接,每次添加的结构都是有用的,最后得到的网络中将没有多余的无用节点,因此是最简网络。

 

Performance Evaluations

解决的问题

①NEAT能够使网络的必要结构得到进化吗?

通过解决XOR问题来回答这个问题

②NEAT的结果是不是能够比其他的算法要优?

通过在cart-pole balance problem上试验来回答这个问题

Parameter Settings

试验的参数设置可以应用到任何问题,因为最终的问题是要形成一个有效的神经网络。而神经网络的权重与超参数是在进化的过程中形成的。

如果一个物种在15代后没有得到进化,则陷入停滞状态。

基因有80%的概率mutate,其中90%概率抖动,10%的几率被赋予一个新的随机值

25%的子代是没有交叉过而只变异产生的

交配的概率是0.001

大种群产生新连接的概率会比小种群的概率高,因为大种群可以容纳更多物种

Verification: Evolving XORs

在结构的扩展过程中,会存在以下问题:

①添加一个新的节点会对结构造成负面影响

②一个局部最优解可能会主导种群

③变化的机构可能导致某些好的连接的参数被弃用

结果的评价标准 fitness function:

(4-sum(每个output与正确结果output的距离))^2

Pole Balancing Comparisons

Ev. Programming:仅仅依靠参数的变异

Conventional NE:使用交叉变异

SANE:固定的网络结构,维护neurons种群和network blueprints种群,两个种群共同组成网络

ESP:SANE的改进,使用一个种群来表示网络不同的隐藏层结构

Double Pole Balancing with Velocities

评判的标准:在100000步内保持杆平衡

杆平衡的标准:角度保持在-36~36度之间

Double Pole Balancing Without Velocities

标准:

①防止杆只是无意义地抖动,采用两个fitness function的加权组合

②最后的结果需要在625种随机初始状态测试中成功200组

 

 

Analysis of NEAT

通过对NEAT各个部分的剔除来比较NEAT的性能

 

 

 

 

 

 

这篇关于《Evolving Neural Networks through Augmenting Topologies》by Kenneth O. Stanley and Risto Miikkulainen的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/415480

相关文章

MonoHuman: Animatable Human Neural Field from Monocular Video 翻译

MonoHuman:来自单目视频的可动画人类神经场 摘要。利用自由视图控制来动画化虚拟化身对于诸如虚拟现实和数字娱乐之类的各种应用来说是至关重要的。已有的研究试图利用神经辐射场(NeRF)的表征能力从单目视频中重建人体。最近的工作提出将变形网络移植到NeRF中,以进一步模拟人类神经场的动力学,从而动画化逼真的人类运动。然而,这种流水线要么依赖于姿态相关的表示,要么由于帧无关的优化而缺乏运动一致性

A Comprehensive Survey on Graph Neural Networks笔记

一、摘要-Abstract 1、传统的深度学习模型主要处理欧几里得数据(如图像、文本),而图神经网络的出现和发展是为了有效处理和学习非欧几里得域(即图结构数据)的信息。 2、将GNN划分为四类:recurrent GNNs(RecGNN), convolutional GNNs,(GCN), graph autoencoders(GAE), and spatial–temporal GNNs(S

OpenSNN推文:神经网络(Neural Network)相关论文最新推荐(九月份)(一)

基于卷积神经网络的活动识别分析系统及应用 论文链接:oalib简介:  活动识别技术在智能家居、运动评估和社交等领域得到广泛应用。本文设计了一种基于卷积神经网络的活动识别分析与应用系统,通过分析基于Android搭建的前端采所集的三向加速度传感器数据,对用户的当前活动进行识别。实验表明活动识别准确率满足了应用需求。本文基于识别的活动进行卡路里消耗计算,根据用户具体的活动、时间以及体重计算出相应活

Complex Networks Package for MatLab

http://www.levmuchnik.net/Content/Networks/ComplexNetworksPackage.html 翻译: 复杂网络的MATLAB工具包提供了一个高效、可扩展的框架,用于在MATLAB上的网络研究。 可以帮助描述经验网络的成千上万的节点,生成人工网络,运行鲁棒性实验,测试网络在不同的攻击下的可靠性,模拟任意复杂的传染病的传

Convolutional Neural Networks for Sentence Classification论文解读

基本信息 作者Yoon Kimdoi发表时间2014期刊EMNLP网址https://doi.org/10.48550/arXiv.1408.5882 研究背景 1. What’s known 既往研究已证实 CV领域著名的CNN。 2. What’s new 创新点 将CNN应用于NLP,打破了传统NLP任务主要依赖循环神经网络(RNN)及其变体的局面。 用预训练的词向量(如word2v

【机器学习】生成对抗网络(Generative Adversarial Networks, GANs)详解

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 生成对抗网络(Generative Adversarial Networks, GANs)详解GANs的基本原理GANs的训练过程GANs的发展历程GANs在实际任务中的应用小结 生成对

Show,Attend and Tell: Neural Image Caption Generation with Visual Attention

简单的翻译阅读了一下 Abstract 受机器翻译和对象检测领域最新工作的启发,我们引入了一种基于注意力的模型,该模型可以自动学习描述图像的内容。我们描述了如何使用标准的反向传播技术,以确定性的方式训练模型,并通过最大化变分下界随机地训练模型。我们还通过可视化展示了模型如何能够自动学习将注视固定在显着对象上,同时在输出序列中生成相应的单词。我们通过三个基准数据集(Flickr9k,Flickr

Image Transformation can make Neural Networks more robust against Adversarial Examples

Image Transformation can make Neural Networks more robust against Adversarial Examples 创新点 1.旋转解决误分类 总结 可以说简单粗暴有效

吴恩达深度学习笔记:卷积神经网络(Foundations of Convolutional Neural Networks)1.9-1.10

目录 第四门课 卷积神经网络(Convolutional Neural Networks)第一周 卷积神经网络(Foundations of Convolutional Neural Networks)1.9 池化层(Pooling layers)1.10 卷 积 神 经 网 络 示 例 ( Convolutional neural network example) 第四门课

NLP-文本匹配-2016:SiamseNet【Learning text similarity with siamese recurrent networks】

NLP-文本匹配-2016:SiamseNet【Learning text similarity with siamese recurrent networks】