7.4.8 数据压缩

7.4.8 数据压缩

上面 PCA 从数学方面说明了数据矩阵压缩的可能性,现在从物理模型上说明这点。

数据矩阵由于测量噪声,观测到的数据矩阵理论上为 A = A ˉ + N A = \bar A + N ,其中 A ˉ \bar A 为真实值构成的数据矩阵即未受噪声影响, N N 为噪声矩阵,由于噪声是随机的,不相关的,故矩阵 N N 一般为满秩矩阵即 r a n k N = m i n ( m , n ) rank N = min(m,n) ,所以数据矩阵 A A 一般是满秩矩阵。但真实数据矩阵 A ˉ \bar A 一般是低秩矩阵即 r = r a n k A ˉ m i n ( m , n ) r = rank \bar A \ll min(m,n) ,因为样本点云具有结构,这个性质可以看作一个自然规律。

对真实矩阵进行奇异值分解得 A ˉ = σ 1 u 1 v 1 T + + σ r u r v r T \bar A = \sigma_1\mathbf{u}_1\mathbf{v}^T_1+\cdots+\sigma_r\mathbf{u}_r\mathbf{v}^T_r ,向量 u i \mathbf{u}_i 是主成分方向,由于数据矩阵可降维,故 r m i n ( m , n ) r \ll min(m,n)

我们对存储矩阵 A ˉ \bar A 需要的空间进行分析,直接存储 A ˉ \bar A 需要的空间为 m n mn ;采用奇异值分解存储需要的空间为: r r 个奇异值 σ 1 , , σ r \sigma_1,\cdots,\sigma_r 需要的空间为 r r r r 个奇异向量 v 1 , , v r \mathbf{v}_1,\cdots,\mathbf{v}_r 需要的空间为 r n rn r r 个奇异向量 u 1 , , u r \mathbf{u}_1,\cdots,\mathbf{u}_r 需要的空间为 r m rm ,故总的空间为 r + r n + r m = r ( m + n + 1 ) r+rn+rm=r(m+n+1) ,当 r m i n ( m , n ) r \ll min(m,n) 时,有 r ( m + n + 1 ) m n r(m+n+1) \ll mn ,故存储奇异值分解的结果可以大大减小存储量,达到数据压缩的目的。为此付出的代价是,存储时需要先进行奇异值分解,读取时需要先进行矩阵恢复即计算 A ˉ = σ 1 u 1 v 1 T + + σ r u r v r T \bar A = \sigma_1\mathbf{u}_1\mathbf{v}^T_1+\cdots+\sigma_r\mathbf{u}_r\mathbf{v}^T_r ,增加了计算量。

但由于矩阵 A A 几乎满秩,所以 r = r a n k A m i n ( m , n ) r = rank A \thickapprox min(m,n) ,存储奇异值需要的空间为 r ( m + n + 1 ) m i n ( m , n ) ( m + n + 1 ) 2 m n r(m+n+1) \thickapprox min(m,n)(m+n+1) \thickapprox 2mn ,不仅达不到压缩目的,反而增加了一倍存储空间。

由于噪声随机不相关,所以噪声引起的奇异值几乎都相等即 σ 1 N σ 2 N σ m i n ( m , n ) N \sigma^N_1 \thickapprox \sigma^N_2 \thickapprox \cdots \thickapprox \sigma^N_{min(m,n)} ,又因为噪声能量一般远低于真实信号能量,故噪声引起的奇异值远小于信号的奇异值即 σ 1 N σ r A ˉ \sigma^N_1 \ll \sigma^{\bar A}_r 所以如果我们对观测矩阵 A A 进行低秩近似,只取其前 r = r a n k A ˉ r = rank \bar A 个主成分,则不会损失观测矩阵 A A 的太多信息,同时又能去除部分噪声,达到去噪目和压缩数据。注意矩阵 A A 的奇异值分解不等于矩阵 A ˉ \bar A 奇异值分解和矩阵 N N 奇异值分解之和,故只取矩阵 A A r a n k A ˉ rank \bar A 个主成分会损失部分真实信息。

实际情况下,由于无法得到真实矩阵 A ˉ \bar A ,故无法得到其秩 r a n k A ˉ rank \bar A ,也就无法只取其前 r = r a n k A ˉ r = rank \bar A 个主成分进行低秩近似。故实际中,只能近似取矩阵 A A R R 个主成分进行低秩近似,根据能量法则: σ 1 2 + + σ R 2 \sigma^2_1+\cdots+\sigma^2_R 约等于 99 % 99\% 99.9 % 99.9\% σ 1 2 + + σ n 2 , n = r a n k A \sigma^2_1+\cdots+\sigma^2_n,n=rank A ,注意是奇异值的平方!,因为奇异值平方和等于所有元素平方和。

数据压缩本质上就是PCA,根据PCA重构公式 A C = U k U k T A A^C = U_kU^T_kA ,重构矩阵就是 σ 1 u 1 v 1 T + + σ k u k v k T \sigma_1\mathbf{u}_1\mathbf{v}^T_1+\cdots+\sigma_k\mathbf{u}_k\mathbf{v}^T_k 。证明如下: A = U Σ V T A=U\Sigma V^T 带入重构公式得
A C = U k U k T U Σ V T = U k U k T [ U k , U ] Σ V T = U k [ U k T U k , U k T U ] Σ V T = U k [ E k , O ] Σ V T = [ U k E k Σ V T , O ] = [ U k Σ k V k T , O ] = σ 1 u 1 v 1 T + + σ k u k v k T A^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

猜你喜欢

转载自blog.csdn.net/jhshanvip/article/details/106897092