梯度下降与随机梯度下降的收敛性分析
我们常常使用梯度下降算法来训练机器学习模型, 常见的梯度下降算法分为三种:
1 批量梯度下降(BGD): 每一次更新都使用所有的样本
2 随机梯度下降(SGD): 每一次更新只使用一个样本
3 小批量梯度下降(MBGD): 每一次更新使用m个样本,
可以看到三种算法的差别主要是每次使用多少样本来进行梯度计算与参数更新, 本文将分别分析这三种算法的收敛性质, 并从收敛性与计算量上来比较两个算法的表现。
1 目标函数假设
我们给出几个之后要用到的对函数的假设, 我们的主要结果是针对convex function的, 同时也会有对non-convex情况的讨论。
Convexity
A function
这里我们假设目标函数是可微的, 所以我们更常用的是下面这个条件
Suppose a function
A function
c-strongly convex
A continuous differentiable function
Remark: L-smooth 和 c-strongly convex 可以看成是对偶的两个假设, 因为我们有:
也就是两个二次函数分别控制住了上下界, 同时如果目标函数同时满足两个条件, 我们会有
Theorem 1.1
When
proof
第二部分是因为极小值必然是驻点. 现在我们假设
那么
2 BGD
我们假定
Lemma 2.1 The algorithm will converge to a stationary point.
proof
Let
We thus have
This inequality holds for each iteration which means that
This implies that the gradient tends to zero.
When f is convex, any local minimizer
Therefore, for any convex
Remark: 最小值点不一定唯一!
2.1 Convex case for BGD
Theorem 2.1
If we select
If we select
我们知道BGD的update rule:
根据
or
Due to the convexity of
We now plug (2) into (1) and write
By summing up the above inequality for
Lemma 2.1 states that
by substituting
Thus by
If
2.2 Strongly convex case for SGD
我们进一步假设
Lemma 2.2
If
where
Lemma 2.3
If
To see this, we apply lemma 2.2 with
Since
where the lemma follows.
Remark: Lemma 2.3 directly implies that the solution is unique.
Theorem 2.2
If
注意convex case里的(1)用到的
最后一个不等号是对
By selecting
Specially, we take
3 SGD and MBGD
我们用一个统一的框架来证明这两个算法的收敛性质, 这两个算法可以统一的写为 SG 算法:
Choose an initial iterate w1
for k = 1,2,... do
Generate a realization of the random variable
Compute a stochastic vector
Choose a step size
update:
算法为了有一个统一的形式有一些抽象, 其中,
如果你看过吴恩达的机器学习课程, 会知道SGD的优化路径一般比较崎岖, 并且迭代次数会更多一些, 这可以理解为每次它只用了一个样本, 抽取样本的随机性带来了噪声与方差, 也因为这一点, SGD的学习率
Lemma 3.1 Under the L-smooth assumption, the iterates of SG satisfy the following inequality for all
根据我们的假设, 更新规则满足:
其中等号是根据更新规则:
Remark
这个引理是说, 不管SG的历史, 也就是
1 更新的方向的期望:
2
我们考虑SGD, 也就是每次只抽取一个样本, 那么
有了这个引理之后, 我们的证明思路是, 找到一个deterministic(没有随机性的量)作为引理右边的上界, 这样我们就知道, 每一次更新, 目标函数值都会下降的足够多, 从而使得迭代而言它能够最终在有限步里下降到最小值点。这启发我们需要对
Assumption 3.1
We assume that the objective function
1 The sequence of iterate
2 There exists scalars
3 There exists scalars
第一个假设是说, 我们的目标函数在可行域里不会到负无穷去
第二个假设是说, 从期望来说,
此外, 对于
第三个假设是说,
这些假设蕴含我们对于
Assumption 3.1 可以被替换为直接假设
Lemma 3.2
Under assumptions 3.1 and
Lemma 3.1 告诉我们
Assumption 3.1的第二条:
Assumption 3.1 蕴含
到此为止, 我们证明了, SG的过程类似Markov过程, 也就是不管历史是如何到达
我们分别从两种step-size选择方式, 从Lemma 3.2起步往下证明。
3.1 SG: Strongly convex case with fixed step size
我们再次强调从Lemma 3.2的结果来看,
Theorem 3.1 Strongly convex objective with fixed stepsize
Under assumption 3.1 and assumptions of
proof
首先注意到根据我们对
在两边同时减去
两边同时减掉
因为这个式子对
Remark 假设
Remark 如果
Remark 步长越小, 收敛速率越慢, 但是可以让算法更接近最小值点, 此外更小的步长意味着更多的迭代次数!
3.2 SG: Diminishing step-size for strongly convex objective
Theorem 3.2 Strongly convex objective with diminishing step-size
Under assumption 3.1 and assumptions of L-smooth and c-strongly convex (we denote
根据我们对step-size的假设, 有
在两边同时减去
一直到这一步和fixed step-size是完全一样的, 事实上Theorem 3.1的证明是这里的特例:
k = 1: 根据v的定义, 有
假设对
考虑
其中最后一个不等号是因为根据
3.3 SG: Fixed step-size for nonconvex objective
现在我们假定
Theorem 3.3
Suppose that the SG algorithm is run with a fixed step size
Then, the expected sum-of-squares and average-square gradients of
and therefore
我们仍然从Lemma 3.2开始, 在两边求全期望, 并利用定理里
此时因为没用了strongly-convex的条件, 所以Lemma 2.2不能用, 我们直接对
等价变形就得到结果.
Remark: 如果
如果
3.4 SG: Diminishing step-size for nonconvex objective
Theorem 3.4
Under assumptions 3.1 and assumption of L-smooth, suppose that the SG algorithm is run with a step size
首先我们注意到结论都是在考察极限情况(K有限的时候第一个结论显然是成立的), 而
我们仍然从Lemma 3.2开始, 在两边求全期望, 并利用定理里
对
两边同时乘以
sum_{k=1}^K E alpha_k |nabla f(w_k)|^2 leq frac{2(Ef(w_1)-f_{inf})}{mu}+frac{LM}{mu}sum_{k=1}^K alpha_k^2
因为
Theorem 3.5
Under assumptions 3.1 and assumption of L-smooth, suppose that the SG algorithm is run with a fixed step size
这是Theorem 3.4的直接推论
Remark: 这个定理告诉我们: The expected gradient norms cannot stay bounded away from zero.
4 讨论
MBGD(BGD) and SGD 的区别在于随机方向的计算不同:
我们知道样本均值的方差会乘一个
另一方面, 我们也付出了代价:
而SGD如果使用
比较两个指数衰减因子, SGD需要运行
但是注意!!! 我们的算法分析里, 步长是有上界的, 所以不是任何时候都可以让mini-batch取SGD步长的
类似可以对衰减的步长算法进行分析。
5 Convergence rateR-rate of convergence
Suppose that
1 Superlinearly:
2
3 Linearly
4 Sublinearly
可以看到, 对凸函数, BGD次线性收敛, 对强凸函数, BGD线性收敛, SGD次线性(衰减步长)收敛.
我们在手写数字数据集上进行了实验,使用4万训练集,5000验证集,10000测试集,验证集上的损失与准确率结果如下
尽管SGD在验证损失上表现的最好,准确率却不太行,可能是因为没有使用衰减的步长