数值最优化—非线性方程组与最小二乘问题

一、参考

《数值最优化算法与理论》

二、非线性方程组的局部算法

1. 局部Newton法

F : R n → R n F:R^n \to R^n F:RnRn连续可微。考察如下非线性方程组:
F ( x ) = 0 F(x)=0 F(x)=0
F F F是某个函数 f : R n → R n f:R^n \to R^n f:RnRn的梯度,由 数值最优化—无约束问题的下降算法与线性搜索:无约束问题解的一阶必要条件 可知,上面方程表示无约束问题 m i n f ( x ) minf(x) minf(x)的最优解的一阶必要条件。

F ′ ( x ) F'(x) F(x)为函数 F F F x x x处的 J a c o b i Jacobi Jacobi矩阵。求解上面方程的局部Newton法的迭代格式如下: x ( k + 1 ) = x ( k ) + d ( k ) , d ( k ) x^{(k+1)} = x^{(k)} + d^{(k)}, \quad d^{(k)} x(k+1)=x(k)+d(k),d(k)是线性方程组
F ′ ( x ( k ) ) d + F ( x ( k ) ) = 0 F'(x^{(k)})d + F(x^{(k)}) = 0 F(x(k))d+F(x(k))=0
的解。

经过与 数值最优化—无约束问题最速下降法和Newton法:Newton法 比较,不难发现,若 F F F是函数 f : R n → R f:R^n \to R f:RnR的梯度,则求解非线性方程组的局部Newton法与求解无约束问题 m i n f ( x ) minf(x) minf(x)的古典Newton法一致。因此,求解非线性方程组的Newton法是求解无约束最优化问题Newton法的一种推广。

2. 局部拟Newton法

局部拟Newton法的迭代格式为: x ( k + 1 ) = x ( k ) + d ( k ) , d ( k ) x^{(k+1)} = x^{(k)} + d^{(k)}, \quad d^{(k)} x(k+1)=x(k)+d(k),d(k)是线性方程组:
B k d ( k ) + F ( x ( k ) ) = 0 B_kd^{(k)} + F(x^{(k)}) = 0 Bkd(k)+F(x(k))=0
的解,其中,矩阵 B k B_k Bk F ′ ( x ( k ) ) F'(x^{(k)}) F(x(k))的近似,它满足下面的拟Newton(割线)方程:
B k + 1 s ( k ) = y ( k ) B_{k+1}s^{(k)} = y^{(k)} Bk+1s(k)=y(k)
其中 y ( k ) = F ( x ( k + 1 ) ) − F ( x ( k ) ) , s ( k ) = x ( k + 1 ) − x ( k ) y^{(k)} = F(x^{(k+1)}) - F(x^{(k)}), s^{(k)} = x^{(k+1)} - x^{(k)} y(k)=F(x(k+1))F(x(k)),s(k)=x(k+1)x(k)。注意到 y ( k ) ≈ F ′ ( x ( k 1 ) ) s ( k ) y^{(k)} \approx F'(x^{(k1)})s^{(k)} y(k)F(x(k1))s(k),因此, B k + 1 B_{k+1} Bk+1 F ′ ( x ( k + 1 ) ) F'(x^{(k+1)}) F(x(k+1))沿方向 s ( k ) s^{(k)} s(k)很接近。

三、非线性方程组的全局化算法

1. 阻尼Newton法

F ( x ) = ( F 1 ( x ) , F 2 ( x ) , ⋅ ⋅ ⋅ , F n ( x ) ) T F(x) = (F_1(x), F_2(x),···,F_n(x))^T F(x)=(F1(x),F2(x),,Fn(x))T。引入函数:
θ ( x ) = 1 2 ∣ ∣ F ( x ) ∣ ∣ 2 = 1 2 ∑ i = 1 n F i ( x ) 2 \theta (x) = \frac 1 2 ||F(x)||^2 = \frac 1 2 \sum^{n}_{i=1} F_i(x)^2 θ(x)=21F(x)2=21i=1nFi(x)2
我们称 θ \theta θ是方程组的残量函数活模函数。经计算,容易得到 θ \theta θ的梯度具有如下形式:
∇ θ ( x ) = ∑ i = 1 n F i ( x ) ∇ F i ( x ) = F ′ ( x ) T F ( x ) \nabla \theta(x) = \sum^{n}_{i=1} F_i(x) \nabla F_i(x) = F'(x)^T F(x) θ(x)=i=1nFi(x)Fi(x)=F(x)TF(x)
d ˉ \bar d dˉ是下面的线性方程组的解:
F ′ ( x ) d + F ( x ) = 0 F'(x)d + F(x) = 0 F(x)d+F(x)=0
则有:
∇ θ ( x ) T d ˉ = − ∣ ∣ F ( x ) ∣ ∣ 2 < 0 \nabla \theta (x)^T \bar d = -||F(x)||^2 < 0 θ(x)Tdˉ=F(x)2<0
d ˉ \bar d dˉ是函数 θ \theta θ x x x处的一个下降方向。利用此性质,我们可以构造求解非线性方程的线性搜索型Newton法。称之为阻尼Newton法。如下:

  1. 给定初始点 x ( 0 ) ∈ R n x^{(0)} \in R^n x(0)Rn,常数 ρ ∈ ( 0 , 1 ) , σ 1 ∈ ( 1 , 1 / 2 ) \rho \in (0,1), \sigma _1 \in (1,1/2) ρ(0,1),σ1(1,1/2),精度 ϵ > 0 \epsilon > 0 ϵ>0,令 k = 0 k=0 k=0
  2. ∣ ∣ F ( x ( k ) ) ∣ ∣ ≤ ϵ ||F(x^{(k)})|| \le \epsilon F(x(k))ϵ,则终止算法,得解 x ( k ) x^{(k)} x(k)。否则,转3。
  3. 解线性方程序组 F ′ ( x ( k ) ) d + F ( x ( k ) ) = 0 F'(x^{(k)})d + F(x^{(k)}) = 0 F(x(k))d+F(x(k))=0,得方向 d ( k ) d^{(k)} d(k)
  4. 确定步长 α k \alpha _k αk 为集合 { ρ i ∣ i = 0 , 1 , 2 ⋅ ⋅ ⋅ } \{\rho ^i | i=0,1,2···\} {ρii=0,1,2}中使得下面的不等式成立的最大者:
    θ ( x ( k ) + α k d ( k ) ) ≤ ( 1 − 2 σ 1 α k ) θ ( x ( k ) ) \theta (x^{(k)} + \alpha _k d^{(k)}) \le (1 - 2 \sigma _1 \alpha_k) \theta (x^{(k)}) θ(x(k)+αkd(k))(12σ1αk)θ(x(k))
  5. x ( k + 1 ) = x ( k ) + α k d ( k ) , k = k + 1 x^{(k+1)} = x^{(k)} + \alpha _k d^{(k)},k=k+1 x(k+1)=x(k)+αkd(k)k=k+1。转2。

2. 信赖域算法

类似于求解无约束问题的信赖域算法,我们构建求解非线性方程组的信赖域算法,其子问题为:
{ m i n   m k ( d ) = △ 1 2 ∣ ∣ F ( x ( k ) ) + F ′ ( x ( k ) ) d ∣ ∣ 2 s . t .   ∣ ∣ d ∣ ∣ ≤ Δ k \begin{cases} min \ m_k(d) \overset{\bigtriangleup }{=} \frac 1 2 ||F(x^{(k)}) + F'(x^{(k)})d||^2 \\ s.t. \ ||d|| \le \Delta _k \end{cases} {min mk(d)=21F(x(k))+F(x(k))d2s.t. dΔk
其中 Δ k > 0 \Delta _k > 0 Δk>0是信赖域半径。记该问题的解为 d ( k ) d^{(k)} d(k)。函数 m k m_k mk θ \theta θ的近似函数,它由在 θ \theta θ中对 F F F作线性近似产生。Newton-信赖域算法如下:

  1. 取初始点 x ( 0 ) ∈ R n ,   Δ ˉ > 0 , Δ 0 ∈ ( 0 , Δ ˉ ) , η ∈ [ 0 , 1 4 ) x^{(0)} \in R^n,\ \bar \Delta >0, \Delta _0 \in (0,\bar \Delta), \eta \in [0, \frac 1 4) x(0)Rn, Δˉ>0,Δ0(0,Δˉ),η[0,41),精度 ϵ > 0 \epsilon > 0 ϵ>0,令 k = 0 k=0 k=0
  2. ∣ ∣ θ ( x ( k ) ) ∣ ∣ ≤ ϵ ||\theta (x^{(k)})|| \le \epsilon θ(x(k))ϵ,则终止算法,得解 x ( k ) x^{(k)} x(k)。否则,转3。
  3. 求解上面的信赖域子问题,得解 d ( k ) d^{(k)} d(k)
  4. 计算 r k r_k rk。若 r k > 3 4 r_k > \frac 3 4 rk>43,则令 Δ k + 1 = m i n { 2 Δ k , Δ ˉ } \Delta _{k+1} = min\{2\Delta _k,\bar \Delta \} Δk+1=min{2Δk,Δˉ};若 η < r k < 1 4 \eta < r_k < \frac 1 4 η<rk<41,则令 Δ k + 1 = 1 2 Δ k \Delta _{k+1} = \frac 1 2 \Delta _k Δk+1=21Δk;若 1 4 ≤ r k ≤ 3 4 \frac {1} {4} \le r_k \le \frac {3} {4} 41rk43,则令 Δ k + 1 = Δ k \Delta _{k+1} = \Delta _k Δk+1=Δk
  5. r k ≤ η r_k \le \eta rkη,令 x ( x + 1 ) = x ( k ) ,   k = k + 1 x^{(x+1)} = x^{(k)}, \ k=k+1 x(x+1)=x(k), k=k+1,转3。否则令 x ( k + 1 ) = x ( k ) + d ( k ) ,   k = k + 1 x^{(k+1)} = x^{(k)} + d^{(k)},\ k=k+1 x(k+1)=x(k)+d(k) k=k+1,转2。

注:4.中的常数1/4,3/4, 1/2是根据经验选取的。实际计算时,可根据问题对它们进行调整。

四、最小二乘问题

如下特殊形式的无约束问题:
m i n f ( x ) = 1 2 ∑ i = 1 m F i ( x ) 2 min f(x) = \frac 1 2 \sum ^m _{i=1} F_i(x)^2 minf(x)=21i=1mFi(x)2
其中, F i : R n → R ( i = 1 , 2 , ⋅ ⋅ ⋅ , m ) F_i:R^n \to R(i=1,2,···,m) Fi:RnR(i=1,2,,m)连续可微。称该问题为最小二乘问题。非线性最小二乘问题包含非线性方程组作为其特殊情形,即 m = n m=n m=n。且该问题的最优解处的目标函数值为0。当 F i ( i = 1 , 2 , ⋅ ⋅ ⋅ , m ) F_i(i=1,2,···,m) Fi(i=1,2,,m)都是线性函数时,该问题称为线性最小二乘问题。

1. 线性最小二乘问题

F i ( x )   ( i = 1 , 2 , ⋅ ⋅ ⋅ , m ) F_i(x)\ (i=1,2,···,m) Fi(x) (i=1,2,,m)为线性函数:
F i ( x ) = a i T x − b i ( i = 1 , 2 , ⋅ ⋅ ⋅ , m ) F_i(x) = a_i ^T x - b_i (i=1,2,···,m) Fi(x)=aiTxbi(i=1,2,,m)
其中, a i ∈ R n , b i ∈ R ( i = 1 , 2 , ⋅ ⋅ ⋅ , m ) a_i \in R^n, b_i \in R (i=1,2,···,m) aiRn,biR(i=1,2,,m)。考虑如下线性最小二乘问题:
m i n   f ( x ) = 1 2 ∑ i = 1 m ( a i T x − b i ) 2 min \ f(x) = \frac 1 2 \sum ^m _{i=1} (a_i^Tx-b_i)^2 min f(x)=21i=1m(aiTxbi)2
容易证明,这是一个凸二次规划问题。(参考:数值最优化—概述)。

由无约束问题解的最优性条件,该问题等价于下面的线性方程组:
∇ f ( x ) = ∑ i = 1 m ( a i T x − b i ) a i = 0 \nabla f(x) = \sum ^m _{i=1} (a_i^Tx-b_i)a_i = 0 f(x)=i=1m(aiTxbi)ai=0
若记 A = ( a 1 , a 2 , ⋅ ⋅ ⋅ , a m ) T , b = ( b 1 , b 2 , ⋅ ⋅ ⋅ , b m ) T A=(a_1,a_2,···,a_m)^T, b=(b_1,b_2,···,b_m)^T A=(a1,a2,,am)T,b=(b1,b2,,bm)T,则上面的线性方程组可写为:
A T A x − A T b = 0 A^TAx - A^Tb = 0 ATAxATb=0
此线性方程组称为该问题的正规方程组。由于正规方程组的系数矩阵的秩与其增广矩阵的秩相等,因此方程组有解。

2. 非线性最小二乘问题

当问题中的至少有一个 F i F_i Fi是非线性函数,问题称为非线性最小二乘问题。设 F F F二次连续可微。经直接计算可得:
∇ f ( x ) = ∑ i = 1 m F i ( x ) ∇ F i ( x ) = F ′ ( x ) T F ( x ) ∇ 2 f ( x ) = F ′ ( x ) T F ′ ( x ) + ∑ i = 1 m F i ( x ) ∇ 2 F i ( x ) \nabla f(x) = \sum ^m _{i=1} F_i(x) \nabla F_i(x) = F'(x)^T F(x) \\ \nabla^2 f(x) = F'(x)^TF'(x) + \sum ^ m _{i=1} F_i (x) \nabla ^2F_i(x) f(x)=i=1mFi(x)Fi(x)=F(x)TF(x)2f(x)=F(x)TF(x)+i=1mFi(x)2Fi(x)
其中,
F ′ ( x ) = ( ∇ F 1 ( x ) , ∇ F 2 ( x ) , ⋅ ⋅ ⋅ , ∇ F m ( x ) ) T F'(x) = (\nabla F_1(x), \nabla F_2(x), ···,\nabla F_m(x))^T F(x)=(F1(x),F2(x),,Fm(x))T
表示函数 F F F x x x处的Jacobi矩阵。

非线性最小二乘问题是一个无约束最优化问题,因此,我们可以利用求解无约束最优化问题的算法求解。注意到该问题的特殊性,我们可以针对该问题设计独特的算法。下面介绍求解非线性最小二乘问题的两种常用算法:Gauss-Newton法和Levenberg-Marquardt算法。

① Gauss-Newton法

求解非线性最小二乘问题的Gauss-Newton法中的 d ( k ) d^{(k)} d(k)是下面的线性方程组的解:
F ′ ( x ( k ) ) T F ′ ( x ( k ) ) d + F ′ ( x ( k ) ) T F ′ ( x ( k ) ) = 0 F'(x^{(k)})^T F'(x^{(k)})d + F'(x^{(k)})^T F'(x^{(k)}) = 0 F(x(k))TF(x(k))d+F(x(k))TF(x(k))=0
或等价地, d ( k ) d^{(k)} d(k)是线性最小二乘问题:
m i n   1 2 ∣ ∣ F ( x ( k ) ) + F ′ ( x ( k ) ) ∣ ∣ 2 min \ \frac 1 2 ||F(x^{(k)}) + F'(x^{(k)})||^2 min 21F(x(k))+F(x(k))2
的解。

由于 d ( k ) d^{(k)} d(k) f f f x x x处的一个下降方向,因此,可以用下降算法构造求解非线性最小二乘问题的算法如下:

  1. 给定初始点 x ( 0 ) ∈ R n x^{(0)} \in R^n x(0)Rn,常数 ρ ∈ ( 0 , 1 ) , σ 1 ∈ ( 0 , 1 / 2 ) \rho \in (0,1), \sigma _1 \in (0, 1/2) ρ(0,1),σ1(0,1/2),精度 ϵ > 0 \epsilon > 0 ϵ>0,令 k = 0 k=0 k=0
  2. ∣ ∣ ∇ f ( x ( k ) ) ∣ ∣ 2 ≤ ϵ ||\nabla f(x^{(k)})||^2 \le \epsilon f(x(k))2ϵ,则终止算法,得解 x ( x ) x^{(x)} x(x)。否则,转3。
  3. 解上面的线性方程组得方向 d ( k ) d^{(k)} d(k)
  4. 确定步长 α k \alpha _k αk为集合 { ρ i   ∣   i = 0 , 1 , 2 , ⋅ ⋅ ⋅ } \{ \rho ^i \ | \ i=0,1,2,··· \} {ρi  i=0,1,2,}中使得下面的不等式成立的最大者:
    f ( x ( k ) + α k d ( k ) ) ≤ f ( x ( k ) ) + σ 1 α k ∇ f ( x ( k ) ) T d ( k ) f(x^{(k)}+\alpha _k d^{(k)}) \le f(x^{(k)}) + \sigma _1 \alpha _k \nabla f(x^{(k)})^Td^{(k)} f(x(k)+αkd(k))f(x(k))+σ1αkf(x(k))Td(k)
  5. x ( k = 1 ) = x ( k ) + α k d ( k ) , k = k + 1 x^{(k=1)} = x^{(k)} + \alpha _k d^{(k)},k=k+1 x(k=1)=x(k)+αkd(k)k=k+1。转2。

② Levenberg-Marquardt算法

Levenberg-Marquardt算法是求解非线性最小二乘问题的另一种常用算法,该算法中 d ( k ) d^{(k)} d(k)是下面的线性方程组的解:
[ F ′ ( x ( k ) ) T F ′ ( x ( k ) ) + μ k I ] d + F ′ ( x ( k ) ) T F ( x ( k ) ) = 0 [F'(x^{(k)})^T F'(x^{(k)}) + \mu _k I]d + F'(x^{(k)})^TF(x^{(k)}) = 0 [F(x(k))TF(x(k))+μkI]d+F(x(k))TF(x(k))=0
其中, I ∈ R n × n I \in R^{n \times n} IRn×n表示单位矩阵, μ k > 0 \mu _k > 0 μk>0。若 μ k = 0 \mu _k =0 μk=0,则Levenberg-Marquardt算法还原为Gauss-Newton法。从这种意义上来看,Levenberg-Marquardt算法是一种修正的Gauss-Newton法。算法如下:

  1. 给定初始点 x ( 0 ) ∈ R n x^{(0)} \in R^n x(0)Rn,常数 ρ ∈ ( 0 , 1 ) , σ 1 ∈ ( 0 , 1 / 2 ) \rho \in (0,1), \sigma _1 \in (0, 1/2) ρ(0,1),σ1(0,1/2),精度 ϵ > 0 \epsilon > 0 ϵ>0,令 k = 0 k=0 k=0
  2. ∣ ∣ ∇ f ( x ( k ) ) ∣ ∣ ≤ ϵ ||\nabla f(x^{(k)})|| \le \epsilon f(x(k))ϵ,则终止算法,得解 x ( x ) x^{(x)} x(x)。否则,转3。
  3. 解上面的线性方程组得方向 d ( k ) d^{(k)} d(k)
  4. 确定步长 α k \alpha _k αk为集合 { ρ i   ∣   i = 0 , 1 , 2 , ⋅ ⋅ ⋅ } \{ \rho ^i \ | \ i=0,1,2,··· \} {ρi  i=0,1,2,}中使得下面的不等式成立的最大者:
    f ( x ( k ) + α k d ( k ) ) ≤ f ( x ( k ) ) + σ 1 α k ∇ f ( x ( k ) ) T d ( k ) f(x^{(k)}+\alpha _k d^{(k)}) \le f(x^{(k)}) + \sigma _1 \alpha _k \nabla f(x^{(k)})^Td^{(k)} f(x(k)+αkd(k))f(x(k))+σ1αkf(x(k))Td(k)
  5. x ( k = 1 ) = x ( k ) + α k d ( k ) , k = k + 1 x^{(k=1)} = x^{(k)} + \alpha _k d^{(k)},k=k+1 x(k=1)=x(k)+αkd(k)k=k+1。转2。

注:Levenberg-Marquardt算法与Gauss-Newton算法唯一的区别在于确定下降方向的子问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ta o

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值