回覆列表
-
1 # 使用者7688326562465
-
2 # 使用者3073851696881239
1、矩陣的維數和矩陣的秩兩者範圍不同:維度,是數學中獨立引數的數目;而秩表示的是其生成的子空間的維度。如果還考慮m× n矩陣,將A的秩定義為向量組F的秩,則可以看到如此定義的A的秩就是矩陣 A的線性無關縱列的極大數目。
2、矩陣的維數和矩陣的秩兩者用途不同:“點基於點是0維、點基於直線是1維、點基於平面是2維、點基於體是3維”。再進一步解釋,在點上描述(定位)一個點就是點本身,不需要引數;在直線上描述(定位)一個點,需要1個引數(座標值)。 在平面上描述(定位)一個點,需要2個引數(座標值);在體上描述(定位)一個點,需要3個引數(座標值)。 而矩陣的秩的一個有用應用是計算線性方程組解的數目。
3、矩陣的維數和矩陣的秩兩者對應關係不同:矩陣的維數沒有固定的對應關係。 而對於每個矩陣A,fA都是一個線性對映,同時,對每個的 線性對映f,都存在矩陣A使得 f= fA。也就是說,對映是一個同構對映。所以一個矩陣 A的秩還可定義為fA的像的維度。矩陣 A稱為 fA的變換矩陣。 來源:-維度 來源:- 秩(線性代數術語)
首先,講到矩陣的秩,幾乎必然要引入矩陣的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\|_*,這個就是另外一些故事了。。。
按我的經驗,跟秩有關的問題以及幾何意義,只需要仔細分析矩陣的SVD分解就能解決。但很可惜,大學裡的線性代數更喜歡去介紹SVD的兄弟——特徵值分解,而這個兄弟又往往只偏好對稱陣,不像SVD這樣所有實矩陣都可以分析,導致處理一般矩陣的秩時沒有一個趁手的工具。