赣州新闻网

首页 / 科技

神经进化:一种不一样的深度学习

2020-01-27 · 赣州新闻网 · 科技

神经进化:一种不一样的深度学习

作者 | Paul Pauls

编译 | 十、年

编者按:近年来,神经网络借鉴了生物学策略的相关理论知识,实现了大飞跃,完成了之前无法完成的任务。神经进化作为人工智能的一个研究领域,试图通过进化` 9 m算法而非随机梯度下降来设计和构建神经网络。本文作者C A 4 WPaul Pauls,作为机器学习GDE和开源爱好者,他在Medium上写了一篇关于神经进化算法的文章,详细介绍了神经进化算法的基本概念,以及这几年重要的研究成果。AI科技评论作了有删改的编译,请欣赏~

神经进化:一种不一样的深度学习

神经进化是人工智能和机器学习领域的一个分支,它能够改进了人工神经网络,并且试图通过( v Y 0 8 s )叉或q 2 n移除一些潜在的遗传密码来提高大脑的功能一样,人工神经网络通过进化算法能够产生越来越好的拓扑、权重和超参数K / H % O S g。

简单的说就是将进化的思想使用到神) X ( 9经网络参数优化的更迭中。

神经进化

神经进化是一种机器学习技术,它~ B y : W i z 4使用基于群体的g x d r k优化方法能够不断提高群体中每个神经学习框架中复杂的数据J u E结构上操作。当然,基因编码允许这两种表示之间k Q I + x ~ l C存在映射关系。

基因组的这些有效的遗传表示被称为基因型(genotypes),而相应| u l m映射的神经网络被称为显型(phenotypes)。这两个术语是从遗传进化学科中化用的。毕竟神经进化也称的上是遗传进化。另外注意,这里将所有显型都限制为神经网络。

神经进化:一种不一样的深度学习

图2:直接遗传编码

基因编码一般可分为两个子类:直接编码和间接编码。虽然还有第三类发展性编码,但这种编码我们先{ C j 1 y v p K忽略不计,毕竟这两年也没啥进展。直接编码表示神经网络的各个方面,它们在遗传表示中显式编码(如上图2所示)。直接编码直接在基因型中编码每个连接及其相应的权重,但通过排除神经网络中的偏差和激活函数的可能性来限制搜索空间。

这种直接 j m @ C M f确定搜索空间。

繁殖方法与解决方式探索

有种遍历; R A )搜索空间的方法被称为繁殖的过程(the process of reproduction),这种方法与神经进化所使用的遗传编码密切相关。通常通过突变或重组基因组来创造新的基因组,新的基因组也继承了旧的基因组l 5 V & w 神经网络的参数只能突变到以遗传编码表示的程度。因此,为神经进化算法定义突变有以下三种情况。1、遗传编码的哪一部分会发生突变?是拓扑、权重、还是超参数?2、基因组中选定的部分会发生多$ p K j J x { f &大程度的突变?例如,神经进化算法可以对低适应度基因组使用较大的突变,对高性能基因组使用微小的突变。3、突变采T 9 . 0用何种方式。是定向?还是随机?

神经进化:一种不一样的深度学习

图4:竞合公约问题图解

重组并不会突变基因组,拥有创新可以通过将两个亲本基因组( parent-genomes)及其独) s l { x q u Y o特特征结合,并产生“新颖”的后代基因组。如果重组方法设计得当,并且可以无损地融合两个亲本基因组的有益特征,将其在整个群体中传播,& v V T G # (提高所有现有基因组的适用性。

设计重组方法的核心在于“无损融合”,即不丢失任何基因特& d o V . U e性的情况下融合。例如在神经进化算: j 4法之前,NEAT算法(通过增强拓扑的进化H , E Y ^ ( % ]神经网络(EvolvinE E C $ X y Q tg N9 L O D l Deural Networks through AugmG 4 e z ] s 9 | 5enting Topologies))利用直接编码在进行修改网络的拓扑结构,包括新增节点和删除节点等操作时会产生交叉损失。如上图竞合公约问题( com^ C = c m L Lpeting-conventions problem)所示。随I p )后,NEAT算法提出了一种“历史标记”的方法,该方法为每个突变提供了唯一的标识符,从而最终实现了基因组的无损重组,使其为神经进化算法提供了基准。

评估方法

在总体优化循环中,基于问题评估基因组似乎是最简单的。但这一步骤确是非常重要) x W A D ^ X,不仅是能够指出潜在的改进和进步。评估方法从根本上说是一个过程,即将基因组映射到由其遗传编码规定的神经网络,并将, J Q l S x o其应用于问题环境,然后根据神经网络的表现计算适应值。

一些神经进化` R h ^ { _ = ; B算法的评估过程还包括将神经网络加权训练的附加步骤,虽然这种方法非常明智,但只有当实际环境能够清晰反映基本信息才有用。

在整个评估过程中,尽管确定适应度的方式完全取决于实际问题的具体情况,但可以进行合理的修改。例如在图像识别中可以设置为准确度,游戏W Z B a中可以设置为点数。

在确定适应度计算时,新颖性搜索也是一个需要0 5 V & * c Q考虑的j U $ - * & N重要概念。因为这个概念涉及用新的方法奖励基因组,能够使其具有更高的适应 D % ~值。例如,在实际的电子游戏环境中的智能体如果进入一个未知的区域会获得体能提升,尽管总体上获得的分数较少,但也能促进了基因库的创新,从而促进更有希望的进化。

自然选1 k f K择与亲本选择

虽然繁殖方法定义了探索搜索空间的方式。但选择: y ? T } x哪些基因组将作为后代的“父母”?哪些基因组将从基因库中移除?也是神经进化计划的另一个非常重要的, t X 6 y + 3 ( Y方面。

神经进化算法的种类决定了哪种基因m } V能够作为父母基因。在一代人的神经进化中,选择适合下一代的基因组通常归结为选择当前表现最好的基因组。选择作为父母的基因组不一定与移除的基因组互补。基因组的选择要足够有希望保证创新突变的潜力,尽管a H ; o @ } i在下一代可能会被移除。

神经进化算法的一个标准配置是选择利用V B . ~ 0 D前20%的基因组作为父母,另外在下一次迭代中会去除90%表现最差的基因组。另外根据代际神经进化算法是否采用物种形成,亲本选择或基因组移除选择也会发生了显c ] o w ; m著变 h G益的方向,也可以保护创新的新路f b B [径。

另一方面,在竞争的共同进化方案(competitive coevolution scheme)中,基因组通常是随机配对,其中更合适或I T x ? e | g更有创新的一个被选为“父母”,另一个从基因库中移除。由于竞争共同进化的异步性,不可能同时对种群中的所有基因组进行分类和分类,从而极大地限制了用物- | D I 4 : /种形成等方法指导进化的可e R . l能性。

关于神经进化的总结

神经进化是优化人工神经网络的一种方法,是一个多功能的工具,g 5 g d G v ; n i不仅限于机器学习方面,还可以应用于改进计算机视觉、自然语言处理。创建神经进化算法时需要考虑很多东西,但最重要的是最有效地利用实际问题环境。

神经进化中具有里程碑意义的研究

该算法不同于我们之前讨论的传S bstrate, 2010

ES-HyperNEAT进一步扩展了HyperNEAT,在信息量较高的区域允许在CPPN编码模式中使用更密集的{ # 2 ` t D e ` G基底(den8 $ ! 0ser substrau - ) O C O } Pte)。虽然HyperNEAT将隐藏神经元放置在何处e ( b的决定权留给了用户(user),但ES-HyperNEAT采用四叉树状结构来确定那些隐藏节点的密度和位置。ES-HyperNEAT在主要基准测试中能够胜过传统的HyperNEAT。

3、A NeuroevolutioS ~ in Approach to General Atari Game Playing, 2014

通过使用CNE、CMA-ES、NEAT和HyperNEAT算法来解决61个Atari2600视频游戏,展示了神经进化在通用视频游戏(GVGP)中的潜力。虽然神1 ` o / @ @经进化在这项研究之前已经在GVGPI中进行了部署。结果与预期不谋而合,: # V ` + Q e 8因为它们表明直接编码方法在紧凑的状态表x . * f示效果最好,间接编码允许缩放到更高维的表示。

4、DLNE: A hybridization of deep learning an- f 4 + 9 D 3d neuroevolution for visual control, 2017

通过将神经进化与CK D z 4 aNN的图像识别相结合,介绍了神经进化最有趣的用途之1 * l f 6 J一。通过CNN进行图像识别,将识别出的图k F , b $ Q像转换为特征表示,然后将识别出的图像送入神+ S $ q m $ D经进化优化的神经网络。虽然这种方法的有效性在很大程度上取决于特征表示的质量,{ Z Z S { y但即使采用简单的方法也能有一个很有前途的研究方向。

5、Large-Scale Evolution of Image ClassifiZ A s k G , :ers, 2017

这篇论文r B s r对进化算法进行了C A ( =改动,使其可以用于NAS(神经网络架构搜索),算法对于计算资源要Y o G [ l s 5求较高。算法一开始从没有任何卷积的最简单的模型开始进化,与之前看过的论文不同的是,神经网络架构没有固定的网络深度(意味着搜索空间进一步扩大,算法运行时间长)。

神经进化:一种不一样的深度学习

利用这篇的自动化方法得出的深度网络结构,已经能在CIFAR-10上取得可以跟人工设计的网络相媲美的2 2 i X `结果。

6、Evolvind ` k 9 y ~ , ? qg Deep Neural Networks, 2H 3 I018

CoDeepNEAT算法是近年来 7 % b论文中所用进化算法的一大z U V H重要特征是采用了一种正则化形式:相比于移除最差的神经网络,他们移除了最老的神经网络(无论它有多好)。这提升了对任务优化时O L Z M [所发生变化的稳健性,并最终更可能得到更加准确的网络。其中一个原因可能是由于不允许权重继承,所有的网络必须都从头开始训练。T V I 0 H p Z y E因此,这种形式的正则化选择重新训练后依旧S K y L较好的网络。也就是说,得到更加准确的模型只是偶然的,训练过程中存在的噪声意味着即使完全相同的架构准确率也可能不同。

8、Designing Neural Networks Through Neuroevolution, 2019

这篇文章是对现代神经进化的一个极好的回顾,由该领域四位最著名的研究人员合作成文。它即使它没有引入新的概念,但总r D 1 u结和说明了神经进化的每一个重要方面。

9、Evolut[ K L * } m hionary Neu0 A 9 z { | = 2 jraly E T # } AutoML for Deep Learning, 2019

该论文介绍了功能强大的进化AutoML框架LEAF,该框架利用了进化算法CoDeepNEAT。虽然在论文中作者没有透露他H 5 d f y T o G :们的源代码,但他们对其设计进行了广泛的讨论,并提供了有价值的意见。

另外,在医学图像分类和自然语言分析任务中对进化AutoML框架的性能进行了评估,其结果超过了现有的最先进的AutoML系统和手工神经z o . ) x u 3 _ 网络解决方案。

测试发展视频文章历史神经学习不一样本地新闻