Loading web-font TeX/Math/Italic

矩阵学习-QR分解和最小二乘问题求解

QR分解为矩阵分解的一种,在解决矩阵特征值计算和最小二乘问题中有很大的作用。

QR分解定理: 任意的一个满秩实(复)矩阵A,都可唯一的分解为A=QR,其中Q为正交矩阵,R为正对角元的上三角矩阵

{QQT=IR={a10a200a3000an}

这里介绍一下基于HouseHolder变换的QR分解方法

1. HouseHolder变换介绍

HouseHolder变换可用于QR分解中,又称为反射变换或者为镜像变换,有明确的几何意义。
R3实数三维空间中,给定一个向量α, 向量βα关于以ω为法向量的平面π的反射变换所得。
有如下公式

ω=αβ||αβ||2R3

H(ω)=I2ωωT

则有 H(ω)α=β
即:该变换将向量α变成了以ω为法向量的平面π的对称向量β

H矩阵有如下性质

  • Hermite矩阵:HT=H
  • 酉矩阵:HTH=IH=(HT)1
  • 对合矩阵:HH=I
  • 自逆矩阵:H=H1
  • diag(I,H)也是HouseHolder矩阵
  • det(H)=1

证明:略 _

推论:

  • 对于任意的在复数空间的向量 xCn,存在HouseHolder矩阵H,使得Hx=ae1,其中|a|=x2,axTe为实数。
  • 对于任意的在实数空间的向量 xRn,存在HouseHolder矩阵H(ω)=I2uuT,(uRn,uTu=1),使得Hx=ae1,其中|a|=x2

因此表明,HouseHolder变换可以将任意的向量xRn转换为与基向量e平行的共线向量

2. 利用HouseHolder变换的QR分解

此处介绍基于HouseHolder变换将矩阵进行QR分解,即A=QR

第1步

设有按列分块的矩阵A=(α1,α2...αn)

ω1=α1a1e1||α1a1e1||2a1=||α1||2

H1=I2ω1ωT1

得到

H1A=(H1α1,H1α2...H1αn)={a10B10}

第2步

从第一部得到矩阵B1=(β2,β2,,βn)Rn1


ω2=β2b2e1||β2b2e1||2b1=||β2||2

^H2=I2ω2ωT2,H2={10T0^H2}

得到

H2(H1A)={a10a200C200},C2Rn2

依次类推,进行第n步时,得到第n-1Hn1阵,使得

Hn1H2H1A={a10a200a3000an}=R

其中 Hn1H2H1A=H也为HouseHolder矩阵,也为自逆矩阵 H=H1

Hn1H2H1A=R

(Hn1H2H1)1Hn1H2H1A=(Hn1H2H1)1R

A=H11H1n1R

A=H1Hn1R

得到 A=QR,其中Q为正交矩阵,R为上三角矩阵

{Q=H1Hn1R=Q1A=QA

3. 最小二乘问题

最小二乘问题为最优化问题的一种,一般形式为

minx||f(x)||2

其中f(x)为残差函数,表示预测值和测量值之差,||f(x)||2为损失函数

3.1线性最小二乘问题

f(x)=Axb为线性方程时,线性最小二乘问题为

minx||Axb||2

展开有

h(x)=||Axb||2=(Axb)T(Axb)

h(x)=(Ax)T(Ax)bTAx(Ax)Tb+bTb

求导有

h(x)x=ATAxATb

当导数为0时,得到损失函数值为最小值,因此

ATAx=ATbx=(ATA)1ATb

3.2采用QR分解求解线性最小二乘问题

上述说明得到线性最小二乘问题minx||Axb||2的解为x=(ATA)1ATb

但是这里由于要求矩阵倒数,计算上存在一定困难,这里如果采用QR分解可以使得问题简单很多。

首先对A进行QR分解,即A=QR,其中QQT=I,R为上三角矩阵

x=(ATA)1ATb

(QR)T(QR)x=(QR)Tb

RTQTQRx=RTQTb

Rx=QTb

x=R1Qb

其中 R为上三角矩阵,求逆相对容易很多,规避了直接对(ATA)1求逆复杂度高的问题。

3.3非线性最小二乘问题

f(x)为非线性方程时,最小二乘问题为minx||f(x)||2

一般来说求解非线性最小二乘问题有高斯牛顿法Levenberg-Marquardt法,高斯牛顿法存在H不是正定矩阵时,迭代结果不收敛或者不准确的情况,因此LM算法表现较好。但这个先介绍下高斯牛顿法
设状态向量x=(x1,x2,,xm)

f(x)={f1(x)f2(x)fn(x)

一阶Tayor展开

f(x+Δx)=f(x)+J(x)Δx

其中 J(x)为Jacobian矩阵,表示为

J(x)nm={f1(x1)xf1(x2)xf1(xm)xf2(x1)xf2(x2)xf2(xm)xfn(x1)xfn(x2)xfn(xm)x}

求解
minx||f(x)||2minx||f(x)+J(x)Δx||2,
类比线性最小二乘的方法

Δx=(J(x)TJ(x))1J(x)Tf(x)

迭代 xk+1=xk+Δx,直到收敛为止,即可求出最优解x

这里同样可以采用QR分解来求解Δx

设QR分解得到 J(xk)=Q(xk)R(xk),类比线性最小二乘方法,Δx=R(xk)1Q(xk)f(xk)

因此非线性最小二乘问题迭代求解

{xk+1=xk+ΔxΔx=R(xk)1Q(xk)f(xk)

posted @   caimagic  阅读(7312)  评论(1编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示