论文标题: 深度网络优化:通过过参数化实现隐式加速(On the Optimization of Deep Networks: Implicit Acceleration by Overparameterization)

所属机构: 普林斯顿大学计算机科学系,谷歌大脑

论文地址https://proceedings.mlr.press/v80/arora18a.html

摘要 (Abstract)

  • 传统观点: 增加深度学习网络深度能提高表达能力 (expressiveness),但会使优化 (optimization) 更加复杂。
  • 本文核心观点 (反直觉): 有时,增加深度可以加速优化
  • 研究对象: 为了将深度对优化的影响与表达能力解耦,本文聚焦于线性神经网络 (linear neural networks)。在线性网络中,增加层数相当于过参数化 (overparameterization),即多个线性层的组合仍然可以用一个参数更少的单层线性层表示。
  • 主要发现: 理论分析和实验表明,深度在此类网络中扮演了预处理器 (preconditioner) 的角色,可以加速梯度下降的收敛。
  • 具体例子: 即使在简单的凸优化问题(如 p>2 的 p-范数损失线性回归)上,从单层模型转换到非凸的过参数化(深层线性)模型,其梯度下降的收敛速度可能比原始凸问题上的梯度下降甚至一些常见的加速方案更快。
  • 理论限制: 证明了这种过参数化带来的加速效果无法通过任何固定正则化器的梯度来数学上实现。

1. 引言 (Introduction)

  • 核心问题: 深度在深度学习中如何起作用?传统观点认为是表达能力和优化之间的权衡。
  • 深度提升表达能力: 已被理论证实(虽然是在有限的问题上)。
  • 深度增加优化难度: “梯度消失/爆炸”问题是众所周知的。BN、残差连接等技术部分缓解了这个问题。
  • 本文的反直觉信息: 增加深度有时可以加速优化
  • 方法论:

    • 分离表达能力与优化: 通过研究线性神经网络,其中增加深度只引入过参数化,不改变模型的可表达函数范围。
    • 分析工具: 直接处理与梯度下降相关的微分方程来分析优化动态。
  • 过参数化的效果:

    • 深度引入的过参数化使得梯度下降表现得像是在训练一个浅层(单层)网络,但使用了特定的预处理方案 (preconditioning scheme)
    • 这种预处理方案促进了沿着优化已走方向的移动,可以看作是动量 (momentum)自适应学习率 (adaptive learning rates) 的结合。
  • 惊人结果: 在 p>2 的 p-范数损失线性回归上,过参数化(深度)不仅优于朴素梯度下降,甚至比 AdaGrad 和 AdaDelta 等著名加速方法更快。
  • 数学不可能性: 强调了这种加速效果不能通过简单的正则化项实现。

2. 相关工作 (Related Work)

  • 深度学习优化理论:

    • 临界点分析: 研究训练目标函数景观中的局部最小值、鞍点等(线性网络: Kawaguchi, Hardt & Ma; 非线性网络: Choromanska 等)。
    • 目标函数景观的其他特性: Safran & Shamir 发现特定条件下存在从初始化到全局最优的单调下降路径。
  • 优化动态分析 (线性网络):

    • Fukumizu (1998), Saxe et al. (2013) 研究了线性网络的梯度下降动态(通过微分方程)。
    • 与本文的区别:Fukumizu 只考虑了 L2 损失和两层网络;Saxe 等人考虑了任意深度但只关注 L2 损失,并得出深度减慢优化的结论(与本文 p>2 时不同)。本文分析适用于通用损失函数任意深度 (包括1层)
  • 通用优化方法:

    • 加速梯度/动量: Nesterov (1983) 引入,后续大量研究。核心是累积历史梯度信息。
    • 预处理: 牛顿法(二阶信息)。
    • 自适应预处理 (一阶信息): BFGS 及其变种。AdaGrad (Duchi et al., 2011) 在后悔最小化背景下提供了理论保证。
    • 结合动量与自适应预处理: Adam (Kingma & Ba, 2014) 是常用方法。

3. 热身:p-范数回归 (Warmup: p Regression)

  • 研究对象: 带有 p-范数损失 (p 为正偶数整数) 的标量线性回归:L(w) = E[(xw - y)^p / p]
  • 过参数化: 将标量参数 w 替换为 w1 * w2 (w1 是 d 维向量,w2 是标量)。目标函数变为 L(w1, w2) = E[(x w1 w2 - y)^p / p] (非凸)。
  • 核心观察 (Observation 1):L(w1, w2) 进行梯度下降(固定小学习率,近零初始化),等价于对原始 L(w) 进行梯度下降,但带有特定的时变自适应学习率和动量项

    • 推导过程显示,w = w1 * w2 的更新规则可以写成 w(t+1) ≈ w(t) - ρ(t)∇w(t) - γ(t)w(t) 的形式,其中学习率 ρ(t) 和动量相关项 γ(t) 都依赖于 w2(t)
    • 由于 w(t) 是过去梯度的加权组合,这表明过参数化隐式地引入了动量。

4. 线性神经网络 (Linear Neural Networks)

  • 定义: 深度为 N 的线性神经网络是将输入 x 映射为 WN * W(N-1) * ... * W1 * x 的模型,其中 Wj 是第 j 层的权重矩阵。
  • 与单层线性模型的关系 (Eq. 3): N 层线性网络的损失函数 L_N(W1, ..., WN) 等于单层线性模型的损失函数 L_1(We),其中 We = WN * ... * W1 是端到端的等效权重矩阵。
  • 关键: 增加深度 N 带来的唯一区别是用矩阵乘积 WN*...*W1 替代了单一矩阵 We

5. 梯度下降的隐式动态 (Implicit Dynamics of Gradient Descent)

  • 核心结果 (Theorem 1 & Claim 1):

    • 目标: 分析在 N 层线性网络上进行梯度下降时,端到端等效权重矩阵 We 的动态。
    • 方法: 使用连续时间模型(微分方程)来分析梯度下降动态(假设学习率 η 很小)。
    • 前提条件 (Eq. 7): 假设权重初始化满足 W(j+1)W(j+1)^T = Wj Wj^T (当初始化接近零时近似满足)。
    • 定理 1 (Eq. 8): 推导出 We 的微分方程。它显示 We 的变化率不仅依赖于原始损失 L1We 的梯度 dL1/dW,还受到涉及 We 本身的复杂矩阵乘积(包含分数幂)的调制。
    • 离散时间更新规则 (Eq. 10): 将微分方程转换回离散时间更新规则。
    • 关键洞察 (Claim 1 & Eq. 11):We 的梯度下降更新,可以看作是对原始单层模型 L1 的梯度 dL1/dW 进行预处理 (preconditioning) 后的梯度下降。

      • 这个预处理矩阵 P_W(t)正半定的,并且其特征向量和特征值与 We奇异值分解 (SVD) 相关。
      • 具体来说,特征向量是 u_r v_r' 形式的秩一矩阵(u_r, v_r'We 的左右奇异向量),对应的特征值是 Σ_{j=1..N} (σ_r^2)^{(N-j)/N} * (σ_r'^2)^{(j-1)/N}σ_r, σ_r' 是对应的奇异值)。
  • 解释:

    • 当 N=1 时,预处理矩阵是单位阵,退化为标准梯度下降。
    • 当 N≥2 时,预处理矩阵会放大与具有较大奇异值对应的梯度方向(即 u_r v_r'),这些方向代表了 We 中已经存在的“强”成分。
    • 这表明过参数化(深度 N≥2)会隐式地促进沿着优化已经取得进展的方向移动
  • 与宽度无关: 更新规则只依赖于深度 N,不依赖于隐藏层的宽度 n1, ..., n(N-1)。这意味着仅增加深度就足以获得加速效果,无需增加宽度(计算成本)。
  • 5.1 单输出情况 (Single Output Case)

    • 简化: 当输出维度 k=1 时 (We 是一个行向量),更新规则 (Eq. 12) 简化为:更新方向不仅包含原始梯度 dL1/dW,还包含其在 We 方向上的投影,并且这个投影被放大了 N 倍。学习率也被自适应地调整了(乘以 ||We||_2^{2-2/N})。
    • 解释: 再次表明预处理放大了当前参数方向上的梯度分量,并根据参数的模长调整学习率(离原点越远,学习率越大)。这可以看作是一种自适应学习率+动量的组合。

6. 过参数化效果无法通过正则化获得 (Overparametrization Effects Cannot Be Attained via Regularization)

  • 动机: 能否通过给原始单层目标函数 L1 增加一个正则化项 R(W) 来模拟过参数化的效果?因为过参数化的更新规则也是 W 的梯度形式 F(W)
  • 定理 2: 证明(对于单输出情况且 N≥2)不存在一个函数(正则化项),其梯度恰好等于过参数化引入的有效梯度场 F(W) (Eq. 14 定义)。
  • 证明思路: 利用线积分基本定理。如果 F(W) 是某个函数的梯度,那么它沿着任何闭合路径的线积分必须为零。论文构造了一条闭合路径(Fig. 1),并证明 F(W) 沿着该路径的线积分不为零,从而得出矛盾。
  • 结论: 过参数化改变梯度下降行为的方式与添加正则化项不同,它不能被任何固定的正则化器所模拟。

7. 加速的图示 (Illustration of Acceleration)

  • 目的: 定性地解释为什么过参数化引入的预处理(动量+自适应学习率)可能加速优化。
  • 例子: 一个简单的二维线性回归问题,损失函数是 p-范数,p>2。假设问题是病态的(ill-conditioned),即不同方向上最优解的距离差异很大(y1 >> y2)。
  • 标准梯度下降: 在病态问题上,学习率受限于最“陡峭”的方向(对应 y1),导致在较“平缓”的方向(对应 y2)收敛非常慢。坐标之间没有“通信”。
  • 过参数化梯度下降 (Eq. 12):

    • 坐标之间是耦合的。当一个坐标(如 w1 接近 y1)接近最优时,其模长增大。
    • 这会通过预处理项 ||We||_2^{2-2/N} 增大整体学习率,从而加速另一个坐标(w2)的收敛。
    • 同时,梯度在 We 方向上的投影被放大,也起到了类似动量的作用,进一步加速优化。
  • 结论: 过参数化通过隐式的自适应学习率和动量机制,促进了不同优化方向之间的“通信”,从而在病态问题上可能实现加速。

8. 实验 (Experiments)

  • 目标: 验证理论分析的有效性,并展示过参数化在实践中的加速效果。
  • 实验一 (Fig. 2): 验证端到端更新规则

    • 在真实数据集上比较了直接优化深层线性网络(2层、3层)与使用推导出的等效预处理方案优化单层模型的收敛曲线。
    • 结果:两者曲线高度吻合,验证了理论分析(Eq. 12)在实践中的准确性。同时观察到隐藏层宽度(1 vs 100)对收敛影响很小。
  • 实验二 (Fig. 3): 深度对收敛的影响

    • 比较了不同深度(1, 2, 3层)线性网络在 L2 和 L4 损失下的最优收敛速度。
    • 结果:

      • L2 损失:深度增加轻微减慢了收敛(与 Saxe 等人结论一致)。
      • L4 损失:深度增加显著加速了收敛(与理论预期一致)。
  • 实验三 (Fig. 4 left): 与显式加速方法对比

    • 比较了深度3线性网络的梯度下降与单层模型使用 AdaGrad/AdaDelta 的收敛速度(L4 损失)。
    • 结果:过参数化(深度3)比 AdaGrad 和 AdaDelta 更快,尽管它把凸问题变成了非凸问题。
  • 实验四 (Fig. 4 right): 与 Adam 对比

    • 比较了 Adam 优化器在不同深度(1, 2, 3层)线性网络上的表现。
    • 结果:深度增加也能加速 Adam 的收敛。这表明过参数化的加速效果可能与显式加速方法(如 Adam 的动量和自适应学习率)部分正交。
  • 实验五 (Fig. 5 left): 更深网络与初始化

    • 比较了更深网络(4层、8层)在近零初始化和近单位阵初始化下的收敛。
    • 结果:

      • 近零初始化:深层网络遭遇梯度消失,收敛很慢或停滞。
      • 近单位阵初始化(类似残差网络):解决了梯度消失问题,网络可以正常训练,且深度再次展现出一定的加速效果。
  • 实验六 (Fig. 5 right): 非线性网络

    • 在一个简单的 MNIST 卷积网络教程中,将全连接层替换为深度为 2 的线性网络(过参数化)。
    • 结果:过参数化(仅增加约 15% 参数)显著加速了随机梯度下降(带momentum)的收敛。

9. 结论 (Conclusion)

  • 核心贡献: 通过理论和实验证明,通过增加深度来过参数化神经网络可以加速优化,即使在简单问题上也是如此。
  • 理论解释: 线性网络的分析表明,深度引入的过参数化可以被理解为一个具有闭式解的预处理方案,它结合了自适应学习率和动量的形式。这种加速效果依赖于网络深度而非宽度,因此可以在最小的计算代价下实现。
  • 实践意义: 即使是将凸优化问题(如 p>2 的 p-范数回归)转变为非凸的过参数化问题,也可能比使用经典的凸优化加速算法更快。这挑战了传统观念。
  • 开放问题: 这种隐式加速效应能否被严格量化?其与显式加速方法(动量、自适应正则化)的关系如何?

本文由mdnice多平台发布


一只云卷云舒
1 声望0 粉丝