7.4.8 数据压缩
上面 PCA 从数学方面说明了数据矩阵压缩的可能性,现在从物理模型上说明这点。
数据矩阵由于测量噪声,观测到的数据矩阵理论上为
A
=
A
ˉ
+
N
A = \bar A + N
A = A ˉ + N ,其中
A
ˉ
\bar A
A ˉ 为真实值构成的数据矩阵即未受噪声影响,
N
N
N 为噪声矩阵,由于噪声是随机的,不相关的,故矩阵
N
N
N 一般为满秩矩阵即
r
a
n
k
N
=
m
i
n
(
m
,
n
)
rank N = min(m,n)
r a n k N = m i n ( m , n ) ,所以数据矩阵
A
A
A 一般是满秩矩阵。但真实数据矩阵
A
ˉ
\bar A
A ˉ 一般是低秩矩阵即
r
=
r
a
n
k
A
ˉ
≪
m
i
n
(
m
,
n
)
r = rank \bar A \ll min(m,n)
r = r a n k A ˉ ≪ m i n ( 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
A ˉ = σ 1 u 1 v 1 T + ⋯ + σ r u r v r T ,向量
u
i
\mathbf{u}_i
u i 是主成分方向,由于数据矩阵可降维,故
r
≪
m
i
n
(
m
,
n
)
r \ll min(m,n)
r ≪ m i n ( m , n ) 。
我们对存储矩阵
A
ˉ
\bar A
A ˉ 需要的空间进行分析,直接存储
A
ˉ
\bar A
A ˉ 需要的空间为
m
n
mn
m n ;采用奇异值分解存储需要的空间为:
r
r
r 个奇异值
σ
1
,
⋯
,
σ
r
\sigma_1,\cdots,\sigma_r
σ 1 , ⋯ , σ r 需要的空间为
r
r
r ,
r
r
r 个奇异向量
v
1
,
⋯
,
v
r
\mathbf{v}_1,\cdots,\mathbf{v}_r
v 1 , ⋯ , v r 需要的空间为
r
n
rn
r n ,
r
r
r 个奇异向量
u
1
,
⋯
,
u
r
\mathbf{u}_1,\cdots,\mathbf{u}_r
u 1 , ⋯ , u r 需要的空间为
r
m
rm
r m ,故总的空间为
r
+
r
n
+
r
m
=
r
(
m
+
n
+
1
)
r+rn+rm=r(m+n+1)
r + r n + r m = r ( m + n + 1 ) ,当
r
≪
m
i
n
(
m
,
n
)
r \ll min(m,n)
r ≪ m i n ( m , n ) 时,有
r
(
m
+
n
+
1
)
≪
m
n
r(m+n+1) \ll mn
r ( m + n + 1 ) ≪ 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
A ˉ = σ 1 u 1 v 1 T + ⋯ + σ r u r v r T ,增加了计算量。
但由于矩阵
A
A
A 几乎满秩,所以
r
=
r
a
n
k
A
≈
m
i
n
(
m
,
n
)
r = rank A \thickapprox min(m,n)
r = r a n k A ≈ m i n ( 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
r ( m + n + 1 ) ≈ m i n ( m , n ) ( m + n + 1 ) ≈ 2 m n ,不仅达不到压缩目的,反而增加了一倍存储空间。
由于噪声随机不相关,所以噪声引起的奇异值几乎都相等即
σ
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 ≈ σ 2 N ≈ ⋯ ≈ σ m i n ( m , n ) N ,又因为噪声能量一般远低于真实信号能量,故噪声引起的奇异值远小于信号的奇异值即
σ
1
N
≪
σ
r
A
ˉ
\sigma^N_1 \ll \sigma^{\bar A}_r
σ 1 N ≪ σ r A ˉ ,所以如果我们对观测矩阵
A
A
A 进行低秩近似,只取其前
r
=
r
a
n
k
A
ˉ
r = rank \bar A
r = r a n k A ˉ 个主成分,则不会损失观测矩阵
A
A
A 的太多信息,同时又能去除部分噪声,达到去噪目和压缩数据 。注意矩阵
A
A
A 的奇异值分解不等于矩阵
A
ˉ
\bar A
A ˉ 奇异值分解和矩阵
N
N
N 奇异值分解之和,故只取矩阵
A
A
A 前
r
a
n
k
A
ˉ
rank \bar A
r a n k A ˉ 个主成分会损失部分真实信息。
实际情况下,由于无法得到真实矩阵
A
ˉ
\bar A
A ˉ ,故无法得到其秩
r
a
n
k
A
ˉ
rank \bar A
r a n k A ˉ ,也就无法只取其前
r
=
r
a
n
k
A
ˉ
r = rank \bar A
r = r a n k A ˉ 个主成分进行低秩近似。故实际中,只能近似取矩阵
A
A
A 前
R
R
R 个主成分进行低秩近似,根据能量法则:
σ
1
2
+
⋯
+
σ
R
2
\sigma^2_1+\cdots+\sigma^2_R
σ 1 2 + ⋯ + σ R 2 约等于
99
%
99\%
9 9 % 或
99.9
%
99.9\%
9 9 . 9 %
σ
1
2
+
⋯
+
σ
n
2
,
n
=
r
a
n
k
A
\sigma^2_1+\cdots+\sigma^2_n,n=rank A
σ 1 2 + ⋯ + σ n 2 , n = r a n k A ,注意是奇异值的平方!,因为奇异值平方和等于所有元素平方和。
数据压缩本质上就是PCA,根据PCA重构公式
A
C
=
U
k
U
k
T
A
A^C = U_kU^T_kA
A C = U k U k T A ,重构矩阵就是
σ
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
σ 1 u 1 v 1 T + ⋯ + σ k u k v k T 。证明如下:
A
=
U
Σ
V
T
A=U\Sigma V^T
A = U Σ 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
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