矩阵学习-QR分解和最小二乘问题求解
QR分解为矩阵分解的一种,在解决矩阵特征值计算和最小二乘问题中有很大的作用。
QR分解定理: 任意的一个满秩实(复)矩阵A,都可唯一的分解为A=QR,其中Q为正交矩阵,R为正对角元的上三角矩阵
这里介绍一下基于HouseHolder变换的QR分解方法
1. HouseHolder变换介绍
HouseHolder变换可用于QR分解中,又称为反射变换或者为镜像变换,有明确的几何意义。
在R3实数三维空间中,给定一个向量α, 向量β为α关于以ω为法向量的平面π的反射变换所得。
有如下公式
则有 H(ω)α=β
即:该变换将向量α变成了以ω为法向量的平面π的对称向量β
H矩阵有如下性质
- Hermite矩阵:HT=H
- 酉矩阵:HT∗H=I,H=(HT)−1
- 对合矩阵:H∗H=I
- 自逆矩阵:H=H−1
- diag(I,H)也是HouseHolder矩阵
- det(H)=−1
证明:略 _
推论:
- 对于任意的在复数空间的向量 x∈Cn,存在HouseHolder矩阵H,使得Hx=ae1,其中|a|=‖x‖2,axTe为实数。
- 对于任意的在实数空间的向量 x∈Rn,存在HouseHolder矩阵H(ω)=I−2uuT,(u∈Rn,uTu=1),使得Hx=ae1,其中|a|=‖x‖2
因此表明,HouseHolder变换可以将任意的向量x∈Rn转换为与基向量e平行的共线向量
2. 利用HouseHolder变换的QR分解
此处介绍基于HouseHolder变换将矩阵进行QR分解,即A=QR
第1步
设有按列分块的矩阵A=(α1,α2...αn)
取
ω1=α1−a1∗e1||α1−a1∗e1||2,a1=||α1||2
H1=I−2∗ω1∗ωT1
得到
第2步
从第一部得到矩阵B1=(β2,β2,⋯,βn)∈Rn−1
取
ω2=β2−b2∗e1||β2−b2∗e1||2,b1=||β2||2
则 ^H2=I−2∗ω2∗ωT2,H2={10T0^H2,}
得到
依次类推,进行第n步时,得到第n-1个Hn−1阵,使得
其中 Hn−1⋯H2H1∗A=H也为HouseHolder矩阵,也为自逆矩阵 H=H−1
得到 A=QR,其中Q为正交矩阵,R为上三角矩阵
3. 最小二乘问题
最小二乘问题为最优化问题的一种,一般形式为
其中f(x)为残差函数,表示预测值和测量值之差,||f(x)||2为损失函数
3.1线性最小二乘问题
当f(x)=Ax−b为线性方程时,线性最小二乘问题为
展开有
求导有
当导数为0时,得到损失函数值为最小值,因此
3.2采用QR分解求解线性最小二乘问题
上述说明得到线性最小二乘问题minx||Ax−b||2的解为x=(ATA)−1ATb
但是这里由于要求矩阵倒数,计算上存在一定困难,这里如果采用QR分解可以使得问题简单很多。
首先对A进行QR分解,即A=QR,其中QQT=I,R为上三角矩阵
其中 R为上三角矩阵,求逆相对容易很多,规避了直接对(ATA)−1求逆复杂度高的问题。
3.3非线性最小二乘问题
当f(x)为非线性方程时,最小二乘问题为minx||f(x)||2。
一般来说求解非线性最小二乘问题有高斯牛顿法,Levenberg-Marquardt法,高斯牛顿法存在H不是正定矩阵时,迭代结果不收敛或者不准确的情况,因此LM算法表现较好。但这个先介绍下高斯牛顿法
设状态向量x=(x1,x2,⋯,xm)
一阶Tayor展开
其中 J(x)为Jacobian矩阵,表示为
求解
minx||f(x)||2⇒minx||f(x)+J(x)Δx||2,
类比线性最小二乘的方法
迭代 xk+1=xk+Δx,直到收敛为止,即可求出最优解x
这里同样可以采用QR分解来求解Δx
设QR分解得到 J(xk)=Q(xk)R(xk),类比线性最小二乘方法,Δx=R(xk)−1Q(xk)f(xk)
因此非线性最小二乘问题迭代求解
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具