当前位置:文档之家› 递推最小二乘法

递推最小二乘法

线性方程组的最优求解方法一.递推最小二乘法设线性方程组b Ax = (1)则有k b k =x :A ),(, (n k Λ,2,1=) (2)其中,[]kn k k a a a k ,,,:),(21Λ=A ,[]Tn x x x ,,,21Λ=x 。

设x :A ),()(k k f = (3)下面采用基于递推最小二乘法(RLS)的神经网络算法来训练权值向量x ,以获得线性方程组(1)的解x 。

由式(3)可知,若以)(k f 为神经网络输出,以k b 为神经网络训练样本,以x 为神经网络权值向量,[]kn k k a a a k ,,,:),(21Λ=A 为神经网络输入向量,则解线性方程组的神经网络模型如同1所示。

图1 神经网络模型采用RLS 算法训练神经网络权值向量x ,其算法如下: (1)神经网络输出:x :A ),()(k k f = (4)(2)误差函数:)()(k f b k e k -= (5)(3)性能指标:∑==n k k e J 12)(21 (6)(4)使min =J 的权值向量x ,即为所求的神经网络权值向量x ,这是一个多变量线性优化问题,为此,由0=∂∂xJ可得最小二乘递推法(RLS ):]),([1k k k k k k b x :A Q x x -+=+ (7)),(),(1),(:A P :A :A P Q k k k T k T k k+= (8)k k k k P :A Q I P )],([1-=+ (9)()n k ,,2,1Λ=随机产生初始权值向量)1,(0n rand =x ,设nn ⨯∈=R I P α0(α是足够大的正数(一般取10610~10=α),nn ⨯∈R I 是单位矩阵),通过对样本数据训练,即可获得神经网络权值向量x ,此即为线性方程组(1)的解。

二.具有遗忘因子的递推最小二乘估计公式为:]),([1k k k k k k b x :A Q x x -+=+ (10)),(),(),(:A P :A :A P Q k k k Tk T k k+=λ (11) k k k k P :A Q I P )],([11-=+λ(12)式中,1:)],(:),([)(-=k A k A k TW P ,W 为加权对角阵:⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=--10021λλλOn n W(nn ⨯∈=R I P α0,10610~10=α)。

几点说明:(1) 当1=λ时,该估计公式组为基本递推最小二乘算法; (2)λ的选择范围一般在:99.095.0≤≤λ。

当参数变化快时,λ取小点;变化慢时,取大点;三.共轭梯度法及其应用设线性方程组b Ax =,则有给定初始近似0x ,取000Ax b r p -=-= 对Λ,2,1,0=k 计算:kTk kT k k Ap p p r -=α k k k k p x x α+=+1k k k k k Ap r b Ax r α+=-=++11,且b Ax r -=k kkTk kT k k Ap p Ap r 1+=β k k k k p r p β+-=++11。

几点说明:1. 应用共轭梯度法求解实对称正定线性方程组,不必事先估计方程组的系数矩阵A 的特征值的上、下界,不需要选取任何迭代参数,使用方便。

而且,它的收敛速度较快,对于非坏条件问题,一般来说,所需的迭代次数远小于矩阵A 的阶数n (如果计算过程中没有舍入误差,理论上,最多迭代n 步便可得到方程组的准确解。

如果矩阵A 只有)(n m ≤个相异的特征值,则共轭梯度法至多进行m 步迭代,便可得到方程组的准确解)。

因此,共轭梯度法目前已得到较为普遍应用。

特别对于解大型稀疏矩阵的线性方程组,它是一个有效的方法。

2. 共轭梯度法适用于A 为对称正定矩阵的情形。

对于A 为非对称矩阵的情形,可将线性方程组b AX =化为b A AX A TT=,此时,设A 为非奇异,则A A T 为对称正定矩阵。

【应用实例】用共轭梯度法对信号进行滤波处理,模型如下∑∑-=>=<⎥⎦⎤⎢⎣⎡⎪⎭⎫ ⎝⎛+⎪⎭⎫ ⎝⎛+==2/)1(102sin 2cos )(2N n n nN n nkn nk N b nk N a F eF k f Nπππ,1,,1,0-=N k K . 其中,2221nn n b a F +=。

与DTFT 的区别:∑>=<-=.2)(1N k nk n Nek f NF π。

3. 当矩阵A 的条件数较大时,各种计算方法的收敛速度都会很慢。

因为求解线性方程组b AX =的收敛速度通常与矩阵A 的条件数有关,即:br A x x x )(**cond ≤-,其中x 是近似解,*x 是精确解,b Ax r -=是剩余向量。

特别是当矩阵A 的条件数很大时(很怀条件),却会发生这样的情况:相当精确的解,其剩余向量并不小;不精确的解,反而其剩余向量却很小。

由此可见,对于很坏条件线性方程组而言,从剩余向量的大小不能说明相应的近似解精确与否。

为此,国外学者提出了改善矩阵条件数的方法。

四.改善矩阵A 条件数的方法4.1 条件预优方法设线性方程组b Ax = (13)的系数矩阵A 是对称正定的。

将线性方程组b Ax =化为等价的方程组:b y Aˆˆ= (14) 其中Cx y = (15)Aˆ和C 仍然是对称正定的,但条件数不大。

这样就很容易由共轭梯度法求解线性方程组(14)和(15),这就是条件预优处理的思想。

怎样确定对称正定矩阵Aˆ、C 和b ˆ?方法如下: 我们将矩阵A 分裂成:R Q A -=,其中,Q (条件预优矩阵)为对称正定矩阵,则存在对称正定矩阵C 使得CC Q = (16)用1-C 左乘方程组(13)的两端得b C Ax C 11--=或写成b C Cx AC C 111---=设11ˆ--=AC C A,b C b 1ˆ-= (17) 则b y Aˆˆ= (18)Cx y = (19)我们可以用共轭梯度法求解线性方程组(18),得到y ,然后解方程组(19)即可得到方程组(13)的解x 。

条件预优共轭梯度算法如下:b Ax r -=00,010r Q z -=,00z p -=kTk kT k k Ap p z r =α k k k k p x x α+=+1k k k k Ap r r α+=+1,且b Ax r -=k k 111+-+=k k r Q zkTk k T k k z r z r 11++=β k k k k p z p β+-=++11。

上述算法的关键问题是如何确定对称正定矩阵Q ?主要方法如下: (1) 方法一T )()(1L D D L D Q ωω++=- (20)其中),,,(2211nn a a a diag Λ=D (对角矩阵),10<<ω,⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=-000000001,2121n n n n a a a a ΛΛΛΛΛΛΛΛL (准下三角矩阵) 设2/12/1-+=LD D E ω (21)则T E E Q = (22)因此,Q 是对称正定矩阵。

可用上述条件预优共轭梯度算法求解x 。

此外,设T --=AE E A1ˆ (23) 则Aˆ为对称正定矩阵,且方程组(13)化为 b y Aˆˆ= (24) x E y T = (25)其中,b E b1ˆ-=。

特别说明:与对称正定矩阵C 不同的是,矩阵E 不一定是对称正定矩阵。

用常规共轭梯度算法求解方程组(24)得到y ,然后用RLS 算法求解方程组(25)可得x 。

或将方程组(25)化为等价的方程组:x E E E y T = (26)设Ey y=ˆ,TE EE =ˆ,则有 x E yˆˆ= (27) 因为TEEE =ˆ是对称正定矩阵,因此可用常规共轭梯度算法求解方程组(27)得到x 。

(2) 方法二另一种条件预优处理是1977年J.A.Meijerink 和A.Van Der Vorst 提出的不完全的Cholesky 分解的方法。

将矩阵A 分解为R LL A +=T其中,L 是下三角阵,使TLL 尽可能接近A ,且L 保持跟A 一样的稀疏性或具有其它形状的稀疏性。

⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=nn n n n l l l l l l l l l l ΛΛM M M 3213332312221110000000000L 完全分解是对矩阵A 进行三角分解:T LL A =;不完全分解是对矩阵R A -进行三角分解T LL 。

由于矩阵R 可以变化,因此,L 的稀疏结构可以预先适当控制,即L 中哪些元素为0,可以预先规定,但也不能任意规定,还要考虑到T LL 接近A 。

在实际计算中,常考虑使R 有较多零元素。

设TLL Q =,则Q 为对称正定矩阵,可用上述条件预优共轭梯度算法求解x 。

此外,设T --=AL L A1ˆ (28) 则Aˆ为对称正定矩阵,且方程组(13)化为 b y Aˆˆ= (29) x L y T = (30)其中,b L b1ˆ-=。

特别说明:与对称正定矩阵C 不同的是,矩阵L 不是对称正定矩阵。

用常规共轭梯度算法求解方程组(29)得到y ,然后用RLS 算法求解方程组(30)可得x 。

或将方程组(30)化为等价的方程组:x LL Ly T = (31)设Ly y=ˆ,TLL L =ˆ,则有 x L yˆˆ= (32) 因为TLL L=ˆ是对称正定矩阵,因此可用常规共轭梯度算法求解方程组(27)得到x 。

4.2 残差校正方法求解线性方程组b Ax =其中,矩阵A 的条件数较大但不是很大。

设精确解为*x 。

算法步骤如下: Step1. 求解b Ax =(用共轭梯度法等),得到近似解1x ; Step2. 校正1x :计算剩余向量:11Ax b r -=,解11r x A =∆(用用共轭梯度法等),得到近似解1x ∆。

校正:112x x x ∆+=;Step3. 计算剩余向量:22Ax b r -=,解22r x A =∆,得到近似解2x ∆。

校正:223x x x ∆+=; ……综上所述,给定近似解k x ,计算剩余向量:k k Ax b r -=,解k k r x A =∆,得到近似解k x ∆,校正:k k k x x x ∆+=+1,(k=1,2,……,M),其中M 是最大迭代数。

相关主题