最优化选择法数学原理

如题所述

2.2.1 目标函数

设观测异常以ΔZk表示,k为观测点序号,k=1,2,…,m,m为观测点数。

设所选用的地质体模型的理论异常以 Z 表示,Z 是模型体参量和观测点坐标的函数,即

Z=f(xk,yk,zk,b1,b2,…,bn

式中:xk,yk,zk为观测点的坐标;b1,b2,…,bn为模型体的参量,如空间位置、产状、物性等,参量的个数为n。

模型体的初始参量用

,…,

表示。

理论曲线与实测曲线之间的符合程度,是以各测点上理论异常与实测异常之差的平方和(即偏差平方和)来衡量的,用φ表示,即

地球物理数据处理教程

目的在于求得一组关于模型体参量的修改量δ1,δ2,…,δn,来修改模型体给定的初值参量,即

地球物理数据处理教程

于是求出关于模型体参量的一组新值,而由这组新参量形成的模型体的理论异常与实测异常之间的偏差平方和将取极小,即是

地球物理数据处理教程

代入式(2.2.1)中将使φ值获得极小,这时bi即为我们的解释结果,这称为最小二乘意义下的最优化选择法。

我们称φ为目标函数,用它来衡量理论曲线与实测曲线的符合程度。最优化方法的关键在于求取使φ值获得极小参量的改正值δi,而f通常是bi的非线性函数,因而该问题归结为非线性函数极小的问题。

2.2.2 求非线性函数极小的迭代过程

从上已知f为bi的非线性函数,那么要求它与实测值之间的偏差平方和φ为极小的问题就称为非线性极小问题,或称为非线性参数的估计问题。如果是线性问题,参数估计比较简单,通常进行一次计算即可求出参数的真值,而对非线性问题,参数估计却要复杂得多,为了求解,通常将函数在参数初值邻域内展成线性(忽略高次项),即所谓的线性化,然后再求得改正量δi(i=1,2,…,n),由于这是一种近似方法,因而不可能使φ一次达到极小,而需要一个迭代过程,通过反复计算而逐步逼近函数φ的极小值。

图2.1 不同埋深时的重力异常

为了说明这个求极小的迭代过程,可以举一个单参量的例子,即假如我们要确定引起重力异常Δgk的场源地质体的深度,假设场源为一个已知体积和密度的球体模型,如图2.1所示,那么φ就是球心埋深z的函数,如果球心埋深的真值为h,我们首先取初值为z(0),这时函数

地球物理数据处理教程

式中:Δgk为实测异常;g(z)是球心埋深为z的理论重力异常;φ随z的变化情况示于图2.2 中,要求使φ获极小的z,即要求使

地球物理数据处理教程

的根。由于z(0)和φ(z(0))不能一次求出φ的极小来,通常采用迭代的办法,如图2.3所示,例如用牛顿切线法迭代求根,根据下式

地球物理数据处理教程

得到一个更近似于根的值z(1),但不等于h,因此需进一步再用上式,将z(1)作为新的初值z(0),可得到新的z(1)更接近于h,如此反复下去可以使z值无限接近于h,当满足精度要求时,我们认为它近似等于h了,停止迭代,这时的z(1)就作为h值。

图2.2 函数φ(z)随z变化示意图

图2.3 用牛顿切线法求φ′(z)=0的根示意图

2.2.3 单参量非线性函数的极小问题

单参量不仅是讨论多参量的基础,而且往往在求多参量极小时要直接用到单参量极小的方法,因此有必要作一介绍。

求单参量极小的方法很多,上面用到的牛顿切线法就是其中之一,在此我们介绍一种用得较多的函数拟合法,以及精度较高的DSC-Powell方法。

2.2.3.1 函数拟合法

2.2.3.1.1 二次函数拟合法

A.不计算导数的情况

设取三个参量值x1、x2、x3,它们对应的φ 值就应为φ1、φ2、φ3,过三个点(x1,φ1;x2,φ2;x3,φ3)作二次抛物线,应有下式

地球物理数据处理教程

联立φ1、φ2、φ3的方程式,即可得出系数A、B、C来。

当A>0时,应有极小点存在,我们设极小点为d,那么根据极小的必要条件有

地球物理数据处理教程

将A、B的表达式代入即得

地球物理数据处理教程

当x1、x2、x3为等距的三点时,上式可简化为

地球物理数据处理教程

B.计算导数的情况

设已知两个点的参量值x1和x2对应的函数值φ1、φ2,并已求得x1点的一阶导数值φ′(x1),可用下列方法求极小点d:

地球物理数据处理教程

联立φ1、φ2、φ′(x1)三个方程即可得A、B、C,代入极小点的表达式即可求得极小点。

为了简化起见,不妨设x1为坐标原点(即x1=0),设x2=1,于是上面各式简化成:

φ′(x1)=B

φ1=C

φ2=A+B+C

A=φ2-φ′(x1)-φ1

地球物理数据处理教程

2.2.3.1.2 三次函数拟合法

取两个点的参量值x1和x2,及相应的φ1和φ2值,并已得到该两点的一阶导数值φ′(x1)和φ′(x2),我们选用一个三次多项式

φ=Ax3+Bx2+Cx+D

代入上面给出的4个条件,同样,为了简化起见,不妨设x1为坐标原点(即x1=0),设x2=1,则有

φ1=D

φ2=A+B+C+D

φ′(x1)=C

φ′(x2)=3A+2B+C

联立求解,可定出4个系数A、B、C、D,按照求极小的必要条件

φ′=3Ax2+2Bx+C=0

当二阶导数

φ″=6Ax+2B>0

时有极小存在,极小点d就为

地球物理数据处理教程

为了计算方便,令

v=φ′(x1

u=φ′(x2

S=-3(φ12)=3(A+B+C)

Z=s-u-v=B+C

W2=Z2-vu=B2-3AC

于是极小点d就可用下列形式表示:

地球物理数据处理教程

2.2.3.2 DSC-Powell 法

该法为比较细致的单参量探测法,精度比较高,计算工作量较大,大致可分为两部分来完成,其探测(迭代)过程如图2.4所示。

2.2.3.2.1 确定极小值所在的区间

采用的是一种直接探测法,做法可归纳如下。

第一步:给定探测方向x、初值点x0和初始步长Δx,计算φ(x0)和φ(x0+Δx),若φ(x0+Δx)≤φ(x0),转向第二步;若φ(x0+Δx)>φ(x0),则取-Δx为步长Δx,转向第二步。

第二步:计算xk+1=xk+Δx,计算φ(xk+1)。

第三步:如果φ(xk+1)≤φ(xk),以2Δx为新步长代替Δx,且用k代表k+1,转向第二步。

如果φ(xk+1)>φ(xk),则以xm表示xk+1,以xm-1表示xk,将上步的xk作为xm-2,并计算

地球物理数据处理教程

第四步:在4个等距点(xm-2、xm-1、xm+1、xm)中,去掉四点中离φ(x)最小点最远的那一点,即或是xm,或是xm-2,剩下的三点按顺序以xα、xb、xc表示,其中xb为中点,那么(xα,xc)区间即为极小值所在的区间。

2.2.3.2.2 用二次函数拟合法求极小点

将上面已确定的等距的 xα、xb、xc三点及 φ 值,用二次函数拟合法即用公式(2.2.3)求得极小点,令为x*点。再将xα、xb、xc、x*四点中舍去φ值最大的点,剩下的点重新令为α、b、c,则又得三点和它们相应的φ值,用公式(2.2.2)求其极小点x*,如此反复使用公式(2.2.2),逐步缩小极小值的区间,一直到两次求得的极小点位置差小于事先给定的精度为止,x*点即为极小点。

图2.4 DSC-Powell法示意图

2.2.4 广义最小二乘法(Gauss 法)

重磁反问题中的最优化方法,一般是指多参量的非线性最优估计问题,理论模型异常z=f(

,b1,b2,…,bn)是参数bi(i=1,2,3,…,n)的非线性函数,其中

=(x,y,z)为测点的坐标。由前已知ΔZk(k=1,2,…,m)表示在第k个观测点

上的实测异常,现在要寻求与观测异常相对应的理论模型的参量值bi(i=1,2,…,n),使理论异常与实测异常的偏差平方和

地球物理数据处理教程

为极小。

设bi的初值为

,则上述问题,即是要求修正量δi,使

地球物理数据处理教程

代入φ中,使φ获得极小。

高斯提出了首先将f函数线性化的近似迭代方法,即将f在

处按台劳级数展开取其线性项。

地球物理数据处理教程

式中

地球物理数据处理教程

给出后,

均可直接计算出来。将台劳展开式代入式(2.2.6)中,目标函数φ为

地球物理数据处理教程

要求

使φ取得极小,根据极小的必要条件

地球物理数据处理教程

将上式化为

地球物理数据处理教程

写成方程组形式

地球物理数据处理教程

式中:

(i,j=1,2,…,n)

再写成矩阵形式,有

地球物理数据处理教程

地球物理数据处理教程

其中

A=PTP

地球物理数据处理教程

式中:P称为雅可比(Jacobi)矩阵,是理论模型函数对参量的一阶导数矩阵。A为正定对称矩阵,实际计算时,当实测异常值已给出,模型体的初值

已选定后,A和

即可计算出,求解方程(2.2.7)即可求出

,从而可得

上面推导出的方程(2.2.7)是将f线性化所得,因而只有当f为真正的线性函数时,

才是真正的极小点

,即一步到达极小;当f为非线性函数时,台劳式线性化仅为近似式,近似程序视

的大小而定,当|δi|较大时,二次以上项忽略的误差就大,反之就小,所以对于非线性函数

不能简单地作为极小点

,一般将

作为新的初值

再重复上述做法,再解方程(2.2.7)又得到新的

,反复迭代下去,直到满足精度要求为止(例如|δi|小到允许误差)。

在高斯法应用中常常出现一种困难,即迭代过程不稳定,当

过大时,台劳展开的高次项太大而不能忽略时,就可能发生这样的情况,即用方程(2.2.7)求得的解,得到的参量

所对应的φ值大于

所对应的φ值,那么它将不能稳定地收敛于φ的极小值,即是出现了发散的情况,一般说来当f非线性程度越明显时,越易出现发散的情况。

因此高斯法的一种改进形式如下,即不直接把

作为校正值,而将它作为校正方向,记为

,而在该方向上用单变量求极小的方法寻找在这个方向上的极小点,即寻找一个α,使目标函数φ(

)为极小,取

作为新的初值,再继续迭代(0<α<1)。

把这个改进的方法称为广义最小二乘法,它使迭代过程的稳定性有所改善,即使这样当初值取得不好时,也有可能出现不收敛。

2.2.5 最速下降法

从前述已知,我们的目的是要求目标函数的极小,高斯法是利用将f函数线性化,建立一个正规方程(2.2.7)来求取修正量的,最速下降法是另一类型方法,它直接寻找φ函数的下降方向来求取修正量,所以它又称为直接法,而高斯法又称为间接法。

从目标函数φ出发来寻找其下降方向

地球物理数据处理教程

始终是大于或等于0,因此它一定有极小存在,我们首先考虑初值点

的一个邻域内,将φ在

处台劳展开取至线性项,有

地球物理数据处理教程

希望寻找使Φ下降的方向,即要找新点

,使φ(

)<φ(

即要求φ(

)-φ(

)>0,

且越大越好,那么可得

地球物理数据处理教程

地球物理数据处理教程

式中

表示φ函数对

的各分量的导数所组成的向量,即梯度向量。

要使上式取极大,有

地球物理数据处理教程

上式说明了φ值下降最快的方向

,应该是与梯度方向

相反的方向,即负梯度方向,那么修正量就应在负梯度方向上来求取。下面讨论从

出发,沿负梯度方向上求取极小点的方法,除了用前面介绍过的方法外,在此再介绍一种近似计算方法。

要求从

出发,沿-

方向的极小点,即要求λ使φ

为-

方向上极小点。根据极小必要条件,有

地球物理数据处理教程

如果φ为二次函数时,λ可以直接解出,在重磁反问题中φ为非二次函数,且函数形式较复杂,一般无法直接解出λ,而采用近似法,先将φ(

)台劳展开,取至线性项,即

地球物理数据处理教程

假设粗略认为φ的极小值为零,则极小点的λ应有

地球物理数据处理教程

这个方法计算简单,但误差较大,特别是

远离真正极小点

时,φ值较大,上式的假设不适合,当接近真极小点

附近时,可以采用。但在重磁反问题中,由于实测值Zk中含有干扰成分,所以即使到了

附近,φ值仍不会为零,因而上述计算λ的方法不能直接采用,可将上述计算的λ作为一个区间估计值,再用其他方法计算[0,λ]之间真正的λ值。

从上所述可将最速下降法叙述如下:从初值

出发,沿着φ(

)的负梯度方向-

)寻找极小点

,然后又从

出发,沿着φ(

)的负梯度方向-

)寻找极小点

,一直迭代下去,直到找到

为止。

由于这个方法是沿着初值点的最快下降方向,在该方向上如果采用单方向求极小的方法得到该方向上的极小点,那么又称“最优”、“最速”下降法。但需要指出的是,所谓“最速”是就初值点的邻域而言,所谓“最优”是指在初值点的负梯度方向上,所以它的着眼点是就局部而言,就初值点邻域而言,而对整体往往是既非“最优”,又非“最速”,而是一条曲折的弯路,难怪有人称它为“瞎子下山法”,如图2.5所示,当φ的等值面为拉长的椭球时更是如此。但它有一个十分可贵的优点,即在迭代的每一步都保证φ值下降,所以它是稳定收敛的,在φ函数复杂时,计算工作量较大些,对于大型计算机比较适用。

图2.5 最速下降法迭代过程示意图

图2.6 修正量的方向

2.2.6 阻尼最小二乘法(Marguardt)

比较上述两种方法可知,Gauss法修正量的步长大,当φ近于二次函数,可以很快收敛,但当φ为非二次函数,初值又给得不好时,常常引起发散。而最速下降法却能保证稳定的收敛,但修正量的步长小,计算工作量大。当φ的等值面为拉长的椭球时,Gauss法的修正量

和最速下降法的修正量

之间的夹角γ可达80°~90°,如图2.6所示。

对于φ为二次函数的情况下,高斯法的修正量

方向是指向φ的极小点,而最速下降法修正量

的方向是垂直于通过

点的φ函数等值面的切平面。因而当φ为比较复杂的函数时,有可能使

出现发散而失败。

阻尼最小二乘法是在Gauss法和最速下降法之间取某种插值,它力图能以最大步长前进,同时又能紧靠负梯度方向,这样既能保证收敛又能加快速度。它的基本思想是:在迭代过程的每一步,最好尽量使用Gauss法修正量方向

,以使修正步长尽可能地增大,如当这种情况下不能收敛时,再逐步改用接近最速下降的方向

,同时缩小步长,以保证收敛,下面以

表示由阻尼最小二乘法得出的修正量。

实现上述思想只要将方程

地球物理数据处理教程

改变为

地球物理数据处理教程

就能实现了。式中

为我们所要求的修正量,即称Marguardt修正向量,I为单位矩阵,λ是用来控制修正方向和步长的任意正数,又称阻尼因子,它起到阻止发散的作用,方程(2.2.9)中

显然是λ的函数,即

地球物理数据处理教程

通过这一改变后,即原来的正规方程(2.2.7)系数矩阵的主对角线上加一正数,从而使条件数得到了改善。如果原来A是奇异的,而A+λI可成为正定的,设原来A的最大特征值和最小特征值为μmax和μmin,则条件数就发生了如下变化:

地球物理数据处理教程

使病态条件数改善,对于计算来说,是十分有利的。

从方程(2.2.7)可看出,右端项为

地球物理数据处理教程

而φ的负梯度向量

的第i个分量

地球物理数据处理教程

所以

,即方程(2.2.7)、(2.2.9)的右端项

的方向即为负梯度方向,值为负梯度值的一半。

在方程(2.2.9)中,当λ=0时,即是(2.2.7)方程,这时

就是

;当λ→∞时,δ0

,而

是负梯度方向,这时

就是最速下降方向,所以阻尼最小二乘法的修正量

,是最速下降修正量

和Gauss法修正量

之间的某种插值,λ就是这种插值的权系数。

Marguardt向量

具有以下三个特性:

(1)当λ越来越大时,

的长度越来越小,且

地球物理数据处理教程

‖表示

向量的范数,也即是它的长度。

(2)当λ由零逐渐增大时,

的方向逐渐由Gauss法的方向

转向最速下降法方向

,λ越大,

方向越接近

方向。

(3)对λ>0的任意正数,

(满足方程(2.2.9))使φ在半径为‖

‖的球面上取得极小。

图2.7Δ0(λ)随λ的变化情况示意图

以上三个性质说明,当λ逐渐增大时,

的方向由

靠近,它的大小‖

‖逐渐减小,λ→∞时,‖

‖→0,如图2.7所示。因此在迭代的任何一步,我们总可以找到充分大的λ,来保证稳定的收敛,因为当φ 不下降时,就加大λ向

靠,一直到使φ下降为止,从而保证收敛。性质(3)说明在跨出同样的步长时,以

(λ)方向最好,这就保证了该法的优越性。在实际计算时,总是在保证收敛的前提下,取较小的λ,以获得较大的步长前进。

下面介绍阻尼最小二乘法的迭代步骤,即实际计算过程。

(1)给出模型体参量初值

,计算φ(

);给出实测场值ΔZk(k=1,2,…,m);给出阻尼因子的初值λ(0)及改变λ的比例系数v。

(2)开始迭代,λ=λ(0)/v

(3)计算A,(A+λI)及右端项

在初值点

的值,得方程(2.2.9),(A+λI)

的系数矩阵及右端项。

(4)求解方程(2.2.9)得

(5)计算

及φ(

)。

(6)比较φ(

)和φ(

)。

若φ(

)<φ(

),则该次迭代成功。判断

是否满足精度要求,若满足停止迭代,这时的

即为极小点

;若不满足精度要求,则将

作为新

,φ(

)作为新φ(

),减小λ作为新的λ(0),转向第(2)步,继续迭代下去。

若φ(

)>φ(

),则该次迭代失败,增大阻尼因子λ,将λ·v作为新的λ,转向第(4)步,即重新求解(A+λI)

方程,重新得到新的

该方法中阻尼因子λ的选择十分重要,上述选法是一种简单可行的方法,还有很多不同的选择方法,可参阅有关的书籍。

温馨提示:答案为网友推荐,仅供参考
相似回答