https://www.toutiao.com/a6704151751097844227/

本文回顾了进化算法是如何被提出和测试的,它作为一个竞争性的替代方案,解决与神经网络设计相关的一些问题。

此外,架构设计(即创建的形状和功能的过程神经网络)是一个漫长而艰难的过程,主要是手动完成的,因此创新性受到了限制,并且大多数进展来自于已执行的旧算法,但现在计算资源和数据已经非常好了。另一个问题是深度神经网络主要通过梯度跟踪算法(例如SGD,RMSProp)进行优化,这是限制搜索空间的一个很好的资源,但容易被局部最优(Local Optima),鞍点(Saddle point)和噪声梯度(noisy gradients)所影响,特别是在密集的解决方案等领域比如:强化学习。

带有噪声梯度和几个局部极小值的函数的图解。如果初始值为低于(0-30)或高于(65-100),则例如

本文回顾了进化算法是如何作为一种竞争性的替代方法被提出和测试的,从而解决所描述的问题。

神经架构搜索

随着深度神经网络(DNN)越来越成功,对性能更好的架构工程的需求也在不断增长。随着DNN复杂度的增加,人类手工设计它们的能力受到限制,因此神经结构搜索(NAS)方法变得越来越重要。考虑到 Sutton博士的惨痛教训,这个问题变得尤为有趣:

从70年的人工智能研究中,我们可以得出的最大教训是,利用计算的一般方法最终是最有效的,而且在很大程度上是有效的。

进化算法(EA)已被证明在这个问题上是有用的。

有人可能认为NAS是一个三维过程。第一个维度是它们的搜索空间,它定义了可能由算法表示的架构。当然,更大的搜索空间意味着需要测试的组合可能更多。为了使问题得到解决,在层上直接实现了一些约束:

  1. 选择最大层数
  2. 它们可能只以链(顺序的)或多分支配置连接
  3. 层类型的构建块是预定义的,但是可以调优它们的超参数

链连接(左)和多分支神经网络(右)的例子。每个节点代表一个层,每个箭头代表它们之间的连接。

接下来是搜索策略,它定义了如何探索搜索空间。常见的替代方法有随机搜索、贝叶斯优化、强化学习、基于梯度的优化和神经进化方法。进化NAS的第一种方法来自Miller等人,他们使用遗传方法来提出架构和反向传播来优化权重。然后,Stanley和Risto提出了一种用于进化人工神经网络(ANN)的遗传算法(GA),它不仅通过考虑适应性和多样性来优化而且还使解决方案复杂化。最近,Real等人发现,进化算法在准确性方面的表现与强化学习一样好,但它开发了更好的中期性能和更小的模型(关于这种情况的进一步描述如下)。

即便如此,遗传算法和DNN都以对高资源的要求而闻名,GPU的运算时间大约是几千天。因此,要使NAS成为一种可负担的策略,性能评估必须是在比实际性能更低的保真度下进行。在使用一个ANN预测候选网络的性能逼近Pareto-optimal最优的方面,通过实现一个性能估算策略的LSTM神经网络用于估计验证分数只有几个时期的另一位候选人的神经网络的训练。一些方法试图在保持神经网络功能的同时改变其结构,从而加快训练速度,而不是进行估计。Auto-Keras就是基于这种方法构建的。

近年来,NAS在传统神经网络结构中的应用研究取得了新的进展。举一些例子:Rawal 等人提出了一种基于树的编码的一个在遗传规划和改进LSTM基于性能的标准语言模型(即在大型语言语料库中预测下一个词)0.9困惑点(即现在的新模型更好地估计目标语言分布)。此外,在图像分类方面,Real等人发展AmoebaNet-A以达到83.9%的前1%,96.6%的前5个ImageNet准确度,从而建立了一种新的技术水平。有人提出,这些结果可以进一步发展,利用遗传算法群体固有的多样性,扩大现有的综合方法,甚至明确鼓励它,直接奖励综合成一个群体,而不是直接模型。

不断发展的强化学习

神经进化算法可以分为进化权值和结构(如NAS)的算法和仅优化DNN权值的算法。进化算法与强化学习的结合通常作为唯一权重实现。

正如一般基于梯度的算法,例如随机梯度下降(SGD)约束探索到梯度跟踪,它们的搜索空间变得有点线性,局部最小值成为一个问题。 此外,随着深度强化学习(深度RL),出现了两个额外的问题:当奖励稀疏时,过早地收敛到局部最合适的条件(即,它们仅在做出一系列决定之后发生)时,难以将行动与回报联系起来,这被称为时间信用分配,他们对超参数选择非常敏感。

在DRL中,遗传算法被提出来解决这些问题。利用基于无梯度种群的遗传算法对DNN的权重进行了优化,并发现它在像Atari和类人运动等深度RL难题上表现良好。通过比较他们的结果与随机搜索(RS),他们发现,GA总是优于RS,并且RS有时优于RL,这表明局部最优、鞍点和噪声梯度阻碍了基于梯度的方法的发展,并且在某些情况下,在原点附近区域密集采样足以胜过基于梯度采样的方法。他们还发现GA的wall-clock速度比Q学习发展得快得多。

Felipe Petroski、Vashisht Madhavan、Edoardo Conti、Joel Lehman、Kenneth O. Stanley、Jeff Clune等人也指出,一个未知的问题是,在早期阶段使用GA采样,然后切换到梯度搜索的混合方法是否会允许更好更快的结果。这正是Khadka等人在进化强化学习(Evolutionary Reinforcement Learning, ERL)中提出的,这是一种混合算法,使用EA中的种群训练RL agent,并将agent重新插入种群中进行适应度评估。他们提出遗传算法是一个很好的选择,以解决之前提到的深层RL问题,但这也斗争优化大量的参数。因此,将遗传算法的探索性和时间分配能力与深度RL梯度相结合,使学习速度更快。因此,进化RL能够解决比深度确定性策略梯度(Deep Policy Gradient, DDPG)等更多的任务,并且比简单的遗传算法更快。

最后

像Khadka和Real这样的实践研究证明,进化深度学习应用是推进现有技术发展的有用方法。尽管如此,在使用的方法中仍然存在许多限制,就像使用NAS的预定义构建块和ERL中使用的非交叉或变异一样。此外,值得注意的是,EA被视为黑盒优化方法,因此它们很难理解性能高的原因。

进一步的研究将决定EA在深度学习领域的未来,但到目前为止,它似乎正在成为解决特定学习问题的必要工具,至少在中长期是这样的。

进化深度神经网络是推动技术发展的强劲动力相关推荐

  1. BOE(京东方)柔性屏显示技术发展势头强劲,赋能应用场景创新

    在7月14日CCTV1播出的<生活圈>节目里有这样一场实验:一块比白纸还要薄的显示屏在被一辆轿车两次碾压过后仍保持完好无损,显示一切正常.白纸经过卷曲后会留下痕迹.边缘翘起,无法再次平整展 ...

  2. 笃行不怠勾勒人才图,望城区人才工作为高质量发展增添强劲动力

    功以才成,业以才广. 人才是经济高质量发展的重要资源.党的二十大报告明确"深入实施人才强国战略",指出"实施更加积极.更加开放.更加有效的人才政策". 作为湖南 ...

  3. 深度神经网络的成功应用,深度神经网络技术赋能

    深度神经网络是什么意思? 深度神经网络是机器学习(ML, Machine Learning)领域中一种技术.在监督学习中,以前的多层神经网络的问题是容易陷入局部极值点. 如果训练样本足够充分覆盖未来的 ...

  4. 神经网络的图像识别技术,语音识别深度神经网络

    深度学习能应用在哪些领域? 深度学习的快速发展,不仅使机器学习得到许多实际的应用,还拓展了整个AI(人工智能的)的范围. 它将任务进行拆解,使得各种类型的机器辅助变成可能,具体分为以下几类应用:1.无 ...

  5. 深度神经网络与人脑神经网络哪些区域有一定联系?

    matlab中BP神经网络OCR识别? 单看错误率分析不出来什么,可能是样本量太少,也可能是别的原因.可以把错误识别的样本拿出来,看看是哪些地方导致的错误,再有针对性的改进. 还可能是特征工程不到位, ...

  6. 神经网络 深度神经网络,最新的深度神经网络

    深度学习的职业发展方向有哪些? 当前,人工智能发展借助深度学习技术突破得到了全面关注和助力推动,各国政府高度重视.资本热潮仍在加码,各界对其成为发展热点也达成了共识. 本文旨在分析深度学习技术现状,研 ...

  7. 深度神经网络和循环神经网络,深层循环神经网络

    深度学习和有效学习的区别 深度学习和有效学习的区别分别是:1.深度学习是:Deep Learning,是一种机器学习的技术,由于深度学习在现代机器学习中的比重和价值非常巨大,因此常常将深度学习单独拿出 ...

  8. 深度神经网络算法有哪些,深度神经网络主要模型

    有哪些深度神经网络模型? 目前经常使用的深度神经网络模型主要有卷积神经网络(CNN) .递归神经网络(RNN).深信度网络(DBN) .深度自动编码器(AutoEncoder) 和生成对抗网络(GAN ...

  9. 神经网络与深度神经网络,神经网络前沿理论研究

    深度学习与神经网络有什么区别 找深度学习和神经网络的不同点,其实主要的就是:原来多层神经网络做的步骤是:特征映射到值.特征是人工挑选.深度学习做的步骤是信号->特征->值.特征是由网络自己 ...

最新文章

  1. 《JavaScript高级程序设计》读书笔记【一】
  2. 从零到熟练编写LaTex数学公式,这两篇就够了
  3. 无线局域网安装与调试(Wireless LAN installation and commissioning)
  4. BZOJ 2301 [HAOI2011]Problem b
  5. 上海的房租有多高?我用Python爬虫为你揭晓
  6. 开源的ESB产品列表信息
  7. 405 宝塔钩子_点击数据库管理,nginx提示出现405 Not Allowed错误,是怎么回事?
  8. 台式电脑可以连wifi吗_不使用WIFI,手机也可以通过电脑的网络上网
  9. 理论基础 —— 排序 —— 快速排序
  10. JavaScript之对象序列化详解
  11. nyoj_49_开心的小明_201403161133
  12. logstash 获取多个kafka_日志工程Logstash日志采集入门篇
  13. Win10环境下初始化MySQL
  14. (C++)整型数组A[n]中的元素调整为左右两部分,其中左边所有元素为奇数,右边所有元素为偶数。时间复杂度为O(n)。
  15. python绘制社会关系网络图_python画社交网络图
  16. mysql blast2go,blast2go
  17. ietester测试本地html,win7系统用IETester测试网站兼容性的方法
  18. STM32CubeIDE使用总结(三)——debug调试程序
  19. ESP32基于arduino开发的心跳体温检测系统(四)本地端系统整合
  20. 树莓派4b安装win11/10过程全教程(附蓝屏inaccessible boot device解决办法)

热门文章

  1. 变分贝叶斯variable bayes 和EM算法关系
  2. transformer引燃机器学习圈 万能的
  3. 各种远程通信协议比较RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等
  4. 2020-08-23logloss对数损失函数
  5. python array与 list区别
  6. Ehcache配置参数详解
  7. 拥抱iPhone,拥抱软件开发的未来
  8. 「MICCAI 2017」Reading Notes
  9. 独家 | 2021,什么数据分析技能最重要?
  10. 原创 | 从席卷全球的“刷脸”乱象,看国内人脸识别立法方向