该算法不仅搜索最优的网络拓扑(network topology),而且还对超参数(如学习或数据扩充参数)进行调优。...任务的目标是对目标识别任务的准确性进行最大化。 为了分析进化的拓扑结构的普遍化和可伸缩性能力,我们采用了最好的卷积神经网络拓扑,并在CIFAR-10基准的分类上对它们进行了测试。...两种不同的、相互矛盾的行为是可以观察到的。从进化的开始直到大约第60代的性能增加,层数会不断地减少;从第60代到最后一代,在性能提升之后,最好的网络的隐藏层数量也在增加。...在我们的方法中,可训练参数的数量要高得多,因为我们允许在进化的卷积神经网络中放置完全连通的层。此外,在进化过程中,没有先验知识用于对搜索空间(search space)的偏见。...这些结果的表现超过了那些为卷积神经网络的进化而采用的数据扩充方法的文献。
选自medium 机器之心编译 参与:Nurhachu Null、路雪 本文介绍了一种机器学习方法:通过增强拓扑的进化神经网络(Evolving Neural Networks through Augmenting...在这篇文章中我要阐述一种机器学习方法,叫作「通过增强拓扑的进化神经网络」(Evolving Neural Networks through Augmenting Topologies,NEAT)。...NEAT 指「Networks through Augmented Topologies」(通过增强拓扑的进化神经网络),描述了自学习机器的算法概念,这些算法概念受启发于进化过程中的遗传修饰(genetic...地址:http://nn.cs.utexas.edu/downloads/papers/stanley.ec02.pdf 摘要:神经进化领域的一个重要问题是如何利用带有权重的进化神经网络拓扑。...我们展示了一种方法,即通过增强拓扑的进化神经网络(NeuroEvolu- tion of Augmenting Topologies,NEAT),该方法在有挑战性的基准强化学习任务中的表现优于最好的固定拓扑
例如在神经进化算法之前,NEAT算法(通过增强拓扑的进化神经网络(Evolving Neural Networks through Augmenting Topologies))利用直接编码在进行修改网络的拓扑结构...在整个评估过程中,尽管确定适应度的方式完全取决于实际问题的具体情况,但可以进行合理的修改。例如在图像识别中可以设置为准确度,游戏中可以设置为点数。...物种形成是一种代际神经进化的工具,它根据显型中的拓扑相似性等明显特征将群体中的个体聚集在一起;或根据或在实际环境中达到的特定状态等隐藏特征聚集。...神经进化中具有里程碑意义的研究 该算法不同于我们之前讨论的传统神经网络,它不仅会训练和修改网络的权值,同时会修改网络的拓扑结构,包括新增节点和删除节点等操作。...NEAT通过突变和无损重组直接编码,同时通过物种形成保护创新。由于其简单性和同步能力,NEAT可以被认为是典型的神经进化算法。
问耕 编译整理 量子位 出品 | 公众号 QbitAI 神经网络持续在游戏界立功,这次拿下的是经典游戏:《马里奥赛车64》,而且只需要很小的计算力就能完成。...先来看看成果,这段视频是训练两天半之后的表现,神经网络已经变成老司机了,漂移、撞车都玩得666~ 这套玩转《马里奥赛车64》的AI,是一个在BizHawk模拟器中基于NEAT算法搭建的神经网络,使用Lua...所谓NEAT算法,全名是NeuroEvolution of Augmenting Topologies,增强拓扑神经网络。这是一种使用遗传算法进化人工神经网络的方法。...NEAT的理念是从小型、简单的网络开始,然后逐渐向复杂的网络进化升级。...NEAT的交流讨论页在此: https://www.cs.ucf.edu/~kstanley/neat.html 关于NEAT的更多细节,可以参考这篇论文《Evolving Neural Networks
NEAT全称是增强拓扑神经网络(Neuroevolution of augmenting topologies),描述了在人类进化过程中被遗传修饰所启发的机器学习算法概念。 ? 生命是很奇妙的。...而具有创造力的计算机科学家的目标则是通过模仿自然进化规律来构建系统以此解决复杂的问题。 描述NEAT如何工作的最简单方法便是举一个例子。...适应值中包含更多的变量,如收集的硬币,被击败的敌人或者完成所花费的时间。 另外,定义什么时候是进步也很重要。NEAT允许节点突变,节点之间的新的连接和最适合的神经网络继承成为新的后代。...[Stanley, Miikkulainen, Page 109, NEAT] 现在或多或少你应该都已经了解了,NEAT在整个游戏中不断继承,计划出新的神经网络来优化其适应值。...一个例子是可以通过列出所有已知的原子来创建新的药物,合理的定义适应值使得模拟能够理解奖励制度并最终朝此方向进化。另一个NEAT的应用是可用于选择生产新药物的技术。
CPPN—NEAT 我一直对斯坦利的NEAT算法着迷。NEAT是从简单的单层网络逐步演化成复杂的神经网络拓扑结构的一种方法。...CPPN可以是一个非常普遍的神经网络,并且通过某些操作将网络的输出设置为[0,1]之间,以表示(x,y)处的像素值。...在这个过程的开始,一批简单的拓扑结构的随机网络被用来产生一串随机的图像,用户可以选择保留一小部分的图像,通过基因算法(NEAT)来产生新一系列的图像。...我花了一些时间来试验和尝试各种各样的设置,比如从像素空间到实际坐标空间的比例,突变率,突变大小,冲击的大小以及什么类型的神经元实际上是重要的。...换句话说,应用NEAT来发现能够在backprop环境中工作的子网络以用于其他机器学习任务。看看我们是否能通过进化发现下一个LSTM,并拥有所有这些额外可区分的门类型!
crAIg的进化基于一种叫做“NEAT”的算法,它来自于一篇名为《运用增强拓扑使神经网络进化》(EvolvingNeural Networks through Augmented Topologies)...进化神经模型为何酷炫 当学习玩超级马里奥变成单纯地应用神经网络和进化神经模型,这个游戏在很大程度上就成为了一种展示这些自我进化的神经网络的方法。...随着我们将越来越难的工作寄托在机器身上,想要通过硬编码(hardcode,译者注:指在软件实现上,把输出或输入的相关参数(例如:路径、输出的形式或格式)直接以常量的方式书写在源代码中,而非在运行时期由外界指定的设置...NEAT(增强拓扑的神经网络进化,NeuroEvolution ofAugmented Topologies) 如果你好奇于神经网络进化遇到的问题背后是怎样的历史,我非常推荐你读一下这个算法的论文(就是前面提到的那一篇...论文第一部分论述了实现神经网络进化的许多方法和它们各自的优点。 NEAT是一种基因算法,它测试了crAIg大脑的每一次迭代运算,然后从中遴选出质量高的、繁衍它们的后代,与自然界中物种的进化非常相似。
交叉算法通常在两个基因的截断点处进行交换,子个体各获得一部分,如女儿获得父母基因的比例分别为70% / 30%,儿子获得父母基因的比例分别是30% /70%。...图5用基因来表示神经网络中神经元的权重 进化算法的典型问题是,当在时间尺度上进行观察时,会出现即使迭代时间再长,求解的结果并不会改善太多,趋近于饱和状态。这主要是因为突变率太高,无法求得最优解。...NEAT(基于增强拓扑神经网络)和HyperNEAT解决这个问题的思路是通过迭代过程中,通过分析网络的表现和突变来改变网络。...NEAT更多应用用于ANNS(自适应神经网络),而不是典型的神经网络,因为ANNS能在外部信息的基础上改变内部结构。...图8 CPPN分析神经网络/个体,并将行为类似的分为一类 在典型的NEAT场景中,交配池由代表网络结构的基因个体组成,它是一个多个体的概念。
2002 年,Stanley 和 Miikkulainen 引入了增强拓扑的神经进化方法(NeuroEvolution of Augmenting Topologies,NEAT)[7],NEAT 定义了基因与神经网络中的连接的映射关系...CPPN 是一个由 NEAT 基因-网络映射关系定义的神经网络,并可以根据适应性函数对给定 CPPN 实例进化出的任务网络的打分,应用基因算法进行进化。...然而,NEAT 神经网络群体在进化时,这些网络并不是由基因组「生长」出来的,相反,由于 NEAT 网络是直接编码,它的网络进化也是直接由范例定义的。...图 6:相比于由基因组直接编码神经网络(比如NEAT),Pollack 和他的同事 [11] 选择应用可以调控神经网络发展的基因控制网络来调控网络的进化,这种方法更类似于生物学上的基因指导人类由胚胎期发育至成人期的机制...开放式进化研究通常都会考虑人工生命研究中的人工有机体,观察这些有机体如何在类似于产生其他生物进化的环境条件下进化,换言之,开放式进化的研究对象是在开放环境中直接进行的繁殖活动(寻找配偶,获取足够的食物以存活或繁衍
葡萄牙科英布拉大学计算设计和可视化实验室的研究者们利用进化算法的策略提出了深度进化网络结构表征(DENSER),可以自动进行多层深度神经网络的结构设计和参数调优,在没有先验知识的情况下,该方法生成的神经网络达到了业内最佳性能...该算法不仅搜索最优的网络拓扑结构,而且对超参数 (如学习或数据增强参数) 进行调优。自动设计是通过两个不同层次的编码方式来实现的,其中外层编码网络的一般结构,内层编码与每层相关联的参数。...几代最佳个体的适应度(上面)和隐藏层数(下面)的进化 图一描述了几代以来最好的 CNN 的平均适应度和层数的进化。对结果进行简要的研究表明,进化正在发生,并且解决方案趋向于在 80 代的周围聚集。...从进化的开始到大约第 60 代,性能的增加都伴随着层数的减少;这种现象从第 60 代发生变化并一直持续到最后一代,这期间随着性能的增加,最佳网络的隐形层数量随之增加。...在我们的方法中可训练参数的数量要高得多,因为我们允许在进化的 CNN 中放置完全连接的层。此外,在进化过程中,没有先验知识被用来使搜索空间发生偏差。
让我们重头开始看看神经网络是如何进行决策的:如上图所示,这是一个只有4层的神经网络模型,通过对最左侧的输入图像的计算(红色的短线代表Mario、白色方块代表不会移动的物体如地面,黑色方块代表会移动的物体如敌人...这只是一个简单的示意:如果神经网络中的节点和连接越复杂,系统能做出的选择也更多,最终做出最合适的选择; ? 那么神经网络是如何从简单进化到复杂的呢?...(如上图吃到子弹游戏结束)会产生随机突变(AI研习社注:这和生物进化的过程非常相似,只有最适应环境的种类才能生存繁衍),在这样不断演变中达到最优解。...在上图的34代演化得分图中,我们可以看到机器在进化过程中也遇到了一些瓶颈,但最终克服了这些瓶颈取得了好成绩。 ?...这一方法,SethBling称之为NEAT(Neuro Evolution of Augmenting Topologies,增强拓扑神经演化),在 Kenneth Stanley 和 Ari 的论文中也有讲述
让我们重头开始看看神经网络是如何进行决策的:如上图所示,这是一个只有4层的神经网络模型,通过对最左侧的输入图像的计算(红色的短线代表Mario、白色方块代表不会移动的物体如地面,黑色方块代表会移动的物体如敌人...这只是一个简单的示意:如果神经网络中的节点和连接越复杂,系统能做出的选择也更多,最终做出最合适的选择; ? 那么神经网络是如何从简单进化到复杂的呢?...(如上图吃到子弹游戏结束)会产生随机突变(AI科技评论注:这和生物进化的过程非常相似,只有最适应环境的种类才能生存繁衍),在这样不断演变中达到最优解。...在上图的34代演化得分图中,我们可以看到机器在进化过程中也遇到了一些瓶颈,但最终克服了这些瓶颈取得了好成绩。 ?...这一方法,SethBling称之为NEAT(Neuro Evolution of Augmenting Topologies,增强拓扑神经演化),在 Kenneth Stanley 和 Ari 的论文中也有讲述
当然,如研究者那样从小架构到大架构搜索也是可行的,只要架构能正好将最优解包围住就行了。 以前就有懒得学习的神经网络 几十年的神经网络研究为不同的任务提供了具有强归纳偏置的构造块。...Ulyanov 等人 [109] 展示了随机初始化的 CNN 可在标准逆问题(如去噪、超分辨率和图像修复)中作为手工先验知识(handcrafted prior)使用,且性能优越。...在评估网络性能时,研究者没有选择使用最优权重值的网络,而从随机分布中抽取权重值。用权重采样取代权重训练可以确保性能只与网络拓扑结构有关。...然后,根据概率选出排名最高的网络以生成新的群组,排名最高的网络是会随机变化的。之后重复这一过程。 最最核心的拓扑搜索 用于搜索神经网络拓扑的算子受到神经进化算法 NEAT 的启发。...不过 NEAT 中的拓扑和权重值是同时进行优化的,而本研究无视权重,仅使用拓扑搜索算子。 最初的搜索空间包括多个稀疏连接网络、没有隐藏节点的网络,以及输入和输出层之间仅有少量可能连接的网络。
NEAT(NeuroEvolution of Augmenting Topologies.)使用增强拓扑的神经进化。从根本上说,它本质上是一种复制自然界进化的尝试。...(ii)激活函数:这个函数将帮助我们得到神经元在两个数字范围内的值。这是非常有用的-我们可以告诉A.I跳跃或不跳跃取决于激活函数返回的值(鸟跳跃如果输出> 0在我们的例子中)。...这就是NEAT发挥作用的地方!(端到端学习) 这里,我们从创造一个完全随机的鸟类种群开始。每只鸟都有不同的神经网络来控制它。这些神经网络都将以随机权值和偏差开始。...如果飞鸟进入管道之间或在给定帧中还活着,我们将提高飞鸟的适应度(这将鼓励它保持生命并振翅高飞) 如果一只鸟确实撞到了管道,我们将降低其适应性(这样它就不会繁殖形成下一代)并将该鸟的“ rip”属性设置为...这使得代码更改不太可能导致使用不同的NEAT设置而导致您的项目无法运行。所以一定要注意 设置“neat.StdOutReporter(True)”将为我们提供终端的详细统计信息。例如以下显示: ?
在这项工作中,我们受到自然界进化的早成行为的启发,开发了具有自然就能够执行给定任务的架构的神经网络,即使其权重参数是随机采样的。...拓扑搜索(Topology Search) 用于神经网络拓扑搜索的运算符(operators)受到神经进化算法NEAT的启发。...在NEAT中,拓扑和权重值同时优化,这里我们忽略了权重值,只应用拓扑搜索运算符。 用于搜索网络拓扑空间的运算符 左:一个最小的网络拓扑结构,输入和输出仅部分连接。 中间:网络以三种方式进行改变。...BipedalWalker任务最佳性能网络示意图 权重设置-1.5 权重设置-1.0 性能最优的网络 在赛车任务实验中,WANN架构简单的优势也很突出。...权重设置+1.0 权重设置-1.4 性能最优的网络 WANN的应用扩展:探索图像分类任务 在强化学习任务中取得的好成绩让我们考虑扩大WANN的应用范围。
谷歌研究人员还把这种方法用在监督学习领域,仅使用随机权重,就能在MNIST上实现就比随机猜测高得多的准确率。 论文从架构搜索、贝叶斯神经网络、算法信息论、网络剪枝、神经科学这些理论中获得启发。...操作步骤 解决了权重初始化的问题,接下来的问题就是如何收搜索权重不可知神经网络。它分为四个步骤: ? 1、创建初始的最小神经网络拓扑群。...然后,算法从第2步开始重复,在连续迭代中,产生复杂度逐渐增加的权重不可知拓扑(weight agnostic topologies )。...拓扑搜索 用于搜索神经网络拓扑的操作受到神经进化算法(NEAT)的启发。在NEAT中,拓扑和权重值同时优化,研究人员忽略权重,只进行拓扑搜索操作。 ?...图的最右侧展示了权重在[2,2]取值范围内可能的激活函数,如线性函数、阶跃函数、正弦余弦函数、ReLU等等。
基于NEAT算法的马里奥AI实现所谓NEAT算法即通过增强拓扑的进化神经网络(Evolving Neural Networks through Augmenting Topologies),算法不同于我们之前讨论的传统神经网络...,它不仅会训练和修改网络的权值,同时会修改网络的拓扑结构,包括新增节点和删除节点等操作。...NEAT算法几个核心的概念是: 基因:网络中的连接 基因组:基因的集合 物种:一批具有相似性基因组的集合 Fitness:有点类似于增强学习中的reward函数 generation:进行一组训练的基因组集合...下图我们展示了算法从最一开始简单的神经网络,一直训练到后期的网络 [1502763308993_8325_1502763309346.png] 利用NEAT算法实现马里奥的只能通关的基本思想便是...,利用上面NEAT算法的基本观点,从游戏内存中获取实时的游戏数据,判断马里奥是否死忙、计算Fitness值、判断马里奥是否通关等,从而将这些作为神经网络的输入,最后输出对马里奥的操作,包括上下左右跳跃等操作
领取专属 10元无门槛券
手把手带您无忧上云