机器学习入门(十七)——PCA(中)

1.0 梯度求解PCA

        在求极值的问题中,有梯度上升和梯度下降两种最优化方法。梯度上升用于求最大值,梯度下降用于求最小值。在线性回归时,为找到是损失函数最小的参数值使用了梯度下降法。

        PCA中为了找到是方差计算函数最大的单位向量w,应使用梯度上升法。

        PCA的目标函数为方差计算函数,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。使用梯度上升法,要先对其求导。

        分别对w_i求导,可得:

\frac{d f}{d w_1} =\frac{2}{m} \sum_{i=1}^m(X_1^{(i)}w_1+X_2^{(i)}w_2...+X_n^{(i)}w_n)X_1^{(i)}=\sum_{i=1}^m(X^{(i)}w)X_1^{(i)}

\frac{d f}{d w_2} =\frac{2}{m} \sum_{i=1}^m(X_1^{(i)}w_1+X_2^{(i)}w_2...+X_n^{(i)}w_n)X_2^{(i)}=\sum_{i=1}^m(X^{(i)}w)X_2^{(i)}

                                       …………

\frac{d f}{d w_n} =\frac{2}{m} \sum_{i=1}^m(X_1^{(i)}w_1+X_2^{(i)}w_2...+X_n^{(i)}w_n)X_n^{(i)}=\sum_{i=1}^m(X^{(i)}w)X_n^{(i)}

        将以上n式化成矩阵形式,得到梯度:

        有了梯度就可以使用梯度上升法求解方差最大值了。

2.0 求n个主成分

2.1 基本思想

        在实际的降维过程可能会涉及到数据在多个维度的降维,这就需要依次求解多个主成分。

        求解第一个主成分后,假设得到映射的轴为w所表示的向量,如果此时需要求解第二个主成分怎么做?答案是:需要先将数据集在第一个主成分上的分量去掉,然后在没有第一个主成分的基础上再寻找第二个主成分。

        如上图所示,X^{(i)}在第一主成分w上的分量为(X_{pr1}^{(i)},X_{pr2}^{(i)}),也就是图中蓝色的向量,其模长等于X^{(i)}w的点积。由于w是单位向量,向量的模长乘以方向上的单位向量就可以得到这个向量。

        而求下一个主成分就是将数据在第一主成分上的分量去掉,再对新的数据求第一主成分。那么如何去掉第一主成分呢?用样本X^{(i)}减去分量(X_{pr1}^{(i)},X_{pr2}^{(i)}),得到结果的几何意义就是一条与第一主成分垂直的一个轴。这个轴就是样本数据去除第一主成分分量后得到的结果,即图中的绿色部分:X’^{(i)}

        然后在新的样本中求第一主成分,得到的就是第二主成分。循环往复就可以求第n主成分。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容