使用SVD来求解优化问题最优值
假设我们想要求解如下问题:
R ∗ = argmax R ∑ i = 1 n q i T R p i = ∑ i = 1 n t r ( Q T R P ) i i = t r ( Q T R P ) R\mathbf{^{*}} =\underset{R}{\operatorname{argmax}}\sum ^{n}_{i=1} q^{T}_{i} Rp_{i} =\sum ^{n}_{i=1} tr\left( Q^{T} RP\right)_{ii} =tr\left( Q^{T} RP\right) R∗=Rargmaxi=1∑nqiTRpi=i=1∑ntr(QTRP)ii=tr(QTRP)
令 H ≜ ∑ i = 1 n p i q i T \displaystyle H\triangleq \sum ^{n}_{i=1} p_{i} q^{T}_{i} H≜i=1∑npiqiT,于是问题变成求解如下最优值:
R ∗ = argmax R t r ( Q T R P ) = t r ( R P Q T ) = t r ( R H ) R\mathbf{^{*}} =\underset{R}{\operatorname{argmax}}\ tr\left( Q^{T} RP\right)=tr\left( RPQ^{T}\right)=tr\left( RH\right) R∗=Rargmax tr(QTRP)=tr(RPQT)=tr(RH)
现在,如果H的SVD分解为, H = U Λ V T \displaystyle H=U\Lambda V^{T} H=UΛVT,可以证明
R ∗ = V U T R\mathbf{^{*}} =VU^{T} R∗=VUT
一定是该优化问题的最优解。
现在证明一个引理:
引理1:对于任意的正定矩阵
A
A
T
\displaystyle AA^{T}
AAT,对于任意的正交矩阵B,则有
Tr
(
A
A
T
)
≥
Tr
(
B
A
A
T
)
\operatorname{Tr}\left( AA^{T}\right) \geq \operatorname{Tr}\left( BAA^{T}\right)
Tr(AAT)≥Tr(BAAT)
证明:令
a
i
\displaystyle a_{i}
ai是A的第i列,于是
Tr
(
B
A
A
t
)
=
Tr
(
A
t
B
A
)
=
∑
i
a
i
t
(
B
a
i
)
\begin{aligned} \operatorname{Tr}\left( BAA^{t}\right) & =\operatorname{Tr}\left( A^{t} BA\right)\\ & =\sum _{i} a^{t}_{i}( Ba_{i}) \end{aligned}
Tr(BAAt)=Tr(AtBA)=i∑ait(Bai)
a i T ( B a i ) ≤ ( a i T a i ) ( a i T B T B a i ) = a i T a i a^{T}_{i}( Ba_{i}) \leq \sqrt{\left( a^{T}_{i} a_{i}\right)\left( a^{T}_{i} B^{T} Ba_{i}\right)} =a^{T}_{i} a_{i} aiT(Bai)≤(aiTai)(aiTBTBai)=aiTai
因为B是正交矩阵,所以 B T B = E \displaystyle B^{T} B=E BTB=E.因此
Tr
(
B
A
A
T
)
⩽
∑
i
a
i
T
a
i
=
Tr
(
A
A
T
)
\operatorname{Tr}\left( BAA^{T}\right) \leqslant \sum _{i} a^{T}_{i} a_{i} =\operatorname{Tr}\left( AA^{T}\right)
Tr(BAAT)⩽i∑aiTai=Tr(AAT)
证毕。
现设
X
=
V
U
T
(
这
是
正
交
矩
阵
,
X
T
X
=
U
V
T
V
U
T
=
E
)
X=VU^{T} \ \left( 这是正交矩阵,X^{T} X=UV^{T} VU^{T} =E\right)
X=VUT (这是正交矩阵,XTX=UVTVUT=E)
于是
X
H
=
V
U
T
U
Λ
V
T
=
V
Λ
V
T
\begin{aligned} XH & =VU^{T} U\Lambda V^{T}\\ & =V\Lambda V^{T} \end{aligned}
XH=VUTUΛVT=VΛVT
因此
X
H
\displaystyle XH
XH是一个对称而且正定的矩阵,根据Cholesky分解,
X
H
\displaystyle XH
XH一定可以分解成
A
A
T
\displaystyle AA^{T}
AAT的形式,于是根据上述引理,对于任意的正交矩阵B,这样的对称正定矩阵一定满足公式:
Tr
(
X
H
)
≥
Tr
(
B
X
H
)
\operatorname{Tr}( XH) \geq \operatorname{Tr}( BXH)
Tr(XH)≥Tr(BXH)
于是,
Tr
(
X
H
)
\displaystyle \operatorname{Tr}( XH)
Tr(XH)一定是最优值,因为任意的变换都会使得该它减少。这个东西告诉我们,只要我们能够对H进行SVD分解,那么我们一定能够找到一个最优的X使得
Tr
(
X
H
)
\displaystyle \operatorname{Tr}( XH)
Tr(XH)最大。
使用SVD来求解PCA
如上图,PCA本质上就是求解方差的特征向量,而这个特征向量其实就是图中里面的V。
参考资料
https://zhuanlan.zhihu.com/p/35893884
An easy introduction to unsupervised learning with 4 basic techniques