一、一些基础概念[1]

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

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

2.全局最小值
给定目标函数FFF,找到一个xxx使得下面的式子最小,
x+=arg⁡min⁡xF(x)(1-2){x^ + } = \arg \mathop {\min }\limits_x F(x)\tag{1-2}x+=argxmin​F(x)(1-2)
3.局部最小值
给定目标函数FFF,找到一个x∗x^*x∗使得,
F(x∗)≤F(x)for∥x−x∗∥<δ(1-3)F({x^*}) \le F(x)\;\;\;\;for\;\;\;\;\left\| {x - {x^*}} \right\| < \delta\tag{1-3}F(x∗)≤F(x)for∥x−x∗∥<δ(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)∂x1⋯∂F(x)∂xn]Tg = {\left[ {\begin{array}{l} {\frac{{\partial F(x)}}{{\partial {x_1}}}}& \cdots &{\frac{{\partial F(x)}}{{\partial {x_n}}}} \end{array}} \right]^T}g=[∂x1​∂F(x)​​⋯​∂xn​∂F(x)​​]T,表示F(x)F(x)F(x)的梯度。

5.驻点
若有xs{x_s}xs​使得,
gs=F′(xs)=0(1-5){g_s} = {F^{'}}({x_s}) = 0\tag{1-5}gs​=F′(xs​)=0(1-5)则xs{x_s}xs​为函数F(x)F(x)F(x)的驻点。
驻点的含义是在xs{x_s}xs​处,F′(xs)=0{F^{'}}({x_s}) = 0F′(xs​)=0,F(x)F(x)F(x)的函数值在该点处既没有增大的趋势,也没有减小的趋势,那么驻点xs{x_s}xs​有会有以下三种情况:

6.局部最小值点的充要条件
若xs{x_s}xs​为驻点且F′′(xs){F^{''}}({x_s})F′′(xs​)正定,则xs{x_s}xs​为局部最小值点。
这里的F′′(xs)=H=[∂2F(x)∂xi∂xj]{F^{''}}({x_s}) = H = \left[ {\frac{{{\partial ^2}F(x)}}{{\partial {x_i}\partial {x_j}}}} \right]F′′(xs​)=H=[∂xi​∂xj​∂2F(x)​],HHH为Hessian矩阵,表示函数F(x)F(x)F(x)的二阶导。

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

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

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

二、下降方法

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

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

2.下降法的步骤如下:
初值设置: 迭代次数k=0k=0k=0,迭代初值x=x0x=x_0x=x0​,下降方向的找到的标志位found=falsefound=falsefound=false;
寻找步骤: 寻找下降方向hd=search_direction(x){h_d} = search\_direction(x)hd​=search_direction(x)和下降步长α=step_length(x,hd)\alpha = step\_length(x,{h_d})α=step_length(x,hd​)。
更新步骤: 更新解x=x+αhdx = x + \alpha {h_d}x=x+αhd​和迭代次数k=k+1k=k+1k=k+1。
结束循环标志: 迭代次数达到设定值(k<kmaxk<k_{max}k<kmax​)+没找到下降方向(found=truefound=truefound=true,此时的xxx为驻点)。

3.寻找下降方向的原理
考虑目标函数F(x)F(x)F(x)在xxx处的泰勒展开,
F(x+αh)=F(x)+αhTF′(x)+O(α2)≈F(x)+αhTF′(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)里可以总结出:如果hTF′(x)<0h^TF^{'}(x)<0hTF′(x)<0,则hhh一定是下降方向。这里很好证明,若hTF′(x)<0h^TF^{'}(x)<0hTF′(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)里的定义。

根据这一原理,有两种下降方向:最速下降方向(hsdh_{sd}hsd​,Steepest Descent)和牛顿方向(hnh_nhn​)。

4.最速下降方向——最速下降法
含义:在点xxx处下降速度最快的方向。可以证明,最速下降方向为函数F(x)F(x)F(x)在xxx处的负梯度。
证明如下:
取式(2-1)中的最后一项,
hTF′(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)=∥h∥∥∥∥​F′(x)∥∥∥​cosθ=∥∥∥​F′(x)∥∥∥​cosθ(2-2)其中θ\thetaθ表示的是向量hhh和向量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)∥最大,即此时下降最快,且方向为负梯度方向,

hsd=−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)在xxx处的泰勒展式,
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∗)=0F^{'}(x^*)=0F′(x∗)=0。因此,令式(2-4)等于零,就可以得到牛顿下降方向,
hn=−(F′′(x))−1F′(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)为正定矩阵,所以有uTHu>0{u^T}Hu > 0uTHu>0,同理,对于一个非零向量hTh^ThT,有,
0<hnTHhn=−hnTF′(x)(2-6)0 < h_n^TH{h_n} = - h_n^T{F^{'}}(x)\tag{2-6}0<hnT​Hhn​=−hnT​F′(x)(2-6)符合2.3中下降方向的判定条件。

6.最速下降法vs牛顿法

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

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

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

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

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

它们的原理是在xxx的邻域内,用一个模型函数LLL来近似目标函数FFF:
F(x+h)≈L(h)=F(x)+hTc+12hTBhT(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+21​hTBhT(2-10)这里要注意式(2-10)的L(h)L(h)L(h)里的三项不是F(x+h)F(x+h)F(x+h)泰勒展式的前三项,因为,
F(x+h)≈F(x)+hTg+12hTHhT(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+21​hTHhT(2-11)这里的c≠g,B≠Hc \ne g,B \ne Hc​=g,B​=H。所以L(h)L(h)L(h)是F(x)F(x)F(x)在模型意义上的近似,它只是近似等于F(x)F(x)F(x)取泰勒展式前三项的结果。当然,这种近似只有在hhh很小时才成立。

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

h=htr=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​=arg∥h∥≤Δmin​L(h)(2-12)而阻尼法的策略是:给L(h)L(h)L(h)一个惩罚项12μhTh\frac{1}{2}\mu {h^T}h21​μhTh(也叫正则项,机器学习里的l2l_2l2​正则器就是这个),以防止hhh过大造成的近似不精确,
h=hdm=arg⁡min⁡h{L(h)+12μhTh}(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)此时的步长选取策略为:若hhh是一个下降方向,直接取α=1\alpha=1α=1;若不是,取α=0\alpha=0α=0,本次迭代无效。

式(2-12)和式(2-13)中的hhh只能保证模型函数L(h)L(h)L(h)是下降的,由于L(h)L(h)L(h)只是F(x)F(x)F(x)的近似,所以,它的下降并不能保证函数FFF是不是真的在下降,所以,这里就提出了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)显然,该式的分母始终为正,因为hhh会使L(h)L(h)L(h)下降。所以,当ρ\rhoρ为正时,表示分子也为正,此时F(x)>F(x+h)F(x)>F(x+h)F(x)>F(x+h),符合式(1-6),表示目标函数FFF也在下降,本次迭代有效;但当ρ\rhoρ为负时,则表示目标函数FFF在增大,不符合要求。

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

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

  • 阻尼法中的μ\muμ的选取原则与信赖域法中的Δ\DeltaΔ选取同理。当ρ\rhoρ值很小时,说明LLL不能很好的近似FFF,所以要增大惩罚项,即增大μ\muμ的值;反之,当ρ\rhoρ值很大时,说明FFF下降幅度小,要减小惩罚项,即减小μ\muμ的值。基于此,马夸尔特提出了一种类似于式(2-15)的策略:
    ifρ<0.25μ=μ∗2elseifρ>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提出了另外一种经验公式:
    ifρ>0μ=μ∗max⁡{13,1−(2ρ−1)3};v=2elseμ=μ∗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=2∗v​(2-17)

9.阻尼法的进一步探讨——阻尼牛顿法
对于式(2-13),要想求其最小值,首先考虑hhh必须是φ(h)=L(h)+12μhTh\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)hdm=−c(2-19)(B + \mu I){h_{dm}} = - c\tag{2-19}(B+μI)hdm​=−c(2-19)这里的III是单位阵,那么当μ\muμ足够大时,B+μIB+\mu IB+μI肯定为正定矩阵,根据概念1.6,hdmh_{dm}hdm​必为LLL的一个局部最小值点。

那么,再特殊化一点,取c=F′(x),B=F′′(x)c=F^{'}(x),B=F^{''}(x)c=F′(x),B=F′′(x),则式(2-19)可改写如下,
(F′′(x)+μI)hdn=−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),则hdn=−(F′′(x))−1F′(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)≈μ,则hdn=−1μF′(x){h_{dn}} = - \frac{1}{\mu }{F^{'}}(x)hdn​=−μ1​F′(x),此时退化为了最速下降法。

10.信赖域法与阻尼法的一致性探讨
式(2-12)表示的信赖域法实际上等价于一个带约束的优化问题。
min⁡hL(h)s.t.hTh≤Δ2(2-21)\mathop {\min }\limits_h \;\;L(h)\;\;\;s.t.\;\;{h^T}h \le {\Delta ^2}\tag{2-21}hmin​L(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)),通常可以采用l2l_2l2​正则器来建立约束,尽可能的防止过拟合。而式(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⁡hL(h)+λ(hTh−Δ2)(2-22)\mathop {\min }\limits_h \;L(h) + \lambda ({h^T}h - {\Delta ^2})\tag{2-22}hmin​L(h)+λ(hTh−Δ2)(2-22)显然,对式(2-22)求导然后等于零,可以求出其最小值。那么,式(2-22)对hhh求导有,

L′(h)+2λh(2-23){L^{'}}(h) + 2\lambda h\tag{2-23}L′(h)+2λh(2-23)再将上式反推回去,有,
L(h)+λhTh(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λ有关,若令λ=12μ\lambda = \frac{1}{2}\muλ=21​μ,则式(2-22)就变成了式(2-13)所示的阻尼法的求解形式。所以,信赖域法和阻尼法其实是一致的,它其实是一个最优化问题的两种表现形式。

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

1. 若概念1.1中的函数fi(x){f_i}(x)fi​(x)为关于xxx的线性函数,即fi(x)=aix−bi{f_i}(x) = {a_i}x - {b_i}fi​(x)=ai​x−bi​,其中估计值yi(x)=aix{y_i}(x) = {a_i}xyi​(x)=ai​x(线性函数),则概念1所示的问题为线性最小二乘问题。
对于线性最小二乘问题,可以直接闭式求解(closed-form),过程如下:
根据式(1-1),写成矩阵形式,有,
F(x)=(Ax−b)T(Ax−b)=xTATAx−2xTATb+bTb(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)=(Ax−b)T(Ax−b)=xTATAx−2xTATb+bTb​(3-1)这里的A=[a1⋯am]TA = {\left[ {\begin{array}{l} {{a_1}}& \cdots &{{a_m}} \end{array}} \right]^T}A=[a1​​⋯​am​​]T,b=[−b1⋯−bm]Tb = {\left[ {\begin{array}{l} {{-b_1}}& \cdots &{{-b_m}} \end{array}} \right]^T}b=[−b1​​⋯​−bm​​]T。
对式(3-1)求导,有,
∂F(x)∂x=2ATAx−2ATb=0(3-2)\frac{{\partial F(x)}}{{\partial x}} = 2{A^T}Ax - 2{A^T}b = 0\tag{3-2}∂x∂F(x)​=2ATAx−2ATb=0(3-2)则线性最小二乘的闭式解形式如下,
x=(ATA)−1ATb(3-3)x = {({A^T}A)^{ -1}}{A^T}b\tag{3-3}x=(ATA)−1ATb(3-3)对于线性最小二乘的解法,还可以用QR分解来做。Matlab里的A\bA\backslash bA\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=k1x+k2y = k_1x + k_2y=k1​x+k2​。

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

A=[0,2,1,0,−1,11,1,1,1,1,1]TA = {\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​]Tb=[0,0,−1,2,1,1]Tb = {\left[ {{\rm{0,0, - 1,2,1,1}}} \right]^T}b=[0,0,−1,2,1,1]Tmatlab里的结果为k1k2=[−0.4545,0.7273]T{k_1}{k_2} = {[{\rm{ - 0}}{\rm{.4545}},{\rm{0}}{\rm{.7273}}]^T}k1​k2​=[−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中的函数fi(x){f_i}(x)fi​(x)为关于xxx的非线性函数,即fi(x)=yi(x)−yi{f_i}(x) = y_i(x) - y_ifi​(x)=yi​(x)−yi​,其中估计值yi(x){y_i}(x)yi​(x)为非线性函数(例如,yi(x)=cos(x)y_i(x)=cos(x)yi​(x)=cos(x)),测量值yyy为常数矩阵。则概念1.1所示的问题为非线性最小二乘问题。式(1-1)写成矩阵形式为,
F(x)=12∑i=1m(fi(x))2=12f(x)Tf(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)=21​i=1∑m​(fi​(x))2=21​f(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(∥h∥2)(4-2)上式中的J(x)J(x)J(x)为雅克比矩阵,且J∈Rm×nJ \in {R^{m \times n}}J∈Rm×n。它的第iii行和第jjj列表示如下,
J(x)ij=∂fi(x)∂xj(4-3)J{(x)_{ij}} = \frac{{\partial {f_i}(x)}}{{\partial {x_j}}}\tag{4-3}J(x)ij​=∂xj​∂fi​(x)​(4-3)这表示第iii个函数fi(x)f_i(x)fi​(x)对第jjj维变量xjx_jxj​求导。
注意到式(4-1),若目标函数F(x)F(x)F(x)对xjx_jxj​求导,则有,
∂F(x)∂xj=∑i=1mfi(x)∂fi(x)∂xj(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}∂xj​∂F(x)​=i=1∑m​fi​(x)∂xj​∂fi​(x)​(4-4)那么,F(x)F(x)F(x)的梯度可表示如下,
g=F′(x)=J(x)Tf(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矩阵,有,
∂2F(x)∂xj∂xk=∑i=1m(∂fi(x)∂xj∂fi(x)∂xk+fi(x)∂2fi(x)∂xj∂xk)(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}∂xj​∂xk​∂2F(x)​=i=1∑m​(∂xj​∂fi​(x)​∂xk​∂fi​(x)​+fi​(x)∂xj​∂xk​∂2fi​(x)​)(4-6)用雅克比矩阵表示上式为,
H=F′′(x)=J(x)TJ(x)+∑i=1mfi(x)fi′′(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=1∑m​fi​(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)在xxx处进行一阶泰勒展开后得出来的;而高斯牛顿法则是对fff进行一阶泰勒展开,
f(x+h)≈l(h)=f(x)+Jh(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)=12l(h)Tl(h)=12fTf+hTJTf+12hTJTJh=F(x)+hTJTf+12hTJTJh(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)=21​l(h)Tl(h)=21​fTf+hTJTf+21​hTJTJh=F(x)+hTJTf+21​hTJTJh​(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=Jf,B=JTJc=J^f,B=J^TJc=Jf,B=JTJ的结果。

对L(h)L(h)L(h)进行求导,有,
L′(h)=JTf+JTJh,L′′(h)=JTJ(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)=0L^{'}(h)=0L′(h)=0,有,
JTJhgn=−JTf(4-11){J^T}J{h_{gn}} = - {J^T}f\tag{4-11}JTJhgn​=−JTf(4-11)式(4-11)中的hgnh_{gn}hgn​必为一个下降方向。因为若(4-11)有解,则JTJJ^TJJTJ必正定,所以有,
hgnTF′(x)=hgnTJTf=−hgnTJTJhgn<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}hgn​TF′(x)=hgn​TJTf=−hgn​TJTJhgn​<0(4-12)符合下降方向的判定条件。

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

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

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

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

3.列文伯格-马夸尔特方法(L-M Method)
L-M方法解的形式如下,
(JTJ+μI)hlm=−JTf(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μ的取值足够大,则(JTJ+μ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)取12l(h)Tl(h)\frac{1}{2}l{(h)^T}l(h)21​l(h)Tl(h)的结果。那么,与阻尼法的分析类似,L-M方法里得到的下降方向hlmh_{lm}hlm​其实也是最速下降方向和高斯牛顿方向的一个折中或者选择:

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

同样,与阻尼法的分析类似,L-M方法迭代的品质是可以通过gain ratio来很衡量的,即,
ρ=F(x)−F(x+hlm)L(0)−L(hlm)(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(hlm)=−hlmTJTf−12hlmTJTJhlm=−12hlmT(2JTf+(JTJ+μI−μI)hlm)=12hlmT(μhlm−JTf)(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​)=−hlm​TJTf−21​hlm​TJTJhlm​=−21​hlm​T(2JTf+(JTJ+μI−μI)hlm​)=21​hlm​T(μhlm​−JTf)​(4-15)上式中hlmThlm{h_{lm}}^Th_{lm}hlm​Thlm​必为正,−hlmJTf-h_{lm}J^Tf−hlm​JTf也必为正(根据式(4-12)),所以分母为正。

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

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

  • 若x∗x^*x∗为局部最小值点,则必有F′(x∗)=g(x∗)=0F^{'}(x^*)=g(x*)=0F′(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​是一个很小的接近于零的正数,有用户自己设置。上式的含义是:经过若干次迭代后,存在一个xxx的使得∥g∥\left\| g \right\|∥g∥趋近于零。
  • 若迭代前后两次的xxx变化很小,也可以认为xxx到达了局部最小值点:
    ∥xnew−x∥≤ε2(∥x∥+ε2)(4-17)\left\| {{x_{new}} - x} \right\| \le {\varepsilon _2}(\left\| x \right\| + {\varepsilon _2})\tag{4-17}∥xnew​−x∥≤ε2​(∥x∥+ε2​)(4-17)
  • 设置最大迭代次数:k<kmax⁡k < {k_{\max }}k<kmax​

具体的L-M方法流程:
[初始化]: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=F(x)−F(xnew)L(0)−L(hlm)ifρ>0x=xnewA=JTJ,g=JTffound=(∥g∥∞≤ε1)μ=μ∗max⁡{13,1−(2ρ−1)3},v=2elseμ=μ∗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=x0​A=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+hlm​rho=L(0)−L(hlm​)F(x)−F(xnew​)​ifρ>0x=xnew​A=JTJ,g=JTffound=(∥g∥∞​≤ε1​)μ=μ∗max{31​,1−(2ρ−1)3},v=2elseμ=μ∗v,v=2∗v​

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

非线性最小二乘法原理相关推荐

  1. 算法#03--详解最小二乘法原理和代码

    最小二乘法原理 最小二乘法的目标:求误差的最小平方和,对应有两种:线性和非线性.线性最小二乘的解是closed-form(如下文),而非线性最小二乘没有closed-form,通常用迭代法求解(如高斯 ...

  2. 【scipy】Python调用非线性最小二乘法

    文章目录 简介与构造函数 迭代策略 雅可比矩阵 测试 简介与构造函数 在scipy中,非线性最小二乘法的目的是找到一组函数,使得误差函数的平方和最小,可以表示为如下公式 arg min⁡fiF(x)= ...

  3. c++椭圆最小二乘法原理_c++ 椭圆拟合之最小二乘法(图像处理)

    椭圆拟合之最小二乘法 原理:可能以后的篇幅再详细写了, 代码: QImage inputImage :输入图像: float ellipse : 输出椭圆的各个参数 bool Vertical : 是 ...

  4. 非线性最小二乘法 python_[数值计算] 数据拟合——非线性最小二乘法

    前面分析了 线性最小二乘 的解法YcoFlegs:[数值计算] 数据拟合--线性最小二乘法​zhuanlan.zhihu.com 现在来看另一个问题:非线性最小二乘法 1. 定义 首先是如何定义这里这 ...

  5. Ceres Solver 官方教程学习笔记(十二)——非线性最小二乘法建模Modeling Non-linear Least Squares (下)

    这一部分主要是最后的Problem比较重要. 带条件的代价函数ConditionedCostFunction 这个类使用户可以在使用封装好的代价函数的同时,对残差值加入一定的条件限制.举个例子,现在已 ...

  6. 非线性最小二乘法之Gauss Newton、L-M、Dog-Leg

    非线性最小二乘法之Gauss Newton.L-M.Dog-Leg 最快下降法 假设hTF′(x)<0h^TF'(x) ,则h是F(x)F(x)下降方向,即对于任意足够小的α>0\alph ...

  7. 拉格朗日插值最小二乘法原理简述

    最小二乘法简述及推导,转自:点击打开链接 经常做物理实验的同学应该会有这样的体会,我们经常需要将实验收集得来的数据标注在一个坐标平面之上,形成一系列离散的点,然后用一条平滑的曲线近似地将这些点连在一起 ...

  8. matlab最小二乘法拟合论文,最小二乘法原理,拟合(matlab)。

    最小二乘法: 原理: 用各个离差的平方和M=Σ[yi-(axi+b)]^2 (i = 1...n)最小来保证每个离差的绝对值都很小. 为求其最小值,可用函数M对a.b求偏导,并令偏导数为0. 整理得( ...

  9. 最小二乘法原理及极值点判定

    最小二乘法的本质原理 本文主要以最简单的二元线性函数为基础,阐述最小二乘法的原理,事实上,最小二乘法可以更广泛地应用于非线性方程中,但本文以介绍为主,希望能以最简单的形式,使读者能够掌握最小二乘法的意 ...

最新文章

  1. 报名丨24小时创新挑战:数字时代的人类健康与福祉
  2. 多线程小抄集(新编二)
  3. 【图像处理】——图像内插法
  4. linux权限sudo和su,Linux su和sudo命令的区别,并获得root权限
  5. java一个界面用另一个界面的值_如何将参数/值从一个弹出窗口传递到Angular2中的另一个弹出窗口...
  6. 万字总结webpack实战案例配置
  7. guid mysql_关于MySQL:MySQL-如何搜索GUID
  8. mybatis-plus实现自定义字段修改数据 后续更新CRUD
  9. 对多个有规律表进行更新剔重复操作的存储过程(up8000)
  10. c++学习 -- #program once
  11. 2013 ACM区域赛长沙 H zoj 3733 (hdu 4798) Skycity
  12. find命令日常用法和文件名后缀
  13. 2021华为软挑赛复盘
  14. matlab绘制不同线性的直方图,Matlab绘制柱状图采用不同图案填充
  15. cad编辑节点快捷键是什么_cad进入块编辑快捷键是什么,Auto CAD进入块编辑快捷键是什么?...
  16. android版幻灯片软件,手机幻灯片制作器
  17. 计算机里的文档怎么设置密码,文件夹怎么设置密码,教您如何给电脑上文件夹设置密码...
  18. 信息化实施, 管理前沿 ERP生产系统
  19. 初识EMC元器件(四)——共模电感选型及应用
  20. 嵌入式系统硬件构成-嵌入式系统硬件体系结构

热门文章

  1. 【轴承数据读取及信号处理专题】之EMD分解及统计特征提取
  2. element-ui之Message 详解
  3. 机器学习算法基础 Day7
  4. 判断素数的高效的方法
  5. Google earth 画扇形
  6. [: -le: unary operator expected 错误
  7. 教你怎么找到spring下载地址
  8. Spring的下载与配置
  9. java数组从小到大排序_JAVA数组从小到大排序代码
  10. setTimeout用法——避免重复性触发操作