统计物理视角看神经网络泛化
机器学习本质上是一个拟合(fitting)问题:给定数据点,找到一个函数 f(x) 来映射输入到输出。只不过在ML里,f 可以有高达 10¹² 个参数,不是线性回归里那两个系数。
怎么拟合这么复杂的 f 呢
定义一个 loss function(训练损失函数),用数值方法最小化它。这个loss function 约等于物理学里的能量——训练的过程就是在寻找能量最低的状态。
泛化(Generalization)
拟合得太复杂会出现过拟合(overfitting)——训练集误差小,测试集表现差。
为了避免这种情况,可以用独立的测试集来监控过拟合。测试集不参与训练,所以模型在测试集上的表现就叫"泛化性能"。
熵影响泛化
假设:loss landscape 中熵更高的极小值点,泛化能力更好。
结论:
1. 这个效应在 transformer 学习算术任务时尤其明显
2. 在无限宽神经网络中会消失
3. 训练好的神经网络可能偏离平衡态,导致次优泛化
4. 通过扰动提高熵可以改善泛化表现
"Tilting the Playing Field"
怎么主动提高熵来改善泛化?
没有用传统的平均损失 L = (1/N)ΣLᵢ,而是引入了一个随时间振荡的权重 𝛤ᵢ(t):
L = (1/N)Σ 𝛤ᵢ(t) · Lᵢ
每一个数据点对 loss 的贡献都乘上一个随时间震荡的权重。在 CIFAR-10 数据集上,用 Myrtle5 神经网络分类,调节权重振荡的周期(Period)和振幅(Amplitude),泛化性能确实得到了改善。
推测原因是振荡破坏了尖锐的极小值点(sharp minima),而平坦的极小值点(flat minima)泛化得更好。
Grokking 系统中的熵
在更小规模的 transformer 学习任务时,熵的效应尤其大。用 2D 相图对比 max entropy 状态和 AdamW 训练的轨迹,可以看到平衡态的优势非常明显。
用统计物理的工具(Wang-Landau 方法、熵的概念、振荡扰动)重新理解神经网络的泛化问题,并证明了"熵越高,泛化越好"这一假设在特定条件下成立。
















