非线性最小二乘法原理

一、一些基础概念[1]

1.最小二乘法定义
找到一个 x ∗ {x^*} x,使得下面的式子到达局部最小值,
F ( x ) = 1 2 ∑ i = 1 m ( f i ( x ) ) 2 (1-1) F(x) = \frac{1}{2}\sum\limits_{i = 1}^m {{{({f_i}(x))}^2}}\tag{1-1} F(x)=21i=1m(fi(x))2(1-1)这里的 f i ( x ) {{f_i}(x)} fi(x)表示变量为 x x x的函数,其中自变量 x x x维度为 n n n,函数个数 i = 1 , 2 , ⋯   , m i = 1,2, \cdots ,m i=1,2,,m,最小二乘问题要求 m ≥ n m \ge n mn,即方程的个数 ≥ \ge 未知数的个数。

一般而言, f i ( x ) = y i ( x ) − y i {f_i}(x) = y_i(x) - y_i fi(x)=yi(x)yi,即 f i ( x ) f_i(x) fi(x)由两个部分组成:含有自变量 x x x的函数 y ( x ) y(x) y(x)(估计值)+不含 x x x的常数 y y y(测量值)。而 f i ( x ) f_i(x) fi(x)叫做残差项,式(1-1)的核心思想就是使残差的平方和最小。

2.全局最小值
给定目标函数 F F F,找到一个 x x x使得下面的式子最小,
x + = arg ⁡ min ⁡ x F ( x ) (1-2) {x^ + } = \arg \mathop {\min }\limits_x F(x)\tag{1-2} x+=argxminF(x)(1-2)
3.局部最小值
给定目标函数 F F F,找到一个 x ∗ x^* x使得,
F ( x ∗ ) ≤ F ( x )          f o r          ∥ x − x ∗ ∥ < δ (1-3) F({x^*}) \le F(x)\;\;\;\;for\;\;\;\;\left\| {x - {x^*}} \right\| < \delta\tag{1-3} F(x)F(x)forxx<δ(1-3)这里的 δ \delta δ是一个非常小的无限趋近于零的值。

4.局部最小值的必要条件
x ∗ x^* x是一个局部最小值点,则有,
g ∗ = F ′ ( x ∗ ) = 0 (1-4) {g^*} = {F^{'}}(x^*) = 0\tag{1-4} g=F(x)=0(1-4)这里的 g = [ ∂ F ( x ) ∂ x 1 ⋯ ∂ F ( x ) ∂ x n ] T g = {\left[ {\begin{array}{l} {\frac{{\partial F(x)}}{{\partial {x_1}}}}& \cdots &{\frac{{\partial F(x)}}{{\partial {x_n}}}} \end{array}} \right]^T} g=[x1F(x)xnF(x)]T,表示 F ( x ) F(x) F(x)的梯度。

5.驻点
若有 x s {x_s} xs使得,
g s = F ′ ( x s ) = 0 (1-5) {g_s} = {F^{'}}({x_s}) = 0\tag{1-5} gs=F(xs)=0(1-5) x s {x_s} xs为函数 F ( x ) F(x) F(x)的驻点。
驻点的含义是在 x s {x_s} xs处, F ′ ( x s ) = 0 {F^{'}}({x_s}) = 0 F(xs)=0 F ( x ) F(x) F(x)的函数值在该点处既没有增大的趋势,也没有减小的趋势,那么驻点 x s {x_s} xs有会有以下三种情况:
在这里插入图片描述
6.局部最小值点的充要条件
x s {x_s} xs为驻点且 F ′ ′ ( x s ) {F^{''}}({x_s}) F(xs)正定,则 x s {x_s} xs为局部最小值点。
这里的 F ′ ′ ( x s ) = H = [ ∂ 2 F ( x ) ∂ x i ∂ x j ] {F^{''}}({x_s}) = H = \left[ {\frac{{{\partial ^2}F(x)}}{{\partial {x_i}\partial {x_j}}}} \right] F(xs)=H=[xixj2F(x)], H H H为Hessian矩阵,表示函数 F ( x ) F(x) F(x)的二阶导。

7.最小二乘问题的两种解的形式

<1>闭式解(closed-form solution)
能够直接给出优化问题解的解析形式,如下面要说的线性最小二乘。

<2>迭代解(iterative solution)
没有解析形式,只能从一个初始值 x 0 x_0 x0开始,一步步迭代求解得到 x 1 , x 2 , ⋯ {x_1},{x_2}, \cdots x1,x2,。对于最优化问题,需要一步步迭代,并最终收敛到局部最小值点 x ∗ x^* x,且迭代要满足以下条件:
F ( x k + 1 ) < F ( x k ) (1-6) F({x_{k + 1}}) < F({x_k})\tag{1-6} F(xk+1)<F(xk)(1-6)


二、下降方法

1. 下降方法是迭代解法的一种,其含义是:沿着一个下降的方向以一定的步长下降,一般这种下降方向就是朝着局部极小值点收敛的方向。所以下降法就要求解两个参数:

  • 找到一个下降方向 h d h_d hd;
  • 确定步长 α \alpha α使 F ( x ) F(x) F(x)合适的减小。

2.下降法的步骤如下:
初值设置: 迭代次数 k = 0 k=0 k=0,迭代初值 x = x 0 x=x_0 x=x0,下降方向的找到的标志位 f o u n d = f a l s e found=false found=false;
寻找步骤: 寻找下降方向 h d = s e a r c h _ d i r e c t i o n ( x ) {h_d} = search\_direction(x) hd=search_direction(x)和下降步长 α = s t e p _ l e n g t h ( x , h d ) \alpha = step\_length(x,{h_d}) α=step_length(x,hd)
更新步骤: 更新解 x = x + α h d x = x + \alpha {h_d} x=x+αhd和迭代次数 k = k + 1 k=k+1 k=k+1
结束循环标志: 迭代次数达到设定值( k < k m a x k<k_{max} k<kmax)+没找到下降方向( f o u n d = t r u e found=true found=true,此时的 x x x为驻点)。

3.寻找下降方向的原理
考虑目标函数 F ( x ) F(x) F(x) x x x处的泰勒展开,
F ( x + α h ) = F ( x ) + α h T F ′ ( x ) + O ( α 2 )                                    ≈ F ( x ) + α h T F ′ ( x ) (2-1) \begin{array}{l} F(x + \alpha h) = F(x) + \alpha {h^T}{F^{'}}(x) + O({\alpha ^2})\\\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; \approx F(x) + \alpha {h^T}{F^{'}}(x) \end{array}\tag{2-1} F(x+αh)=F(x)+αhTF(x)+O(α2)F(x)+αhTF(x)(2-1)这里式(2-1)里的 α \alpha α要足够小,式(2-1)才能成立。

从式(2-1)里可以总结出:如果 h T F ′ ( x ) < 0 h^TF^{'}(x)<0 hTF(x)<0,则 h h h一定是下降方向。这里很好证明,若 h T F ′ ( x ) < 0 h^TF^{'}(x)<0 hTF(x)<0,则式(2-1)里 F ( x + α h ) ≈ F ( x ) + 负 数 F(x + \alpha h) \approx F(x)+负数 F(x+αh)F(x)+,会有 F ( x + α h ) < F ( x ) F(x + \alpha h) < F(x) F(x+αh)<F(x),符合式(1-6)里的定义。

根据这一原理,有两种下降方向:最速下降方向( h s d h_{sd} hsd,Steepest Descent)和牛顿方向( h n h_n hn)。

4.最速下降方向——最速下降法
含义:在点 x x x处下降速度最快的方向。可以证明,最速下降方向为函数 F ( x ) F(x) F(x) x x x处的负梯度。
证明如下:
取式(2-1)中的最后一项,
h T F ′ ( x ) = ∥ h ∥ ∥ F ′ ( x ) ∥ cos ⁡ θ = ∥ F ′ ( x ) ∥ cos ⁡ θ (2-2) {h^T}{F^{'}}(x) = \left\| h \right\|\left\| {{F^{'}}(x)} \right\|\cos \theta = \left\| {{F^{'}}(x)} \right\|\cos \theta\tag{2-2} hTF(x)=hF(x)cosθ=F(x)cosθ(2-2)其中 θ \theta θ表示的是向量 h h h和向量 F ′ ( x ) F^{'}(x) F(x)的夹角。
那么,当式(2-2)中的 θ = π \theta=\pi θ=π时,式(2-2)达到最小值。当 α \alpha α取定时, ∥ F ( x + α h ) − F ( x ) ∥ \left\| {F(x + \alpha h) - F(x)} \right\| F(x+αh)F(x)最大,即此时下降最快,且方向为负梯度方向,

h s d = − F ′ ( x ) ∥ F ′ ( x ) ∥ (2-3) {h_{sd}} = - \frac{{{F^{'}}(x)}}{{\left\| {{F^{'}}(x)} \right\|}}\tag{2-3} hsd=F(x)F(x)(2-3)

5.牛顿下降方向——牛顿法
牛顿方向考虑 F ′ ( x ) F^{'}(x) F(x) x x x处的泰勒展式,
F ′ ( x + h ) = F ′ ( x ) + F ′ ′ ( x ) h + O ( ∥ h ∥ )                                ≈ F ′ ( x ) + F ′ ′ ( x ) h (2-4) \begin{array}{l} {F^{'}}(x + h) = {F^{'}}(x) + {F^{''}}(x)h + O(\left\| h \right\|)\\\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;{\kern 1pt} {\kern 1pt} \approx {F^{'}}(x) + {F^{''}}(x)h \end{array}\tag{2-4} F(x+h)=F(x)+F(x)h+O(h)F(x)+F(x)h(2-4)
因为局部最小值也是驻点的一种,所以在 x ∗ x^* x附近,有 F ′ ( x ∗ ) = 0 F^{'}(x^*)=0 F(x)=0。因此,令式(2-4)等于零,就可以得到牛顿下降方向,
h n = − ( F ′ ′ ( x ) ) − 1 F ′ ( x ) (2-5) {h_n} = - {({F^{''}}(x))^{ - 1}}{F^{'}}(x)\tag{2-5} hn=(F(x))1F(x)(2-5)可以证明,式(2-5)所示的方向是一个下降方向。因为二阶导矩阵 H = F ′ ′ ( x ) H=F^{''}(x) H=F(x)为正定矩阵,所以有 u T H u > 0 {u^T}Hu > 0 uTHu>0,同理,对于一个非零向量 h T h^T hT,有,
0 < h n T H h n = − h n T F ′ ( x ) (2-6) 0 < h_n^TH{h_n} = - h_n^T{F^{'}}(x)\tag{2-6} 0<hnTHhn=hnTF(x)(2-6)符合2.3中下降方向的判定条件。

6.最速下降法vs牛顿法

最速下降法使用的是最速下降方向,始终朝着下降速度最快的方向的下降,所以在距离最小值点 x ∗ x^* x较远的地方,表现较好。并且可以证明,最速下降法的收敛速度为线性收敛,比较慢。
牛顿法使用了牛顿方向,从2.5的推算过程可以看出,它是在局部最小值附近,通过 F ′ ( x ∗ ) = 0 F^{'}(x^*)=0 F(x)=0推出来的,所以其在局部最小值附近表现较好。并且也可以证明,它的收敛速度为平方收敛,速度快。但是用牛顿法求解最小值时,要求矩阵 H H H正定,若 H H H为非正定矩阵,则无法使用牛顿法。

所以,有人综合最速下降法和牛顿法,提出了hybrid方法。该方法描述如下:如果 H H H正定,则取牛顿方向 h = h n h=h_n h=hn;如果 H H H非正定,则取最速下降方向 h = h s d h=h_{sd} h=hsd。但在复杂的问题里,hybrid方法也很难被应用,因为在很多问题中,矩阵 H H H一般计算不出来,所以这就要用到Gaussian-Newton法或者Levenberg-Marquardt法。

7.确定步长的方法1——Line Search[2]
当已知当前迭代变量 x x x和下降方向 h h h时,此时,需要做的是确定一个步长 α \alpha α,使目标函数得到一个合适的下降。Line Search的做法就是把 x x x h h h当做常数,把 α \alpha α当做待求解的变量,因此,有,
φ ( α ) = F ( x + α h ) (2-7) \varphi (\alpha ) = F(x + \alpha h)\tag{2-7} φ(α)=F(x+αh)(2-7)对式(2-7)求导,有,

φ ′ ( α ) = F ( x ) + α h T F ′ ( x ) (2-8) {\varphi ^{'}}(\alpha ) = F(x) + \alpha {h^T}{F^{'}}(x)\tag{2-8} φ(α)=F(x)+αhTF(x)(2-8)令式(2-8)中的 α = 0 \alpha=0 α=0,因为 h h h为一个下降方向,所以有 φ ′ ( 0 ) = h T F ′ ( x ) < 0 {\varphi ^{'}}(0) = {h^T}{F^{'}}(x) < 0 φ(0)=hTF(x)<0。所以 φ ( α ) \varphi (\alpha ) φ(α)的函数曲线大致如下,

在这里插入图片描述
对于上图,对 α \alpha α的选择会产生三种情况:

  • cond1: α \alpha α很小使得目标函数 F ( x ) F(x) F(x)下降的幅度特别小,此时应该增大 α \alpha α
  • cond2: α \alpha α很大,这样会造成 φ ( α ) ≥ φ ( 0 ) \varphi (\alpha ) \ge \varphi (0) φ(α)φ(0),这不符合下降法的定义,即没有朝着下降的方向前进;
  • cond3: α \alpha α非常接近函数的 φ ( α ) \varphi (\alpha ) φ(α)的局部最小值点,此时合适可取。

精确的Line Search 方法如下,
α e = arg ⁡ min ⁡ α > 0 F ( x + α h ) (2-9) {\alpha _e} = \arg \mathop {\min }\limits_{\alpha > 0} F(x + \alpha h)\tag{2-9} αe=argα>0minF(x+αh)(2-9)具体细节参考文献[2]里的Section2.5-2.6。
由于精确的Line Search方法非常耗时,而且当搜索方向 h h h与方向 x − x ∗ x-x* xx相差很大时,就没有必要计算(2-9)里函数 φ ( α ) \varphi (\alpha ) φ(α)真正的最小值。所以,对于Line Search就没有必要很精确,从而提出了soft line search。这种方法就是接受不满足cond1和cond2的 α \alpha α值,具体细节参考文献[2]Section2.5。

8.确定步长的方法2——信赖域法(Trust Region)和阻尼法(Damped)
2.7中的Line Research方法要分两步走:先确定下降方向 h h h后,再计算 α \alpha α的大小。而这里的信赖域法和阻尼法则不用分步,它可以同时得到下降方向和步长。

它们的原理是在 x x x的邻域内,用一个模型函数 L L L来近似目标函数 F F F
F ( x + h ) ≈ L ( h ) = F ( x ) + h T c + 1 2 h T B h T (2-10) F(x + h) \approx L(h) = F(x) + {h^T}c + \frac{1}{2}{h^T}B{h^T}\tag{2-10} F(x+h)L(h)=F(x)+hTc+21hTBhT(2-10)这里要注意式(2-10)的 L ( h ) L(h) L(h)里的三项不是 F ( x + h ) F(x+h) F(x+h)泰勒展式的前三项,因为,
F ( x + h ) ≈ F ( x ) + h T g + 1 2 h T H h T (2-11) F(x + h) \approx F(x) + {h^T}g + \frac{1}{2}{h^T}H{h^T}\tag{2-11} F(x+h)F(x)+hTg+21hTHhT(2-11)这里的 c ≠ g , B ≠ H c \ne g,B \ne H c=g,B=H。所以 L ( h ) L(h) L(h) F ( x ) F(x) F(x)在模型意义上的近似,它只是近似等于 F ( x ) F(x) F(x)取泰勒展式前三项的结果。当然,这种近似只有在 h h h很小时才成立。

那么,信赖域法的策略是:假设在当前变量 x x x的一定范围内,即以 x x x为中心,以 Δ \Delta Δ为半径的范围内,模型 L ( h ) L(h) L(h) F F F的近似足够精确,那么此时的下降方向为,

h = h t r = arg ⁡ min ⁡ ∥ h ∥ ≤ Δ L ( h ) (2-12) h = {h_{tr}} = \arg \mathop {\min }\limits_{\left\| h \right\| \le \Delta } L(h)\tag{2-12} h=htr=arghΔminL(h)(2-12)而阻尼法的策略是:给 L ( h ) L(h) L(h)一个惩罚项 1 2 μ h T h \frac{1}{2}\mu {h^T}h 21μhTh(也叫正则项,机器学习里的 l 2 l_2 l2正则器就是这个),以防止 h h h过大造成的近似不精确,
h = h d m = arg ⁡ min ⁡ h { L ( h ) + 1 2 μ h T h } (2-13) h = {h_{dm}} = \arg \mathop {\min }\limits_h \{ L(h) + \frac{1}{2}\mu {h^T}h\}\tag{2-13} h=hdm=arghmin{L(h)+21μhTh}(2-13)此时的步长选取策略为:若 h h h是一个下降方向,直接取 α = 1 \alpha=1 α=1;若不是,取 α = 0 \alpha=0 α=0,本次迭代无效。

式(2-12)和式(2-13)中的 h h h只能保证模型函数 L ( h ) L(h) L(h)是下降的,由于 L ( h ) L(h) L(h)只是 F ( x ) F(x) F(x)的近似,所以,它的下降并不能保证函数 F F F是不是真的在下降,所以,这里就提出了gain ratio的概念,这个参数是用来衡量模型下降品质的参数,定义如下:
ρ = F ( x ) − F ( x + h ) L ( 0 ) − L ( h ) (2-14) \rho = \frac{{F(x) - F(x + h)}}{{L(0) - L(h)}}\tag{2-14} ρ=L(0)L(h)F(x)F(x+h)(2-14)显然,该式的分母始终为正,因为 h h h会使 L ( h ) L(h) L(h)下降。所以,当 ρ \rho ρ为正时,表示分子也为正,此时 F ( x ) > F ( x + h ) F(x)>F(x+h) F(x)>F(x+h),符合式(1-6),表示目标函数 F F F也在下降,本次迭代有效;但当 ρ \rho ρ为负时,则表示目标函数 F F F在增大,不符合要求。

根据 ρ \rho ρ值的大小,可以确定信赖域法的 Δ \Delta Δ和阻尼法的 μ \mu μ

  • 在信赖域法中,根据 ρ \rho ρ值的不同,可以适当的调整 Δ \Delta Δ的大小,使 F F F获得一个合适的下降。通常,下面的这个策略被广泛使用,
    i f      ρ < 0.25            Δ = Δ / 2 e l s e      i f    ρ > 0.75            Δ = max ⁡ { Δ , 3 ∗ ∥ h ∥ }          (2-15) \begin{array}{l} if\;\;\rho < 0.25\\ \;\;\;\;\;\Delta = \Delta /2\\ else\;\;if\;\rho > 0.75\\ \;\;\;\;\;\Delta = \max \{ \Delta ,3*\left\| h \right\|\} \\ \;\;\;\; \end{array}\tag{2-15} ifρ<0.25Δ=Δ/2elseifρ>0.75Δ=max{Δ,3h}(2-15)式(2-15)的含义是:当 ρ < 0.25 \rho<0.25 ρ<0.25时,说明 F F F的下降或上升大小比 L L L下降的四分之一还要小,表明该情况下的 L ( h ) L(h) L(h) F F F而言不是一个很好的近似,应该减小 Δ \Delta Δ;当 ρ > 0.75 \rho>0.75 ρ>0.75时,说明 L L L下降的幅度比较小,此时应该增大 Δ \Delta Δ
    对于式(2-15)里的阈值设定(0.25&0.75)以及除数因子(2)和乘法因子(3)的设定,信赖域法允许有较小的变动,但是选取这些参数的前提是:选取的参数最好不要使 Δ \Delta Δ有震荡。

  • 阻尼法中的 μ \mu μ的选取原则与信赖域法中的 Δ \Delta Δ选取同理。当 ρ \rho ρ值很小时,说明 L L L不能很好的近似 F F F,所以要增大惩罚项,即增大 μ \mu μ的值;反之,当 ρ \rho ρ值很大时,说明 F F F下降幅度小,要减小惩罚项,即减小 μ \mu μ的值。基于此,马夸尔特提出了一种类似于式(2-15)的策略:
    i f      ρ < 0.25            μ = μ ∗ 2 e l s e      i f    ρ > 0.75            μ = μ / 3          (2-16) \begin{array}{l} if\;\;\rho < 0.25\\ \;\;\;\;\;\mu = \mu *2\\ else\;\;if\;\rho > 0.75\\ \;\;\;\;\;\mu = \mu /3\\ \;\;\;\; \end{array}\tag{2-16} ifρ<0.25μ=μ2elseifρ>0.75μ=μ/3(2-16)对于式(2-16)里的阈值设定(0.25&0.75)以及除数因子(3)和乘法因子(2)的设定,阻尼法允许有较小的变动,但是选取这些参数的前提是:选取的参数最好不要使 Δ \Delta Δ有震荡。
    除了式(2-16),Nielsen提出了另外一种经验公式:
    i f      ρ > 0            μ = μ ∗ max ⁡ { 1 3 , 1 − ( 2 ρ − 1 ) 3 } ;      v = 2 e l s e                 μ = μ ∗ v ;      v = 2 ∗ v          (2-17) \begin{array}{l} if\;\;\rho > 0\\ \;\;\;\;\;\mu = \mu *\max \{ \frac{1}{3},1 - {(2\rho - 1)^3}\} ;\;\;v = 2\\ else\;\;\\ \;\;\;\;\;\mu = \mu *v;\;\;v = 2*v\\ \;\;\;\; \end{array}\tag{2-17} ifρ>0μ=μmax{31,1(2ρ1)3};v=2elseμ=μv;v=2v(2-17)

9.阻尼法的进一步探讨——阻尼牛顿法
对于式(2-13),要想求其最小值,首先考虑 h h h必须是 φ ( h ) = L ( h ) + 1 2 μ h T h \varphi (h) = L(h) + \frac{1}{2}\mu {h^T}h φ(h)=L(h)+21μhTh的驻点,所以有,
φ ′ ( h ) = L ′ ( h ) + μ h = 0 (2-18) {\varphi ^{'}}(h) = {L^{'}}(h) + \mu h = 0\tag{2-18} φ(h)=L(h)+μh=0(2-18)再根据式(2-10)中 L ( h ) L(h) L(h)的定义,有,
( B + μ I ) h d m = − c (2-19) (B + \mu I){h_{dm}} = - c\tag{2-19} (B+μI)hdm=c(2-19)这里的 I I I是单位阵,那么当 μ \mu μ足够大时, B + μ I B+\mu I B+μI肯定为正定矩阵,根据概念1.6, h d m h_{dm} hdm必为 L L L的一个局部最小值点。

那么,再特殊化一点,取 c = F ′ ( x ) , B = F ′ ′ ( x ) c=F^{'}(x),B=F^{''}(x) c=F(x),B=F(x),则式(2-19)可改写如下,
( F ′ ′ ( x ) + μ I ) h d n = − F ′ ( x ) (2-20) ({F^{''}}(x) + \mu I){h_{dn}} = - {F^{'}}(x)\tag{2-20} (F(x)+μI)hdn=F(x)(2-20)由于该式与牛顿法只差一个含有 μ \mu μ的阻尼项,所以,该式表示的方法叫做阻尼牛顿法(damped Newton)。该式可以从两个方面来看:

  • μ \mu μ很小时, ( F ′ ′ ( x ) + μ I ) ≈ F ′ ′ ( x ) ({F^{''}}(x) + \mu I) \approx {F^{''}}(x) (F(x)+μI)F(x),则 h d n = − ( F ′ ′ ( x ) ) − 1 F ′ ( x ) {h_{dn}} = - {({F^{''}}(x))^{ - 1}}{F^{'}}(x) hdn=(F(x))1F(x),此时退化为牛顿法;
  • μ \mu μ很大时, ( F ′ ′ ( x ) + μ I ) ≈ μ ({F^{''}}(x) + \mu I) \approx \mu (F(x)+μI)μ,则 h d n = − 1 μ F ′ ( x ) {h_{dn}} = - \frac{1}{\mu }{F^{'}}(x) hdn=μ1F(x),此时退化为了最速下降法。

10.信赖域法与阻尼法的一致性探讨
式(2-12)表示的信赖域法实际上等价于一个带约束的优化问题。
min ⁡ h      L ( h )        s . t .      h T h ≤ Δ 2 (2-21) \mathop {\min }\limits_h \;\;L(h)\;\;\;s.t.\;\;{h^T}h \le {\Delta ^2}\tag{2-21} hminL(h)s.t.hThΔ2(2-21)对于学过机器学习里正则化理论的童鞋来说,这个式子是不是很眼熟。如果把目标函数 F ( x ) F(x) F(x)当前一个未知的机器学习里所要估计的真实函数(实际上是求不出来的),那么机器学习的目的就是用已有的数据取求出一个模型函数 L ( h ) L(h) L(h)来尽可能的贴近 F ( x ) F(x) F(x),为了防止过拟合(过拟合的含义是:模型函数的表现很差,不能很好的近似 F ( x ) F(x) F(x)),通常可以采用 l 2 l_2 l2正则器来建立约束,尽可能的防止过拟合。而式(2-21)就是一个对 L ( h ) L(h) L(h)进行正则化的过程。它的目的是为了让 L ( h ) L(h) L(h)可以最大程度的近似 F ( x ) F(x) F(x),那么这样的情况下,对 F ( x ) F(x) F(x)求最小值,就可以转换为对 L ( h ) L(h) L(h)求最小值。而这里的 Δ \Delta Δ影响的就是模型函数近似的品质好坏,而品质的好坏就是根据 ρ \rho ρ判断出来的,所以 Δ \Delta Δ的值是根据 ρ \rho ρ的值不断变化的,即(2-15)里的策略。

式(2-21)其实是一个带约束的最优化问题,该类问题可以通过拉格朗日乘子法变成无约束的优化问题:
min ⁡ h    L ( h ) + λ ( h T h − Δ 2 ) (2-22) \mathop {\min }\limits_h \;L(h) + \lambda ({h^T}h - {\Delta ^2})\tag{2-22} hminL(h)+λ(hThΔ2)(2-22)显然,对式(2-22)求导然后等于零,可以求出其最小值。那么,式(2-22)对 h h h求导有,

L ′ ( h ) + 2 λ h (2-23) {L^{'}}(h) + 2\lambda h\tag{2-23} L(h)+2λh(2-23)再将上式反推回去,有,
L ( h ) + λ h T h (2-24) {L}(h) + \lambda {h^T}h\tag{2-24} L(h)+λhTh(2-24)式(2-22)和式(2-24)的导数式都是式(2-23),所以可以得到式(2-22)中的最小值点其实与 Δ \Delta Δ无关,只与拉格朗日乘子 λ \lambda λ有关,若令 λ = 1 2 μ \lambda = \frac{1}{2}\mu λ=21μ,则式(2-22)就变成了式(2-13)所示的阻尼法的求解形式。所以,信赖域法和阻尼法其实是一致的,它其实是一个最优化问题的两种表现形式。


三、线性最小二乘及其解法

1. 若概念1.1中的函数 f i ( x ) {f_i}(x) fi(x)为关于 x x x的线性函数,即 f i ( x ) = a i x − b i {f_i}(x) = {a_i}x - {b_i} fi(x)=aixbi,其中估计值 y i ( x ) = a i x {y_i}(x) = {a_i}x yi(x)=aix(线性函数),则概念1所示的问题为线性最小二乘问题。
对于线性最小二乘问题,可以直接闭式求解(closed-form),过程如下:
根据式(1-1),写成矩阵形式,有,
F ( x ) = ( A x − b ) T ( A x − b )                = x T A T A x − 2 x T A T b + b T b (3-1) \begin{array}{l} F(x) = {(Ax - b)^T}(Ax - b)\\\\ \;\;\;\;\;\;\;{\kern 1pt} {\kern 1pt} {\kern 1pt} = {x^T}{A^T}Ax - 2{x^T}{A^T}b + {b^T}b \end{array}\tag{3-1} F(x)=(Axb)T(Axb)=xTATAx2xTATb+bTb(3-1)这里的 A = [ a 1 ⋯ a m ] T A = {\left[ {\begin{array}{l} {{a_1}}& \cdots &{{a_m}} \end{array}} \right]^T} A=[a1am]T b = [ − b 1 ⋯ − b m ] T b = {\left[ {\begin{array}{l} {{-b_1}}& \cdots &{{-b_m}} \end{array}} \right]^T} b=[b1bm]T
对式(3-1)求导,有,
∂ F ( x ) ∂ x = 2 A T A x − 2 A T b = 0 (3-2) \frac{{\partial F(x)}}{{\partial x}} = 2{A^T}Ax - 2{A^T}b = 0\tag{3-2} xF(x)=2ATAx2ATb=0(3-2)则线性最小二乘的闭式解形式如下,
x = ( A T A ) − 1 A T b (3-3) x = {({A^T}A)^{ -1}}{A^T}b\tag{3-3} x=(ATA)1ATb(3-3)对于线性最小二乘的解法,还可以用QR分解来做。Matlab里的 A \ b A\backslash b A\b,就是用QR分解的方式来解的,它的求解精度要比式(1-8)高。

2. 举个用线性最小二乘拟合直线例子,若有以下六个点,坐标为: ( 0 , 0 ) , ( 2 , 0 ) , ( 1 , − 1 ) , ( 0 , 2 ) , ( − 1 , 1 ) , ( 1 , 1 ) (0,0),(2,0),(1, - 1),(0,2),( - 1,1),(1,1) (0,0),(2,0),(1,1),(0,2),(1,1),(1,1)。对以上的点进行直线拟合,直线方程取 y = k 1 x + k 2 y = k_1x + k_2 y=k1x+k2

在这个问题里,自变量为 [ k 1 k 2 ] T {\left[ {\begin{array}{l} {{k_1}}&{{k_2}} \end{array}} \right]^T} [k1k2]T。按概念1,估计值 y ( x ) = k 1 x + k 2 y(x) = {k_1}x + {k_2} y(x)=k1x+k2,测量值 y = y y=y y=y,且 A A A b b b分别为:

A = [ 0 , 2 , 1 , 0 , − 1 , 1 1 , 1 , 1 , 1 , 1 , 1 ] T A = {\left[ {\begin{array}{l} {{\rm{0,2,1,0, - 1,1}}}\\ {1,1,1,1,1,1} \end{array}} \right]^T} A=[0,2,1,0,1,11,1,1,1,1,1]T b = [ 0 , 0 , − 1 , 2 , 1 , 1 ] T b = {\left[ {{\rm{0,0, - 1,2,1,1}}} \right]^T} b=[0,0,1,2,1,1]Tmatlab里的结果为 k 1 k 2 = [ − 0 . 4545 , 0 . 7273 ] T {k_1}{k_2} = {[{\rm{ - 0}}{\rm{.4545}},{\rm{0}}{\rm{.7273}}]^T} k1k2=[0.4545,0.7273]T
程序如下:

x=[0 2 1 0 -1 1]';
y=[0 0 -1 2 1 1]'
A=[x ones(6,1)];
b=y;
k1k2=A\b;

在这里插入图片描述


四、非线性最小二乘及其解法

1. 若概念1.1中的函数 f i ( x ) {f_i}(x) fi(x)为关于 x x x的非线性函数,即 f i ( x ) = y i ( x ) − y i {f_i}(x) = y_i(x) - y_i fi(x)=yi(x)yi,其中估计值 y i ( x ) {y_i}(x) yi(x)为非线性函数(例如, y i ( x ) = c o s ( x ) y_i(x)=cos(x) yi(x)=cos(x)),测量值 y y y为常数矩阵。则概念1.1所示的问题为非线性最小二乘问题。式(1-1)写成矩阵形式为,
F ( x ) = 1 2 ∑ i = 1 m ( f i ( x ) ) 2 = 1 2 f ( x ) T f ( x ) (4-1) F(x) = \frac{1}{2}\sum\limits_{i = 1}^m {{{({f_i}(x))}^2}} = \frac{1}{2}f{(x)^T}f(x)\tag{4-1} F(x)=21i=1m(fi(x))2=21f(x)Tf(x)(4-1)此时,对 f ( x ) f(x) f(x)进行泰勒展开有,
f ( x + h ) = f ( x ) + J ( x ) h + O ( ∥ h ∥ 2 ) (4-2) f(x + h) = f(x) + J(x)h + O({\left\| h \right\|^2})\tag{4-2} f(x+h)=f(x)+J(x)h+O(h2)(4-2)上式中的 J ( x ) J(x) J(x)为雅克比矩阵,且 J ∈ R m × n J \in {R^{m \times n}} JRm×n。它的第 i i i行和第 j j j列表示如下,
J ( x ) i j = ∂ f i ( x ) ∂ x j (4-3) J{(x)_{ij}} = \frac{{\partial {f_i}(x)}}{{\partial {x_j}}}\tag{4-3} J(x)ij=xjfi(x)(4-3)这表示第 i i i个函数 f i ( x ) f_i(x) fi(x)对第 j j j维变量 x j x_j xj求导。
注意到式(4-1),若目标函数 F ( x ) F(x) F(x) x j x_j xj求导,则有,
∂ F ( x ) ∂ x j = ∑ i = 1 m f i ( x ) ∂ f i ( x ) ∂ x j (4-4) \frac{{\partial F(x)}}{{\partial {x_j}}} = \sum\limits_{i = 1}^m {{f_i}(x)} \frac{{\partial {f_i}(x)}}{{\partial {x_j}}}\tag{4-4} xjF(x)=i=1mfi(x)xjfi(x)(4-4)那么, F ( x ) F(x) F(x)的梯度可表示如下,
g = F ′ ( x ) = J ( x ) T f ( x ) (4-5) g={F^{'}}(x) = J{(x)^T}f(x)\tag{4-5} g=F(x)=J(x)Tf(x)(4-5)同理,考虑 F ( x ) F(x) F(x)的二阶Hessian矩阵,有,
∂ 2 F ( x ) ∂ x j ∂ x k = ∑ i = 1 m ( ∂ f i ( x ) ∂ x j ∂ f i ( x ) ∂ x k + f i ( x ) ∂ 2 f i ( x ) ∂ x j ∂ x k ) (4-6) \frac{{{\partial ^2}F(x)}}{{\partial {x_j}\partial {x_k}}} = \sum\limits_{i = 1}^m {(\frac{{\partial {f_i}(x)}}{{\partial {x_j}}}\frac{{\partial {f_i}(x)}}{{\partial {x_k}}} + {f_i}(x)\frac{{{\partial ^2}{f_i}(x)}}{{\partial {x_j}\partial {x_k}}})} \tag{4-6} xjxk2F(x)=i=1m(xjfi(x)xkfi(x)+fi(x)xjxk2fi(x))(4-6)用雅克比矩阵表示上式为,
H = F ′ ′ ( x ) = J ( x ) T J ( x ) + ∑ i = 1 m f i ( x ) f i ′ ′ ( x ) (4-7) H={F^{''}}(x) = J{(x)^T}J(x) + \sum\limits_{i = 1}^m {{f_i}(x)f_i^{''}(x)} \tag{4-7} H=F(x)=J(x)TJ(x)+i=1mfi(x)fi(x)(4-7)

非线性最小二乘一般是没有解析解的,所以只能迭代求解。而一般的优化方法也能用于非线性最小二乘的求解,但是效率比较慢。而高效的方法有高斯-牛顿法(Gaussian-Newton Method,G-N Method),列文伯格-马夸尔特(Levenberg-Marquardt Method,L-M Method),Dog Leg方法等等。

2.高斯牛顿法(G-N Method)
前面说到牛顿法的原理是将原目标函数 F ( x ) F(x) F(x) x x x处进行一阶泰勒展开后得出来的;而高斯牛顿法则是对 f f f进行一阶泰勒展开,
f ( x + h ) ≈ l ( h ) = f ( x ) + J h (4-8) f(x + h) \approx l(h) = f(x) + Jh\tag{4-8} f(x+h)l(h)=f(x)+Jh(4-8)根据式(4-1),则有下式,
F ( x + h ) ≈ L ( h ) = 1 2 l ( h ) T l ( h )                                                          = 1 2 f T f + h T J T f + 1 2 h T J T J h                                                          = F ( x ) + h T J T f + 1 2 h T J T J h (4-9) \begin{array}{l} F(x + h) \approx L(h) = \frac{1}{2}l{(h)^T}l(h)\\\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;{\rm{ = }}\frac{1}{2}{f^T}f + {h^T}{J^T}f + \frac{1}{2}{h^T}{J^T}Jh\\\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;{\rm{ = }}F(x) + {h^T}{J^T}f + \frac{1}{2}{h^T}{J^T}Jh \end{array}\tag{4-9} F(x+h)L(h)=21l(h)Tl(h)=21fTf+hTJTf+21hTJTJh=F(x)+hTJTf+21hTJTJh(4-9)所以, L ( h ) L(h) L(h)是对原函数 F ( x ) F(x) F(x)的近似。到这一步就可以看出来了,这里的 L ( h ) L(h) L(h)实际上就是2.8里所描述的信赖域法的模型函数。其实,就是对2.8节里的信赖域法取: c = J f , B = J T J c=J^f,B=J^TJ c=JfB=JTJ的结果。

L ( h ) L(h) L(h)进行求导,有,
L ′ ( h ) = J T f + J T J h      ,      L ′ ′ ( h ) = J T J (4-10) {L^{'}}(h) = {J^T}f + {J^T}Jh\;\;,\;\;{L^{''}}(h) = {J^T}J\tag{4-10} L(h)=JTf+JTJh,L(h)=JTJ(4-10)根据牛顿法的推导,令 L ′ ( h ) = 0 L^{'}(h)=0 L(h)=0,有,
J T J h g n = − J T f (4-11) {J^T}J{h_{gn}} = - {J^T}f\tag{4-11} JTJhgn=JTf(4-11)式(4-11)中的 h g n h_{gn} hgn必为一个下降方向。因为若(4-11)有解,则 J T J J^TJ JTJ必正定,所以有,
h g n T F ′ ( x ) = h g n T J T f = − h g n T J T J h g n < 0 (4-12) {h_{gn}}^T{F^{'}}(x) = {h_{gn}}^T{J^T}f = - {h_{gn}}^T{J^T}J{h_{gn}} < 0\tag{4-12} hgnTF(x)=hgnTJTf=hgnTJTJhgn<0(4-12)符合下降方向的判定条件。

高斯牛顿法与牛顿法相似,在接近局部最小值点 x ∗ x^* x时收敛性较好。但是,若 J T J J^TJ JTJ非正定,即 J T J J^TJ JTJ为奇异矩阵,则式(4-11)无解,此时高斯牛顿法就失效了。

高斯牛顿法的实质: 在上一节讲线性最小二乘法的解法过程中,由于残差函数 f i ( x ) f_i(x) fi(x)为线性函数,所以它有解析解,解的形式如下:
A T A x = − A T b ( 这 里 为 了 方 便 解 释 , 定 义 f i ( x ) = a i x + b i , 所 以 这 里 右 边 一 项 多 了 个 负 号 ) (4-13) A^TAx=-A^Tb(这里为了方便解释,定义f_i(x)=a_ix+b_i,所以这里右边一项多了个负号)\tag{4-13} ATAx=ATb(便fi(x)=aix+bi)(4-13)比较式(4-13)和式(4-11),
线 性 最 小 二 乘 : A T A x = − A T b 高 斯 牛 顿 法 :          J T J h g n = − J T f \begin{array}{l} 线性最小二乘:{A^T}Ax = - {A^T}b\\\\ 高斯牛顿法:\;\;\;\;{J^T}J{h_{gn}} = - {J^T}f \end{array} 线ATAx=ATbJTJhgn=JTf不难看出,其实两种解的形式是一致的,即把 A A A看成 J J J,把 b b b看成 f f f。造成这一现象的原因是:高斯牛顿法对 f f f里的每一个函数进行了一阶泰勒近似,将原本的非线性函数 f i ( x ) f_i(x) fi(x)变成了线性函数。当其线性化完成后,原本的非线性最小二乘问题也就成为了线性最小二乘,所以它们解的形式是一致的。

非线性函数通过一阶泰勒展开舍弃高阶项可以将其变成线性函数,即非线性函数在 x x x处的一阶泰勒近似使其线性化。因为线性化函数是非常容易操作的,而非线性函数就非常复杂。所以,高斯牛顿法的实质就是讲非线性函数通过泰勒展开近似乘线性函数,然后进行求解。

其实这一思想,很多理论都有用到。举个滤波理论的例子:对于线性系统,我们可以用卡尔曼滤波(KF)进行状态估计;若系统为非线性系统,则就要通过泰勒展开使其线性化后再用KF求解,这就是扩展卡尔曼(EKF)的思想。

3.列文伯格-马夸尔特方法(L-M Method)
L-M方法解的形式如下,
( J T J + μ I ) h l m = − J T f (4-13) ({J^T}J + \mu I){h_{lm}} = - {J^T}f\tag{4-13} (JTJ+μI)hlm=JTf(4-13)可以看出L-M方法就是在G-N方法的基础上加了一项阻尼项,所以它刚被提出来的时候,又叫做阻尼高斯牛顿法(damped Gauss-Newton Method)。
看式(4-13),若 μ \mu μ的取值足够大,则 ( J T J + μ I ) ({J^T}J + \mu I) (JTJ+μI) 必为正定矩阵,式(4-13)一定有解。从这个方面来看,L-M方法其实就是在G-N方法的基础上加了一个阻尼项,使得G-N方法一定有解。
但是从另外一个方面看,L-M方法也是2.8节的阻尼法中,对模型函数 L ( h ) L(h) L(h) 1 2 l ( h ) T l ( h ) \frac{1}{2}l{(h)^T}l(h) 21l(h)Tl(h)的结果。那么,与阻尼法的分析类似,L-M方法里得到的下降方向 h l m h_{lm} hlm其实也是最速下降方向和高斯牛顿方向的一个折中或者选择:

  • μ \mu μ很大时, J T J + μ I ≈ μ {J^T}J + \mu I \approx \mu JTJ+μIμ,所以有 h l m ≈ − J T f μ = − F ′ ( x ) μ {h_{lm}} \approx - \frac{{{J^T}f}}{\mu } = - \frac{{{F^{'}}(x)}}{\mu } hlmμJTf=μF(x),此时 h l m h_{lm} hlm近似为最速下降方向;
  • μ \mu μ很小时, J T J + μ I ≈ J T J {J^T}J + \mu I \approx J^TJ JTJ+μIJTJ,所以有 J T J h l m = − J T f {J^T}J{h_{lm}} = - {J^T}f JTJhlm=JTf,此时 h l m h_{lm} hlm近似为高斯牛顿方向。

同样,与阻尼法的分析类似,L-M方法迭代的品质是可以通过gain ratio来很衡量的,即,
ρ = F ( x ) − F ( x + h l m ) L ( 0 ) − L ( h l m ) (4-14) \rho = \frac{{F(x) - F(x + h_{lm})}}{{L(0) - L(h_{lm})}}\tag{4-14} ρ=L(0)L(hlm)F(x)F(x+hlm)(4-14)这里证明一下分母肯定为正,这点在2.8节里有说明,但由于前面的 L ( h ) L(h) L(h)没有具体形式,所以没证明。
L ( 0 ) − L ( h l m ) = − h l m T J T f − 1 2 h l m T J T J h l m                                                = − 1 2 h l m T ( 2 J T f + ( J T J + μ I − μ I ) h l m )                                                = 1 2 h l m T ( μ h l m − J T f ) (4-15) \begin{array}{l} L(0) - L({h_{lm}}) = - {h_{lm}}^T{J^T}f - \frac{1}{2}{h_{lm}}^T{J^T}J{h_{lm}}\\\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; = - \frac{1}{2}{h_{lm}}^T(2{J^T}f + ({J^T}J + \mu I - \mu I){h_{lm}})\\\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; = \frac{1}{2}{h_{lm}}^T(\mu {h_{lm}} - {J^T}f) \end{array}\tag{4-15} L(0)L(hlm)=hlmTJTf21hlmTJTJhlm=21hlmT(2JTf+(JTJ+μIμI)hlm)=21hlmT(μhlmJTf)(4-15)上式中 h l m T h l m {h_{lm}}^Th_{lm} hlmThlm必为正, − h l m J T f -h_{lm}J^Tf hlmJTf也必为正(根据式(4-12)),所以分母为正。

所以,关于L-M方法中的参数 μ \mu μ选取,可以参考阻尼法中的式(2-16)和式(2-17)的策略。关于 μ \mu μ的初值选取,从以上的分析中可以看出, μ \mu μ J T J J^TJ JTJ是有关系的,所以通常 μ \mu μ的初值设定为: μ 0 = τ ∗ max ⁡ { ( J T J ) i i } {\mu _0} = \tau * \max \{ {({J^T}J)_{ii}}\} μ0=τmax{(JTJ)ii},这里的 τ \tau τ由用户设定。

L-M方法迭代优化的停止条件:

  • x ∗ x^* x为局部最小值点,则必有 F ′ ( x ∗ ) = g ( x ∗ ) = 0 F^{'}(x^*)=g(x*)=0 F(x)=g(x)=0。根据这一特点,可以采用如下的策略:
    ∥ g ∥ ∞ ≤ ε 1 (4-16) {\left\| g \right\|_\infty } \le {\varepsilon _1}\tag{4-16} gε1(4-16)这里的 ε 1 {\varepsilon _1} ε1是一个很小的接近于零的正数,有用户自己设置。上式的含义是:经过若干次迭代后,存在一个 x x x的使得 ∥ g ∥ \left\| g \right\| g趋近于零。
  • 若迭代前后两次的 x x x变化很小,也可以认为 x x x到达了局部最小值点:
    ∥ x n e w − x ∥ ≤ ε 2 ( ∥ x ∥ + ε 2 ) (4-17) \left\| {{x_{new}} - x} \right\| \le {\varepsilon _2}(\left\| x \right\| + {\varepsilon _2})\tag{4-17} xnewxε2(x+ε2)(4-17)
  • 设置最大迭代次数: k < k max ⁡ k < {k_{\max }} k<kmax

具体的L-M方法流程:
[ 初 始 化 ] : k = 0 , v = 2 , x = x 0 A = J T J , g = J T f f o u n d = ( ∥ g ∥ ∞ ≤ ε 1 ) , μ = τ ∗ max ⁡ { a i i } [ 循 环 ] : w h i l e      ( n o t      f o u n d )      a n d      ( k < k max ⁡ )                        k = k + 1 ; S o l v e ( A + μ I ) h l m = − g                        i f ( ∥ h l m ∥ ≤ ε 2 ( ∥ x ∥ + ε 2 ) )                                  f o u n d = t r u e                        e l s e                                  x n e w = x + h l m                                  r h o = F ( x ) − F ( x n e w ) L ( 0 ) − L ( h l m )                                  i f      ρ > 0                                            x = x n e w                                            A = J T J , g = J T f                                            f o u n d = ( ∥ g ∥ ∞ ≤ ε 1 )                                            μ = μ ∗ max ⁡ { 1 3 , 1 − ( 2 ρ − 1 ) 3 } , v = 2                                  e l s e                                            μ = μ ∗ v , v = 2 ∗ v \begin{array}{l} [初始化]:\\ k = 0,v = 2,x = {x_0}\\ A = {J^T}J,g = {J^T}f\\ found = ({\left\| g \right\|_\infty } \le {\varepsilon _1}),\mu = \tau * \max \{ {a_{ii}}\} \\\\ [循环]:\\ while\;\;(not\;\;found)\;\;and\;\;(k < {k_{\max }})\\ \;\;\;\;\;\;\;\;\;\;\;k = k + 1;Solve(A + \mu I){h_{lm}} = - g\\ \;\;\;\;\;\;\;\;\;\;\;if(\left\| {{h_{lm}}} \right\| \le {\varepsilon _2}(\left\| x \right\| + {\varepsilon _2}))\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;found = true\\ \;\;\;\;\;\;\;\;\;\;\;else\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;{x_{new}} = x + {h_{lm}}\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;rho = \frac{{F(x) - F({x_{new}})}}{{L(0) - L({h_{lm}})}}\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;if\;\;\rho > 0\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;x = {x_{new}}\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;A = {J^T}J,g = {J^T}f\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; found = ({\left\| g \right\|_\infty } \le {\varepsilon _1})\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\mu = \mu * \max \{ \frac{1}{3},1 - {(2\rho - 1)^3}\} ,v = 2\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;else\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\mu = \mu * v,v = 2 * v \end{array} []:k=0,v=2,x=x0A=JTJ,g=JTffound=(gε1),μ=τmax{aii}[]:while(notfound)and(k<kmax)k=k+1;Solve(A+μI)hlm=gif(hlmε2(x+ε2))found=trueelsexnew=x+hlmrho=L(0)L(hlm)F(x)F(xnew)ifρ>0x=xnewA=JTJ,g=JTffound=(gε1)μ=μmax{31,1(2ρ1)3},v=2elseμ=μv,v=2v

参考文献:
[1] METHODS FOR NON-LINEAR LEAST SQUARES PROBLEMS
[2] Unconstrained Optimization, 3rd Edition.

  • 23
    点赞
  • 94
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值