参见https://blog.csdn.net/itplus/article/details/21896453
一.牛顿法
参见:https://zhuanlan.zhihu.com/p/33544363
1.概念:
"牛顿法"(Newton's method)是1种启发式的迭代算法,用于求解非线性最优化问题.其基本思想是:开始时随机选择1组参数(θ1,θ2...θn),在
该点处用多项式(下文均以2次为例)拟合目标函数,然后移动到该多项式的极值点处,并不断重复上述过程直到收敛.需要注意的是:仅当目标函数为
凸函数时梯度下降能保证找到全局最优解;其他情况下可能停留在驻点/无法收敛
2.一般形式:
假设 H ( J ′ ( θ k ; x j ) ) H(J'(θ^k;x_j)) H(J′(θk;xj))非奇异,则将参数更新规则修正为 θ k + 1 = θ = θ k − α H − 1 ( J ′ ( θ k ; x j ) ) ∇ J ( θ k ; x j ) θ^{k+1}=θ=θ^k-αH^{-1}(J'(θ^k;x_j))\nabla{J(θ^k;x_j)} θk+1=θ=θk−αH−1(J′(θk;xj))∇J(θk;xj)其中α为学习率,后文均以 α = 1 α=1 α=1为例.其搜索方向 d k = − H − 1 ( J ′ ( θ k ; x j ) ) ∇ J ( θ k ; x j ) d_k=-H^{-1}(J'(θ^k;x_j))\nabla{J(θ^k;x_j)} dk=−H−1(J′(θk;xj))∇J(θk;xj)称为牛顿方向(Newton Direction)
3.推导:
若 J ( θ ; x j ) J(θ;x_j) J(θ;xj)二阶连续可导,将其在 θ k θ^k θk处泰勒展开得到 J ( θ ; x j ) = J ( θ k ; x j ) + ∇ J ( θ k ; x j ) T ( θ − θ k ) + ( θ − θ k ) T H ( J ′ ( θ k ; x j ) ) ( θ − θ k ) 2 + R 2 ( θ ) J(θ;x_j)=J(θ^k;x_j)+\nabla{J(θ^k;x_j)}^T(θ-θ^k)+\frac{(θ-θ^k)^TH(J'(θ^k;x_j))(θ-θ^k)}{2}+R_2(θ) J(θ;xj)=J(θk;xj)+∇J(θk;xj)T(θ−θk)+2(θ−θk)TH(J′(θk;xj))(θ−θk)+R2(θ)从而有 ∇ J ( θ ; x j ) ≈ ∇ J ( θ k ; x j ) + H ( J ′ ( θ k ; x j ) ) ( θ − θ k ) \nabla{J(θ;x_j)}≈\nabla{J(θ^k;x_j)}+H(J'(θ^k;x_j))(θ-θ^k) ∇J(θ;xj