《伤寒论》学习笔记

\[\newcommand{\cur}[1]{\left\{#1\right\}} \newcommand{\t}{\text} \newcommand{\E}{\mathop{\mathbb E}\limits} \newcommand{\d}{\mathrm d} \newcommand{\R}{\mathbb R} \newcommand{\co}[2]{{\color{#1}{#2}}} \newcommand{\mat}[1]{{\begin{matrix}#1\end{matrix}}} \newcommand{\eps}{\epsilon} \]

Introduction

Intro

Representation Theory:一个函数是否足够有表现力。

Optimization Theory:如何找到合适的参数?

Generalization Theory:这组参数是否在未见过的场合仍然适用?

我们关注两件事:

  • 这个东西是否是连续的?只有连续的才有 BP 的可能性,离散的不好。
  • 这个东西是否可以外推?

Supervised Learning

有一组数据 \((X,Y)=\cur{(x_i,y_i)}\),希望学习到一个函数 \(f\) 使得 \(f(x_i)\approx y_i\)

如何衡量一个函数是优是劣?定义 loss function 是函数 \(l(f,x_i,y_i)\),计算使用 \((x_i,y_i)\) 衡量的函数 \(f\) 的优劣程度。

  • 对于 分类 (classification) 的任务,它一般就是 \([f(x_i)=y_i]\)。有一个问题是其不可微。
  • 对于 回归 (regression) 即目标是实数的任务,它一般是一个距离的 metric,例如 \(\|f(x_i)-y_i\|^2\)
  • 这是单个 \(l(f,x_i,y_i)\) 的定义;对于数据集 \((X,Y)\),即有 \(L(f,X_,Y)=\dfrac1N\sum l(f,x_i,y_i)\)

寻找最小化 \(L\)\(f\) 的过程被称作 最优化 (optimization)。但是模型会死记硬背,因此除此之外模型还要学会 泛化 (generalization) 能力。

如何确保模型有好的泛化能力呢?一个非常常用的实际技巧是 验证 (validation)。分成 训练集 (training set) 和 验证集 (validation set)。这两者都是在训练阶段公开的:一般会将训练数据按照某种比例划分为训练集与验证集。而真正验证模型效果的,是 测试集 (test set)。至于理论技巧呢?之后会有的。

一个小 trick 是所谓的 交叉测试 (cross validation):将数据集分成 \(K\) 部分,然后重复 \(K\) 次:每次取第 \(i\) 部分作为测试集、其它作为训练集得到一个 \(\hat f_i\),然后将它们「取平均」得到最终的 \(f\)

关于训练集,可以定义所谓的 经验分布 (empirical distribution) \(\Pr\big((x_i,y_i)\big)=\dfrac1N\),即所有训练数据本身构成的分布,同样也是模型训练中接收到的所有数据;随着样本数目增加,经验分布会趋近于真实的 总体分布 (population distribution) \(D_X,D_Y\)。训练集、验证集和测试集都被视作从总体分布中随机采样得到。

\(f\) 本质要优化的是 population loss \(L_\t{population}=\E_{X,Y\sim D_X,D_Y}L(f,X,Y)\)。因为总体分布不可知,使用 \(L_\t{test}=L(f,X_\t{test},Y_\t{test})\) 进行近似。ML 的终极目标不是优化测试误差——而是优化总体误差!

一个事实是,最小化经验分布误差即 \(L_\t{train}\) 的函数,不一定最小化总体误差或者 \(L_\t{test}\),即使在凸优化的场合亦然。

这就导致优化的过程中可能出现 欠拟合 (underfit) 或 过拟合 (overfit)。这两者都是对模型本身的描述:前者模型表现力过弱,后者则是过强(以致于 hard code 等作弊做法也可以做到)。欠拟合的典型现象是坏的 \(L_\t{train}\),但是泛化问题不显著,一般 \(L_\t{test}\) 会是一样坏的(而非显著更坏);过拟合的典型现象是接近 \(0\)\(L_\t{train}\),但常常伴随着很坏的 \(L_\t{test}\)

为了抑制过拟合,传统的想法是对模型的表现力加以限制,此乃 regularization

但是更现代的做法是隐式的做法,使得 即使过拟合,也没有坏的 \(L_\t{test}\)

按:古老的想法是,\(L_\t{train}\to0\) 就是 overfit,也就是说把低的 \(L_\t{train}\),与 \(L_\t{train}\)\(L_\t{test}\) 间的 cap,两件事混为一谈。因此要 显式地限制模型的能力,让 \(L_\t{train}\to0\) 这件事不会发生。

现代的想法是,因为多了很多 隐式的约束\(L_\t{train}\) 接近 \(0\)\(L_\t{test}\) 同样好,两件事是可以同时发生的。因此一切看模型的实际表现(即 \(L_\t{test}\)),不再因为它可能的 gap 就模型模型的能力。

总结:旧想法——模型能力强是原罪;现代想法——模型效果差才有罪。

于是,古老的想法就认为,在一个简单但 \(L_\t{test}\) 劣的函数和一个复杂但 \(L_\t{test}\) 优的函数间,有时我们应该选择前者 (即 regularization)。但现代已经不这么想了。

Unsupervised Learning

Supervised Learning 是在学习 \(x\mapsto y\) 的映射,而 Unsupervised Learning 没有标签,因此只能学习数据的分布。比如说:

  • 聚类 (clustering):将数据标记为几个临近的团。其不存在唯一解,最终求出的东西与 loss function 相关。
  • 主成分分析 (principle component analysis, PCA):找到数据中最主要的成分。例如,最小化均方距离的直线。
  • 生成式模型 (generative model):all you need is at 是……是吗? - Troverld - 博客园。我们需要 data distribution,因为这样就可以快速采样并获取数据。当然,我们无法「描述」一个分布——我们一般只支持从中采样。
  • 异常检测 (anomaly detection):检查与其它数据有较大偏移的数据点。
  • 数据降维 (dimension reduction):将高维数据压缩到低维。SVD 可以作线性降维——但很遗憾,并非所有数据点都处于一个线性子空间中,有时子空间处于一个复杂的低维流形中(但是维度确实是可以被压缩的)。

Semi-supervised Learning

少量的有标签数据和大量的无标签数据。为了使用无标签数据来协助预测,引入 连续性假设 (continuity assumption):相似的数据更可能具有相似的标签。因此,数据可以有几何边界来划分不同的标签。(无标签数据在其中起到了构建连通块的作用)

No Free Lunch

No-Free-Lunch Theorem:令 \(A\) 为任何 \(X\) 上的二分类 learning algorithm。令 \(m\) 为任何小于 \(|X|/2\) 的数,表示训练集大小。则存在一个 \(X\times\cur{0,1}\) 上的 training dataset \(D\),满足:

  • 存在一个 \(L_D(f)=0\) 的函数 \(f\)。即,全集上可以达到零误差。
  • 当从 \(D\) 中随机采样 \(m\) 个数据组成 \(S\) 时,以至少 \(\dfrac17\) 的概率,有 \(L_D(A(S))\geq1/8\)。即,只要训练数据不足一半,则 non-negligible 地,训练失败。

Optimizer

神经网络训练的思想即为,设计 简单 的结构,使得其可以具有大量参数;使用随机数 简单 初始化所有参数,收集很多 简单 的数据,跑一个 简单 的优化方法,但最终得到一个 复杂 的模型。这是因为参数空间非常大,具有强的表达能力。

优化方法有以下简单分类:

  • 零阶优化方法 (zero-th order methods):只知道 \(f(x)\) 即可优化。显然,其很难达到最优态,因为知道的信息过少。但是,其适用于某些特殊场合,例如 超参调整不可微函数优化,或是某些 额外信息未知 场合的唯一优化方法。
  • 一阶优化方法 (first order methods):还要知道 \(\nabla f(x)\)
  • 二阶优化方法 (second order methods):还要知道 \(\nabla^2 f(x)\),即 Hessian。因为 Hesse 矩阵太大了,耗时很大。有一些自称为 1.5-th order method 的方法,用了一些手段来近似 Hessian,以降低这个代价。
  • 更高阶的方法因为耗时过长没人用。

虽然这么说,但是基本上大家都只用一种方法,就是 随机梯度下降 (stochastic gradient descent, SGD)。

裸的 SGD 公式就是

\[x_{t+1}=x_t-\eta\nabla f(x_t) \]

其中 \(\eta\) 是学习率。

一般 \(L\) 是 loss。此处的 \(f\) 为待优化函数,也就是 loss。

Lipschitz Continuity and Smoothness Assumption

回忆一些微积分知识。

  • 对于可微函数,梯度为零是局部极小值的 必要条件(因为有鞍点、局部极大值这样的反例)。
  • 对于二阶可微函数,梯度为零、Hessian 正定是局部极小值的 充分条件(因为 Hessian 半正定即存在零特征值时,同样可以依据更高阶的分析来表明其仍是局部极小值)。

考虑将一阶 Taylor 展开式写成如下形式

\[f(w')=f(w)+\nabla f(w)\cdot(w'-w)+\dfrac{g(w')}2\|w'-w\|^2 \]

一般形式下,最后一项可以任意大,这不是我们喜欢的。我们更喜欢所谓的 平滑性假设 (smoothness assumption) 即存在 \(L\) 使得 \(\forall w':|g(w')|\leq L\) 时。其可以推出

\[f(w')\leq f(w)+\nabla f(w)\cdot(w'-w)+\dfrac L2\|w'-w\|^2 \]

即,\(f(w')\) 有一个 二次函数形式的上界


其还有另一种理解方式:回忆起 \(L\)-Lipschitz 连续的知识,即存在常数 \(L\) 使得

\[\forall x,y:\|f(x)-f(y)\|\leq L\|x-y\| \]

那么,如果梯度是 \(L\)-Lipschitz 的,则有 \(\|\nabla f(w')-\nabla f(w)\|\leq L\|w'-w\|\)

这等价于 \(\|\nabla^2 f(x)\|\leq L\),其中不等式左侧是矩阵的 谱范数,即最大奇异值。

一方面,如果 \(\|\nabla^2f(x)\|\leq L\),则有

\[\nabla f(y)-\nabla f(x)=\int_0^1\nabla^2f(x+t(y-x))(y-x)\d t \\\|\nabla f(y)-\nabla f(x)\|\leq\int_0^1\|\nabla^2f(x+t(y-x))\|\cdot\|y-x\|\d t=L\|y-x\| \]

另一方面,对于 \(L\)-Lipschitz 连续的 \(\nabla f\),对于方向 \(d\) 和距离 \(h\),有

\[\|\nabla f(x+hd)-\nabla f(x)\|\leq Lh\|d\| \]

\(h\) 是所有特征向量的方向即可。

于是回到 Lagrange 余项形式的 Taylor 展开式

\[f(w')=f(w)+\nabla f(w)\cdot(w'-w)+\dfrac12(w'-w)^T\nabla^2f(\xi)(w'-w) \]

并结合最大奇异值的性质即表明,平滑性假设等价于梯度的 Lipschitz 连续,等价于函数的二次函数形式上界

事实上,在二阶连续可微的场合,以下三条件等价:

  • 二次限制:\(\|\nabla^2f(x)\|\leq L\)
  • 一次限制:\(\|\nabla f(w')-\nabla f(w)\|\leq L\|w'-w\|\)
  • 零次限制:\(|f(w')-f(w)-\nabla f(w)\cdot(w'-w)|\leq\dfrac L2\|w'-w\|^2\)

一方面,有

\[f(w')\leq f(w)+\nabla f(w)\cdot(w'-w)+\dfrac L2\|w'-w\|^2 \]

另一方面,由对称性,同样可以得到

\[f(w')\geq f(w)+\nabla f(w)\cdot(w'-w)-\dfrac L2\|w'-w\|^2 \]

于是可以得到一张类似下图的东西:

(w,f(w)) ·光滑性下界 ·真实函数 ·光滑性上界

研究这些东西有什么用呢?它可以帮助我们得知学习率 \(\eta\) 的合适值!当 \(w'=w-\eta\nabla f(w)\) 时,有

\[f(w')-f(w)\leq\nabla f(w)\cdot(w'-w)+\dfrac L2\|w'-w\|^2 \\=-\eta\|\nabla f(w)\|^2+\dfrac{L\eta^2}{2}\|\nabla f(w)\|^2 \\=\eta(\dfrac{L\eta}2-1)\|\nabla f(w)\|^2 \]

这意味着,只有在 \(\eta<\dfrac 2L\) 时,才能保证 \(f(w')-f(w)<0\),即迭代是逐步下降的。

这是符合直觉的:当 \(L\) 很大时,就意味着函数很「陡峭」,梯度就会很大,那么就必须乘上一个小的系数以保证总步长相近。

Strongly Convex Function

另一种理解思路是从凸函数的角度理解。一个多元凸函数要满足

\[\forall x_1,x_2\in\R^n,t\in(0,1):f(tx_1+(1-t)x_2)\leq t f(x_1)+(1-t)f(x_2) \]

在可微的场合,也可以写作

\[\mat{f(w')\geq f(w)+\nabla f(w)\cdot(w'-w)&(*)} \]

在二阶可微的场合,也可以写作 Hesse 矩阵半正定。

注意到 \((*)\) 式只限制了一次项,如果再加上一个额外的二次项约束,就得到了

\[f(w')\geq f(w)+\nabla f(w)\cdot(w'-w)+\dfrac{\co{red}\mu}2\|w'-w\|^2 \]

满足该式的函数被称作 \(\mu\)-强凸函数 (\(\mu\)-strongly convex function),其中 \(\mu\) 为正常数。其等价表述为,Hesse 矩阵的最小特征值 \(\geq\mu>0\)


从 Hesse 矩阵特征值的角度分析平滑性假设与强凸函数,是更好的实践。

  • \(L\)-平滑性就是 \(|\lambda|\leq L\)
  • \(\mu\)-强凸就是 \(\lambda\geq\mu\)
  • 限制 \(\lambda\leq k\) 等效于 \(f(w')\leq f(w)+\nabla f(w)\cdot(w'-w)+\dfrac k2\|w'-w\|^2\),等效于 \((\nabla f(x)-\nabla f(y))\cdot(x-y)\leq k\|x-y\|^2\),等效于 \(f(\alpha x+(1-\alpha)y)\geq\alpha f(x)+(1-\alpha)f(y)-\alpha(1-\alpha)\dfrac k2\|x-y\|^2\)
  • 限制 \(\lambda\geq k\) 等效于 \(f(w')\geq f(w)+\nabla f(w)\cdot(w'-w)+\dfrac k2\|w'-w\|^2\),等效于 \((\nabla f(x)-\nabla f(y))\cdot(x-y)\geq k\|x-y\|^2\),等效于 \(f(\alpha x+(1-\alpha)y)\leq\alpha f(x)+(1-\alpha)f(y)-\alpha(1-\alpha)\dfrac k2\|x-y\|^2\)
  • 以上所有限制共同称为 Descent Lemma

特别地,有一个 \(\|\nabla f(x)-\nabla f(y)\|\leq k\|x-y\|\) 只有在 \(|\lambda|\leq k\) 时可以推出,单侧时没有相似结论。

特别地,上述所有证明的核心思想有以下几个:

  • Lagrange 余项形式的 Taylor 展开:\(f(y)=f(x)+\nabla f(x)\cdot(y-x)+\dfrac12(y-x)^T\nabla^2f(\xi)(y-x)\)
  • 关于梯度的 Newton-Leibniz 定理 \(\nabla f(y)-\nabla f(x)=\int_{t=0}^1\nabla^2f\Big(tx+(1-t)y\Big)\d t\cdot(y-x)\)

Convergence Rate over Convex and L-Smooth Function

对于 \(L\)-平滑的凸函数 \(f\),令 \(w^*=\arg\min\limits_wf(w)\)。则当 step size \(\eta\leq\dfrac1L\) 时,由 \(L\)-平滑性,代入前面推出的 \(f(w')-f(w)\leq\eta(\dfrac{L\eta}2-1)\|\nabla f(w)\|^2\) 即得

\[f(w_{i+1})\leq f(w_i)-\dfrac\eta2\|\nabla f(w_i)\|^2 \]

另一方面,由凸性,有

\[f(w_i)\leq f(w^*)+\nabla f(w_i)\cdot(w_i-w^*) \]

于是有

\[f(w_{i+1})\leq f(w_i)-\dfrac\eta2\|\nabla f(w_i)\|^2 \\\leq f(w^*)+\co{cyan}{\nabla f(w_i)}\cdot(w_i-w^*)-\co{cyan}{\dfrac\eta2\|\nabla f(w_i)\|^2} \\=f(w^*)\co{cyan}{-\dfrac1\eta(w_{i+1}-w_i)}\cdot(w_i-w^*)-\co{cyan}{\dfrac1{2\eta}\|w_{i+1}-w_i\|^2} \\=f(w^*)+\co{red}{\dfrac1{2\eta}\|w_i-w^*\|^2}-\dfrac1{2\eta}\Big(\co{red}{\|w_i-w^*\|^2}+2(w_{i+1}-w_i)\cdot(w_i-w^*)+\|w_{i+1}-w_i\|^\Big) \\=f(w^*)+\dfrac1{2\eta}\|w_i-w^*\|^2-\dfrac1{2\eta}\|w_{i+1}-w^*\|^2 \]

总结即得

\[f(w_{i+1})-f(w^*)\leq\dfrac1{2\eta}\|w_i-w^*\|^2-\dfrac1{2\eta}\|w_{i+1}-w^*\|^2 \\\sum_{i=0}^{T-1}f(w_{i+1})-f(w^*)\leq\dfrac1{2\eta}\|w_0-w^*\|^2-\dfrac1{2\eta}\|w_T-w^*\|^2 \\\leq\dfrac1{2\eta}\|w_0-w^*\|^2 \]

因为 \(\eta\leq\dfrac1L\),每一步迭代都是递减的,于是可以放缩到

\[f(w_T)-f(w^*)\leq\dfrac1{2T\eta}\|w_0-w^*\|^2 \]

这意味着,此时的梯度下降,与极值的差以 \(O(1/T)\) 的速率衰减。

Convergence Rate over Non-Convex Case

对于非凸场合其也有少逊一筹的收敛速率。只需对 \(f(w_{i+1})\leq f(w_i)-\dfrac\eta2\|\nabla f(w_i)\|^2\) 直接展开即得

\[\sum_{i=0}^{T-1}\|\nabla f(w_i)\|^2\leq\dfrac2\eta[f(w_0)-f(w^*)] \]

的式子。那么

\[\min_{i=0}^{T-1}\|\nabla f(w_i)\|\leq\sqrt{\dfrac2{\eta T}[f(w_0)-f(w^*)]} \]

这说明有一个 \(O(1/\sqrt T)\) 的收敛速率。

Convergence Rate over Strongly Convex and L-Smooth Function

假如函数进一步具有 \(\mu\)-强凸性呢?区别在于由凸性代入的式子中多了一项,可以使用 \(f(w_i)\leq f(w^*)+\nabla f(w_i)\cdot(w_i-w^*)-\co{red}{\dfrac\mu2\|w_i-w^*\|^2}\)。于是最终式子中也多了同样的一项,变成了

\[f(w_{i+1})-f(w^*)\leq\dfrac1{2\eta}\|w_i-w^*\|^2-\dfrac1{2\eta}\|w_{i+1}-w^*\|^2-\co{red}{\dfrac\mu2\|w_i-w^*\|^2} \]

不要小看这一项,多了它后收敛速率有天壤之别!

\[\sum_{i=0}^{T-1}(1-\eta\mu)^{T-i-1}[f(w_{i+1})-f(w^*)]\leq\sum_{i=0}^{T-1}(1-\eta\mu)^{T-i-1}\Bigg[\dfrac{1-\eta\mu}{2\eta}\|w_i-w^*\|^2-\dfrac1{2\eta}\|w_{i+1}-w^*\|^2\Bigg] \]

其中,右侧裂项相消后可以放缩到 \(\leq\dfrac{(1-\eta\mu)^T}{2\eta}\|w_0-w^*\|^2\),而左侧则有

\[\sum_{i=0}^{T-1}(1-\eta\mu)^{T-i-1}[f(w_{i+1})-f(w^*)]\geq\sum_{i=0}^{T-1}(1-\eta\mu)^{T-i-1}[f(w_T)-f(w^*)] \\=\dfrac{1-(1-\eta\mu)^T}{\eta\mu}[f(w_T)-f(w^*)] \]

于是有

\[f(w_T)-f(w^*)\leq\dfrac\mu2\|w_0-w^*\|^2\cdot\co{red}{\dfrac{(1-\eta\mu)^T}{1-(1-\eta\mu)^T}} \]

其中,右侧只有红色部分与 \(T\) 相关。当 \(T\) 充分大的时候,它表现得如同 \((1-\eta\mu)^T\) 一般,因此是 指数收敛 (exponential convergence) 或称 线性收敛 (linear convergence)。

是的,指数收敛和线性收敛是同一种东西。前者直接刻画误差,常见于数学分析;后者侧重于描述相邻两步误差的常数比例关系,常见于优化理论。事实上稍微思考一下就会发现严格的「线性」收敛并不存在——一个线性函数本来就不是收敛的!因此它必然在刻画别的什么东西是「线性」的。

Polyak-Łojasiewicz Inequality

上述推法和前文中介绍的推法如出一辙,但是它不很优雅。使用一些神秘 trick 可以有更优雅的证法。

首先,在任意点 \(w\) 处对 Hesse 矩阵拆解可以得到,这一点在之前我们已经见到了。

  • 限制 \(\lambda\leq k\) 等效于 \(f(w')\leq f(w)+\nabla f(w)\cdot(w'-w)+\dfrac k2\|w'-w\|^2\)
  • 限制 \(\lambda\geq k\) 等效于 \(f(w')\geq f(w)+\nabla f(w)\cdot(w'-w)+\dfrac k2\|w'-w\|^2\)

它们存在进一步的推论:

[!NOTE]

\(\lambda\geq k\) 时,有

\[\mat{f(w)-f(w')\leq \nabla f(w)\cdot(w-w')-\dfrac k2\|w'-w\|^2 \\=(\nabla f(w)-\nabla f(w'))\cdot(w-w')-\dfrac k2\|w'-w\|^2+\nabla f(w')\cdot(w-w') \\\leq\nabla f(w')\cdot(w-w')+\dfrac1{2k}\|\nabla f(w)-\nabla f(w')\|^2&(\text{配方})} \]

于是换符号得到

\[f(w')\leq f(w)+\nabla f(w)\cdot(w'-w)+\dfrac1{2k}\|\nabla f(w)-\nabla f(w')\|^2 \]

的另一式。

特别地,在 \(w'\) 为全局极值点 \(w^*\) 时,其得到更常用的推论

\[\|\nabla f(w)\|^2\geq2k\Big(f(w)-f(w^*)\Big) \]

而仅凭这个推论,对 \(g(z)=f(z)-\nabla f(w)\cdot z\)——它也满足相同条件——应用之,也反推出原条件。

[!WARNING]

但是,在 \(\lambda\leq k\) 时,其虽然确实存在类似推论,不过还需要补充凸的条件。也即,在 \(0\leq\lambda\leq k\) 的场合,才有类似结论。

这里采取与前一条证明相反的手段,即首先证明极值点处的式子,再扩展至一般场合。有

\[f(w')\leq f(w)+\nabla f(w)\cdot(w'-w)+\dfrac k2\|w'-w\|^2 \]

此式对一切 \(w,w'\) 成立,自然也对 \(w\) 和在 \(w\) 固定时最小化右式的 \(w^\star\)注意此处并非全局最小值!)成立。于是有

\[f(w^\star)\leq f(w)-\dfrac1{2k}\|\nabla f(w)\|^2 \]

由凸性,可以把 \(w^\star\) 放缩为真正的全局最小值 \(f(w^*)\)。即得

\[f(w^*)\leq f(w)-\dfrac1{2k}\|\nabla f(w)\|^2 \]

现在构造 \(g(z)=f(z)-\nabla f(w)\cdot z\),则 \(g\) 同样满足 \(0\leq\lambda\leq k\) 的条件。由凸性有 \(f(z)\geq f(w)+\nabla f(w)\cdot(z-w)\),所以知 \(g\) 的最小值点即为 \(w\)。于是在 \(w'\) 处套用上式,即得

\[f(w)-\nabla f(w)\cdot w\leq f(w')-\nabla f(w)\cdot w'-\dfrac1{2k}\|\nabla f(w')-\nabla f(w)\|^2 \\f(w')\geq f(w)+\nabla f(w)\cdot(w'-w)+\dfrac1{2k}\|\nabla f(w)-\nabla f(w')\|^2 \]

这一套总体可称之为 PL 不等式 (Polyak-Łojasiewicz Inequality)。

Better Proof under Strongly Convex Case

\(f(w_{i+1})\leq f(w_i)-\dfrac\eta2\|\nabla f(w_i)\|^2\) 的式子中代入 PL 不等式即得

\[f(w_{i+1})\leq f(w_i)-\mu\eta(f(w_i)-f(w^*)) \\f(w_{i+1})-f(w^*)\leq(1-\mu\eta)(f(w_i)-f(w^*)) \]

因此 \(f(w_i)-f(w^*)\) 是以 \(1-\mu\eta\) 为衰减因子,线性收敛的,即

\[f(w_T)-f(w^*)\leq(1-\mu\eta)^T\cdot\co{red}{(f(w_0)-f(w^*))} \]

而前一种裂项相消的结论给出的则是

\[f(w_T)-f(w^*)\leq\dfrac\mu2\cdot\dfrac{(1-\eta\mu)^T}{1-(1-\eta\mu)^T}\cdot\co{red}{\|w_0-w^*\|^2} \]

可以发现,一种是与函数差挂钩,另一种是与距离挂钩,这就是二者证明思路的区别。

与距离挂钩的场合也有更复杂的方法,但是可以得到更紧的界。此处不再赘述。

Mini Batches and Stochastic Gradient Descent

裸 GD 的问题:

  • 在数据规模大的时候,计算全梯度很慢。(回忆起,要最小化的 \(f\) 就是 \(L_\t{train}=\dfrac 1N\sum\limits_{i\in\cur{1,\dots,N}}L(f,x_i,y_i)\)——很遗憾出现了一些命名冲突,但聪明的读者应该能自行分辨)
  • 会在驻点停滞。

因此采用 SGD:

\[w_{t+1}=w_t-\eta G_t \]

其中 \(G_t\) 是一个 期望\(\nabla f(w_t)\) 的分布。只需要取一个 \(\cur{1,\dots,N}\) 的随机子集 \(S\) 然后在其上计算 \(\nabla L_\t{mini-batch}\),则其期望仍然是 \(\nabla L_\t{full-batch}\)

  • \(|S|\) 很小的时候,会有一个大的方差。
  • \(|S|\) 很大的时候,会有一个慢的效率。

SGD 的等价表述是

\[w_{t+1}=w_t-\eta(\nabla L(w_t)+\xi_t) \]

其中 \(\xi_t\) 是期望为 \(0\) 的噪声,可以来自于不可控的 batch sampling,也可以手动添加,以处理鞍点等问题。

手动加噪的 GD 也是一种 SGD!

Variance of SGD

SGD 的方差其实也是可以被估测的。延续之前传统,仍然令 \(f\) 是 full-batch 的 loss,在一步迭代中有 \(w_{i+1}=w_i-\eta G_i\),其中 \(G_i\) 是单次 SGD 的 \(\nabla L_\t{mini-batch}(w_i)\),且其期望为 \(\nabla f(w_i)\)

首先来定义一个向量随机变量的方差。这里采取一种名叫 总方差 (Total Variance) 的定义:

\[\t{Var}(X)=\E\bigg[\big\|X-\E[X]\Big\|^2\bigg] \]

它是协方差矩阵的迹。采取这个定义是因为它比协方差矩阵更好分析:同一维方差类似,其有

\[\t{Var}(X)=\E[\|X\|^2]-\|\E[X]\|^2 \]

需要特别注意范数和期望的位置关系!是先取期望再取范数,二者不能交换(之间的关系由 Jensen 不等式确定)。

那么套用 \(G_i\) 的相关性质,即得

\[\t{Var}(G_x)=\E[\|G_x\|^2]-\|\E[G_x]\|^2=\E[\|G_x\|^2]-\|\nabla f(w_i)\|^2 \]

同理,有 \(\E[G_x]=\nabla f(w_i)\),但是 \(\E\|G_x\|\) 却没有简单的描述方法(这也是合理的)。

考虑令 \(\t{Var}(G_x)\)\(\sigma^2\) 的上界。于是有

\[\E[\|G_x\|^2]-\|\nabla f(w_i)\|^2\co{red}\leq\sigma^2 \]


在计算 GD 收敛速度的界时,我们使用了 \(L\)-平滑性得到了 \(f(w_{i+1})\) 的一阶上界(即使用 \(f(w_i)\)\(\nabla f(w_i)\) 描述的上界),然后使用凸性将其与极值点挂钩,最后化成裂项相消的形式并将单调数列放缩至末项得到结果。在计算 SGD 的界时,我们也遵循相似的逻辑。

\(L\)-平滑性,有

\[f(w')\leq f(w)+\nabla f(w)\cdot(w'-w)+\dfrac L2\|w'-w\|^2 \]

这个式子对于一切 \(w,w'\) 均成立。因此,令 \(w\) 为 SGD 中 \(i\) 时刻固定的 \(w_i\)\(w'\) 服从 \(i+1\) 时刻 \(w_{i+1}\) 的分布(该分布由一步取 mini batch 然后 SGD 引导),自然可以得到

\[\E_{w_{i+1}}[f(w_{i+1})]\leq f(w_i)+\E_{w_{i+1}}\Big[\nabla f(w_i)\cdot(w_{i+1}-w_i)\Big]+\E_{w_{i+1}}\Big[\dfrac L2\|w_{i+1}-w_i\|^2\Big] \\=f(w_i)+\nabla f(w_i)\cdot\E_{w_{i+1}}[w_{i+1}-w_i]+\E_{w_{i+1}}\Big[\dfrac{\eta^2L}2\|G_i\|^2\Big] \\=f(w_i)-\nabla f(w_i)\cdot\eta\nabla f(w_i)+\dfrac{\eta^2L}2\E_{w_{i+1}}\Big[\|G_i\|^2\Big] \\=f(w_i)-\eta\|\nabla f(w_i)\|^2+\dfrac{\eta^2L}2\Big(\t{Var}(G_i)+\|\nabla f(w_i)\|^2\Big) \\\co{red}\leq f(w_i)-\eta(1-\dfrac{L\eta}{2})\|\nabla f(w_i)\|^2+\dfrac{\eta^2L}2\sigma^2 \]

这个式子其实是 GD 时

\[f(w')-f(w)\leq\eta(\dfrac{L\eta}2-1)\|\nabla f(w)\|^2 \]

的扩展。当取 \(\sigma=0\) 时 SGD 的式子也即退化为 GD。

仍然假设 \(\eta<\dfrac1L\),于是有

\[\E_{w_{i+1}}f(w_{i+1})\leq f(w_i)-\dfrac\eta2\|\nabla f(w_i)\|^2+\dfrac\eta2\sigma^2 \]

下一步是由凸性与极值点挂钩。将 \(f(w_i)\leq f(w^*)+\nabla f(w_i)\cdot(w_i-w^*)\) 代入,即得

\[\E_{w_{i+1}}f(w_{i+1})\leq f(w^*)+\nabla f(w_i)\cdot(w_i-w^*)-\dfrac\eta2\|\nabla f(w_i)\|^2+\dfrac\eta2\sigma^2 \\=f(w^*)+[\E_{w_{i+1}}G_i]\cdot(w_i-w^*)-\dfrac\eta2\|\E_{w_{i+1}}G_i\|^2+\dfrac\eta2\sigma^2 \\\co{red}\leq f(w^*)+[\E_{w_{i+1}}G_i]\cdot(w_i-w^*)-\dfrac\eta2(\E_{w_{i+1}}[\|G_i\|^2]-\sigma^2)+\dfrac\eta2\sigma^2 \]

我怀疑这几步倒来倒去有点画蛇添足了,但是我懒得把它整理得更加流畅了,反正现在的推理是成立的。

最终得到

\[\E_{w_{i+1}}f(w_{i+1})\leq f(w^*)+\E_{w_{i+1}}[G_i\cdot(w_i-w^*)]-\dfrac\eta2\E[\|G_i\|^2]+\eta\sigma^2 \\=f(w^*)+\dfrac1\eta\E_{w_{i+1}}[(w_i-w_{i+1})\cdot(w_i-w^*)]-\dfrac1{2\eta}\E_{w_{i+1}}[\|w_i-w_{i+1}\|^2]+\eta\sigma^2 \]

这个式子与 GD 时的

\[f(w_{i+1})\leq f(w^*)-\dfrac1\eta(w_{i+1}-w_i)\cdot(w_i-w^*)-\dfrac1{2\eta}\|w_{i+1}-w_i\|^2 \]

本质一致。

于是类似推导得到

\[\E_{w_{i+1}}f(w_{i+1})\leq f(w^*)+\dfrac1{2\eta}\|w_i-w^*\|^2-\dfrac1{2\eta}\|w_{i+1}-w^*\|^2+\eta\sigma^2 \]

于是求和得到

\[\sum_{i=0}^{T-1}(\E_{w_{i+1}}f(w_{i+1})-f(w^*))\leq\dfrac1{2\eta}(\|w_0-w^*\|^2-\|w_T-w^*\|^2)+T\eta\sigma^2\leq\dfrac1{2\eta}\|w_0-w^*\|^2+T\eta\sigma^2 \]

这里体现出把 \(\sigma^2\) 定义为 \(\t{Var}(G_i)\) 上界的必要性:不然所有的 \(\sigma\) 不能直接求和。当然你也可以选择分别定义每一个 \(\sigma_i\),然后令 \(\sigma\) 为它们的上界,此时上面标红的小于等于号可以换成等号。

现在,定义 \(\bar w_T=\dfrac1T\sum_{i=1}^Tw_i\),那么由 Jensen 不等式,有 \(Tf(\bar w_T)\leq\sum_{i=1}^Tf(w_i)\)。两边同时挂上期望后得到

\[\E_{w_1,\dots,w_{T}}Tf(\bar w_T)\leq\sum_{i=1}^T\E_{w_i}f(w_i) \]

然后知

\[\E_{w_1,\dots,w_T}f(\bar w_T)\leq f(w^*)+\dfrac1{2T\eta}\|w_0-w^*\|^2+\eta\sigma^2 \]

回到 GD 时的式子

\[f(w_T)-f(w^*)\leq\dfrac1{2T\eta}\|w_0-w^*\|^2 \]

当时左边推导的 \(w_T\) 其实是放缩不精细导致的,其完全可以被替换成此处的 \(\bar w_T\)

Convergence Rate

现在来分析一下 SGD 的收敛速度。这个式子中有不含 \(T\)\(\eta\sigma^2\) 项,因此单纯靠增加 \(T\) 最终会在某个范围中振荡,无法保证一直趋近于极值。我们必须假设,为了最终被 \(\eps\) 所 bound,可以设置一个与 \(\eps\) 相关的 \(\eta\),但其仍然被视作常数。则取 \(T=\dfrac{2\|w_0-w^*\|^2\sigma^2}{\eps^2},\eta=\dfrac\eps{2\sigma^2}\) 即可。

这表明,要想达到 \(\eps\) 的效果,就需要有 \(O(\eps^{-2})\) 规模的 \(T\),所以在 \(L\)-平滑凸函数上,SGD 的收敛速率即为 \(1/\sqrt T\),慢于 GD 时的 \(1/T\)

我们还对额外具有强凸性的函数上的 GD 得到了更优的线性收敛。现在考虑此时的 SGD,可以直接复用先前结果直接从

\[\E_{w_{i+1}}f(w_{i+1})\leq f(w_i)-\dfrac\eta2\|\nabla f(w_i)\|^2+\dfrac\eta2\sigma^2 \]

开始。代入 PL 不等式得到

\[\E_{w_{i+1}}f(w_{i+1})\leq f(w_i)-\mu\eta(f(w_i)-f(w^*))+\dfrac\eta2\sigma^2 \]

于是令 \(a_i=\E_{w_i}f(w_i)-f(w^*)\),则有 \(a_{i+1}\leq(1-\mu\eta)a_i+C\)。当 \(C\) 远小于 \(a_0\) 时,其模式将为:

  • 线性 收敛到 \(C\) 所界定的一个 噪声球 内,然后在其中不断振荡。(其实前述非强凸场合的 SGD 仍然会有噪声球振荡的场合)

特别地,该结论甚至不需要 \(L\)-光滑,直接从 \(w_{t+1}=w_t-\eta G_t\) 出发,即有

\[w_{t+1}-w^*=w_t-w^*-\eta G_t \\\|w_{t+1}-w^*\|^2=\|w_t-w^*\|^2+\|\eta G_t\|^2+2(w_t-w^*)\cdot(-\eta G_t) \\\E[\|w_{t+1}-w^*\|^2]\leq\|w_t-w^*\|^2+\eta^2\bar\sigma^2-2\eta\mu\|w^*-w_t\|^2 \\\E[\|w_{t+1}-w^*\|^2]\leq(1-2\eta\mu)\|w_t-w^*\|^2+\eta^2\bar\sigma^2 \]

这里使用了 \(\nabla f(w)\cdot(w-w^*)\geq\mu\|w-w^*\|^2\) 的性质。但是注意:此处的 \(\bar\sigma^2\)\(\E\|G_t\|^2\),与前文意义不同!

Things are Not Too Bad

就算使用了递减步长并承担低效率的代价,我们也有充分的理由使用 SGD。

  • 首先,噪声规模 \(\sigma^2\) 不一定是一成不变的——说不定它也随着 \(T\) 增加变小了呢?
  • 其次,在非凸场合,噪声是有时是有好处的。
  • 最后,我们的 loss 并不需要无穷地小——因为我们并不十分在意 training loss,我们只关心 population loss。

SVRG: One Way to Reduce Noise

SGD 和 GD 在结果上的唯一区别,就是 SGD 多了一个噪声 \(\sigma^2\)。只要把它干掉,那么 SGD 就能有和 GD 完全一样的收敛效率。所以就有 SVRG 以及其它类似做法,它们让噪声不再是常数而是开始衰减。

但是区别是这些做法似乎只在凸函数上效果比较好,不像 GD 同样被广泛应用于非凸场合。

今年出了些普适的方法,yy 很得意。

其是一个两层循环结构。外层循环在时刻 \(s\) 自前一时刻的 \(\tilde w_{s-1}\) 来优化 \(\tilde w_s\)——令 快照点 (snapshot point) \(\tilde w=\tilde w_{s-1}\),计算快照点处的 full batch 梯度 \(\tilde u=\nabla f(\tilde w)=\dfrac1N\sum_{i=1}^N\nabla L_i(\tilde w)\),并用其修正内层梯度信息。

内层循环初始令 \(w_0=\tilde w_{s-1}\),然后每一步是随机选择 \(i\)

\[w_t=w_{t-1}-\eta\Big(\co{cyan}{\nabla L_i(w_{t-1})}-\co{lightblue}{\nabla L_i(\tilde w)}+\co{pink}{\tilde u}\Big) \]

最终可以选择固定时刻 \(m\) 并令 \(\tilde w_s=w_m\),也可以在 \(\cur{0,1,\dots,m-1}\) 中随机选一个当作 \(\tilde w_s\)

这样做,昂贵的 full batch 梯度仅在 \(m\) 步内层 mini batch 后计算,其代价即被均摊。

即,其更新量由三部分组成:当前点随机梯度快照点随机梯度快照点的完整梯度。我们的目标是使用当前点的 full batch 梯度 \(\co{red}{\dfrac1N\sum_{i=1}^N\nabla L_i(w_{t-1})}\) 更新,但是因为其代价过大,所以只能用蓝色系的两个代价小但噪声高的东西来拟合。当优化收敛时,由 Lipschitz 连续性,它们的梯度贴近,噪声因此可以抵消。


来对其收敛性作一些推导。首先因为 \(\|a+b\|^2\leq2(\|a\|^2+\|b\|^2)\),所以有

\[\E_i\|\nabla L_i(w_{t-1})-\nabla L_i(\tilde w)+\tilde u\|^2\leq\co{pink}{\E_i\Big[2\|\nabla L_i(w_{t-1})-\nabla L_i(w^*)\|^2\Big]}+\co{lightblue}{\E_i\Big[2\|\nabla L_i(w^*)+\tilde u-\nabla L_i(\tilde w)\|^2\Big]} \]

首先对粉色部分作推导。定义辅助函数 \(g_i(w)=L_i(w)-L_i(w^*)-\nabla L_i(w^*)\cdot(w-w^*)\),则考虑它的组成部分:

  • \(L_i(w)\),按照假设,我们认为它是 \(L\)-平滑 \(\mu\)-强凸的。
  • \(L_i(w^*)\),是常数。
  • \(\nabla L_i(w^*)\cdot(w-w^*)\),是线性函数,因此自然是 \(L\)-平滑 \(\mu\)-强凸。

因此 \(g_i\) 仍然是 \(L\)-平滑 \(\mu\)-强凸的,且其额外满足 \(g_i(w^*)=0\) 的性质。所以代入 PL 不等式,自然有

\[\|\nabla g_i(w)\|^2\leq2L\Big(g_i(w)-g_i(w^*)\Big)=2Lg_i(w) \]

然后再代入 \(g_i\) 本身的定义,取 \(w\gets w_{t-1}\),即有

\[\|\nabla L_i(w_{t-1})-\nabla L_i(w^*)\|^2\leq 2L\Big(L_i(w_{t-1})-L_i(w^*)-\nabla L_i(w^*)\cdot(w_{t-1}-w^*)\Big) \]

[!NOTE]

这个式子其实已经在上述 PL 不等式推导的地方得到变体了。

现在外层套上一个期望,于是有

\[\E_i\|\nabla L_i(w_{t-1})-\nabla L_i(w^*)\|^2\leq 2L\Big(f(w_{t-1})-f(w^*)-\nabla f(w^*)\cdot(w_{t-1}-w^*)\Big) \]

\(w^*\)\(f(w)\) 的极小值,因此有 \(\nabla f(w^*)=0\),然后知

\[\co{pink}{\E_i\|\nabla L_i(w_{t-1})-\nabla L_i(w^*)\|^2\leq 2L\Big(f(w_{t-1})-f(w^*)\Big)} \]

然后回头推导蓝色部分。代入 \(\tilde u=\nabla f(\tilde w)\) 并结合 \(\nabla f(w^*)=0\)

\[\E_i\|\nabla L_i(w^*)+\tilde u-\nabla L_i(\tilde w)\|^2 \\=\E_i\|\nabla L_i(\tilde w)-\nabla L_i(w^*)-\nabla f(\tilde w)\|^2 \\=\E_i\Big\|\nabla L_i(\tilde w)-\nabla L_i(w^*)-\E_j[\nabla L_j(\tilde w)-\nabla L_j(w^*)]\Big\|^2 \]

这是一个很优雅的 \(\E\|X-\E X\|^2\) 的式子。有 \(\E\|X-\E X\|^2=\E\|X\|^2-\|\E X\|^2\leq\E\|X\|^2\),所以有

\[\E_i\|\nabla L_i(w^*)+\tilde u-\nabla L_i(\tilde w)\|^2\leq\E_i\Big\|\nabla L_i(\tilde w)-\nabla L_i(w^*)\Big\|^2 \]

而这个式子和粉色部分具有相同形式,结合起来就得到

\[\E_i\|\nabla L_i(w_{t-1})-\nabla L_i(\tilde w)+\tilde u\|^2\leq\co{pink}{\E_i\Big[2\|\nabla L_i(w_{t-1})-\nabla L_i(w^*)\|^2\Big]}+\co{lightblue}{\E_i\Big[2\|\nabla L_i(w^*)+\tilde u-\nabla L_i(\tilde w)\|^2\Big]} \\\leq\co{pink}{4L\Big(f(w_{t-1})-f(w^*)\Big)}+\co{lightblue}{4L\Big(f(\tilde w)-f(w^*)\Big)} \\ \]


\(v_t=\nabla L_i(w_{t-1})-\nabla L_i(\tilde w)+\tilde u\),则有 \(\E\|v_t\|^2\leq4L\Big(f(w_{t-1})-f(w^*)+f(\tilde w)-f(w^*)\Big)\),且 \(\E v_t=\nabla f(w_{t-1})\)。然后更新公式即为

\[w_t=w_{t-1}-\eta v_t \]

使用这两个公式即可对收敛速度展开分析。有

\[\mat{\E\|w_t-w^*\|^2=\E\|w_{t-1}-w^*\|^2-2\eta(w_{t-1}-w^*)\cdot(\E v_t)+\eta^2\E\|v_t\|^2 \\\leq\E\|w_{t-1}-w^*\|^2-2\eta(w_{t-1}-w^*)\cdot\nabla f(w_{t-1})+4\eta^2L\Big(f(w_{t-1})-f(w^*)+f(\tilde w)-f(w^*)\Big) \\\leq\E\|w_{t-1}-w^*\|^2-2\eta(f(w_{t-1})-f(w^*))+4\eta^2L\Big(f(w_{t-1})-f(w^*)+f(\tilde w)-f(w^*)\Big)&(\text{凸性}) \\=\E\|w_{t-1}-w^*\|^2-2\eta(1-2L\eta)\Big(f(w_{t-1})-f(w^*)\Big)+4\eta^2L\Big(f(\tilde w)-f(w^*)\Big) } \]


这玩意要被放到 SVRG 那个两层循环的式子中看。当前外层循环到时刻 \(s\),内层循环共 \(m\) 步,就得到

\[\E\|w_m-w^*\|^2\leq\E\|w_0-w^*\|^2-2\eta(1-2L\eta)m\Big(\co{red}{f(\tilde w_s)}-f(w^*)\Big)+4\eta^2Lm\Big(f(\tilde w)-f(w^*)\Big) \]

其中,红色部分的 \(f(\tilde w_s)\) 是因为 SVRG 中选取 \(\tilde w_s\) 的策略二就是在 \(\cur{0,1,\dots,m-1}\) 中随机选一个。而因为有 \(w_0=\tilde w\),所以这个式子可以被移项整理得到

\[\E\|w_m-w^*\|^2+2\eta(1-2L\eta)m\Big(f(\tilde w_s)-f(w^*)\Big)\leq\|\tilde w-w^*\|^2+4\eta^2Lm\Big(f(\tilde w)-f(w^*)\Big) \]

继续使用伟大的 PL 不等式即可得到

\[\co{red}{\E\|w_m-w^*\|^2}+2\eta(1-2L\eta)m\Big(f(\tilde w_s)-f(w^*)\Big)\leq2\Big(\dfrac1\mu+2\eta^2Lm\Big)\Big(f(\tilde w)-f(w^*)\Big) \]

把红色部分扔掉即得

\[\E[f(\tilde w_s)-f(w^*)]\leq\left[\dfrac1{\mu\eta(1-2L\eta)m}+\dfrac{2L\eta}{1-2L\eta}\right]\E[f(\tilde w_{s-1})-f(w^*)] \]

然后知其线性收敛。

没人知道策略一的收敛性咋证。

没人去用策略二。

Non-Convex GD

我们已知,只要函数是 \(L\)-平滑的,GD 即 \(O(1/\sqrt T)\) 地收敛于某个驻点。当然,此处因为没有凸性,所以这个驻点仅仅保证梯度为零,不一定是极小值。在一般的场合,我们得不到额外的性质。

当然,只要函数设计得够好,就算不凸,也有良好的收敛速率。因此,早期 ML 的一个重要任务就是设计优雅的函数。

当函数既有 \(L\)-平滑性又有凸性时,这个函数越远离极值点,梯度的范数就会越大。而 GD 的收敛性由前文的式子

\[f(x_k)-f(x_{k-1})\geq\dfrac\mu2\|\nabla f(x_k)\|^2\xlongequal{\mu\gets1/L}\dfrac1{2L}\|\nabla f(x_k)\|^2 \]

保证。但是,如果梯度不够大呢?

例如,如果函数是 \(L\)-Lipschitz 连续的(即处处 \(\|\nabla f(x)\|\leq L\)),则这相当于全局梯度均处于一个相同的小规模,那么 GD 的表现就会比较差。此外,函数可能是无穷范数 \(L\)-光滑,其推出二范数 \(\sqrt nL\)-光滑,在维数 \(n\) 大时无法保证好效果。 有没有更稳定的方法呢?

以上是 GD 不够优秀的第一个原因。第二个原因是因为 GD 的更新式 \(x_{k+1}\gets x_k-\eta\nabla f(x_k)\) 直接组合了 原始向量 \(x_k\)对偶向量 \(\nabla f(x_k)\),而这在某些场合是不合适的。

还有第三个原因:其实 \(x_{t+1}\) 是下式的一个最小值点,即

\[x_{t+1}=\arg\min_x\Big[f(x_t)+\nabla f(x_t)\cdot(x-x_t)+\co{red}{\dfrac1{2\eta}\|x-x_t\|^2}\Big] \]

其中红色项是一个 二次正则项,确保在 \(x\)\(x_t\) 充分远时,其会成为主导,进而限制最小值落在 \(x_t\) 附近。

这乍一看很有道理,但是其实隐含着一个前提,就是优化的空间是一个完整的欧氏空间。假如空间的 可行域 (constraint set) 不完全,例如要求所有项均为正的 概率单纯形 呢?这时你跑 GD 的迭代就可能不小心跑出去。自然,可以作一些投影来把它拉回来,但不用说都知道这既慢又不自然。有没有更好的做法呢?

Mirror Descent

这段内容在讲义中讲得可谓是一坨了。这里参照 Gemini 老师和 Deepseek 老师的描述重塑了整条逻辑链。

在证明 SVRG 的收敛性时,我们曾定义过一个 \(g_i(w)=L_i(w)-L_i(w^*)-\nabla L_i(w^*)\cdot(w-w^*)\) 的辅助函数,并使用了它的 PL 不等式以给出一个界。这个函数其实有其更一般的形式,即 严格凸可微 函数 \(\Phi\) 上的 Bregman 散度

\[D_\Phi(x,y)=\Phi(x)-\Phi(y)-\nabla\Phi(y)\cdot(x-y) \]

换句话说,其即为 \(y\) 处的一阶近似 \(L(x)=\Phi(y)+\nabla \Phi(y)\cdot(x-y)\)\(\Phi(x)\) 之差。因为定义在严格凸函数上,所以 Bregman 散度处处非负,且仅在 \(x=y\)\(D_\Phi(x,y)=D_\Phi(y,x)\)

课件上把它写成了从 \(x\) 处出发的

\[V_x(y)=\Phi(y)-\Phi(x)-\nabla \Phi(x)\cdot(y-x) \]

形式,不过是一个道理——且这样做更能强调 \(x,y\) 之间的不等价关系:\(D_\Phi(x,y)\neq D_\Phi(y,x)\),事实上它们之间并不一定拥有任何必然联系。

这个性质是不是让人想起了同样不对称的 KL 散度?其实 KL 散度是一种特殊的 Bregman 散度:其对应函数是概率单纯形上的 负熵函数 \(\Phi(x)=\sum_ix_i\log x_i\)。同理,Euclidean 距离也就是 \(\Phi(x)=\dfrac12\|x\|^2\) 上的 Bregman 散度。

当然实际上我们可能更多地在意 \(\nabla V_x(y)=\nabla\Phi(y)-\nabla\Phi(x)\)


最后的这两个例子是不是一下子就让人理解为什么要引入一个 Bregman 散度的概念了?通过选择合适的凸度量函数 \(\Phi\),可以更贴合优化问题的可行域。例如,在概率单纯形的场合,使用负熵函数天然就保证了所有项的非负性。

于是我们可以得到一个使用 Bregman 散度引导的迭代式,即

\[x_{t+1}=\arg\min_x\Big[f(x_t)+\nabla f(x_t)\cdot(x-x_t)+\co{red}{\dfrac1\alpha V_{x_t}(x)}\Big] \]

此处遵照习惯,使用 \(\alpha\) 表示步长。

[!IMPORTANT]

Bregman 散度的重要性在于提供了另一种理解 GD 的方式。因此在前面很多推导中我们都隐式或显式地使用了 Bregman 散度。

[!TIP]

另一种常见记号如下

\[x_{t+1}=\t{Mirr}_{x_t}(\alpha\nabla f(x_t)) \\\t{Mirr}_x(\xi)=\arg\min_y\Big[\xi\cdot(y-x)+V_x(y)\Big] \]

易知两记号等价。

但是这个记号的高明之处在于解耦了监督信号 \(\xi\) 与实际梯度 \(\nabla f(x_t)\),允许我们展开更一般的分析。

但是我们显然不能每一步搁那硬解 argmin 方程。事实上,我们有一个优雅的流程:

我们通过一个双射 \(x\leftrightarrow\nabla\Phi(x)\)原始空间对偶空间 建立对应——在度量 \(\Phi(x)\) 严格凸时,它们之间存在双射。于是可以定义一步步长为 \(\alpha\) 的 MD 步为:

  1. 计算 \(\theta_k\gets\nabla\Phi(x_k)\),映到对偶空间。
  2. 在对偶空间上作一步 SGD,即 \(\theta_{k+1}\gets\theta_k-\alpha\nabla_{x_k}f(x_k)\)。注意此处梯度还是对 \(x_k\) 的梯度,并没有变成 \(\theta_k\) 的梯度。因为 \(x_k\)\(\theta_k\) 的维数相等,所以这样做是合法的。
  3. 计算 \(x_{k+1}\gets(\nabla\Phi)^{-1}(\theta_{k+1})\),映回原始空间。

Convergence Rate of Mirror Descent

我们来证明这套流程得到的 \(x_{t+1}\) 与上述 argmin 计算的结果相等。

首先代入并简化得到

\[x_{t+1}=\arg\min_x\Big[\nabla f(x_t)\cdot x+\dfrac1\alpha\Big(\Phi(x)-\nabla\Phi(x_t)\cdot x\Big)\Big] \]

里面的函数仍然是可微的,因此关于 \(x\) 的梯度为零处即为最小值。

\[\alpha\nabla f(x_t)+\nabla\Phi(x_{t+1})-\nabla\Phi(x_t)=0 \\\nabla\Phi(x_{t+1})=\nabla\Phi(x_t)-\alpha\nabla f(x_t) \]

于是知两流程等价。

[!TIP]

这也可以被记作更一般的形式

\[\nabla\Phi(\t{Mirr}_x(\xi))=\nabla\Phi(x)-\xi \]

[!IMPORTANT]

有时我们需要更一般的形式。比如说,原始空间存在值域限制 \(\Delta\),此时我们的递推式是

\[x_{t+1}=\t{Mirr}_{x_t}(\xi)=\arg\min_{x\in\Delta}\Big[\xi\cdot x+V_{x_t}(x)\Big] \]

那么全局最小值可能不一定落入 \(\Delta\) 中。但是当 \(\Delta\) 是凸集且函数可微时,其同样存在等价条件(变分不等式),也即

\[x^*=\arg\min f\iff\forall x\in\Delta:\nabla f(x^*)\cdot(x-x^*)\geq0 \]

于是

\[\forall x\in\Delta:(\xi+\nabla\Phi(x_{t+1})-\nabla\Phi(x_t))\cdot(x-x_{t+1})\geq0 \]

特别注意:此处的所有推导均基于范数引导的 Bregman 散度 \(V_{x_t}\) 和空间 \(\Delta\) 本身,与待优化函数 \(f\) 并不挂钩。也因此,其可以适用于一些函数非常病态的场合。


现在我们来证明 MD 的收敛速度。GD 的收敛依赖于每一步函数值严格的下降,即 \(f(x_k)-f(x_{k-1})\geq\dfrac\mu2\|\nabla f(x_k)\|^2\);然而,MD 则放眼全局,证明 \(T\) 步内迭代点的平均值 \(\bar x\) 会有 \(f(\bar x)\to f(x^*)\)

MD 也有一个类似的式子:当距离函数 \(\Phi\)\(1\)-强凸时,对于任何点 \(u\),均有

\[\alpha(f(x_k)-f(u))\leq\dfrac{\alpha^2}2\|\nabla f(x_k)\|^2+V_{x_k}(u)-V_{x_{k+1}}(u) \]

首先由凸性,有

\[\alpha(f(x_k)-f(u))\leq\alpha\nabla f(x_k)\cdot(x_k-u) \\=\alpha\nabla f(x_k)\cdot(x_k-x_{k+1})+\alpha\nabla f(x_k)\cdot(x_{k+1}-u) \]

然后代入 MD 公式得到

\[=\alpha\nabla f(x_k)\cdot(x_k-x_{k+1})+(\nabla\Phi(x_k)-\Phi(x_{k+1}))\cdot(x_{k+1}-u) \]

然后有一个 Bregman 散度的三角恒等式:对于一切 \(x,y,z\),均有

\[\co{grey}{(-\nabla V_x(y))\cdot(y-z)=(\nabla\Phi(x)-\nabla\Phi(y))\cdot(y-z)=V_x(z)-V_y(z)-V_x(y)} \]

证明可以自行展开右侧得到。于是前式

\[=\alpha\nabla f(x_k)\cdot(x_k-x_{k+1})+V_{x_k}(u)-V_{x_{k+1}}(u)-V_{x_k}(x_{k+1}) \]

只要 \(\Phi\)\(1\)-强凸的,即有 \(V_x(y)\geq\dfrac12\|x-y\|^2\)。故

\[\leq\co{red}{\alpha\nabla f(x_k)\cdot(x_k-x_{k+1})-\dfrac12\|x_k-x_{k+1}\|^2}+V_{x_k}(u)-V_{x_{k+1}}(u) \]

红色的部分刚好可以再补一项成为完全平方式。而因为平方式非负,即知

\[\leq\dfrac{\alpha^2}2\|\nabla f(x_k)\|^2+V_{x_k}(u)-V_{x_{k+1}}(u) \]

[!NOTE]

现在引入一些凸优化的理论。对于凸函数 \(\Phi(x)\),其引导的 Bregman 散度 \(D_\Phi(x,y)\) 在本节中也被写作 \(V_x(y)\)

对于任何一个函数 \(\Phi\)(不一定是凸的),都可以定义其 Fenchel 共轭 \(\Phi^*(\theta)=\sup_x\cur{\theta\cdot x-\Phi(x)}\),即 \(\Phi\) 至切平面 \(\theta\cdot x\) 的最远距离。\(\Phi\to\Phi^*\) 的变换就是著名的 Legendre-Fenchel 变换

特别地,当 \(\Phi\) 是严格凸且可微时,\(\nabla\Phi\)\(\nabla\Phi^*\) 是互逆映射。也即,令 \(\Psi=\Phi^*\),则若 \(\theta=\nabla\Phi(x)\),则 \(x=\nabla\Psi(\theta)\)

由 Fenchel 共轭的定义式可以直接得到 Fenchel-Young 不等式:对于一切 \(x,\theta\) 均有

\[\Phi(x)+\Psi(\theta)\geq\theta\cdot x \]

且当且仅当二者满足对偶关系时取等。这个不等式其实是配方法的扩展:在 \(\Phi(x)=\dfrac12\|x\|^2\) 时,有 \(\Psi=\Phi\)(即所谓的 自共轭函数)。

Bregman 散度也可以在对偶空间中定义对偶散度 \(D_\Psi(\theta,\xi)=\Psi(\theta)-\Psi(\xi)-\nabla\Psi(\xi)\cdot(\theta-\xi)\)。则当 \(\theta=\nabla\Phi(x),\xi=\nabla\Phi(y)\) 时,有 \(D_\Phi(x,y)=D_\Psi(\theta,\xi)\)

\(\Phi\)\(\mu\)-强凸(Hessian 处处 \(\geq\mu\))时,其对应的 \(\Psi\)\(1/\mu\)-光滑(Hessian 处处 \(\leq1/\mu\))的。

[!IMPORTANT]

继续上一节结尾时的一般写法。如果 \(x'\gets\t{Mirr}_x(\xi)\),那么

\[(\xi+\nabla\Phi(x')-\nabla\Phi(x))\cdot(u-x')\geq0 \\\xi\cdot(u-x')+(\nabla\Phi(x')-\nabla\Phi(x))\cdot(u-x')\geq0 \\\xi\cdot(u-x')+V_x(u)-V_{x'}(u)-V_x(x')\geq0 \\\xi\cdot(x-u)\leq\xi\cdot(x-x')+V_x(u)-V_{x'}(u)-V_x(x') \]

现在,假设 \(\Phi\)\(\mu\)-强凸的,则有 \(V_x(x')\geq\dfrac{\mu}2\|x'-x\|^2\)。而另一方面,由 Fenchel-Young 不等式,有 \(a\cdot b\leq\dfrac{\|a\|^2}{2\mu}+\dfrac{\mu\|b\|^2}{2}\),所以有

\[\xi\cdot(x-u)\leq\dfrac{\|\xi\|^2}{2\mu}+\dfrac{\mu}{2}\|x-x'\|^2+V_x(u)-V_{x'}(u)-\dfrac\mu2\|x-x'\|^2 \\=\dfrac{\|\xi\|^2}{2\mu}+V_x(u)-V_{x'}(u) \]

此处的所有推导仍然仅基于 \(V\)\(\Delta\) 本身,仍然适用于病态函数。

对该式子求和,并取 \(u=x^*\),然后令 \(\bar x=\dfrac1T\sum_{i=0}^{T-1}x_i\),则由 Jensen 不等式知

\[\alpha T(f(\bar x)-f(x^*))\leq\dfrac{\alpha^2}2\sum_{i=0}^{T-1}\|\nabla f(x_i)\|^2+V_{x_0}(x^*)-V_{x_T}(x^*) \]

则只要 \(f\)\(L\)-Lipschitz 连续的(即 \(\forall x:\|\nabla f(x)\|\leq L\)),即有

\[f(\bar x)-f(x^*)\leq\dfrac{\alpha L^2}{2}+\dfrac{V_{x_0}(x^*)}{\alpha T} \]

通过令 \(\eta\) 为合适值(\(O(1/\sqrt T)\)),可知其以 \(1/\sqrt T\) 速率收敛。

前式中的 \(f(\bar x)-f(x^*)\) 有其专属名称 遗憾 (regret),即为实际决策 \(\bar x\) 与最优决策 \(x^*\) 的差距。其有一些只需凸性即可得到的理论:

对于一切 \(x\) 均有

\[f(x^*)\geq f(x)+\nabla f(x)\cdot(x^*-x) \]

因此取 \(x\gets x_0,\dots,x_{T-1}\) 并平均即得

\[f(x^*)\geq\dfrac1k\sum_{i=0}^{T-1}f(x_i)+\nabla f(x_i)\cdot(x^*-x_i) \]

移项并使用 Jensen 不等式即得

\[f(\bar x)-f(x^*)\leq\dfrac1k\sum_{i=0}^{T-1}\nabla f(x_i)\cdot(x_i-x^*) \]

从这个式子出发同样可以推出相同结果。

虽然其收敛速率和 GD 相同,但是其适用条件(\(L\)-连续)比其 GD 的 \(L\)-光滑要弱很多。因此有如下结论:

  • 显而易见地,GD 在大梯度时有好的效果。

  • 另一方面,MD 因为证明的是均值,有较为稳定的效果,就算梯度小也有效。

    MD 把效果对梯度大小 bound 了,因此确实是需要小梯度的限制的。

能否结合二者,整出一个无论梯度是大是小都有效的做法呢?

Linear Coupling: Bridging GD and MD

MD 要求全局梯度的稳定性(\(L\)-连续)、GD 要求单点梯度的规模,二者的侧重点不同,因此无法简单使用阈值区分场合。如何将两者有机结合呢?此乃 Linear Coupling

一个简单的想法是直接取二者迭代结果的线性组合。即,初始令 \(x_0=y_0=z_0\),然后:

  • \(x_{k+1}=\tau y_k+(1-\tau)z_k\)
  • \(y_{k+1}\) 为 GD 的迭代结果,即 \(y_{k+1}\gets x_{k+1}-\dfrac1L\nabla f(x_{k+1})\)
  • \(z_{k+1}\) 为自 \(\co{red}{z_k}\) 出发但梯度为 \(\co{red}{\alpha\nabla f(x_{k+1})}\) 的 MD。即,\(z_{k+1}=\arg\min_z\Big[f(z_k)+\nabla f(x_{k+1})\cdot(z-z_k)+\dfrac1\alpha V_{z_k}(z)\Big]\)。也可以记作 \(z_{k+1}\gets\t{Mirr}_{z_k}(\alpha\nabla f(x_{k+1}))\)

其中,\(z_{k+1}\) 的产生涉及到「在一点借用别处梯度」的行为。在 GD 的场合这是不合理的——但是前面的证明已经允许了这种行为:我们有

\[\alpha\nabla f(x_{k+1})\cdot(z_k-u)\leq\dfrac{\alpha^2}2\|\nabla f(x_{k+1})\|^2+V_{z_k}(u)-V_{z_{k+1}}(u) \\\leq\alpha^2L\Big(f(x_{k+1})-(y_{k+1})\Big)+V_{z_k}(u)-V_{z_{k+1}}(u) \]

其中最后一步推导来自我们的 GD。另一方面,又有

\[\alpha\nabla f(x_{k+1})\cdot(x_{k+1}-u)-\alpha\nabla f(x_{k+1})\cdot(z_k-u)=\dfrac{(1-\tau)\alpha}{\tau}\nabla f(x_{k+1})\cdot(y_k-x_{k+1}) \\\leq\dfrac{(1-\tau)\alpha}{\tau}(f(y_k)-f(x_{k+1})) \]

其中最后一步来自凸性。所以取 \(\tau\) 使得 \(\dfrac{(1-\tau)}{\tau}=\alpha L\),则加一块,抵消得到

\[\alpha\nabla f(x_{k+1})\cdot(x_{k+1}-u)\leq\alpha^2L(f(y_k)-f(y_{k+1}))+V_{z_k}(u)-V_{z_{k+1}}(u) \]

那么作一个遗憾展开式即得

\[\alpha T(f(\bar x)-f(x^*))\leq\sum_{i=0}^{T-1}\alpha\nabla f(x_i)\cdot(x_i-x^*) \\\leq\alpha^2L(f(y_0)-f(y_T))+V_{z_0}(x^*)-V_{z_T}(x^*) \]

于是使用 \(f(x_0)-f(x^*):=d\) 以及 \(V_{x_0}(x^*):=\Theta\) 两项 Bound 住遗憾,即得

\[f(\bar x)-f(x^*)\leq\dfrac1T(\alpha Ld+\dfrac\Theta\alpha) \]

于是取 \(\alpha=\sqrt{\Theta/Ld}\) 即得

\[f(\bar x)-f(x^*)\leq2\sqrt{L\Theta d}/T \]

这个式子有和之前所有东西都不一样的,非常优的收敛速率:只需 \(4\sqrt{L\theta/d}\) 轮,就能让 \(f(\bar x)-f(x^*)\leq d/2\);此时 重新设置相关参数再跑一遍,便只需要 \(4\sqrt{2L\theta/d}\) 的步数就能让 \(d\) 再减半……因此最终我们可以得到,它在 \(O(\sqrt{L\Theta/\eps})\) 步内达到 \(\eps\)

Matrix Completion

如何给用户推荐新电影?这可以被抽象为,给定一个矩阵,由已知位置推知未知位置。这个问题被称作 Collaborative Filtering

可以有如下假设:

  1. 矩阵是低秩的:所有人无非分属于若干大组罢了。

  2. 已知项随机分布——不然如果有一行或一列全空,则任何额外有效信息都无法被得出。

  3. 矩阵具有高的 不相干性 (incoherence)。具体而言,它不应该像一个标准基向量——此时很难找到非零项。

    形式化地,假设 \(A\) 有 SVD \(U\Sigma V^T\),则存在一个常数 \(1\leq u\leq\min(n,m)/r\),使得对于一切 \(i\in[n],j\in[m]\),都有 \(\|e_i^TU\|\leq\sqrt{ur/n}\)\(\|e_j^TV\|\leq\sqrt{ur/m}\)。即,所有奇异向量在每一维上的和不很大(这样,任何一维对空间的贡献均不会远超过平均值)。

如何解决这个问题?首先,有一个前提是,最小化 \(A\) 的秩是困难的——这相当于在求 \(\|\Sigma\|_0\),即奇异值矩阵的 \(0\)-范数(非零项个数)。这是一个非凸优化问题——它涉及到“离散”的选择。

但是,非凸优化有一个经典的技巧,即 凸松弛 (convex relaxation),即将原本的问题转化为一个相近的凸优化问题;具体到 \(0\)-范数的场合,就是将其转化为 \(1\)-范数,\(\|\Sigma\|_1=\sum|\sigma_i|\)

虽然这听上去很有道理,但是 \(1\)-范数下是一个所谓的 半定规划 (semi-definite planning, SDP) 的问题,即线性规划的扩展。显然,在单纯形法的复杂度已经很高的情况下,SDP 也只能支持 \(100\times100\)​ 规模的计算。


咋办呢?要不试试看最小二乘法?

具体而言,考虑一个低秩分解 \(A=UV^T\),令 \(\Omega\) 为已知位的 mask,\(P_\Omega(A)\) 为将该 mask 应用于一个矩阵 \(A\) 的结果,则我们希望求出

\[\min_{U,V\in\R^{n\times r}}\|P_\Omega(UV^T)-P_\Omega(A)\|^2_F \]

其中这里的范数是 Frobenius 范数,即矩阵元素平方和的平方根。

但是,首先就要解决第一个问题,即该 loss 是非凸的:其有多个局部最小值。

解决方案也很直白:轮流迭代 \(U\)\(V\)。在一个固定时,把另一个优化为 argmin 是凸的,且容易计算。


为什么非凸的场合 GD 仍然有效?这依赖于一个假设,即 所有的局部最优值都是等优的(即 无虚假本地最优 no spurious local min)。这样,GD 能找到一个足矣。

这个假设并不过分:首先在很多场合,确实如此;另外,假如所有的局值不平等,那么随机种子就会影响实验结果,因此我们只能相信它们是平等的。


另一个好处是,SGD 可以自发跳出鞍点。所有梯度为 \(0\) 处均为驻点,其可以被进一步细分:

  • Hessian 正定时为极小值,负定时为极大值,这两个都是好的。
  • 既有正特征值又有负特征值,此时为 严格鞍点 (strict saddle point),可以沿着负特征值跳出去。
  • 半正定时,它可以是极小值,也可能是 平坦鞍点 (flat saddle point);后者是坏的,一切一阶方法都跳不出去。

一个 严格鞍函数 (strict saddle function) 是不含平坦鞍点的函数。鉴于一阶方法对平坦鞍点的不适应性,严格鞍函数的假设并不夸张。在这样的函数上,SGD 可以跳出所有鞍点。

既然所有局部极小值都一样好,且迭代不会在鞍点处停滞,非凸优化是可以被接受的。


形式化地:对于 光滑有界广义严格鞍 (不严谨地讲,梯度较小时 Hessian 同样有负特征值)、Hessian 光滑 的场合,只要 SGD 向一切方向都有 non-negligible 的方差,它就能摆脱一切鞍点和极大值,在多项式步内收敛到某个极小值。

在梯度大时,由光滑性,SGD 可以有很好的效果。

在极小值附近,跳出其邻域的概率 \(p\) 是小的;在 \(T\) 步内跳出的概率不超过 \(Tp\),同样也是小的。

在梯度小且不接近极小值(即接近严格鞍点时),其存在负特征值对应特征向量,沿此方向即可脱出鞍点。因为 SGD 向其有 non-negligible 的方差,所以有概率走出去。且因为 Hessian 是光滑的,困在该鞍点周围时,我们可以认为其 Hessian 大致相同,故多项式步内可以走出去。

posted @ 2025-08-31 14:50  Troverld  阅读(95)  评论(0)    收藏  举报