<center>Neural Network Zoo(Fjodor van Veen,Asimov Institute,2016)
Neural Network Zoo(Fjodor van Veen,Asimov Institute,2016)

关于这张图

Fjodor van Veen 2016 年在 Asimov Institute 发布的 A mostly complete chart of Neural Networks(常被叫作 Neural Network Zoo),用「单元类型 + 连接方式」画了 27 种网络。

看图时注意两点:

  • 它停在 2016 年,当时已有的家族也没收全。Transformer、Mamba、CLIP 是后来才出现的;GNN(2009)、MoE(1991)、扩散模型(2015)当时已经有了,只是后来才成为主流,图上同样没有
  • 马尔可夫链(MC)和支持向量机(SVM)严格说不算神经网络,作者放进来是为了对照

本笔记把图里的 27 种和图外的架构合在一起,按家族重新排列。

怎么读这篇

结构

部分 内容
第一部分 从单个神经元到一个能训练的网络:激活、损失、反向传播、优化器、训练循环、训练工程
第二部分 15 个网络家族,图内图外一起讲
第三部分 组合与范式:预训练与微调、真实系统怎么拼、怎么读一篇论文的架构
第四部分 按数据结构选网络的总表,以及几张横向对比表
第五部分 时间线
附录 全部网络一览表

排序规则:同一级内按热度从高到低排。热度指 2024–2026 年在研究和工程里的使用与讨论程度,属于我的判断。家族之间、家族内部都按这条规则。有前后依赖的(比如 LSTM 要先懂 RNN 的递推),公共机制放在家族开头的「x.0」小节先讲,这样家族里可以直接从最热的那个讲起。第一部分是一条从神经元到训练的流水线,各小节按依赖顺序排;小节内部的并列选项(几种激活函数、几种优化器)仍按热度排。

每个网络的固定格式

  1. 架构图(每个小节开头,统一画法,图例见图例:单元类型)
  2. 一句话
  3. 原理与公式
  4. PyTorch 代码
  5. 典型例子
  6. 优势 / 局限
  7. 适合的数据

代码约定

  • 全部 88 段代码都在 CPU 上实测跑通(torch 2.14、torchvision 0.29),多数几秒钟,最慢的一段四十秒左右。结果插图由单独的绘图脚本生成,和正文代码是同一个实验,但样本数、随机种子或展示用的输入可能不同(比如 Hopfield 那张图用字母图案,正文代码用随机模式),图和代码输出不一定一一对应。这些代码对比的是同一实验里的不同配置,宽度、学习率、训练步数没有逐项对齐,不能当作基准测试。小节开头的架构图是示意图,图里标「实测」的数字来自代码输出。正文里「另外换 N 个随机种子」的结果来自单独的重复运行,脚本和日志没有附在笔记里;引用论文的数字按正文给出的作者、年份或论文名查原文
  • 每段代码自带 import,可以单独复制运行
  • 注释里写张量形状:B = batch,T = 序列长度,C = 通道数,H / W = 高 / 宽,D = 特征维度,N = 节点数或点数
  • 代码里的训练数据都是现场合成的小数据,目的是几秒内看到现象。换成真实任务时,模型的主体结构可以沿用,但数据接口、网络尺寸、预处理、输出分布和评估方法都要跟着改,有些类里写死了图像大小、块数、通道数
  • 示例按 CPU 写。换成 CUDA 或 Mac 的 "mps" 时,模型、输入和函数内部新建的张量(位置编码、掩码、初始状态、采样噪声)都要放到同一个设备上,转 NumPy 前要移回 CPU,有些算子在 MPS 上还不支持

实测与常见说法有出入的地方

代码跑出来的结果,有些和教材、论文里的常见说法不完全一致。这些都是小数据、小模型上的玩具实验,能说明一个说法在什么条件下成立、什么条件下不成立,不足以推翻论文结论;常见说法本身多数也只说「容易出现」,没说「每次都出现」。这些地方在对应小节用「常见说法与实测」单独列出,写明常见说法、实测数字和怎么理解(第二部分的「家族」也只是学习索引,注意力、生成目标、自监督、融合这些分法并不互斥):

小节 常见说法 实测
2.2.2 Flow Matching 走直线,一步就能生成 本例(噪声和数据随机配对、没做 reflow)1 步时样本全挤在数据均值(圆心)附近,5 步时才大多回到圆环上
2.2.4 GAN 容易模式塌缩 本例两边学习率平衡时 8 个团的扇区都有样本;把判别器学习率调低后出现塌缩
2.6.3 BYOL 靠预测头、停止梯度、EMA 防塌缩 本例三样都去掉、只保留 BatchNorm 也没塌缩;BatchNorm 也去掉才塌缩
2.6.5 加 L1 就能得到稀疏、可解释的特征 不约束解码器的列范数时,40 个真实特征只找回 1 个
2.8.5 梯度调制能缓解模态不平衡 玩具例子里只补回一部分(0.84 → 0.89,单独训练是 0.94)
2.9.1 GAT 比 GCN 更好 这张社区图上 GCN 0.86、GAT 0.77,换 5 个种子平均 0.85 对 0.78
2.10.1 MC Dropout 离数据越远越不确定 本例外推处 MC Dropout 的标准差反而最小,深度集成的随距离变大
2.10.2 一对多问题用回归会落在几个解之间 解对称时成立;Bishop 的反问题里回归落在某个解旁边
2.11.2 长轨迹一次积分很难训练 本例只是平台期长:训练 300 步卡住,1000 步就拟合好了
2.12.1 Hopfield 容量约 0.138N 要求一位不差地回忆时约 N/(2 ln N)(渐近公式),N = 100 时约 11 个
2.12.5 逐层预训练对少标签有帮助 平均有帮助,但 20 个标签的单次比较可能得出相反结论
2.14.1 ESN 只训练读出层,简单稳定 单步预测都好,自由生成对超参极其敏感
3.2.2 回归会把多峰演示平均掉 只在「同一观测对应多种答案」的状态上明显

图例:单元类型

<center>图例:单元类型
图例:单元类型
<center>图例:单元类型
图例:单元类型

每个小节开头的架构图都按这套约定画:神经元连线图里的单元类型和开头那张图一致;方框流程图用同一套颜色区分模块(数据黄、计算绿、输出橙、循环蓝、卷积粉、注意力紫、损失红,噪声和运算是两种灰),实线箭头是前向,虚线箭头是梯度或只在训练时存在的连接;填色变淡、边框为虚线的模块是冻结不训练的部分,不填色的虚线框只是把一组模块圈在一起(比如「× N 层」)。下表是开头那张图的单元说明:

图例 中文 含义 图中哪些网络用到
Input Cell 输入单元 接收原始数据 几乎所有
Backfed Input Cell 回馈输入单元 输入单元同时被网络回写,同一组单元既当输入又当输出 HN、BM、RBM、DBN、GAN
Noisy Input Cell 带噪输入单元 输入先被加噪或遮挡 DAE
Hidden Cell 隐藏单元 加权求和 + 激活函数,最普通的神经元 大部分
Probabilistic Hidden Cell 概率隐藏单元 输出是一次随机采样或一个分布的参数 MC、BM、RBM、DBN、VAE、DCIGN
Spiking Hidden Cell 脉冲隐藏单元 膜电位累积到阈值才发放一个脉冲 LSM
Output Cell 输出单元 网络的输出 大部分
Match Input Output Cell 输入输出匹配单元 输出和输入在同一个空间:AE、VAE、DAE、SAE 有逐样本重建输入的目标;DBN 的可见层和输入同维,用来学数据分布、生成同类数据;GAN 是生成器的输出要像真实数据(匹配分布,不复现某个具体样本) AE、VAE、DAE、SAE、DBN、GAN
Recurrent Cell 循环单元 带自连接,保留上一时刻的状态 RNN、ESN
Memory Cell 记忆单元 带门控的记忆状态 LSTM、NTM
Different Memory Cell 另一种记忆单元 门控结构不同的记忆单元 GRU
Kernel 卷积核 只连一小块邻域,权重在空间上共享 DCN、DN、DCIGN
Convolution or Pool 卷积或池化 卷积层或池化层的输出 DCN、DN、DCIGN

图中 27 种网络在本笔记的位置

按图中从左到右、从上到下的顺序:

图中缩写 名称 本笔记位置
P 感知机 Perceptron 2.4.2
FF 前馈网络 Feed Forward 2.4.3
RBF 径向基函数网络 2.4.5
DFF 深度前馈网络(MLP) 2.4.1
RNN 循环神经网络 2.5.4
LSTM 长短期记忆网络 2.5.1
GRU 门控循环单元 2.5.2
AE 自编码器 2.6.4
VAE 变分自编码器 2.2.3
DAE 去噪自编码器 2.6.6
SAE 稀疏自编码器 2.6.5
MC 马尔可夫链 2.12.2
HN Hopfield 网络 2.12.1
BM 玻尔兹曼机 2.12.4
RBM 受限玻尔兹曼机 2.12.3
DBN 深度信念网络 2.12.5
DCN 深度卷积网络(CNN) 2.3.1
DN 反卷积网络(转置卷积) 2.3.6
DCIGN 深度卷积逆图形网络 2.2.7
GAN 生成对抗网络 2.2.4
LSM 液态机 2.14.3
ELM 极限学习机 2.14.2
ESN 回声状态网络 2.14.1
DRN 深度残差网络(ResNet) 2.3.2
KN Kohonen 网络(自组织映射) 2.15.2
SVM 支持向量机 2.15.1
NTM 神经图灵机 2.15.3

第二部分 网络家族

家族按热度排:

序号 家族 成员(按热度)
2.1 注意力与 Transformer Transformer、GPT 与大语言模型、ViT、Seq2Seq
2.2 生成模型 扩散模型、Flow Matching、VAE、GAN、VQ-VAE、标准化流、DCIGN
2.3 卷积网络 CNN、ResNet、U-Net、目标检测与分割、TCN、转置卷积网络
2.4 前馈网络 MLP、感知机、单隐层前馈网络、KAN、RBF 网络
2.5 循环与序列模型 LSTM、GRU、SSM 与 Mamba、普通 RNN
2.6 自监督与表示学习 对比学习、MAE、自蒸馏与 JEPA、自编码器、稀疏自编码器、去噪自编码器
2.7 混合专家 MoE、MoT
2.8 条件化与多模态融合 交叉与联合注意力、FiLM、门控、超网络、模态不平衡
2.9 图与集合 GNN、PointNet 与 DeepSets
2.10 不确定性与多峰输出 深度集成与 MC Dropout、MDN
2.11 连续与隐式表示 NeRF 与隐式神经表示、Neural ODE
2.12 能量模型与联想记忆 Hopfield、马尔可夫链、RBM、玻尔兹曼机、DBN
2.13 脉冲神经网络 SNN
2.14 储备池与随机网络 ESN、ELM、LSM
2.15 其他经典网络 SVM、SOM、NTM、胶囊网络

标题后面的〔图:XX〕表示这个网络在开头那张图里,XX 是图中的缩写。

附录 全部网络一览

网络 家族 代表性年份 一句话 适合的数据 位置
Transformer 注意力 2017 注意力 + 逐 token FFN,训练完全并行 各种 token 序列 2.1.1
GPT / 大语言模型 注意力 2018 Decoder-only,预测下一个 token 文本、代码、离散化的任何序列 2.1.2
ViT 注意力 2020 图像切块当 token 图像(大数据或有预训练) 2.1.3
Seq2Seq + 注意力 注意力 2014 编码器-解码器 RNN,解码时回看输入 序列到序列 2.1.4
扩散模型 生成 2015 / 2020 学去噪,从噪声迭代生成 连续高维多峰数据 2.2.1
Flow Matching 生成 2022 学从噪声到数据的速度场(常用直线路径) 同上,推理通常更快 2.2.2
VAE 生成 2013 编码成分布 + KL 正则,隐空间可采样 图像、分子、轨迹 2.2.3
GAN 生成 2014 生成器与判别器对抗 图像、图像翻译 2.2.4
VQ-VAE 生成 2017 连续信号量化成离散 token 图像、音频、动作的 tokenizer 2.2.5
标准化流 生成 2014–2018 可逆变换,精确似然 中低维连续数据 2.2.6
DCIGN 生成 2015 卷积 VAE,隐变量对应图形学参数 有已知生成因素的图像 2.2.7
CNN 卷积 1989(LeCun) 局部连接 + 权重共享 网格数据 2.3.1
ResNet 卷积 2015 残差跳线,训练上百层 图像;跳线用于一切深网络 2.3.2
U-Net 卷积 2015 编码-解码 + 同尺度跳线 稠密预测、扩散去噪 2.3.3
YOLO / Mask R-CNN 卷积 2016 / 2017 检测框和实例掩码 多物体图像 2.3.4
TCN / WaveNet 卷积 2018 / 2016 因果膨胀卷积 时间序列、音频 2.3.5
转置卷积网络 卷积 2010 逐层上采样生成网格输出 图像生成、分割掩码 2.3.6
MLP 前馈 1986(反向传播) 全连接层堆叠 表格、低维状态、各种头 2.4.1
感知机 前馈 1958 单个神经元 + 阶跃,线性边界 线性可分特征 2.4.2
单隐层前馈网络 前馈 1986 一层隐藏层即可解 XOR 低维小数据 2.4.3
KAN 前馈 2024 边上是可学习的一元函数 低维科学函数 2.4.4
RBF 网络 前馈 1988 局部高斯响应的加权和 低维插值与控制 2.4.5
LSTM 循环 1997 细胞状态 + 三个门 中长时间序列 2.5.1
GRU 循环 2014 两个门的简化 LSTM 实时、资源受限的序列 2.5.2
SSM / Mamba 循环 2021(S4)/ 2023 线性状态空间,训练并行、推理递推 超长序列 2.5.3
普通 RNN 循环 1990(Elman) 隐状态递推 短序列 2.5.4
对比学习 / CLIP 表示学习 2020 / 2021 正样本靠近、负样本推远 成对、多视角数据 2.6.1
MAE 表示学习 2021 遮住 75% 再补回来 图像、视频、点云 2.6.2
BYOL / DINO / JEPA 表示学习 2020–2023 学生预测 EMA 老师的表征 无标注图像、视频 2.6.3
自编码器 表示学习 1986 / 2006 压缩再还原 降维、异常检测 2.6.4
稀疏自编码器 表示学习 2000s 过完备 + 稀疏激活 叠加特征、模型可解释性 2.6.5
去噪自编码器 表示学习 2008 从腐蚀的输入还原干净输入 带噪信号 2.6.6
MoE 混合专家 1991 / 2017 路由到 top-k 个专家 FFN 超大规模多样数据 2.7.1
MoT 混合专家 2024 按模态分参数,共享注意力 异构多模态序列 2.7.2
交叉 / 联合注意力 条件化 2014 / 2017 按内容检索条件 结构化的条件 token 2.8.1
FiLM 条件化 2018 条件生成逐通道的缩放和平移 全局条件向量 2.8.2
门控融合 条件化 — 任务状态决定每个模态的开度 有用性随阶段变化的模态 2.8.3
超网络 条件化 2016 一个网络生成另一个网络的权重 多任务、多条件 2.8.4
梯度调制 条件化 2022 训练时压低占优模态的梯度 难易不均的多模态 2.8.5
GNN(GCN、GAT) 图与集合 2017 / 2018 节点反复聚合邻居 图 2.9.1
PointNet / DeepSets 图与集合 2017 逐元素共享 + 对称池化 点云、集合 2.9.2
深度集成 / MC Dropout 不确定性 2017 / 2016 用多个模型或多次前向的分歧估计不确定度 安全攸关、数据稀疏 2.10.1
MDN 不确定性 1994 输出高斯混合分布 一对多映射 2.10.2
NeRF / INR 连续表示 2020 MLP 表示坐标上的连续信号 三维场景、连续场 2.11.1
Neural ODE 连续表示 2018 网络定义导数,积分得输出 连续时间动力学 2.11.2
Hopfield 网络 能量模型 1982 能量谷底存储记忆 二值模式补全 2.12.1
马尔可夫链 能量模型 1906 下一状态只看当前状态 离散状态序列 2.12.2
RBM 能量模型 1986 / 2002 二分结构的玻尔兹曼机 + CD 二值数据、协同过滤 2.12.3
玻尔兹曼机 能量模型 1985 随机的 Hopfield 网络 小规模二值分布 2.12.4
DBN 能量模型 2006 堆叠 RBM 逐层预训练 无标签多、标签少 2.12.5
SNN 脉冲 1990s / 2019 积分发放 + 替代梯度 事件流 2.13.1
ESN 储备池 2001 随机循环储备池 + 线性读出 低维时间序列 2.14.1
ELM 储备池 2004 随机隐藏层 + 最小二乘输出 中小规模特征向量 2.14.2
LSM 储备池 2002 脉冲储备池 + 线性读出 脉冲序列 2.14.3
SVM 经典 1992 / 1995 最大间隔 + 核技巧 中小规模特征 2.15.1
SOM 经典 1982 网格神经元竞争、拓扑保持 聚类与可视化 2.15.2
NTM 经典 2014 控制器 + 可微读写的外部记忆 算法类序列任务 2.15.3
胶囊网络 经典 2017 向量胶囊 + 动态路由 部件关系重要的小图像 2.15.4