@gklambauer: 图解循环:从 Amari-Hopfield 网络到 GPT-6 Astra 第一篇博客。循环自 GPT 以来一直在讨论…

X AI KOLs Timeline 论文

摘要

一篇由 Günter Klambauer 撰写的博客文章,提供了神经网络中循环的图解概述,追溯其历史从 Amari-Hopfield 网络到 GPT-6 Astra 的提及,并根据循环模式对各种架构进行分类。

图解循环:从 Amari-Hopfield 网络到 GPT-6 Astra 第一篇博客。循环自 GPT-6 发布以来一直在讨论,但其使用可以追溯到几十年前。https://gklambauer.github.io/recurrence-overview/…
查看原文
查看缓存全文

缓存时间: 2026/09/21 09:46

图解递归:从 Amari-Hopfield 网络到 GPT-6 Astra

来源:https://gklambauer.github.io/recurrence-overview/

关于机器学习中递归的若干说明 —— Günter Klambauer,2026年9月

17种神经网络架构概览,按无递归、沿时间递归、全网络递归和沿深度递归进行分类 (https://gklambauer.github.io/recurrence-overview/weight-sharing-axes6.svg)
图1:神经网络中的递归,按重复内容与轴向分类。
每个子图展示一种架构的计算展开过程,从输入(底部)到输出(顶部)。顶行包含无递归架构(蓝色)、沿时间递归(绿色)和全网络递归(紫色)。底行包含沿深度递归(橙色)。相同填充图案标识相同权重,即重复绘制的同一层。带×T或×L的虚线框表示沿时间或深度共享权重的循环。右侧紫色箭头标记作为输入返回的输出。带有粉色背景的灰色子图(GPT-6 Astra)基于未经证实的报道。大多数生产级大语言模型属于第一类,而最充分利用递归特性的架构位于底行。

我注意到递归在机器学习与人工智能中不断被重新发明,或者说以多种形式被使用。递归的基本形式为:

\[x^{l+1} = F(x^l)\]
其中 F 可以是神经网络、层或层块,它反复应用于自身输出。图1总结了下文讨论的所有架构。在继续之前:我对递归的看法可能存在偏差且不完整。若需深入探究此主题,请参考 Jürgen Schmidhuber 全面且详尽的综述:《深度学习在神经网络中的综述》(https://gklambauer.github.io/recurrence-overview/#ref-schmidhuber2015)。

对于神经网络,递归用隐藏状态 h^l、输入 x、层或块 f 及其权重 w 表示:

\[h^{l+1} = f(h^l, x; w)\]
权重不带索引,因为每一步都使用相同权重。F 表示整个神经网络。全文中“递归”指顺序重用:步骤 l+1 消耗步骤 l 的结果。仅权重共享不构成递归(见第0.2节),而“绑定”即“共享”。

下文按迭代内容及共享权重的方式对神经网络架构进行分类。共分为四类,加上无递归基线:

    1. 无递归 (https://gklambauer.github.io/recurrence-overview/#0-no-recurrence):h^{l+1} = f(h^l; w_l)
    1. 沿时间递归 (https://gklambauer.github.io/recurrence-overview/#1-recurrence-along-time):h^{t+1} = f(h^t, x^t; w)
    1. 全网络递归 (https://gklambauer.github.io/recurrence-overview/#2-whole-network-recurrence):x^{l+1} = F(x^l; w)
    1. 沿深度递归 (https://gklambauer.github.io/recurrence-overview/#3-recurrence-along-depth):h^{l+1} = f(h^l; w)
    1. 全网络与深度递归 (https://gklambauer.github.io/recurrence-overview/#4-whole-network-and-depth-recurrence-hrm-trm-se-rrm):双层嵌套循环,例如 HRM、TRM 和 SE-RRM

类别2与3的区别在于循环闭合位置。全网络递归中,网络的输出成为其下一次输入。深度递归中,循环在单次前向传播内的隐藏状态上进行,通常周围是未绑定的层。需注意这些类别并非互斥。也存在使用 h^{t+1} = f(h^t; w) 的网络,这将同时属于类别1和3(l 解释为时间)。本博客主要以深度时间作为区分架构的主轴。其他轴包括梯度截断停止策略输入注入。第3.8节将涉及前两者。

0. 无递归

0.1 深度神经网络:Highway网络、ResNet及众多架构

经典神经网络,特别是深度网络 (https://gklambauer.github.io/recurrence-overview/#ref-schmidhuber2015),如深层 MLP (https://gklambauer.github.io/recurrence-overview/#ref-snn)、Highway网络 (https://gklambauer.github.io/recurrence-overview/#ref-highway) 或 ResNet (https://gklambauer.github.io/recurrence-overview/#ref-resnet),具有分层结构:

\[y = F(x;w) = f_L( \ldots f_2( f_1(x; w_1); w_2) \ldots; w_L) = f_L \circ \cdots \circ f_2 \circ f_1 (x)\]
其中所有这些层或块 f_l(h^l; w_l) 具有不同的权重 w_l,且尺寸可能完全不同。每个层或块拥有完全不同的权重实际上值得注意,因为这些 f_l 结构相似,原则上可以共享权重(图2)。因此,这些神经网络无需任何递归即可将输入映射为输出,y = F(x; w),其中 w = [w_1,\\ldots, w_L] 收集所有层的权重。

逐步构建的ResNet;每个块具有不同的填充图案
图2:ResNet没有递归。
动画从输入(底部)构建网络至输出(顶部)。每个块有不同填充图案,即其自身权重,前向传播仅访问每个块一次。这些块结构相同且可以共享权重,但实际并未共享。

0.2 Transformer大语言模型(如GPT、Llama、DeepSeek等)

基于 Transformer (https://gklambauer.github.io/recurrence-overview/#ref-transformer) 的大语言模型(LLMs),如 GPT (Radford et al., 2018 (https://gklambauer.github.io/recurrence-overview/#ref-gpt);Brown et al., 2020 (https://gklambauer.github.io/recurrence-overview/#ref-gpt3))、Llama (https://gklambauer.github.io/recurrence-overview/#ref-llama) 或 DeepSeek (https://gklambauer.github.io/recurrence-overview/#ref-deepseek),将多个输入标记 \(x^1, \\ldots, x^T\) 映射为一个输出标记 x^{T+1}。与第0.1节相同:L 个层或块各有其权重 w_l,前向传播恰好访问每个一次(图3)。深度方向无权重共享,也无递归。

具有不同填充图案的Transformer大语言模型块栈,将输入标记映射为输出标记
图3:Transformer大语言模型是没有递归的深度网络。
输入标记从底部进入,虚线框表示待预测的下一个标记。如同图2的ResNet,每个块拥有独立权重(不同填充图案)且仅被访问一次。此设计适用于几乎所有开源大语言模型,从GPT-2到当前模型。Sebastian Raschka的LLM架构库 (https://gklambauer.github.io/recurrence-overview/#ref-raschka-gallery) 收录了超过百个当前开源大语言模型,从GPT-2到Llama 3、Qwen3、DeepSeek V3、Gemma、Mistral、GLM、Kimi和OLMo。几乎所有都属于此类:结构相同的Transformer块栈,每个块拥有独立权重,每次前向传播仅访问一次。架构库的差异在于注意力变体(分组查询注意力、多头潜在注意力、滑动窗口注意力)、归一化层放置方式,以及前馈块是密集型还是混合专家型。这些都不改变权重共享格局。即便是将部分注意力层替换为Mamba-2或线性注意力层的层间混合架构(如Nemotron 3或Qwen3-Next (https://gklambauer.github.io/recurrence-overview/#ref-qwen)),也仅在单个层内添加了沿时间的递归(第1.2节)。深度方向上它们仍保持未绑定状态。

一个值得注意的点:Transformer确实在位置间共享权重:相同的投影在每个标记处运行。这是权重共享,但非递归:位置是并行计算的,步骤 t 并不消耗步骤 t-1

1. 沿时间递归

1.1 RNN/LSTM

循环神经网络(如 Elman, 1990 (https://gklambauer.github.io/recurrence-overview/#ref-elman))将递归应用于隐藏表示 h^t,每步消耗一个序列元素 x^t

\[h^{t+1} = f(h^t, x^t; w)\]
LSTM (Hochreiter & Schmidhuber, 1997) (https://gklambauer.github.io/recurrence-overview/#ref-lstm) 携带一个通过时间的加性、无门控路径的单元状态,c^{t+1} = c^t + i^t \\odot g^t,其中 i^t 是输入门,g^t 是单元输入。后来的遗忘门 (Gers et al., 2000 (https://gklambauer.github.io/recurrence-overview/#ref-gers)) 使此路径具有门控特性。请记住这条路径以用于深度部分。LSTM也驱动了首个大规模神经语言模型 (Jozefowicz et al., 2016 (https://gklambauer.github.io/recurrence-overview/#ref-jozefowicz))。图4展示了两个堆叠的循环层。

在五个时间步上展开的两个堆叠RNN层
图4:循环网络沿时间共享权重。
第一层(普通单元)每时间步读取一个标记,并将隐藏状态向右传递。每个步骤(×T)应用相同的单元。具有自身权重的第二层(斜线填充单元)以相同方式在其上运行。权重沿时间共享,但两层之间不共享。

1.2 线性状态层:mLSTM (https://gklambauer.github.io/recurrence-overview/#ref-mlstm)、GLA (https://gklambauer.github.io/recurrence-overview/#ref-gla)、Gated DeltaNet (https://gklambauer.github.io/recurrence-overview/#ref-gdn)、Mamba (https://gklambauer.github.io/recurrence-overview/#ref-mamba)

在推理时,线性状态层像经典RNN一样运行,每标记一步,时间复杂度与序列长度呈线性关系。然而,其状态更新是线性的。因此,训练时可以并行计算所有时间步的更新,例如通过并行扫描或分块处理。它们的祖先是快速权重编程器 (Schmidhuber, 1991 (https://gklambauer.github.io/recurrence-overview/#ref-fastweight);Schlag et al., 2021 (https://gklambauer.github.io/recurrence-overview/#ref-fastweight2)):未归一化的线性注意力(除符号外)即为快速权重记忆,DeltaNet (https://gklambauer.github.io/recurrence-overview/#ref-gdn) 直接源自这一脉络。这些架构堆叠了多个此类层,且层之间共享权重(图5)。共享发生在每层内部,沿时间方向。一些近期大语言模型(如 Qwen3-Next (https://gklambauer.github.io/recurrence-overview/#ref-qwen))是层间混合体:部分线性状态层,部分经典注意力层。

三个堆叠的线性状态层沿时间展开,每层有不同填充图案
图5:线性状态层沿时间递归,而非沿深度。
mLSTM、门控线性注意力和Gated DeltaNet等架构堆叠了多个循环层。每层是一个时间循环(×T),拥有独立权重,由三种不同填充图案表示。与经典RNN不同,线性状态更新允许训练时并行计算时间步。

1.3 学会思考 (Schmidhuber 2015, Sec. 5.3) (https://gklambauer.github.io/recurrence-overview/#ref-ltt)

学会思考是一种两个RNN交互的方法,即使用沿时间轴的递归。它比潜在推理早十年。

学会思考:一个世界模型M和一个控制器C,均沿时间展开,C向M发送查询
图6:学会思考让控制器在潜在空间中查询世界模型。
世界模型M(普通)读取输入并随时间运行。控制器C(斜线填充)在上方运行,拥有自身权重,并读取M的状态。最后阶段,C向M发送查询(对角箭头)并读取回答,然后C产生输出。两个网络都沿时间递归。它们彼此不共享权重,且没有一步产生文本。两个循环网络交互:具有状态 c^t 的控制器 C 和具有状态 m^t 的世界模型 M(图6):

\[c^{t+1} = f_C(c^t, m^t; w_C)\]
世界模型通过自身递归演化,权重为 w_MC 学习向 M 发送自生成的向量查询并读取向量回答,明确不是自然语言,旨在用抽象迭代替代逐毫秒的展开规划。每个网络在时间 t 上共享自身权重,它们彼此不共享。被递归的序列是内部的,而非从输入读取。这是潜在推理,即不产生标记的推理,比该术语出现早十年。

2. 全网络递归

全网络递归将神经网络的输出作为其下一次输入反馈:

\[x^{l+1} = F(x^l; w)\]
其中 F 是具有权重 w 的整个神经网络,权重在迭代间共享。F 内部没有绑定,其内部层可以任意异构。整个 F 重复出现。

2.1 深度均衡模型 (Bai, Kolter & Koltun 2019) (https://gklambauer.github.io/recurrence-overview/#ref-deq)

DEQ不逐步运行迭代,而是直接求解固定点 z^\\star

\[z^\star = F(z^\star, x; w)\]
使用如Broyden法的求根算法。梯度通过隐函数定理在解处计算。因此,不存储迭代值,内存与迭代次数成常数关系。经典GNN已使用固定点公式。DEQ扩展了均衡网络视角,并提供了特别简洁的隐微分公式。

DEQ也可属于第3节。函数 F 可以是整个网络,如图7所示,或单个权重绑定层。在后一种情况下,DEQ是第3.2节Almeida-Pineda网络的现代形式。

深度均衡模型:具有输入注入的三层网络,重复直至达到固定点
图7:深度均衡模型求解整个网络的固定点。
输入被注入每一层(左侧箭头)。网络(此处三层各有其权重)被反复应用(紫色框,×∞),直至其输出停止变化,z^\\star = f(z^\\star, x)。DEQ不逐步运行此循环。相反,求根算法直接计算固定点。使用单个绑定层的相同构造会将DEQ置于第3节。

2.2 AlphaFold2循环 (Jumper et al., 2021) (https://gklambauer.github.io/recurrence-overview/#ref-alphafold)

AlphaFold2运行整个Evoformer加结构主干,将预测结构作为输入反馈并重复(图8)。推理时,初始传递后跟三次循环传递,共四次。内部块各有其权重。整个 F 重复出现,而其内部深度大部分未绑定。训练时,传递次数随机采样,梯度仅流经最后一次传递。

AlphaFold2循环:主干输出作为输入返回四次
图8:AlphaFold2循环自身预测。
主干(四个具有独立权重的块)产生结构预测。预测作为输入返回(右侧箭头),整个主干再次运行。推理时,循环运行四次:一次初始传递和三次循环传递。训练期间仅最后一次传递接收梯度。

2.3 扩散模型

相似文章

GPT-6 Astra 使用 Loop Transformers

Reddit r/singularity

SemiAnalysis 的推文报道了 GPT-6 Astra,这是一个采用 Loop Transformers 的 AI 模型,暗示了 AI 开发中的一种新架构方法。

递归陷入疯狂

Hacker News Top

本文探讨递归AI过程如何导致图像和文本输出的退化,并通过使用AI模型如Nano Banana 2和Gemini进行实验来说明,以讨论生成式AI中的模型崩溃和稳定性。