怎么求解矩阵的范数最小的问题

求解如下问题:
Φ = a r g m i n Φ ∣ ∣ G − Ψ T Φ T Φ Ψ ∣ ∣ F 2 \Phi=argmin_{\Phi}||G-\Psi^{T}\Phi^{T}\Phi\Psi||_F^2 Φ=argminΦGΨTΦTΦΨF2

求解方法:
1、使用QR分解的方法求解上式
矩阵QR分解常用于求解病态线性方程组 A x = b Ax=b Ax=b,即求解
y = Q T b , R x = y y=Q^Tb,\qquad Rx=y y=QTb,Rx=y
它的计算过程是非常稳定的,得到的结果往往要比三角分解法好得多。QR分解也常用于求解线性最小二乘问题、求矩阵全部特征值的QR方法等许多其他问题中,它是数值代数中许多中重要算法的基础。
2、使用梯度下降法,使用迭代的方法求解
梯度下降法适合于使用计算机计算,使用计算机没法像人为那样通过直接计算全局最小点或梯度零值点。要求损失函数为凸函数,即损失函数梯度为零时,保证取得损失函数最小值。
3、令 A t T A t ≈ G A_t^TA_t\approx G AtTAtG,求解 A t A_t At,继而求解下式最小二乘问题:
Φ = a r g m i n Φ ∣ ∣ A t − Φ Ψ ∣ ∣ F 2 \Phi=argmin_{\Phi}||A_t-\Phi\Psi||_F^2 Φ=argminΦAtΦΨF2
求解 Φ = A t Ψ ( Ψ Ψ T ) − 1 \Phi=A_t\Psi(\Psi\Psi^T)^{-1} Φ=AtΨ(ΨΨT)1
4、使用ksvd算法的思想,展开 Ψ T Φ T Φ Ψ \Psi^{T}\Phi^{T}\Phi\Psi ΨTΦTΦΨ v 1 2 + v 2 2 + v 3 2 + . . . v_1^2+v_2^2+v_3^2+... v12+v22+v32+...
将原式展开成:
Ψ − v 2 2 − v 3 2 − . . . − v 1 2 = E 1 − v 1 2 \Psi-v_2^2-v_3^2-...-v_1^2 =E_1-v_1^2 Ψv22v32...v12=E1v12
E 1 E_1 E1进行svd分解, E 1 = u 1 λ 1 u 1 T + u 2 λ 2 u 2 T + . . . E_1=u_1\lambda_1u_1^T+u_2\lambda_2u_2^T+... E1=u1λ1u1T+u2λ2u2T+...
使用 u 1 λ 1 u 1 T u_1\lambda_1u_1^T u1λ1u1T代替 E 1 E_1 E1,更新 v 1 = λ 1 u 1 v_1=\sqrt{\lambda_1u_1} v1=λ1u1
求解如下问题:
X = a r g m i n X { f ( x ) } = a r g m i n X { ∣ ∣ X − B ∣ ∣ F 2 + λ ∣ ∣ X ∣ ∣ 1 } X=argmin_{X}\{f(x)\}=argmin_{X}\{||X-B||_F^2+\lambda||X||_1\} X=argminX{f(x)}=argminX{XBF2+λX1}

式中: λ \lambda λ大于0
1、使用软阈值函数
f ( X ) = ∣ ∣ X − B ∣ ∣ F 2 + λ ∣ ∣ X ∣ ∣ 1 f(X)=||X-B||_F^2+\lambda||X||_1 f(X)=XBF2+λX1
求导 f ′ ( x ) = 2 ( X − B ) + λ s g n ( X ) = 0 f'(x)=2(X-B)+\lambda sgn(X)=0 f(x)=2(XB)+λsgn(X)=0
X = − 1 2 λ s g n ( X ) + B X=-\dfrac{1}{2}\lambda sgn(X)+B X=21λsgn(X)+B
如果 B B B小于 1 2 λ \dfrac{1}{2}\lambda 21λ,大于 − 1 2 λ -\dfrac{1}{2}\lambda 21λ
{ f ′ ( X ) = 2 X − 2 b + λ > 0 i f X > 0 f ′ ( X ) = 2 X − 2 b − λ < 0 i f X < 0 \begin{cases} f'(X)=2X-2b+\lambda>0\quad if\quad X>0\\ f'(X)=2X-2b-\lambda<0\quad if\quad X<0 \end{cases} {f(X)=2X2b+λ>0ifX>0f(X)=2X2bλ<0ifX<0
所以,此时 X = 0 X=0 X=0为极小值点
如果B大于 1 2 λ \dfrac{1}{2}\lambda 21λ:
{ X = b − 1 2 λ i f X > 0 X = b + 1 2 λ i f X < 0 ( 因 为 λ 大 于 0 , 所 以 b + 1 2 λ 大 于 0 , 和 假 设 X < 0 不 符 ) \begin{cases} X=b-\dfrac{1}{2}\lambda \quad if\quad X>0\\ X=b+\dfrac{1}{2}\lambda \quad if\quad X<0(因为\lambda大于0,所以b+\dfrac{1}{2}\lambda大于0,和假设X<0不符) \end{cases} X=b21λifX>0X=b+21λifX<0λ0b+21λ0X<0
所以,此时 X = b − 1 2 λ X=b-\dfrac{1}{2}\lambda X=b21λ为极小值点
如果B小于 − 1 2 λ -\dfrac{1}{2}\lambda 21λ:
{ X = b − 1 2 λ i f X > 0 ( 因 为 λ 大 于 0 , 所 以 b − 1 2 λ 小 于 0 , 和 假 设 X > 0 不 符 ) X = b + 1 2 λ f ′ ( X ) = 2 X − 2 b − λ < 0 i f X < 0 \begin{cases} X=b-\dfrac{1}{2}\lambda \quad if\quad X>0(因为\lambda大于0,所以b-\dfrac{1}{2}\lambda小于0,和假设X>0不符)\\ X=b+\dfrac{1}{2}\lambda \quad f'(X)=2X-2b-\lambda<0\quad if\quad X<0 \end{cases} X=b21λifX>0λ0b21λ0X>0X=b+21λf(X)=2X2bλ<0ifX<0
所以,此时 X = b + 1 2 λ X=b+\dfrac{1}{2}\lambda X=b+21λ为极小值点

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值