Sparse Coding综述

SC的提出

ISTA

\qquad 一种用于信号处理SC的经典方法是将其分解为许多atoms 的线性组合,稀疏编码的经典目标函数如下:
m i n ∥ z ∥ 0   , s . t .   x = D z (1) min \parallel z \parallel_0 \ ,s.t. \ x=Dz \tag{1} minz0 ,s.t. x=Dz(1)

其中   z ∈ R m \ z\in \mathbb{R^m}  zRm是原信号   x ∈ R n \ x \in \mathbb{R^n}  xRn对于   D ∈ R n × m \ D\in \mathbb{R^{n \times m}}  DRn×m的稀疏编码(或叫做稀疏表示)

\qquad 然而,直接求解上式是一个组合问题,其复杂度随着 m m m呈指数增长。通常用   l 1 \ l_1  l1正则来代替   l 0 \, l_0 l0
arg min ⁡ D , z 1 2 ∥ x − D z ∥ 2 2 + λ ∥ z ∥ 1 (2) {\underset {D,z}{\operatorname {arg\,min} }} \frac{1}{2}\parallel x-Dz \parallel_2^2 + \lambda \parallel z \parallel_1 \tag{2} D,zargmin21xDz22+λz1(2)

\qquad 最早优化上式的方法是 ISTA 迭代法:

z k + 1 = S λ / L ( z k + 1 L D T ( x − D z k ) ) (3) z_{k+1} = S_{\lambda /L }(z_{k} + \frac{1}{L}D^T(x-Dz_k)) \tag{3} zk+1=Sλ/L(zk+L1DT(xDzk))(3)
其中 L ≤ σ m a x ( D T D ) L \leq \sigma_{max} (D^T D) Lσmax(DTD), σ m a x ( A ) \sigma_{max} (A) σmax(A)是A的最大特征值, S θ ( x ) S_{\theta}(x) Sθ(x)是 soft thresholding operator(软阈值函数):
S θ ( x ) = s i g n ( x ) m a x ( ∣ x ∣ − θ , 0 ) (4) S_\theta(x) = sign(x)max(|x| - \theta, 0) \tag{4} Sθ(x)=sign(x)max(xθ,0)(4)
当满足定义的收敛准则时停止 ISTA 迭代

Learned ISTA

\qquad 在近似SC方面,可以建立非线编码器,该编码器可以被训练以产生给定信号的快速近似SC。

ISTA 迭代公式变换如下

z k + 1 = S λ / L ( ( I − 1 L D T D ) z k + 1 L D T x ) (5) z_{k+1} = S_{\lambda/L}((I-\frac{1}{L}D^TD)z_k + \frac{1}{L}D^Tx) \tag{5} zk+1=Sλ/L((IL1DTD)zk+L1DTx)(5)

化简
z 0 = 0 , k = 0 , … , K − 1 z k + 1 = S θ ( S z k + W e X ) (6) z_0 = 0, k=0,\dots,K-1 \\ z_{k+1} = S_\theta(Sz_k + W_e X) \tag{6} z0=0,k=0,,K1zk+1=Sθ(Szk+WeX)(6)

用网络结构来表示
在这里插入图片描述

Convolutional Sparse Coding

\qquad 与传统SC不同的是,CSC采用了卷积操作来代替矩阵相乘操作,用公式表示如下:
x = ∑ i = 0 m − 1 d i   ∗ z i (7) x = \sum_{i=0}^{m-1} d_i \ \ast z_i \tag{7} x=i=0m1di zi(7)
其中, x ∈ R n 1 × n 2 x \in \mathbb{R}^{n_1 \times n_2} xRn1×n2是 输入的信号, d i ∈ R k × k d_i \in \mathbb{R}^{k \times k} diRk×k 是局部的卷积核, z i ∈ R n 1 × n 2 z_i \in \mathbb{R}^{n_1 \times n_2} ziRn1×n2 是对应于 d i d_i di 的稀疏特征图.

则CSC的 l 1 l_1 l1 最小化问题可以描述为:

arg min ⁡ d , z 1 2 ∥ x − ∑ i = 0 m − 1 d i   ∗ z i ∥ 2 2 + λ ∑ i = 0 m − 1 ∥ z i ∥ 1 (8) {\underset {d,z}{\operatorname {arg\,min} }} \frac{1}{2} \parallel x-\sum_{i=0}^{m-1} d_i \ \ast z_i \parallel_2^2 + \lambda \sum_{i=0}^{m-1} \parallel z_i \parallel_1 \tag{8} d,zargmin21xi=0m1di zi22+λi=0m1zi1(8)

\qquad 值得注意的是,与传统的SC不同,输入x不再需要被分割成patches, CSC输入的是一个整体。CSC模型本质上是空间不变的,所以,我们学习出来特定边缘方向的atom可以代表整体图像的边缘方向。

\qquad 一个解决上式的方法是变换到频域,用Alternating Direction Method of Multipliers(ADMM) 进行优化

Learned Convolutional Sparse Coding

对CSC的近似学习

\qquad 由于卷积的线性性质,而且字典 D c o n v ∈ R ( n 1 n 2 ) × ( n 1 n 2 m ) D_{conv} \in \mathbb{R}^{(n_1n_2)\times(n_1n_2m)} DconvR(n1n2)×(n1n2m) 是Toepltiz矩阵的串联,所以CSC可以被看作传统SC的一种特殊情况。因此, (8)中的目标可以通过将 D D D替换为 D c o n v D_{conv} Dconv来格式化为类似 (2)
\qquad 在这里不是直接在 D c o n v D_{conv} Dconv 上用标准的 LISTA ,而是重新构造 ISTA 的卷积形式,然后提出其 LISTA 版本。
\qquad CSC的ISTA迭代可以写成下面形式:
z k + 1 = S λ / L ( z k + 1 L d ⋆ ( x − d ∗ z k ) ) (9) z_{k+1} = S_{\lambda/L}(z_k + \frac{1}{L}d \star(x-d\ast z_k)) \tag{9} zk+1=Sλ/L(zk+L1d(xdzk))(9)
其中, d ∈ R s × s × m d \in \mathbb{R}^{s \times s \times m} dRs×s×m是一个含有 m个 s × s s \times s s×s卷积核的矩阵, d ⋆ x = [ f l i p ( d 0 ) ∗ x , … , f l i p ( d m − 1 ) ∗ x ] d \star x=[flip(d_0)\ast x, \dots,flip(d_{m-1})\ast x] dx=[flip(d0)x,,flip(dm1)x], 以及 d ∗ z = ∑ i = 0 m − 1 d i ∗ z i d \ast z = \sum_{i=0}^{m-1} d_i \ast z_i dz=i=0m1dizi.操作 f l i p ( d i ) flip(d_i) flip(di)是将输入 d i d_i di的两个维度顺序颠倒过来.
\qquad 将(9)用相似的方法变成(6)得到 convolutional LISTA结构:
z k + 1 = S θ ( z k + W e ∗ ( x − W d ∗ z k ) ) (10) z_{k+1} = S_\theta(z_k+W_e \ast(x-W_d\ast z_k)) \tag{10} zk+1=Sθ(zk+We(xWdzk))(10)
其中, W e ∈ R s × s × c × m , W d ∈ R s × s × m × c W_e \in \mathbb{R}^{s\times s \times c \times m},W_d\in \mathbb{R}^{s\times s \times m \times c} WeRs×s×c×m,WdRs×s×m×c,即 W d = d , W e = f l i p ( W d ) W_d = d, W_e=flip(W_d) Wd=d,We=flip(Wd)以及 θ ∈ R + m \theta \in \mathbb{R}_+^m θR+m是完全可训练的独立变量,注意到这里加上了多通道 c

学习Convolutional Dictionary(CD)

\qquad 我们通过approximate CSC (ACSC)希望产生一个 x ^ \hat{x} x^ ,尽可能地接近 x x x .所以在 convolutional ISTA的末尾,加上了一个由 d d d组成的线性编码器
z 0 = 0 , k = 0 , … , K − 1 z k + 1 = S θ ( z k + W e ∗ ( x − W d ∗ z k ) ) z A C S C = z K , x ^ = d ∗ z A C S C \begin{aligned} z_0=&0,\quad k=0,\dots,K-1\\ z_{k+1} =& S_\theta(z_k+W_e \ast(x-W_d\ast z_k)) \\ z_{ACSC} =& z_{K} , \quad \hat{x} =d*z_{ACSC} \end{aligned} z0=zk+1=zACSC=0,k=0,,K1Sθ(zk+We(xWdzk))zK,x^=dzACSC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值