1. PCA
1.1 PCA算法
为什么要使用主成分分析?正如名字所示,其目的显而易见,不再赘述,此处从自动编码器的角度审视PCA。
最小化如下损失函数:
C=12m∑i=1m||y(i)−WWTx(i)||2
根据
WWT
的对称性,我们使用eigen-decompose:
WWT=VDVT
其中V是单位正交阵,D是对角矩阵,都是d*d维,
VVT=I
,
D
中的非零值小于我们可以从物理意义上来解析 h(x) 到底干了什么:
- VTx 首先对x进行坐标变换。此处V是d*d维,x是d维,所以此处对应的是将向量x旋转;
- D(VTx) ,因为D中非零值小于 d¯ 个,所以其作用是将 ≥(d−d¯ 个分量设为0,其余分量进行scale。
- V(DVTx) 将上述操作后的变量变回原来的坐标系,此处对应的是将向量旋转回来。
||y−WWT||2=||VIVTx−VDVTx||2=[V(IVTx−DVTx)]T[V(IVTx−DVTx)]=(IVTx−DVTx)T(IVTx−DVTx)=||(I−D)VTx||2
那么我们的问题变成:
minVminD12m∑i=1m||(I−D)VTx(i)||2
首先对内层最小化,很明显 I−D 中的0越多越好:
接下来我们就外层进行最小化,很明显
假设 d¯=1 ,则 VT 只会保留下第一行 vT ,则有
maxv∑i=1mvTx(i)x(i)Tv s.t.vTv=1
如何求解?令
J=vTXTXv−λ(vTv−1)
令偏微分等于0,有
XTXv=λv
此时有
maxvvTXTXv=λ
什么意思呢?我们只要对 XTX 进行特征分解即可。
1.2 PCA使用注意事项
如果输入的多个维度数值不在同一尺度下,那么可以先将数值都变换到同一尺度。
如何选择
d¯
?
一定要记住,不要过早地使用PCA。