\qquad
现有一个求稀疏编码的问题:
min
∥
z
∥
0
s
.
t
.
x
=
D
z
\min \parallel z \parallel_0 \quad s.t. \ x=Dz
min∥z∥0s.t. x=Dz
\qquad
其中
D
∈
R
n
×
m
D\in \mathbb{R}^{n\times m}
D∈Rn×m,
z
∈
R
m
z\in \mathbb{R}^{m}
z∈Rm 是
x
∈
R
n
x\in \mathbb{R}^{n}
x∈Rn 的 sparse code.
\qquad
解决上式是一个复杂度随 m 以指数级增长的组合问题,最常见的解决方法是将
l
0
l_0
l0 范数替换为
l
1
l_1
l1范数.即目标函数变为:
a
r
g
min
D
,
z
1
2
∥
x
−
D
z
∥
2
2
+
λ
∥
z
∥
1
arg\min_{D,z} \frac{1}{2}\parallel x-Dz \parallel_2^2 + \lambda \parallel z \parallel_1
argD,zmin21∥x−Dz∥22+λ∥z∥1
\qquad
假设 D 已给定,即:
a
r
g
min
z
1
2
∥
x
−
D
z
∥
2
2
+
λ
∥
z
∥
1
arg\min_{z} \frac{1}{2}\parallel x-Dz \parallel_2^2 + \lambda \parallel z \parallel_1
argzmin21∥x−Dz∥22+λ∥z∥1
\qquad
对于凸二范数
f
1
=
1
2
∥
x
−
D
z
∥
2
2
f_1=\ \frac{1}{2}\parallel x-Dz \parallel_2^2
f1= 21∥x−Dz∥22,叫做reconstruction 项,它的函数是这样的
\qquad
对于凸一范数
f
2
=
λ
∥
z
∥
1
f_2=\lambda\parallel z \parallel_1
f2=λ∥z∥1,叫做sparsity penalty 项,它的函数是这样的,故其导数为符号函数。
\qquad
现在我们来求解这个目标函数,即得到使
f
f
f 值最小时的
z
z
z.将函数变形为:
f
=
f
1
+
f
2
=
1
2
∥
x
−
D
z
∥
2
2
+
λ
∥
z
∥
1
=
1
2
(
x
−
D
z
)
T
(
x
−
D
z
)
+
λ
∥
z
∥
1
\begin{aligned} f&=f_1+f_2\\ &=\ \frac{1}{2}\parallel x-Dz \parallel_2^2 + \lambda \parallel z \parallel_1\\ &=\frac{1}{2}(x-Dz)^T(x-Dz)+\lambda\parallel z \parallel_1\\ \end{aligned}
f=f1+f2= 21∥x−Dz∥22+λ∥z∥1=21(x−Dz)T(x−Dz)+λ∥z∥1
\qquad
故可以梯度下降法来求 z. 对
f
f
f 求
z
z
z 的偏导:
∂
f
∂
z
=
∂
f
1
∂
z
+
∂
f
2
∂
z
=
D
T
(
D
z
−
x
)
+
λ
s
i
g
n
(
z
)
\begin{aligned} \frac{\partial f}{\partial z}&=\frac{\partial f_1}{\partial z}+\frac{\partial f_2}{\partial z}\\ &=D^T(Dz-x)+\lambda sign(z) \end{aligned}
∂z∂f=∂z∂f1+∂z∂f2=DT(Dz−x)+λsign(z)
\qquad
对于reconstruction 项
z
k
+
1
=
z
k
−
α
D
T
(
D
z
−
x
)
z^{k+1}=z^k-\alpha D^T(Dz-x)
zk+1=zk−αDT(Dz−x)
\qquad
对于penalty 项
z
k
+
1
=
z
k
−
α
λ
s
i
g
n
(
z
)
z^{k+1}=z^k-\alpha\lambda sign(z)
zk+1=zk−αλsign(z)
\qquad
问题来了,符号函数
s
i
g
n
(
z
)
sign(z)
sign(z) 在 0 处是不可微的
\qquad
解决办法:如果
l
1
n
o
r
m
l_1 norm
l1norm 的梯度因为
z
z
z 而改变符号,则将其设为 0 ,即
i
f
:
s
i
g
n
(
z
)
≠
s
i
g
n
(
z
−
α
λ
s
i
g
n
(
z
)
)
t
h
e
n
z
=
0
e
l
s
e
:
z
=
z
−
α
λ
s
i
g
n
(
z
)
if:\quad sign(z)\neq sign(z-\alpha \lambda sign(z)) \quad then \quad z=0\\ else: \quad z=z-\alpha \lambda sign(z)
if:sign(z)=sign(z−αλsign(z))thenz=0else:z=z−αλsign(z)
\qquad 上面的两项的处理过程概括起来就是 ISTA算法
1.初始化 z ( 0 ) = 0 z^{(0)}=0 z(0)=0
2.当 z ( k ) z^{(k)} z(k) 未收敛z k = z k − α D T ( D z − x ) z^{k}=z^{k}-\alpha D^T(Dz-x) zk=zk−αDT(Dz−x)
z k + 1 = s h r i n k ( z k , α λ ) z^{k+1}=shrink(z^k,\alpha \lambda) zk+1=shrink(zk,αλ)
s
h
r
i
n
k
:
\qquad shrink:
shrink:用来查看函数值是否:不变 / 变0
\qquad
总结上述步骤:
z
k
+
1
=
S
α
λ
(
z
k
+
α
D
T
(
x
−
D
z
)
)
z
k
+
1
=
S
λ
L
(
z
k
+
1
L
D
T
(
x
−
D
z
)
)
(
α
=
1
L
)
\begin{aligned} z^{k+1}&=S_{\alpha \lambda}(z^{k}+\alpha D^T(x-Dz))\\ z^{k+1}&=S_{\frac{\lambda}{L}}(z^{k}+\frac{1}{L} D^T(x-Dz)) \quad(\alpha=\frac{1}{L}) \end{aligned}
zk+1zk+1=Sαλ(zk+αDT(x−Dz))=SLλ(zk+L1DT(x−Dz))(α=L1)
\qquad
只有当
L
≥
σ
m
a
x
(
D
T
D
)
L \geq \sigma_{max}(D^TD)
L≥σmax(DTD) 时,才能保证收敛性,
σ
m
a
x
(
A
)
\sigma_{max}(A)
σmax(A) 表示
A
A
A 的最大特征值,soft thresholding function
S
θ
(
x
)
S_{\theta}(x)
Sθ(x) 定义为:
S
θ
(
x
)
=
s
i
g
n
(
x
)
⋅
m
a
x
(
∣
x
∣
−
θ
,
0
)
S_{\theta}(x)=sign(x) \cdot max(|x|-\theta,0)
Sθ(x)=sign(x)⋅max(∣x∣−θ,0)