Home Learn Blog Game
Learn Neuroevolution Book Cited Papers Chapter 3 Scaling Machine Learning And Genetic Neural Nets

Course Structure

Readme
Book
Chapter 1 Chapter 2 Chapter 3
Cited Papers
Chapter 3
Evolving Artificial Neural Networks Scaling Machine Learning And Genetic Neural Nets
Others
A Visual Guide To Evolution Strategies Deep Neuroevolution Evolution Strategies As A Scalable Alternative To Reinforcement Learning Evolution Strategies At Scale: Llm Fine-Tuning Beyond Reinforcement Learning Evolving Connectivity For Recurrent Spiking Neural Networks Evolving Neural Networks Through Augmenting Topologies Meta-Learning Via Learned Loss Multi-Scale Evolutionary Neural Architecture Search For Deep Spiking Neural Networks Natural Evolution Strategies The Cma Evolution Strategy: A Tutorial World Models

Scaling, Machine Learning, and Genetic Neural Nets

1. INTRODUCTION

研究动机与核心问题

  • 泛化 (Generalization):机器学习的核心问题是机器能否在学习后进行泛化。本文提出,Scaling (缩放能力) 和 Parsimony (简洁/简约性) 是实现泛化的关键属性。
    • Parsimony:指网络信息以尽可能简洁的方式表达(如通过生长规则而非独立的连接权重)。这减少了搜索空间,避免了过拟合。
    • Scaling:指在小规模问题上学习,然后自动推广解决更大规模问题的能力。这是一种沿“尺度轴”的泛化/外推。

核心假设与方法转变

  • 从优化权重到优化规则:传统的神经网络优化直接针对连接权重(Connection Strengths)。本文提出一种根本性的转变:优化构建网络的生长规则(Growth Rules)。
  • Genetic Neural Nets (GNN):
    • 网络的连接由一组参数化的递归关系(Recursion Relations)定义。
    • 这些递归关系的系数(Coefficients)构成了“遗传”信息。
    • 网络本身是这些规则在特定尺寸下的展开(Phenotype)。
  • 设计原则:
    • 分治 (Divide-and-Conquer):将大问题分解为可重复解决的小块。
    • 叠加 (Superposition):通过线性组合简单的网络来构建复杂功能。

2. GENETIC NEURAL NETWORKS

本节详细描述如何用递归关系描述连接矩阵,以及如何优化这些关系。

2.1. The Recursive Description of Connection Matrices

核心定义:递归连接矩阵与Scaling

连接矩阵 $T$(Connection Matrix)描述了神经元之间的连接强度。GNN 通过递归模板(Template)来定义一系列不断增大的矩阵。这里的核心思想是 Scaling:我们不是针对固定大小的网络训练,而是训练一个能生成任意大小网络($n=1, 2, \dots, \infty$)的规则。

对于模板家族 $\tau_a$,第 $n+1$ 代矩阵 $\tau_a(n+1)$ 可以由第 $n$ 代矩阵块组成:

$$ \tau_{a}(n+1) = \begin{pmatrix} \sum_b D_{00}^{ab} \tau_b(n) & \sum_b D_{01}^{ab} \tau_b(n) \\ \sum_b D_{10}^{ab} \tau_b(n) & \sum_b D_{11}^{ab} \tau_b(n) \end{pmatrix} $$

  • 符号解析 ($\tau, a, b$):

    • $\tau$ (Tau):代表模板 (Template),也就是连接矩阵。
    • $a, b$:代表模板的索引 (Index)。
      • 一个复杂的网络通常不是只用一种规则生成的,而是由一组相互调用的规则(模板家族)共同生成的。
      • 例如:$\tau_1$ 可能负责生成“前馈结构”,$\tau_2$ 负责生成“侧向抑制结构”。
      • 公式中的 $\sum_b D^{ab} \tau_b$ 意思是:为了生成第 $a$ 类模板的下一代,我们需要将所有可用的第 $b$ 类模板进行加权组合。
    • $a, b$ 的范围:
      • 这是一个预设的超参数。
      • 在本文的实验中(参考原文第3节),作者设定 $a, b \in \{1, 2, 3\}$。即整个系统由 3 个基础模板家族相互作用而生成。
  • 矩阵为何越来越大?:

    • 这里的 $n$ 代表网络的尺度 (Scale) 而非训练迭代次数。公式描述了如何用 4 个 $n$ 代的小矩阵拼成一个 $n+1$ 代的大矩阵。
    • 随着 $n$ 增加,矩阵的边长翻倍,神经元数量呈 $2^n$ 增长。我们在小 $n$(如 $n=2$)上学习规则矩阵 $D$,然后将其应用到大 $n$(如 $n=8$)以直接生成大规模网络。

Lineage Tree (谱系树) 与 神经元寻址

为了解决“怎么区分输入输出”以及“网络架构是什么”的问题,引入 Lineage Tree 对神经元进行编码:

  • 架构定义:网络本质上是一个有向图,其拓扑结构由连接矩阵 $T$ 决定。
  • 神经元地址:每个神经元由二进制串 $i_1 i_2 \dots i_n$ 唯一标识,对应树中从根到叶的路径。
  • 区分输入/输出:
    • 神经元的角色由其地址决定。例如,可以规定地址以 0 开头的(左子树)是输入神经元,以 1 开头的(右子树)是输出神经元。
    • 在实验中(见第3节),作者使用了专门的树结构:一个子树全是输入,另一个子树全是输出。
    • 连接的稀疏性:虽然矩阵 $T$ 包含了所有可能的连接($N \times N$),但这并不意味着全连接。
      • 若分解矩阵 $D_{01}^{ab} = 0$,则整个右上角的大块连接区域都为 0。
      • 通过优化 $D$ 的稀疏性(Parsimony),GNN 会自动“修剪”掉大部分连接,生成具有特定结构(如分层、模块化)的稀疏网络,而非全连接的浆糊。

基础递归关系 (Fundamental Recursion Relation)

连接权重的递归计算公式解释了“D 矩阵的作用”:

$$ T_{i_{1}...i_{n},\ j_{1}...j_{n}}^{(a)} = \sum_{b} D_{i_{1}j_{1}}^{ab} T_{i_{2}...i_{n},\ j_{2}...j_{n}}^{(b)}, \quad n \ge 1 $$

  • 为什么只和 $1, 2$ (即 $i_1, j_1$) 有关?:
    • 这体现了分治策略。
    • $i_1, j_1$ 是地址的第一位,决定了连接在矩阵中的宏观位置(例如:是从输入层连到输出层,还是输入层内部互连)。
    • $D_{i_1 j_1}$ 负责在这个宏观层面上进行调度,决定这一大块区域应该由哪个子模板 $b$ 来填充。
    • 剩余的地址位 $i_2 \dots i_n$ 和 $j_2 \dots j_n$ 被传递给下一级递归,负责填充微观细节。

展开形式与张量积 (Tensor Product)

将递归完全展开,得到显式表达式:

$$ T_{i_0 i_1...i_n,\ j_0 j_1...j_n}^{(a)} = \sum_{b_0} D_{i_0,j_0}^{a,b_0} \sum_{b_1} D_{i_1,j_1}^{b_0,b_1} ... \sum_{b_n} D_{i_n,j_n}^{b_{n-1},b_n} $$

  • 这表明最终的连接矩阵是分解矩阵 $D$ 的各分量的 Tensor Product (张量积/Kronecker积) 的线性组合,这种结构天然适合描述具有自相似性的分形网络结构。

2.2. Learning and Network Optimization

优化目标

目标是找到最优的分解矩阵 $D$(即生长规则)。

$$ E(D) = E_{task}(D, g) + E_{parsimony} + \mu E_{feed-forward}(D, g) $$

  1. 任务执行与误差 ($E_{task}$):
    • 怎么执行任务?:
      • 将输入信号 Clamped 到输入神经元上。
      • 网络根据动力学方程演化:$s_i(t+1) = \text{activation}(\sum_j T_{ij} s_j)$。
      • 如果是前馈网络,信号单向传播;如果是递归网络,系统演化至稳定状态。
      • 读取输出神经元的值作为结果。
    • Scaling 策略:仅在小规模代数 $n=1 \dots g$ 上计算误差 $E_{task}$,假设好的规则能推广到大 $n$。
  2. 简洁性约束 ($E_{parsimony}$):
    • 限制规则的信息量,强制模型寻找简单的生成规则。这有助于避免过拟合,并倾向于生成稀疏而非全连接的网络。
  3. 前馈约束 ($E_{feed-forward}$):
    • 为了避免网络变成混乱的全连接,可以显式惩罚反馈连接(即 $T_{ji}$ 这种反向连接),强制网络长成前馈 (Feed-forward) 结构。

优化算法

  • 采用 模拟退火 (Simulated Annealing) 优化 $D$。这是一个在“规则空间”而非“权重空间”的搜索过程。
  • 具体学习流程:
    1. 初始化:随机初始化分解矩阵 $D$(所有参数为0或微小随机值)。
    2. 生成与评估:
      • 在小尺度(如 $n=2, 3, 4$)上,利用当前的 $D$ 和递归公式生成具体的连接矩阵 $T(n)$。
      • 运行任务(Forward Pass),计算这些小网络在训练集上的误差 $E_{task}$。
    3. 计算总能量:$E(D) = E_{task} + E_{parsimony} + E_{ff}$。
    4. 扰动与更新:
      • 随机修改 $D$ 中的某个参数(例如改变一个 $D_{pq}^{ab}$ 的值)。
      • 如果新的总能量降低,则接受修改;如果升高,以一定概率接受(Metropolis 准则)。
    5. 循环:不断降低温度,直到 $D$ 收敛。
    6. 外推 (Scaling):学习结束后,固定 $D$ 不变,直接利用递归公式生成大尺度(如 $n=8, 10, \dots$)的网络用于实际任务,无需再进行任何训练。

3. EXPERIMENTS WITH THE CONTINUOUS CODE PROBLEM

实验设置

  • 问题定义:Continuous Coding Problem。
    • 输入:$N$ 个神经元(Unary表示,仅一个激活)。
    • 输出:$A = 2 \log N$ 个神经元(二进制编码)。
    • 区分输入输出:在此实验中,Lineage Tree 被设计为两部分,一部分作为 Input Block,一部分作为 Output Block。连接矩阵 $T$ 主要关注从 Input 到 Output 的区域(即前馈区域)。
  • 目标函数:使得几何上接近的输入产生 Hamming 距离接近的输出编码。
  • 神经元更新:离散阈值函数 $s_i(t+1) = \frac{1}{2} [1 + \operatorname{sgn}(\sum T_{ij} s_j)]$。

实验结果

  1. Scaling 能力验证:
    • 训练范围:$n=2 \dots 5$ ($N=4 \dots 32$)。
    • 测试范围:$n=6 \dots 8$ ($N=64 \dots 256$)。
    • 结果:GNN 在未见过的 $n=8$ 大规模网络上,性能优于直接在 $n=8$ 上进行模拟退火优化的基准方法(Control)。
  2. 计算效率:GNN 训练耗时固定,外推几乎零耗时,比直接训练大网络快数个数量级。
  3. 发现的结构:学习到的矩阵显示出 Walsh Functions 的模式,证明了规则自动发现了有效的数学变换结构。

4. EXTENSIONS OF THE GNN THEORY

4.1. Structured Trees

  • 动机:不仅学习连接权重,还学习 Lineage Tree 的结构(即自主决定哪些神经元存在,哪些是输入/输出)。

4.2. Function Similarity Matrix

  • 动机:在模板库很大时,利用模板间的功能相似性加速搜索。

4.3. GNN Summary

最终的 GNN 优化框架总结为:全局优化 $D$(连接规则)、$\omega$(树结构规则)和 $S$(相似性)。

Previous

© 2025 Ze Rui Liu.