Disentangling feature and lazy training in deep neural networks
Mario Geiger, Stefano Spigler, Arthur Jacot, Matthieu Wyart
cs.LG, stat.ML
2019-06-19
用输出缩放 α 扫过无限宽网络的两个极限:α√h ≫ 1 时 NTK 冻结、全连接网更好;α√h ≪ 1 时核随训练演化,卷积网在 CIFAR-10 上更好。
无限宽神经网络有两条被写清楚的极限。最后一层按 h^{-1/2} 缩放时,动力学线性化,由冻结的 Neural Tangent Kernel(NTK,神经正切核)描述。最后一层按 h^{-1} 缩放时,进入 mean-field:神经元参数的分布满足一个偏微分方程,特征会动。两条极限都有理论,但实践里网络落在哪一侧、哪一侧泛化更好,当时仍在吵。
Chizat 与 Bach 已经指出,给输出乘一个大系数会把训练推进「懒惰」区,权重几乎不动。这篇把这个旋钮做成系统实验:训练 F(w,x)=α[f(w,x)-f(w0,x)],在 (α,h) 平面上扫,看测试误差、输出涨落、核的演化。
主干实验用三层等宽全连接网、Softplus 激活、连续时间梯度流,在 Fashion-MNIST 上做二分类,训练集 1 万张。损失是软 hinge,过参数化后有限时间停。α 扫 11 个数量级,每个点训练 10 到 20 个随机初始化,既看单模型也看集成平均。
懒惰区的操作定义是:训练结束时核几乎等于初始化核,测试误差贴上冻结 NTK 的曲线。特征区的定义是核发生 O(1) 的相对变化。分界由 α√h 控制。作者还换了 MNIST、CIFAR-10、EMNIST、CNN 加 ADAM,检查这条分界是不是设定相关。
两条制度被 α=Θ(h^{-1/2}) 切开。把测试误差对 α√h 做仿射重标后,不同宽度的曲线叠在一起。α√h 很大时,误差收敛到冻结 NTK;再增大 α 不再涨。
输出相对集成平均的涨落在两个区都按 Var F ∼ 1/h 衰减,即 δF ∼ h^{-1/2}。加宽带来的收益,很大一块是把初始化噪声抹掉:集成平均的测试误差几乎不随 h 变,平台对应 h→∞ 的单模型。固定 α 时,加宽会把 α√h 推过 1,于是从特征区滑进懒惰区,这解释了「过宽之后集成误差反而变差」的旧观察。
动力学也不一样。特征区里存在时间尺度 t1∼α√h:t≪t1 时仍近似线性;t∼t1 时输出涨了约 √h 倍,核开始大动。最终 ‖ΔΘ‖/‖Θ0‖ ∼ (α√h)^{-a},ReLU 与 Softplus 上 a<2,深度增加时 a 趋向 2。三层网测到 a≈1.3,标度论证给出 a=2/(1+1/L)=1.66。懒惰区核变化按 1/(α√h),与 NTK 涨落理论一致。ReLU 还有一段中间区,核变化 ∼ α^{-1/2}。
哪一侧更好,看架构和数据。全连接加梯度流,在 Fashion-MNIST、MNIST、EMNIST、CIFAR-10 上都是懒惰区更低。四层 CNN 加 ADAM 在 CIFAR-10 上是特征区更好;同一 CNN 在 Fashion-MNIST 上最优落在中间 α。把 MNIST 压到前 10 个主成分后,特征区略占优。
以后报「无限宽」或「NTK 解释了深度学习」,先声明落在 α√h 的哪一侧。这条轴会改结论。实践上,全连接网继续加宽、做集成,往往就停在懒惰区;卷积网想吃到特征训练,要把输出尺度压到 α∼h^{-1/2} 附近。涨落 ∼ h^{-1/2} 在两边都成立,中等宽度上独立训练再平均,可以买到加宽才有的那部分收益。
这是渐进改进加一张相图,不是新算法。相图本身有用:它把「核动不动」从口头描述变成可测的 α√h。
主干设定是全连接、Softplus、梯度流、二分类、1 万样本,离 ImageNet 交叉熵加 ADAM 很远。CNN 结果更像对照,不是系统扫描。a 的理论值 2/(1+1/L) 与测到的 1.3 仍有缝,作者把各层同等放大当作简化。α√h 小于 10^{-4} 时方差爆炸,那一块被搁下。后续工作显示,训练集大小 p 变大时,CNN 上特征区的学习曲线指数可以优于懒惰区;这篇的 10^4 样本结论不能直接外推到全量数据。