3、Gradient Descent(梯度下降)

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


目录

梯度下降算法介绍

自动调整学习速率

学习速率对算法的影响

Adagrad

随机梯度下降

Feature Scaling

理论部分

梯度下降算法的限制


梯度下降算法介绍

自动调整学习速率

学习速率对算法的影响

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

Adagrad

Adagrad是一种常见的自动调整学习速率算法,具体如下。

最终可以得到Adagrad算法的参数更新:w^{t+1}\leftarrow w^t-\frac{\eta }{\sum_{i=0}^{t}(g^i)^2}g^t,Adagrad算法考虑g^t的反差效应,g^t表示一阶导数,\sum_{i=0}^{t}(g^i)^2表示二阶导数。

随机梯度下降

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

minL(w,b)^n=min(\hat{y}^n-(b+wx_{cp}^n))^2\theta^i :=\theta^{i-1}-\eta \bigtriangledown L(\theta^{i-1})

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

Feature Scaling

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

理论部分

假设参数为\theta_1,\theta_2,根据泰勒展开式h(x)=\sum_{k=0}\frac{h^{(k)}(x_0)}{k!}(x-x_0)^k,当x趋近于x_0h(x)\approx h(x_0)+h^{'}(x_0)(x-x_0)

L(\theta)\approx L(a,b)+\frac{\partial L(a,b)}{\partial \theta_1}(\theta_1-a)+\frac{\partial L(a,b)}{\partial \theta_2}(\theta_2-b),令s=L(a,b),u=\frac{\partial L(a,b)}{\partial \theta_1},v=\frac{\partial L(a,b)}{\partial \theta_2},所以得到L(\theta)\approx s+u(\theta_1-a)+v(\theta_2-b)=s+u \Delta \theta_1 +v \Delta \theta_2,现在在一个半径为d的圆形区域寻找L的最小值,即\Delta \theta_1 +\Delta \theta_2 \leqslant d,即沿着u,v的反方向延伸直到圆形的边界。

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

梯度下降算法的限制

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

课程视频来源点击我

猜你喜欢

转载自blog.csdn.net/qq_17438303/article/details/82012378
今日推荐