0
点赞
收藏
分享

微信扫一扫

优化算法对比

f12b11374cba 2023-06-09 阅读 58
算法

求解非线性最小二乘问题
min ⁡ x F ( x ) = 1 2 ∥ f ( x ) ∥ \min_{x} F(x) = \frac{1}{2}\left \| f(x)\right \| xminF(x)=21f(x)

首先获得 F ( x k + Δ x k ) F(x_k+\Delta x_k) F(xk+Δxk)的具体数值,方法是在 x k x_k xk的位置进行泰勒展开,二阶一般就足够近似了。
F ( x k + Δ x k ) ≈ F ( x k ) + J T ( x k ) Δ x k + 1 2 Δ x k T H ( x k ) Δ x k F(x_k+\Delta x_k) \approx F(x_k) + J^T(x_k)\Delta x_k + \frac{1}{2}\Delta x_k^TH(x_k)\Delta x_k F(xk+Δxk)F(xk)+JT(xk)Δxk+21ΔxkTH(xk)Δxk

  • J ( x k ) J(x_k) J(xk) 雅可比矩阵Jacobian(梯度、一阶导数),表格中用 J J J表示。
  • H ( x k ) H(x_k) H(xk) 海森矩阵hessian(二阶、导数),表格中用 H H H表示。
  • x k x_k xk 已知,,表格中用 x x x表示。
  • Δ x k \Delta x_k Δxk 带求量已知,表格中用 Δ x \Delta x Δx表示。
优化算法主要思路更新公式优势缺点
最速下降法梯度方向是上升方向,所以沿着负梯度方向 − J -J J更新 x x x,可以使 F ( x ) F(x) F(x)逐步获得最小值。更新的步长为 − λ -\lambda λ Δ x = − λ J \Delta x=-\lambda J Δx=λJ是下降算法容易出现锯齿现象,增加迭代的次数
牛顿法二阶泰勒展开的数值最小,一般是对 Δ x \Delta x Δx求导导数为0的极值点 J + H Δ = 0 J+H\Delta = 0 J+HΔ=0是下降算法需要计算H矩阵,计算量大
高斯牛顿法使用 f ( x ) f(x) f(x)的雅可比矩阵 J ( x ) J T ( x ) J(x)J^T(x) J(x)JT(x)近似 H H H矩阵, f ( x + Δ x ) = f ( x ) + J ( x ) T Δ x f(x +\Delta x) = f(x) + J(x)^T \Delta x f(x+Δx)=f(x)+J(x)TΔx J ( x ) J T ( x ) Δ x = − J ( x ) f ( x ) ⇒ H ( x ) Δ x = g ( x ) J(x)J^T(x) \Delta x = - J(x)f(x) \Rightarrow H(x)\Delta x = g(x) J(x)JT(x)Δx=J(x)f(x)H(x)Δx=g(x)避免了计算 H H H导致的计算量过大的问题使用 J ( x ) J T ( x ) J(x)J^T(x) J(x)JT(x)近似的 H ( x ) H(x) H(x)半正定肯出现奇异病态;近似的 H ( x ) H(x) H(x)只在 x x x附近效果不错,可能出现求解得到的 Δ x \Delta x Δx的步长过大,局部的近似不准确的问题。
LM优化算法考虑到高斯牛顿法近似不准确,给定一个近似的信赖区间半径 μ \mu μ,并根据 ρ = f ( x + Δ x ) − f ( x ) J T ( x ) Δ x \rho = \frac{f(x + \Delta x)-f(x)}{J^T(x)\Delta x} ρ=JT(x)Δxf(x+Δx)f(x)指标判断 μ \mu μ的好坏, ρ \rho ρ大于一定值可以增加 μ \mu μ半径,反之亦然。 ( H ( x ) + λ D T D ) Δ x = g ( x ) (H(x) + \lambda D^TD) \Delta x= g(x) (H(x)+λDTD)Δx=g(x),相比于高斯牛顿法多了 λ D T D \lambda D^TD λDTD,可以将$ D^TD$近似为单位矩阵 I I I进行简化 λ \lambda λ比较小时,近似于高斯牛顿法; λ \lambda λ比较大的时候, λ I \lambda I λI占主要地位,近似于最速度下降法
举报

相关推荐

0 条评论