1 梯度下降概念

1.1 概念

梯度下降是一种优化算法,用于最小化一个函数的值,特别是用于训练机器学习模型中的参数,其基本思想是通过不断迭代调整参数的值,使得函数值沿着梯度的反方向逐渐减小,直至达到局部或全局最小值

1.2 理解

在实际业务中,一般多个特征对应一个目标结果值。即对一个多维复杂的方程组的每一维的特征权重进行计算,以求出这个方程局部或全局最小值。如果使用正规方程的进计算,计算量太大,时间及财力消耗巨大。采用梯度下降方法,选定一个经验初始值,一步步沿着梯度的反方向进行计算,使方程解尽快达到收敛,并得出最优解。

1.3 分类

  • 批量梯度下降(Batch Gradient Descent)
  • 随机梯度下降(Stochastic Gradient Descent)
  • 小批量梯度下降(Mini-batch Gradient Descent)

1.4 应用

梯度下降法是机器学习和优化领域中最常用的优化算法之一,被广泛应用于训练神经网络、线性回归、逻辑回归等各种机器学习模型中

2 梯度下降公式

2.1 表达公式

θ n + 1 = θ n − α ∗ g r a d i a n t \theta^{n+1} = \theta^n - \alpha * gradiant θn+1=θnαgradiant

其中 α \alpha α表示学习率, g r a d i e n t gradient gradient表示梯度

θ n + 1 = θ n − α ∗ ∂ J ( θ ) ∂ θ \theta^{n+1} = \theta^n - \alpha * \frac{\partial J (\theta )}{\partial \theta} θn+1=θnαθJ(θ)

另一种写法

2.2 图示

彻底学会系列:一、机器学习之梯度下降(1)-LMLPHP

2.3 每一维求解,一起找到 J ( θ ) J(\theta) J(θ)最小值

θ 0 n + 1 = θ 0 n − α ∗ ∂ J ( θ ) ∂ θ 0 \theta_0^{n+1} = \theta_0^n - \alpha * \frac{\partial J (\theta )}{\partial \theta_0} θ0n+1=θ0nαθ0J(θ)
θ 1 n + 1 = θ 1 n − α ∗ ∂ J ( θ ) ∂ θ 1 \theta_1^{n+1} = \theta_1^n - \alpha * \frac{\partial J (\theta )}{\partial \theta_1} θ1n+1=θ1nαθ1J(θ)
θ m n + 1 = θ m n − α ∗ ∂ J ( θ ) ∂ θ m \theta_m^{n+1} = \theta_m^n - \alpha * \frac{\partial J (\theta )}{\partial \theta_m} θmn+1=θmnαθmJ(θ)

彻底学会系列:一、机器学习之梯度下降(1)-LMLPHP

3 梯度下降学习率

3.1 概念

梯度下降算法中的学习率learning rate 是一个非常重要的超参数,它控制了每次参数更新的步长大小。学习率决定了在梯度下降过程中参数更新的速度和稳定性

3.2 理解

为得到局部或全局最小函数值,特征权重按梯度反方向逐渐减小,这个减去的值,就叫作学习率或步长

3.3 调整策略

  • 固定学习率: 将学习率设置为一个固定的常数,例如0.01或0.001。这是最简单的学习率调整策略,但可能不够灵活,无法适应不同问题和数据的特性。

  • 学习率衰减(Learning Rate Decay): 在训练过程中逐渐减小学习率,以使模型在接近最优解时更加稳定。常见的衰减策略包括指数衰减、分段衰减等。

  • 自适应学习率(Adaptive Learning Rate): 根据参数更新的情况动态地调整学习率。例如,AdaGrad、RMSProp、Adam等优化算法会根据梯度的历史信息来自适应地调整学习率,以更有效地更新参数。

  • 学习率搜索(Learning Rate Search): 在训练过程中动态地搜索最优的学习率。例如,可以使用学习率范围测试(Learning Rate Range Test)等方法来估计合适的学习率范围。

3.4 应用

  • 学习率设置得太小,参数更新的步长就会很小,导致收敛速度缓慢,需要更多的迭代次数才能收敛到最优解,或者在达到最优解之前就提前停止。

  • 学习率设置得太大,参数更新的步长就会很大,可能导致算法无法收敛,甚至发生震荡或发散。

    使用 η \eta η 表示学习率,下图3种学习率情况
    彻底学会系列:一、机器学习之梯度下降(1)-LMLPHP

3.5 设置学习率

学习率的是一个经验,把它设置成一个比较小的正整数,0.1、0.01、0.001、0.0001,just make
彻底学会系列:一、机器学习之梯度下降(1)-LMLPHP

4 梯度下降实验步骤

  1. 随机设置最优解 θ \theta θ
  2. 随机生成一组数值 w 0 、 w 1 、 w 2 、 w n w_0、w_1、w_2、w_n w0w1w2wn, 期望 为 0 方差 为 1 的正太分布数据。 、
  3. 求梯度 g ,梯度代表曲线某点上的切线的斜率,沿着切线往下就相当于沿着坡度最陡峭的方向下降
  4. if g < 0, 变大,if g > 0, 变小
  5. 判断是否收敛 convergence,如果收敛跳出迭代,如果没有达到收敛,回第 3 步,继续迭代3~4步

收敛的判断标准是: 随着迭代进行损失函数Loss,变化非常微小甚至不再改变,即认为达到收敛
彻底学会系列:一、机器学习之梯度下降(1)-LMLPHP

03-18 06:44