从数学理解主成分分析

本文进行出发点是一个包含N个对象的 y n {y_{n}} yn的数据集,每一个对象是一个M维的向量。

基于主成分分析,我们希望将M维数据转化为D维数据。PCA定义了一组线性投影,每个投影维度都是原始数据的一个线性组合。即如果从M维投影到D维,PCA定义D个向量 w d {w_{d}} wd(每个都是M维),其中投影空间的第d个元素 x n d {x_{nd}} xnd(其中 x n = [ x n 1 , x n 2 , … , x n D ] {x_{n}}=[x_{n1},x_{n2},\dots,x_{nD}] xn=[xn1,xn2,,xnD]),使用下式计算:
x n d = w d ⊤ y n x_{n d}=\mathbf{w}_{d}^{\top} \mathbf{y}_{n} xnd=wdyn

学习的主要任务是选择将多少数据数据维度投影到D,然后为每一个原始数据维度选择一个投影向量 w d {w_{d}} wd

需满足如下约束:

  • 选择投影的条件:方差最大化(表示最多的信息)

  • 投影后向量互不相关:投影互相垂直
    w i ⊤ w j = 0 , ∀ j ≠ i \mathbf{w}_{i}^{\top} \mathbf{w}_{j}=0, \forall j \neq i wiwj=0,j=i

  • 投影后向量的长度不发生改变( ∣ ∣ w i ∣ ∣ = 1 {||w_{i}||=1} wi=1

正式推导

为便于推导给出假设条件(可以通过减去 y ‾ {\overline{\mathbf{y}}} y得到满足):
y ‾ = 1 N ∑ n = 1 N y n = 0 \overline{\mathbf{y}}=\frac{1}{N} \sum_{n=1}^{N} \mathbf{y}_{n}=0 y=N1n=1Nyn=0
从D=1维度开始,此时仅需要找到一个 w {w} w向量,此时投影结果为一数值。
x n = w ⊤ y n x_{n}=\mathbf{w}^{\top} \mathbf{y}_{n} xn=wyn
σ x 2 {\sigma_{x}^{2}} σx2可表示为:
σ x 2 = 1 N ∑ n = 1 N ( x n − x ˉ ) 2 \sigma_{x}^{2}=\frac{1}{N} \sum_{n=1}^{N}\left(x_{n}-\bar{x}\right)^{2} σx2=N1n=1N(xnxˉ)2
基于 y ‾ = 0 {\overline{\mathbf{y}}=0} y=0的假设,可对 x ‾ {\overline{\mathbf{x}}} x进行简化,
x ˉ = 1 N ∑ n = 1 N w ⊤ y n = w ⊤ ( 1 N ∑ n = 1 N y n ) = w ⊤ y ‾ = 0 \begin{aligned} \bar{x} &=\frac{1}{N} \sum_{n=1}^{N} \mathbf{w}^{\top} \mathbf{y}_{n} \\ &=\mathbf{w}^{\top}\left(\frac{1}{N} \sum_{n=1}^{N} \mathbf{y}_{n}\right)\\ &=\mathbf{w}^{\top} \overline{\mathbf{y}}=0 \end{aligned} xˉ=N1n=1Nwyn=w(N1n=1Nyn)=wy=0
σ x 2 {\sigma_{x}^{2}} σx2可表示为:
σ x 2 = 1 N ∑ n = 1 N x n 2 \sigma_{x}^{2}=\frac{1}{N} \sum_{n=1}^{N} x_{n}^{2} σx2=N1n=1Nxn2
代入 x n = w ⊤ y n {x_{n}=\mathbf{w}^{\top} \mathbf{y}_{n}} xn=wyn可得:
σ x 2 = 1 N ∑ n = 1 N ( w ⊤ y n ) 2 = 1 N ∑ n = 1 N w ⊤ y n y n ⊤ w = w ⊤ ( 1 N ∑ n = 1 N y n y n ⊤ ) w σ x 2 = w ⊤ C w \begin{aligned} \sigma_{x}^{2} &=\frac{1}{N} \sum_{n=1}^{N}\left(\mathbf{w}^{\top} \mathbf{y}_{n}\right)^{2} \\ &=\frac{1}{N} \sum_{n=1}^{N} \mathbf{w}^{\top} \mathbf{y}_{n} \mathbf{y}_{n}^{\top} \mathbf{w} \\ &=\mathbf{w}^{\top}\left(\frac{1}{N} \sum_{n=1}^{N} \mathbf{y}_{n} \mathbf{y}_{n}^{\top}\right) \mathbf{w} \\ \sigma_{x}^{2} &=\mathbf{w}^{\top} \mathbf{C} \mathbf{w} \end{aligned} σx2σx2=N1n=1N(wyn)2=N1n=1Nwynynw=w(N1n=1Nynyn)w=wCw
其中C为样本的协方差矩阵,定义为:
C = 1 N ∑ n = 1 N ( y n − y ‾ ) ( y n − y ‾ ) ⊤ \mathbf{C}=\frac{1}{N} \sum_{n=1}^{N}\left(\mathbf{y}_{n}-\overline{\mathbf{y}}\right)\left(\mathbf{y}_{n}-\overline{\mathbf{y}}\right)^{\top} C=N1n=1N(yny)(yny)
注意:该式意味着通过强制 y ‾ = 0 {\overline{\mathbf{y}}=0} y=0,可以对数据进行变换而不损失任何信息(方差代表了信息量)。即无论是否强制 y ‾ = 0 {\overline{\mathbf{y}}=0} y=0,C都相同。

PCA目标: 最大化方差 即最大化 w ⊤ C w {\mathbf{w}^{\top} \mathbf{C} \mathbf{w}} wCw

  • 通过增加 w \mathbf{w} w中元素的值,来实现增加 {} w ⊤ C w {\mathbf{w}^{\top} \mathbf{C} \mathbf{w}} wCw。——这就是为何要限制 ∣ ∣ w i ∣ ∣ = 1 {||w_{i}||=1} wi=1

  • ∣ ∣ w i ∣ ∣ = 1 {||w_{i}||=1} wi=1的条件下,使得 w ⊤ C w {\mathbf{w}^{\top} \mathbf{C} \mathbf{w}} wCw最大(拉格朗日乘数法

    L = w ⊤ C w − λ ( w ⊤ w − 1 ) L=\mathbf{w}^{\top} \mathbf{C} \mathbf{w}-\lambda\left(\mathbf{w}^{\top} \mathbf{w}-1\right) L=wCwλ(ww1)

∂ L ∂ w = 2 C w − 2 λ w = 0 \frac{\partial \mathbf{L}}{\partial \mathbf{w}}=2 \mathbf{C} \mathbf{w}-2 \lambda \mathbf{w}=\mathbf{0} wL=2Cw2λw=0

C w = λ w \mathbf{C} \mathbf{w}=\lambda \mathbf{w} Cw=λw

由上式联想到特征向量和特征值

对上述向量同时左乘 w ⊤ {\mathbf{w}^{\top}} w可得:
w ⊤ C w = w ⊤ λ w {\mathbf{w}^{\top}}\mathbf{C} \mathbf{w}={\mathbf{w}^{\top}}\lambda \mathbf{w} wCw=wλw
由于 w ⊤ w = 1 {{\mathbf{w}^{\top}}\mathbf{w}=1} ww=1 σ x 2 = w ⊤ C w {\sigma_{x}^{2}={\mathbf{w}^{\top}} \mathbf{C} \mathbf{w}} σx2=wCw
σ x 2 = λ \sigma_{x}^{2}=\lambda σx2=λ
即特征值 λ {\lambda} λ对应于 w {\mathbf{w}} w定义的投影空间中数据的方差!

如果找到协方差矩阵 C {\mathbf{C}} C中的 M {M} M个特征向量/特征向量对,则最大的特征值对应的特征向量/特征值对应的就是方差最大化方向上的投影 w 1 {\mathbf{w}_{1}} w1,排在第二位的特征值对应 w 2 {\mathbf{w}_{2}} w2,排在第三位的特征值对应 w 3 {\mathbf{w}_{3}} w3

仅仅保证了方差最大,线性无关呢?

特征向量之间是否相互垂直——对于不同特征值的特征值一定是垂直的
A w 1 = λ 1 w 1 A w 2 = λ 2 w 2 \mathbf{A}\mathbf{w}_{1}= \lambda_1 \mathbf{w}_1\\ \mathbf{A}\mathbf{w}_{2}= \lambda_2 \mathbf{w}_2 Aw1=λ1w1Aw2=λ2w2
不妨一个左乘 w 2 ⊤ {\mathbf{w}_2^{\top}} w2,一个左乘 w 1 ⊤ {\mathbf{w}_1^{\top}} w1,可得:
w 2 ⊤ A w 1 = w 2 ⊤ λ 1 w 1 w 1 ⊤ A w 2 = w 1 ⊤ λ 2 w 2 \mathbf{w}_2^{\top}\mathbf{A}\mathbf{w}_{1}= \mathbf{w}_2^{\top}\lambda_1 \mathbf{w}_1\\ \mathbf{w}_1^{\top}\mathbf{A}\mathbf{w}_{2}= \mathbf{w}_1^{\top}\lambda_2 \mathbf{w}_2 w2Aw1=w2λ1w1w1Aw2=w1λ2w2
对于等式左边而言 w 2 ⊤ A w 1 = w 1 ⊤ A w 2 {\mathbf{w}_2^{\top}\mathbf{A}\mathbf{w}_{1}=\mathbf{w}_1^{\top}\mathbf{A}\mathbf{w}_{2}} w2Aw1=w1Aw2(数值),故等式右面也一定相等,即
w 2 ⊤ λ 1 w 1 = w 1 ⊤ λ 2 w 2 \mathbf{w}_2^{\top}\lambda_1 \mathbf{w}_1=\mathbf{w}_1^{\top}\lambda_2\mathbf{w}_2\\ w2λ1w1=w1λ2w2
又因为 w 2 ⊤ w 1 = w 1 ⊤ w 2 {\mathbf{w}_2^{\top}\mathbf{w}_{1}=\mathbf{w}_1^{\top}\mathbf{w}_{2}} w2w1=w1w2,故可移项得,
( λ 1 − λ 2 ) w 1 ⊤ w 2 = 0 (\lambda_1 -\lambda_2)\mathbf{w}_1^{\top}\mathbf{w}_2=0 (λ1λ2)w1w2=0

由于 λ 1 ≠ λ 2 {\lambda_1 \ne \lambda_2} λ1=λ2故可得 w 1 ⊤ w 2 {\mathbf{w}_1^{\top}\mathbf{w}_2} w1w2,故可得不同特征值对应的特征向量一定线性无关。


总结

在数据对象集合 y 1 , … , y N \mathbf{y}_{1}, \ldots, \mathbf{y}_{N} y1,,yN上进行投影操作(定义 Y = [ y 1 , … , y N ] ⊤ \mathbf{Y}=[\mathbf{y}_{1}, \ldots, \mathbf{y}_{N}]^{\top} Y=[y1,,yN])包括以下步骤:

  1. 让每个元素减去 y ‾ {\overline{\mathbf{y}}} y,使得 M {M} M维数据的均值为0,其中 y ‾ = 1 N ∑ n = 1 N y n {\overline{\mathbf{y}}=\frac{1}{N} \sum_{n=1}^{N} \mathbf{y}_{n}} y=N1n=1Nyn.
  2. 计算样本的协方差矩阵 C = 1 N ∑ n = 1 N y n y n ⊤ {\mathbf{C}=\frac{1}{N} \sum_{n=1}^{N} \mathbf{y}_{n} \mathbf{y}_{n}^{\top}} C=N1n=1Nynyn ( C = 1 N Y ⊤ Y ) {\left(\mathbf{C}=\frac{1}{N} \mathbf{Y}^{\top} \mathbf{Y}\right)} (C=N1YY)
  3. 求解得到M个特征向量/特征值对
  4. 找到 D {D} D个最大的特征值对应的特征向量 w 1 , … , w D \mathbf{w}_{1}, \ldots, \mathbf{w}_{D} w1,,wD
  5. 在投影空间中,为对象n建立第d维 x n d = w d ⊤ y n x_{n d}=\mathbf{w}_{d}^{\top} \mathbf{y}_{n} xnd=wdyn(或者 X = Y W \mathbf{X}=\mathbf{Y} \mathbf{W} X=YW其中 W = [ w 1 , … , w D ] \mathbf{W}=\left[\mathbf{w}_{1}, \ldots, \mathbf{w}_{D}\right] W=[w1,,wD],即按顺序排列D个特征向量建立 M × D {M×D} M×D矩阵,X为 N × D {N×D} N×D矩阵,定义为 X = [ x 1 , … , x N ] \mathbf{X}=\left[\mathbf{x}_{1}, \ldots, \mathbf{x}_{N}\right] X=[x1,,xN])
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值