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

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


目录


梯度下降算法介绍

这里写图片描述

自动调整学习速率

学习速率对算法的影响

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

Adagrad

Adagrad是一种常见的自动调整学习速率算法,具体如下。
这里写图片描述
这里写图片描述

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

随机梯度下降

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

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 )

这里写图片描述

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

Feature Scaling

不同量级的数据对Loss function的影响不一致,对于椭圆形的Loss L比较难以求解,考虑进行归一化处理来解决这个问题。
这里写图片描述

理论部分

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

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 ,所以得到 L ( θ ) s + u ( θ 1 a ) + v ( θ 2 b ) = s + u Δ θ 1 + v Δ θ 2 ,现在在一个半径为d的圆形区域寻找L的最小值,即 Δ θ 1 + Δ θ 2 d ,即沿着 u , v 的反方向延伸直到圆形的边界。

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

梯度下降算法的限制

  • 梯度下降算法求得的解可能是局部最优解
  • 梯度下降算法可能收敛在驻点,求得的解不是最优解
  • 由于梯度下降算法的收敛条件是参数变化小于一个给定的误差,因此算法可能停止于一个偏微分很小的点
    这里写图片描述

猜你喜欢

转载自blog.csdn.net/Jimmyzqb/article/details/82146026