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$个特征向量即可

参考资料:

  1. 刘建平. 主成分分析(PCA)原理总结 (https://www.cnblogs.com/pinard/p/6239403.html#4414913)
  2. Datawhale(由谢文睿等人发起). 南瓜书 (https://datawhalechina.github.io/pumpkin-book/#/chapter10/chapter10)
  3. Michael Grant. (https://math.stackexchange.com/questions/1104376/how-to-set-up-lagrangian-optimization-with-matrix-constrains)
  4. Stephen Boyd. Convex Optimization, 2004
posted @ 2019-11-04 19:56  GYHHAHA  阅读(3338)  评论(0编辑  收藏  举报