矩陣秩的理解

2021-07-22 06:26:22 字數 1216 閱讀 2916

首先,講到矩陣的秩,幾乎必然要引入矩陣的svd分解:x=usv',u,v正交陣,s是對角陣。如果是完全svd分解的話,那s對角線上非零元的個數就是這個矩陣的秩了(這些對角線元素叫做奇異值),還有些零元,這些零元對秩沒有貢獻。

有了這個前提,我們就可以用各種姿勢來看秩了:

1.把矩陣當做樣本集合,每一行(或每一列,這個無所謂)是乙個樣本,那麼矩陣的秩就是這些樣本所張成的線性子空間維數。如果矩陣秩遠小於樣本維數(即矩陣列數),那麼這些樣本相當於只生活在外圍空間中的乙個低維子空間,這樣就能實施降維操作。舉個例子,同乙個人在不同光照下採得的正臉影象,假設每一張都是192x168的,且採集了50張,那構成的資料矩陣就為50行192x168列的,但是如果你做svd分解就會發現,大概只有前10個奇異值比較大,其他的奇異值都接近零,因此實際上可以將接近零的奇異值所對應的那些維度丟掉,只保留前10個奇異值對應的子空間,從而將資料降維到10維的子空間了。

2.把矩陣當做乙個對映,既然是對映,那就得考慮它作用在向量x上的效果ax。注意ax相當於a的列的某個線性組合,如果矩陣是低秩的,這意味著這些列所張成的空間是外圍空間的乙個低維子空間,這個空間由ax表達(其中x任意)。換句話說,這個矩陣把r^n空間對映到r^m空間,但是其對映的像只在r^m空間的乙個低維子空間內生活。從svd理解的話,ax=usv'x,因此有三個變換:第一是v'x,相當於在原始的r^n空間旋轉了一下座標軸,這樣只是座標的變化,不改變向量本身(例如長度不變);第二是s(v'x),這相當於沿著各個座標軸做拉伸,並且如果s的對角線上某些元素為零,那麼這些元素所對應的那些座標軸就相當於直接丟掉了;最後再u(sv'x),還是乙個座標軸旋轉。總的來看,ax就相當於把乙個向量x沿著某些特定的方向做不同程度的拉伸(附帶上一些不關乎本質的旋轉),甚至丟棄,那些沒被丟棄的方向個數就是秩了。

這樣就有很多很直接的應用。例如考慮第乙個意義。給定一堆資料,這些資料可能本身只是在乙個低維子空間內生活(即可以用乙個低秩矩陣表示),但是由於雜訊存在,我們拿到這些資料時它們看起來像是外圍空間中的點,沒有任何可以降維的跡象(即矩陣是滿秩的)。設我們拿到的資料是x,那麼根據這個設定,x應該能分解為乙個低秩矩陣l和乙個雜訊矩陣e的疊加,即x=l+e。現在問題是如何恢復出l,因為一旦找到l,就相當於去除了雜訊,同時降低了資料的複雜度(即維度)。怎麼恢復?可以通過求解min rank(l)+\|e\|_f^2, subject to x=l+e來恢復出l和e。秩就顯式地被用在這個問題裡了。當然,這個問題往往只是引子,無數**在寫出類似問題後不到三行就會把rank(l)換成\|l\|_*,這個就是另外一些故事了。。。

numpy 矩陣 秩 Numpy 矩陣

機器學習中會用到大量的數學操作,而 numpy 計算庫使這些操作變得簡單,這其中就涉及到了 numpy 的矩陣操作,下面我們就來一起學習如何在 numpy 科學計算庫中進行矩陣的一些基本運算。定義矩陣使用 numpy 科學計算庫中的 mat 函式,如下所示 numpy.mat data,dtype ...

9 矩陣的秩

1.你們家有 m 個人 每個人提供證件照若干張,一家人共提供了 n 張證件照,那麼 m n 如果稱 n 表示證件照集合的維度,那麼 m 表示證件照集合的秩。2.一條鹹魚躺在乙個砧板上,鹹魚有 x 根魚骨,鹹魚旁邊有 y 根蔥做裝飾。x y 稱為整體維度,那麼魚骨的數量 x 就稱為秩。少一條魚骨,鹹魚...

矩陣秩的部分關係

證明r ata r a 思路 通過證明ax 0與atax 0同解進而解決r ata r a ax 0 atax 0 反之 atax 0 xtatax 0 ax tax 0 兩邊同時取行列式有 ax tax 0 ax t ax 0 又 ax t ax ax 2 0 ax 0 ax 0與atax 0同解...