Skip to content

Commit

Permalink
Merge pull request #28 from zhimin-z/Chapter-7-Supplement
Browse files Browse the repository at this point in the history
章节7的补充
  • Loading branch information
zhimin-z authored Mar 21, 2024
2 parents 489e951 + aa69193 commit 4bd928b
Showing 1 changed file with 97 additions and 40 deletions.
137 changes: 97 additions & 40 deletions docs/chapter7/chapter7.md
Original file line number Diff line number Diff line change
@@ -1,75 +1,132 @@
# 第7章:收敛率

*Edit: 李一飞*
*Edit: 李一飞,赵志民*

---

本章的内容围绕学习理论中的收敛率(convergence rate)展开。具体来说,将会考察确定优化下的收敛率问题,以及随机优化下的收敛率问题,并在最后分析支持向量机的实例。
本章的内容围绕学习理论中的算法收敛率(convergence rate)展开。具体来说,将会考察确定优化下的收敛率问题,以及随机优化下的收敛率问题,并在最后分析支持向量机的实例。

## 1.【概念补充】算法收敛率

在算法分析中,收敛率是指迭代算法逼近解或收敛到最优或期望结果的速度,它衡量算法在减小当前解与最优解之间差异方面的快慢。

## 1. 【概念补充】凸函数

回顾第一章中的介绍,**凸函数**是函数曲线围成区域为凸集的函数,即
$$
\forall x_1,x_2\in C\\\theta x_1+(1-\theta x_2)\in C
$$
由于凸函数围成区域的特殊性质(无限区域),我们只需要考虑函数曲线所在的边界,因此条件转化为
$$
f(\theta x + (1-\theta)z) \leq \theta f(x) + (1-\theta) f(z)
$$
由于凸函数的良好性质,我们可以推出凸函数局部最优解就是全局最优:假设 $x^*$ 是局部最优,即 $x^*$ 周围存在一个邻域,
$$
S = B(x^*,\delta),\forall x \in S, f(x)\geq f(x^*)
$$
因此
设 $\{x_k\}$ 是算法生成的迭代序列,我们可以根据以下公式来衡量算法的收敛率:
$$
\forall y , f(x^*)\leq f((1-t)x^*+ty) , \,\, \{t\leq \frac{\delta}{|x^*-y|}\}
$$
由凸函数性质:
$$
\forall y , f(x^*)\leq f((1-t)x^*+ty)\leq (1-t)f(x^*)+tf(y)\\\Rightarrow f(x^*)\leq f(y)
lim_{t\rightarrow+\infty}\frac{||x_{t+1} - x^*||}{||x_t - x^*||^p} = C
$$
其中,$C$为收敛因子,$p$为收敛阶数,$x^*$ 表示最优解,$||.||$ 表示适当的范数。

进而,我们可以将收敛率分为以下几种情况:
1. 超线性收敛:$p\ge1$,$C=0$,表明每次迭代都会使得误差减小,且减小的速度越来越快。
特别地,当$p>1$时,称为$p$阶收敛。例如,$p=2$时,称为平方收敛;$p=3$时,称为立方收敛。
2. 线性收敛:$p=1$,$C>0$,表明每次迭代都会使得误差减小(误差呈几何级数下降),但减小的速度是一定的。
3. 次线性收敛:$p=1$,$C=1$,表明每次迭代都会使得误差减小,但减小的速度越来越慢。



## 2.【公式说明】$l$-Lipschitz
## 2.【定理补充】凸函数的确定优化

由 $l$-Lipschitz 的定义式 (1.7) 可以推出题目给的梯度条件:
我们发现,书中给出的梯度下降算法将$T$轮迭代的均值作为输出而不是以$\omega_T$作为最终结果。
这是因为在凸函数的梯度下降时,我们设定的步长$\eta$是启发式的,因此每次迭代产生的$\omega'$无法保证是局部最优解。
考虑到定理7.1的结论,$T$轮迭代的$\omega$均值具有次线性收敛率,而我们却无法证明最后一次迭代值$\omega_T$也具有与之相较的收敛率。
总之,返回$\omega$的均值可能会提高计算的代价,但却可以确保稳定的收敛率。该思想在7.3.1和7.3.2中梯度下降算法中亦有体现。

作为对比,在7.2.2中强凸函数的梯度下降算法中,我们只输出了最后一次迭代值$\omega_T$。
这是因为在强凸函数的条件下,每次迭代的梯度更新均有闭式解:$\omega_{t+1}=\omega_t-\frac{1}{\gamma}\nabla f(\omega_t)$。
每次迭代无需任何启发式算法就可以得到该临域的全局最优解,这也是此算法拥有更快收敛率(线性收敛率)的原因。因而,无需返回历史$\omega$的均值。

另外,在**P139**定理7.1的(7.12)推导中,利用了第一章补充内容 AM-GM 不等式$n=2$的结论,即对于任意非负实数$x,y$,有
$$
f(z)-f(x) \leq l\cdot|z-x|
\\\Rightarrow\frac{|f(z)-f(x)|}{|z-x|}\leq l
\\\Rightarrow lim_{z-x\rightarrow 0}\frac{|f(z)-f(x)|}{|z-x|}\leq l
\\\Rightarrow||\nabla f(u)||\leq l
\sqrt{xy}\le\frac{x+y}{2}
$$
当且仅当$x=y$时取等号。

因此只有满足$\frac{\Gamma^2}{2\eta T}=\frac{\eta l^2}{2}$时,$\frac{\Gamma^2}{2\eta T}+\frac{\eta l^2}{2}$才能取得最小值$\frac{l\Gamma}{\sqrt T}$,此时我们只需设置步长$\eta=\frac{\Gamma}{l\sqrt T}$即可。
类似的推导可以在(7.35)和(7.39)中找到。



## 3. 【概念补充】强凸函数
## 3.【定理补充】强凸函数的确定优化

### 定义
**P142**中,在证明定理7.3时,对于(7.19)的讨论这里进行一些补充。
首先,如果目标函数满足$\lambda$-强凸且$\gamma$-光滑,那么根据第一章补充内容中关于强凸函数和光滑性的结论,我们有$\gamma\ge\lambda$。
这是因为对于任意$\omega,\omega'$,光滑系数$\gamma$的被定义为:
$$f(\omega)\le f(\omega')+\nabla f(\omega')^T(\omega-\omega')+\frac{\gamma}{2}||\omega-\omega'||^2$$
而强凸系数$\lambda$的被定义为
$$f(\omega)\ge f(\omega')+\nabla f(\omega')^T(\omega-\omega')+\frac{\lambda}{2}||\omega-\omega'||^2$$
对于任意$\omega$,光滑系数$\gamma$决定了$f(\omega)$的上界,而强凸系数$\lambda$决定了$f(\omega)$的下界,因此光滑系数$\gamma$不小于强凸系数$\lambda$。

对定义在凸集上的函数 $f: \R^d\rightarrow\R$,若 $\exists \lambda\in\R_+$,使得 $\forall x,z\in\Psi$ 都有
此时,令$f(\alpha)=\frac{\gamma-\lambda}{\lambda}\alpha^2-\alpha$,因为$\frac{\gamma-\lambda}{\lambda}\ge0$,故而我们可以分成以下两种情况讨论:
1. 当$\frac{\gamma-\lambda}{\lambda}=0$时,(7.19)转化为:
$$
f(\theta x+(1-\theta)z)\leq \theta f(x)+(1-\theta)f(z)-\frac{\lambda}{2}\theta(1-\theta)||x-z||^2 \quad(\forall0\leq\theta\leq 1)
\begin{aligned}
&f(\omega_{t+1})\le min_{\alpha\in[0,1]}\{f(\omega_t)-\alpha (f(\omega_t)-f(\omega^*))\} \\
\Rightarrow&f(\omega_{t+1})-f(\omega^*)\le min_{\alpha\in[0,1]}\{1-\alpha\}(f(\omega_t)-f(\omega^*)) \\
\end{aligned}
$$
因为$f(\omega_t)-f(\omega^*)\ge0$,所以当且仅当$\alpha=1$时,不等式右侧取得最小值$0$,此时易知$f(\omega_{t+1})=f(\omega^*)$。
根据凸函数局部最优解等于全局最优解的结论,我们可以得到$\omega_{t+1}=\omega^*$,即算法在第$t+1$轮迭代中收敛到最优解。

### 关于强凸函数
2. 当$\frac{\gamma-\lambda}{\lambda}>0$时,$f(\alpha)$为关于$\alpha$开口向上的二次函数。
令$f'(\alpha)=2\frac{\gamma-\lambda}{\lambda}\alpha-1=0$,得到$f(\alpha)$的对称轴为$\alpha=\frac{\lambda}{2(\gamma-\lambda)}$。
此时我们可以分成以下两种情况讨论:
- 当$\frac{\lambda}{2(\gamma-\lambda)}\ge1$时,$f(\alpha)$取得最小值只能在$\alpha=1$处,故而得到(7.20)。
- 当$0\lt\frac{\lambda}{2(\gamma-\lambda)}\lt1$时,$f(\alpha)$取得最小值只能在$\alpha=\frac{\lambda}{2(\gamma-\lambda)}$处,故而得到(7.21)。

强凸函数在定义式中可以看出有了一个关于 $\theta$ 和 $||x-z||^2$ 的项,通过简单的化简为 $f(z)\geq f(x)+\nabla f(x)^T(z-x)+\frac{\lambda}{2}||x-z||^2$ 就可以得知,这表明了函数不仅在切线的上方,还保持有二阶的距离,这一点可以从泰勒展开得到更深入地体现
余下的推导部分与书中相同,此处不再赘述

强凸函数与凸函数的区别为,凸函数只关心二阶 Hessian 矩阵半正定,而强凸函数提出了更高的要求,对 $f$ 的二阶 Hessian 矩阵有 :$\exists m>0, \nabla^{2} f(x)-m I \succeq 0$ 这里的 $A \succeq \theta$ 代表A是半正定矩阵


## 4.【定理补充】Epoch-GD的收敛率

## 4.【公式推导】公式(7.34)
**P150**引理7.2给出了Epoch-GD外层循环收敛率的泛化上界,我们对其中部分推导进行必要补充。

由 7.25 的假设:
首先,(7.60)中第二个不等式的推导利用了Cauchy-Schwarz不等式(1.14),即$\|x^Ty\|\le\|x\|\|y\|$。
这里,我们令$x=\underbrace{[1,\cdots,1]}_{T}$,$y=\underbrace{[\|\omega_1-w^*\|,\cdots,\|\omega_T-w^*\|]}_{T}$,则有:
$$
\mathbb{E}[\mathbb{g}_t] = \nabla f(\mathbb{\omega}_t)
|x^Ty|=\sum_{t=1}^T\|\omega_t-w^*\|\le \sqrt{T}\sqrt{\sum_{t=1}^T\|\omega_t-w^*\|^2}=|x||y|
$$
随机梯度是真实梯度的无偏估计

其次,(7.62)中最后两个不等式的推导利用了一些常见的缩放技巧,我们在这里给出完整形式:
$$
\mathbb{E}\big[ \Sigma<\nabla f(\omega_t)-\mathbf{g}_t,\omega_t - \omega> \big]\\=\mathbb{E}\big[ \Sigma<\nabla f(\omega_t),\omega_t - \omega> \big]-\mathbb{E}\big[ \Sigma<\mathbf{g}_t,\omega_t - \omega> \big]\\=\Sigma\big[\mathbb{E}\big[<\nabla f(\omega_t),\omega_t - \omega> \big]-\mathbb{E}\big[<\mathbf{g}_t,\omega_t - \omega>\big]\\=\Sigma\big[\mathbb{E}\big[<\mathbb{E}[\mathbf{g}_t],\omega_t - \omega> \big]-\mathbb{E}\big[<\mathbf{g}_t,\omega_t - \omega>\big]\\=\Sigma\big[\mathbb{E}\big[\mathbf{g}_t,\omega_t - \omega> \big]-\mathbb{E}\big[<\mathbf{g}_t,\omega_t - \omega>\big]\\=0
\begin{aligned}
&\sum_{i=1}^m P(\sum_{t=1}^T \delta_t \ge 2\sqrt{4l^2A_T\tau}+\frac{2}{3}\frac{4l^2}{\lambda}\tau+\frac{4l^2}{\lambda},V_T^2\le4l^2A_T,A_T\in(\frac{4l^2}{\lambda^2T}2^{i-1},\frac{4l^2}{\lambda^2T}2^i]) \\
\le &\sum_{i=1}^m P(\sum_{t=1}^T \delta_t \ge 2\sqrt{4l^2A_T\tau}+\frac{2}{3}\frac{4l^2}{\lambda}\tau,V_T^2\le4l^2A_T,A_T\in(\frac{4l^2}{\lambda^2T}2^{i-1},\frac{4l^2}{\lambda^2T}2^i]) \\
\le &\sum_{i=1}^m P(\sum_{t=1}^T \delta_t \ge \sqrt{2\frac{16l^42^i}{\lambda^2T}\tau}+\frac{2}{3}\frac{4l^2}{\lambda}\tau,V_T^2\le\frac{16l^42^i}{\lambda^2T}) \\
\le &\sum_{i=1}^m P(\max_{j=1,\cdots,T}\underbrace{\sum_{t=1}^j \delta_t}_{S_j} \ge \sqrt{2\underbrace{\frac{16l^42^i}{\lambda^2T}}_{\nu}\tau}+\frac{2}{3}\underbrace{\frac{4l^2}{\lambda}}_{K}\tau,V_T^2\le\underbrace{\frac{16l^42^i}{\lambda^2T}}_{\nu}) \\
\le &\sum_{i=1}^m e^{-\tau} \\
= &me^{-\tau}
\end{aligned}
$$
这里,第一个不等式利用了$\frac{4l^2}{\lambda} \gt 0$的事实对$\sum_{t=1}^T \delta_t$的范围进行概率缩放;
第二个不等式利用了$A_T$的下界和上界分别对$\sum_{t=1}^T \delta_t$和$V_T^2$的范围进行概率缩放;
第三个不等式利用了$\max_{j=1,\cdots,T}\sum_{t=1}^j \delta_t$比$\sum_{t=1}^T \delta_t$更为宽松的事实对$V_T^2$进行概率缩放;
第四个不等式利用了定理7.6的结论。

最后,(7.64)中第二个不等式的推导利用了开口向下的二次函数$f(x)=ax^2+bx+c,a\lt0$拥有最大值点$x_0=-\frac{b}{2a}$的事实。
我们令$x=\sqrt{A_T}$,然后取$a=-\frac{\lambda}{2},b=2\sqrt{4l^2\ln\frac{m}{\delta}},c=0$,则易知$f(x)$的最大值为$\frac{8l^2}{\lambda}\ln\frac{m}{\delta}$,于是便得到了(7.64)中的结论。

进一步地,**P152**引理7.3利用数学归纳法给出了特定步长和迭代次数下Epoch-GD外层循环收敛率的泛化上界,是我们更便于在**P154**定理7.7中给出了Epoch-GD的收敛率,我们对后者的部分推导进行必要补充。

首先,观察(7.75)可以发现,Epoch-GD外层的迭代次数$k$需要满足$\frac{\alpha}{2}(2^k-1) \le T$,即$k=\lfloor \log_2(\frac{2T}{\alpha}+1)\rfloor$,于是才有了(7.66)中$k^{\dagger}$的构造。

其次,(7.77)的推导利用了函数$f(x)=(1-\frac{1}{x})^x$在$x=\frac{k^{\dagger}}{\delta}\gt1$时单调递增的事实,这里给出更严格的证明。

对函数$f(x)$两边取对数,得到:
$$
\ln f(x)=x\ln(1-\frac{1}{x})
$$
接着对两边分别求导,可得:
$$
\frac{f'(x)}{f(x)}=\ln(1-\frac{1}{x})+\frac{1}{x-1}
$$
易知当$x\gt1$时,$f(x)\gt0$,因此我们只需要关注等式右边在$x\gt1$时的符号。
令$g(x)=\ln(1-\frac{1}{x})+\frac{1}{x-1}$,则有:
$$
g'(x)=\frac{1}{x(x-1)^2}
$$
易知当$x\gt1$时,$g'(x)\lt0$,因此:
$$
g(x)\gt\lim_{x\rightarrow+\infty}g(x)=\lim_{x\rightarrow+\infty}\ln(1-\frac{1}{x})+\lim_{x\rightarrow+\infty}\frac{1}{x-1}=0
$$
综上,当$x\gt1$时,$\frac{f'(x)}{f(x)}=g(x)\gt0$,即$f'(x)\gt0$,因此$f(x)$在$x\gt1$时单调递增。

0 comments on commit 4bd928b

Please sign in to comment.