1. 背景
在统计分析中,数据之间的变量可能存在相关性,也就是说,数据集中某个样本的特征是一个 m m m维的向量, x = [ x d 1 , x d 2 , . . . , x d m ] \boldsymbol{x}=[x_{d1}, x_{d2}, ..., x_{dm}] x=[xd1,xd2,...,xdm],可能会有这样的情况,其实 x d 3 x_{d3} xd3是 x d 1 , x d 2 x_{d1}, x_{d2} xd1,xd2通过某种线性变换得到的。
换句话说就是,我们知道了 x d 1 , x d 2 x_{d1}, x_{d2} xd1,xd2,那么对于 x d 3 x_{d3} xd3的预测不是完全随机的,这个时候,用 d d d维的空间来表示数据其实是一种浪费,这个时候,我们通过某种手段能够找到一个新的坐标 x d 1 ′ , x d 2 ′ x_{d1'}, x_{d2'} xd1′,xd2′两个坐标,这俩玩意能够很好的表示 x d 1 , x d 2 , x d 3 x_{d1}, x_{d2}, x_{d3} xd1,xd2,xd3。
于是就从 d d d维降到了 d − 1 d-1 d−1维,这样的表示方法才是最经济实用的,那么,怎么样找到这种经济实用的表示方法呢?这就是今天的主题——PCA。
2. PCA简介
PCA全称为principal component analysis,该方法利用正交变换把线性相关的变量表示的观测数据转换为少数几个线性无关表示的数据,线性无关的数据成为主成分。
正交矩阵: W i T W i = 1 , i = 1 , 2 , . . . , m {W^i}^TW^i=1, i=1,2,...,m WiTWi=1,i=1,2,...,m
m m m代表某个样本的特征的维度。
也就是这个意思:要找到这样一个标准正交矩阵
W
W
W,能够使得向量
x
\boldsymbol{x}
x变成一个去掉了冗余信息的,低维度的向量
z
\boldsymbol{z}
z,用数学表达式可表示为:
z
=
W
x
\begin{aligned} \boldsymbol{z}=\boldsymbol{W}\boldsymbol{x} \end{aligned}
z=Wx
3. 具体原理
3.1 二维的情况
在线性代数的本质中提到,向量
x
\boldsymbol{x}
x与
W
1
\boldsymbol{W^1}
W1的点积其实就是计算向量
x
\boldsymbol{x}
x在
W
1
\boldsymbol{W^1}
W1上的投影,记为
Z
1
\boldsymbol{Z_1}
Z1。当变换矩阵
W
\boldsymbol{W}
W们是正交阵的时候,表达最为简单(想一想直角坐标系的表示方法就知道了)
假设在二维空间中数据是这个样子的:
我们在这个空间中任意找一个向量
w
1
w^1
w1就是我们将要降维的手段。假设随便找了两个方向,方向1与方向2,很明显.方向1的方差要小于方向2的方差。
3.1.1 目的
由于
Z
=
W
1
x
\boldsymbol{Z}=\boldsymbol{W^1}\boldsymbol{x}
Z=W1x。也就是说,在经过变换之后样本均值的计算公式为:
Z
ˉ
=
1
n
Z
1
∑
Z
1
W
1
x
=
W
1
∑
Z
1
x
ˉ
(3.1)
\begin{aligned} \boldsymbol{\bar{Z}}&=\frac{1}{n_{\boldsymbol{Z_1}}}\sum_{\boldsymbol{Z_1}}\boldsymbol{W^1}\boldsymbol{x}\\ &=\boldsymbol{W^1}\sum_{\boldsymbol{Z_1}}\boldsymbol{\bar{x}}\\ \end{aligned} \tag{3.1}
Zˉ=nZ11Z1∑W1x=W1Z1∑xˉ(3.1)
我们想要变化之后
z
\boldsymbol{z}
z的方差的期望尽可能的大,并且为了统一尺度,不妨设置变换矩阵
∣
∣
W
1
∣
∣
=
1
||\boldsymbol{W^1}||=1
∣∣W1∣∣=1。则有
V
a
r
(
Z
1
)
=
arg max
W
1
1
n
Z
1
∑
Z
1
(
Z
1
−
Z
ˉ
)
2
s
.
t
.
∣
∣
W
1
∣
∣
=
1
(3.2)
\begin{aligned} Var(\boldsymbol{Z_1})&=\argmax_{\boldsymbol{W^1}}\frac{1}{n_{\boldsymbol{Z_1}}}\sum_{\boldsymbol{Z_1}}(\boldsymbol{Z_1}-\bar{\boldsymbol{Z}})^2 \\ &s.t. ||\boldsymbol{W^1}||=1 \end{aligned} \tag{3.2}
Var(Z1)=W1argmaxnZ11Z1∑(Z1−Zˉ)2s.t.∣∣W1∣∣=1(3.2)
3.1.2 推导过程
因为:
Z
=
W
1
x
(3.3)
\boldsymbol{Z}=\boldsymbol{W^1}\boldsymbol{x} \tag{3.3}
Z=W1x(3.3)
则公式(3.2)可以写成:
V
a
r
(
Z
1
)
=
arg max
W
1
1
n
Z
1
∑
Z
1
(
W
1
x
−
W
1
x
ˉ
)
2
=
arg max
W
1
W
1
T
1
n
Z
1
∑
Z
1
[
(
x
−
x
ˉ
)
2
]
W
1
=
arg max
W
1
W
1
T
1
n
Z
1
∑
Z
1
[
(
x
−
x
ˉ
)
(
x
−
x
ˉ
)
T
]
W
1
(3.4)
\begin{aligned} Var(\boldsymbol{Z_1})&=\argmax_{\boldsymbol{W^1}}\frac{1}{n_{\boldsymbol{Z_1}}}\sum_{\boldsymbol{Z_1}}(\boldsymbol{W^1}\boldsymbol{x}-\boldsymbol{W^1}\bar{\boldsymbol{x}})^2 \\ &=\argmax_{\boldsymbol{W^1}}\boldsymbol{W^1}^T\frac{1}{n_{\boldsymbol{Z_1}}}\sum_{\boldsymbol{Z_1}}[(\boldsymbol{x}-\bar{\boldsymbol{x}})^2]\boldsymbol{W^1} \\ &=\argmax_{\boldsymbol{W^1}}\boldsymbol{W^1}^T\frac{1}{n_{\boldsymbol{Z_1}}}\sum_{\boldsymbol{Z_1}}[(\boldsymbol{x}-\bar{\boldsymbol{x}})(\boldsymbol{x}-\bar{\boldsymbol{x}})^T]\boldsymbol{W^1} \\ \end{aligned} \tag{3.4}
Var(Z1)=W1argmaxnZ11Z1∑(W1x−W1xˉ)2=W1argmaxW1TnZ11Z1∑[(x−xˉ)2]W1=W1argmaxW1TnZ11Z1∑[(x−xˉ)(x−xˉ)T]W1(3.4)
由于
1
n
Z
1
∑
Z
1
(
x
−
x
ˉ
)
(
x
−
x
ˉ
)
T
\frac{1}{n_{\boldsymbol{Z_1}}}\sum_{\boldsymbol{Z_1}}(\boldsymbol{x}-\bar{\boldsymbol{x}})(\boldsymbol{x}-\bar{\boldsymbol{x}})^T
nZ11∑Z1(x−xˉ)(x−xˉ)T是向量
x
\boldsymbol{x}
x的协方差
C
O
V
(
x
)
COV(\boldsymbol{x})
COV(x)。
于是,问题可以写成:
arg max
W
1
W
1
T
C
O
V
(
x
)
W
1
s
.
t
.
W
1
T
W
1
=
1
(3.5)
\begin{aligned} &\argmax_{\boldsymbol{W^1}}\boldsymbol{W^1}^TCOV(\boldsymbol{x})\boldsymbol{W^1} \\ &s.t. \boldsymbol{W^1}^T\boldsymbol{W^1}=1 \end{aligned} \tag{3.5}
W1argmaxW1TCOV(x)W1s.t.W1TW1=1(3.5)
通过引入拉格朗日算子:
L
=
W
1
T
C
O
V
(
x
)
W
1
+
α
1
(
W
1
T
W
1
−
1
)
(3.6)
L=\boldsymbol{W^1}^TCOV(\boldsymbol{x})\boldsymbol{W^1} + \alpha_1(\boldsymbol{W^1}^T\boldsymbol{W^1}-1) \tag{3.6}
L=W1TCOV(x)W1+α1(W1TW1−1)(3.6)
使
L
L
L对
W
1
\boldsymbol{W^1}
W1求导并令其为0:
考虑到
C
O
V
(
x
)
COV(\boldsymbol{x})
COV(x)的性质,所以求导结果为:
得:
C
O
V
(
x
)
W
1
−
α
1
W
1
=
0
COV(\boldsymbol{x})\boldsymbol{W^1} -\alpha_1 \boldsymbol{W^1} =0
COV(x)W1−α1W1=0
所以
α
\alpha
α就是
C
O
V
(
x
)
COV(\boldsymbol{x})
COV(x)的一个特征值,
W
1
\boldsymbol{W^1}
W1为其特征向量。
很明显, W 1 T x \boldsymbol{{W^1}^Tx} W1Tx构成了第一主成分,其方差等于协方差矩阵的最大特征值。
3.2 多维的情况
在一维的情况下继续上述操作,此时限制条件变成了:不仅模长要求为1,还要与
W
1
\boldsymbol{W^1}
W1正交,用数学表示:
V
a
r
(
Z
2
)
=
arg max
W
2
1
n
Z
2
∑
Z
2
(
Z
2
−
Z
ˉ
)
2
s
.
t
.
∣
∣
W
2
∣
∣
=
1
,
W
1
T
C
O
V
(
x
)
W
2
=
0
,
W
2
T
C
O
V
(
x
)
W
1
=
0
(3.7)
\begin{aligned} Var(\boldsymbol{Z_2})&=\argmax_{\boldsymbol{W^2}}\frac{1}{n_{\boldsymbol{Z_2}}}\sum_{\boldsymbol{Z_2}}(\boldsymbol{Z_2}-\bar{\boldsymbol{Z}})^2 \\ &s.t. ||\boldsymbol{W^2}||=1, \boldsymbol{W^1}^TCOV(x)\boldsymbol{W^2}=0, \boldsymbol{W^2}^TCOV(x)\boldsymbol{W^1}=0 \end{aligned} \tag{3.7}
Var(Z2)=W2argmaxnZ21Z2∑(Z2−Zˉ)2s.t.∣∣W2∣∣=1,W1TCOV(x)W2=0,W2TCOV(x)W1=0(3.7)
因为:
W
1
T
C
O
V
(
x
)
W
2
=
W
2
T
C
O
V
(
x
)
W
1
=
α
1
W
1
W
2
T
=
α
1
W
2
W
1
T
\boldsymbol{W^1}^TCOV(x)\boldsymbol{W^2}=\boldsymbol{W^2}^TCOV(x)\boldsymbol{W^1}=\alpha_1\boldsymbol{W^1}\boldsymbol{W^2}^T=\alpha_1\boldsymbol{W^2}\boldsymbol{W^1}^T
W1TCOV(x)W2=W2TCOV(x)W1=α1W1W2T=α1W2W1T
引入拉格朗日算子有:
g
(
W
2
)
=
W
2
T
C
O
V
(
x
)
W
2
+
α
2
(
W
2
T
W
2
−
1
)
+
β
(
W
2
T
W
1
)
(3.8)
g(\boldsymbol{W^2})=\boldsymbol{W^2}^TCOV(\boldsymbol{x})\boldsymbol{W^2} + \alpha_2(\boldsymbol{W^2}^T\boldsymbol{W^2}-1)+\beta(\boldsymbol{W^2}^T\boldsymbol{W^1}) \tag{3.8}
g(W2)=W2TCOV(x)W2+α2(W2TW2−1)+β(W2TW1)(3.8)
最后得到系数向量
W
1
,
W
2
,
.
.
.
,
W
m
\boldsymbol{W^1}, \boldsymbol{W^2}, ..., \boldsymbol{W^m}
W1,W2,...,Wm分别是
C
O
V
(
x
)
COV(\boldsymbol{x})
COV(x)的第1,2, …m个特征向量,
α
1
,
α
2
,
.
.
.
,
α
m
\alpha_1, \alpha_2, ..., \alpha_m
α1,α2,...,αm分别是其
m
m
m个特征值,且第
k
k
k个主成分的方差等于其第
k
k
k个特征值。
4. 为什么神经网络能够降维?
以
28
×
28
28 \times 28
28×28像素的手写数字图片为例,一个数字可以看做由各个部件组成,
各个部件为:
那么目标为:
写成等式为:
上式中
x
ˉ
\bar{x}
xˉ的值是所有组分的平均。令
x
−
x
ˉ
≈
c
1
u
1
+
c
2
u
2
+
.
.
.
+
c
K
u
K
=
x
^
x-\bar{x} \approx c_1u^1+c_2u^2+...+c_Ku^K=\hat{x}
x−xˉ≈c1u1+c2u2+...+cKuK=x^
那么,我们的目标是找到一个
u
1
,
u
2
,
.
.
.
u
K
u^1,u^2,...u^K
u1,u2,...uK使得
∣
∣
(
x
−
x
ˉ
)
−
x
^
∣
∣
2
||(x-\bar{x})-\hat{x}||_2
∣∣(x−xˉ)−x^∣∣2最小。并且称这个玩意为:reconstruction error。
L
=
min
u
1
,
u
2
,
.
.
.
u
K
∑
∥
(
x
−
x
ˉ
)
−
x
^
∥
2
L=\min_{u^1,u^2,...u^K}\sum\begin{Vmatrix} (x-\bar{x})-\hat{x} \end{Vmatrix}_2
L=u1,u2,...uKmin∑∥∥(x−xˉ)−x^∥∥2
那么,在PCA中,
z
=
W
x
z=Wx
z=Wx,则有:
[
z
1
z
2
.
.
.
z
K
]
=
[
(
W
1
)
T
(
W
2
)
T
.
.
.
(
W
K
)
T
]
x
\begin{bmatrix} z_1\\ z_2\\ ... \\ z_K \end{bmatrix}= \begin{bmatrix} (W_1)^T \\ (W_2)^T \\ ...\\ (W_K)^T \end{bmatrix}x
⎣⎢⎢⎡z1z2...zK⎦⎥⎥⎤=⎣⎢⎢⎡(W1)T(W2)T...(WK)T⎦⎥⎥⎤x
为什么能够这么理解呢?
假设
x
i
x^i
xi代表第
i
i
i张图,那么有
c
1
1
u
1
+
c
2
2
u
2
+
.
.
.
c^1_1u^1+c^2_2u^2+...
c11u1+c22u2+...
将等式左边使用SVD分解:
那么,用网络的方式可以表示为:
c
c
c是主要成分(PCA中涵盖信息较多的主成分,对应神经网络中的隐藏节点)
w
w
wPCA中的变换矩阵,代表神经网络中的权重(但是不一定像PCA中是垂直的)。
参考来源:
- 李宏毅机器学习-PCA降维篇
- 张学工-模式识别