主成分分析(Principle Component Analysis,简称:PCA)是一种非监督学习的机器算法,主要用于数据的降维。
PCA 基本原理
以有2个特征的二维平面举例,如图:
横轴表示特征1,纵轴表示特征2,其中4个点表示二维的特征样本。如果要对样本进行降维降到一维,可以将这些点映射到横轴、纵轴或者其它轴上如:
映射到不同的轴后样本间间距会不一样,而要找的就是让样本间间距最大的轴。假定这个轴方向为 $w = (w1, w2)$。
对于样本间间距可以用方差 $Var(x) = \frac{1}{m}\sum_{i=1}^m(x_i-\overline x)^2$ 来衡量,方差越大,样本间越稀疏。
接着进行均值归0(demean)处理,即 $\overline x = 0$,使得 $Var(x) = \frac{1}{m}\sum_{i=1}^m(x_i)^2$。均值归0处理使得原始样本发生了变化转换成了新的样本 $X$。将其映射到轴 $w$ 上又得到新的样本 $X_{pr}$,此时的方差为:
$$
Var(X_{pr}) = \frac{1}{m}\sum_{i=1}^m(X_{pr}^{(i)})^2
$$
因为 $X_{pr}^{(i)}$ 是一个向量 $(X_{pr1}^{(i)}, X_{pr2}^{(i)})$,所以实际的方差表示为:
$$
Var(X_{pr}) = \frac{1}{m}\sum_{i=1}^m||X_{pr}^{(i)}||^2
$$
最后计算 $||X_{pr}^{(i)}||$,如图所示:
$||X_{pr}^{(i)}|| = X^{(i)}·w$ ($w$ 为单位向量),如此得到了想要的目标函数:
求 $w$ 使得 $Var(X_{pr}) = \frac{1}{m}\sum_{i=1}^m(X^{(i)}·w)^2$ 最大;对于多维特征,即 $\frac{1}{m}\sum_{i=1}^m(X_1^{(i)}w_1+X_2^{(i)}w_2+...+X_n^{(i)}w_n)^2$ 最大。
梯度上升法解决PAC问题
在梯度上升法中,$+\eta\nabla f$ 代表了 $f$ 增大的方向。
对于 PAC 的目标函数:求 $w$ 使得 $f(X) = \frac{1}{m}\sum_{i=1}^m(X_1^{(i)}w_1+X_2^{(i)}w_2+...+X_n^{(i)}w_n)^2$ 最大,可以使用梯度上升法来解决。
$f(X)$ 的梯度为:
$$
\nabla f = \begin{pmatrix} \frac{\partial f}{\partial w_1} \\\ \frac{\partial f}{\partial w_2} \\\ \cdots \\\ \frac{\partial f}{\partial w_n} \end{pmatrix} = \fra