模型优化方法小结

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

m i n U T U = I X U T P F 2

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

X U T P F 2 = T r ( X T X ) + T r ( P T P ) 2 T r ( X T U T P )

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

m a x U T U = I T r ( X T U T P )

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

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 大的奇异值。现在对 P X T 进行奇异值分解,得到 P X T = A S B T (SVD分解);那么当 U = A B T 时, T r ( U T P X T ) 取最大值。因为如下:

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 = A B T ,其中的 A , B P X T 的奇异值分解。

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

m i n B , W μ 2 X B F 2 + λ n = 1 N b n + 1 W b n 2 2

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

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 ] T R N

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

m i n B , W μ 2 X B F 2 + λ B H W B F 2 λ W B h 2 2

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

m i n α μ 2 x α 2 2 + λ P α 2 2 λ Q α 2 2

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

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

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

[ b 2 , b 3 , , b N ] = W [ b 1 , b 2 , , b N 1 ]

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

猜你喜欢

转载自blog.csdn.net/step_forward_ML/article/details/81094816