自适应滤波:矩阵求逆
作者:桂。
时间:2017-04-02 10:36:09
链接:http://www.cnblogs.com/xingshansi/p/6658655.html
【读书笔记09】
前言
西蒙.赫金的《自适应滤波器原理》第四版第八章:最小二乘法。因为最小二乘涉及到矩阵求逆,因为通常对于秩缺矩阵其逆是不可求的,这就需要借助广义逆矩阵。而广义逆矩阵可以借助奇异值分解(SVD,Singularly Valuable Decomposition)进行求解。
有了这个思路,在学习各类最小二乘方法之前,对广义矩阵求逆、SVD分解进行梳理是有必要的,本文主要梳理矩阵求逆。
一、满秩情况
A-方阵
对于nxn的非奇异矩阵\bf{A},对应的逆矩阵为:{{\bf{A}}^{ - 1}}.
B-长方形阵
此时对应逆矩阵分为:左逆矩阵以及右逆矩阵。
对于矩阵A(n×m):
- 如果A是满列秩(n>=m)对于符合LA=I的矩阵解为:{\bf{L}} = {\left( {{{\bf{A}}^H}{\bf{A}}} \right)^{ - 1}}{{\bf{A}}^H};
- 如果A是满行秩(n<=m)对于符合AR=I的矩阵解为:{\bf{R}} = {{\bf{A}}^H}{\left( {{{\bf{A}}}{\bf{A}^H}} \right)^{ - 1}}.
可以看出,当m=n时,{\bf{R}}={\bf{L}}={{\bf{A}}^{ - 1}}.
二、秩亏缺情况
满秩情况中,通过矩阵左/右乘,可以实现满秩方阵,进而求逆得解,对于秩亏缺的情况,上面的求逆思路不再适用,这就需要一种更广义的定义逆矩阵的方式,也就是需要同时左、右乘以矩阵变换,才能得到满秩的特性,广义逆矩阵对满秩情况仍然有效。给出Moore-Penrose逆矩阵定义:
令\bf{A}是任意mxn矩阵,如果{{\bf{A}}^+ }满足以下四个条件,称矩阵{{\bf{A}}^+ }是\bf{A}的广义逆矩阵:
1){\bf{A}}{{\bf{A}}^+ }{\bf{A}} = {\bf{A}};
2){{\bf{A}}^+ }{\bf{A}}{{\bf{A}}^+ } = {{\bf{A}}^+ };
3){\bf{A}}{{\bf{A}}^+ } = {\left( {{\bf{A}}{{\bf{A}}^+ }} \right)^H};
4){{\bf{A}}^+ }{\bf{A}} = {\left( {{{\bf{A}}^+ }{\bf{A}}} \right)^H};
具体的原理推导可以参考:张贤达《矩阵分析与应用》p61~64.
容易看出:\bf{A}的满秩情况,广义逆矩阵仍然使用。Moore-Penrose逆矩阵是广义逆矩阵的一种形式。
三、求解Moore-Penrose逆矩阵
求解有多种思路,这里只分析基于SVD分解的方法。首先给出求解步骤:
背景知识:
对于
存在正交矩阵\bf{U}、\bf{V},使得:
{\bf{A}}{\rm{ = }}{\bf{U\Sigma }}{{\bf{V}}^H}
式中:
且r = rank({\bf{A}}).
求解步骤:
利用SVD进行广义逆矩阵求解:
{{\bf{A}}^ + } = {\bf{V}}{{\bf{\Sigma }}^ + }{{\bf{U}}^H}
其中:
事实上,对于秩为r,\bf{A}分解可简写为:
{\bf{A}} = {{\bf{U}}_r}{{\bf{\Sigma }}_1}{{\bf{V}}_r}^H
从而SVD可以简化为:
{{\bf{A}}^ + } = {{\bf{V}}_r}{\bf{\Lambda }}_{_{\rm{1}}}^{ - 1}{\bf{V}}_{_r}^H{{\bf{A}}^H}
其中{{\bf{\Lambda }}_1} = diag\left( {\sigma _{_1}^2,\sigma _{_2}^2,...,\sigma _{_r}^2} \right).
因为暂时不讨论SVD,此处先直接调用,给出对应代码:
1234567891011a = [ 1 7 5
1 6 4
2 7 8
10 5 4];
[U,S,V] =
svd
(a);
K =
min
(
size
(a));
S_plus = [
diag
(1./
diag
(S))].^2;
a_mp = 0;
for
i
= 1:K
a_mp = a_mp+V(:,
i
)*S_plus(
i
,
i
)*V(:,
i
)
'*a'
;
end
求解的a_mp为广义逆矩阵,其结果与`pinv`指令的作用等价。
理论证明:
表达式简写:
首先分析Moore-Penrose条件1:
Moore-Penrose条件2与条件1证明类似;
再分析Moore-Penrose条件3:
即{\bf{A}}{{\bf{A}}^+ } = {\left( {{\bf{A}}{{\bf{A}}^+ }} \right)^H};条件4同理。
既然广义矩阵求逆可以借助SVD分解,需要看看SVD如何分解,对SVD进行梳理点击这里。
有了广义逆矩阵,如何求解最小二乘可以点击这里。
参考:
- 张贤达:《矩阵分析与应用》.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何调试 malloc 的底层源码
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· Apifox不支持离线,Apipost可以!
· 历时 8 年,我冲上开源榜前 8 了!
· 零经验选手,Compose 一天开发一款小游戏!
· Trae 开发工具与使用技巧
· 通过 API 将Deepseek响应流式内容输出到前端