PCA 优化算法
已知 PCA 的目标函数是:
$\arg{\min_W {-\mathbf {tr}(W^TXX^TW)}}$
$s.t. W^TW = I$
PCA 的优化算法要做的就是最优化上面这个函数。
算法一
既然优化目标有等式约束条件,那么正好用我们之前学过的拉格朗日乘子法。
我们令:
$L(W) =\mathbf {tr}(W^TXX^TW)+\lambda (W^TW−I) $
然后对 $W$ 求导,并令导函数为$0$可得:$XX^TW = \lambda W$。
这是一个标准的特征方程求解问题,只需要对协方差矩阵 $XX^T$ 进行特征值分解,将求得的特征值排序:$\lambda_1 \geqslant \lambda_2 \geqslant ... \geqslant \lambda_d$,再取前 $d'$ 个特征值对应的特征向量构成 $W=(w_1, w_2, ..., w_{d'} )$ 即可。
这样我们就求出了 $W$,这就是主成分分析的解!
注意:关于矩阵的特征值和特征向量,请参见 《机器学习常用「线性代数」知识