最近的研究设计并建立了一些优化模型,其中的一些优化方法值得总结。比如,当遇到如下模型:
minUTU=I∥X−UTP∥2F
上述模型中
U
为正交矩阵,如何优化求解
U
呢?我们将优化的目标函数进行trace展开:
∥X−UTP∥2F=Tr(XTX)+Tr(PTP)−2Tr(XTUTP)
那么最小化原始的目标函数,则等价为最大化如下目标函数:
maxUTU=ITr(XTUTP)
新的目标函数有如下性质:
Tr(XTUTP)=Tr(UTPXT)≤∑i=1nσi(UT)∗σi(PXT)=∑i=1nσi(PXT)
其中
σi
表示矩阵的第
i
大的奇异值。现在对
PXT
进行奇异值分解,得到
PXT=ASBT
(SVD分解);那么当
U=ABT
时,
Tr(UTPXT)
取最大值。因为如下:
Tr(UTPXT)=Tr(BAT∗ASBT)=Tr(S)=∑i=1nσi(PXT)
所以最终的
U=ABT
,其中的
A,B
为
PXT
的奇异值分解。
有时我们建立的数据模型有如下形式,其中数据
X=[x1,⋯,xN]∈Rm×N
,
B=[b1,⋯,bN]∈Rm×N
:
minB,Wμ2∥X−B∥2F+λ∑n=1N∥bn+1−Wbn∥22
为了更好的优化求解上式,我们需要对第二项进行简单变形得到关于
B
的形式,由此我们引入矩阵
H,h
,如下:
H=⎡⎣⎢⎢⎢⎢⎢⎢⎢01⋮0000⋮00⋯⋯⋱⋯⋯00⋮010000⎤⎦⎥⎥⎥⎥⎥⎥⎥∈RN×N
h=[0,0,⋯,0,1]T∈RN
有了
H,h
,上述的目标函数可改写为:
minB,Wμ2∥X−B∥2F+λ∥BH−WB∥2F−λ∥WBh∥22
针对
B
的优化,可以采取一种比较简便的变形。我们引入vec堆叠操作符,将矩阵拉为向量;目标函数则变为:(这里使用了堆叠操作符的性质:
vec(ASB)=(BT⊗A)∗vec(S)
,
⊗
为克罗内克积)
minαμ2∥x−α∥22+λ∥Pα∥22−λ∥Qα∥22
其中
vec(X)=x,vec(B)=α,P=(HT⊗Im)−(IN⊗W),Q=hT⊗W
。上述目标函数优化转换为对
α
的优化求解。其实上述目标函数中虽然有
−λ∥Qα∥22
项的存在,但是此目标函数关于
α
是凸的,因为可以证明
PTP−QTQ
正定。则
α
有闭合解:
α=μ(μI+2λPTP−2λQTQ)+x
而对
W
的优化也有闭合解,最简单做法便是优化原始目标函数中的第二项,实质为一个线性问题:
[b2,b3,⋯,bN]=W[b1,b2,⋯,bN−1]
则
W=[b2,b3,⋯,bN]∗[b1,b2,⋯,bN−1]+
。当然
W
的优化也可直接对变换后的目标函数直接求导求解。