梯度下降与牛顿法

牛顿法与梯度下降法

梯度下降法

梯度下降法非常常用,其利用的是一阶导数,进行逼近,具体的更新方法如下:

[x_{n+1} = x_n-alpha f'(x_n) ]

其中(alpha)为学习速率。

牛顿法

牛顿利用到了二阶导数的信息,其推导需要利用到泰勒的二阶展开,具体如下:

[f(x+ riangle x) approx f(x) + f'(x) riangle x+1/2f''(x) riangle x^2​ ]

我们令(f(x+ riangle x))( riangle x)进行求导,并使得其等于0有

[f'(x)+f''(x) riangle x = 0 ]

从而得到( riangle x = -dfrac{f'(x)}{f''(x)})

从向量的角度来看,参数的更新可以表示为

[ heta = heta - H^{-1}igtriangledown_{ heta}l( heta) ]

其中(H^{-1})就是海森矩阵。

梯度下降与牛顿法的比较

  1. 牛顿法不需要设置学习速率
  2. 牛顿法收敛速度更快
  3. 牛顿法由于需要计算二阶导数,计算量更大,同时也需要函数二阶可导
  4. 牛顿法还需要求海森矩阵的逆,非常困难
原文地址:https://www.cnblogs.com/crackpotisback/p/9844566.html