3、【李宏毅机器学习(2017)】Gradient Descent(梯度下降)

本节课将深入学习机器学习简介中机器学习建模步骤3中优化方法Gradient Descent(梯度下降)。


目录

  • 梯度下降算法介绍
  • 自动调整学习速率
    • 学习速率对算法的影响
    • Adagrad
  • 随机梯度下降
  • Feature Scaling
  • 理论部分
  • 梯度下降算法的限制


梯度下降算法介绍

3、【李宏毅机器学习(2017)】Gradient Descent(梯度下降)_第1张图片

自动调整学习速率

学习速率对算法的影响

如果学习速率适合,那么优化Loss function的路径应该如红色线段;如果学习速率过大,那么优化Loss function的路径将如绿色、黄色线段;如果学习速率过小,那么优化Loss function的路径将如蓝色线段。由此,衍生出自动选择学习速率的方法(Adaptive Learning Rates),核心思想:每个参数设置不同学习速率,学习速率随着参数调整次数的增大而减少,因为通常初始点距离最优点远,步伐可以设置大一点,随着参数的调整逐渐逼近最优点,此时步伐应该调小,避免跨过最优点。
3、【李宏毅机器学习(2017)】Gradient Descent(梯度下降)_第2张图片

Adagrad

Adagrad是一种常见的自动调整学习速率算法,具体如下。
3、【李宏毅机器学习(2017)】Gradient Descent(梯度下降)_第3张图片
3、【李宏毅机器学习(2017)】Gradient Descent(梯度下降)_第4张图片

最终可以得到Adagrad算法的参数更新: wt+1wtηti=0(gi)2gt w t + 1 ← w t − η ∑ i = 0 t ( g i ) 2 g t ,Adagrad算法考虑 gt g t 的反差效应, gt g t 表示一阶导数, ti=0(gi)2 ∑ i = 0 t ( g i ) 2 反映二阶导数。

随机梯度下降

只考虑一个随机样本的Loss function:

minL(w,b)n=min(ŷ n(b+wxncp))2,θi:=θi1ηL(θi1) m i n L ( w , b ) n = m i n ( y ^ n − ( b + w x c p n ) ) 2 , θ i := θ i − 1 − η ▽ L ( θ i − 1 )

3、【李宏毅机器学习(2017)】Gradient Descent(梯度下降)_第5张图片

梯度下降的算法遍历所有样本之后才更新参数,走的方向比较稳定;
随机梯度下降的算法不稳定,但是相同的时间内速度大大增加。

Feature Scaling

不同量级的数据对Loss function的影响不一致,对于椭圆形的Loss L比较难以求解,考虑进行归一化处理来解决这个问题。
3、【李宏毅机器学习(2017)】Gradient Descent(梯度下降)_第6张图片

理论部分

假设参数为 θ1,θ2 θ 1 , θ 2 ,根据泰勒展开式 h(x)=k=0h(k)(x0)k!(xx0)k h ( x ) = ∑ k = 0 h ( k ) ( x 0 ) k ! ( x − x 0 ) k ,当 x x 趋近于 x0 x 0 h(x)h(x0)+h(x0)(xx0) h ( x ) ≈ h ( x 0 ) + h ′ ( x 0 ) ( x − x 0 )

L(θ)L(a,b)+L(a,b)θ1(θ1a)+L(a,b)θ2(θ2b) L ( θ ) ≈ L ( a , b ) + ∂ L ( a , b ) ∂ θ 1 ( θ 1 − a ) + ∂ L ( a , b ) ∂ θ 2 ( θ 2 − b ) ,令 s=L(a,b),u=L(a,b)θ1,v=L(a,b)θ2 s = L ( a , b ) , u = ∂ L ( a , b ) ∂ θ 1 , v = ∂ L ( a , b ) ∂ θ 2 ,所以得到 L(θ)s+u(θ1a)+v(θ2b)=s+uΔθ1+vΔθ2 L ( θ ) ≈ s + u ( θ 1 − a ) + v ( θ 2 − b ) = s + u Δ θ 1 + v Δ θ 2 ,现在在一个半径为d的圆形区域寻找L的最小值,即 Δθ1+Δθ2d Δ θ 1 + Δ θ 2 ⩽ d ,即沿着 u,v u , v 的反方向延伸直到圆形的边界。

此时d对应学习速率,在整个推导中,使用了泰勒一阶展开近似原函数,
因此为了使其满足,d应该足够小,所以整个算法的核心在于学习速率的选择。

梯度下降算法的限制

  • 梯度下降算法求得的解可能是局部最优解
  • 梯度下降算法可能收敛在驻点,求得的解不是最优解
  • 由于梯度下降算法的收敛条件是参数变化小于一个给定的误差,因此算法可能停止于一个偏微分很小的点
    3、【李宏毅机器学习(2017)】Gradient Descent(梯度下降)_第7张图片

你可能感兴趣的:(学习笔记,李宏毅机器学习(2017),笔记)