如何優化正交矩陣?

如果沒有T是正交矩陣的要求,就是一個最簡單的最小二乘問題。但是如果限制T是正交陣呢?其中,Y,X行數大於列數。

這個問題讓我頭疼好久了,不一定要數學上完美的解,思路或者近似解都可以。
想用優化方法卻不知道每一步怎麼構造新的正交矩陣。

如果沒有想法,不知道網上那些網站更適合討論這類問題。


題主你是不是寫錯了?我猜應該是矩陣的F範數而不是2範數吧。。
想一想其實解析就可以解出來
||Y-XT||^{2}_{F}=tr(X^TX+Y^TY)-2*tr(T^TX^TY)
所以這個問題等價於,A是方陣,Q是正交矩陣
max{tr(QA) | Q^TQ=I}
把A SVD分解
tr(QA)=tr(QUSigma V^T)=tr(V^TQUSigma)
Z=V^TQU 是正交矩陣
所以 |z_{ij}|leq 1forall i,j
tr(ZSigma)=z_{11}sigma _1+z_{22}sigma _2+cdot cdot cdot +z_{nn}sigma _nleq sigma _1+sigma _2 +cdot cdot cdot +sigma _n
等號成立的條件是 Q=VU^T

所以 最優解是 (X^TY=USigma V^T)quad T=UV^T


其實就是有限制的極值問題,那就很明確了啊,當然是用拉格朗日乘子法,把目標函數改寫成
||Y-TX||^2 - lambda (TT^T - I)就行了;不過注意到這個表達式有些問題,一邊是標量,一邊是矩陣,可以有很多種方法,比如改寫成
||Y - TX||^2 - lambda_{11}(egin{array}{cccc}1  0   ...  0end{array})(TT^T - I)(egin{array}{cccc}1  0   ...  0end{array})^T - lambda_{12}(egin{array}{cccc}1  0   ...  0end{array})(TT^T - I)(egin{array}{cccc}0  1   ...  0end{array})^T - ...
給矩陣每個元素一個額外的變數,別看變數多,求導出來還是很整齊的,可以把T寫成行向量組合的形式,這樣後面每一項就是兩個行向量的點積 - I(m,n),也就可以改寫為:

T = (alpha_1 alpha_2 ... alpha_n)^T
則可以寫為
||Y - (alpha_1 alpha_2 ... alpha_n)^TX||^2 - sum_{i,j}lambda_{ij}(alpha_i^Talpha_j - I_{ij})
其中I_{ij}是單位陣第i行第j列的元素,也就是i = j時為1,否則為0


題主可以看一下Chris Ding發表在05、06年(沒記錯的話)KDD和ICDM的文章。不過好像是非負矩陣的分解帶正交限制。


推薦閱讀:

有沒有將深度學習融入機器人領域的嘗試?有哪些難點?
技術上講,王樹森和吳佳俊誰更牛逼?
想去上海交大讀研,計算機視覺與機器視覺怎麼選?
國外比較有名的機器學習、計算機視覺相關論壇有哪些?
微軟小冰測顏值為什麼這麼准?

TAG:人工智慧 | 數學 | 機器學習 | 矩陣運算 | 凸優化 |