0. 前言
NEAT
(NeuroEvolution of Augmenting Topologies
, 增强拓扑的神经进化)属于神经进化算法家族,能够对神经网络的拓扑结构和连接权重进行进化。其用于进化复杂人工神经网络 (Artificial neural networks
, ANN
),旨在通过在进化过程中逐步完善 ANN
的结构来减少参数搜索空间的维数。在本节中,我们将介绍 NEAT
框架,并构建 NEAT
网络以解决经典的一阶异或问题。
1. NEAT 算法概述
NEAT
由 Ken Stanley
于 2002
年开发,NEAT
框架将神经网络与进化计算相结合,不仅优化超参数、权重参数和架构,还优化了神经网络的实际连接方式。
下图对比了常规深度学习网络和进化后的 NEAT
网络,进化后的 NEAT
网络添加/删除了连接,并且删除/改变了节点。请注意,这与我们之前仅仅改变深度学习 (Deep learning
, DL
) 连接层中节点数量的努力有所不同。