最小二乘(模型拟合)算法
最小二乘法的定义
一般来说,最小二乘就是求一个向量的问题x它是一个函数的局部最小值,函数是平方和,可能受一些约束:
这样<年代pan class="inlineequation">·x≤b,Aeq·x=说真的,Lb≤x≤ub.
有几个优化工具箱™求解器可用于各种类型的F(x)及各种限制:
解算器
F(x)
约束
mldivide
C·x- - - - - -d
没有一个
lsqnonneg
C·x- - - - - -d
x≥0
lsqlin
C·x- - - - - -d
绑定,线性
lsqnonlin
一般F(x)
绑定
lsqcurvefit
F(x,xdata)- - -ydata
绑定
在最优化工具箱求解器中有五种最小二乘算法,除了在mldivide:
lsqlin
内点
lsqlin有效集
信任区域反射(非线性或线性最小二乘)
Levenberg-Marquardt(非线性最小二乘)
所使用的算法lsqnonneg
除了所有的算法lsqlin激活集大规模;看到大规模vs.中型算法.关于非线性最小二乘方法的概览,请参阅Dennis[8].关于Levenberg-Marquardt方法的详细信息可以在Moré中找到[28].
线性最小二乘:内点或活动集
的lsqlin“内点”算法使用interior-point-convex quadprog算法,lsqlin“激活集”算法使用active-setquadprog算法。的quadprog问题的定义是最小化一个二次函数
受线性约束和约束约束。的lsqlin函数使向量的平方2范数最小化Cx - d受线性约束和约束约束。换句话说,lsqlin最小化
这符合quadprog框架,通过设置H矩阵为2C<年代up>TC和c向量<年代pan class="inlineequation">(2C<年代up>Td).(加词d<年代up>Td对最小值的位置没有影响。)经过这一重新制定lsqlin问题,quadprog计算的解决方案。
请注意
的quadprog“interior-point-convex”算法有两条代码路径。当黑森矩阵H是一个普通的(完整的)双精度矩阵,它在什么时候取另一个H是一个稀疏矩阵。有关稀疏数据类型的详细信息,请参见稀疏矩阵.通常,对于指定的非零项相对较少的大型问题,该算法速度更快H作为稀疏的.同样,当您指定时,算法对于较小或相对密集的问题会更快H作为完整的.
Trust-Region-Reflective最小二乘
信任区域反射最小二乘算法
优化工具箱求解器中使用的许多方法都是基于<年代pan class="emphasis">信任区域,一个简单而强大的优化概念。
为了理解信任域优化方法,考虑无约束最小化问题,最小化f(x),其中函数接受向量参数并返回标量。假设你在一个点上x在n-空间,你想要改进,例如,移动到一个函数值较低的点。基本思想是近似f用一个更简单的函数问,合理地反映了函数的行为f在一个社区N周围的点x.这个邻域是信任域。试验步骤年代是通过最小化(或近似最小化)N.这是信任域子问题,
(1)
当前点被更新为x+年代如果<年代pan class="inlineequation">f(x+年代) <f(x);否则,当前点保持不变N,缩小信任区域,并重复试步计算。
定义特定信任区域方法的关键问题是最小化f(x)是如何选择和计算近似问(在当前点定义x),如何选择和修改信任区域N,以及如何准确求解信任域子问题。本节主要讨论无约束问题。后面的部分将讨论由于变量存在约束而引起的其他复杂性。
在标准信任域方法([48]),二阶近似问是由泰勒近似的前两项定义的F在x;附近N通常为球形或椭球形。在数学上,信任域子问题是典型的表述
(2)
在哪里g是的梯度f在目前的情况下x,H为Hessian矩阵(二阶导数的对称矩阵),D为对角比例矩阵,Δ为正标量,‖。‖是2-norm。好的算法是用来求解的方程2(见[48]);的所有特征值的计算H牛顿过程应用于特征方程
这种算法提供了一个精确的解决方案方程2.然而,它们需要的时间与的若干因式分解成正比H.因此,对于信任域问题,需要一种不同的方法。几种近似和启发式策略,基于方程2,已在文献([42]而且[50]).最优化工具箱求解器所遵循的近似方法是将信任域子问题限制在二维子空间中年代([39]而且[42]).一旦子空间年代算好了,功解出来了吗方程2即使需要完整的特征值/特征向量信息(因为在子空间中,问题只是二维的)也是微不足道的。现在主要的工作已经转移到子空间的确定上。
二维子空间年代是在一个预条件共轭梯度过程描述如下。解算器定义年代由。张成的线性空间年代1而且年代2,在那里年代1在梯度的方向上g,年代2要么是近似的牛顿方向,即解
(3)
或者一个方向负曲率,
(4)
这种选择背后的哲学年代是强迫全局收敛(通过最陡的下降方向或负曲率方向),实现快速的局部收敛(通过牛顿步长,当它存在时)。
利用信任域的思想,可以很容易地给出无约束最小化的草图:
表述二维信任域子问题。
解决方程2确定试验步骤年代.
如果<年代pan class="inlineequation">f(x+年代) <f(x),然后<年代pan class="inlineequation">x=x+年代.
Δ调整。
重复这四个步骤直到收敛。信任域维度Δ按照标准规则进行调整。特别是,如果不接受试验步骤,则会减少,即,<年代pan class="inlineequation">f(x+年代)≥f(x).看到[46]而且[49]关于这方面的讨论。
优化工具箱求解器处理一些重要的特殊情况f有专门的函数:非线性最小二乘,二次函数和线性最小二乘。然而,基本的算法思想与一般情况下是相同的。这些特殊情况将在后面的小节中讨论。
大尺度非线性最小二乘
一个重要的特例f(x)是非线性最小二乘问题
(5)
在哪里F(x)是一个带分量的向量值函数我的F(x) =f<年代乌兰巴托>我(x).解决这一问题的基本方法与文中所述的一般情况相同非线性极小化的信赖域方法.然而,利用非线性最小二乘问题的结构来提高效率。特别是一个近似高斯-牛顿方向,即解年代来
(6)
(J的雅可比矩阵是多少F(x))用于帮助定义二维子空间年代.分量函数的二阶导数f<年代乌兰巴托>我(x)没有使用。
在每次迭代中,使用预条件共轭梯度方法近似求解法方程,即:
虽然正常的方程没有明确的形成。
大尺度线性最小二乘
在这种情况下,函数f(x)有待解决的是
可能受线性约束。该算法生成严格可行的迭代,在极限下收敛到局部解。每次迭代都涉及到一个大型线性系统的近似解n,在那里n的长度x).迭代矩阵具有矩阵的结构C.特别地,利用预处理共轭梯度的方法近似求解正规方程,即:
虽然正常的方程没有明确的形成。
采用子空间信赖域方法确定搜索方向。然而,与在非线性最小化情况下将步骤(可能)限制为一个反射步骤不同,在每次迭代时进行分段反射线搜索,就像在二次迭代情况下一样。看到[45]如需查询详情,请在线查询。最终,线性系统代表了一种牛顿方法,在解处捕捉到一阶最优条件,导致强的局部收敛速度。
雅可比矩阵乘法函数。lsqlin
不使用矩阵能解决线性约束最小二乘问题吗C明确。相反,它使用雅可比矩阵乘法函数jmfun,
W = jmfun(动力系统,Y,标志)
你提供的。函数必须计算矩阵的下列乘积2022世界杯八强谁会赢?Y:
如果标志= = 0然后W = C ' * (C * Y).
如果国旗> 0然后W = C * Y.
如果国旗< 0然后W = C ' * Y.
这可能很有用,如果C是很大的,但包含足够的结构,您可以写jmfun没有形成C明确。示例请参见线性最小二乘的雅可比矩阵乘法.
Levenberg-Marquardt方法
最小二乘问题使一个函数最小化f(x)这是一个平方和。
(7)
这类问题出现在大量的实际应用中,特别是那些涉及模型函数与数据拟合的问题,如非线性参数估计。这种问题类型也出现在控制系统中,其目标是输出y(x t)来跟随一个连续的模型轨迹φ(t)向量x和标量t.这个问题可以表示为
(8)
在哪里y(x t),φ(t)是标量函数。
对积分进行离散以得到近似
(9)
在哪里t<年代乌兰巴托>我是等间距的。在这个问题中,向量F(x)是
在这类问题中,残差<年代pan class="inlineequation">为F(x为每在最优情况下可能很小,因为一般的做法是设定现实可行的目标轨迹。尽管你可以最小化函数方程7使用一种通用的、无约束的最小化技术,如无约束优化基础时,往往可以利用问题的某些特征来提高求解过程的迭代效率。的梯度和Hessian矩阵方程7有一个特殊的结构。
表示的米——- - - - - -n雅可比矩阵的F(x),J(x的梯度向量f(x),G(x的Hessian矩阵f(x),H(x)和各自的Hessian矩阵F<年代乌兰巴托>我(x),D<年代乌兰巴托>我(x),
(10)
在哪里
矩阵的一个性质问(x)是当残差<年代pan class="inlineequation">为F(x为每趋于0时x<年代乌兰巴托>k那么,接近解问(x)也趋向于零。所以,当<年代pan class="inlineequation">为F(x为每的解很小,一种有效的方法是利用高斯-牛顿方向作为优化过程的基础。
在每个主要迭代中k,高斯-牛顿法得到一个搜索方向d<年代乌兰巴托>k这是线性最小二乘问题的一个解
(11)
的项时,由该方法推导出的方向等价于牛顿方向<年代pan class="inlineequation">问(x) = 0.算法可以使用搜索方向d<年代乌兰巴托>k 作为行搜索策略保证功能的一部分f(x)在每次迭代中减少。
高斯-牛顿法在计算二阶项时经常遇到问题问(x)是不可忽视的。Levenberg-Marquardt方法克服了这个问题。
Levenberg-Marquardt方法(见[25]而且[27])使用的搜索方向是线性方程组的一个解
(12)
或者,选择性地,方程的
(13)
在标量λ<年代乌兰巴托>k的大小和方向d<年代乌兰巴托>k,诊断接头(A)表示对角线项的矩阵一个.设置选项ScaleProblem来“没有”选择方程12,或一组ScaleProblem来的雅可比矩阵选择方程13.
设置参数的初始值λ0使用InitDamping选择。偶尔,0.01该选项的默认值可能不合适。如果您发现Levenberg-Marquardt算法在初始阶段进展甚微,请尝试设置InitDamping与默认值不同的值,例如1 e2.
当λ<年代乌兰巴托>k方向是0吗d<年代乌兰巴托>k与高斯-牛顿法相同。作为λ<年代乌兰巴托>k趋于无穷,d<年代乌兰巴托>k趋向于最陡的下降方向,震级趋向于零。因此,对于一些足够大的λ<年代乌兰巴托>k,这个术语<年代pan class="inlineequation">F(x<年代乌兰巴托>k +d<年代乌兰巴托>k) <F(x<年代乌兰巴托>k)适用。因此,你可以控制这个项λ<年代乌兰巴托>k以保证算法在遇到二阶项时也能下降,这限制了高斯-牛顿方法的效率。当步骤成功时(给出一个较低的函数值),算法设置λk+1=λ<年代乌兰巴托>k / 10。当步骤不成功时,算法设置λk+1=λ<年代乌兰巴托>k * 10。
在内部,Levenberg-Marquardt算法使用的最优容忍(停止准则)1的军医乘以函数公差。
因此,Levenberg-Marquardt方法使用的搜索方向是高斯-牛顿方向和最陡下降方向之间的交叉。
Levenberg-Marquardt方法的另一个优点是当雅可比矩阵Jrank-deficient。在这种情况下,高斯-牛顿方法可能会有数值问题,因为最小问题方程11是不适定的。相比之下,Levenberg-Marquardt方法在每次迭代中都是满秩的,因此避免了这些问题。
下图显示了Levenberg-Marquardt方法在最小化Rosenbrock函数时的迭代,这是一个以最小二乘形式出现的非常困难的最小化问题。
Rosenbrock函数的Levenberg-Marquardt方法
有关此图的更完整的描述,包括生成迭代点的脚本,请参见香蕉函数最小化.
Levenberg-Marquardt方法中的约束
当问题包含约束条件时,lsqcurvefit而且lsqnonlin修改Levenberg-Marquardt迭代。如果提出迭代点x在边界之外,算法将步长投影到最近的可行点上。换句话说,与P定义为投影将不可行点投影到可行区域上,算法对提出的点进行修正x来
最小二乘法的定义
一般来说,最小二乘就是求一个向量的问题x它是一个函数的局部最小值,函数是平方和,可能受一些约束:
这样<年代pan class="inlineequation">·x≤b,Aeq·x=说真的,Lb≤x≤ub.
有几个优化工具箱™求解器可用于各种类型的F(x)及各种限制:
解算器
F(x)
约束
mldivide
C·x- - - - - -d
没有一个
lsqnonneg
C·x- - - - - -d
x≥0
lsqlin
C·x- - - - - -d
绑定,线性
lsqnonlin
一般F(x)
绑定
lsqcurvefit
F(x,xdata)- - -ydata
绑定
在最优化工具箱求解器中有五种最小二乘算法,除了在mldivide:
lsqlin
内点
lsqlin有效集
信任区域反射(非线性或线性最小二乘)
Levenberg-Marquardt(非线性最小二乘)
所使用的算法lsqnonneg
除了所有的算法lsqlin激活集大规模;看到大规模vs.中型算法.关于非线性最小二乘方法的概览,请参阅Dennis[8].关于Levenberg-Marquardt方法的详细信息可以在Moré中找到[28].
一般来说,最小二乘就是求一个向量的问题
这样<年代pan class="inlineequation">·x 有几个优化工具箱™求解器可用于各种类型的 在最优化工具箱求解器中有五种最小二乘算法,除了在 信任区域反射(非线性或线性最小二乘) Levenberg-Marquardt(非线性最小二乘) 所使用的算法 除了所有的算法
解算器 F 约束
mldivide
C
没有一个
lsqnonneg
C
x
lsqlin
C
绑定,线性
lsqnonlin
一般 绑定
lsqcurvefit
F
绑定 mldivide
lsqlin
内点lsqlin
lsqnonneg
线性最小二乘:内点或活动集
的lsqlin“内点”算法使用interior-point-convex quadprog算法,lsqlin“激活集”算法使用active-setquadprog算法。的quadprog问题的定义是最小化一个二次函数
受线性约束和约束约束。的lsqlin函数使向量的平方2范数最小化Cx - d受线性约束和约束约束。换句话说,lsqlin最小化
这符合quadprog框架,通过设置H矩阵为2C<年代up>TC和c向量<年代pan class="inlineequation">(2C<年代up>Td).(加词d<年代up>Td对最小值的位置没有影响。)经过这一重新制定lsqlin问题,quadprog计算的解决方案。
请注意
的quadprog“interior-point-convex”算法有两条代码路径。当黑森矩阵H是一个普通的(完整的)双精度矩阵,它在什么时候取另一个H是一个稀疏矩阵。有关稀疏数据类型的详细信息,请参见稀疏矩阵.通常,对于指定的非零项相对较少的大型问题,该算法速度更快H作为稀疏的.同样,当您指定时,算法对于较小或相对密集的问题会更快H作为完整的.
的
受线性约束和约束约束。的
这符合 请注意 的“内点”
“激活集”
“interior-point-convex”
稀疏的
完整的
Trust-Region-Reflective最小二乘
信任区域反射最小二乘算法
优化工具箱求解器中使用的许多方法都是基于<年代pan class="emphasis">信任区域,一个简单而强大的优化概念。
为了理解信任域优化方法,考虑无约束最小化问题,最小化f(x),其中函数接受向量参数并返回标量。假设你在一个点上x在n-空间,你想要改进,例如,移动到一个函数值较低的点。基本思想是近似f用一个更简单的函数问,合理地反映了函数的行为f在一个社区N周围的点x.这个邻域是信任域。试验步骤年代是通过最小化(或近似最小化)N.这是信任域子问题,
(1)
当前点被更新为x+年代如果<年代pan class="inlineequation">f(x+年代) <f(x);否则,当前点保持不变N,缩小信任区域,并重复试步计算。
定义特定信任区域方法的关键问题是最小化f(x)是如何选择和计算近似问(在当前点定义x),如何选择和修改信任区域N,以及如何准确求解信任域子问题。本节主要讨论无约束问题。后面的部分将讨论由于变量存在约束而引起的其他复杂性。
在标准信任域方法([48]),二阶近似问是由泰勒近似的前两项定义的F在x;附近N通常为球形或椭球形。在数学上,信任域子问题是典型的表述
(2)
在哪里g是的梯度f在目前的情况下x,H为Hessian矩阵(二阶导数的对称矩阵),D为对角比例矩阵,Δ为正标量,‖。‖是2-norm。好的算法是用来求解的方程2(见[48]);的所有特征值的计算H牛顿过程应用于特征方程
这种算法提供了一个精确的解决方案方程2.然而,它们需要的时间与的若干因式分解成正比H.因此,对于信任域问题,需要一种不同的方法。几种近似和启发式策略,基于方程2,已在文献([42]而且[50]).最优化工具箱求解器所遵循的近似方法是将信任域子问题限制在二维子空间中年代([39]而且[42]).一旦子空间年代算好了,功解出来了吗方程2即使需要完整的特征值/特征向量信息(因为在子空间中,问题只是二维的)也是微不足道的。现在主要的工作已经转移到子空间的确定上。
二维子空间年代是在一个预条件共轭梯度过程描述如下。解算器定义年代由。张成的线性空间年代1而且年代2,在那里年代1在梯度的方向上g,年代2要么是近似的牛顿方向,即解
(3)
或者一个方向负曲率,
(4)
这种选择背后的哲学年代是强迫全局收敛(通过最陡的下降方向或负曲率方向),实现快速的局部收敛(通过牛顿步长,当它存在时)。
利用信任域的思想,可以很容易地给出无约束最小化的草图:
表述二维信任域子问题。
解决方程2确定试验步骤年代.
如果<年代pan class="inlineequation">f(x+年代) <f(x),然后<年代pan class="inlineequation">x=x+年代.
Δ调整。
重复这四个步骤直到收敛。信任域维度Δ按照标准规则进行调整。特别是,如果不接受试验步骤,则会减少,即,<年代pan class="inlineequation">f(x+年代)≥f(x).看到[46]而且[49]关于这方面的讨论。
优化工具箱求解器处理一些重要的特殊情况f有专门的函数:非线性最小二乘,二次函数和线性最小二乘。然而,基本的算法思想与一般情况下是相同的。这些特殊情况将在后面的小节中讨论。
大尺度非线性最小二乘
一个重要的特例f(x)是非线性最小二乘问题
(5)
在哪里F(x)是一个带分量的向量值函数我的F(x) =f<年代乌兰巴托>我(x).解决这一问题的基本方法与文中所述的一般情况相同非线性极小化的信赖域方法.然而,利用非线性最小二乘问题的结构来提高效率。特别是一个近似高斯-牛顿方向,即解年代来
(6)
(J的雅可比矩阵是多少F(x))用于帮助定义二维子空间年代.分量函数的二阶导数f<年代乌兰巴托>我(x)没有使用。
在每次迭代中,使用预条件共轭梯度方法近似求解法方程,即:
虽然正常的方程没有明确的形成。
大尺度线性最小二乘
在这种情况下,函数f(x)有待解决的是
可能受线性约束。该算法生成严格可行的迭代,在极限下收敛到局部解。每次迭代都涉及到一个大型线性系统的近似解n,在那里n的长度x).迭代矩阵具有矩阵的结构C.特别地,利用预处理共轭梯度的方法近似求解正规方程,即:
虽然正常的方程没有明确的形成。
采用子空间信赖域方法确定搜索方向。然而,与在非线性最小化情况下将步骤(可能)限制为一个反射步骤不同,在每次迭代时进行分段反射线搜索,就像在二次迭代情况下一样。看到[45]如需查询详情,请在线查询。最终,线性系统代表了一种牛顿方法,在解处捕捉到一阶最优条件,导致强的局部收敛速度。
雅可比矩阵乘法函数。lsqlin
不使用矩阵能解决线性约束最小二乘问题吗C明确。相反,它使用雅可比矩阵乘法函数jmfun,
W = jmfun(动力系统,Y,标志)
你提供的。函数必须计算矩阵的下列乘积2022世界杯八强谁会赢?Y:
如果标志= = 0然后W = C ' * (C * Y).
如果国旗> 0然后W = C * Y.
如果国旗< 0然后W = C ' * Y.
这可能很有用,如果C是很大的,但包含足够的结构,您可以写jmfun没有形成C明确。示例请参见线性最小二乘的雅可比矩阵乘法.
信任区域反射最小二乘算法
优化工具箱求解器中使用的许多方法都是基于<年代pan class="emphasis">信任区域,一个简单而强大的优化概念。
为了理解信任域优化方法,考虑无约束最小化问题,最小化f(x),其中函数接受向量参数并返回标量。假设你在一个点上x在n-空间,你想要改进,例如,移动到一个函数值较低的点。基本思想是近似f用一个更简单的函数问,合理地反映了函数的行为f在一个社区N周围的点x.这个邻域是信任域。试验步骤年代是通过最小化(或近似最小化)N.这是信任域子问题,
(1)
当前点被更新为x+年代如果<年代pan class="inlineequation">f(x+年代) <f(x);否则,当前点保持不变N,缩小信任区域,并重复试步计算。
定义特定信任区域方法的关键问题是最小化f(x)是如何选择和计算近似问(在当前点定义x),如何选择和修改信任区域N,以及如何准确求解信任域子问题。本节主要讨论无约束问题。后面的部分将讨论由于变量存在约束而引起的其他复杂性。
在标准信任域方法([48]),二阶近似问是由泰勒近似的前两项定义的F在x;附近N通常为球形或椭球形。在数学上,信任域子问题是典型的表述
(2)
在哪里g是的梯度f在目前的情况下x,H为Hessian矩阵(二阶导数的对称矩阵),D为对角比例矩阵,Δ为正标量,‖。‖是2-norm。好的算法是用来求解的方程2(见[48]);的所有特征值的计算H牛顿过程应用于特征方程
这种算法提供了一个精确的解决方案方程2.然而,它们需要的时间与的若干因式分解成正比H.因此,对于信任域问题,需要一种不同的方法。几种近似和启发式策略,基于方程2,已在文献([42]而且[50]).最优化工具箱求解器所遵循的近似方法是将信任域子问题限制在二维子空间中年代([39]而且[42]).一旦子空间年代算好了,功解出来了吗方程2即使需要完整的特征值/特征向量信息(因为在子空间中,问题只是二维的)也是微不足道的。现在主要的工作已经转移到子空间的确定上。
二维子空间年代是在一个预条件共轭梯度过程描述如下。解算器定义年代由。张成的线性空间年代1而且年代2,在那里年代1在梯度的方向上g,年代2要么是近似的牛顿方向,即解
(3)
或者一个方向负曲率,
(4)
这种选择背后的哲学年代是强迫全局收敛(通过最陡的下降方向或负曲率方向),实现快速的局部收敛(通过牛顿步长,当它存在时)。
利用信任域的思想,可以很容易地给出无约束最小化的草图:
表述二维信任域子问题。
解决方程2确定试验步骤年代.
如果<年代pan class="inlineequation">f(x+年代) <f(x),然后<年代pan class="inlineequation">x=x+年代.
Δ调整。
重复这四个步骤直到收敛。信任域维度Δ按照标准规则进行调整。特别是,如果不接受试验步骤,则会减少,即,<年代pan class="inlineequation">f(x+年代)≥f(x).看到[46]而且[49]关于这方面的讨论。
优化工具箱求解器处理一些重要的特殊情况f有专门的函数:非线性最小二乘,二次函数和线性最小二乘。然而,基本的算法思想与一般情况下是相同的。这些特殊情况将在后面的小节中讨论。
优化工具箱求解器中使用的许多方法都是基于<年代pan class="emphasis">信任区域, 为了理解信任域优化方法,考虑无约束最小化问题,最小化 当前点被更新为 定义特定信任区域方法的关键问题是最小化 在标准信任域方法( 在哪里
这种算法提供了一个精确的解决方案 二维子空间 或者一个方向 这种选择背后的哲学 利用信任域的思想,可以很容易地给出无约束最小化的草图: 表述二维信任域子问题。 解决 如果<年代pan class="inlineequation">f Δ调整。 重复这四个步骤直到收敛。信任域维度Δ按照标准规则进行调整。特别是,如果不接受试验步骤,则会减少,即,<年代pan class="inlineequation">f 优化工具箱求解器处理一些重要的特殊情况
(1)
(2)
(3)
(4)
大尺度非线性最小二乘
一个重要的特例f(x)是非线性最小二乘问题
(5)
在哪里F(x)是一个带分量的向量值函数我的F(x) =f<年代乌兰巴托>我(x).解决这一问题的基本方法与文中所述的一般情况相同非线性极小化的信赖域方法.然而,利用非线性最小二乘问题的结构来提高效率。特别是一个近似高斯-牛顿方向,即解年代来
(6)
(J的雅可比矩阵是多少F(x))用于帮助定义二维子空间年代.分量函数的二阶导数f<年代乌兰巴托>我(x)没有使用。
在每次迭代中,使用预条件共轭梯度方法近似求解法方程,即:
虽然正常的方程没有明确的形成。
一个重要的特例 在哪里 ( 在每次迭代中,使用预条件共轭梯度方法近似求解法方程,即:
虽然正常的方程没有明确的形成。
(5)
(6)
大尺度线性最小二乘
在这种情况下,函数f(x)有待解决的是
可能受线性约束。该算法生成严格可行的迭代,在极限下收敛到局部解。每次迭代都涉及到一个大型线性系统的近似解n,在那里n的长度x).迭代矩阵具有矩阵的结构C.特别地,利用预处理共轭梯度的方法近似求解正规方程,即:
虽然正常的方程没有明确的形成。
采用子空间信赖域方法确定搜索方向。然而,与在非线性最小化情况下将步骤(可能)限制为一个反射步骤不同,在每次迭代时进行分段反射线搜索,就像在二次迭代情况下一样。看到[45]如需查询详情,请在线查询。最终,线性系统代表了一种牛顿方法,在解处捕捉到一阶最优条件,导致强的局部收敛速度。
雅可比矩阵乘法函数。lsqlin
不使用矩阵能解决线性约束最小二乘问题吗C明确。相反,它使用雅可比矩阵乘法函数jmfun,
W = jmfun(动力系统,Y,标志)
你提供的。函数必须计算矩阵的下列乘积2022世界杯八强谁会赢?Y:
如果标志= = 0然后W = C ' * (C * Y).
如果国旗> 0然后W = C * Y.
如果国旗< 0然后W = C ' * Y.
这可能很有用,如果C是很大的,但包含足够的结构,您可以写jmfun没有形成C明确。示例请参见线性最小二乘的雅可比矩阵乘法.
在这种情况下,函数
可能受线性约束。该算法生成严格可行的迭代,在极限下收敛到局部解。每次迭代都涉及到一个大型线性系统的近似解
虽然正常的方程没有明确的形成。 采用子空间信赖域方法确定搜索方向。然而,与在非线性最小化情况下将步骤(可能)限制为一个反射步骤不同,在每次迭代时进行分段反射线搜索,就像在二次迭代情况下一样。看到 雅可比矩阵乘法函数。 你提供的。函数必须计算矩阵的下列乘积2022世界杯八强谁会赢? 如果 如果 如果 这可能很有用,如果lsqlin
不使用矩阵能解决线性约束最小二乘问题吗W = jmfun(动力系统,Y,标志)
Levenberg-Marquardt方法
最小二乘问题使一个函数最小化f(x)这是一个平方和。
(7)
这类问题出现在大量的实际应用中,特别是那些涉及模型函数与数据拟合的问题,如非线性参数估计。这种问题类型也出现在控制系统中,其目标是输出y(x t)来跟随一个连续的模型轨迹φ(t)向量x和标量t.这个问题可以表示为
(8)
在哪里y(x t),φ(t)是标量函数。
对积分进行离散以得到近似
(9)
在哪里t<年代乌兰巴托>我是等间距的。在这个问题中,向量F(x)是
在这类问题中,残差<年代pan class="inlineequation">为F(x为每在最优情况下可能很小,因为一般的做法是设定现实可行的目标轨迹。尽管你可以最小化函数方程7使用一种通用的、无约束的最小化技术,如无约束优化基础时,往往可以利用问题的某些特征来提高求解过程的迭代效率。的梯度和Hessian矩阵方程7有一个特殊的结构。
表示的米——- - - - - -n雅可比矩阵的F(x),J(x的梯度向量f(x),G(x的Hessian矩阵f(x),H(x)和各自的Hessian矩阵F<年代乌兰巴托>我(x),D<年代乌兰巴托>我(x),
(10)
在哪里
矩阵的一个性质问(x)是当残差<年代pan class="inlineequation">为F(x为每趋于0时x<年代乌兰巴托>k那么,接近解问(x)也趋向于零。所以,当<年代pan class="inlineequation">为F(x为每的解很小,一种有效的方法是利用高斯-牛顿方向作为优化过程的基础。
在每个主要迭代中k,高斯-牛顿法得到一个搜索方向d<年代乌兰巴托>k这是线性最小二乘问题的一个解
(11)
的项时,由该方法推导出的方向等价于牛顿方向<年代pan class="inlineequation">问(x) = 0.算法可以使用搜索方向d<年代乌兰巴托>k 作为行搜索策略保证功能的一部分f(x)在每次迭代中减少。
高斯-牛顿法在计算二阶项时经常遇到问题问(x)是不可忽视的。Levenberg-Marquardt方法克服了这个问题。
Levenberg-Marquardt方法(见[25]而且[27])使用的搜索方向是线性方程组的一个解
(12)
或者,选择性地,方程的
(13)
在标量λ<年代乌兰巴托>k的大小和方向d<年代乌兰巴托>k,诊断接头(A)表示对角线项的矩阵一个.设置选项ScaleProblem来“没有”选择方程12,或一组ScaleProblem来的雅可比矩阵选择方程13.
设置参数的初始值λ0使用InitDamping选择。偶尔,0.01该选项的默认值可能不合适。如果您发现Levenberg-Marquardt算法在初始阶段进展甚微,请尝试设置InitDamping与默认值不同的值,例如1 e2.
当λ<年代乌兰巴托>k方向是0吗d<年代乌兰巴托>k与高斯-牛顿法相同。作为λ<年代乌兰巴托>k趋于无穷,d<年代乌兰巴托>k趋向于最陡的下降方向,震级趋向于零。因此,对于一些足够大的λ<年代乌兰巴托>k,这个术语<年代pan class="inlineequation">F(x<年代乌兰巴托>k +d<年代乌兰巴托>k) <F(x<年代乌兰巴托>k)适用。因此,你可以控制这个项λ<年代乌兰巴托>k以保证算法在遇到二阶项时也能下降,这限制了高斯-牛顿方法的效率。当步骤成功时(给出一个较低的函数值),算法设置λk+1=λ<年代乌兰巴托>k / 10。当步骤不成功时,算法设置λk+1=λ<年代乌兰巴托>k * 10。
在内部,Levenberg-Marquardt算法使用的最优容忍(停止准则)1的军医乘以函数公差。
因此,Levenberg-Marquardt方法使用的搜索方向是高斯-牛顿方向和最陡下降方向之间的交叉。
Levenberg-Marquardt方法的另一个优点是当雅可比矩阵Jrank-deficient。在这种情况下,高斯-牛顿方法可能会有数值问题,因为最小问题方程11是不适定的。相比之下,Levenberg-Marquardt方法在每次迭代中都是满秩的,因此避免了这些问题。
下图显示了Levenberg-Marquardt方法在最小化Rosenbrock函数时的迭代,这是一个以最小二乘形式出现的非常困难的最小化问题。
Rosenbrock函数的Levenberg-Marquardt方法
有关此图的更完整的描述,包括生成迭代点的脚本,请参见香蕉函数最小化.
Levenberg-Marquardt方法中的约束
当问题包含约束条件时,lsqcurvefit而且lsqnonlin修改Levenberg-Marquardt迭代。如果提出迭代点x在边界之外,算法将步长投影到最近的可行点上。换句话说,与P定义为投影将不可行点投影到可行区域上,算法对提出的点进行修正x来
最小二乘问题使一个函数最小化 这类问题出现在大量的实际应用中,特别是那些涉及模型函数与数据拟合的问题,如非线性参数估计。这种问题类型也出现在控制系统中,其目标是输出 在哪里 对积分进行离散以得到近似 在哪里
在这类问题中,残差<年代pan class="inlineequation">为 表示的 在哪里
矩阵的一个性质 在每个主要迭代中 的项时,由该方法推导出的方向等价于牛顿方向<年代pan class="inlineequation">问 高斯-牛顿法在计算二阶项时经常遇到问题 Levenberg-Marquardt方法(见 或者,选择性地,方程的 在标量 设置参数的初始值 当 在内部,Levenberg-Marquardt算法使用的最优容忍(停止准则) 因此,Levenberg-Marquardt方法使用的搜索方向是高斯-牛顿方向和最陡下降方向之间的交叉。 Levenberg-Marquardt方法的另一个优点是当雅可比矩阵 下图显示了Levenberg-Marquardt方法在最小化Rosenbrock函数时的迭代,这是一个以最小二乘形式出现的非常困难的最小化问题。 Rosenbrock函数的Levenberg-Marquardt方法 有关此图的更完整的描述,包括生成迭代点的脚本,请参见 当问题包含约束条件时,
(7)
(8)
(9)
(10)
(11)
(12)
(13)
Levenberg-Marquardt方法中的约束