梯度下降与牛顿法

牛顿法与梯度下降法

梯度下降法

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

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

其中\(\alpha\)为学习速率。

牛顿法

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

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

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

\[f'(x)+f''(x)\triangle x = 0 \]

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

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

\[\theta = \theta - H^{-1}\bigtriangledown_{\theta}l(\theta) \]

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

梯度下降与牛顿法的比较

  1. 牛顿法不需要设置学习速率
  2. 牛顿法收敛速度更快
  3. 牛顿法由于需要计算二阶导数,计算量更大,同时也需要函数二阶可导
  4. 牛顿法还需要求海森矩阵的逆,非常困难
posted @ 2018-10-24 17:08  狂徒归来  阅读(340)  评论(0编辑  收藏  举报