梯度下降

理论基础

梯度下降法是机器学习中常用的优化方法,其理论基础是当θs-θ→0时会有:

J(θs) ≈ J(θ)+▽(θ)(θs-θ)

因此当我们这样更新θs,并保证α>0且足够小时:

θs+1 = θs - α▽(θs)

则会有:

J(θs+1)
≈ J(θs)+▽(θs)(θs+1s)
≈ J(θs)+▽(θs)(-α▽(θs))≈ J(θs) - α▽(θs)2

这里我们可以发现迭代后的目标函数J(θ)变小了,因此经过多次迭代后,我们能够找到一个极小值(当▽(θs)=0时,θs+1 = θs,迭代结束)。

迭代结束条件

由于要达到▽(θs)=0必须迭代十分长的时间,因此实际操作中迭代条件并非▽(θs)=0,而是一下三个常用的条件:

  1. 迭代次数 < n
  2. J(θs+1)-J(θs) < ε
  3. |▽(θ1)|+|▽(θ2)|+...+|▽(θs)| < ε

优化方法

  1. 由于每一维度的值的范围可能差别很大(如有一些维度为0-1,另一些为100-200),这样当我们都统一从0开始迭代时,会使得范围小的维度很快得到拟合,而范围大的维度却需要长时间的拟合,因此我们常常会先将数据进行归一化。
  2. 当迭代次数较小的时候,我们希望一个较大的α来提高迭代速度;但是当迭代次数大的时候,我们则希望一个较小的α来更好的到达最优解(避免在极小值附近左右晃动)。因此我们可以避免使用固定的步长,而是当迭代次数到达一定的大小时,让α逐渐变小。
原文地址:https://www.cnblogs.com/bgmind/p/4364229.html