PCA主成分分析
目标函数1:最小化重建误差
重建误差是指将低维表示重新转化为高维表示时与原来的高维表示的误差.
最小化重建误差可用最小化所有样本的平方重建误差之和来替代.
- 假定
∣∣wi∣∣=1,wiTwj=0(i̸=j)为新坐标
-
w用在两个函数上:
- 编码:
zi=WTxi,zij=wjTxi
- 解码:
x~i=Wzi=∑j=1d′zijwj
- 目标:最小平方重建误差和
minW∈Rd×d′∑i=1m∣∣xi−Wzi∣∣2
重建误差:
∣∣x−x~∣∣
当低维恰好是高维在低维向量
wi上的投影时,重构误差最小.
推导:
i=1∑m∣∣xi−Wzi∣∣2=i=1∑m∣∣xi−j=1∑d′zijwj∣∣2=i=1∑mziTzi−2j=1∑mziTWTxi+const∝−tr(WT(i=1∑mxixiT)W)=−tr(WTXXTW)
其中,
∣∣wi∣∣=1,wiTwj=0(i̸=j)
zi=(zi1,zi2,⋯,zid′)
zi=WTxi
zij=wjTxi是xi在低维坐标系下第j维坐标
xi~=j=1∑d′zijwj是基于zi重构得到的向量
最小化重建误差即最小化
di,在给定样本
xi的情况下,也就等价于最大化样本点在特征向量上的投影.
在数据归一化后(向量原点在样本均值上),为了最大化样本点在特征向量上的投影,很容易发现特征向量应当沿着样本点分布范围最大的方向,即方差最大方向.
目标函数2:最大化方差
- 中心思想:寻找一个方向向量,使得数据投影到其上之后方差最大.
- 如果能找到就继续寻找下一个方向向量,该向量正交于之前的方向向量,并且尽可能保持数据方差.
- 这样的一些方向向量,称为主成分
- 目标是捕捉数据的内在变化
- 最大化样本投影的方差(假定样本中心化了)
maxi∑ziTzi=wmaxtr(WTXXTW)
PCA目标函数计算
- 寻找
W∈Rd×d′使得:
Wmaxtr(WTXXTW)
s.t. WTW=1
- 拉格朗日(Lagrange)方法
- 引入拉格朗日因子
λi,1≤i≤d得到拉格朗日方程:
L=Tr(WTXXTW)−i=1∑dλi(wiTwi−1)
- 矩阵的迹的性质
∂W∂tr(WAWT)=2WA,A=AT
- 令
∂WT∂L=0,那么
XXTW=λW
-
W是
XXT的特征向量
求解PCA(1)
输入:
X=x1,x2…xm,低维空间维度
d′
算法过程:
-
xi=xi−m1∑j=1mxj
- 计算
XXT
- 对
XXT做特征分解
-
d′最大特征值对应的特征向量
w1,w2…wd′
输出:
W=(w1,w2…wd′)
表现
原始维度不是非常大时表现良好.
如果原始维度很大,则可以采用奇异值分解(Singular Value Decomposition, SVD).
- 有一些实现可以直接找到最大的N个特征值对应的特征向量.
下面我们从SVD角度来考虑PCA.
- 奇异值是特征值的非负平方根
-
XTX的特征向量构成
VT
-
XXT的特征向量构成
U
-
XXT和
XTX具有相同的非零特征值
求解PCA(2)
输入:
X=x1,x2…xm,低维空间维度
d′
算法过程:
-
xi=xi−m1∑j=1mxj
- 奇异值分解:
X≈Ud×d∑d×mVm×mT
-
d′奇异值对应的左奇异向量
u1,u2…ud′
输出:
U=(u1,u2…ud′)
参数d’
- 用户指定
- 利用简单的分类器(如KNN)通过交叉验证方式选择
- 使用重建阈值
∑j=1dλj∑i=1d′λi≥t(如方差的85%)
PCA总结
优点:
- 特征向量方法
- 没有额外要调节的参数
- 没有迭代
- 没有局部最小值
缺点:
- 只用了二阶统计量,不能处理高阶依赖
- 受限于线性投影