本文进行出发点是一个包含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=wd⊤yn
学习的主要任务是选择将多少数据数据维度投影到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 wi⊤wj=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=1∑Nyn=0
从D=1维度开始,此时仅需要找到一个
w
{w}
w向量,此时投影结果为一数值。
x
n
=
w
⊤
y
n
x_{n}=\mathbf{w}^{\top} \mathbf{y}_{n}
xn=w⊤yn
故
σ
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=1∑N(xn−xˉ)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=1∑Nw⊤yn=w⊤(N1n=1∑Nyn)=w⊤y=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=1∑Nxn2
代入
x
n
=
w
⊤
y
n
{x_{n}=\mathbf{w}^{\top} \mathbf{y}_{n}}
xn=w⊤yn可得:
σ
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=1∑N(w⊤yn)2=N1n=1∑Nw⊤ynyn⊤w=w⊤(N1n=1∑Nynyn⊤)w=w⊤Cw
其中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=1∑N(yn−y)(yn−y)⊤
注意:该式意味着通过强制
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}} w⊤Cw
-
通过增加 w \mathbf{w} w中元素的值,来实现增加 {} w ⊤ C w {\mathbf{w}^{\top} \mathbf{C} \mathbf{w}} w⊤Cw。——这就是为何要限制 ∣ ∣ 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}} w⊤Cw最大(拉格朗日乘数法)
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=w⊤Cw−λ(w⊤w−1)
∂ 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} ∂w∂L=2Cw−2λ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}
w⊤Cw=w⊤λw
由于
w
⊤
w
=
1
{{\mathbf{w}^{\top}}\mathbf{w}=1}
w⊤w=1且
σ
x
2
=
w
⊤
C
w
{\sigma_{x}^{2}={\mathbf{w}^{\top}} \mathbf{C} \mathbf{w}}
σx2=w⊤Cw,
σ
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
w2⊤Aw1=w2⊤λ1w1w1⊤Aw2=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}}
w2⊤Aw1=w1⊤Aw2(数值),故等式右面也一定相等,即
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}}
w2⊤w1=w1⊤w2,故可移项得,
(
λ
1
−
λ
2
)
w
1
⊤
w
2
=
0
(\lambda_1 -\lambda_2)\mathbf{w}_1^{\top}\mathbf{w}_2=0
(λ1−λ2)w1⊤w2=0
由于 λ 1 ≠ λ 2 {\lambda_1 \ne \lambda_2} λ1=λ2故可得 w 1 ⊤ w 2 {\mathbf{w}_1^{\top}\mathbf{w}_2} w1⊤w2,故可得不同特征值对应的特征向量一定线性无关。
总结
在数据对象集合 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]⊤)包括以下步骤:
- 让每个元素减去 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=N1∑n=1Nyn.
- 计算样本的协方差矩阵 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=N1∑n=1Nynyn⊤或 ( C = 1 N Y ⊤ Y ) {\left(\mathbf{C}=\frac{1}{N} \mathbf{Y}^{\top} \mathbf{Y}\right)} (C=N1Y⊤Y)
- 求解得到M个特征向量/特征值对
- 找到 D {D} D个最大的特征值对应的特征向量 w 1 , … , w D \mathbf{w}_{1}, \ldots, \mathbf{w}_{D} w1,…,wD
- 在投影空间中,为对象n建立第d维 x n d = w d ⊤ y n x_{n d}=\mathbf{w}_{d}^{\top} \mathbf{y}_{n} xnd=wd⊤yn(或者 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])