1. 引言:容量——联想记忆的根本限制

存储容量(storage capacity)是联想记忆理论的核心问题:给定个神经元,能存储多少个记忆模式?超过此容量会怎样?

┌─────────────────────────────────────────────────────────────────────┐
│                     Hopfield容量演进史                                │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  经典Hopfield (1982)    密集AM (Krotov 2016)    现代Hopfield (2020)  │
│  C ≈ 0.14 d             C ~ d^(a-1) log d       C ~ 2^(d/2)          │
│        ↓                       ↓                       ↓            │
│      线性                  多项式                     指数           │
│                                                                     │
│                    球面码视角 (NeurIPS 2024)                         │
│                    C ≤ 紧界(首次匹配下界)                           │
│                    U-Hop+ 算法达到最优容量                             │
└─────────────────────────────────────────────────────────────────────┘

容量理论经历了三次飞跃:

  1. 经典Hopfield(1982-1985):
  2. 密集联想记忆(Krotov 2016, Demircigil 2017):多项式 → 指数容量
  3. 现代Hopfield(Ramsauer 2020):指数容量 + 注意力等价
  4. 最优容量(Hu-Wu-Liu NeurIPS 2024):首次给出紧上界

本文档系统梳理这些理论。

1.1 关联文档


2. 经典Hopfield容量(1982-1985)

2.1 存储容量公式

经典Hopfield网络个二元神经元,Hebbian权重):

Amit 1985严格分析

个随机模式,每个分量独立等概率,神经元数,模式维度

定义负载参数(load):

关键定理(Amit-Gutfreund-Sompolinsky 1985, AGS):

  • 时,检索成功(每个存储模式都有吸引域)
  • 时,检索失败(出现混合态,无法分离模式)
  • 临界容量,即

2.2 容量推导

方法:统计物理中的Replica方法(用于计算自由能)。

个随机模式,是当前状态(假设在模式附近):

局部场:

串扰噪声方差独立):

检索条件:信号必须主导噪声

临界:求解,得

2.3 信息论界(McEliece 1987)

McEliece 严格界

个神经元(每状态比特),模式数,每个模式比特,总信息比特。权重矩阵个独立参数(对称、零对角)。因此:

但加上纠错冗余,AGS界给出,比信息论界更紧。

2.4 检索失败模式

时:

  1. 混合态(mixture states):吸引子对应多个模式的混合
  2. 自旋玻璃态(spin glass states):随机吸引子,无对应存储模式
  3. 非检索态(non-retrieval states):无法收敛到任何吸引子

相变图

        负载 α
         ↑
         │
   检索   │ ← 临界α_c ≈ 0.138
   ───────┼─────────────────→ 噪声T
         │
   混合态 │
   ───────┤
         │
 自旋玻璃│
         │

2.5 改进:非对称连接、稀疏模式

放宽随机性假设

  • 稀疏模式:每个模式中只有个非零分量。容量提升到(Tsodyks-Feigel’man 1988)
  • 高度结构化模式(如正交):容量可达(完美的
  • 非对称连接:容量显著提升(突破AGS界)

3. 密集联想记忆容量(Krotov 2016)

3.1 多项式能量

Krotov-Hopfield 2016:将经典Hopfield能量推广为:

其中是单调递增函数。经典Hopfield对应

多项式选择(归一化)

3.2 多项式容量

Krotov-Hopfield 2016定理:多项式能量的容量为:

其中是常数。

特例

  • (经典):AGS结果
  • (线性)
  • (二次)
  • 一般(多项式)

3.3 容量提升的本质

为什么多项式提升容量

能量次多项式。这意味着:

  1. 存储模式的能量井更深、更窄
  2. 模式之间的分隔更明显
  3. 可以容纳更多模式

精确公式

存储模式的能量:

亚稳态(在两个模式中间)的能量:

能量差(检索信号):

热噪声:当时,模式检索成功。临界满足,给出容量

3.4 Demircigil 2017:指数容量

指数函数

关键定理:存储个模式,每个模式都能以指数小误差检索。

证明概要

设模式位于球面上。模式的能量:

若任意两个不同模式的内积是模式分离度),则:

非存储模式)的能量:

(混合态能量也接近)。

关键:当,单模式能量仍占主导(深度),模式检索成功。

更严格推导(Demircigil 2017):


4. 现代Hopfield容量(Ramsauer 2020)

4.1 容量下界

Ramsauer 2020定理

维存储模式,最小模式分离度,检索误差,现代Hopfield容量:

简化:对典型参数

指数增长:容量以的指数增长,远超经典Hopfield的线性。

4.2 检索误差

Ramsauer 2020定理2

是噪声)出发,单步Hopfield检索:

指数小误差:检索误差随模式分离度指数衰减。

4.3 模式分离条件

核心条件:模式能可靠检索需要:

即每个模式与自身的内积大于它与其他模式的最大内积。

球面上的几何

,则。最大内积,其中是模式之间的最小角度。

模式分离度

4.4 容量与模式数的关系

渐近行为(Demircigil + Ramsauer):

模式数检索行为
完美检索,所有模式可达
检索成功,误差指数小
检索失败,模式间串扰主导

对比

模型容量增长
经典Hopfield ()线性
多项式准线性
多项式二次
指数 (Demircigil)指数
现代Hopfield指数

5. 容量上界(NeurIPS 2024突破)

5.1 长期未解决的问题

经典问题(2017-2024):

现代Hopfield的容量上界是多少?指数下界是否紧?

Ramsauer 2020只给出下界(至少能存储),但上界(最多能存储多少)一直未严格证明。

5.2 Hu-Wu-Liu NeurIPS 2024突破

论文Provably Optimal Memory Capacity for Modern Hopfield Models: Transformer-Compatible Dense Associative Memories as Spherical Codes. NeurIPS 2024.1

核心思想:将存储模式视为球面码(spherical code),最大容量=最优球面码的大小。

5.3 球面码理论

球面码定义:上的点集,任意两点之间的角度

球面码容量 = 满足最小角度的最大点数。

已知界(信息论/代数结果):

其中是常数(依赖)。

5.4 模式分离与球面码的对应

关键观察

模式的检索需要:

等价于任意两个模式之间的角度,其中:

因此:可靠检索的存储模式形成上的球面码,码的大小受限制。

5.5 Hu-Wu-Liu 紧界

主定理

设存储模式,最小模式分离,现代Hopfield容量:

其中决定,是球面码容量。

关键推论:当模式在球面上均匀分布、(正交模式)时,,匹配下界,下界)。

结论:指数下界是紧的(可达,且上界匹配)。

5.6 U-Hop⁺算法

Hu-Wu-Liu提出:基于球面码的最优存储算法U-Hop⁺,在亚线性时间内构造最优容量存储:

# 伪代码
def U_hop_plus(d, M, beta):
    """
    构造最优Hopfield存储。
    
    输入:
        d: 模式维度
        M: 目标存储数(可达上界)
        beta: 逆温度
    """
    # 1. 在 S^{d-1} 上构造球面码
    # 使用Welch界或代数构造(Hamada、Feng-Rao)
    codes = construct_spherical_code(d, M, theta_0=optimal_angle(d, M))
    
    # 2. 投影到 √d 球面
    patterns = codes * (d ** 0.5)
    
    # 3. 验证模式分离
    min_separation = compute_min_separation(patterns)
    assert min_separation > 0
    
    return patterns

5.7 实践意义

Transformer架构的容量瓶颈

实践中,Transformer的事实记忆能力受限制:

  • 注意力矩阵秩
  • 检索模式
  • 容量

改进方向

  • 增大(但成本高)
  • 优化存储模式的几何(球面码)
  • 使用稀疏Hopfield(精确检索,容量更紧)

6. 稀疏Hopfield容量

6.1 稀疏模式

稀疏存储模式:每个模式只有个非零分量(稀疏度)。

容量提升:稀疏模式之间”几乎正交”,串扰小:

,稀疏容量远高于稠密容量。

6.2 稀疏注意力

稀疏注意力权重稀疏化(top-k或阈值)。

Hopfield视角:检索只使用少数存储模式:

其中是top-相关模式。

容量影响

  • 稀疏检索更精确(避免亚稳态)
  • 容量可能略降(可访问的模式少),但虚假态
  • Fenchel-Young框架下,sparsemax有精确检索保证(容量=存储数)

6.3 稀疏Hopfield的精确检索

Santos 2024定理:稀疏Hopfield网络(sparsemax、-entmax)的精确检索容量:

:所有个存储模式都能精确检索,无虚假态。

对比

  • 经典softmax Hopfield:(近似检索)
  • 稀疏sparsemax Hopfield:精确检索)

精确检索的条件:模式完全分离(),sparsemax激活单一模式,无混合。


7. 非参数现代Hopfield容量(ICML 2025)

7.1 非参数视角

Hu et al. ICML 20252:将Hopfield检索重新解释为核非参数回归

其中是核函数(softmax形式),是查询依赖的正则化。

7.2 非参数容量

非参数现代Hopfield容量

随存储数亚线性增长,但检索时间也亚线性()。

权衡:容量与检索时间的权衡——非参数Hopfield牺牲容量换取检索速度。

7.3 与Transformer注意力对比

指标标准Transformer非参数Hopfield
容量
检索时间
检索精度近似精确
适用场景中等

8. 容量的实践影响

8.1 Transformer事实记忆

事实记忆:Transformer参数存储训练数据中的”事实”(如”巴黎是法国的首都”)。

Hopfield视角:每个事实对应一个存储模式,Transformer通过QKV检索事实。

事实容量

对LLaMA-7B():

巨大但不可达:实践中容量受多种因素限制。

8.2 容量瓶颈

实际限制(Bhojanapalli et al. 2020):

  1. 低秩瓶颈:注意力矩阵秩,高维模式被压缩
  2. 虚假态干扰:未存储模式也可能有非零注意力权重
  3. 训练数据有限:存储模式必须通过学习获得
  4. 嵌入空间非最优:训练的模式分布可能不是球面码

8.3 容量提升方法

方法效果代价
增大指数提升计算成本
稀疏注意力精确检索容量可能略降
多头注意力多通道检索复杂度
KV Cache优化容量不变内存
Hopfield视角设计优化存储训练成本
Titans/MIRAS动态记忆训练复杂

8.4 模式的几何优化

球面码视角(Hu-Wu-Liu 2024):

如果存储模式是最优球面码(最大最小角度),则可达容量上界。

实践方法

  • 训练正则化:鼓励嵌入均匀分布在
  • 对比学习:通过InfoNCE/InfoLOOB形成良好分离
  • 球面归一化:所有嵌入归一化到单位长度

9. 实验与验证

9.1 容量实验

import torch
import torch.nn.functional as F
import matplotlib.pyplot as plt
 
 
def capacity_experiment():
    """测试不同Hopfield模型的容量"""
    d = 32  # 模式维度
    results = {}
    
    for M in [10, 50, 100, 200, 500, 1000, 2000, 5000]:
        if M > 2 ** (d // 2) * 100:
            continue
        
        # 生成随机模式(球面归一化)
        patterns = torch.randn(M, d)
        patterns = F.normalize(patterns, dim=-1) * (d ** 0.5)
        
        # 测试检索精度
        beta = 1.0 / (d ** 0.5)
        n_test = min(20, M)
        errors = []
        
        for i in range(n_test):
            # 加噪声
            query = patterns[i] + 0.3 * torch.randn(d)
            query = F.normalize(query, dim=-1) * (d ** 0.5)
            
            # Hopfield检索
            scores = torch.einsum('d,nd->n', query, patterns) * beta
            attn = F.softmax(scores, dim=-1)
            retrieved = torch.einsum('n,nd->d', attn, patterns)
            
            errors.append((retrieved - patterns[i]).norm().item())
        
        avg_error = sum(errors) / len(errors)
        results[M] = avg_error
        print(f"M={M:5d}, 平均误差={avg_error:.4f}")
    
    return results
 
 
def compare_models():
    """比较不同模型的容量"""
    d = 24
    M_max = 2000
    
    models = {
        'Classical Hopfield (linear)': M_max * 0.14 / d,
        'Quadratic DAM (a=2)': d * np.log(d),
        'Modern Hopfield (exp)': 2 ** (d // 2),
    }
    
    for name, cap in models.items():
        print(f"{name}: 容量 ≈ {cap:.0f}")
 
 
if __name__ == "__main__":
    import numpy as np
    print("=== 容量实验 ===")
    capacity_experiment()
    
    print("\n=== 模型对比 ===")
    compare_models()

9.2 模式分离可视化

def visualize_pattern_separation():
    """可视化模式分离对检索的影响"""
    d = 16
    M = 20
    beta_values = [0.5, 1.0, 5.0, 10.0]
    
    patterns = torch.randn(M, d)
    patterns = F.normalize(patterns, dim=-1) * (d ** 0.5)
    
    for beta in beta_values:
        # 测试检索
        n_correct = 0
        for i in range(M):
            query = patterns[i] + 0.5 * torch.randn(d)
            query = F.normalize(query, dim=-1) * (d ** 0.5)
            
            scores = torch.einsum('d,nd->n', query, patterns) * beta
            retrieved_idx = scores.argmax().item()
            
            if retrieved_idx == i:
                n_correct += 1
        
        accuracy = n_correct / M
        print(f"β={beta}: 检索准确率 = {accuracy:.2%}")
 
 
if __name__ == "__main__":
    visualize_pattern_separation()

10. 容量理论的开放问题

10.1 仍未解决的问题

  1. Transformer的实际容量:实践中的事实记忆数量与下界相差多大?
  2. 虚假态的影响:检索时落入虚假态的概率如何量化?
  3. 超大规模容量时容量理论是否仍成立?
  4. 混合架构容量:Transformer+SSM的容量如何分析?

10.2 未来方向

  • 有限步检索:多层Transformer vs 多步Hopfield检索的容量对比
  • 非平衡态:训练过程中容量的演化
  • 物理实现:Hopfield网络的物理实现(光子、自旋玻璃)的容量

11. 总结

核心要点

  1. 经典Hopfield(线性,临界负载
  2. 密集AM:多项式容量
  3. Demircigil 2017:指数容量
  4. Ramsauer 2020:现代Hopfield下界(与注意力等价)
  5. Hu-Wu-Liu 2024:首次证明紧上界(球面码视角),指数容量是最优

容量演进图

容量
 ↑
 │
 │                                        现代Hopfield
 │                                       ╱ 2^(d/2)
 │                                      ╱
 │                                  ╱──╱
 │                              ╱──╱  最优上界 (2024)
 │                          ╱──╱
 │                      ╱──╱   密集AM (2016)
 │                  ╱──╱      d^(a-1) log d
 │              ╱──╱
 │          ╱──╱   经典Hopfield
 │      ╱──╱      0.14 d
 │  ╱──╱
 └──────────────────────────────────→ 模式维度 d

进一步阅读


脚注

Footnotes

  1. Hu, J. Y.-C., Wu, D., & Liu, H. (2024). Provably Optimal Memory Capacity for Modern Hopfield Models. NeurIPS 2024. arXiv:2410.23126.

  2. Hu, J. Y.-C., Chen, B.-Y., Wu, D., Ruan, F., & Liu, H. (2025). Nonparametric Modern Hopfield Models. ICML 2025. PMLR 267:24232–24269.