作者:桂。
時間:2017-04-02 10:36:09
鏈接:http://www.cnblogs.com/xingshansi/p/6658655.html
【讀書筆記09】
前言
西蒙.赫金的《自適應濾波器原理》第四版第八章:最小二乘法。因為最小二乘涉及到矩陣求逆,因為通常對於秩缺矩陣其逆是不可求的,這就需要借助廣義逆矩陣。而廣義逆矩陣可以借助奇異值分解(SVD,Singularly Valuable Decomposition)進行求解。
有了這個思路,在學習各類最小二乘方法之前,對廣義矩陣求逆、SVD分解進行梳理是有必要的,本文主要梳理矩陣求逆。
一、滿秩情況
A-方陣
對於$n$x$n$的非奇異矩陣$\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}$是任意$m$x$n$矩陣,如果${{\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,此處先直接調用,給出對應代碼:
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:
即${\bf{A}}{{\bf{A}}^+ } = {\left( {{\bf{A}}{{\bf{A}}^+ }} \right)^H}$;條件4同理。
既然廣義矩陣求逆可以借助SVD分解,需要看看SVD如何分解,對SVD進行梳理點擊這里。
有了廣義逆矩陣,如何求解最小二乘可以點擊這里。
參考:
- 張賢達:《矩陣分析與應用》.