我是靠谱客的博主 含蓄翅膀,最近开发中收集的这篇文章主要介绍怎么求解矩阵的范数最小的问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

求解如下问题:
Φ = a r g m i n Φ ∣ ∣ G − Ψ T Φ T Φ Ψ ∣ ∣ F 2 Phi=argmin_{Phi}||G-Psi^{T}Phi^{T}PhiPsi||_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_tapprox G AtTAtG,求解 A t A_t At,继而求解下式最小二乘问题:
Φ = a r g m i n Φ ∣ ∣ A t − Φ Ψ ∣ ∣ F 2 Phi=argmin_{Phi}||A_t-PhiPsi||_F^2 Φ=argminΦAtΦΨF2
求解 Φ = A t Ψ ( Ψ Ψ T ) − 1 Phi=A_tPsi(PsiPsi^T)^{-1} Φ=AtΨ(ΨΨT)1
4、使用ksvd算法的思想,展开 Ψ T Φ T Φ Ψ Psi^{T}Phi^{T}PhiPsi Ψ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_1lambda_1u_1^T+u_2lambda_2u_2^T+... E1=u1λ1u1T+u2λ2u2T+...
使用 u 1 λ 1 u 1 T u_1lambda_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>0quad ifquad X>0\ f'(X)=2X-2b-lambda<0quad ifquad 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 ifquad X>0\ X=b+dfrac{1}{2}lambda quad ifquad 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 ifquad X>0(因为lambda大于0,所以b-dfrac{1}{2}lambda小于0,和假设X>0不符)\ X=b+dfrac{1}{2}lambda quad f'(X)=2X-2b-lambda<0quad ifquad 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λ为极小值点

最后

以上就是含蓄翅膀为你收集整理的怎么求解矩阵的范数最小的问题的全部内容,希望文章能够帮你解决怎么求解矩阵的范数最小的问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部