• 自适应滤波:矩阵求逆


    作者:桂。

    时间:2017-04-02  10:36:09

    链接:http://www.cnblogs.com/xingshansi/p/6658655.html 


     【读书笔记09】

    前言

      西蒙.赫金的《自适应滤波器原理》第四版第八章:最小二乘法。因为最小二乘涉及到矩阵求逆,因为通常对于秩缺矩阵其逆是不可求的,这就需要借助广义逆矩阵。而广义逆矩阵可以借助奇异值分解(SVD,Singularly Valuable Decomposition)进行求解。

      有了这个思路,在学习各类最小二乘方法之前,对广义矩阵求逆、SVD分解进行梳理是有必要的,本文主要梳理矩阵求逆

     

    一、满秩情况

      A-方阵

    对于$n$x$n$的非奇异矩阵$f{A}$,对应的逆矩阵为:${{f{A}}^{ - 1}}$.

      B-长方形阵

    此时对应逆矩阵分为:左逆矩阵以及右逆矩阵。

    对于矩阵A(n×m):

    • 如果A是满列秩(n>=m)对于符合LA=I的矩阵解为:${f{L}} = {left( {{{f{A}}^H}{f{A}}} ight)^{ - 1}}{{f{A}}^H}$;
    • 如果A是满行秩(n<=m)对于符合AR=I的矩阵解为:${f{R}} = {{f{A}}^H}{left( {{{f{A}}}{f{A}^H}} ight)^{ - 1}}$.

    可以看出,当$m=n$时,${f{R}}={f{L}}={{f{A}}^{ - 1}}$.

    二、秩亏缺情况

     满秩情况中,通过矩阵左/右乘,可以实现满秩方阵,进而求逆得解,对于秩亏缺的情况,上面的求逆思路不再适用,这就需要一种更广义的定义逆矩阵的方式,也就是需要同时左、右乘以矩阵变换,才能得到满秩的特性,广义逆矩阵对满秩情况仍然有效。给出Moore-Penrose逆矩阵定义:

    令$f{A}$是任意$m$x$n$矩阵,如果${{f{A}}^+ }$满足以下四个条件,称矩阵${{f{A}}^+ }$是$f{A}$的广义逆矩阵:

      1)${f{A}}{{f{A}}^+ }{f{A}} = {f{A}}$;

      2)${{f{A}}^+ }{f{A}}{{f{A}}^+ } = {{f{A}}^+ }$;

      3)${f{A}}{{f{A}}^+ } = {left( {{f{A}}{{f{A}}^+ }} ight)^H}$;

      4)${{f{A}}^+ }{f{A}} = {left( {{{f{A}}^+ }{f{A}}} ight)^H}$;

    具体的原理推导可以参考:张贤达《矩阵分析与应用》p61~64.

    容易看出:$f{A}$的满秩情况,广义逆矩阵仍然使用。Moore-Penrose逆矩阵是广义逆矩阵的一种形式。

    三、求解Moore-Penrose逆矩阵

    求解有多种思路,这里只分析基于SVD分解的方法。首先给出求解步骤:

    背景知识

    对于存在正交矩阵$f{U}$、$f{V}$,使得:

    ${f{A}}{ m{ = }}{f{USigma }}{{f{V}}^H}$

    式中:

    且$r = rank({f{A}})$.

    求解步骤

    利用SVD进行广义逆矩阵求解:

    ${{f{A}}^ + } = {f{V}}{{f{Sigma }}^ + }{{f{U}}^H}$

    其中:

    事实上,对于秩为$r$,$f{A}$分解可简写为:

    ${f{A}} = {{f{U}}_r}{{f{Sigma }}_1}{{f{V}}_r}^H$

    从而SVD可以简化为:

    ${{f{A}}^ + } = {{f{V}}_r}{f{Lambda }}_{_{ m{1}}}^{ - 1}{f{V}}_{_r}^H{{f{A}}^H}$

    其中${{f{Lambda }}_1} = diagleft( {sigma _{_1}^2,sigma _{_2}^2,...,sigma _{_r}^2} ight)$.

    因为暂时不讨论SVD,此处先直接调用,给出对应代码:

    a = [ 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:

    即${f{A}}{{f{A}}^+ } = {left( {{f{A}}{{f{A}}^+ }} ight)^H}$;条件4同理。

    既然广义矩阵求逆可以借助SVD分解,需要看看SVD如何分解,对SVD进行梳理点击这里

    有了广义逆矩阵,如何求解最小二乘可以点击这里

    参考:

    •  张贤达:《矩阵分析与应用》.
  • 相关阅读:
    javascript中的screen对象
    javascript的navigator对象
    Javascript的location对象
    javascript 关于闭包的知识点
    微信小程序教程(第三篇)
    微信小程序----关于变量对象data 和 前端wxml取后台js变量值
    微信小程序教程(第四篇)
    微信小程序教程(第二篇)
    微信小程序教程(第一篇)
    操作文件的方法
  • 原文地址:https://www.cnblogs.com/xingshansi/p/6658655.html
Copyright © 2020-2023  润新知