使用SVD來求解優化問題最優值
假設我們想要求解如下問題:
R∗=Rargmaxi=1∑nqiTRpi=i=1∑ntr(QTRP)ii=tr(QTRP)
令H≜i=1∑npiqiT,於是問題變成求解如下最優值:
R∗=Rargmax tr(QTRP)=tr(RPQT)=tr(RH)
現在,如果H的SVD分解爲,H=UΛVT,可以證明
R∗=VUT
一定是該優化問題的最優解。
現在證明一個引理:
引理1:對於任意的正定矩陣AAT,對於任意的正交矩陣B,則有
Tr(AAT)≥Tr(BAAT)
證明:令ai是A的第i列,於是
Tr(BAAt)=Tr(AtBA)=i∑ait(Bai)
根據Cauchy–Schwarz_inequality,
aiT(Bai)≤(aiTai)(aiTBTBai)=aiTai
因爲B是正交矩陣,所以BTB=E.因此
Tr(BAAT)⩽i∑aiTai=Tr(AAT)
證畢。
現設
X=VUT (這是正交矩陣,XTX=UVTVUT=E)
於是
XH=VUTUΛVT=VΛVT
因此XH是一個對稱而且正定的矩陣,根據Cholesky分解,XH一定可以分解成AAT的形式,於是根據上述引理,對於任意的正交矩陣B,這樣的對稱正定矩陣一定滿足公式:
Tr(XH)≥Tr(BXH)
於是,Tr(XH)一定是最優值,因爲任意的變換都會使得該它減少。這個東西告訴我們,只要我們能夠對H進行SVD分解,那麼我們一定能夠找到一個最優的X使得Tr(XH)最大。
使用SVD來求解PCA
如上圖,PCA本質上就是求解方差的特徵向量,而這個特徵向量其實就是圖中裏面的V。
參考資料
Arun, K. Somani, Thomas S. Huang, and Steven D. Blostein. “Least-squares fitting of two 3-D point sets.” IEEE Transactions on pattern analysis and machine intelligence 5 (1987): 698-700.
https://zhuanlan.zhihu.com/p/35893884
An easy introduction to unsupervised learning with 4 basic techniques