主成分分析(Principal Components Analysis)的数学原理

已知:

  1. m m 个点组成的集合 S={x(1),,x(m)}Rn
  2. n>l n > l

目标:

寻找一个编码函数

f:nl f : R n → R l

和一个解码函数
g:ln g : R l → R n

使得目标函数:

i=1mx(i)g(f(x(i)))2(1) (1) ∑ i = 1 m ‖ x ( i ) − g ( f ( x ( i ) ) ) ‖ 2

最小。

PCA 约束:

cl,g(c)=Dc(2) (2) ∀ c ∈ R l , g ( c ) = D c

其中 D=(d1,,dl) D = ( d 1 , ⋯ , d l ) n×l n × l 维矩阵,且
DD=Il(3) (3) D ⊺ D = I l

分析

本质上是要求解两个问题:
1. D ∀ D ,求函数 f f 使得目标函数最小。即 xS,D, 若存在一个 c*l, c * ∈ R l , 使得 xg(c*) ‖ x − g ( c * ) ‖ 最小,则 f(x)=c* f ( x ) = c * 。因此

f(x)=argmincxg(c)(4) (4) f ( x ) = argmin c ‖ x − g ( c ) ‖

2. 矩阵 D* D * 使得目标函数最小 。

命题 1

xS,D,f(x)=Dx ∀ x ∈ S , ∀ D , f ( x ) = D ⊺ x

证明

xS,cl, ∀ x ∈ S , ∀ c ∈ R l ,
xg(c)2 ‖ x − g ( c ) ‖ 2
=[xg(c)][xg(c)] = [ x − g ( c ) ] ⊺ [ x − g ( c ) ]
=[xg(c)][xg(c)] = [ x ⊺ − g ( c ) ⊺ ] [ x − g ( c ) ]
=xxg(c)xxg(c)+g(c)g(c) = x ⊺ x − g ( c ) ⊺ x − x ⊺ g ( c ) + g ( c ) ⊺ g ( c )
由于 xg(c), x ⊺ g ( c ) ∈ R , 因此 g(c)x=xg(c), g ( c ) ⊺ x = x ⊺ g ( c ) , 因此
上式 =xx2xg(c)+g(c)g(c) = x ⊺ x − 2 x ⊺ g ( c ) + g ( c ) ⊺ g ( c )
由于第一项 xx x ⊺ x 不依赖于 c c ,且由 (4),
f(x)=argminc2xg(c)+g(c)g(c) f ( x ) = argmin c − 2 x ⊺ g ( c ) + g ( c ) ⊺ g ( c )
将 (2) 代入,得
f(x)=argminc2xDc+(Dc)(Dc) f ( x ) = argmin c − 2 x ⊺ D c + ( D c ) ⊺ ( D c )
=argminc2xDc+cDDc = argmin c − 2 x ⊺ D c + c ⊺ D ⊺ D c
将 (3)代入,得
f(x)=argminc2xDc+cIlc f ( x ) = argmin c − 2 x ⊺ D c + c ⊺ I l c
=argminc2xDc+cc = argmin c − 2 x ⊺ D c + c ⊺ c
令梯度为 0⃗  0 → ,则
c(2xDc+cc)=2Dx+2c=0⃗  ∇ c ( − 2 x ⊺ D c + c ⊺ c ) = − 2 D ⊺ x + 2 c = 0 →
c=Dx c = D ⊺ x
于是 f(x)=Dx f ( x ) = D ⊺ x

命题 2

xS,D,g(f(x))=DDx ∀ x ∈ S , ∀ D , g ( f ( x ) ) = D D ⊺ x

命题 3

X=(x(1),,x(m)), X = ( x ( 1 ) , ⋯ , x ( m ) ) ⊺ ,
D*=argmaxDTr(DXXD) D * = argmax D Tr ⁡ ( D ⊺ X ⊺ X D )

证明

xS,D, ∀ x ∈ S , ∀ D ,
xg(f(x))2 ‖ x − g ( f ( x ) ) ‖ 2
=xDDx2 = ‖ x − D D ⊺ x ‖ 2
=(InDD)x2 = ‖ ( I n − D D ⊺ ) x ‖ 2
=[(InDD)x][(InDD)x] = [ ( I n − D D ⊺ ) x ] ⊺ [ ( I n − D D ⊺ ) x ]
=x(InDD)(InDD)x = x ⊺ ( I n − D D ⊺ ) ⊺ ( I n − D D ⊺ ) x
=x(InDD)(InDD)x = x ⊺ ( I n − D D ⊺ ) ( I n − D D ⊺ ) x
=x(In2DD+DDDD)x = x ⊺ ( I n − 2 D D ⊺ + D D ⊺ D D ⊺ ) x
=x(In2DD+DD)x = x ⊺ ( I n − 2 D D ⊺ + D D ⊺ ) x
=x(InDD)x = x ⊺ ( I n − D D ⊺ ) x
=xxxDDx = x ⊺ x − x ⊺ D D ⊺ x
因此目标函数
mi=1x(i)g(f(x(i)))2 ∑ i = 1 m ‖ x ( i ) − g ( f ( x ( i ) ) ) ‖ 2
=mi=1[(x(i))x(i)(x(i))DDx(i)] = ∑ i = 1 m [ ( x ( i ) ) ⊺ x ( i ) − ( x ( i ) ) ⊺ D D ⊺ x ( i ) ]
=mi=1(x(i))x(i)mi=1(x(i))DDx(i) = ∑ i = 1 m ( x ( i ) ) ⊺ x ( i ) − ∑ i = 1 m ( x ( i ) ) ⊺ D D ⊺ x ( i )
由于第一项 mi=1(x(i))x(i) ∑ i = 1 m ( x ( i ) ) ⊺ x ( i ) 不依赖于 D D ,因此
D*=argmaxDmi=1(x(i))DDx(i) D * = argmax D ∑ i = 1 m ( x ( i ) ) ⊺ D D ⊺ x ( i )
由于
mi=1(x(i))DDx(i) ∑ i = 1 m ( x ( i ) ) ⊺ D D ⊺ x ( i )
=Tr(XDDX) = Tr ⁡ ( X D D ⊺ X ⊺ )
=Tr(XXDD) = Tr ⁡ ( X ⊺ X D D ⊺ )
=Tr(DXXD) = Tr ⁡ ( D ⊺ X ⊺ X D )
因此
D*=argmaxDTr(DXXD) D * = argmax D Tr ⁡ ( D ⊺ X ⊺ X D )

命题 4

设半正定矩阵 XX X ⊺ X 的前 l l 个最大的特征向量(从大到小排列)为 λ1,,λl ,则
1. Tr(DXXD)li=1λi Tr ⁡ ( D ⊺ X ⊺ X D ) ≤ ∑ i = 1 l λ i
2. di d i 为属于 λi λ i 的特征向量时等号成立。

证明

由于 XX X ⊺ X 是半正定的实对称矩阵,因此存在对角线矩阵
Λ=λ1,λn, Λ = ( λ 1 , ⋱ λ n ) , 其中 {λi} { λ i } 单调不增,即 λiλj,1ijn λ i ≥ λ j , 1 ≤ i ≤ j ≤ n
存在正交矩阵 Pn×n P n × n , 使得
XX=PΛP X ⊺ X = P Λ P ⊺
于是
DXXD=DPΛPD=QΛQ D ⊺ X ⊺ X D = D ⊺ P Λ P ⊺ D = Q ⊺ Λ Q
其中 Q=(qij)n×l=PD Q = ( q i j ) n × l = P ⊺ D
于是 QQ=(PD)PD=DPPD=Il Q ⊺ Q = ( P ⊺ D ) ⊺ P ⊺ D = D ⊺ P P ⊺ D = I l
Tr(DXXD)=Tr(QΛQ) Tr ⁡ ( D ⊺ X ⊺ X D ) = Tr ⁡ ( Q ⊺ Λ Q )
=ni=1lj=1λiqij2 = ∑ i = 1 n ∑ j = 1 l λ i q i j 2
=ni=1λi(lj=1qij2) = ∑ i = 1 n λ i ( ∑ j = 1 l q i j 2 )
由于 QQ=Il Q ⊺ Q = I l ,因此
ni=1qij2=1,1jn ∑ i = 1 n q i j 2 = 1 , 1 ≤ j ≤ n
因此 ni=1(lj=1qij2)=lj=1ni=1λiqij2=l ∑ i = 1 n ( ∑ j = 1 l q i j 2 ) = ∑ j = 1 l ∑ i = 1 n λ i q i j 2 = l
由于 Q Q l l 个列向量可以扩展成 n n n 维的标准正交基,因此 Q 的行向量长度小于等于 1 1 ,即 j=1lqij21,1in
又由于 {λi} { λ i } 单调不增,
因此 ni=1λi(lj=1qij2)li=1λi ∑ i = 1 n λ i ( ∑ j = 1 l q i j 2 ) ≤ ∑ i = 1 l λ i
因此 Tr(DXXD)li=1λi Tr ⁡ ( D ⊺ X ⊺ X D ) ≤ ∑ i = 1 l λ i
特别的,当 qij=δij q i j = δ i j ,即 Q=(Il0) Q = ( I l 0 ) 时,
ni=1λi(lj=1qij2)=li=1λi ∑ i = 1 n λ i ( ∑ j = 1 l q i j 2 ) = ∑ i = 1 l λ i
此时 D=PQ=(p1,,pl) D = P Q = ( p 1 , ⋯ , p l ) 即为 P P 的前 l l 列组成的矩阵,即 di 为属于 λi λ i 的特征向量。

定义

添加约束:

xn,g(x)=Dx(5) (5) ∀ x ∈ R n , g ( x ) = D ⊺ x

Y=(y1,,yl)=XD=f(x(1))f(x(m)), Y = ( y 1 , ⋯ , y l ) = X D = ( f ( x ( 1 ) ) ⊺ ⋮ f ( x ( m ) ) ⊺ ) ,
yi y i Y Y 的第 i i 主成分
称:
Percentage of total variation retained = VarYVarX

命题 5

D*=argmaxDVarY D * = argmax D Var ⁡ Y

证明

VarY=Tr(YY)=Tr(DXXD) Var ⁡ Y = Tr ⁡ ( Y ⊺ Y ) = Tr ⁡ ( D ⊺ X ⊺ X D )
因此 argmaxDVarY=argmaxDTr(DXXD) argmax D Var ⁡ Y = argmax D Tr ⁡ ( D ⊺ X ⊺ X D )
由命题3, D*=argmaxDVarY D * = argmax D Var ⁡ Y

命题 6

VarYVarXi=1lλii=1nλi Var ⁡ Y Var ⁡ X ≤ ∑ i = 1 l λ i ∑ i = 1 n λ i

命题 7

di d i 为属于 λi λ i 的特征向量时, yiyj=λjδij y i ⊺ y j = λ j δ i j

证明

yi=Xdi,1il y i = X d i , 1 ≤ i ≤ l
于是 yiyj=(Xdi)Xdj=diXXdj y i ⊺ y j = ( X d i ) ⊺ X d j = d i ⊺ X ⊺ X d j
di d i 为属于 λi λ i 的特征向量时,
diXXdj=λjdidj=λjδij d i ⊺ X ⊺ X d j = λ j d i ⊺ d j = λ j δ i j
因此 yiyj=λjδij y i ⊺ y j = λ j δ i j

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值