模型优化方法小结

最近的研究设计并建立了一些优化模型,其中的一些优化方法值得总结。比如,当遇到如下模型:

minUTU=IXUTP2F m i n U T U = I ⁡ ‖ X − U T P ‖ F 2

上述模型中 U U 为正交矩阵,如何优化求解 U U 呢?我们将优化的目标函数进行trace展开:

XUTP2F=Tr(XTX)+Tr(PTP)2Tr(XTUTP) ‖ X − U T P ‖ F 2 = T r ( X T X ) + T r ( P T P ) − 2 T r ( X T U T P )

那么最小化原始的目标函数,则等价为最大化如下目标函数:

maxUTU=ITr(XTUTP) m a x U T U = I ⁡ T r ( X T U T P )

新的目标函数有如下性质:

Tr(XTUTP)=Tr(UTPXT)i=1nσi(UT)σi(PXT)=i=1nσi(PXT) T r ( X T U T P ) = T r ( U T P X T ) ≤ ∑ i = 1 n σ i ( U T ) ∗ σ i ( P X T ) = ∑ i = 1 n σ i ( P X T )

其中 σi σ i 表示矩阵的第 i i 大的奇异值。现在对 PXT P X T 进行奇异值分解,得到 PXT=ASBT P X T = A S B T (SVD分解);那么当 U=ABT U = A B T 时, Tr(UTPXT) T r ( U T P X T ) 取最大值。因为如下:

Tr(UTPXT)=Tr(BATASBT)=Tr(S)=i=1nσi(PXT) T r ( U T P X T ) = T r ( B A T ∗ A S B T ) = T r ( S ) = ∑ i = 1 n σ i ( P X T )

所以最终的 U=ABT U = A B T ,其中的 A,B A , B PXT P X T 的奇异值分解。

有时我们建立的数据模型有如下形式,其中数据 X=[x1,,xN]Rm×N X = [ x 1 , ⋯ , x N ] ∈ R m × N B=[b1,,bN]Rm×N B = [ b 1 , ⋯ , b N ] ∈ R m × N

minB,Wμ2XB2F+λn=1Nbn+1Wbn22 m i n B , W ⁡ μ 2 ‖ X − B ‖ F 2 + λ ∑ n = 1 N ‖ b n + 1 − W b n ‖ 2 2

为了更好的优化求解上式,我们需要对第二项进行简单变形得到关于 B B 的形式,由此我们引入矩阵 H,h H , h ,如下:

H=0100000000010000RN×N H = [ 0 0 ⋯ 0 0 1 0 ⋯ 0 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ 0 0 0 0 ⋯ 1 0 ] ∈ R N × N

h=[0,0,,0,1]TRN h = [ 0 , 0 , ⋯ , 0 , 1 ] T ∈ R N

有了 H,h H , h ,上述的目标函数可改写为:

minB,Wμ2XB2F+λBHWB2FλWBh22 m i n B , W ⁡ μ 2 ‖ X − B ‖ F 2 + λ ‖ B H − W B ‖ F 2 − λ ‖ W B h ‖ 2 2

针对 B B 的优化,可以采取一种比较简便的变形。我们引入vec堆叠操作符,将矩阵拉为向量;目标函数则变为:(这里使用了堆叠操作符的性质: vec(ASB)=(BTA)vec(S) v e c ( A S B ) = ( B T ⊗ A ) ∗ v e c ( S ) 为克罗内克积)

minαμ2xα22+λPα22λQα22 m i n α ⁡ μ 2 ‖ x − α ‖ 2 2 + λ ‖ P α ‖ 2 2 − λ ‖ Q α ‖ 2 2

其中 vec(X)=x,vec(B)=α,P=(HTIm)(INW),Q=hTW v e c ( X ) = x , v e c ( B ) = α , P = ( H T ⊗ I m ) − ( I N ⊗ W ) , Q = h T ⊗ W 。上述目标函数优化转换为对 α α 的优化求解。其实上述目标函数中虽然有 λQα22 − λ ‖ Q α ‖ 2 2 项的存在,但是此目标函数关于 α α 是凸的,因为可以证明 PTPQTQ P T P − Q T Q 正定。则 α α 有闭合解:

α=μ(μI+2λPTP2λQTQ)+x α = μ ( μ I + 2 λ P T P − 2 λ Q T Q ) + x

而对 W W 的优化也有闭合解,最简单做法便是优化原始目标函数中的第二项,实质为一个线性问题:

[b2,b3,,bN]=W[b1,b2,,bN1] [ b 2 , b 3 , ⋯ , b N ] = W [ b 1 , b 2 , ⋯ , b N − 1 ]

W=[b2,b3,,bN][b1,b2,,bN1]+ W = [ b 2 , b 3 , ⋯ , b N ] ∗ [ b 1 , b 2 , ⋯ , b N − 1 ] + 。当然 W W 的优化也可直接对变换后的目标函数直接求导求解。

你可能感兴趣的:(模型优化方法小结)