预备知识
1、
x
∈
R
d
×
1
\boldsymbol x\in\R^{d\times 1}
x∈Rd×1为随机变量,
x
=
[
x
1
,
x
2
,
.
.
.
,
x
d
]
T
\boldsymbol x=[x^1,x^2,...,x^d]^T
x=[x1,x2,...,xd]T,
E
[
x
]
=
0
E[\boldsymbol x]=\boldsymbol 0
E[x]=0,
协方差:
V
a
r
[
x
]
=
[
c
o
v
(
x
1
,
x
1
)
c
o
v
(
x
1
,
x
2
)
.
.
.
c
o
v
(
x
1
,
x
d
)
c
o
v
(
x
2
,
x
1
)
c
o
v
(
x
2
,
x
2
)
.
.
.
c
o
v
(
x
2
,
x
d
)
c
o
v
(
x
d
,
x
1
)
c
o
v
(
x
d
,
x
2
)
.
.
.
c
o
v
(
x
d
,
x
d
)
]
=
E
[
x
1
x
1
x
1
x
2
.
.
.
x
1
x
d
x
2
x
1
x
2
x
2
.
.
.
x
2
x
d
x
d
x
1
x
d
x
2
.
.
.
x
d
x
d
]
=
E
[
x
x
T
]
=
1
n
∑
i
=
1
n
(
x
i
x
i
T
)
=
[
x
1
,
x
2
,
.
.
.
x
n
]
[
x
1
,
x
2
,
.
.
.
x
n
]
T
=
X
X
T
Var[\boldsymbol x] = \begin{bmatrix} cov(x^{1},x^{1}) & cov(x^{1},x^{2}) &...&cov(x^{1},x^{d})\\ cov(x^{2},x^{1}) & cov(x^{2},x^{2}) &...&cov(x^{2},x^{d}) \\ cov(x^{d},x^{1}) & cov(x^{d},x^{2}) &...&cov(x^{d},x^{d}) \end{bmatrix}=E \begin{bmatrix} x^{1}x^{1} & x^{1}x^{2} &...&x^{1}x^{d}\\ x^{2}x^{1} & x^{2}x^{2} &...&x^{2}x^{d} \\ x^{d}x^{1} & x^{d}x^{2} &...&x^{d}x^{d} \end{bmatrix} =E[\boldsymbol x\boldsymbol x^T]\\ =\frac{1}{n}\sum\limits_{i=1}^n(\boldsymbol x_i\boldsymbol x_i^T) =[\boldsymbol x_1,\boldsymbol x_2,...\boldsymbol x_n][\boldsymbol x_1,\boldsymbol x_2,...\boldsymbol x_n]^T =XX^T
Var[x]=⎣⎡cov(x1,x1)cov(x2,x1)cov(xd,x1)cov(x1,x2)cov(x2,x2)cov(xd,x2).........cov(x1,xd)cov(x2,xd)cov(xd,xd)⎦⎤=E⎣⎡x1x1x2x1xdx1x1x2x2x2xdx2.........x1xdx2xdxdxd⎦⎤=E[xxT]=n1i=1∑n(xixiT)=[x1,x2,...xn][x1,x2,...xn]T=XXT。
2、
c
\boldsymbol c
c为常数,则
V
a
r
[
x
+
c
]
=
V
a
r
[
x
]
Var[\boldsymbol x+\boldsymbol c]=Var[\boldsymbol x]
Var[x+c]=Var[x]。
推论:
V
a
r
[
x
−
E
[
x
]
]
=
V
a
r
[
x
]
Var[\boldsymbol x-E[\boldsymbol x]]=Var[\boldsymbol x]
Var[x−E[x]]=Var[x]。
3、
z
=
W
x
\boldsymbol z=W \boldsymbol x
z=Wx, 则:
V
a
r
[
z
]
=
W
V
a
r
[
x
]
W
T
Var[\boldsymbol z]=WVar[\boldsymbol x]W^T
Var[z]=WVar[x]WT。
问题:
假设存在样本集 { x i } i = 1 n \{\boldsymbol x_i\}_{i=1}^n {xi}i=1n, x i ∈ R d × 1 \boldsymbol x_i\in\R^{d\times 1} xi∈Rd×1,我们想对 { x i } i = 1 n \{\boldsymbol x_i\}_{i=1}^n {xi}i=1n进行降维表示,并保留 { x i } i = 1 n \{\boldsymbol x_i\}_{i=1}^n {xi}i=1n的主要信息。
思路:
去相关方法的直观思路,如果存在高度相关的维度,则只取其中一个即可。由于变量 x \boldsymbol x x的平移不影响变量 x \boldsymbol x x的协方差,因此假设我们已经将 { x i } i = 1 n \{\boldsymbol x_i\}_{i=1}^n {xi}i=1n中心化,即所有样本已经减去其均值,则 E [ x ] = 0 E[\boldsymbol x]=\boldsymbol 0 E[x]=0。
但是计算完 x i \boldsymbol x_i xi的协方差矩阵 V a r [ x ] = X X T Var[\boldsymbol x]=XX^T Var[x]=XXT,可以看到相关性非常复杂,很难判断去掉哪一个维度。可以想象,理想情况下,如果协方差矩阵是对角矩阵,则各个维度都不相关,此时方差比较大的维度包含了更多的信息(变化),然后留下方差大的维度即可。
因此可以考虑旋转坐标系,使得数据在新坐标系下,各个坐标轴变量不相关(几何解释就是,已知一个坐标变量,其它坐标变量完全不可预测,呈随机分布)。因此相当于找一个新的规范正交基,使得数据在新规范正交基上的表示(分解,投影),各个维度之间不相关。
因此可以考虑找到一个可逆变换
W
∈
R
d
×
d
W\in\R^{d\times d}
W∈Rd×d(或者说是规范正交基),使得
z
=
W
x
\boldsymbol z=W\boldsymbol x
z=Wx
的协方差矩阵
V
a
r
[
z
]
Var[\boldsymbol z]
Var[z]为对角矩阵。则
V
a
r
[
z
]
=
W
V
a
r
[
x
]
W
T
=
W
X
X
T
W
T
Var[\boldsymbol z]= WVar[\boldsymbol x]W^T=WXX^T W^T
Var[z]=WVar[x]WT=WXXTWT
则现在问题变为是否存在可逆变换 W ∈ R d × d W\in\R^{d\times d} W∈Rd×d使得 X X T XX^T XXT可以被对角化。
由于
X
X
T
XX^T
XXT是对称矩阵,因此一定存在可逆变换
P
P
P使得
X
X
T
XX^T
XXT可以被对角化为
Λ
\Lambda
Λ(
z
z
z的协方差矩阵)[矩阵简明教程,p28]:
Λ
=
P
−
1
X
X
T
P
\Lambda=P^{-1}XX^TP
Λ=P−1XXTP
且
P
P
P为
X
X
T
XX^T
XXT的
d
d
d个线性无关特征列向量组成的矩阵。当特征列向量取正交特征向量时有
P
T
P
=
I
P^TP=I
PTP=I,
P
−
1
=
P
T
P^{-1}=P^T
P−1=PT。
因此有
Λ
=
P
T
X
X
T
P
\Lambda =P^TXX^TP
Λ=PTXXTP
则
W
=
P
T
W=P^T
W=PT。
因此需要求得
X
X
T
XX^T
XXT的
d
d
d个特征值,以及对应的
d
d
d个正交特征向量即可得到
W
W
W。
需要注意的是这样的新坐标系或者说基 W W W有很多个,其中一个原因是由于基向量的顺序早成的,另外是由于不变子空间基可以任意取造成,还有一个原因是每个基向量,可以被其反方向替代。
而我们只关注信息量比较大的坐标轴或者基向量,也就是找方差比较大的坐标轴来表示原数据。而方差比较小的坐标轴,由于数据在其投影均值为0,因此可以舍弃。这样我们就完成了对原数据的降维近似表示。如果需要进一步压缩,比如用少量的
k
k
k个坐标轴也描述原数据,也就是保留
k
k
k个主成分,则取前
k
k
k大的特征值(方差)对应的正交特征向量(坐标轴,单位基)组成
P
′
=
[
p
1
,
p
2
,
.
.
.
,
p
k
]
P'=[\boldsymbol p_1, \boldsymbol p_2,...,\boldsymbol p_k]
P′=[p1,p2,...,pk]。
W
′
=
P
′
T
∈
R
k
×
d
W'=P'T\in\R^{k\times d}
W′=P′T∈Rk×d。降维后
z
′
=
W
′
x
\boldsymbol z'=W'x
z′=W′x。
注意:
从上述过程实际可以看出,PCA过程实际蕴含了
X
T
X^T
XT(或
X
X
X)的奇异值分解过程,
P
P
P就是
X
T
X^T
XT(或
X
X
X)的右(或左)奇异特征向量。
对
X
T
X^T
XT奇异值分解可以得到(任意矩阵(秩大于0)都可以进行奇异值分解):
X
T
=
U
D
V
T
X^T=UDV^T
XT=UDVT
其中
U
U
T
=
I
∈
R
n
×
n
UU^T=I\in\R^{n\times n}
UUT=I∈Rn×n,
V
V
T
=
I
∈
R
d
×
d
VV^T=I\in\R^{d\times d}
VVT=I∈Rd×d。假设
(
X
T
)
T
X
T
∈
R
d
×
d
(X^T)^TX^T\in\R^{d\times d}
(XT)TXT∈Rd×d的
d
d
d个特征向量为
{
λ
1
≥
λ
2
≥
.
.
.
≥
λ
d
≥
0
}
\{\lambda_1\geq \lambda_2\geq ...\geq \lambda_d\geq 0\}
{λ1≥λ2≥...≥λd≥0},则
X
T
∈
R
d
×
n
X^T\in\R^{d\times n}
XT∈Rd×n的
d
d
d个奇异值为
{
λ
1
≥
λ
2
≥
.
.
.
≥
λ
d
≥
0
}
\{\sqrt\lambda_1\geq \sqrt\lambda_2\geq ...\geq \sqrt\lambda_d\geq 0\}
{λ1≥λ2≥...≥λd≥0},(默认
d
<
n
d<n
d<n,如果
d
>
n
d>n
d>n,则
X
T
∈
R
d
×
n
X^T\in\R^{d\times n}
XT∈Rd×n的
n
n
n个奇异值为
{
λ
1
≥
λ
2
≥
.
.
.
≥
λ
n
≥
0
}
\{\sqrt\lambda_1\geq \sqrt\lambda_2\geq ...\geq \sqrt\lambda_n\geq 0\}
{λ1≥λ2≥...≥λn≥0})。则
Λ
=
D
i
a
g
(
λ
1
,
λ
2
,
.
.
.
,
λ
d
)
\Lambda=Diag(\lambda_1,\lambda_2, ..., \lambda_d)
Λ=Diag(λ1,λ2,...,λd),
D
=
D
i
a
g
(
λ
1
,
λ
2
,
.
.
.
,
λ
d
)
。
D=Diag(\sqrt\lambda_1,\sqrt\lambda_2, ..., \sqrt\lambda_d)。
D=Diag(λ1,λ2,...,λd)。
且
P
=
V
P=V
P=V。可以看到
X
X
T
=
V
D
T
U
T
U
D
V
T
=
V
D
2
V
T
=
V
Λ
V
T
。
XX^T=VD^TU^TUDV^T=VD^2V^T=V\Lambda V^T。
XXT=VDTUTUDVT=VD2VT=VΛVT。