⑴ 什麼是奇異值數
奇異值:對於一個實矩陣a(m×n階),如果可以分解為a=usv』,其中u和v為分別為m×n與n×m階正交陣,s為n×n階對角陣,且s=diag(a1,a2,...,ar,0,...,
0)。且有a1>=a2>=a3>=...>=ar>=0.那麼a1,a2,...,ar稱為矩陣a的奇異值。u和v成為左右奇異陣列.
a的奇異值為a』a的特徵值的平方根(a』表示a的轉置矩陣),通過此可以求出奇異值.
奇異值分解法是線性代數中一種重要的矩陣分解法,在信號處理、統計學等領域有重要應用。
其定義為定義:設a為m*n階矩陣,a'表示a的轉置矩陣,a'*a的n個特徵值的非
負平方根叫作a的奇異值。記為σi(a)。
如果把a『*a的特徵值記為λi(a『*a),則σi(a)=sqrt(λi(a』*a))。
希望能幫助到您,望採納,謝謝
⑵ 奇異值分解(SVD)的原理及應用
姓名:劉保闊
學號:19021210887
轉自:https://www.cnblogs.com/tianqi/p/9745913.html
【嵌牛導讀】
奇異值分解(Singular Value Decomposition)是 矩陣論 中一種重要的 矩陣 分解,奇異值分解則是 特徵 分解在任意矩陣上的推廣。在 信號處理 、 統計學 等領域有重要應用。
【嵌牛正文】
一、奇異值與特徵值基礎知識:
特徵值分解和奇異值分解在機器學習領域都是屬於滿地可見的方法。兩者有著很緊密的關系,我在接下來會談到,特徵值分解和奇異值分解的目的都是一樣,就是提取出一個矩陣最重要的特徵。先談談特徵值分解吧:
1)特徵值:
如果說一個向量v是方陣A的特徵向量,將一定可以表示成下面的形式:
這時候λ就被稱為特徵向量v對應的特徵值,一個矩陣的一組特徵向量是一組正交向量。特徵值分解是將一個矩陣分解成下面的形式:
其中Q是這個矩陣A的特徵向量組成的矩陣,Σ是一個對角陣,每一個對角線上的元素就是一個特徵值。我這里引用了一些參考文獻中的內容來說明一下。首先,要明確的是,一個矩陣其實就是一個線性變換,因為一個矩陣乘以一個向量後得到的向量,其實就相當於將這個向量進行了線性變換。比如說下面的一個矩陣:
它其實對應的線性變換是下面的形式:
因為這個矩陣M乘以一個向量(x,y)的結果是:
上面的矩陣是對稱的,所以這個變換是一個對x,y軸的方向一個拉伸變換(每一個對角線上的元素將會對一個維度進行拉伸變換,當值>1時,是拉長,當值<1時時縮短),當矩陣不是對稱的時候,假如說矩陣是下面的樣子:
它所描述的變換是下面的樣子:
這其實是在平面上對一個軸進行的拉伸變換(如藍色的箭頭所示),在圖中,藍色的箭頭是一個最主要的變化方向(變化方向可能有不止一個),如果我們想要描述好一個變換,那我們就描述好這個變換主要的變化方向就好了。反過頭來看看之前特徵值分解的式子,分解得到的Σ矩陣是一個對角陣,裡面的特徵值是由大到小排列的,這些特徵值所對應的特徵向量就是描述這個矩陣變化方向(從主要的變化到次要的變化排列)。
當矩陣是高維的情況下,那麼這個矩陣就是高維空間下的一個線性變換,這個線性變化可能沒法通過圖片來表示,但是可以想像,這個變換也同樣有很多的變換方向,我們通過特徵值分解得到的前N個特徵向量,那麼就對應了這個矩陣最主要的N個變化方向。我們利用這前N個變化方向,就可以近似這個矩陣(變換)。也就是之前說的:提取這個矩陣最重要的特徵。總結一下,特徵值分解可以得到特徵值與特徵向量,特徵值表示的是這個特徵到底有多重要,而特徵向量表示這個特徵是什麼,可以將每一個特徵向量理解為一個線性的子空間,我們可以利用這些線性的子空間干很多的事情。不過,特徵值分解也有很多的局限,比如說變換的矩陣必須是方陣。
2)奇異值:
下面談談奇異值分解。特徵值分解是一個提取矩陣特徵很不錯的方法,但是它只是對方陣而言的,在現實的世界中,我們看到的大部分矩陣都不是方陣,比如說有N個學生,每個學生有M科成績,這樣形成的一個N * M的矩陣就不可能是方陣,我們怎樣才能描述這樣普通的矩陣呢的重要特徵呢?奇異值分解可以用來干這個事情,奇異值分解是一個能適用於任意的矩陣的一種分解的方法:
假設A是一個N * M的矩陣,那麼得到的U是一個N * N的方陣(裡面的向量是正交的,U裡面的向量稱為左奇異向量),Σ是一個N * M的矩陣(除了對角線的元素都是0,對角線上的元素稱為奇異值),V』(V的轉置)是一個N * N的矩陣,裡面的向量也是正交的,V裡面的向量稱為右奇異向量),從圖片來反映幾個相乘的矩陣的大小可得下面的圖片
那麼奇異值和特徵值是怎麼對應起來的呢?首先,我們將一個矩陣A的轉置 * A,將會得到一個方陣,我們用這個方陣求特徵值可以得到:這里得到的v,就是我們上面的右奇異向量。此外我們還可以得到:
這里的σ就是上面說的奇異值,u就是上面說的左奇異向量。奇異值σ跟特徵值類似,在矩陣Σ中也是從大到小排列,而且σ的減少特別的快,在很多情況下,前10%甚至1%的奇異值的和就佔了全部的奇異值之和的99%以上了。也就是說,我們也可以用前r大的奇異值來近似描述矩陣,這里定義一下部分奇異值分解:
r是一個遠小於m、n的數,這樣矩陣的乘法看起來像是下面的樣子:
右邊的三個矩陣相乘的結果將會是一個接近於A的矩陣,在這兒,r越接近於n,則相乘的結果越接近於A。而這三個矩陣的面積之和(在存儲觀點來說,矩陣面積越小,存儲量就越小)要遠遠小於原始的矩陣A,我們如果想要壓縮空間來表示原矩陣A,我們存下這里的三個矩陣:U、Σ、V就好了。
二、奇異值的計算:
奇異值的計算是一個難題,是一個O(N^3)的演算法。在單機的情況下當然是沒問題的,matlab在一秒鍾內就可以算出1000 * 1000的矩陣的所有奇異值,但是當矩陣的規模增長的時候,計算的復雜度呈3次方增長,就需要並行計算參與了。Google的吳軍老師在數學之美系列談到SVD的時候,說起Google實現了SVD的並行化演算法,說這是對人類的一個貢獻,但是也沒有給出具體的計算規模,也沒有給出太多有價值的信息。
其實SVD還是可以用並行的方式去實現的,在解大規模的矩陣的時候,一般使用迭代的方法,當矩陣的規模很大(比如說上億)的時候,迭代的次數也可能會上億次,如果使用Map-Rece框架去解,則每次Map-Rece完成的時候,都會涉及到寫文件、讀文件的操作。個人猜測Google雲計算體系中除了Map-Rece以外應該還有類似於MPI的計算模型,也就是節點之間是保持通信,數據是常駐在內存中的,這種計算模型比Map-Rece在解決迭代次數非常多的時候,要快了很多倍。
Lanczos迭代 就是一種解對稱方陣部分特徵值的方法(之前談到了,解A』* A得到的對稱方陣的特徵值就是解A的右奇異向量),是將一個對稱的方程化為一個三對角矩陣再進行求解。按網上的一些文獻來看,Google應該是用這種方法去做的奇異值分解的。請見Wikipedia上面的一些引用的論文,如果理解了那些論文,也「幾乎」可以做出一個SVD了。
由於奇異值的計算是一個很枯燥,純數學的過程,而且前人的研究成果(論文中)幾乎已經把整個程序的流程圖給出來了。更多的關於奇異值計算的部分,將在後面的參考文獻中給出,這里不再深入,我還是focus在奇異值的應用中去。
三、奇異值與主成分分析(PCA):
主成分分析在上一節裡面也講了一些,這里主要談談如何用SVD去解PCA的問題。PCA的問題其實是一個基的變換,使得變換後的數據有著最大的方差。方差的大小描述的是一個變數的信息量,我們在講一個東西的穩定性的時候,往往說要減小方差,如果一個模型的方差很大,那就說明模型不穩定了。但是對於我們用於機器學習的數據(主要是訓練數據),方差大才有意義,不然輸入的數據都是同一個點,那方差就為0了,這樣輸入的多個數據就等同於一個數據了。以下面這張圖為例子:
這個假設是一個攝像機採集一個物體運動得到的圖片,上面的點表示物體運動的位置,假如我們想要用一條直線去擬合這些點,那我們會選擇什麼方向的線呢?當然是圖上標有signal的那條線。如果我們把這些點單純的投影到x軸或者y軸上,最後在x軸與y軸上得到的方差是相似的(因為這些點的趨勢是在45度左右的方向,所以投影到x軸或者y軸上都是類似的),如果我們使用原來的xy坐標系去看這些點,容易看不出來這些點真正的方向是什麼。但是如果我們進行坐標系的變化,橫軸變成了signal的方向,縱軸變成了noise的方向,則就很容易發現什麼方向的方差大,什麼方向的方差小了。
一般來說,方差大的方向是信號的方向,方差小的方向是雜訊的方向,我們在數據挖掘中或者數字信號處理中,往往要提高信號與雜訊的比例,也就是信噪比。對上圖來說,如果我們只保留signal方向的數據,也可以對原數據進行不錯的近似了。
PCA的全部工作簡單點說,就是對原始的空間中順序地找一組相互正交的坐標軸,第一個軸是使得方差最大的,第二個軸是在與第一個軸正交的平面中使得方差最大的,第三個軸是在與第1、2個軸正交的平面中方差最大的,這樣假設在N維空間中,我們可以找到N個這樣的坐標軸,我們取前r個去近似這個空間,這樣就從一個N維的空間壓縮到r維的空間了,但是我們選擇的r個坐標軸能夠使得空間的壓縮使得數據的損失最小。
還是假設我們矩陣每一行表示一個樣本,每一列表示一個feature,用矩陣的語言來表示,將一個m * n的矩陣A的進行坐標軸的變化,P就是一個變換的矩陣從一個N維的空間變換到另一個N維的空間,在空間中就會進行一些類似於旋轉、拉伸的變化。
而將一個m * n的矩陣A變換成一個m * r的矩陣,這樣就會使得本來有n個feature的,變成了有r個feature了(r < n),這r個其實就是對n個feature的一種提煉,我們就把這個稱為feature的壓縮。用數學語言表示就是:
但是這個怎麼和SVD扯上關系呢?之前談到,SVD得出的奇異向量也是從奇異值由大到小排列的,按PCA的觀點來看,就是方差最大的坐標軸就是第一個奇異向量,方差次大的坐標軸就是第二個奇異向量…我們回憶一下之前得到的SVD式子:
在矩陣的兩邊同時乘上一個矩陣V,由於V是一個正交的矩陣,所以V轉置乘以V得到單位陣I,所以可以化成後面的式子
將後面的式子與A * P那個m * n的矩陣變換為m * r的矩陣的式子對照看看,在這里,其實V就是P,也就是一個變化的向量。這里是將一個m * n 的矩陣壓縮到一個m * r的矩陣,也就是對列進行壓縮,如果我們想對行進行壓縮(在PCA的觀點下,對行進行壓縮可以理解為,將一些相似的sample合並在一起,或者將一些沒有太大價值的sample去掉)怎麼辦呢?同樣我們寫出一個通用的行壓縮例子:
這樣就從一個m行的矩陣壓縮到一個r行的矩陣了,對SVD來說也是一樣的,我們對SVD分解的式子兩邊乘以U的轉置U'
這樣我們就得到了對行進行壓縮的式子。可以看出,其實PCA幾乎可以說是對SVD的一個包裝,如果我們實現了SVD,那也就實現了PCA了,而且更好的地方是,有了SVD,我們就可以得到兩個方向的PCA,如果我們對A』A進行特徵值的分解,只能得到一個方向的PCA。
四、奇異值與潛在語義索引LSI:
潛在語義索引(Latent Semantic Indexing)與PCA不太一樣,至少不是實現了SVD就可以直接用的,不過LSI也是一個嚴重依賴於SVD的演算法,之前吳軍老師在 矩陣計算與文本處理中的分類問題 中談到:
「三個矩陣有非常清楚的物理含義。第一個矩陣X中的每一行表示意思相關的一類詞,其中的每個非零元素表示這類詞中每個詞的重要性(或者說相關性),數值越大越相關。最後一個矩陣Y中的每一列表示同一主題一類文章,其中每個元素表示這類文章中每篇文章的相關性。中間的矩陣則表示類詞和文章雷之間的相關性。因此,我們只要對關聯矩陣A進行一次奇異值分解,w 我們就可以同時完成了近義詞分類和文章的分類。(同時得到每類文章和每類詞的相關性)。」
上面這段話可能不太容易理解,不過這就是LSI的精髓內容,我下面舉一個例子來說明一下,下面的例子來自LSA tutorial,具體的網址我將在最後的引用中給出:
這就是一個矩陣,不過不太一樣的是,這里的一行表示一個詞在哪些title中出現了(一行就是之前說的一維feature),一列表示一個title中有哪些詞,(這個矩陣其實是我們之前說的那種一行是一個sample的形式的一種轉置,這個會使得我們的左右奇異向量的意義產生變化,但是不會影響我們計算的過程)。比如說T1這個title中就有guide、investing、market、stock四個詞,各出現了一次,我們將這個矩陣進行SVD,得到下面的矩陣:
左奇異向量表示詞的一些特性,右奇異向量表示文檔的一些特性,中間的奇異值矩陣表示左奇異向量的一行與右奇異向量的一列的重要程序,數字越大越重要。
繼續看這個矩陣還可以發現一些有意思的東西,首先,左奇異向量的第一列表示每一個詞的出現頻繁程度,雖然不是線性的,但是可以認為是一個大概的描述,比如book是0.15對應文檔中出現的2次,investing是0.74對應了文檔中出現了9次,rich是0.36對應文檔中出現了3次;
其次,右奇異向量中一的第一行表示每一篇文檔中的出現詞的個數的近似,比如說,T6是0.49,出現了5個詞,T2是0.22,出現了2個詞。
然後我們反過頭來看,我們可以將左奇異向量和右奇異向量都取後2維(之前是3維的矩陣),投影到一個平面上,可以得到:
在圖上,每一個紅色的點,都表示一個詞,每一個藍色的點,都表示一篇文檔,這樣我們可以對這些詞和文檔進行聚類,比如說stock 和 market可以放在一類,因為他們老是出現在一起,real和estate可以放在一類,dads,guide這種詞就看起來有點孤立了,我們就不對他們進行合並了。按這樣聚類出現的效果,可以提取文檔集合中的近義詞,這樣當用戶檢索文檔的時候,是用語義級別(近義詞集合)去檢索了,而不是之前的詞的級別。這樣一減少我們的檢索、存儲量,因為這樣壓縮的文檔集合和PCA是異曲同工的,二可以提高我們的用戶體驗,用戶輸入一個詞,我們可以在這個詞的近義詞的集合中去找,這是傳統的索引無法做到的。
⑶ 圖像矩陣用奇異值分解的方法壓縮圖像
利用奇異值分解可以壓縮一個矩陣,但是對於一般的圖像來說每個通道都是一個矩陣,所以不能直接用SVD。
對於A=UDV',如果要重排D的話直接交換U,V中相應的列就行了,相當於A=UP*P'DP*P'V'。一般來講如果調用數學庫中的函數的話D肯定是已經排好的。
補充:
給你舉個例子,如果你要交換D(i,i)和D(j,j),那麼同時把U的第i列和第j列交換一下,把V的第i列和第j列交換一下。
主流的數學庫當中SVD都是LAPACK的實現,次序已經排好了。
⑷ 什麼是矩陣的奇異值,為什麼它能將高維壓縮成低維
任何一本線代書都有介紹.矩陣奇異就是行列式為零,又稱降秩矩陣.
⑸ 數值分析對學計算機有什麼用途
數值分析里,有很多關於迭代的介紹,而計算機編程,對於迭代運用有著一定的要求,所以,數值分析學好以後,更方便學習計算機編程。
數值分析是是研究分析用計算機求解數學計算問題的數值計算方法及其理論的學科。以數字計算機求解數學問題的理論和方法為研究對象,為計算數學的主體部分。
(5)奇異值圖像壓縮擴展閱讀:
數值分析的研究領域:
函數求值
數值分析中最簡單的問題就是求出函數在某一特定數值下的值。最直覺的方法是將數值代入函數中計算,不過有時此方式的效率不佳。像針對多項式函數的求值,較有效率的方式是秦九韶演算法,可以減少乘法及加法的次數。若是使用浮點數,很重要的是是估計及控制舍入誤差。
求解方程
求根演算法是要解一非線性方程,其名稱是因為函數的根就是使其值為零的點。若函數本身可微且其導數是已知的,可以用牛頓法求解,其他的方法包括二分法、割線法等。線性化則是另一種求解非線性方程的方法。
求解特徵值
許多重要的問題可以用奇異值分解或特徵分解來表示。例如有些圖像壓縮演算法就是以奇異值分解為基礎。統計學中對應的工具稱為主成分分析。
最優化
最優化問題的目的是要找到使特定目標函數有最大值(或最小值)的點,一般而言這個點需符合一些約束。
依目標函數及約束條件的不同,最佳化又可以再細分:例如線性規劃處理目標函數及約束條件均為線性的情形,常用單純形法來求解。若目標函數及約束條件其中有一項為非線性,就是非線性規劃的范圍。
有約束條件的問題可以利用拉格朗日乘數轉換為沒有約束條件的問題。
積分計算
數值積分的目的是在求一定積分的值。一般常用牛頓-寇次公式,包括辛普森積分法、高斯求積等。上述方式是利用分治法來處理積分問題,也就是將大范圍的積分切割成許多小范圍的積分,再進行計算。
⑹ svd奇異值分解演算法可以做數據壓縮嗎
基於雙邊Jacobi旋轉的奇異值分解演算法
V是A的右奇異向量,也是的特徵向量;
U是A的左奇異向量,也是的特徵向量。
特別地,當A是對稱矩陣的時候,=,即U=V,U的列向量不僅是的特徵向量,也是A的特徵向量。這一點在主成分分析中會用到。
對於正定的對稱矩陣,奇異值等於特徵值,奇異向量等於特徵向量。
U、V都是正交矩陣,滿足矩陣的轉置即為矩陣的逆。
雙邊Jacobi方法本來是用來求解對稱矩陣的特徵值和特徵向量的,由於就是對稱矩陣,求出的特徵向量就求出了A的右奇異值,的特徵值開方後就是A的奇異值。
一個Jacobi旋轉矩陣J形如:
它就是在一個單位矩陣的基礎上改變p行q行p列q列四個交點上的值,J矩陣是一個標准正交矩陣。
當我們要對H和p列和q列進行正交變換時,就對H施行:
在一次迭代過程當中需要對A的任意兩列進行一次正交變換,迭代多次等效於施行
迭代的終止條件是為對角矩陣,即原矩陣H進過多次的雙邊Jacobi旋轉後非對角線元素全部變成了0(實現計算當中不可能真的變為0,只要小於一個很小的數就可以認為是0了)。
每一個J都是標准正交陣,所以也是標准正交陣,記為V,則是,則。從此式也可以看出對稱矩陣的左奇異向量和右奇異向量是相等的。V也是H的特徵向量。
當特徵值是0時,對應的Ui和Vi不用求,我們只需要U和V的前r列就可以恢復矩陣A了(r是非0奇異值的個數),這也正是奇異值分解可以進行數據壓縮的原因。
+ View Code
基於單邊Jacobi旋轉的SVD演算法
相對於雙邊,單邊的計算量小,並且容易並行實現。
單邊Jacobi方法直接對原矩陣A進行單邊正交旋轉,A可以是任意矩陣。
同樣每一輪的迭代都要使A的任意兩列都正交一次,迭代退出的條件是B的任意兩列都正交。
單邊Jacobi旋轉有這么一個性質:旋轉前若,則旋轉後依然是;反之亦然。
把矩陣B每列的模長提取出來,,把記為V,則。
⑺ 視頻怎麼壓縮到500m以內
將一個視頻壓縮到500m以內需要使用格式工廠來修改視頻的比特率,操作方法如下:
操作設備:戴爾電腦
操作系統:win10
操作軟體:格式工廠v4.8
1、選中要壓縮的文件,查看內存大小(文件為4G多)。
⑻ matlab股票協方差
pp概述
原則上,所有圖象處理都是圖像的變換,而本章所謂的圖象變換特指數字圖象經過某種數學工具的處理,把原先二維空間域中的數據,變換到另外一個"變換域"形式描述的過程。例如,傅立葉變換將時域或空域信號變換成頻域的能量分布描述。
任何圖象信號處理都不同程度改變圖象信號的頻率成分的分布,因此,對信號的頻域(變換域)分析和處理是重要的技術手段,而且,有一些在空間域不容易實現的操作,可以在頻域(變換域)中簡單、方便地完成。
Pp
如上所述,圖象變換是將 維空間圖象數據變換成另外一組基向量空間(通常是正交向量空間)的坐標參數,我們希望這些離散圖象信號坐標參數更集中地代表了圖象中的有效信息,或者是更便於達到某種處理目的。下圖描述了數字圖象處理中空域處理與變換域處理的關系。
pp
圖象變換的實質就是將圖象從一個空間變換到另一個空間,各種變換的不同之處關鍵在於變換的基向量不同。以下給出幾種不同變換基向量的變換示例。
例如,由直角坐標系變化到極坐標系,見下圖
pp
同樣,一幅彩色圖象可以按照某種准則,分解成若干個基本色彩分量圖象的和。
傅立葉變換可以將一維信號從時間域變換到頻率域,例如下圖,一個正弦信號經過傅立葉變換後,得到它的頻率分布零頻(直流分量)和基頻。
一維傅立葉變換的定義:
一維傅立葉反變換定義:
F(u)包含了正弦和餘弦項的無限項的和,u稱為頻率變數,它的每一個值確定了所對應的正弦-餘弦對的頻率。
根據尤拉公式
傅立葉變換系數可以寫成如下式的復數和極坐標形式:
其中:
傅立葉譜(幅值函數)為
相角為
能量譜為
pp
連續二維函數的傅立葉變換對定義
二維函數的傅立葉正變換
二維函數的傅立葉逆變換
二維函數的傅立葉譜
二維函數的傅立葉變換的相角
二維函數的傅立葉變換的能量譜
pp
2離散傅立葉變換
由於實際問題的時間或空間函數的區間是有限的,或者是頻譜有截止頻率。至少在橫坐標超過一定范圍時,函數值已趨於 而可以略去不計。將 和 的有效寬度同樣等分為 個小間隔,對連續傅立葉變換進行近似的數值計算,得到離散的傅立葉變換定義。
其中,一維離散傅立葉正變換
一維離散傅立葉逆變換
pp
二維離散傅立葉變換:對於 圖象
對於 圖象
pp
1.3離散傅立葉變換的性質
性質1:可分離性
二維傅立葉變換可分解成了兩個方向的一維變換順序執行。
pp
性質2:平移性
空間域平移:
頻率域平移:
pp
當 時有:
可以簡單的用 乘以 將 的傅立葉變換的原點移動到相應 頻率方陣的中心。
(圖)
pp
性質3:周期性及共軛對稱性
離散的傅立葉變換和它的反變換具有周期為 的周期性:
傅立葉變換也存在共軛對稱性:
pp
性質4:旋轉性質
平面直角坐標改寫成極坐標形式:
做代換有:
如果 被旋轉 則 被旋轉同一角度。即有傅立葉變換對:
pp
(圖)
性質5:線性性質
如果:
則有:
pp
性質6: 與圖象均值的關系
二維圖象灰度均值定義:
而傅立葉變換變換域原點的頻譜分量:
所以有:
即 數值 倍於圖象灰度均值。
Pp
性質7:圖象拉普拉斯運算元處理後的傅立葉變換
圖象拉普拉斯運算元處理的定義:
則圖象拉普拉斯運算元處理後的傅立葉變換對為:
pp
性質8:卷積與相關定理
卷積定理 一維序列的卷積運算定義為:
當
則有
注意在用傅立葉變換計算卷積時, 由於函數被周期化,為了保證卷積結果正確,計算過程中兩個序列長度N1,N2都要補零加長為N1+ N2-1。二維圖象序列卷積定理的定義和計算過程與一維情況相同。*為卷積符號。
pp
相關定理:
一維、二維兩個離散序列的相關可以寫作
則有相關定理
pp
4快速傅立葉變換
由一維傅立葉變換入手,換一種表示方法
pp
定義:
則:
因為:
pp
傅立葉變換的快速計算示意圖:
(圖)
pp
一維傅立葉變換:
其逆變換為: R
則有:
對於二維情況:
pp
§2離散餘弦變換(DCT)
從第一節內容我們可以看到,傅立葉變換是用無窮區間上的復正弦基函數和信號的內積描述信號中總體頻率分布,或者是將信號向不同頻率變數基函數矢量投影。實際上,基函數可以有其它不同類型,相當於用不同類型基函數去分解信號(圖象)。餘弦變換是其中常用的一種。
pp
設離散序列 ,為一離散序列,根據下式延拓成偶對稱序列 :
其中 。 是關於 為中心的偶對稱序列如下圖所示。
(圖)
pp
以 代入在 范圍內作 點的傅立葉變換:
pp
餘弦變換的變換核為:
表示成矩陣形式為:(其中各列模為1)
pp
定義偶餘弦變換(EDCT)和逆變換為:
pp
二維餘弦變換:
二維餘弦變換具有可分離性:
表示成矩陣形式:
pp
餘弦變換可以利用傅立葉變換實現:
將 延拓為:
則有:
藉助傅立葉變換計算餘弦變換的步驟:
1)把 延拓成 ,長度為 ;
2)求 的 點的FFT;
3)對 各項乘上對應的因子 ;
4)取實部,並乘上因子 ;
5)取 的前 項,即為 的餘弦變換。
Pp
餘弦反變換:
首先延拓 ,
反變換,
pp
§3 正弦變換
一維正弦變換核
一維正弦變換
二維正弦變換核
二維正弦變換
pp
§4 沃爾什-哈達瑪變換
沃爾什-哈德瑪(Walsh-Hadamard)變換的變換核是一類非正弦的正交函數(Walsh函數),例如方波或矩形波。與正弦波頻率相對應,這種非正弦波形可用"列率"(單位時間內波形通過零點數平均值的一半)描述。Walsh函數可以由Rademacher函數構成,Rademacher函數集是一個不完備的正交函數集,Rademacher函數有兩個自變數 和 ,用 表示。
pp
Rademacher函數波形圖和矩陣表示
(圖)
pp
用Rademacher函數構造沃爾什函數:
其中: 表示 所選用的二進制位數
是Rademacher函數
是 的自然二進制的位序反寫後的第 位數字,
例: 用三位二進制碼, ,求
pp
(圖)
pp
Walsh函數的矩陣形式
其變換核矩陣有遞推關系:(直積)
沃爾什-哈達瑪變換定義:
一維沃爾什-哈達瑪變換可表示成矩陣形式:
pp
例:
二維沃爾什-哈達瑪變換:
,
其中 , 階數相同。
pp
例:
另外有
pp
§5 奇異值分解
基於矩陣奇異值分解的二維酉變換:
任何 矩陣 可以分解成:
和 是正交矩陣, 是矩陣 的特徵值。
則:
稱為矩陣 的奇異值。
Pp
對矩陣 作奇異值分解:
令:
則;
是 或 的特徵值所構成的對角陣。
矩陣的特徵矢量
矩陣的特徵矢量
pp
矩陣 可用奇異值分解的級數展開式表示成:
是 矩陣的第 行第 列陣元,即 分別是 矩陣的第 列矢量。
(圖)
pp
§6 K_L變換
K_L變換又稱為Hotelling變換和主成分分析。
當變數之間存在一定的相關關系時,可以通過原始變數的線性組合,構成為數較少的不相關的新變數代替原始變數,而每個新變數都含有盡量多的原始變數的信息。這種處理問題的方法,叫做主成分分析,新變數叫做原始變數的主成分。例如人臉圖象可表示成:
(圖)
pp
主成分分析與線性回歸的比較:
設有 個觀測點 ,散布如圖所示,線性回歸的問題是要找一條對 個點 的擬合直線 ,使偏差平方和最小。
主成分的基本思想是,先對 個點 求出第一條"最佳"擬合直線,使得這 個點到該直線的垂直距離的平方和最小,並稱此直線為第一主成分。然後再求與第一主成分相互獨立(或者說垂直)的,且與 個點 的垂直距離平方和最小的第二主成分。
Pp
(圖)
有 幅圖象 ,大小為 。每幅圖象表示成向量:
向量的協方差矩陣定義為:
其中:
令 和 是 的特徵向量和對應的特徵值。
特徵值按減序排列,
變換矩陣的行為 的特徵值,則變換矩陣為:
對應第 個特徵向量的第 個分量。
K_L變換定義為:
變換後,有:
pp
K_L變換的計算步驟:
1. 求協方差矩陣 ;
2. 求協方差矩陣的特徵值 ;
3. 求相應的特徵向量
4. 用特徵向量 構成變換矩陣 ,求 。
Pp
K-L變換的一種快速演算法:
輸入圖像樣本集合為: ,每一個樣本圖的大小為 , 可以用 維的向量 來表示(即把原圖像按行連到一起構成 維向量)。它也可看作 維空間的一個點,稱此空間為原始圖像空間S。實際上樣本圖像具有較大的相似性的, 因此,全部樣本圖象不會
充滿整個 維的空間,只是會聚集
在圖像空間的一個相對狹小子空間內。
Pp
(圖)
樣本圖象在原始圖像空間中的分布
如果以樣本圖集的總體協方差矩陣為主成分分析的產生矩陣,則所有樣本圖像的總體協方差矩陣為:
式中, , 是全體樣本圖像均值。 滿足下面的方程
是矩陣 的特徵向量, 是對應的特徵值。根據主成分分析理論,得到一個從原始圖像空間到新特徵空間的線性變換 。 是由 的特徵向量構成的變換矩陣。
Pp
但是,直接求矩陣 的特徵值和特徵向量很困難。如果樣本圖象個數 不太多,可以先計算出 維矩陣 的特徵值 和特徵向量 。因為
左乘矩陣 ,得
那麼 就是矩陣 的特徵向量。
Pp
-主成分空間的基。根據主成分分析,可以選擇 個較大特徵值對應的特徵向量(主成分),構造新的 維主成分空間 。每一幅圖象在此空間的投影對應一個 維向量 ,它們就是低維新特徵向量(主成分)。
Pp
小結
傅立葉變換(FFT) 具有快速演算法,數字圖象處理中最常用。需要復數運算。可把整幅圖象的信息很好地用若干個系數來表達。
餘弦變換(DCT) 有快速演算法,只要求實數運算。在相關性圖象的處理中,最接近最佳的K_L變換,在實現編碼和維納濾波時有用。同DFT一樣,可實現很好的信息壓縮。
正弦變換(DST) 比快速DCT快一倍。只需實數運算,可導出快速的K_L變換演算法。在實現編碼和濾波時有用。具有很好的信息壓縮效果好。
沃爾什-哈達瑪變換(WHT) 在數字圖象處理的硬體實現時有用。容易模擬但很難分析。在圖象數據壓縮、濾波、編碼中有應用。信息壓縮效果好。
K_L變換(KLT) 在許多意義下是最佳的。無快速演算法。在進行性能評估和尋找最佳性能時有用。對小規模的向量有用,如彩色多譜或其他特徵向量。對一組圖象集而言,具有均方差意義下最佳的信息壓縮效果。
奇異值分解(SVD) 對任何一幅給定的圖象而言,具有最佳的信息壓縮效果。無快速演算法。設計有限沖激響應(FIR)濾波器時,尋找線性方程的最小范數解時有用。潛在的應用是圖象恢復,能量估計和數據壓縮。
>> A=[0,0,0;2,0,2;]
A =
0 0 0
2 0 2
>> v = diag(cov(A))'
v =
2 0 2 說實在的我也看不懂啦,。
⑼ 奇異值分解(SVD)
奇異值分解(SVD)是一種矩陣因子分解方法。任意一個m*n的矩陣,都可以表示為三個矩陣的乘積(因子分解)的形式,分別是m階正交矩陣、由降序排列的非負的對角線元素組成的m*n矩陣和n階正交矩陣,稱為該矩陣的奇異值分解。矩陣的奇異值分解一定存在,但不唯一。奇異值分解可以看作出矩陣數據壓縮的一種方法。即用因子分解的方式近似地表示原始矩陣,這種矩陣在平方損失意義下的最優近似。
矩陣的奇異值分解是指,將一個非零的m*n實矩陣 ,表示為以下三個實矩陣乘積形式的運算,即進行矩陣的因子分解
其中U是m階正交矩陣,V是n階正交矩陣, 是由降序排列的非負的對角元素組成的 的矩形對角矩陣
稱為矩陣的奇異值分解, 稱為矩陣A的奇異值, 的列向量稱為左奇異向量, 的列向量成為右奇異向量
緊湊奇異值分解是與原始矩陣等秩的奇異值分解,截斷奇異值分解是比原始矩陣降低秩的奇異值分解。在實際應用中,常常需要對矩陣的數據進行壓縮,將其近似表示,奇異值分解提供了一種方法。奇異值分解是在平方損失意義下對矩陣的最優近似。緊奇異值分解對應著無損壓縮,截斷奇異值分解對應著有損壓縮
設有 實矩陣A,其秩為rank(A) = r, ,則稱 為A的緊奇異值分解,即
其中 是 矩陣, 是 矩陣, 是r階對角矩陣,矩陣 由完全奇異分解中的前r列,矩陣 由V的前r列,矩陣 由 的前r個對角線元素得到,緊奇分解的對角矩陣 的秩與原始矩陣A的秩相等
在矩陣的奇異值分解中,只取最大的k個奇異值(k < r,r為矩陣的秩)對應的部分,就得到矩陣的截斷奇異值分解。實際應用中提到的矩陣的奇異值分解,通常指截斷奇異值分解
設A為 實矩陣,其秩rank(A)=r,且, ,則稱 為矩陣A的截斷奇異值分解
其中 是 矩陣, 是n*k矩陣, 是k階對角矩陣;矩陣 由完全奇異分解U的前k列,矩陣 由V的前k列,矩陣 由 的前k個對角線元素得到。對角矩陣 的秩比原始矩陣A的秩低。
從線性變換的角度理解奇異值分解, 矩陣A表示從n維空間 到m空間 的一個線性變換,
x和Ax分別表示各自空間的向量。線性變換可以分解為三個簡單的變換:一個坐標系的旋轉或反射變換、一個坐標軸的縮放變換、另一個坐標系的旋轉或反射。
對矩陣A進行奇異值分解,得到 ,V和U都是正交矩陣,所以V的列向量 構成空間的一組標准正交基,表示 中的正交坐標系的旋轉或反射;U的列向量 構成 空間的一組標准正交基,表示 中正交坐標系的旋轉或反射; 的對角元素 是一組非負實數,表示 中原始正坐標系坐標軸的 倍的縮放變換。
任意一個向量 ,經過基於 的線性變換,等價於經過坐標系的旋轉或反射變換 ,坐標軸的縮放變換 ,以及坐標軸的旋轉或反射變換U,得到相框
矩陣A是 的正交實矩陣,則矩陣 是n階實對稱矩陣,因而 的特徵值都是實數,並且存在一個n階正實矩陣V實現 的對角化,使得 成立,其中 是n階對角矩陣,其對角元素由 的特徵值組成。
而且, 的特徵值都是非負的。事實上,令 是 的一個特徵值,x是對應的特徵向量,則
於是
可以假設正交矩陣V的列排列使得對應的特徵值形成降序排列。
計算特徵值的平方根(實際上解釋矩陣A的奇異值)
設矩陣A的秩是r,rank(A)=r,則矩陣 的秩也是r。由於 是對稱矩陣,它的秩等於正的特徵值的個數。
對應的
令
其中 為 的特徵值對應的特徵向量, 為0特徵值對應的特徵向量。
則
這就是矩陣A的奇異值分解中的n階正交矩陣V
令
則 是個一個r階對角矩陣,其對角線元素為按降序排列的正的 ,於是 矩形對角矩陣 可以表示為
這就是矩陣A的奇異值分解中的 矩陣對角矩陣
接著構造m階正交實矩陣U
令
則有
的列向量構成正交基是因為
對 的非零空間的一組標准正交基 ,令
並令
⑽ 基於奇異值分解(SVD)的方法壓縮圖像MATLAB實現
對圖像壓縮不是很了解。奇異值分解在matlab中一般用SVD(X)語句