概述
求解如下问题:
Φ
=
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
AtTAt≈G,求解
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
Ψ−v22−v32−...−v12=E1−v12
将
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{∣∣X−B∣∣F2+λ∣∣X∣∣1}
式中:
λ
lambda
λ大于0
1、使用软阈值函数
令
f
(
X
)
=
∣
∣
X
−
B
∣
∣
F
2
+
λ
∣
∣
X
∣
∣
1
f(X)=||X-B||_F^2+lambda||X||_1
f(X)=∣∣X−B∣∣F2+λ∣∣X∣∣1
求导
f
′
(
x
)
=
2
(
X
−
B
)
+
λ
s
g
n
(
X
)
=
0
f'(x)=2(X-B)+lambda sgn(X)=0
f′(x)=2(X−B)+λ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)=2X−2b+λ>0ifX>0f′(X)=2X−2b−λ<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=b−21λifX>0X=b+21λifX<0(因为λ大于0,所以b+21λ大于0,和假设X<0不符)
所以,此时
X
=
b
−
1
2
λ
X=b-dfrac{1}{2}lambda
X=b−21λ为极小值点
如果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=b−21λifX>0(因为λ大于0,所以b−21λ小于0,和假设X>0不符)X=b+21λf′(X)=2X−2b−λ<0ifX<0
所以,此时
X
=
b
+
1
2
λ
X=b+dfrac{1}{2}lambda
X=b+21λ为极小值点
最后
以上就是含蓄翅膀为你收集整理的怎么求解矩阵的范数最小的问题的全部内容,希望文章能够帮你解决怎么求解矩阵的范数最小的问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复