梯度下降与牛顿法
牛顿法与梯度下降法
梯度下降法
梯度下降法非常常用,其利用的是一阶导数,进行逼近,具体的更新方法如下:
\[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}\)就是海森矩阵。
梯度下降与牛顿法的比较
- 牛顿法不需要设置学习速率
- 牛顿法收敛速度更快
- 牛顿法由于需要计算二阶导数,计算量更大,同时也需要函数二阶可导
- 牛顿法还需要求海森矩阵的逆,非常困难
夜空中最亮的星,照亮我前行