核范数求导(derivative of the nuclear norm)

我在网上找到了关于核范数求导的两种方式,一种是论文里常用的Singular Value Thresholding(SVT)方法,另外一种是网上流传的通过SVD的方式直接求导的方式。

1. Singular Value Thresholding

这种方法最早是针对矩阵补全的问题提出的,在论文《A Singular Value Thresholding Algorithm for Matrix Completion》中,作者提出了关于以下形式问题的求解方法
在这里插入图片描述
即对于(2.3)公式中的优化问题而言,其最优解X等于 D τ ( Y ) D_{\tau}(Y) Dτ(Y),而 D τ ( Y ) D_{\tau}(Y) Dτ(Y)的定义如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210530151204232.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mjk5ODIxNA==,size_16,color_FFFFFF,t_70
也就是说对于公式(2.3),为了获得X的最优解,我们需要将Y进行SVD(skinny SVD)分解,U和V保持不变,但是对于所有的特征值要减去 τ \tau τ(注意:这个 τ \tau τ是公式中核范数前面的系数),并进行max(0,t)操作,那么对于 σ i < τ \sigma_i<\tau σi<τ的那些特征值就会被置0,这是SVT的主要思想,而论文中通常会先将带有核范数的目标函数转化成如(2.3)形式的问题,再利用上述SVT的解法求得最优解
举个具体的实例:
有目标函数一:
min ⁡ Z f ( Z ) + λ ∥ Z ∥ ∗ \min_{Z}f(Z)+\lambda\|Z\|_* Zminf(Z)+λZ
首先引入中间变量 X X X,得到如下目标函数二:
min ⁡ Z , X f ( Z ) + λ ∥ X ∥ ∗ s . t . Z = X \min_{Z,X}f(Z)+\lambda\|X\|_*\\ s.t. Z=X Z,Xminf(Z)+λXs.t.Z=X
利用增广拉格朗日得到目标函数三:
min ⁡ Z , X f ( Z ) + λ ∥ X ∥ ∗ + t r ( A T ( Z − X ) ) + μ 2 ∥ Z − X ∥ F 2 \min_{Z,X}f(Z)+\lambda\|X\|_*+tr(A^T(Z-X))+\frac{\mu}{2}\|Z-X\|_F^2 Z,Xminf(Z)+λX+tr(AT(ZX))+2μZXF2
只关注与X有关的项,我们可以得到如下优化问题一:
arg ⁡ min ⁡ X λ ∥ X ∥ ∗ + t r ( A T ( Z − X ) ) + μ 2 ∥ Z − X ∥ F 2 \arg\min_X \lambda\|X\|_*+tr(A^T(Z-X))+\frac{\mu}{2}\|Z-X\|_F^2\\ argXminλX+tr(AT(ZX))+2μZXF2
经过计算,得到优化问题二:
arg ⁡ min ⁡ X λ μ ∥ X ∥ ∗ + 1 2 ∥ X − ( Z + 1 μ A ) ∥ F 2 \arg\min_X \frac{\lambda}{\mu}\|X\|_*+\frac{1}{2}\|X-(Z+\frac{1}{\mu}A)\|_F^2\\ argXminμλX+21X(Z+μ1A)F2
此时不难发现优化问题二就和公式(2.3)有着相似的结构了( λ μ \frac{\lambda}{\mu} μλ对应 τ \tau τ ( Z + 1 μ A ) (Z+\frac{1}{\mu}A) (Z+μ1A)对应 Y Y Y),直接利用SVT求解即可

2. 直接求导

考虑到矩阵核范数的定义如下:
∥ X ∥ ∗ = t r ( X T X ) \|X\|_*=tr(\sqrt{X^TX}) X=tr(XTX )
结合特征值分解有 X = U Σ V T X=U\Sigma V^T X=UΣVT,可以得到以下结论:
t r ( X T X ) = t r ( Σ ) tr(\sqrt{X^TX})=tr(\Sigma) tr(XTX )=tr(Σ)
对于X而言:
∂ X = ( ∂ U ) Σ V T + U ( ∂ Σ ) V T + U Σ ( ∂ V T ) \partial X=(\partial U)\Sigma V^T+U(\partial \Sigma) V^T+ U\Sigma (\partial V^T) X=(U)ΣVT+U(Σ)VT+UΣ(VT)
将上述公式右侧的第二项挪至等号左边并左乘U^T,右乘V,得到
∂ Σ = U T ( ∂ X ) V − U T ( ∂ U ) Σ − Σ ( ∂ V T ) V \partial \Sigma=U^T(\partial X)V-U^T(\partial U)\Sigma-\Sigma(\partial V^T)V Σ=UT(X)VUT(U)ΣΣ(VT)V
由于后面两项的值为0,所以
∂ Σ = U T ( ∂ X ) V \partial \Sigma=U^T(\partial X)V Σ=UT(X)V
对X的核范数直接求导,得到
∂ ∥ X ∥ ∗ ∂ X = t r ( Σ ) ∂ X = t r ( U T ( ∂ X ) V ∂ X = V U T ( ∂ X ) ∂ X = ( V U T ) T = U V T \frac{\partial \|X\|_*}{\partial X}=\frac{tr(\Sigma)}{\partial X}=\frac{tr(U^T(\partial X)V}{\partial X}=\frac{VU^T(\partial X)}{\partial X}=(VU^T)^T=UV^T XX=Xtr(Σ)=Xtr(UT(X)V=XVUT(X)=(VUT)T=UVT
在知乎的一个答案中看到了关于第二种方法正确性的讨论,这种方法并不适用于所有的W,详情参考矩阵的核范数的导数是什么?

参考文献:

  1. Cai J F, Candès E J, Shen Z. A singular value thresholding algorithm for matrix completion[J]. SIAM Journal on optimization, 2010, 20(4): 1956-1982.
  2. Boyd S, Parikh N, Chu E, et al. Distributed Optimization and Statistics via Alternating Direction Method of Multipliers[J]. 2013.
  3. https://math.stackexchange.com/questions/701062/derivative-of-the-nuclear-norm
  4. https://hyper.ai/wiki/2687
  • 8
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值