1. 什么是主成分分析?(Principle Component Analysis,PCA)
设数据 X = ( x 1 , x 2 , . . x n ) X=(x_1,x_2,..x_n) X=(x1,x2,..xn)具有n个属性(还有很多其他命名,比如分量,指标),属性值分别是 x 1 , x 2 , . . x n x_1,x_2,..x_n x1,x2,..xn
那么主成分分析就是把原来具有相关关系的多个指标(属性)简化为少数几个新的综合指标的多元统计方法。
这里的主成分就是指的是原始指标(属性)形成的几个新指标。
主成分与原始变量之间的关系是:
(1)主成分保留了原始变量绝大多数信息。
(2)主成分的个数大大少于原始变量的数目
(3)各个主成分之间互不相关。
(4)每个主成分都是原始变量的线性组合。
容易知道,想要获得低维的向量,可以对原始的高维空间做一个线性变换,即:
Z
=
W
T
X
\mathbf{Z}=\mathbf{W^TX}
Z=WTX
其中 X = ( x 1 , x 2 , . . . x m ) ∈ R d × m X=(x_1,x_2,...x_m) \in \mathbb{R}^{d\times m} X=(x1,x2,...xm)∈Rd×m, W ∈ R d × d ′ \mathbf{W} \in \mathbb{R}^{d \times d^{\prime}} W∈Rd×d′, Z ∈ R d ′ × m \mathbf{Z} \in \mathbb{R}^{d^{\prime} \times m} Z∈Rd′×m
这个W也可以看成是低维空间的标准正交基,因为根据标准正交基的性质 W T = W − 1 W^T=W^{-1} WT=W−1
于是我们有
X = W Z X = WZ X=WZ
也就是说原来的X在新的基底W下的坐标表示为Z。
2. 如何进行主成分分析
主成分分析的目标就是寻得合适的 W \mathbf{W} W,使得高维空间的样本映射到低维空间空间,并使其满足以下原则。
主成分分析的原则:
最大可分性:样本点在低维空间中的投影能过尽可能地分开。
根据这个原则,容易想到,我们只要令在低维空间中的坐标表示Z的方差越大越好。即:
max
W
∑
i
∣
∣
z
i
−
0
∣
∣
2
=
max
W
∑
i
t
r
(
z
i
z
i
T
)
=
max
W
∑
i
t
r
(
W
T
x
i
x
i
T
W
)
=
max
W
t
r
(
W
T
∑
i
x
i
x
i
T
W
)
\begin{aligned} \max\limits_{W} \sum _i ||z_i-0||^2 &= \max\limits_{W} \sum _i tr(z_iz_i^T)=\max\limits_{W} \sum_{i} tr(\mathbf{W}^{\mathrm{T}} \boldsymbol{x}_{i} \boldsymbol{x}_{i}^{\mathrm{T}} \mathbf{W} )\\ &=\max\limits_{W} tr(\mathbf{W}^{\mathrm{T}}\sum_{i} \boldsymbol{x}_{i} \boldsymbol{x}_{i}^{\mathrm{T}} \mathbf{W} )\\ \end{aligned}
Wmaxi∑∣∣zi−0∣∣2=Wmaxi∑tr(ziziT)=Wmaxi∑tr(WTxixiTW)=Wmaxtr(WTi∑xixiTW)
于是我们的优化目标变成:
max
W
tr
(
W
T
X
X
T
W
)
s.t.
W
T
W
=
I
\begin{aligned} &\max _{\mathbf{W}} \operatorname{tr}\left(\mathbf{W}^{\mathrm{T}} \mathbf{X X}^{\mathrm{T}} \mathbf{W}\right) \\ &\text { s.t. } \mathbf{W}^{\mathrm{T}} \mathbf{W}=\mathbf{I} \end{aligned}
Wmaxtr(WTXXTW) s.t. WTW=I
因此使用拉格朗日算子法,我们有
L
(
W
,
Λ
)
=
−
tr
(
W
T
X
X
T
W
)
+
tr
(
Λ
T
(
W
T
W
−
I
)
)
L(\mathbf W,\Lambda)=-\text { tr }(\mathbf W^{\mathrm{T}} \mathbf X\mathbf X^{\mathrm{T}} \mathbf W)+\text { tr }\left(\Lambda^{\mathrm{T}} (\mathbf W^{\mathrm{T}} \mathbf W-\mathbf I)\right)
L(W,Λ)=− tr (WTXXTW)+ tr (ΛT(WTW−I))
以下求解内容来自南瓜书,此书甚佳,可看原书推导(地址见参考资料)
对拉格朗日函数关于 W \mathbf{W} W求导可得 ∂ L ( W , Λ ) ∂ W = ∂ ∂ W [ − tr ( W T X X T W ) + tr ( Λ T ( W T W − I ) ) ] = − ∂ ∂ W tr ( W T X X T W ) + ∂ ∂ W tr ( Λ T ( W T W − I ) ) \begin{aligned} \cfrac{\partial L(\mathbf W,\Lambda)}{\partial \mathbf W}&=\cfrac{\partial}{\partial \mathbf W}\left[-\text { tr }(\mathbf W^{\mathrm{T}} \mathbf X\mathbf X^{\mathrm{T}} \mathbf W)+\text { tr }\left(\Lambda^{\mathrm{T}} (\mathbf W^{\mathrm{T}} \mathbf W-\mathbf I)\right)\right] \\ &=-\cfrac{\partial}{\partial \mathbf W}\text { tr }(\mathbf W^{\mathrm{T}} \mathbf X\mathbf X^{\mathrm{T}} \mathbf W)+\cfrac{\partial}{\partial \mathbf W}\text { tr }\left(\Lambda^{\mathrm{T}} (\mathbf W^{\mathrm{T}} \mathbf W-\mathbf I)\right) \ \end{aligned} ∂W∂L(W,Λ)=∂W∂[− tr (WTXXTW)+ tr (ΛT(WTW−I))]=−∂W∂ tr (WTXXTW)+∂W∂ tr (ΛT(WTW−I))
由矩阵微分公式 ∂ ∂ X tr ( X T B X ) = B X + B T X , ∂ ∂ X tr ( B X T X ) = X B T + X B \cfrac{\partial}{\partial \mathbf{X}} \text { tr }(\mathbf{X}^{\mathrm{T}} \mathbf{B} \mathbf{X})=\mathbf{B X}+\mathbf{B}^{\mathrm{T}} \mathbf{X},\cfrac{\partial}{\partial \mathbf{X}} \text { tr }\left(\mathbf{B X}^{\mathrm{T}} \mathbf{X}\right)=\mathbf{X B}^{\mathrm{T}} +\mathbf{X B} ∂X∂ tr (XTBX)=BX+BTX,∂X∂ tr (BXTX)=XBT+XB (对这个不熟悉的小伙伴可以参考数学资源分享:矩阵求导公式
可得 ∂ L ( W , Λ ) ∂ W = − 2 X X T W + W Λ + W Λ T = − 2 X X T W + W ( Λ + Λ T ) = − 2 X X T W + 2 W Λ \begin{aligned} \cfrac{\partial L(\mathbf W,\Lambda)}{\partial \mathbf W}&=-2\mathbf X\mathbf X^{\mathrm{T}} \mathbf W+\mathbf{W}\Lambda+\mathbf{W}\Lambda^{\mathrm{T}} \\ &=-2\mathbf X\mathbf X^{\mathrm{T}} \mathbf W+\mathbf{W}(\Lambda+\Lambda^{\mathrm{T}} ) \\ &=-2\mathbf X\mathbf X^{\mathrm{T}} \mathbf W+2\mathbf{W}\Lambda \end{aligned} ∂W∂L(W,Λ)=−2XXTW+WΛ+WΛT=−2XXTW+W(Λ+ΛT)=−2XXTW+2WΛ
令
∂
L
(
W
,
Λ
)
∂
W
=
0
\cfrac{\partial L(\mathbf W,\Lambda)}{\partial \mathbf W}=\mathbf 0
∂W∂L(W,Λ)=0可得
−
2
X
X
T
W
+
2
W
Λ
=
0
X
X
T
W
=
W
Λ
\begin{aligned} -2\mathbf X\mathbf X^{\mathrm{T}} \mathbf W+2\mathbf{W}\Lambda&=\mathbf 0\ \mathbf X\mathbf X^{\mathrm{T}} \mathbf W&=\mathbf{W}\Lambda\ \end{aligned}
−2XXTW+2WΛ=0 XXTW=WΛ 将
W
\mathbf W
W和
Λ
\Lambda
Λ展开可得
X
X
T
w
i
=
λ
i
w
i
,
i
=
1
,
2
,
.
.
.
,
d
′
\mathbf X\mathbf X^{\mathrm{T}} \boldsymbol w_i=\lambda i\boldsymbol w_i,\quad i=1,2,...,d^{\prime}
XXTwi=λiwi,i=1,2,...,d′ 显然,此式为矩阵特征值和特征向量的定义式,其中
λ
i
,
w
i
\lambda_i,\boldsymbol w_i
λi,wi分别表示矩阵
X
X
T
\mathbf X\mathbf X^{\mathrm{T}}
XXT的特征值和单位特征向量。由于以上是仅考虑约束
w
i
T
w
i
=
1
\boldsymbol{w}i^{\mathrm{T}}\boldsymbol{w}i=1
wiTwi=1所求得的结果,而
w
i
\boldsymbol{w}i
wi还需满足约束
w
i
T
w
j
=
0
(
i
≠
j
)
\boldsymbol{w}{i}^{\mathrm{T}}\boldsymbol{w}{j}=0(i\neq j)
wiTwj=0(i=j)。观察
X
X
T
\mathbf X\mathbf X^{\mathrm{T}}
XXT的定义可知,
X
X
T
\mathbf X\mathbf X^{\mathrm{T}}
XXT是一个实对称矩阵,实对称矩阵的不同特征值所对应的特征向量之间相互正交,同一特征值的不同特征向量可以通过施密特正交化使其变得正交,所以通过上式求得的
w
i
\boldsymbol w_i
wi可以同时满足约束
w
i
T
w
i
=
1
,
w
i
T
w
j
=
0
(
i
≠
j
)
\boldsymbol{w}i^{\mathrm{T}}\boldsymbol{w}i=1,\boldsymbol{w}{i}^{\mathrm{T}}\boldsymbol{w}{j}=0(i\neq j)
wiTwi=1,wiTwj=0(i=j)。(此处推理依照线性代数或矩阵分析中的定理)
根据拉格朗日乘子法的原理可知,此时求得的结果仅是最优解的必要条件,而且 X X T \mathbf X\mathbf X^{\mathrm{T}} XXT有 d d d个相互正交的单位特征向量,所以还需要从这 d d d个特征向量里找出 d ′ d^{\prime} d′个能使得目标函数达到最优值的特征向量作为最优解。将 X X T w i = λ i w i \mathbf X\mathbf X^{\mathrm{T}} \boldsymbol w_i=\lambda i\boldsymbol w_i XXTwi=λiwi代入目标函数可得 min W − tr ( W T X X T W ) = max W tr ( W T X X T W ) = max W ∑ i = 1 d ′ w i T X X T w i = max W ∑ i = 1 d ′ w i T ⋅ λ i w i = max W ∑ i = 1 d ′ λ i w i T w i = max W ∑ i = 1 d ′ λ i \begin{aligned} \min\limits_{\mathbf W}-\text { tr }(\mathbf W^{\mathrm{T}} \mathbf X\mathbf X^{\mathrm{T}} \mathbf W) &=\max\limits_{\mathbf W}\text { tr }(\mathbf W^{\mathrm{T}} \mathbf X\mathbf X^{\mathrm{T}} \mathbf W) \\ &=\max\limits_{\mathbf W}\sum_{i=1}^{d^{\prime}}\boldsymbol w_i^{\mathrm{T}}\mathbf X\mathbf X^{\mathrm{T}} \boldsymbol w_i \\ &=\max\limits_{\mathbf W}\sum_{i=1}^{d^{\prime}}\boldsymbol w_i^{\mathrm{T}}\cdot\lambda i\boldsymbol w_i \\ &=\max\limits_{\mathbf W}\sum_{i=1}^{d^{\prime}}\lambda i\boldsymbol w_i^{\mathrm{T}}\boldsymbol w_i \\ &=\max\limits_{\mathbf W}\sum_{i=1}^{d^{\prime}}\lambda _i \ \end{aligned} Wmin− tr (WTXXTW)=Wmax tr (WTXXTW)=Wmaxi=1∑d′wiTXXTwi=Wmaxi=1∑d′wiT⋅λiwi=Wmaxi=1∑d′λiwiTwi=Wmaxi=1∑d′λi
显然,此时只需要令 λ 1 , λ 2 , . . . , λ d ′ \lambda_1,\lambda_2,...,\lambda_{d^{\prime}} λ1,λ2,...,λd′和 w 1 , w 2 , … , w d ′ \boldsymbol{w}{1}, \boldsymbol{w}{2}, \ldots, \boldsymbol{w}_{d^{\prime}} w1,w2,…,wd′分别为矩阵 X X T \mathbf X\mathbf X^{\mathrm{T}} XXT的前 d ′ d^{\prime} d′个最大的特征值和单位特征向量就能使得目标函数达到最优值。
至此,我们找到了满足目标原则的W,使得样本从高维空间映射到低维空间,也就是完成了主成分分析。
参考资料:
[1] 《机器学习》周志华
[2]《南瓜书PumpkinBook》