7.4.8 数据压缩
7.4.8 數據壓縮
上面 PCA 從數學方面說明了數據矩陣壓縮的可能性,現在從物理模型上說明這點。
數據矩陣由于測量噪聲,觀測到的數據矩陣理論上為 A=Aˉ+NA = \bar A + NA=Aˉ+N ,其中 Aˉ\bar AAˉ 為真實值構成的數據矩陣即未受噪聲影響,NNN 為噪聲矩陣,由于噪聲是隨機的,不相關的,故矩陣 NNN 一般為滿秩矩陣即 rankN=min(m,n)rank N = min(m,n)rankN=min(m,n) ,所以數據矩陣 AAA 一般是滿秩矩陣。但真實數據矩陣 Aˉ\bar AAˉ 一般是低秩矩陣即 r=rankAˉ?min(m,n)r = rank \bar A \ll min(m,n)r=rankAˉ?min(m,n) ,因為樣本點云具有結構,這個性質可以看作一個自然規律。
對真實矩陣進行奇異值分解得 Aˉ=σ1u1v1T+?+σrurvrT\bar A = \sigma_1\mathbf{u}_1\mathbf{v}^T_1+\cdots+\sigma_r\mathbf{u}_r\mathbf{v}^T_rAˉ=σ1?u1?v1T?+?+σr?ur?vrT? ,向量 ui\mathbf{u}_iui? 是主成分方向,由于數據矩陣可降維,故 r?min(m,n)r \ll min(m,n)r?min(m,n) 。
我們對存儲矩陣 Aˉ\bar AAˉ 需要的空間進行分析,直接存儲 Aˉ\bar AAˉ 需要的空間為 mnmnmn ;采用奇異值分解存儲需要的空間為:rrr 個奇異值 σ1,?,σr\sigma_1,\cdots,\sigma_rσ1?,?,σr? 需要的空間為 rrr ,rrr 個奇異向量 v1,?,vr\mathbf{v}_1,\cdots,\mathbf{v}_rv1?,?,vr? 需要的空間為 rnrnrn ,rrr 個奇異向量 u1,?,ur\mathbf{u}_1,\cdots,\mathbf{u}_ru1?,?,ur? 需要的空間為 rmrmrm ,故總的空間為 r+rn+rm=r(m+n+1)r+rn+rm=r(m+n+1)r+rn+rm=r(m+n+1) ,當 r?min(m,n)r \ll min(m,n)r?min(m,n) 時,有 r(m+n+1)?mnr(m+n+1) \ll mnr(m+n+1)?mn ,故存儲奇異值分解的結果可以大大減小存儲量,達到數據壓縮的目的。為此付出的代價是,存儲時需要先進行奇異值分解,讀取時需要先進行矩陣恢復即計算 Aˉ=σ1u1v1T+?+σrurvrT\bar A = \sigma_1\mathbf{u}_1\mathbf{v}^T_1+\cdots+\sigma_r\mathbf{u}_r\mathbf{v}^T_rAˉ=σ1?u1?v1T?+?+σr?ur?vrT? ,增加了計算量。
但由于矩陣 AAA 幾乎滿秩,所以 r=rankA≈min(m,n)r = rank A \thickapprox min(m,n)r=rankA≈min(m,n) ,存儲奇異值需要的空間為 r(m+n+1)≈min(m,n)(m+n+1)≈2mnr(m+n+1) \thickapprox min(m,n)(m+n+1) \thickapprox 2mnr(m+n+1)≈min(m,n)(m+n+1)≈2mn ,不僅達不到壓縮目的,反而增加了一倍存儲空間。
由于噪聲隨機不相關,所以噪聲引起的奇異值幾乎都相等即 σ1N≈σ2N≈?≈σmin(m,n)N\sigma^N_1 \thickapprox \sigma^N_2 \thickapprox \cdots \thickapprox \sigma^N_{min(m,n)}σ1N?≈σ2N?≈?≈σmin(m,n)N? ,又因為噪聲能量一般遠低于真實信號能量,故噪聲引起的奇異值遠小于信號的奇異值即 σ1N?σrAˉ\sigma^N_1 \ll \sigma^{\bar A}_rσ1N??σrAˉ? ,所以如果我們對觀測矩陣 AAA 進行低秩近似,只取其前 r=rankAˉr = rank \bar Ar=rankAˉ 個主成分,則不會損失觀測矩陣 AAA 的太多信息,同時又能去除部分噪聲,達到去噪目和壓縮數據。注意矩陣 AAA 的奇異值分解不等于矩陣 Aˉ\bar AAˉ 奇異值分解和矩陣 NNN 奇異值分解之和,故只取矩陣 AAA 前 rankAˉrank \bar ArankAˉ 個主成分會損失部分真實信息。
實際情況下,由于無法得到真實矩陣 Aˉ\bar AAˉ ,故無法得到其秩 rankAˉrank \bar ArankAˉ ,也就無法只取其前 r=rankAˉr = rank \bar Ar=rankAˉ 個主成分進行低秩近似。故實際中,只能近似取矩陣 AAA 前 RRR 個主成分進行低秩近似,根據能量法則:σ12+?+σR2\sigma^2_1+\cdots+\sigma^2_Rσ12?+?+σR2? 約等于 99%99\%99% 或 99.9%99.9\%99.9% σ12+?+σn2,n=rankA\sigma^2_1+\cdots+\sigma^2_n,n=rank Aσ12?+?+σn2?,n=rankA ,注意是奇異值的平方!,因為奇異值平方和等于所有元素平方和。
數據壓縮本質上就是PCA,根據PCA重構公式 AC=UkUkTAA^C = U_kU^T_kAAC=Uk?UkT?A ,重構矩陣就是 σ1u1v1T+?+σkukvkT\sigma_1\mathbf{u}_1\mathbf{v}^T_1+\cdots+\sigma_k\mathbf{u}_k\mathbf{v}^T_kσ1?u1?v1T?+?+σk?uk?vkT? 。證明如下: A=UΣVTA=U\Sigma V^TA=UΣVT 帶入重構公式得
AC=UkUkTUΣVT=UkUkT[Uk,U′]ΣVT=Uk[UkTUk,UkTU′]ΣVT=Uk[Ek,O]ΣVT=[UkEkΣVT,O]=[UkΣkVkT,O]=σ1u1v1T+?+σkukvkTA^C = U_kU^T_kU\Sigma V^T = U_kU^T_k[U_k,U']\Sigma V^T \\ = U_k[U^T_kU_k,U^T_kU']\Sigma V^T=U_k[E_k,\mathbf{O}]\Sigma V^T\\ =[U_kE_k\Sigma V^T,\mathbf{O}]=[U_k\Sigma_k V_k^T,\mathbf{O}]\\ =\sigma_1\mathbf{u}_1\mathbf{v}^T_1+\cdots+\sigma_k\mathbf{u}_k\mathbf{v}^T_k AC=Uk?UkT?UΣVT=Uk?UkT?[Uk?,U′]ΣVT=Uk?[UkT?Uk?,UkT?U′]ΣVT=Uk?[Ek?,O]ΣVT=[Uk?Ek?ΣVT,O]=[Uk?Σk?VkT?,O]=σ1?u1?v1T?+?+σk?uk?vkT?
總結
以上是生活随笔為你收集整理的7.4.8 数据压缩的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 7.4.7 2DPCA
- 下一篇: 7.4.10 白化 whitening