这里总结一个利用二价导数来求最优解的方法-牛顿法:
设: f ( X ) f(X) f(X) 是一个多维函数,由taylor 二阶展开,我们有,
f ( X ) ≈ f ( X 0 ) + ( X − X 0 ) ∇ f ( X 0 ) + ( X − X 0 ) ∇ 2 f ( X 0 ) ( X − X 0 ) 2 f(X) \approx f(X_0)+(X-X_0)\nabla f(X_0) + \frac{(X-X_0)\nabla^2 f(X_0)(X-X_0)}{2} f(X)≈f(X0)+(X−X0)∇f(X0)+2(X−X0)∇2f(X0)(X−X0)
对 X X X 求导,并设置为0,我们有
0 = ∇ f ( X 0 ) + ( X − X 0 ) ∇ 2 f ( X 0 ) ( X − X 0 ) X = − ∇ f ( X 0 ) ∇ 2 f ( X 0 ) X 0 \begin{aligned} 0&=\nabla f(X_0) + (X-X_0) \nabla ^2 f(X_0) (X- X_0)\\ X&=-\frac{\nabla f(X_0)}{\nabla^2 f(X_0)} X_0 \end{aligned} 0X=∇f(X0)+(X−X0)∇2f(X0)(X−X0)=−∇2f(X0)∇f(X0)X0
相当于将梯度下降的learning rate设置为 ( ∇ 2 f ( X 0 ) ) − 1 (\nabla^2 f(X_0))^{-1} (∇2f(X0))−1
note
- 显然牛顿法计算量更大,因为他需要计算 hessian矩阵,相对于梯度下降来说这是 n 2 n^2 n2 的
- 牛顿法收敛率更快 O ( t − 2 ) O(t^{-2}) O(t−2),梯度下降是 O ( t − 1 ) O(t^{-1}) O(t−1)
版权声明
本作品为作者原创文章,采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议
作者: taotao
原始link: https://zouzhitao.github.io/posts/newton-method/
转载请保留此版权声明,并注明出处