在进化算法最初得到应用的时候,就有研究人员把它与神经网络结合起来,提出了神经元进化(Neuro-Evolution,NE)的概念。它的基本思想是使用遗传算法直接搜索神经网络策略空间 [222] 。
NE 的基本思路是把神经网络的技术规范以字符串表示或用染色体编码(见图 12.7)。染色体可以对任何相关的网络参数编码,包括突触权重值、处理单元的数量、连接(拓扑)、学习率等。然后,这些网络基因型在一系列世代中进化。将每一代每种基因型映射到网络表型(即实际网络),然后在问题环境中进行评估,并授予以某种期望的方式量化其性能的拟合度分数。在此评估阶段之后,通过各种可能的方案(如拟合度比例、线性排名、竞争选择等)根据拟合度从群体中选择基因型,然后通过交叉配对及可能的突变,形成通常的新基因型。这些新基因型取代最不适合的群体。重复该循环直到找到足够适合的网络,或直到满足一些其他判据才停止。
在图 12.7 中,神经元进化将每条染色体转化为神经网络表型并对任务进行评估。通过接收来自环境的输入(观察)并通过其神经网络传播它,以计算影响环境的输出信号(执行)。在评估结束时,根据网络的性能为网络分配一个拟合度值。在任务中表现良好的网络被配对以生成新网络。
图 12.7 神经元进化:通过进化算法来优化神经网络 [222]
这种方法可以被用于监督型学习和强化学习,从而把进化算法和深度学习算法结合在一起。DNN 有很多限制,但是进化算法没有什么限制;DNN 只使用很单一的搜索,但是进化算法是发散式搜索。有的研究人员在 DNN 的卷积层和全连接层之外又新加了一层神经元进化层,使之成为一种可进化 DNN。
最近几年,这种可进化深度神经网络架构已经应用于文字处理、视频游戏,并与 GAN 相结合(称为深度互动进化),在图像处理领域显示出强大的威力
(本章节未完结,点击下一页翻页继续阅读)