奇異值分解(SVD)有哪些很厲害的應用?

時間 2021-05-06 00:02:20

1樓:

分享我們的work:LadaBERT,使用將SVD剪枝和權重剪枝復合的方式進行模型壓縮,取得更高的壓縮比和不錯的加速比。

2樓:Changkai Zhang

這個問題下基本上都是 CS 相關的回答,我來提乙個 SVD 在量子資訊領域的應用。可能很多人一時間很難想象,SVD 是我們分析量子系統裡量子糾纏的重要手段之一。具體來說,考慮系統 A 和系統 B 構成的復合系統。

假設系統 A 的 Hilbert 空間有基 ,系統 B 有基 ,則復合系統的量子態可以利用這兩套基展開為

這裡面的 是乙個矩陣。我們可以對這個矩陣進行 SVD:

不是很嚴謹,不過基本意思應該到位了。這裡矩陣 U 和矩陣 V 都是 unitary 的矩陣。因此,你把這個 SVD 後的表示式代入,然後對 和 求和。

因為 U 和 V 都是 unitary 的,所以它們作用於 Hilbert 空間的基給出的是另一套基,也即

用這兩套新的基,復合系統的量子態就可以寫為

這個公式告訴我們,如果我們測量系統 A 得到態 ,那麼我們將立刻知道系統 B 處於態 ,並且這種情況發生的概率是 。

因此,在對乙個量子態進行 SVD 後,如果發現它只有乙個非零的奇異值,那麼系統 A 與 B 之間不存在量子糾纏;否則,AB 之間存在量子糾纏。另外,因為概率 ,我們還可以定義糾纏熵:

這個糾纏熵就表示系統 AB 間的糾纏可以轉化為多少個糾纏位元。

這種方法已經被應用於張量網路對量子格點模型的模擬中[1]。在張量網路方法中,我們有乙個5階的張量

這裡圓圈代表乙個張量,每條線都是乙個指標。向下的這個指標代表這個格點的狀態 (比如自旋向上或向下);其它的四個指標代表這個格點和它上下左右的格點之間的量子糾纏。如果我們要獲得基態,也就是能量最低的狀態,那麼我們需要乙個投影運算元 ,其中 是虛時間,是系統的 Hamiltonian。

投影之後我們會做乙個 SVD,然後我們會獲得兩個格點之間對應的奇異值。這個奇異值對分析格點模型的基態不同區域之間的量子糾纏有重要作用,可以幫助我們理解包括但不限於高溫超導在內的一系列強關聯系統。

3樓:市井小民

某些場景下代替做特徵值和特徵向量分解。

PCA降維。PCA降維時可以使用SVD得到的右奇異矩陣作為新的正交座標系,投影得到低維空間資料。PCA降維的應用比較多,例如作為特徵工程一種手段預處理資料、資料視覺化、影象降噪等。

計算偽逆。對於線性回歸的解析解: 存在求逆這一耗時操作,可以使用SVD分解,加快計算。對X進行SVD分解: 則:

做矩陣低秩近似(矩陣分解)或者矩陣補全,推薦系統中常用。

潛在語義分析演算法,NLP基礎演算法。

4樓:嘴硬頭鐵

我個人的感覺svd就類似凌遲指南

最大的那幾個value就是告訴你這幾個vector是最重要的,i.e.只要剩下這些器官人就不會死。

5樓:菠蘿包包包

菜雞如我只知道對極幾何裡會用SVD分解,來拆分旋轉與平移,從而由兩幅影象恢復出相機的運動。

不過似乎也就只能在初始化時搞一下,或者提供一下後續優化用的初值,畢竟有點糙。

不過思路還是挺神奇的,當時看到時候一直在想這是怎麼想到的哈哈哈。

6樓:喜歡拍Vlog的博主

奇異值分解是乙個有著很明顯的物理意義的一種方法,它可以將乙個比較複雜的矩陣用更小更簡單的幾個子矩陣的相乘來表示,這些小矩陣描述的是矩陣的重要的特性。

就像是描述乙個人一樣,給別人描述說這個人長得濃眉大眼,方臉,絡腮鬍,而且帶個黑框的眼鏡,這樣寥寥的幾個特徵,就讓別人腦海裡面就有乙個較為清楚的認識。

實際上,人臉上的特徵是有著無數種的,之所以能這麼描述,是因為人天生就有著非常好的抽取重要特徵的能力,讓機器學會抽取重要的特徵,SVD是也乙個重要的方法。

在機器學習領域,有相當多的應用與奇異值都可以扯上關係:

比如做feature reduction的PCA,做資料壓縮(以影象壓縮為代表)的演算法,還有做搜尋引擎語義層次檢索的LSI(Latent Semantic Indexing)。

如何用SVD去解PCA。

PCA的問題其實是乙個基的變換,使得變換後的資料有著最大的方差。

方差的大小描述的是乙個變數的資訊量,我們在講乙個東西的穩定性的時候,往往說要減小方差,如果乙個模型的方差很大,那就說明模型不穩定了。

但是對於我們用於機器學習的資料(主要是訓練資料),方差大才有意義,不然輸入的資料都是同乙個點,那方差就為0了,這樣輸入的多個資料就等同於乙個資料了。

7樓:taochuhang

通訊雷達訊號處理中,用處還是很大的,我比較了解的是,在盲源分離特別是極端欠定甚至是單通道多分量訊號分離中,通過svd能起到意想不到的效果

8樓:七星之城

主成分分析(PCA)的演算法實現的核心就是SVD。

Relationship between SVD and PCA. How to use SVD to perform PCA?

可見於sklearn的PCA實現:

9樓:邵恩真

matlab練習程式(奇異值分解壓縮影象) - Dsp Tian - 部落格園

以前看到過,用MATLAB試過,總算是體會到了影象壓縮中SVD的厲害。

引用這個網頁的兩段話:

比如一幅1000*1000的影象A,儲存就需要1000000個畫素了。我們對A進行svd分解,則A=USV』,如果rank(A)=r,那麼U就為1000*r的矩陣,S為r*r的矩陣,V為1000*r的矩陣。所以儲存的資料就是1000*r+r*r+1000*r個數了,如果這個r比較小,那麼儲存的空間就會小很多了,當然了,如果r=1000,這時這樣來算svd就是既浪費了空間又浪費了時間。

所以用這個svd時,還是先看看它的秩為好。

最後說一些奇異值分解的應用:

1.影象壓縮,正如上面的。

2.雜訊濾波。

3.模式識別。因為svd就是提取主要的成分嘛。這個我自己也用過,某些時候,我進行模式識別,但是特徵是乙個矩陣,資料量較大,這個時候就可以用SVD奇異值作為特徵,效果還算可以。

4.生物,物理,經濟方面的一些統計模型的處理。

如何證明奇異值分解SVD?

ZH.Li 引理 首先介紹如下結論與定理,其為SVD證明的基礎 1 設 0 eeimg 1 則 為Hermite矩陣 半正定矩陣 其特徵值均為非負實數。證明 為列向量,則 為列向量各元素平方求和,其很大於等於0 故為半正定矩陣,其特徵值均為非負實數。2 證明過程參考 矩陣乘以矩陣的轉置為什麼秩不變?...

人們是如何想到奇異值分解的?

JohnnyLee 給一些民科的幾何意義的思考。我不是專家,理解得也不深,既然被點名了,就有禮貌地回覆一下。在此,我就分享一種我理解問題的思維。if x is not zero,then A has linearly dependent columns,which means A is not fu...

有哪些很厲害的美妝技巧

勇哥闖世界 有的美妝小技巧真的非常厲害,比如法令紋可以用散粉來遮,用濕潤的美妝蛋搭配粉餅定妝更加持久,用定妝噴霧噴一下眼影刷,再沾眼影的時候,就不會飛粉啦,用熱水燻蒸嘴唇,之後用化妝棉擦,起皮的嘴唇就可以變得非常水嫩,真的非常有效哦。 知詩醬 我覺得要特別好用的美妝小技巧有很多張,當你長時間去化妝的...