牛顿法
x k + 1 = x k − α H k − 1 g k \mathrm{x}_{k+1}=\mathrm{x}_k-\alpha H^{-1}_kg_k xk+1=xk−αHk−1gk
问:如何计算H?
利用 A x = b A\mathrm{x}=\mathrm{b} Ax=b计算。
问: α \alpha α如何得到?
用line search直接搜索,比较 α = 1 0 − 3 、 1 0 − 4 、 1 0 − 5 、 . . . \alpha=10^{-3}、10^{-4}、10^{-5}、... α=10−3、10−4、10−5、...下,什么时候 x k + 1 \mathrm{x}_{k+1} xk+1最小。
问:迭代终止条件:
- ∥ ∇ f ( x ) ∥ ≤ ε \lVert\nabla f(\mathrm{x})\rVert\le \varepsilon ∥∇f(x)∥≤ε
- 设置迭代次数
优点: 牛顿法采用了二阶导,故迭代速度比梯度下降法快
缺点: H H H可能不可导,且利用计算 H H H运算量大
坐标下降法
利用 分治法
的思想,将其余自变量固定,只对一个自变量求极值。
x 1 → x 2 → . . . → x n → x 1 . . . x_1\rightarrow x_2\rightarrow...\rightarrow x_n\rightarrow x_1... x1→x2→...→xn→x1...
min f ( x ) , x = ( x 1 , x 2 , . . . , x n ) ⟹ min x i f ( x ) \min\;f(\textrm{x}),\textrm{x}=(x_1,x_2,...,x_n)\Longrightarrow\min_{x_i}\;f(\textrm{x}) minf(x),x=(x1,x2,...,xn)⟹minxif(x)
拉格朗日 乘数法
min f ( x ) h i ( x ) = 0 , i = 1 , . . . , p \min\;f(\textrm{x})\\h_i(\textrm{x})=0,i=1,...,p minf(x)hi(x)=0,i=1,...,p
引入拉格朗日乘子,将原问题转化为
L ( x , λ ) = f ( x ) + ∑ i = 1 p λ i h i ( x ) L(\textrm{x},\lambda)=f(\textrm{x})+\displaystyle\sum^p_{i=1}\lambda_ih_i(\textrm{x}) L(x,λ)=f(x)+i=1∑pλihi(x)
分别对 x , λ \textrm{x},\lambda x,λ求导,得
∇ x f + ∑ i = 1 p λ i ∇ x h i = 0 h i ( x ) = 0 \nabla_xf+\displaystyle\sum_{i=1}^p\lambda_i\nabla_{\textrm{x}}h_i=0\\h_i(\textrm{x})=0 ∇xf+i=1∑pλi∇xhi=0hi(