NEAT详解与实现

0. 前言

NEAT (NeuroEvolution of Augmenting Topologies, 增强拓扑的神经进化)属于神经进化算法家族,能够对神经网络的拓扑结构和连接权重进行进化。其用于进化复杂人工神经网络 (Artificial neural networks, ANN),旨在通过在进化过程中逐步完善 ANN 的结构来减少参数搜索空间的维数。在本节中,我们将介绍 NEAT 框架,并构建 NEAT 网络以解决经典的一阶异或问题。

1. NEAT 算法概述

NEATKen Stanley2002 年开发,NEAT 框架将神经网络与进化计算相结合,不仅优化超参数、权重参数和架构,还优化了神经网络的实际连接方式。
下图对比了常规深度学习网络和进化后的 NEAT 网络,进化后的 NEAT 网络添加/删除了连接,并且删除/改变了节点。请注意,这与我们之前仅仅改变深度学习 (Deep learning, DL) 连接层中节点数量的努力有所不同。