Multi-layer Local Block Coordinate Descent Algorithm and Unfolding Classification and Reconstruction Networks
-
摘要: 卷积稀疏编码(Convolutional sparse coding, CSC)已广泛应用于信号或图像处理、重构和分类等任务中, 基于深度学习思想的多层卷积稀疏编码(Multi-layer convolutional sparse coding, ML-CSC)模型的多层基追踪(Multi-layer basic pursuit, ML-BP)问题和多层字典学习问题成为研究热点. 但基于傅里叶域的交替方向乘子法(Alternating direction multiplier method, ADMM)求解器和基于图像块(Patch)空间域思想的传统基追踪算法不能容易地扩展到多层情况. 在切片(Slice)局部处理思想的基础上, 本文提出了一种新的多层基追踪算法: 多层局部块坐标下降(Multi-layer local block coordinatedescent, ML-LoBCoD)算法. 在多层迭代软阈值算法(Multi-layer iterative soft threshold algorithm, ML-ISTA)和对应的迭代展开网络ML-ISTA-Net 的启发下, 提出了对应的迭代展开网络ML-LoBCoD-Net. ML-LoBCoD-Net实现信号的表征学习功能, 输出的最深层卷积稀疏编码用于分类. 此外, 为了获得更好的信号重构, 本文提出了一种新的多层切片卷积重构网络(Multi-layer slice convolutional reconstruction network, ML-SCRN), ML-SCRN实现从信号稀疏编码到信号重构. 我们对这两个网络分别进行实验验证. 然后将ML-LoBCoD-Net和ML-SCRN 进行级联得到ML-LoBCoD-SCRN合并网, 同时实现图像的分类和重构. 与传统基于全连接层对图像进行重建的方法相比, 本文提出的ML-LoBCoD-SCRN合并网所需参数少, 收敛速度快, 重构精度高. 本文将ML-ISTA和多层快速迭代软阈值算法(Multi-layer fast iterative soft threshold algorithm, ML-FISTA) 构建为ML-ISTA-SCRN和ML-FISTA-SCRN进行对比实验, 初步证明了所提出的ML-LoBCoD-SCRN分类重构网在MNIST、CIFAR10和CIFAR100数据集上是有效的, 分类准确率、损失函数和信号重构结果都优于ML-ISTA-SCRN和ML-FISTA-SCRN.
-
关键词:
- 多层卷积稀疏编码 /
- 多层基追踪 /
- 多层局部块坐标下降法 /
- 分类 /
- 重构
Abstract: Convolutional sparse coding (CSC) has been widely used in tasks such as signal or image processing, reconstruction, and classification. The multi-layer basic pursuit problem and the multi-layer dictionary learning problem of multi-layer convolutional sparse coding (ML-CSC) model based on deep learning idea have became research hotspots. But the alternating direction multiplier method (ADMM) solver based on Fourier domain and the traditional basic pursuit algorithm based on patch idea cannot be easily extended to multi-layer cases. Based on the idea of slice local processing, this paper proposes a new multi-layer basic pursuit algorithm: multi-layer local block coordinate descent (ML-LoBCoD) algorithm. Inspired by the multi-layer iterative soft threshold algorithm (ML-ISTA) and the ML-ISTA-Net, the corresponding iterative unfolding network ML-LoBCoD-Net is proposed. ML-LoBCoD-Net realizes the ability of learning signal representation, and the deepest convolutional sparse coding is used for classification. In addition, in order to obtain better signal reconstruction, a new multi-layer slice convolutional reconstruction network (ML-SCRN) is proposed. ML-SCRN implements the process from sparse coding to signal reconstruction. Experimental verification of the two networks are confirmed, respectively. Then ML-LoBCoD-Net and ML-SCRN are cascaded to obtain the classification and reconstruction network, ML-LoBCoD-SCRN, which realizes image classification and reconstruction at the same time. Compared with the reconstructing method based on the full connection layer, the proposed ML-LoBCoD-SCRN network requires fewer parameters, has faster convergence speed and higher reconstruction accuracy. In this paper, for comparative experiments, ML-ISTA-SCRN is constructed by ML-ISTA and ML-SCRN, and ML-FISTA-SCRN is constructed by the multi-layer fast iterative soft threshold algorithm (ML-FISTA) and ML-SCRN. The proposed ML-LoBCoD-SCRN is better than ML-ISTA-SCRN and ML-FISTA-SCRN on the classification accuracy rate, loss function value and signal reconstruction results for the MNIST, CIFAR10 and CIFAR100 datasets. -
在稀疏表示模型中, 一维信号或二维图像可以看成是多个基函数的线性组合, 本文将基函数称为原子, 所有原子组合为字典. 大部分稀疏编码的值为零, 只有少数有非零值. 对于稀疏编码问题, 以图像为例, 利用从图像提取的部分重叠片段来训练局部模型, 使用局部先验独立处理这些图像块, 然后对结果进行平均以获得近似全局估计[1]. 尽管稀疏编码很受欢迎, 但它针对图像块进行单独编码, 忽略了图像块之间的相关性, 导致编码高度冗余[2].
基于稀疏编码的缺陷和卷积神经网络的成功[3], Bristow 等[4]研究了卷积稀疏编码(Convolutional sparse coding, CSC), 过完备字典被卷积字典替代, 矩阵操作被卷积算子替代, 通过卷积字典直接产生平移不变性来弥补稀疏编码的根本性缺点. 用于信号恢复的稀疏重构算法主要分为两大类: 凸优化算法和贪婪算法. 凸优化算法重建速度慢, 贪婪算法在重建效率上并不是很理想[5]. 为了解决信号恢复问题, 目前领先的稀疏重构算法几乎都依赖于傅里叶域中的交替方向乘子法(Alternating direction multiplier method, ADMM)[6]. Papyan等[7] 提出了基于局部切片处理思想的卷积稀疏编码(Slice based CSC, SCSC)方法, 其是在图像切片(Slice)上进行局部操作而不是在图像块(Patch) 上, 巧妙地利用传统稀疏编码和传统字典学习算法解决了卷积稀疏编码和卷积字典学习问题. 但这种算法还是依赖于ADMM算法, 需要引入辅助变量, 增加内存需求. Zisselman等[8]在此基础上提出了基于局部块坐标下降(Local block coordinate descent, LoBCoD) 算法的卷积稀疏编码, 该算法在追踪阶段没有辅助变量也没有额外参数, 可以对卷积稀疏编码的每个码针单独优化, 既保证了局部稀疏度量, 并行处理也提高了编码速度.
从形式上看, 卷积稀疏编码类似于一层卷积神经网络, 因此Papyan等[9]提出了多层卷积稀疏编码(Multi-layer convolutional sparse coding, ML-CSC). 它从稀疏表示的观点提供了对卷积神经网络 (Convolutional neural network, CNN)[10]的新解释: CNN的前向过程等同于ML-CSC的多层卷积稀疏编码求解过程. Papyan等[9]提出了第一个多层卷积稀疏编码求解算法: 层基追踪算法(Layer basic pursuit, LBP). 尽管这种算法已经在CNN与稀疏建模之间建立了联系, 但仍然缺乏对ML-CSC 更深入的理解. ML-CSC模型的层基追踪算法不能提供满足多层模型假设的信号, 信号恢复误差将随着网络的深化而累积. Sulam等[11] 提出了第一个多层卷积字典学习算法, 首先使用快速迭代软阈值算法(Fast iterative soft threshold algorithm, FISTA) 求解最深层的稀疏编码, 然后使用卷积投影计算中间层的卷积稀疏编码并重构信号, 最后利用信号重构误差和随机梯度下降算法更新卷积字典. 这个模型利用的投影追踪算法解决了误差累积的缺点. 但投影追踪算法会产生次优性, 因为它们没有充分利用所有中间层信息[12-13]. Aberdam 等[13]提出了一种综合—整体—替代方案和整体追踪算法, 可以同时估计模型中的所有表示, 在合成和分析稀疏编码步骤之间交替, 解决整个模型的整体学习问题. 虽然文献[13] 提出了一种追踪算法, 但该算法本质是贪婪的, 并且不能很好地扩展到高维信号. 更重要的是, 目前还不清楚如何根据该方法从真实数据中训练字典. Sulam 等[12]提出了用于多层卷积稀疏编码问题的多层迭代软阈值算法(Multi-layer iterative soft threshold algorithm, ML-ISTA)和多层快速迭代软阈值算法(Multi-layer fast iterative soft threshold algorithm, ML-FISTA), 可以近似地收敛到多层基追踪问题的全局最优; 给出了迭代展开网络结构ML-ISTA-Net和ML-FISTA-Net, 并采用反向传播算法更新字典. 但这些多层模型都是基于图像块进行操作的, 忽略了图像的局部特征.
在切片局部处理思想、LoBCoD算法和ML-ISTA算法的启发下, 本文提出了基于切片的多层局部块坐标下降算法(ML-LoBCoD)用于多层卷积稀疏编码的多层基追踪问题. 这种方法是在迭代过程中, 沿码针方向进行逐一更新, 不需要求解目标函数的梯度, 仅需求解一维搜索问题, 收敛速度较快. 卷积神经网络应用于图像分类效果显著[14], 在ML-ISTA-Net用于分类问题的启发下, 本文提出了对应的迭代展开网络ML-LoBCoD-Net, 网络正向过程被用于分类任务, 网络逆向过程利用分类误差和反向传播算法更新卷积字典. 在投影追踪算法[12]和切片局部处理思想的启发下, 本文提出了多层切片卷积重构网络(Multi-layer slice convolutional reconstruction network, ML-SCRN)用于重构任务, 输入是最深层的卷积稀疏编码, 输出是重构信号. 为了提高信号分类准确率和重构质量, 在文献[15]的编码器和解码器框架的启发下, 本文提出了ML-LoBCoD-SCRN的分类重构网. 将ML-LoBCoD-Net 作为编码器提取图像特征, 将ML-SCRN 作为解码器得到重构信号. ML-LoBCoD-Net完成编码器和信号分类任务, ML-SCRN 完成解码器和信号重构任务. ML-LoBCoD-SCRN 网络逆向过程利用编码器分类误差、解码器重构误差和反向传播算法更新卷积字典.
1. 相关工作
1.1 基于切片的卷积稀疏编码
传统卷积稀疏编码模型的研究问题如下, 假设全局信号
$ X \in {\bf R}^N $ 满足$$ \begin{array}{l} X = D\Gamma = \displaystyle\sum\limits _{i = 1}^M d_i * \gamma_i \end{array} $$ (1) 其中,
$ X $ 是要分解的信号,$ D\in {\bf R}^{N\times NM} $ 是全局卷积字典,$ \Gamma \in {\bf R}^{NM} $ 是相应的稀疏表示. 全局字典 D 由大小为$n \times\; M$ 的局部卷积字典$ D_L $ 一系列移位组成,$d_i \in {\bf R}^{{n}}$ 表示卷积滤波器, 是矩阵$D_L$ 的列原子,$ \gamma_i \in {\bf R}^N $ 表示相应稀疏表示,“$ * $ ” 符号表示$ d_i $ 和$ \gamma_i $ 的卷积操作.传统卷积稀疏编码和卷积字典学习算法有空间域, 傅里叶域和混合域三种方法. 如卷积稀疏编码方法有卷积匹配追踪[16]、卷积基追踪[17] 和卷积可学习ISTA[18], 卷积字典学习方法有在线卷积字典学习[19]和卷积 K-SVD[20]. 文献[17, 20-22] 中提供了关于卷积稀疏表示的完整历史的讨论.
CSC大都是基于傅里叶域在图像块上进行操作的, 忽略了图像的局部特征. 文献[7] 做出了改进, 提出基于切片的卷积稀疏编码, 它是在 CSC 模型的基础上将图像块进行切片, 将全局稀疏向量
$ \Gamma $ 分成一组非重叠向量$ \{\alpha_i\}_{i = 1}^N $ , 即码针, 则全局信号 X 可以表示为$$ \begin{array}{l} X = D\Gamma = \displaystyle\sum\limits _{i = 1}^N P_{i}^{\rm{T}} D_L \alpha_i = \displaystyle\sum\limits _{i = 1}^N P_{i}^{\rm{T}} s_i \end{array} $$ (2) 其中, N 表示信号 X 被分成 N 个切片,
$P_{i}^{\rm{T}} \in {\bf R}^{N\times n}$ 是将$ D_L\alpha_i $ 置于第 i 个位置并用零填充其余部分的运算符,$ s_i $ 表示第 i 个切片.已知局部卷积字典
$ D_L $ , 从信号 X 发现最佳稀疏表示的问题称为基于切片的卷积稀疏编码或基于切片的卷积稀疏编码基追踪问题. 即$$ \begin{array}{l} \min\limits _{\alpha_i }\ \dfrac {1}{2} \|X-\displaystyle\sum\limits _{i = 1}^N P_{i}^{\rm{T}} D_L \alpha_i\|_{2}^{2} + \lambda \displaystyle\sum\limits _{i = 1}^N \|\alpha_i\|_{1} \end{array} $$ (3) 基于切片的卷积稀疏编码利用交替方向乘子法求解基追踪问题, 需要引入辅助变量, 导致增加内存需求, 收敛速度较慢.
1.2 基于切片的局部块坐标下降算法
Zisselman等[8]提出了基于切片的局部块坐标下降法用于解决基追踪问题, 利用块坐标下降算法更新局部稀疏向量, 无需定义任何其他变量. 这种方法避免了调整额外的参数, 节省内存. 它的原理是采用局部策略将全局稀疏向量
$ \Gamma $ 分成局部向量$ \{\alpha_i\}_{i = 1}^N $ . 该模型并不是对所有的针一起优化, 而是将取自全局向量$ \Gamma $ 的每一个针$ \alpha_i $ 作为坐标块, 并且对于这样的块单独地并有顺序地优化. 因此, 单个码针的更新规则可以写为$$ \begin{array}{l} \min\limits _{\alpha_i }\ \frac {1}{2} \|(X-\displaystyle\sum\limits _{\substack{{j = 1}\\{j\neq i}}}^N P_{j}^{\rm{T}} D_L \alpha_j)-P_{i}^{\rm{T}} D_L \alpha_i\|_{2}^{2} + \lambda \|\alpha_i\|_{1} \end{array} $$ (4) LoBCoD避免了额外参数的引入, 但仍然是将卷积稀疏编码和卷积字典学习分开进行求解, 计算较为复杂.
1.3 多层卷积稀疏编码
全局信号
$ X\in {\bf R}^N $ 可以由卷积字典$ D_1 $ 和对应稀疏向量$ \Gamma_1 $ 组成, 即$ X = D_1\Gamma_1 $ . 在多层模型中, 假设另一个字典$ D_2 $ 和稀疏表示$ \Gamma_2 $ 满足$\Gamma_1 = D_2\Gamma_2$ , 将这个结构级联到多层[12]. 将其命名为多层卷积稀疏编码, 则全局信号 X 与层稀疏编码$ \{\Gamma_j\}_{j = 1}^J $ 定义为$$ \begin{split} & X = D_1\Gamma_1 \\ &\Gamma_1 = D_2\Gamma_2 \\ & \qquad\vdots \\ &\Gamma_{J-1} = D_J\Gamma_J \end{split} $$ (5) $ D_{(1,J)} $ 定义为全局卷积字典, 则$ D_{(1,J)} =$ $D_1D_2\cdots D_J$ . 全局信号 X 可以表示为$$ \begin{array}{l} X = D_{(1,J)}\Gamma_J \end{array} $$ (6) 在最简单的形式中, 给定一组全局卷积字典
$ \{D_j\}_{j = 1}^J $ , 从被噪声 w 污染为$ y = X+w $ 的信号中发现最佳的稀疏表示问题称为多层卷积稀疏编码, 也称为多层基追踪去噪问题. 文献[9]的工作表明, 这个问题可以归结为求解信号深度卷积稀疏编码问题$$ \begin{array}{l} \min\limits _{\Gamma_J }\ \frac {1}{2} \|y-D_{(1,J)}\Gamma_J\|_{2}^{2} + \lambda \|\Gamma_J\|_{1} \end{array} $$ (7) 对于求解多层卷积稀疏编码问题, 文献[12] 提出的方法主要有层基追踪算法、多层迭代软阈值算法、多层快速迭代软阈值算法和多层可学习的迭代软阈值算法(Multi-layer learned iterative soft threshold algorithm, ML-LISTA). 文献[12]提出的展开神经网络, 前向过程求解卷积稀疏编码, 逆向过程求解字典学习, 但都是基于图像块进行操作的, 忽略了图像局部与全局的关系.
2. 基于切片的多层局部块坐标下降网络
2.1 基于切片的多层卷积稀疏编码
在本节中将卷积稀疏表示和卷积神经网络之间建立联系, 令卷积稀疏编码相当于一层卷积神经网络. 这样可以将传统基追踪问题推广到多层, 将第1.1 节中基于切片的卷积稀疏编码扩展到多层, 称为基于切片的多层卷积稀疏编码. 给定一组具有适当维度的卷积字典
$ \{D_j\}_{j = 1}^J $ 和全局信号X , ML-CSC中的层卷积稀疏表示可以写为$$ \begin{split} & X = D_1\Gamma_1 = \sum\limits_{i = 1}^N P_{1,i}^{\rm{T}} D_{L,1}\alpha_{1,i}, \|\Gamma_1\|_{0,\infty} \leq \lambda_1 \\ &\Gamma_1 = D_2\Gamma_2 = \sum\limits_{i = 1}^N P_{2,i}^{\rm{T}} D_{L,2}\alpha_{2,i}, \|\Gamma_2\|_{0,\infty} \leq \lambda_2 \\ &\qquad \qquad \qquad \qquad \vdots \\ &\Gamma_{J\!-\!1} = D_J\Gamma_J = \sum\limits_{i = 1}^N P_{J,i}^{\rm{T}} D_{L,J}\alpha_{J,i}, \|\Gamma_J\|_{0,\infty} \!\leq\! \lambda_J \end{split} $$ (8) 其中, 层稀疏表示
$ \Gamma_j $ 是局部向量$ \{\alpha_{j,i}\}_{i = 1}^N $ 的全局形式,$ \alpha_{j,i} $ 称为码针.$P_{j,i}^{\rm{T}},i = 1, \cdots, N$ 为将第 j 层的$ D_{L,j}\alpha_{j,i} $ 置于第 i 个位置并用零填充其余部分的运算符, N 是切片的数量, 各层中的 N 应该是不同的. 为简单起见, 假设所有层的 N 都相同. 令$ \Gamma_0 $ 表示信号 X, 可以将式(8)重写为$$ \begin{split} \Gamma_{j-1} = D_j\Gamma_j =\;& \sum\limits_{i = 1}^N P_{j,i}^{\rm{T}} D_{L,j}\alpha_{j,i},\|\Gamma_j\|_{0,\infty} \leq \lambda_j,\\ &\qquad\qquad\qquad\qquad\forall 1\leq j\leq J \end{split} $$ (9) 给定局部卷积字典
$\{D_{L, j}\}_{j = 1}^J$ , 从信号 X 发现最佳底层稀疏$ \Gamma_J $ 或$ \{\alpha_{J,i}\}_{i = 1}^N $ 称为基于切片局部处理的深度卷积稀疏编码, 或深度基追踪问题, 则式(7)可以写为$$ \begin{array}{l} \min\limits _{\{\alpha_{J,i}\}_{i = 1}^N}\ \frac {1}{2} \|y-\displaystyle\sum\limits _{i = 1}^N P_{J,i}^{\rm{T}} D_{L,J} \alpha_{J,i}\|_{2}^{2} + \displaystyle\lambda \sum\limits _{i = 1}^N \|\alpha_{J,i}\|_{1} \end{array} $$ (10) 根据式(9)和式(10)本文提出了分层基追踪问题.
$$ \begin{array}{l} \min\limits _{\{\alpha_{j,i}\}_{i = 1}^N}\ \frac {1}{2} \|\Gamma_{j\!-\!1}\!-\!\displaystyle\sum\limits _{i = 1}^N P_{j,i}^{\rm{T}} D_{L,j} \alpha_{j,i}\|_{2}^{2} \!+\! \lambda_j \displaystyle\sum\limits _{i = 1}^N \|\alpha_{j,i}\|_{1} \end{array} $$ (11) 2.2 基于切片的多层局部块坐标下降算法
本文将基于切片的局部块坐标下降法单层模型扩展为多层, 提出了基于切片的多层局部块坐标下降法. 为简洁起见, 在本节只介绍层稀疏编码. ML-LoBCoD 算法是将层稀疏向量
$ \Gamma_j $ 分成局部向量$ \{\alpha_{j,i}\}_{i = 1}^N $ , 然后对每一个码针在定义域内寻求最优解, 其他码针固定不变, 视为常数, 则可以将式(11)转换为单个码针的层基追踪问题$$ \begin{split} \min \limits_{\alpha_{j,i} }\ \frac {1}{2} \|&(\Gamma_{j-1}-\sum \limits_{\substack{{n = 1}\\{n\neq i}}}^N P_{j,n}^{\rm{T}} D_{L,j} \alpha_{j,n})-\\ &P_{j,i}^{\rm{T}} D_{L,j} \alpha_{j,i}\|_{2}^{2}+ \lambda_j \|\alpha_{j,i}\|_{1} \end{split} $$ (12) 定义
$R_{j,i} = \big(\Gamma_{j-1}-\sum\nolimits_{\substack{{n = 1},{n\neq i}}}^N P_{j,n}^{\rm{T}} D_{L,j} \alpha_{j,n}\big)$ 作为各层中无码针$ \alpha_{j,i} $ 贡献的层残差, 可以将式(12)重写为$$ \begin{array}{l} \displaystyle \min _{\alpha_{j,i} }\ \frac {1}{2} \|R_{j,i}-P_{j,i}^{\rm{T}} D_{L,j} \alpha_{j,i}\|_{2}^{2} + \lambda_j \|\alpha_{j,i}\|_{1} \end{array} $$ (13) 最小化式(13)会涉及到全局变量如
$ R_{j,i} $ , 但本文可以将其转化为等效的局部问题. 单位矩阵I定义为非重叠片段的总和$\sum\nolimits_{k = 1}^N P_{j,k}^{\rm{T}} P_{j,k} = I$ . 将此单位矩阵代入式(13), 可以等效为(详细过程见附录A)$$ \begin{array}{l} \min\limits _{\alpha_{j,i} }\ \displaystyle\frac {1}{2} \|P_{j,i} R_{j,i}- D_{L,j} \alpha_{j,i}\|_{2}^{2} + \lambda_j \|\alpha_{j,i}\|_{1} \end{array} $$ (14) 其中,
$ P_{j,i} \in \{P_{j,k}\}_{k = 1}^N $ . 本文将$ P_{j,i}\in {\bf R}^{N\times n} $ 定义为从 j 层卷积稀疏编码$ \Gamma_j $ 中提取第 i 个 n 维切片的运算符.通过对式(14)的二次误差项进行线性化, 更新每一层最优稀疏表示, 更新形式为
$\alpha^k \leftarrow \alpha^{k-1}-\dfrac{\partial f}{\partial\alpha^{k-1}}$ , 其中 f 表示式(14)目标函数的误差项, 导数公式为$$ \begin{array}{l} \displaystyle \frac{\partial f}{\partial\alpha_{j,i}} = D_{L,j}^{\rm{T}}(P_{j,i} R_{j,i}-D_{L,j}\alpha_{j,i}) \end{array} $$ (15) 类似算法 ML-ISTA 的推导过程[12], 码针
$ \alpha_{j,i} $ 表示为$$ \begin{array}{l} \alpha_{j,i}^k = S_{\lambda}\left(\alpha_{j,i}^{k-1}+D_{L,j}^{\rm{T}}\left(P_{j,i} R_{j,i}-D_{L,j}\alpha_{j,i}^{k-1}\right)\right) \end{array} $$ (16) 基于切片的多层局部块坐标下降算法虽然看起来很复杂, 但是这个算法可以分解为简单的递归分层操作, 即一个全局追踪的分层阈值操作. 如算法 1 所示, 输入信号为被噪声 w 污染的信号 y, 输出为层稀疏表示
$ \{\Gamma_j\}_{j = 1}^J $ 或码针$ \ \{\{\alpha_{j,i}\}_{i = 1}^N\}_{j = 1}^J $ . 对局部卷积字典$\{D_{L,j}\}_{j = 1}^J$ 、顶层卷积稀疏编码$ \Gamma_0 $ 和顶层残差$ R_0 $ 进行初始化. 在每一次迭代展开过程中, 以第 j 层为例, 选定一个方向码针$ \alpha_{j,i} $ , 根据上一次迭代的层残差$ R_j $ 和该层卷积稀疏编码的第 i 个码针$ \alpha_{j,i} $ 得出残差$ R_{j,i} $ , 利用式(16)更新码针$ \alpha_{j,i} $ . 再固定其他的码针, 单独更新$ \alpha_{j,i+1} $ . 依次将更新的码针进行累积得出该层的卷积稀疏编码$ \Gamma_j = \{\alpha_{j,i}\}_{i = 1}^N $ . 其与上一层的卷积稀疏编码$ \Gamma_{j-1} $ 得出第 j 层的层残差$R_{j}$ . 类似地更新第$ j+1 $ 层卷积稀疏编码, 循环此过程直到得出最佳的深层卷积稀疏编码. 算法过程相当于图1中第2列点线框中.算法 1. 基于切片的多层局部块坐标下降(ML-LoBCoD) 算法
输入. 信号y
输出. 层卷积稀疏表示
$\substack{\{\Gamma_j\}_{j=1}^J }$ 或码针$\substack{\ \{\{\alpha_{j,i}\}_{i=1}^N\}_{j=1}^J}$ 初始化: 局部卷积字典
$\substack{ \{D_{L,j}\}_{j=1}^J}$ ,$\substack {\Gamma_0\,=\,y}$ ,$\substack{R_1\,=\,\Gamma_0 }$ 迭代:
$\substack{k\,=\,1\,:\,K }$ 层数:
$\substack{j\,=\,1\,:\,J }$ 码针数:
$\substack{i\,=\,1\,:\,N}$ 计算局部残差:
$\substack{R_{j,i}^k \,=\,R_{j}^{k-1}\,+\, P_{j,i}^{\rm{T}} D_{L,j}}$ $\substack{\alpha_{j,i}^{k-1} }$ 码针更新:
$\substack{\alpha_{j,i}^k\,=\,S_{\lambda}\left(\alpha_{j,i}^{k-1}\,+\, D_{L,j}^{\rm{T}}\left(P_{j,i} R_{j,i}^{k}\,-\,D_{L,j}^{k}\alpha_{j,i}^{k-1}\right)\right)}$ 更新层残差:
$\substack{R_{j}^k\,=\,\Gamma_{j-1}^k\,-\,D_{L,j}\Gamma_{j}^k}$ 2.3 迭代展开的多层局部块坐标下降网络
如上所述, 基于切片的多层局部块坐标下降法为多层基追踪提供了有效的方法, 在本节中通过神经网络解释多层基追踪问题, 将ML-LoBCoD 算法构建为一个类似LeNet风格的多层模型网络, 即利用简单的递归分层操作将ML-LoBCoD算法看作多层神经网络层(图1点线框). 在图1中, 本节以三层神经网络层为例, 将ML-LoBCoD迭代展开三次构成ML-LoBCoD-Net, 称为迭代展开的多层局部块坐标下降网络. ML-LoBCoD-Net可以看作是神经网络中的前向传递, 网络的参数与传统的前向传输类型完全相同, 可以在模型中不引入任何参数的情况下改善典型CNN的性能. ML-LoBCoD-Net首先输入原始信号X, 即第0层卷积稀疏编码
$ \Gamma_0 $ , 通过卷积操作得出三层卷积稀疏编码的初始值$ \Gamma_1 $ 、$ \Gamma_2 $ 、和$ \Gamma_3 $ , 根据$ \Gamma_2 = D_3\Gamma_3 $ ,$ \Gamma_1 =$ $ D_2\Gamma_2 $ , 得出新的初始值$ \Gamma_1 $ 、$ \Gamma_2 $ 、和$ \Gamma_3 $ , 并引入超参数$ \beta $ , 对模型进行逐层松弛. 再通过算法1基于切片的多层局部块坐标下降算法估算出$\hat{\Gamma}_{1}$ 、$\hat{\Gamma}_{2}$ 和$\hat{\Gamma}_{3}$ . 接着将$\hat{\Gamma}_{1}$ 、$\hat{\Gamma}_{2}$ 和$\hat{\Gamma}_{3}$ 作为第二次迭代展开的卷积稀疏编码的初始值, 估算出第二次迭代展开的卷积稀疏编码$\hat{\Gamma}_{1}$ 、$\hat{\Gamma}_{2}$ 和$\hat{\Gamma}_{3}$ . 以此类推, 得出最终的第三层卷积稀疏编码卷积稀疏编码$\hat{\Gamma}_{3}$ . 最后在网络中加入一个全连接层作为分类器, 利用$\hat{\Gamma}_{3}$ 得出分类标签$ \hat{Y} $ , 实现网络的分类功能.图2是ML-LoBCoD算法在第j层卷积稀疏编码的更新流程图, 它表示图1中虚线框中的操作, 也就是算法1中一层卷积稀疏编码的更新部分. 它通过第
$ j-1 $ 层卷积稀疏编码$ \Gamma_{j-1} $ 和上一次迭代展开的卷积稀疏编码$ \Gamma_{j} $ 得出本次迭代展开的第j层卷积稀疏编码$ \Gamma_{j} $ .在图2 中模型通过反向循环强制地执行模型约束, 从而得到重构信号为
$ \hat{X} = D_{1}D_{2}\cdots D_{J}\Gamma_{J} $ .但是因子$ D_j $ 乘积的加深会导致优化问题高度非凸. 以逐层的方式松弛模型, 可以避免这种问题. 即每一层的近似模型约束,$ \Gamma_{j-1}\approx D_{j}\Gamma_{j} $ , 更容易最小化优化目标. 通过引入控制全局模型一致性的超参数$ \beta $ , 可以很容易地实现这一点. 在循环过程中, 首先用$ \beta = 0 $ 训练模型, 对应于逐层松弛模型, 随着迭代次数的增加逐渐过渡到$ \beta = 1 $ , 从而产生连贯的全局 ML-CSC 模型 (详细介绍见附录B).3. 基于切片的多层卷积重构神经网络
在上一节中提出的迭代展开的基于切片的多层局部块坐标下降网络是利用被噪声污染的信号求取最深层的卷积稀疏编码和分类标签. 在本节中主要解决利用最深层卷积稀疏编码得到重构信号
$ \hat{X} $ .对于多层模型, 给定底层卷积稀疏编码
$ \Gamma_J $ 和卷积字典$ \{D_j\}_{j = 1}^J $ 得到信号$ \hat{X}(\Gamma_J,\{D_j\}_{j = 1}^J) $ , 称为多层卷积稀疏投影. 可以由下式得出$$ \begin{array}{l} \hat{X}(\Gamma_J,\{D_j\}_{j = 1}^J) = D_1D_2 \cdots D_J\Gamma_J \end{array} $$ (17) 本文在基于切片局部处理的卷积稀疏编码的基础上提出了基于切片的多层卷积稀疏投影. 为简洁起见, 在本节中只介绍层卷积稀疏编码的更新规则, 即第
$ j-1 $ 层卷积稀疏编码$ \Gamma_{j-1} $ 由第j 层$ \Gamma_j =$ $ \{\alpha_{j,i}\}_{i = 1}^N $ 决定$$ \begin{array}{l} \Gamma_{j-1} = \displaystyle\sum\limits_{i = 1}^N P_{j,i}^{\rm{T}} D_{L,j}\alpha_{j,i} \end{array} $$ (18) 其中, 定义
$ s_{j,i} = D_{L,j}\alpha_{j,i} $ 为第j层第i个切片, 则式(18)可以写为$$ \begin{array}{l} \Gamma_{j-1} = \displaystyle\sum\limits_{i = 1}^N P_{j,i}^{\rm{T}}s_{j,i} \end{array} $$ (19) 图3 为层卷积稀疏解码的更新规则, 称为切片卷积层 (Slice convolution layer, SCL). 输入第 j 层卷积稀疏编码
$ \Gamma_{j} $ , 将码针$ \alpha_{j,i} $ 与局部卷积字典$ D_{L,j} $ 相乘得到切片$ s_{j,i} $ , 然后将$P_{j,i}^{\rm{T}}$ 操作应用于切片得到第$ j-1 $ 层卷积稀疏编码$ \Gamma_{j-1} $ .根据图3 可以由j层卷积稀疏编码
$ \Gamma_{j} $ 得出第$ j-1 $ 层卷积稀疏编码$ \Gamma_{j-1} $ , 在此基础上本文提出从最深层卷积稀疏编码层层递进得出重构信号$ \hat{X} $ 的算法过程, 称为“基于切片的多层卷积重构神经网络 (ML-SCRN)”. ML-SCRN 网络结构如图4 所示, 输入最深层卷积稀疏编码$ \Gamma_J $ , 利用切片卷积层得出$ \Gamma_{J-1} $ , 以此类推得出顶层卷积稀疏编码$ \Gamma_{0} $ , 即重构信号$ \hat{X} $ .算法 2 介绍了ML-SCRN网络的算法过程: 输入是通过迭代展开的多层局部块坐标下降网络得到的最深层卷积稀疏编码
$ \Gamma_J $ 和局部卷积字典$\{D_{L,j}\}_{j = 1}^J$ , 输出是重构信号$\hat{X}(\Gamma_J,\{D_{L,j}\}_{j = 1}^J)$ . 在每一次迭代过程中, 以第j层为例, 由码针$ \alpha_{j,i} $ 与局部卷积字典$ D_{L,j} $ 得到切片$ s_{j,i} = D_{L,j}\alpha_{j,i} $ , 通过$ P_{j,i}^T $ 操作得到第$ j-1 $ 层卷积稀疏编码. 循环此过程得到第$ 0 $ 层卷积稀疏编码$ \Gamma_0 $ 即重构信号$\hat{X} = \sum\nolimits_{i = 1}^NP_{1,i}^{\rm{T}} D_{L,1}\alpha_{1,i}$ .算法 2. 基于切片的多层卷积重构神经网络(ML-SCRN)
输入. 底层卷积稀疏编码
$\substack{\Gamma_J\,=\,\{\alpha_{j,i}\}_{i=1}^N }$ ,$\substack{\{D_{L,j}\}_{j=1}^J}$ 输出. 重构信号
$\substack{ \hat{X}(\Gamma_J,\{D_{L,j}\}_{j=1}^J)}$ 初始化: 局部卷积字典
$\substack{\{D_{L,j}\}_{j=1}^J}$ ,$\substack{\Gamma_0\,=\,y }$ ,$\substack{R_1\,=\,\Gamma_0}$ 迭代:
$\substack{ k\,=\,1\,:\,K}$ 层数:
$\substack{ j\,=\,1\,:\,J}$ 切片重构:
$\substack{s_{j,i}\,=\,D_{L,j}\alpha_{j,i}}$ 更新层残卷积稀疏编码:
$\substack{\Gamma_{j-1}^k\,=\, }$ $\substack{\sum\nolimits_{i=1}^NP_{j,i}^T s_{j,i}^k}$ 更新重构信号:
$\substack{\hat{X}\,=\,\Gamma_{0}^k\,=\,\sum\nolimits_{i=1}^NP_{1,i}^{\rm{T}} s_{1,i}^k}$ 显然, ML-SCRN是一个特殊的重构网络, 网络输入的不是原始信号, 而是卷积稀疏编码. 此外, ML-SCRN网络能够获得中间层和重构信号的稀疏编码, 因此它的前向传递实现了新颖的投影寻踪算法和信号投影算法.
4. 基于 ML-LoBCoD 的分类与重构合并网
在本节中, 将本文提出的ML-LoBCoD-Net和ML-SCRN进行级联得到基于ML-LoBCoD的分类与重构合并网(ML-LoBCoD-SCRN), 同时实现分类和重构功能. 基于编码器-解码器框架, 将ML-LoBCoD-Net作为编码器提取图像特征, 将ML-SCRN作为解码器得到重构信号.
ML-LoBCoD-SCRN 的前向过程包括两个部分: 第1部分将基于切片的多层局部块坐标下降的迭代展开网络作为编码器, 通过算法 1 得到图像的最深层卷积稀疏编码
$ \Gamma_J $ 和分类标签$ \hat{Y} $ . 第2部分将基于切片的多层卷积重构神经网络作为解码器, 通过算法 2 得到顶层卷积稀疏编码$ \Gamma_0 $ , 即重构信号$ \hat{X} = \Gamma_0 $ .ML-LoBCoD-SCRN 的后向过程是最小化总的损失函数
$F_{{\rm{loss}}}$ , 利用深度学习中函数 Adam(·)或 SGD (·)通过反向传播算法更新局部卷积字典$\{D_{L,j}\}_{j = 1}^J$ . 本文用均方损失函数$ MSE(X,\hat{X}) $ 表示原始信号 X 和重构信号$ \hat{X} $ 的重构误差, 用多分类的负对数似然损失函数$ NLL(Y,\hat{Y}) $ 表示最深层卷积稀疏编码$ \Gamma_J $ 产生的分类标签$ \hat{Y} $ 与信号真实标签 Y 之间的分类误差.本文定义损失函数
$F_{{\rm{loss}}}$ 是由重构误差$MSE $ $ (X,\hat{X}) $ 和分类误差$ NLL(Y,\hat{Y}) $ 加权得到, 即$$ \begin{array}{l} F_{{\rm{loss}}} = \rho \times MSE(X,\hat{X})+(1-\rho)\times NLL(Y,\hat{Y}) \end{array} $$ (20) 当
$ \rho = 0 $ 时, 相当于ML-LoBCoD分类网络; 当$ 0<\rho<1 $ 时是ML-LoBCoD-SCRN分类重构网络; 当$ \rho = 1 $ 时, 相当于ML-LoBCoD-SCRN重构网络. 图5为 ML-LoBCoD-SCRN 图像分类重构网络图.同理, 本文将多层迭代软阈值网络与 ML-SCRN-Net 进行级联得到基于 ML-ISTA 的分类与重构合并网(ML-ISTA-SCRN), 将多层快速迭代软阈值网络与 ML-SCRN 进行级联得到基于 ML-FISTA 的分类与重构合并网(ML-FISTA-SCRN), 以便之后的实验对比.
算法 3 介绍了 ML-LoBCoD-SCRN 分类重构网络的算法流程. 输入是原始图像信号 X, 输出是重构信号
$ \hat{X} $ . 首先引入噪声w得到被污染的信号y, 然后随机选择小批量训练样本, 并随机初始化卷积字典$\{D_{L,j}\}_{j = 1}^J$ , 通过算法 1 得到最深层的卷积稀疏编码$ \Gamma_J $ 和分类标签$ \hat{Y} $ , 通过算法 2 利用$ \Gamma_J $ 得到重构信号$ \hat{X} $ . 最后最小化损失函数$F_{{\rm{loss}}}$ 更新局部卷积字典, 循环此过程直到收敛.算法 3. 基于多层局部块坐标下降法的切片分类重构网络(ML-LoBCoD-SCRN)
输入. 原始图像信号 X
输出. 重构信号
$\substack{ \hat{X}(\{\{\alpha_{j,\,i}\}_{j\,=\,1}^J\}_{i\,=\,1}^N,\,\{D_{L,j}\}_{j\,=\,1}^J)}$ 初始化: 局部卷积字典
$\substack{ \{D_{L,j}\}_{j=1}^J }$ 引入噪声 w :
$\substack{ y\,=\,X\,+\,w }$ 迭代:
$\substack{ k\,=\,1\,:\,K}$ 通过算法 1 更新最深层的卷积稀疏编码
$\substack{\Gamma_J }$ 和 分类标签$\substack{\hat{Y}}$ 通过算法 2 更新切片与重构信号
$\substack{\hat{X}}$ 损失函数:
$\substack{F_{{\rm{loss}}}\,=\,\rho *MSE(X,\hat{X})\,+\,(1\,-\,\rho)*NLL(Y,\hat{Y}) }$ 更新卷积字典:
$\substack{D_{L,j}\,=\,D_{L,j}\,+\,\eta \partial \frac{F_{\rm{loss}}}{D_{L,j}},\;j\,=\,1, \cdots, J }$ 5. 实验
5.1 实验设置
在本节中将展示如何将提出的网络在MNIST、CIFAR10和CIFAR100数据集上对图像进行分类和重构. 实验是在单个Nvidia Geforce 1080 Ti GPU系统上运行的. 实验中多层卷积稀疏编码模型的层数选择为3层, 3个卷积层(即卷积字典)分别具有64, 128, 512个滤波器, 在MNIST数据集中卷积核的大小分别为(6,6), (6,6), (4,4), 在CIFAR10和CIFAR100数据集中卷积核的大小分别为(4,4), (5,5), (6,6). 本文提出的分类重构网的融合损失函数的超参数
$ \rho $ 设置为0.0, 0.01, 0.25, 0.5, 0.75, 0.99, 1.0, 用于比较$ \rho $ 在不同的值时ML-LoBCoD-SCRN, ML-ISTA-SCRN和ML-FISTA-SCRN分类重构网的图像分类重构效果. 其中$ \rho = 0 $ 时的分类重构网就是ML-LoBCoD-Net、ML-ISTA-Net、ML-FISTA-Net 分类网.5.2 LoBCoD-SCRN与 ML-LoBCoD-SCRN对比
在本节中提出单层的局部块坐标下降的分类重构网络(LoBCoD-SCRN)与ML-LoBCoD-SCRN网络进行对比试验. LoBCoD-SCRN是将原始信号X通过单层局部块坐标下降网络得到卷积稀疏编码表示
$ \Gamma $ , 再通过基于切片的单层卷积重构网络(SCRN)得到重构信号$ \hat{X} $ .图6和图7分别为 ML-LoBCoD-SCRN 和 LoBCoD -SCRN 两个模型在MNIST数据集下迭代100次的分类准确率(Accuracy, ACC)和重构损失值的对比图, 可以看出单层模型的分类和重构结果要远远低于多层模型结果. 由此可见单层模型由于只用到一层的卷积稀疏编码, 尽管网络结构简单, 参数少, 运行时间短, 但无法较成功地实现分类与重构功能.
5.3 ML-LoBCoD-SCRN的分类与重构
以MNIST数据集为例(与CIFAR10结果一致), 图8给出了
$ \rho $ 值不同的情况下, 模型训练100次ML-LoBCoD-SCRN的分类准确率. 可以看出$ \rho $ 值在变化时, ML-LoBCoD-SCRN的分类结果变化不大.图9是
$ \rho $ 值不同的情况下, 模型训练100次ML-LoBCoD-SCRN对于数字5的重构结果. 从图中可以看出, 随着$ \rho $ 值不断变大图像重构效果越来越好. 当$ \rho = 0 $ 时, 网络只能实现分类功能, 无法得出清晰的重构结果. 当$ \rho = 0.99 $ 时, 网络可以实现非常完整的重构图像. 当$ \rho = 1.0 $ 时, 网络的重构图像与$ \rho = 0.99 $ 时相当, 但它无法实现分类功能.图10是
$ \rho $ 值不同的情况下ML-LoBCoD-SCRN网络损失函数值随迭代次数变化关系图. 从图10可以看出, 参数$ \rho = 0.99 $ 的损失函数几乎最小, 实验中也发现$ \rho $ 的值越大图像重构效果越好. 因此后面本文选择$ \rho = 0.99 $ 进行实验, 同时实现重构和分类功能.5.4 ML-LoBCoD-Net分类
${{(}}{{\rho}} \;{{=0}}{{)}}$ 图11给出了
$ \rho = 0 $ 时, ML-LoBCoD-Net、ML-ISTA-Net和ML-FISTA-Net 三种分类网络模型训练100次的分类准确率, 可以看出ML-LoBCoD分类结果更稳定, 优于ML-FISTA, 和ML-ISTA相当.表1是CNN、ML-ISTA、ML-FISTA、ML-LISTA、LBP 和ML-LoBCoD分类网络分别在MNIST和CIFAR10数据集下模型训练100次的分类准确率. 可以看出在没有任何额外参数的情况下, 本文提出的ML-LoBCoD网络的分类准确率要高于其他网络.
表 1 几种分类网络在迭代100次时的分类准确率 (%)Table 1 Classification accuracy of several classification networks at 100 iterations (%)模型 ACC (MNIST) ACC (CIFAR10) CNN 98.74 79.00 ML-ISTA 99.11 82.93 ML-FISTA 99.16 82.79 ML-LISTA 98.80 82.68 LBP 99.19 80.73 ML-LoBCoD 99.15 85.53 5.5 ML-SCRN重构
ML-SCRN重构是先利用普通卷积操作得出三层卷积稀疏编码的值
$ \Gamma_1,\Gamma_2,\Gamma_3 $ ,再利用ML-SCRN对图像进行重构. 图12是迭代100次时ML-SCRN 重构网的部分测试数据的原始数字图像与重构数字图像对比, 可以看出,仅仅是重构网络并不能学习到复杂的数字图像结构, 很多重构数字会出现部分缺失或模糊的现象.5.6 逐层松弛模型对比
本文为避免因子
$ D_i $ 乘积的加深导致优化问题高度非凸, 提出利用逐层的方式松弛模型. 图13和图14分别是超参数$ (\beta = 0) $ 和逐层松弛$ (\beta = 0\rightarrow 1) $ 时ML-LoBCoD-SCRN模型的分类准确率和重构损失值的变化图.图15为在MNIST数据集下逐层松弛模型分类结果对比图, 图15(a)为原始图像, 图15(b)为超参数
$ \beta = 0 $ 的模型重构结果, 图15(c)是超参数$ \beta = 0\rightarrow 1 $ 逐层松弛模型重构结果图. 从图13 ~ 15可以看出在没有加入超参数$ \beta $ 的情况下模型的收敛速度慢, 分类和重构结果都低于有超参数时的模型结果.5.7 ML-LoBCoD-SCRN与ML-LoBCoD-FC的比较
传统的方法是基于全连接层(Fully connected layer, FC layer)对图像进行重建的, 即将编码器的输出送到解码器中实现图像重建, 该解码器由一个全连接的层组成. 本文将多层局部块坐标下降网络与全连接层进行级联得到基于ML-LoBCoD的分类与重构合并网(ML-LoBCoD-FC). 先通过ML-LoBCoD-Net得到最深层的卷积稀疏编码, 再分别采用两个全连接层得出图像的分类标签和重构图像. 在本节将 ML-LoBCoD-SCRN与ML-LoBCoD-FC的分类与重构结果进行比较. 表2给出了ML-LoBCoD-SCRN与ML-LoBCoD-FC在迭代100 次时的分类准确率、重构误差、平均峰值信噪比和运行时间的对比结果. 重构误差是所有测试集原图像与重构图像均方损失函数相加求平均得到的值. 平均峰值信噪比是所有测试集原图像与重构图像的峰值信噪比相加求平均得到的值. 可以看出ML-LoBCoD-SCRN网络与ML-LoBCoD-FC网络相比, 所占用的内存小, 收敛速度块, 重构图像精度高.
表 2 两种分类重构网络在迭代100次对比Table 2 Comparison of two classification reconstruction networks over 100 iterations模型 ML-LoBCoD-SCRN ML-LoBCoD-FC 分类准确率ρ=0 (%) 99.15 98.91 重构误差 3.03×10−6 1.38×10−5 平均峰值信噪比 (dB) 30.77 22.79 时间 1 h 47 m 2 h 34 m 图16是 ML-LoBCoD-SCRN与ML-LoBCoD-FC 分类重构网迭代100次时的部分MNIST测试数据的原始数字图像与重构数字图像对比, 图16(a)为原始图像, 图16(b)为ML-LoBCoD-FC 重构结果, 图16(c) 为ML-LoBCoD-SCRN重构结果. 可以看出ML-LoBCoD-FC重构网络不能学习到复杂的数字图像结构因此导致很多重构数字出现了模糊现象. 图17是迭代100 次时的ML-LoBCoD-SCRN分类重构网络和ML-LoBCoD-FC分类重构网络的损失函数值对比图. 可以看出ML-LoBCoD-SCRN网络重构结果优于ML-LoBCoD-FC.
这里给出ML-LoBCoD-SCRN和ML-LoBCoD-FC参数复杂度对比,如表3所示. 本文提出的ML-LoBCoD-SCRN的参数数量不会随着模型的加深而增加, 重构过程中并没有增加参数, 而ML-LoBCoD-FC在重构过程中参数数量明显增多. 因此, 与ML-LoBCoD-FC相比, 本文提出的模型使用的参数更少, 运行速度更快.
表 3 两种分类重构网络参数数量的比较Table 3 Comparison of the parameters of two classification reconstruction networks模型 ML-LoBCoD-SCRN ML-LoBCoD-FC 1st layer 6×6×1×64+64 6×6×1×64+64 2nd layer 6×6×64×128+128 6×6×64×128+128 3rd layer 4×4×128×512+512 4×4×128×512+512 4th layer 512×10+10 512×10+512×784+784 Total 1 352 330 1 753 818 5.8 ML-LoBCoD-SCRN与ML-ISTA-SCRN、ML-FISTA-SCRN的比较
这里将ML-LoBCoD-SCRN,ML-ISTA-SCRN 和ML-FISTA-SCRN 进行对比实验.
图18 ~ 20分别是
$ \rho = 0.99 $ 时ML-LoBCoD-SCRN、ML-ISTA-SCRN和ML-FISTA-SCRN重构分类网在MNIST、CIFAR10和CIFAR100 数据集下迭代100 次的部分测试数据的原始数字图像与重构数字图像对比. 图(a)为原始图像, 图(b)为ML-ISTA-SCRN重构结果, 图(c)为ML-FISTA-SCRN重构结果, 图(d)为ML-LoBCoD-SCRN重构结果. 可以看出ML-ISTA-SCRN和ML-FISTA-SCRN两个模型虽然可以较完整地将原图像重构出来, 但重构图像结果的清晰度没有ML-LoBCoD-SCRN 重构网络的效果好.图21和图22分别是
$ \rho = 0.99 $ 时ML-LoBCoD-SCRN分类重构网络、ML-ISTA-SCRN分类重构网络和ML-FISTA-SCRN分类重构网络在MNIST, CIFAR10和CIFAR100数据集下分类准确率对比图. 图23和图24分别是$ \rho = 0.99 $ 时ML-LoBCoD-SCRN分类重构网络、ML-ISTA-SCRN分类重构网络和ML-FISTA-SCRN分类重构网络在MNIST和CIFAR10数据集下的损失函数值对比图. 从中可以看出ML-LoBCoD-SCRN模型的收敛速度要比ML-ISTA-SCRN和ML-FISTA-SCRN快, 分类与重构的结果高于这些模型. 表4给出了三种网络在MNIST, CIFAR10和CIFAR100 数据集下迭代100 次时的分类准确率、重构误差、运行时间和平均峰值信噪比的对比结果.$ MSE(X,\hat{X}) $ 可以看出ML-LoBCoD-SCRN网络的各参数结果优于ML-ISTA-SCRN网络和ML-FISTA-SCRN 网络.表 4 三种网络在MNIST、CIFAR10和CIFAR100数据集下迭代100次各参数对比Table 4 Comparison of the parameters of the three networks under the MNIST, CIFAR10 and CIFAR100 datasets 100 times模型 分类准确率 (%) 重构误差 ( × 10−6 ) 运行时间 平均峰值信噪比 (dB) MNIST CIFAR10 CINAR100 MNIST CIFAR10 CINAR100 MNIST CIFAR10 CINAR100 MNIST CIFAR10 CINAR100 ML-LoBCoD-SCRN 98.90 84.40 83.41 3.03 1.44 3.14 1 h 47 m 1 h 12 m 0 h 57 m 30.77 32.46 29.97 ML-ISTA-SCRN 98.65 82.62 81.26 3.87 5.28 6.75 1 h 54 m 1 h 20 m 1 h 00 m 26.51 28.21 27.00 ML-FISTA-SCRN 98.41 83.48 80.34 3.42 6.52 8.95 1 h 56 m 1 h 25 m 1 h 05 m 29.75 27.63 25.14 6. 结论
本文在多层卷积稀疏编码模型和基于切片的局部块坐标下降法思想的基础上, 首先提出了基于切片的多层卷积稀疏表示模型, 接着提出了多层局部块坐标下降算法实现了多层基追踪问题的求解, 之后利用信号局部与全局的关系并采用前向卷积神经网络和递归神经网络, 将ML-LoBCoD 算法进行迭代展开, 在不增加网络参数情况下, 提出了迭代展开的ML-LoBCoD-Net 计算深层卷积稀疏编码, 将其用于分类任务, 分类结果优于CNN 网络. 基于切片局部处理思想, 本文又提出了多层卷积重构网络, 实现从深层卷积稀疏编码到信号的重构. 本文最终提出了三种分类重构网络ML-ISTA-SCRN、ML-FISTA-SCRN和ML-LoBCoD-SCRN, 实现了从信号到编码再到信号重构的级联网络, 其中提出了基于编码分类损失和信号重构损失的融合损失函数, 并采用反向传播算法训练网络. 将ML-LoBCoD-Net 与传统的基于全连接层重构方法相结合提出的ML-LoBCoD-FC 进行对比, ML-LoBCoD-SCRN的网络参数少, 运行时间短, 重构准确率高. 本文在MNIST、CIFAR10和CIFAR100数据集进行了大量实验, 实验结果表明, ML-LoBCoD-Net比ML-ISTA-Net 和ML-FISTA-Net的分类效果更好或相当. ML-LoBCoD-SCRN比ML-ISTA-SCRN 和ML- FISTA -SCRN 分类准确率有所提高, 而且信号重构误差有所减小. ML-LoBCoD-SCRN 重构出的图像明显优于ML-SCRN重构出的图像质量. 这说明分类信息和重构信息的联合利用会进一步提高信号重构质量. 未来研究解析残差稀疏变换算法及其驱动的深度神经网络, 研究多层近似消息传递算法及其驱动的深度神经网络, 研究非凸非光滑约束条件下的多层卷积稀疏编码算法及其驱动的深度神经网络, 并进一步研究它们在磁共振成像图像重建问题上的应用可能性.
附录A 从全局问题(13)过渡到局部问题(14)
为简洁起见, 本文只讨论基于切片的多层局部块坐标下降算法中的一层运算过程. 以第
$ j $ 层为例, 假设从该层中取出一组完全包含切片$ s_{j,i} = D_{L,j}\alpha_{j,i} $ 的非重叠片段, 将单位矩阵写为非重叠的片段提取矩阵的总和$\sum\nolimits_{k = 1}^N P_{j,k}^{\rm{T}} P_{j,k} = I$ , 其中$P_{j,i}\in \sum\nolimits_{k = 1}^N P_{j,k}$ . 将其代入式(13), 可以写为$$ \small \begin{split} \min \limits_{\alpha_{j,i}}\frac{1}{2}\|&\sum \limits_{k = 1}^N P_{j,k}^{{\rm{T}}}P_{j,k}R_{j,i}-P_{j,i}^{{\rm{T}}}D_{L,j}\alpha_{j,i}\|_{2}^{2}\notag= \\ &\min\limits_{\alpha_{j,i}}\frac{1}{2}\|\sum \limits_{k = 1}^N P_{j,k}^{{\rm{T}}}P_{j,k}(X-{\sum \limits_{\begin{aligned}&{\substack{n = 1}} \\ &{\substack{n\neq i}}\end{aligned}}^N} P_{j,k}^{{\rm{T}}}D_{L,j}\alpha_{j,k})-\\ &P_{j,k}^{{\rm{T}}}D_{L,j}\alpha_{j,i}\|_{2}^{2}\notag =\\ &\min \limits_{\alpha_{j,i}}\frac{1}{2}\|\sum \limits_{k = 1}^N P_{j,k}^{{\rm{T}}}P_{j,k}(X-{\sum \limits_{\begin{aligned}&{\substack{n = 1}} \\ &{\substack{n\neq i}}\end{aligned}}^N} P_{j,k}^{{\rm{T}}}D_{L,j}\alpha_{j,k})+\\ &P_{j,i}^{{\rm{T}}}(P_{j,i}(X-{\sum \limits_{\begin{aligned}&{\substack{n = 1}}\\ &{\substack{n\neq i}}\end{aligned}}^N} P_{j,k}^{{\rm{T}}}D_{L,j}\alpha_{j,k})-D_{L,j}\alpha_{j,i})\|_{2}^{2} \end{split} $$ 由于提取的矩阵
$ P_{j,i} $ 与所有$ k\neq i $ 的矩阵$P_{j,k}^{{\rm{T}}}$ 正交, 因此上式等价于$$ \small \begin{split} \min \limits_{\alpha_{j,i}}\frac{1}{2}\| & \sum \limits_{k = 1}^N P_{j,k}^{{\rm{T}}}P_{j,k}(X\!-\!\sum \limits_{\begin{aligned}&{\substack{n = 1}} \\ &{\substack{n\neq i}}\end{aligned}}^N P_{j,k}^{{\rm{T}}}D_{L,j}\alpha_{j,k})+\\ &P_{j,i}^{{\rm{T}}}(P_{j,i}(X\!-\!\sum \limits_{\begin{aligned}&{\substack{n = 1}} \\ &{\substack{n\neq i}}\end{aligned}}^N P_{j,i}^{{\rm{T}}}D_{L,j}\alpha_{j,i})\!-\!D_{L,j}\alpha_{j,i})\|_{2}^{2} \end{split} $$ 在最小化上式时, 第1项不依赖于
$ \alpha_{j,i} $ , 因此我们可以在最小化目标时忽略第1项得到$$ \small \begin{split} \min \limits_{\alpha_{j,i}}\frac{1}{2}\|P_{j,i}^{{\rm{T}}}(P_{j,i}(X-\displaystyle\sum \limits_{\begin{aligned}&{\substack{n = 1}} \\ &{\substack{n\neq i}}\end{aligned}}^N P_{j,i}^{{\rm{T}}}D_{L,j}\alpha_{j,i})-D_{L,j}\alpha_{j,i})\|_{2}^{2}\end{split} $$ 此外, 矩阵
$P_{j,i}^{{\rm{T}}}$ 是将第j层切片置于第$ i $ 个位置并用零填充的运算符. 因此, 我们可以忽略得到的向量中的所有零点, 等价于解决下面的最小化问题:$$\small \begin{split} & \min \limits_{\alpha_{j,i}}\frac{1}{2}\|P_{j,i}^{{\rm{T}}}(P_{j,i}(X\!-\!\displaystyle\sum \limits_{\begin{aligned}&{\substack{n = 1}} \\ &{\substack{n\neq i}}\end{aligned}}^N P_{j,i}^{{\rm{T}}}D_{L,j}\alpha_{j,i})\!-\!D_{L,j}\alpha_{j,i})\|_{2}^{2}\!= \\ &\min \limits_{\alpha_{j,i}}\frac{1}{2}\|P_{j,i}R_{j,i}-D_{L,j}\alpha_{j,i}\|_{2}^{2}\\[-20pt] \end{split} $$ 其中,
$R_{j,i} = X-\sum\nolimits_{{\substack{n = 1}} \\ {\substack{n\neq i}}}^N P_{j,i}^{{\rm{T}}}D_{L,j}\alpha_{j,i}$ 附录B 用于高效训练的逐层松弛模型
假设
$X=D_1D_2\cdots D_J \Gamma_J$ , 多层卷积稀疏编码模型(ML-CSC)对信号施加生成模型, 其中所有卷积稀疏编码$\Gamma_{j-1} = D_{j}\Gamma_J$ 是稀疏的. 在 ML-LoBCoD算法的每次迭代中, 执行以下步骤:1) 中间层表示:
$\Gamma_{j-1} \leftarrow D_{(j,J)}\Gamma_J$ 2) 层卷积稀疏编码的更新: 基于切片的多层局部块坐标下降法(ML-LoBCoD)
步骤1需要强制执行全局一致性, 保证模型约束在所有层中得到严格实施. 但是如果要以逐层方式松弛模型, 可以避免上面的步骤1. 在这种情况下, 可以训练一个模型, 使得
$ \Gamma_{j-1} \approx D_j\Gamma_j $ . 可以引入一个控制模型松弛的超参数$ \beta $ 来实现. 通过这种方式, ML-LoBCoD算法可以写为:在每次迭代过程中从
$ \beta = 0 $ 开始逐渐增大到1进行模型训练, 这样就能产生逐层松弛模型. 在这种情况下, 第一次迭代过程中产生的卷积稀疏编码$ \Gamma_1 $ 独立于其他层. 这与文献[9]中提出的分层基追踪公式有很大不同, 因为$ \Gamma_j $ 的后续估计确实影响了$ \Gamma_{j}^{k} $ 更深层的估计. 随着迭代的进行, 利用S型函数将超参数$ \beta = 0 $ 转向$ \beta = 1 $ , 从而产生连贯的全局ML-CSC模型. -
表 1 几种分类网络在迭代100次时的分类准确率 (%)
Table 1 Classification accuracy of several classification networks at 100 iterations (%)
模型 ACC (MNIST) ACC (CIFAR10) CNN 98.74 79.00 ML-ISTA 99.11 82.93 ML-FISTA 99.16 82.79 ML-LISTA 98.80 82.68 LBP 99.19 80.73 ML-LoBCoD 99.15 85.53 表 2 两种分类重构网络在迭代100次对比
Table 2 Comparison of two classification reconstruction networks over 100 iterations
模型 ML-LoBCoD-SCRN ML-LoBCoD-FC 分类准确率ρ=0 (%) 99.15 98.91 重构误差 3.03×10−6 1.38×10−5 平均峰值信噪比 (dB) 30.77 22.79 时间 1 h 47 m 2 h 34 m 表 3 两种分类重构网络参数数量的比较
Table 3 Comparison of the parameters of two classification reconstruction networks
模型 ML-LoBCoD-SCRN ML-LoBCoD-FC 1st layer 6×6×1×64+64 6×6×1×64+64 2nd layer 6×6×64×128+128 6×6×64×128+128 3rd layer 4×4×128×512+512 4×4×128×512+512 4th layer 512×10+10 512×10+512×784+784 Total 1 352 330 1 753 818 表 4 三种网络在MNIST、CIFAR10和CIFAR100数据集下迭代100次各参数对比
Table 4 Comparison of the parameters of the three networks under the MNIST, CIFAR10 and CIFAR100 datasets 100 times
模型 分类准确率 (%) 重构误差 ( × 10−6 ) 运行时间 平均峰值信噪比 (dB) MNIST CIFAR10 CINAR100 MNIST CIFAR10 CINAR100 MNIST CIFAR10 CINAR100 MNIST CIFAR10 CINAR100 ML-LoBCoD-SCRN 98.90 84.40 83.41 3.03 1.44 3.14 1 h 47 m 1 h 12 m 0 h 57 m 30.77 32.46 29.97 ML-ISTA-SCRN 98.65 82.62 81.26 3.87 5.28 6.75 1 h 54 m 1 h 20 m 1 h 00 m 26.51 28.21 27.00 ML-FISTA-SCRN 98.41 83.48 80.34 3.42 6.52 8.95 1 h 56 m 1 h 25 m 1 h 05 m 29.75 27.63 25.14 -
[1] Aharon M, Elad M, and Bruckstein A, K-SVD: an algorithm for designing overcomplete dictionaries for sparse representation. IEEE Transactions on Signal Processing, 2006, 54(11): 4311−4322 [2] Rey-Otero I, Sulam J, and Elad M. Variations on the convolutional sparse coding model. IEEE Transactions on Signal Processing, 2020, 68(1): 519−528 [3] Lecun Y, Bengio Y, Hinton G. Deep learning. Nature, 2015, 521(7553): 436−444 [4] Bristow H, Eriksson A, Lucey S. Fast convolutional sparse coding. In: Proceedings of the 2013 IEEE Conference on Computer Vision and Pattern Recognition, 2013, 391−398 [5] 陈善雄, 熊海灵, 廖剑伟, 周骏, 左俊森. 一种基于 CGLS 和 LSQR 的联合优化的匹配追踪算法. 自动化学报, 2018, 44(7): 1293−1303Chan Shan-Xiong, Xiong Hai-Ling, Liao Jian-Wei, Zhou Jun, Zuo Jun-Sen. A joint optimized matching tracking algorithm based on CGLS and LSQR. Acta Automatica Sinica, 2018, 44(7): 1293−1303 [6] Heide F, Heidrich W, Wetzstein G. Fast and flexible convolutional sparse coding. In: Proceedings of the 2015 IEEE Conference on Computer Vision and Pattern Recognition, 2015, 5135−5143 [7] Papyan V, Romano Y, Sulam J, Elad M. Convolutional dictionary learning via local processing. In: Proceedings of the 16th IEEE International Conference on Computer Vision (ICCV) , 2017, 5306–5314 [8] Zisselman E, Sulam J, Elad M. A local block coordinate descent algorithm for the CSC model. In: Proceedings of the 2019 IEEE Conference on Computer Vision and Pattern Recognition, 2019, 8200−8209 [9] Papyan V, Romano Y, Elad M. Convolutional neural networks analyzed via convolutional sparse coding. The Journal of Machine Learning Research, 2017, 18(1): 2887−2938 [10] 张芳, 王萌, 肖志涛, 吴骏, 耿磊, 童军, 王雯. 基于全卷积神经网络与低秩稀疏分解的显著性检测. 自动化学报, 2019, 45(11):2148−2158Zhang Fang, Wang Meng, Xiao Zhi-Tao, Wu Jun, Geng Lei, Tong Jun, Wang Wen. Saliency detection based on full convolutional neural network and low rank sparse decomposition.Acta Automatica Sinica, 2019, 45(11): 2148−2158 [11] Sulam J, Papyan V, Romano Y, Elad M. Multi-layer convolutional sparse modeling: Pursuit and dictionary learning. IEEE Transactions on Signal Processing, 2018, 65(15): 4090−4104 [12] Sulam J, Aberdam A, Beck A, Elad M. On multi-layer basis pursuit, efficient algorithms and convolutional neural networks. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2020, 42(8): 1968−1980 [13] Aberdam A, Sulam J, Elad M. Multi-layer sparse coding: the holistic way. SIAM Journal on Mathematics of Data Science, 2019, 1(1): 46−77 [14] 常亮, 邓小明, 周明全, 武仲科, 袁野, 杨硕, 王宏安. 图像理解中的卷积神经网络. 自动化学报, 2016, 42(9): 1300−1312Chang Liang, Deng Xiao-Ming, Zhou Ming-Quan, Wu Zhong-Ke, Yuan Ye, Yang Shuo, Wang Hong-An. Convolution neural network in image understanding. Acta Automatica Sinica, 2016, 42(9): 1300−1312 [15] Badrinarayanan V, Kendall A, and Cipolla R. SegNet: a deep convolutional encoder-decoder architecture for image segmentation. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(12): 2481−2495 [16] Elad P, Raja G. Matching pursuit based convolutional sparse coding. In: Proceedings of the 2018 IEEE International Conference on Acoustics, Speech, and Signal Processing, 2018, 6847−6851. [17] Wohlberg B. Effificient algorithms for convolutional sparse representations. IEEE Transactions on Image Processing, 2016, 25(1): 301−315 [18] Sreter H, Giryes R. Learned convolutional sparse coding. In: Proceedings of the 2018 IEEE International Conference on Acoustics, Speech, and Signal Processing, 2018, 2191−2195 [19] Liu J, Garcia-Cardona C, Wohlberg B, Yin W. First and second order methods for online convolutional dictionary learning. SIAM Journal on Imaging Sciences, 2018: 1589−1628 [20] Garcia-Cardona C, Wohlberg B. Convolutional dictionary learning: A comparative review and new algorithms. IEEE Transactions on Computational Imaging, 2018, 4(3): 366−381 [21] Peng G J. Joint and direct optimization for dictionary learning in convolutional sparse representation. IEEE Transactions on Neural Networks and Learning Systems, 2020, 31(2):559−573 [22] Papyan V, Sulam J, and Elad M. Working locally thinking globally: Theoretical guarantees for convolutional sparse coding. IEEE Transactions on Signal Processing, 2017, 65(21): 5687−5701 期刊类型引用(2)
1. 李艳红,任霖,王素格,李德玉. 非平衡数据流在线主动学习方法. 自动化学报. 2024(07): 1389-1401 . 本站查看
2. 刘小强. D2D毫米波通信中基于多变量联合优化的吞吐量提升算法. 国外电子测量技术. 2022(11): 51-56 . 百度学术
其他类型引用(6)
-