奇異值的物理意義是什麼?

2021-02-20 算法與數學之美

出自網易

原文地址:http://help.3g.163.com/15/0708/13/AU0MR6QP00964K99.html

矩陣的奇異值是一個數學意義上的概念,一般是由奇異值分解(Singular Value Decomposition,簡稱SVD分解)得到。如果要問奇異值表示什麼物理意義,那麼就必須考慮在不同的實際工程應用中奇異值所對應的含義。下面先儘量避開嚴格的數學符號推導,直觀的從一張圖片出發,讓我們來看看奇異值代表什麼意義。

這是女神上野樹裡(Ueno Juri)的一張照片,像素為高度450*寬度333。暫停舔屏先(痴漢臉

我們都知道,圖片實際上對應著一個矩陣,矩陣的大小就是像素大小,比如這張圖對應的矩陣階數就是450*333,矩陣上每個元素的數值對應著像素值。我們記這個像素矩陣為我們都知道,圖片實際上對應著一個矩陣,矩陣的大小就是像素大小,比如這張圖對應的矩陣階數就是450*333,矩陣上每個元素的數值對應著像素值。我們記這個像素矩陣為

現在我們對矩陣進行奇異值分解。直觀上,奇異值分解將矩陣分解成若干個秩一矩陣之和,用公式表示就是:

其中等式右邊每一項前的係數就是奇異值,

分別表示列向量,秩一矩陣的意思是矩陣秩為1。注意到每一項都是秩為1的矩陣。我們假定奇異值滿足(奇異值大於0是個重要的性質,但這裡先別在意),如果不滿足的話重新排列順序即可,這無非是編號順序的問題。

既然奇異值有從大到小排列的順序,我們自然要問,如果只保留大的奇異值,捨去較小的奇異值,這樣(1)式裡的等式自然不再成立,那會得到怎樣的矩陣——也就是圖像?

令,這隻保留(1)中等式右邊第一項,然後作圖:

結果就是完全看不清是啥……我們試著多增加幾項進來:結果就是完全看不清是啥……我們試著多增加幾項進來:,再作圖

隱約可以辨別這是一個妹子的臉,但還是很模糊,畢竟我們只取了5個奇異值而已。下面我們取20個奇異值試試,也就是(1)式等式右邊取前20項構成隱約可以辨別這是一個妹子的臉,但還是很模糊,畢竟我們只取了5個奇異值而已。下面我們取20個奇異值試試,也就是(1)式等式右邊取前20項構成

雖然還有些馬賽克般的模糊,但我們總算能辨別出這是Juri醬的臉。當我們取到(1)式等式右邊前50項時:雖然還有些馬賽克般的模糊,但我們總算能辨別出這是Juri醬的臉。當我們取到(1)式等式右邊前50項時:

我們得到和原圖差別不大的圖像。也就是說當我們得到和原圖差別不大的圖像。也就是說當從1不斷增大時,不斷的逼近。讓我們回到公式

矩陣表示一個450*333的矩陣,需要保存個元素的值。等式右邊

分別是450*1和333*1的向量,每一項有個元素。如果我們要存儲很多高清的圖片,而又受限於存儲空間的限制,在儘可能保證圖像可被識別的精度的前提下,我們可以保留奇異值較大的若干項,捨去奇異值較小的項即可。例如在上面的例子中,如果我們只保留奇異值分解的前50項,則需要存儲的元素為,和存儲原始矩陣相比,存儲量僅為後者的26%。

下面可以回答題主的問題: 奇異值往往對應著矩陣中隱含的重要信息,且重要性和奇異值大小正相關。每個矩陣都可以表示為一系列秩為1的「小矩陣」之和,而奇異值則衡量了這些「小矩陣」對於的權重。

在圖像處理領域,奇異值不僅可以應用在數據壓縮上,還可以對圖像去噪。如果一副圖像包含噪聲,我們有理由相信那些較小的奇異值就是由於噪聲引起的。當我們強行令這些較小的奇異值為0時,就可以去除圖片中的噪聲。如下是一張25*15的圖像(本例來源於[1])

但往往我們只能得到如下帶有噪聲的圖像(和無噪聲圖像相比,下圖的部分白格子中帶有灰色):但往往我們只能得到如下帶有噪聲的圖像(和無噪聲圖像相比,下圖的部分白格子中帶有灰色):

通過奇異值分解,我們發現矩陣的奇異值從大到小分別為:14.15,4.67,3.00,0.21,……,0.05。除了前3個奇異值較大以外,其餘奇異值相比之下都很小。強行令這些小奇異值為0,然後只用前3個奇異值構造新的矩陣,得到通過奇異值分解,我們發現矩陣的奇異值從大到小分別為:14.15,4.67,3.00,0.21,……,0.05。除了前3個奇異值較大以外,其餘奇異值相比之下都很小。強行令這些小奇異值為0,然後只用前3個奇異值構造新的矩陣,得到

可以明顯看出噪聲減少了(白格子上灰白相間的圖案減少了)。可以明顯看出噪聲減少了(白格子上灰白相間的圖案減少了)。

奇異值分解還廣泛的用於主成分分析(Principle Component Analysis,簡稱PCA)和推薦系統(如Netflex的電影推薦系統)等。在這些應用領域,奇異值也有相應的意義。

考慮題主在問題描述中的敘述:「把m*n矩陣看作從m維空間到n維空間的一個線性映射,是否:各奇異向量就是坐標軸,奇異值就是對應坐標的係數?」我猜測,題主更想知道的是奇異值在數學上的 幾何含義,而非應用中的 物理意義。下面簡單介紹一下奇異值的幾何含義,主要參考文獻是美國數學協會網站上的文章[1]。

下面的討論需要一點點線性代數的知識。線性代數中最讓人印象深刻的一點是,要將 矩陣和空間中的 線性變換視為同樣的事物。比如 正對角矩陣作用在任何一個向量上


其幾何意義為在水平

方向上拉伸3倍,方向保持不變的線性變換。換言之 正對角矩陣起到作用是將水平垂直網格作水平拉伸的線性變換。

如果如果不是對角矩陣,而是一個 對稱正定矩陣(注意原文僅假定為對稱矩陣是不夠的,這可能會導致負特徵值的出現)


那麼, 我們也總可以找到一組網格線,使得矩陣作用在該網格上僅僅表現為拉伸變換,而沒有旋轉變換

考慮更一般的考慮更一般的 非對稱矩陣


很遺憾,此時我們再也找不到一組網格,使得矩陣作用在該網格上之後只有拉伸變換(找不到背後的數學原因是對一般非對稱矩陣無法保證在實數域上可對角化,不明白也不要在意)。我們退求其次,找一組網格,使得矩陣作用在該網格上之後允許有 拉伸變換旋轉變換,但要保證變換後的網格依舊互相垂直。這是可以做到的

下面我們就可以自然過渡到奇異值分解的引入。下面我們就可以自然過渡到奇異值分解的引入。 奇異值分解的幾何含義為:對於任何的一個矩陣,我們要找到一組兩兩正交單位向量序列,使得矩陣作用在此向量序列上後得到新的向量序列保持兩兩正交。下面我們要說明的是, 奇異值的幾何含義為:這組變換後的新的向量序列的長度。

當矩陣當矩陣作用在正交單位向量和上之後,得到和也是正交的。令和分別是和方向上的單位向量,即,,寫在一起就是,整理得:



這樣就得到矩陣的奇異值分解。 奇異值和分別是的長度。很容易可以把結論推廣到一般維情形。

下面給出一個 更簡潔更直觀的 奇異值的幾何意義(參見[2])。先來一段線性代數的推導,不想看也可以略過,直接看黑體字幾何意義部分:

假設矩陣的奇異值分解為


其中是二維平面的向量。根據奇異值分解的性質,線性無關,線性無關。那麼對二維平面上任意的向量

,都可以表示為:。

當作用在

上時,



令,我們可以得出結論:如果

是在單位圓上,那么正好在橢圓上。這表明: 矩陣將二維平面中單位圓變換成橢圓,而兩個奇異值正好是橢圓的兩個半軸長,長軸所在的直線是,短軸所在的直線是.

推廣到一般情形:一般矩陣將單位球變換為超橢球面,那麼矩陣的每個奇異值恰好就是超橢球的每條半軸長度




參考文獻:
[1] We Recommend a Singular Value Decomposition(Feature Column from the AMS )
[2] 徐樹方,《矩陣計算的理論與方法》,北京大學出版社。

回復以下關鍵字獲取相關文章:

數據挖掘 | 機器學習 | 數學之美 | 遊戲算法 | 生活數學 | 排名算法|大型網站技術演進 | 數學名人 | 學科概述 | 計算機科學 | 搜尋引擎



據說好多人都不知道長按圖片也能關注,你知道嗎?



相關焦點

  • 一文讓你通俗理解奇異值分解
    特徵值和奇異值在大部分人的印象中,往往是停留在純粹的數學計算中。而且線性代數或者矩陣論裡面,也很少講任何跟特徵值與奇異值有關的應用背景。奇異值分解是一個有著很明顯的物理意義的一種方法,它可以將一個比較複雜的矩陣用更小更簡單的幾個子矩陣的相乘來表示,這些小矩陣描述的是矩陣的重要的特性。
  • 奇異值分解及其應用
    特徵值和奇異值在大部分人的印象中,往往是停留在純粹的數學計算中。而且線性代數或者矩陣論裡面,也很少講任何跟特徵值與奇異值有關的應用背景。奇異值分解是一個有著很明顯的物理意義的一種方法,它可以將一個比較複雜的矩陣用更小更簡單的幾個子矩陣的相乘來表示,這些小矩陣描述的是矩陣的重要的特性。
  • 強大的矩陣奇異值分解(SVD)及其應用
    特徵值和奇異值在大部分人的印象中,往往是停留在純粹的數學計算中。而且線性代數或者矩陣論裡面,也很少講任何跟特徵值與奇異值有關的應用背景。奇異值分解是一個有著很明顯的物理意義的一種方法,它可以將一個比較複雜的矩陣用更小更簡單的幾個子矩陣的相乘來表示,這些小矩陣描述的是矩陣的重要的特性。
  • 奇異值分解(SVD)
    SVD思維導圖奇異值分解(Singular Value Decomposition,SVD),是一種提取信息的方法。比如有一份記錄用戶關於餐館觀點的數據,要對其進行處理分析,提取背後的因素,這個因素可能是餐館的類別,烹飪配料等,然後利用這些因素估計人們對沒有去過的餐館的看法,從而進行推薦,提取這些信息的方法就叫奇異值分解法。
  • 奇異值分解(SVD) 的幾何意義
    原文舉了一個簡單的圖像處理問題,簡單形象,真心希望路過的各路朋友能從不同的角度闡述下自己對SVD實際意義的理解,比如 個性化推薦中應用了SVD,文本以及Web挖掘的時候也經常會用到SVD。σ1 和 σ2分別表示這不同方向向量上的模,也稱作為矩陣 M 的奇異值。
  • 奇異值分解(SVD)原理
    求出特徵值和特徵向量有什麼好處呢? 我們可以將矩陣A特徵分解。如果我們求出了矩陣A的n個特徵值λ1≤λ2≤...U和V求出來後,現在剩下奇異值矩陣Σ沒有求出。由於Σ除了對角線上是奇異值其他位置都是0,那我們只需要求出每個奇異值σ就可以了。注意到:可以求出我們的每個奇異值,進而求出奇異值矩陣Σ。
  • 奇異值分解(SVD) 的 幾何意義
    推倒如下:σi 和 σj分別是不同兩個奇異值Mvi = σiui Mvj = σjuj.我們先看下MviMvj,並假設它們分別對應的奇異值都不為零。但實際上,這並非是求解奇異值的方法,效率會非常低。這裡也主要不是討論如何求解奇異值,為了演示方便,採用的都是二階矩陣。應用實例(Another example)現在我們來看幾個實例。實例一
  • 奇異值分解SVD
    奇異值分解(SVD)在計算機視覺中有著廣泛的應用,如數據降維、推薦系統、自然語言處理等。本文是介紹SVD的數學計算過程,並從SVD的性質說明其應用的原理。奇異值分解(SVD)與特徵分解類似,是將矩陣分解為由奇異值(特徵值)和特徵向量表示的矩陣之積的方法。因而,在介紹SVD前有必要先介紹特徵值、特徵向量和特徵分解。
  • 人工智慧的數學(1)奇異值分解
    奇異值分解本篇使用到了numpy這個筆記系列的每一篇都不會很長,適合在各種碎片時間裡閱讀。
  • 【基礎】奇異值分解的原理與應用
    在這份教程中,你將了解用於將矩陣分解成其組成元素的奇異值分解方法。在完成本教程後,你將了解: 那就開始吧!教程概覽本教程分為 5 部分,依次為:1. 奇異值分解2. 計算奇異值分解3. 根據 SVD 重建矩陣4.
  • 奇異值分解, 這一篇就夠了
    在這份教程中,你將了解用於將矩陣分解成其組成元素的奇異值分解方法。在完成本教程後,你將了解: 那就開始吧!教程概覽本教程分為 5 部分,依次為:1. 奇異值分解2. 計算奇異值分解3. 根據 SVD 重建矩陣4.
  • 一文讀懂機器學習中奇異值分解SVD
    總結:特徵值分解可以得到特徵值與特徵向量,特徵值表示的是這個特徵到底有多麼重要,而特徵向量表示這個特徵是什麼,可以將每一個特徵向量理解為一個線性的子空間,我們可以利用這些線性的子空間幹很多事情。不過,特徵值分解也有很多的局限,比如說變換的矩陣必須是方陣。
  • 線性代數(Gelbert)---奇異值分解
    奇異值分解的形式與對稱矩陣的 A = Q∧QT 類似,將矩陣分解為正交矩陣乘對角陣乘正交矩陣的形式,並且這種分解對任意矩陣都成立(奇異值分解是特徵分解在任意矩陣上的推廣:https://www.zhihu.com/question/263722514,看個意思就行,和這一課關係不大)。
  • 奇異值分解簡介:從原理到基礎機器學習應用
    在這份教程中,你將了解用於將矩陣分解成其組成元素的奇異值分解方法。在完成本教程後,你將了解:奇異值分解是什麼以及涉及什麼如何計算 SVD 以及如何根據 SVD 元素重建矩形和方形矩陣如何使用 SVD 計算偽逆和執行降維
  • 通俗易懂的講解奇異值分解(SVD)和主成分分析(PCA)
    奇異值分解(SVD)特徵分解適用於n×n維的方形矩陣,而由於m×n維的矩形矩陣在變換過程中會改變矩陣原本的維數,從而對於矩形矩陣並沒有對其特徵值進行過定義。因此對於一個m×n維的矩形矩陣,我們能夠使用下面的方法對其進行特徵分解——即奇異值分解:其中,矩陣U和V是正交矩陣,Σ表示一個包含有奇異值的對角陣。
  • 幾何角度理解奇異值分解SVD
    二、SVD的幾何意義奇異值分解SVD ( The singular value decomposition )從幾何意義上來說:對於任意矩陣M,通過SVD。可以將一個相互垂直的坐標變換到另外一個相互垂直的坐標。
  • 入門 | 奇異值分解簡介:從原理到基礎機器學習應用
    本文對適用範圍很廣的奇異值分解方法進行了介紹,並通過代碼演示說明了其工作方式、計算方法及其常見的幾種基礎應用。矩陣分解也叫矩陣因子分解,涉及到用給定矩陣的組成元素描述該矩陣。奇異值分解(SVD)可能是最著名和使用最廣泛的矩陣分解方法。
  • 數學推導+純Python實現機器學習算法28:奇異值分解SVD
    ,即特徵值為奇異值的平方。其原理就是保存像素矩陣的前k個奇異值,並在此基礎上做圖像恢復。由SVD的原理我們可以知道,在SVD分解中越靠前的奇異值越重要,代表的信息含量越大。     下面我們嘗試對一個圖像進行SVD分解,並分別取前1~50個奇異值來恢復該圖像。需要恢復的圖像如下(厚著臉皮拿筆者自己作為示例):
  • 數據科學中需要知道的5個關於奇異值分解(SVD)的應用
    線性代數的一種這樣的用途是奇異值分解(SVD)用於降維。你在數據科學中一定很多次遇到SVD。它無處不在,特別是當我們處理降維時。但它是什麼?它是如何工作的?SVD應用有什麼?事實上,SVD是推薦系統的基礎,而推薦系統是谷歌,YouTube,亞馬遜,Facebook等大公司的核心。
  • 「矩陣接近奇異值,或者縮放錯誤」解決方法
    對矩陣求逆或者求解線性方程組時,若出現「矩陣接近奇異值,或者縮放錯誤。結果可能不準確。Matrix is close to singular or badly scaled.因此,若產生「矩陣接近奇異值,或者縮放錯誤。結果可能不準確。」報錯信息,可使用方法3和方法4來解決,其中方法4會更加有效。