PCA推导中矩阵约束下的拉格朗日乘子
(一)前言
在仔细看PCA推导$^{[1]}$的过程中,一开始进行的非常顺利,但后来被一个求极值的式子卡住,而且这个问题正是为何取最大的$m$个特征值原因的关键,一卡就是一天,实在是太弱鸡了。。。后来各种找资料,结果西瓜书上写地更简略,只说了利用拉格朗日乘子算得结果,算了还是不对,但是在找西瓜书资料的过程中,发现了$github$上有一个“南瓜书”$^{[2]}$的项目,里面大神非常详细地写了完整的推导过程,核心的思想主要来自于$StackExchange$网站上的一个提问$^{[3]}$,其根本上的式子来源是经典的凸优化教程$^{[4]}$的$5.9$节,过程真是蜿蜒曲折(滑稽。其中,核心正是基于矩阵约束下的拉格朗日乘子法,这是之前没有遇到过的,但是感觉这种方法非常重要,故作整理。话不多说,赶紧开始搬运推导!
(二)过程
- 引理:设$f:$ $R^{n×m} \to R,\Phi:$ $R^{n×m} \to R^{p×q}$,则对于条件极值问题$max$ $f(X)$ $ s.t.$ $\Phi(X)=0$或$min$ $f(X)$ $ s.t.$ $\Phi(X)=0$,其$Lagrange$函数为$L(X,Z)=f(X)+tr(Z^T\Phi)$,其中$Z$为大小与$\Phi(X)$完全相同的矩阵且它的每个元素都是一个$Lagrange$乘子
- 问题:设$X\in n×p,W\in n×m$,求$W^\star=\underbrace{\arg\min}_{W} tr(W^TXX^TW)$ $s.t.$ $W^TW=I$
- 解答:
设$L(W,Z)=tr(W^TXX^TW)-tr(Z^T(W^TW-I))$,其中$Z\in R^{m×m}$为乘子矩阵
先考虑约束${w_i}^Tw_i=1(i=1,2,...,m)$,即取$Z=\Lambda=diag(\lambda_1,\lambda_2,...,\lambda_m)$
这样做是合理的原因在于此时函数$L$的第二项$-tr(Z^T(W^TW-I))=-\sum_{i=1}^{m}\lambda_i({w_i}^Tw_i-1)$
对$W$求导得:$\frac{\partial L(W,\Lambda)}{\partial W}=2XX^TW-2W\Lambda$,令之为$0$得:$XX^TW=W\Lambda$
将$W$和$\Lambda$展开后得到:$XX^Tw_i=\lambda_iw_i,i=1,2,...,m$
发现$\lambda_i$和$w_i$必定分别是$XX^T$的某个特征值与其对应的特征向量
上述为极值成立的必要条件,带入原式得$W^\star=\sum_{i=1}^m\lambda_i$,下面考虑加上正交约束
显然,在新约束下的某一个解若还能取到原约束的最值,则该值必然是问题的一个解
由此,就直接取$w_i$是$\lambda$对应的特征向量,则不同特征值对应的特征向量必然正交
而对于代数重数超过$1$的特征值,由于$XX^T$为实对称矩阵,故几何重数与代数重数相等
因而可通过$Schmidt$正交化在该特征值下的特征子空间内取到相应的正交特征向量组
由$W^\star$为$XX^T$的$n$个特征值之和,故选最大的$m$个特征值(可有重根)和相应的$m$个特征向量即可
参考资料:
- 刘建平. 主成分分析(PCA)原理总结 (https://www.cnblogs.com/pinard/p/6239403.html#4414913)
- Datawhale(由谢文睿等人发起). 南瓜书 (https://datawhalechina.github.io/pumpkin-book/#/chapter10/chapter10)
- Michael Grant. (https://math.stackexchange.com/questions/1104376/how-to-set-up-lagrangian-optimization-with-matrix-constrains)
- Stephen Boyd. Convex Optimization, 2004