本节课将深入学习机器学习简介中机器学习建模步骤3中优化方法Gradient Descent(梯度下降)。
目录
梯度下降算法介绍
自动调整学习速率
学习速率对算法的影响
如果学习速率适合,那么优化Loss function的路径应该如红色线段;如果学习速率过大,那么优化Loss function的路径将如绿色、黄色线段;如果学习速率过小,那么优化Loss function的路径将如蓝色线段。由此,衍生出自动选择学习速率的方法(Adaptive Learning Rates),核心思想:每个参数设置不同学习速率,学习速率随着参数调整次数的增大而减少,因为通常初始点距离最优点远,步伐可以设置大一点,随着参数的调整逐渐逼近最优点,此时步伐应该调小,避免跨过最优点。
Adagrad
Adagrad是一种常见的自动调整学习速率算法,具体如下。
最终可以得到Adagrad算法的参数更新:,Adagrad算法考虑的反差效应,表示一阶导数,表示二阶导数。
随机梯度下降
只考虑一个随机样本的Loss function:
,
梯度下降的算法遍历所有样本之后才更新参数,走的方向比较稳定;随机梯度下降的算法不稳定,但是相同的时间内速度大大增加。
Feature Scaling
不同量级的数据对Loss function的影响不一致,对于椭圆形的Loss L比较难以求解,考虑进行归一化处理来解决这个问题。
理论部分
假设参数为,根据泰勒展开式,当趋近于,
,令,所以得到,现在在一个半径为d的圆形区域寻找L的最小值,即,即沿着的反方向延伸直到圆形的边界。
此时d对应学习速率,在整个推导中,使用了泰勒一阶展开近似原函数,因此为了使其满足,d应该足够小,所以整个算法的核心在于学习速率的选择。
梯度下降算法的限制
- 梯度下降算法求得的解可能是局部最优解
- 梯度下降算法可能收敛在驻点,求得的解不是最优解
- 由于梯度下降算法的收敛条件是参数变化小于一个给定的误差,因此算法可能停止于一个偏微分很小的点