使用演化算法在不同的层面上(连接权值、网络结构、学习率等等)对神经网络进行寻优(Evolving Artificial Neural Networks)已经有了多年的研究历史(详情请见姚新老师于1999年发表的综述)。近年来,随着计算能力的大幅增长和深度神经网络的兴起,演化神经网络特别是演化深度神经网络又逐渐成为了研究热点。在往期的AAEO中,我们已多次从不同方面介绍了该领域的研究进展,具体请见AAEO第3期AAEO第92期AAEO第94期AAEO第146期。从做研究的角度而言,一个有趣且很重要的问题是:对于当下待解决的神经网络自动优化问题,已有的经典方法是否仍然适用?如果不再适用,那么其解决问题的思想是否可以借鉴?为了回答以上问题,首要任务便是详细了解经典方法,因此在本期AAEO中我们将同大家分享演化神经网络方面的代表性工作—EPNet。由于笔者能力有限,如果分享过程中存在疏忽,还请大家不吝赐教与指正。

EPNet由姚新老师和刘勇老师提出,相关文献为[1](发表于1997年,TEVC)。EPNet是一个基于演化算法,能同时高效演化网络结构和连接权值的神经网络训练系统。EPNet对于网络连接权值采用实值编码,并将神经元之间的连接以0-1矩阵的形式同时编码在个体中,其具体算法流程如图1所示,和同类方法相比,EPNet最显著的一个特点是没有使用交叉算子,而依赖于变异算子对神经网络进行逐步(增量/减量)调整。由于神经网络本质上可以看作是一种分布式的知识表示(具体表现在不同的连接权值之中),仅采用变异算子的策略能够在演化过程中从整体上保持网络较好的稳定性,子代个体和父代个体之间在功能(或行为)上能保持较好的一致性,从而能够避免知识的突然大量丢失。针对演化权值和演化结构的不同需求,EPNet分别采用了不同的变异算子,即用于演化权值的混合训练算子和用于演化结构的隐层节点删除算子、连接删除算子、连接增加算子和节点增加算子。此外,为了避免网络过于复杂而陷入过拟合,EPNet在对父代个体进行变异时会按照“仅修改权值而保持结构不变”(第一个算子)-“对神经网络进行剪枝”(第二、三个算子)-“对神经网络增添节点或连接”(第四、五个算子)的顺序使用变异算子,并且一旦某一个算子成功生成了一个好的后代个体,整个变异过程将会立即终止。值得注意的是,在混合训练算子中EPNet结合使用了后向传播和模拟退火算法以避免网络权值陷入局部最优,而在整个演化过程结束之后,EPNet会对整个种群中的个体进行进一步的训练,以获得更好的性能。整体上来看,EPNet使用了多种算子在不同的层面上对网络进行高效的优化,并且始终试图将网络结构的复杂程度控制在较低水平,因此EPNet最终演化出的神经网络具有泛化性能好、结构简洁的特点。

1

图1:EPNet算法流程

[1] Yao, Xin, and Yong Liu. “A new evolutionary system for evolving artificial neural networks.” IEEE transactions on neural networks 8.3 (1997): 694-713.

刘 晟材

刘 晟材

中国科学技术大学计算机科学与技术学院—中国科大伯明翰大学智能计算联合研究所(UBRI)—博士生

© 2019 ECOLE