求解如下问题:
Φ
=
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
AtTAt≈G,求解
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
Ψ−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_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{∣∣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>0\quad if\quad X>0\\ f'(X)=2X-2b-\lambda<0\quad if\quad 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 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=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 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=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λ为极小值点
怎么求解矩阵的范数最小的问题
最新推荐文章于 2023-12-14 17:26:22 发布