随机梯度下降一定会收敛么?

1. 什么是随机梯度下降?

随机梯度下降(Stochastic Gradient Descent,SGD)是一种用于最小化目标函数的迭代优化算法,在机器学习和深度学习领域应用广泛。

2. 随机梯度下降算法的基本原理

1. 基于梯度的优化基础

        该算法是基于梯度的优化算法,用于寻找函数的最优解,通常是最小化损失函数。在机器学习和深度学习中,模型通过调整参数来最小化损失函数,以达到最佳的预测性能。

2. 迭代更新参数

        从初始的模型参数开始,通过不断的迭代来更新参数。每次迭代都朝着使损失函数值减小的方向更新参数。

3. 随机选取样本计算梯度

        与传统的批量梯度下降算法每次使用整个数据集来计算梯度不同,随机梯度下降算法每次只随机选取一个样本或一小批样本(Mini-batch SGD)来计算损失函数关于模型参数的梯度。假设损失函数为\(L(\theta)\),其中\(\theta\)是模型的参数,对于单个样本\((x_i, y_i)\),计算梯度\(\nabla L(\theta; x_i, y_i)\)。 

4. 沿负梯度方向更新参数

        根据计算出的梯度,按照负梯度方向来更新模型参数。更新公式为\(\theta_{t+1}=\theta_t-\eta\nabla L(\theta_t; x_{i_t}, y_{i_t})\),其中\(\theta_{t}\)是第\(t\)次迭代时的参数值,\(\eta\)是学习率,用于控制参数更新的步长,\((x_{i_t}, y_{i_t})\)是第\(t\)次迭代时随机选取的样本。

5. 重复迭代直至收敛

        不断重复上述随机选择样本、计算梯度和更新参数的过程,直到满足预设的停止条件,如达到预设的最大迭代次数,或者损失函数的值变化小于某个阈值,此时认为模型参数收敛到了一个较优的值。

3. 如何选择随机梯度下降算法学习率的

1. 经验取值与手动调整

  • 初始值选择:通常可先尝试一些常见的较小值,如0.01、0.001或0.0001等。对于简单的模型和数据集,0.01或0.001可能是不错的起点;对于复杂的深度学习模型,可能需要从0.001甚至更小的值开始。
  • 根据训练表现调整:训练时若损失函数下降缓慢,可尝试增大学习率;若损失函数出现波动、不收敛甚至上升,说明学习率可能过大,需调小。以3的倍数调整学习率是常见做法,过大则缩小至1/3,过小则增大至3倍。

2. 采用学习率衰减策略

  • 指数衰减:公式为\(\eta_t=\eta\times\gamma^t\),其中\(\eta\)是初始学习率,\(\gamma\)是衰减因子(0<\(\gamma\)<1),\(t\)是迭代次数。随着迭代进行,学习率呈指数级下降,在训练初期能以较大学习率快速收敛,后期自动变小进行精细调整。
  • 线性衰减:如\(\eta_t=\eta\times(1-\frac{t}{T})\),\(T\)是训练迭代总次数。学习率随迭代次数线性减小,能较好平衡训练初期的快速下降和后期的稳定收敛。
  • 余弦衰减:模拟余弦函数的变化来调整学习率,在训练初期学习率较大,然后逐渐减小,在接近训练结束时学习率趋于0,能使模型在训练后期更稳定地收敛到最优解。

3. 使用自适应学习率算法

  • AdaGrad:能根据每个参数的梯度历史信息自适应调整学习率。对于经常更新的参数,会减小其学习率;对于不经常更新的参数,会增大其学习率,使模型训练更高效。
  • RMSProp:对梯度的平方进行指数加权移动平均,根据平均梯度的大小来调整学习率,能有效缓解梯度消失和爆炸问题,使训练更稳定。
  • Adam:结合了动量法和RMSProp的优点,利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率,在很多场景下都能取得较好的效果。

4. 利用搜索算法

  • 网格搜索:定义一个学习率的取值范围和步长,如在\([0.0001, 0.1]\)范围内,以0.001为步长,遍历所有可能的学习率值,训练模型并选择使模型性能最佳的学习率。
  • 随机搜索:在预定义的学习率取值范围内随机采样,多次试验找到较优的学习率。相比网格搜索,随机搜索更适用于取值范围较大的情况,可在一定程度上减少计算量。

5. 依据数据和模型特性

  • 数据规模:数据量较大时,为避免单个样本对参数更新影响过大,学习率可适当小些;数据量较小时,学习率可相对大些。
  • 数据分布:若数据分布均匀,可尝试较大学习率;若数据分布复杂或存在噪声,为防止过拟合和震荡,需用较小学习率。
  • 模型复杂度:简单模型用相对较大学习率就能快速收敛;复杂模型可能需要较小学习率,以避免训练过程不稳定或陷入局部最优。

3. 随机梯度下降在什么条件下可以证明是收敛的?

1. 假设条件

  1. 凸集假设:参数空间\(\Omega\)是一个有界凸集,即存在\(M>0\),对于任意\(w\in\Omega\),有\(\|w\|\leq M\),且对于任意\(w_1,w_2\in\Omega\)以及\(\lambda\in[0,1]\),都有\(\lambda w_1+(1-\lambda)w_2\in\Omega\)。
  2. 凸函数假设:对于任意样本\((x,y)\),损失函数\(L(w;x,y)\)是关于\(w\)的凸函数。即对于任意\(w_1,w_2\in\Omega\),有\(L(\lambda w_1+(1-\lambda)w_2;x,y)\leq\lambda L(w_1;x,y)+(1-\lambda)L(w_2;x,y)\),其等价定义为\(L(w';x,y)\geq L(w;x,y)+\nabla_w L(w;x,y)^T(w'-w)\)。
  3. 梯度有界假设:对于任意\(w\in\Omega\)以及任意样本\((x,y)\),梯度\(\nabla_w L(w;x,y)\)的范数有界,即存在\(G>0\),使得\(\|\nabla_w L(w;x,y)\|\leq G\)。
  4. 学习率假设:学习率\(\eta_t\)是关于迭代次数\(t\)的单调递减函数,且\(\sum_{t = 1}^{\infty}\eta_t=\infty\),\(\sum_{t = 1}^{\infty}\eta_t^2<\infty\)。

2. 证明过程

设损失函数为\(L(w)\),随机梯度下降的迭代公式为\(w_{t + 1}=w_t-\eta_t\nabla L_{i_t}(w_t)\),其中\(i_t\)是第\(t\)次迭代时随机选取的样本索引,\(\nabla L_{i_t}(w_t)\)是基于样本\(i_t\)计算的梯度。

考虑\(w_t\)与最优解\(w^*\)的距离的平方\(\|w_{t + 1}-w^*\|^2\),将迭代公式代入并展开可得:
\(\|w_{t + 1}-w^*\|^2=\|w_t-\eta_t\nabla L_{i_t}(w_t)-w^*\|^2=\|w_t - w^*\|^2 - 2\eta_t\nabla L_{i_t}(w_t)^T(w_t - w^*)+\eta_t^2\|\nabla L_{i_t}(w_t)\|^2\)

根据凸函数的性质\(L(w^*;x_{i_t},y_{i_t})\geq L(w_t;x_{i_t},y_{i_t})+\nabla_w L(w_t;x_{i_t},y_{i_t})^T(w^*-w_t)\),可得\(-\nabla L_{i_t}(w_t)^T(w_t - w^*)\leq L(w_t;x_{i_t},y_{i_t})-L(w^*;x_{i_t},y_{i_t})\)。

又因为\(\|\nabla_w L(w;x,y)\|\leq G\),所以\(\|\nabla L_{i_t}(w_t)\|^2\leq G^2\)。

将上述两个不等式代入\(\|w_{t + 1}-w^*\|^2\)的展开式中,得到:
\(\|w_{t + 1}-w^*\|^2\leq\|w_t - w^*\|^2 - 2\eta_t\left[L(w_t;x_{i_t},y_{i_t})-L(w^*;x_{i_t},y_{i_t})\right]+\eta_t^2G^2\)

对\(t\)从\(1\)到\(T\)求和,可得:
\(\|w_{T + 1}-w^*\|^2\leq\|w_1 - w^*\|^2 - 2\sum_{t = 1}^{T}\eta_t\left[L(w_t;x_{i_t},y_{i_t})-L(w^*;x_{i_t},y_{i_t})\right]+\sum_{t = 1}^{T}\eta_t^2G^2\)

整理可得:
\(2\sum_{t = 1}^{T}\eta_t\left[L(w_t;x_{i_t},y_{i_t})-L(w^*;x_{i_t},y_{i_t})\right]\leq\|w_1 - w^*\|^2+\sum_{t = 1}^{T}\eta_t^2G^2\)

由于\(\sum_{t = 1}^{\infty}\eta_t^2<\infty\),\(\|w_1 - w^*\|^2\)是一个常数,所以\(\sum_{t = 1}^{T}\eta_t\left[L(w_t;x_{i_t},y_{i_t})-L(w^*;x_{i_t},y_{i_t})\right]\)有上界。

再根据\(\sum_{t = 1}^{\infty}\eta_t=\infty\),可以推出\(\liminf_{T\rightarrow\infty}\frac{1}{T}\sum_{t = 1}^{T}\left[L(w_t;x_{i_t},y_{i_t})-L(w^*;x_{i_t},y_{i_t})\right]=0\),即在期望意义下,随机梯度下降的平均损失会收敛到最优解的损失,也就证明了随机梯度下降在这些假设条件下是收敛的。
 

你可能感兴趣的:(人工智能,深度学习,算法)