2.845

2023影响因子

(CJCR)

  • 中文核心
  • EI
  • 中国科技核心
  • Scopus
  • CSCD
  • 英国科学文摘

留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

深度EM胶囊网络全重叠手写数字识别与分离

姚红革 董泽浩 喻钧 白小军

姚红革, 董泽浩, 喻钧, 白小军. 深度EM胶囊网络全重叠手写数字识别与分离. 自动化学报, 2022, 48(12): 2996−3005 doi: 10.16383/j.aas.c190849
引用本文: 姚红革, 董泽浩, 喻钧, 白小军. 深度EM胶囊网络全重叠手写数字识别与分离. 自动化学报, 2022, 48(12): 2996−3005 doi: 10.16383/j.aas.c190849
Yao Hong-Ge, Dong Ze-Hao, Yu Jun, Bai Xiao-Jun. Fully overlapped handwritten number recognition and separation based on deep EM capsule network. Acta Automatica Sinica, 2022, 48(12): 2996−3005 doi: 10.16383/j.aas.c190849
Citation: Yao Hong-Ge, Dong Ze-Hao, Yu Jun, Bai Xiao-Jun. Fully overlapped handwritten number recognition and separation based on deep EM capsule network. Acta Automatica Sinica, 2022, 48(12): 2996−3005 doi: 10.16383/j.aas.c190849

深度EM胶囊网络全重叠手写数字识别与分离

doi: 10.16383/j.aas.c190849
详细信息
    作者简介:

    姚红革:博士, 西安工业大学计算机科学与工程学院副教授. 主要研究方向为机器学习, 计算机视觉.E-mail: yaohongge@xatu.edu.cn

    董泽浩:西安工业大学计算机科学与工程学院硕士研究生.主要研究方向为深度学习, 胶囊网络.E-mail: axxddzh@gmail.com

    喻钧:西安工业大学计算机科学与工程学院教授. 主要研究方向为图像处理, 模式识别.E-mail: yujun@xatu.edu.cn

    白小军:西安工业大学计算机科学与工程学院副教授, 电子信息现场勘验应用技术公安部重点实验室研究员. 主要研究方向为数字图像处理, 人工智能与机器学习. 本文通信作者.E-mail: baixiaojun@xatu.edu.cn

Fully Overlapped Handwritten Number Recognition and Separation Based on Deep EM Capsule Network

More Information
    Author Bio:

    YAO Hong-Ge Ph.D., associate professor at the School of Computer Science and Engineering, Xi'an Technological University. His research interest covers machine learning and computer vision

    DONG Ze-Hao Master student at the School of Computer Science and Engineering, Xi'an Technological University. His research interest covers deep learning and capsule network

    YU Jun Professor at the School of Computer Science and Engineering, Xi'an Technology University. Her research interest covers image processing and pattern recognition

    BAI Xiao-Jun Associate professor at the School of Computer Science and Engineering, Xi'an Technological University, and also a researcher of the Key Laboratory of Electronic Information Processing with Applications in Crime Scene Investigation, Ministry of Public Security. His research interest covers digital image processing, artificial intelligence, and machine learning. Corresponding author of this paper

  • 摘要: 基于胶囊网络的向量神经元思想和期望最大算法(Expectation-maximization, EM), 设计了一种以EM为向量聚类算法的深度胶囊网络(Deep capsule network, DCN), 实现了重叠手写数字的识别与分离. 该网络由两部分组成, 第 1 部分是“识别网络”, 将 EM 算法改为 EM 向量聚类算法, 以替换原胶囊网络CapsNet 中的迭代路由部分, 这一改动优化了网络的运算过程, 实现了重叠数字识别. 第 2 部分是“重构网络”, 由结构完全相同的两个并行网络组成, 对双向量进行并行重构, 实现了重叠数字的分离. 实验结果显示, 对于 100% 全重叠手写数字图片本网络识别率达到了 96%, 对比CapsNet 在 80% 的重叠率下 95% 的识别率, 本文网络在难度提升的情况下, 识别率有明显提高, 能够将完全重叠的两张手写数字进行图片进行准确地分离.
  • 识别并分离高度重合数字对象的问题由Hinton等[1]于2002年提出, 多年来也有其他研究者在该领域进行了研究, 如Goodfellow等[2]使用深度卷积网络, Ba等[3]使用视觉注意力机制和Greff等[4]使用深度无监督分组进行尝试. 他们均是利用对象形状的先验知识进行分离. 在性能最好的Ba等[3]的研究中虽然实现了95%的识别率, 但图片也只是4%的重叠率.

    直到Sabour等[5]所研究的胶囊网络CapsNet面世, 重叠手写体识别成功率才有了大幅提高, 当重叠率80%时识别率可达95%. 胶囊网络的主要特征是, 使用胶囊神经元代替了普通神经元, 使用向量代替了在网络中流通的标量. 胶囊神经元除了承载着网络权值的联系之外, 其向量内部也存在着维度上的联系, 丰富了图像特征的表达与提取能力. 在CapsNet中使用了迭代路由算法, 该算法用向量内积来表示向量方向的同向程度, 动态路由通过迭代来实现. CapsNet将最突出的向量作为分类结果输出, 向量的突出程度跟胶囊内与输出向量方向相近的向量数目和模长正相关. 为避免在使用内积作为衡量手段出现无上界的情况, 对向量进行了输出前的压缩.

    CapsNet的优势是简单易实现, 但在使用它进行全重叠数字图片识别时发现, 由于网络深度宽度不足, 中间向量的规模太小, 同时内积路由算法效率低. 这些因素降低了网络的速度, 影响了网络的聚类效果, 从而使网络对图像特征提取不够充分, 在分类时表现不佳, 导致重构出来的分离图片不够准确和清晰. 为了提高对全重叠手写数字的识别精度, 基于CapsNet, 本文提出以下改进方法:

    1)首先对胶囊网络CapNet进行加深. 在它的Conv1层之后加入一层卷积层“卷积层2”, 提高目标特征提取能力; 另外在CapNet的DigitCap之后, 对应本文“初级胶囊层(胶囊部分)”之后加入一层全连接胶囊层“聚类胶囊层1”, 增加聚类能力以增强网络识别能力, 参见图1(a).

    图 1  深度胶囊网络结构图
    Fig. 1  Deep capsule network structure diagram

    2)提高胶囊维度为16维. 这样使各个胶囊层胶囊统一维度为16维, 既提高了胶囊对图片特征表达能力, 减少维度转换时系统消耗和信息的丢失和变异, 也便于各层间信息的传输.

    3)用EM (Expectation-maximization)向量聚类取代原路由聚类, 提高聚类效果. 胶囊网络中向量神经元将低级特征预测为高级特征, 输出向量的分布符合以不同高级特征为期望的混合高斯模型[5]. 混合高斯模型是有限混合概率分布模型, 其可用EM算法找到最大似然估计[6-7]. 通过假设隐变量的存在, 简化似然函数方程的求解[6-8]. 基于此特点, 本文将EM聚类改为EM向量聚类, 并用它取代胶囊网络中的迭代路由, 提高了聚类效果. 也减少中间变量的产生, 降低显存以及空间消耗, 总体提高系统的运行效率.

    4)设计了一个并行重构网络. 因为要分离两个重叠的数字, 需要取两个模数最长的向量来进行重构, 因此数字重构网络必须要设计成并行的两个网络结构, 才能对模数最长的两个向量分别并行重构. 依据这一想法, 本文设计了一个双并行重构网络结构, 实现了对两个全重叠手写数字的分离重构, 参见图1(b).

    胶囊网络的思想最早出现于Hinton等[7]提出的分组神经元. 基于此, Sabour等[5]进一步提出胶囊间的动态路由算法, 该算法使胶囊进入了初级应用阶段. 尽管是初级应用, 但它实现了目标属性间的“等变性” (Equivariance), “等变性”保留有图像各部分信息间的关联. 而在此之前的神经网络只是实现空间不变性, 空间不变性实现的一般方法是卷积神经网络(Convolutional neural network, CNN)的池操作, 空间不变性与“等变性”比较丢失了图像各部分间的关联信息. 它的实现要归因于网络内的动态路由算法, 但动态路由算法优化能力较弱, 于是 Wang等[9]通过引入耦合分布KL (Kullback-Leibler)散度来优化动态路由, 使胶囊网络性能获得一定的提升. 胶囊网络的又一应用是CapsGan[10]网络, 它使用胶囊网络作为生成式对抗网络(Generative adversarial network, GAN)中的甄别器, 比CNN的GAN获得更好的生成效果. 以上方法均是对胶囊网络优化和新领域的应用, 在网络构造上基本没有改变.

    LaLonde等[11]和 Rajasegaran等[12]对胶囊网络结构进行了加深. LaLonde等通过卷积, 让所有胶囊沿深度方向作为输入进行转换, 包含在较高层的胶囊里. 加深胶囊层必定增加动态路由量, 引起计算复杂度的增加. 为了降低计算复杂度, Rajasegaran等[12]采用了如下措施: 在初始阶段减少路由迭代次数; 在路由中间层使用三维卷积, 采用参数共享而减少参数的数目; 同时提出本地化路由代替完全连接的路由. 新加深的胶囊网络具有捕获更细致信息的能力, 增强了它的实际应用能力, 可以处理比MNIST数据集更复杂的数据集. 本文对胶囊网络的加深主要体现在前端的特征提取和后端的分离方面, 目的是增强对重叠手写体的识别能力和分离能力.

    将EM算法应用于胶囊路由也起源于Hinton等[13]的研究之作, 底层胶囊的姿态矩阵通过与转换矩阵相乘而得到高层胶囊的姿态矩阵, 这个过程可以看作是每一个底层胶囊对高层胶囊所表达图像特征的投票. 投票通过分配一个权重系数来实现. 这个系数是由EM算法进行循环更新的, 通过EM算法系统将底层胶囊的输出路由给高层胶囊. 底层胶囊与高层胶囊的这种联系反应的是图像中实体的整体与部分间关系, 它使胶囊网络具有了对所关注实体的视角不变性. EM算法在文献[13]中是直接应用, 并未改动. 本文依据输入向量的独立性对EM算法的E (Expectation)步进行了改进, 并依信息熵重新定义了混合度, 优化了胶囊间的迭代, 加速其收敛, 并将其用于手写体数字分离中, 相较于文献[13]分离效果有了明显提高.

    Mixup[14]和Between-Class learning[15]是两个对类别不同的样本进行重叠的算法, 可以是两个图片按不同混合比的重叠. 其目的是通过丰富训练样本的状态来提高所训练模型的泛化能力. Mixup和Between-Class learning算法说明将不同类别的图片重叠来训练模型能提高模型的分类能力. 这一点与本文方法相同. 但这两种方法目的是分类, 不能将混合的像素按图像本来分离. 本文方法是基于细致识别下的重叠图片的重构分离.

    基于胶囊网络CapsNet, 本文构建了一个以EM为向量聚类的深度胶囊网络(Deep capsule network, DCN), 其网络结构如图1所示, 由分类网络(参见图1(a))和重构网络(参见图1(b))组成.

    因为卷积层在神经网络中具有提取多级特征的能力, 而且可以通过卷积核的共享降低运算量. 因此在DCN中, 使用了两个卷积层对输入图像的特征进行提取, 其中卷积层1使用512个$9\times 9 $的卷积核对图像进行卷积在卷积层2中使用256个$5\times5 $卷积核进行卷积, 最终得到$256\times16\times16 $的特征图.

    然后构建一个初级胶囊层, 其前半部分通过多重卷积获得一组$32\times16\times6\times6 $的标量, 由其后半部分的胶囊生成一组由16维向量组成的1152个向量神经元, 每个神经元输出一个16维的向量. 在每个$6\times6 $的网格中, 设定权重共享给每一个胶囊, 然后对每个输出向量进行输出.

    接下来使用两个聚类胶囊层进行最终的分类, 增加的聚类胶囊层1是对初级胶囊中的向量, 通过EM向量聚类进行初步筛选, 形成较为高级的有明显倾向性的高级向量给聚类胶囊层2, 然后再由聚类胶囊层2进行第2次EM向量聚类, 细选出可用于表示不同类别信息的向量. 在每次聚类之后是压缩. 聚类的过程使得高级特征更集中, 压缩的目的是为了限制向量的模长. 模长被限制于0 ~ 1之间, 用以表达其所属类别的概率. 再由最后一层产生10个16维的向量代表0 ~ 9的10分类结果, 作为输出.

    在检测重叠手写数字时, 选取输出模最长的前两个向量作为最可能重叠的结果进行输出. 如果模长第二的向量模长不足0.1, 就认为是由两个分类相同的数字叠加而成.

    重构由重构网络完成, 本文重构网络是由两个结构相同的3层全连接网络构成, 详见图1(b). 重构时选取“分类网络”输出的模长最长的两个向量, 为避免其余8个向量的干扰, 将其全部值置为“零”. 然后将这10个16维向量, 首尾接续分别传入两个并行重构网络进行重构.

    底层胶囊所生成的向量可以认为其代表了某种低级特征, 该低级特征通过姿态变换矩阵可对高级特征进行预测, 这种预测是对向量的方向以及维度的变换, 其表达式为

    $$ {{\boldsymbol{{U}}}_{\left( {l + 1,j} \right)}} = {{\boldsymbol{W}}_{\left( {{{{{i}},{{j}}}}} \right)}}{{\boldsymbol{V}}_{\left( {l,i} \right)}} $$ (1)

    其中, $ {{\boldsymbol{U}}}_{\left(l+1,j\right)} $表示在第i层中第$ j $个胶囊的预测向量, 即预测结果. ${{\boldsymbol{W}}}_{\left({{{i,j}}}\right)}$表示由$ l $层的i胶囊输出到第$ l $+1层中第j个胶囊特征的姿态变换矩阵. ${{\boldsymbol{V}}}_{\left(l,i\right)}$表示第$ l $层中第i个胶囊的输出向量.

    胶囊网络中向量神经元将低级特征预测为高级特征, 输出向量的分布符合以不同高级特征为期望的混合高斯模型[5]. 基于此, 将EM聚类改造成为EM向量聚类, 用它取代胶囊网络中的迭代路由, 以优化系统, 提高其运行效率.

    2.2.1   EM向量聚类

    经过姿态变换方程产生的一组预测向量是符合混合高斯分布的[5], 如式(2)所示, 经过多轮迭代获得概率最大的分布函数[6-7], 作为胶囊的输出.

    $$\begin{split}p\left( {\boldsymbol{X}} \right) =& \mathop \sum \limits_j \frac{{{\alpha _j}}}{{{{\left( {2\pi } \right)}^{\frac{d}{2}}}{{\left( {\det {{\boldsymbol{\Sigma}} _j}} \right)}^\frac{1}{2}}}}\times\\ &\exp \left( { - \frac{1}{2}{{\left( {{\boldsymbol{X}} - {\mu _j}} \right)}^ {\rm{T}} }{\boldsymbol{\Sigma}} _j^{ - 1}\left( {{\boldsymbol{X}} - {\mu _j}} \right)} \right)\end{split}$$ (2)

    其中, $ j $代表类别, $ {\boldsymbol{X}} $为输入向量, $ {\alpha }_{j} $为第j类的概率且${{\boldsymbol{\Sigma}}}_{j}{\alpha }_{j}=1$, $ {\mu }_{j} $为第j类的向量期望, ${\boldsymbol{\Sigma}} _{j}$为协方差矩阵.

    因为低级特征来自于输入图像的变换结果, 所产生的向量之间可以认为是相互独立的, 因此协方差矩阵是一个对角阵, 这样就相当于输入$ {\boldsymbol{X}} $在各分量解耦. 所以本文相较于标准EM迭代算法进行了改动, 即

    $$ p\left({\boldsymbol{X}}\right)={\sum \limits_j}\frac{{\alpha }_{j}}{\sqrt{2\pi }{\sigma }^{d}}{{\rm{exp}}}\left(- \frac{1}{2{\sigma }^{2}}{\left|\left|{\boldsymbol{X}}-{\mu }_{j}\right|\right|}^{2}\right) $$ (3)

    因为将输入分布视为混合高斯分布进行聚类, 聚类中心向量是类内向量的加权平均, 无法通过模长来衡量显著性. 所以引入一个标量$ {a}_{j} $作为缩放尺度来衡量显著性, 并在输出之前代入asquashing函数来控制输出向量的模长.

    用EM聚类结果得到输出高斯分布的方差, 方差越大意味着预测向量分布越接近均匀分布, 说明这个输出胶囊输入的预测结果并不明显接近同一种特征, 此时$ {a}_{j} $应该小; 方差越小意味着分布越集中, 说明这个输出的输入的预测结果大致相近, 此时$ {a}_{j} $应该大. 基于这种思想选择使用信息熵$ {C}_{j} $来辅助$ {a}_{j} $衡量特征的显著程度[6-7, 16], $ {C}_{j} $表达式可定为

    $${C_j} = \left( {1 + \mathop \sum \limits_{l = 1}^d {\rm{ln}}\sigma _j^l} \right)\mathop \sum \limits_i {r_{ij}}$$ (4)

    其中, $ {\sigma }_{j}^{l} $为第$ l $$ j $胶囊均方差, $ {r}_{ij} $为底层$ i $胶囊转变为高层$ j $胶囊的模长占比, $ {C}_{j} $表达第$ j $个胶囊所表达的特征的显著性. 基于$ {C}_{j} $得到缩放尺度$ {a}_{j} $可定为

    $$ {a}_{j}={\rm{sigmoid}}\left(1-{C}_{j}\right) $$ (5)

    当分布的方差越小时$ {C}_{j} $的值越小, 因此通过最大化$ {C}_{j} $的方式实现迭代优化. 为防止无上限的情况, 在此采用sigmoid激活函数.

    2.2.2   算法流程

    EM向量聚类算法的流程如图2所示.

    图 2  EM向量聚类算法流程图
    Fig. 2  Flow chart of EM vector clustering algorithm

    在已知${\boldsymbol{U}}_{{ij}}$, ${\boldsymbol{S}}_{{j}}$, $ {a}_{j} $的情况下, 其中${\boldsymbol{U}}_{{ij}}$表示$ l $层的第i个胶囊输出经过姿态转换矩阵处理后向$ l $+1层的第j个高层胶囊输出的向量预测; ${\boldsymbol{S}}_{{j}}$表示$ l $+1层胶囊的输出方向; $ {\sigma }_{j}^{2} $$ l $+1层胶囊的输出方向的方差; $ {a}_{j} $表示其特征的显著程度. EM向量聚类的具体算法流程如下.

    算法 1. EM向量聚类算法

    初始化变量${\boldsymbol{U}}_{{ij}}$, ${a}_{j}$, ${\boldsymbol{S}}_{{j}}$, ${\sigma }_{j}^{2} $

    For 低级胶囊$ i $ to高级胶囊$ j $

    E-Step.

    $$\begin{aligned} &{p}_{ij}\leftarrow N\left({\boldsymbol{U}}_{{ij}};{\boldsymbol{S}}_{{j}},{\sigma }_{j}^{2}\right);\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\\ &{R}_{ij}\leftarrow\dfrac{{a}_{j}{p}_{ij}}{{\displaystyle\sum\limits_{j=1}^k}{a}_{j}{p}_{ij}};\end{aligned}$$
    $${r}_{ij}\leftarrow \dfrac{\left|\right|{\boldsymbol{U}}_{{ij}}\left|\right|{R}_{ij}}{{\displaystyle\sum \limits_{i=1}^n}\left|\right|{\boldsymbol{U}}_{{ij}}\left|\right|{R}_{ij}}\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;$$

    M-Step-1.

    $${S}_{j}\leftarrow {\displaystyle\sum\limits_{i=1}^n}{r}_{ij}{\boldsymbol{U}}_{{ij}};{\sigma }_{j}^{2}\leftarrow {\displaystyle\sum\limits_{i=1}^n}{r}_{ij}({\boldsymbol{U}}_{{ij}}-{\boldsymbol{S}}_{{j}}{)}^{2};$$

    M-Step-2.

    $$\begin{aligned} &{C}_{j}\leftarrow \displaystyle\sum _{i}(1+{\displaystyle\sum _{l=1}^d}{{\rm{ln}}\sigma }_{j}^{l}){r}_{ij};\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\\ &{a}_{j}\leftarrow {\rm{sigmoid}}(1-{C}_{j})\end{aligned}$$

    重复E-Step, M-Step-1, M-Step-2共z次, z即聚类次数.

    Endfor.

    EM向量聚类算法流程说明如下.

    1) 初始化变量${\boldsymbol{U}}_{{ij}}$, ${a}_{j}$, ${\boldsymbol{S}}_{{j}}$, ${\sigma }_{j}^{2} $.

    2) 步骤E-Step. 根据参数$ {\boldsymbol{S}}_{{j}}$, ${\sigma }_{j}^{2} $计算每个输入向量对输出胶囊的先验概率$ {p}_{ij} $, 再使用贝叶斯公式与$ {a}_{j} $得到输出胶囊的后验概率$ {R}_{ij} $, 然后依据输入向量的长度对每一个预测向量进行加权平均, 得到一个高级胶囊的加权概率$ {r}_{ij} $.

    3) 步骤M-Step-1. 根据计算得到的$ {r}_{ij} $以及预测向量分布$ {\boldsymbol{U}}_{{ij}} $, 求出迭代优化后的高斯混合模型参数$ {\boldsymbol{S}}_{{j}}$, ${\sigma }_{j}^{2} $.

    4) 步骤M-Step-2. 因为要进行重叠数字检测, 不希望网络发生类间竞争, 所以不用原归一化的先验概率, 而采用基于信息熵的缩放尺度$ {a}_{j} $. 跟据式(4)与式(5), 由${\boldsymbol{S}}_{{j}}$, ${\sigma }_{j}^{2} $, $ {r}_{ij} $$ {a}_{j} $, 并且可知, $ {a}_{j} $与原EM算法中的类别概率$ {\rm{\alpha }}_{j} $同收敛, 为了简化运算, 将$ {a}_{j} $与之替换.

    在进行多次迭代之后, 以概率$ {a}_{j} $作为j胶囊的输出尺度, 对输出的方向向量进行缩放, 得到最终的输出向量, 即

    $$ {{\boldsymbol{V}}}_{j}={\rm{asquashing}}\left({a}_{j},{\boldsymbol{S}}_{{j}}\right) $$ (6)

    式中, asquashing为压缩函数, 参见第2.3节.

    为了防止胶囊向量在后续运算中无限增长导致网络“爆炸”, 同时又能用其模长表示分类概率, 使用一个非线性函数对这些向量进行压缩, 并使模长维持在0 ~ 1之间. 这也在一定程度上抑制了与当前高级特征相关性小的向量. 压缩函数asquashing为

    $$ {\boldsymbol{V}}_{{j}}=\frac{{a}_{j}\left|\right|{\boldsymbol{S}}_{{j}}|{|}^{2}}{1+\left|\right|{\boldsymbol{S}}_{{j}}|{|}^{2}}\frac{{\boldsymbol{S}}_{{j}}}{\left|\right|{\boldsymbol{S}}_{{j}}\left|\right|} $$ (7)

    其中, $ {\boldsymbol{V}}_{{j}} $表示最终输出向量, $ {\boldsymbol{S}}_{{j}} $表示在进行压缩之前的原始输出, $ {a}_{j} $是缩放尺度.

    为了实现对并行重构网络(见图1(b))的训练, 构建了一个并行重构损失函数${L}_{{\rm{recon}}}$, 通过使用均方误差计算输入图片与输出图片的差来实现, 即

    $$ {L_{{\rm{recon}}}} = \delta \sum M SELoss(Imag{e_{{{\rm{GT}}}}},Imag{e_{{\rm{recon}}}}) $$ (8)

    式中, $ {Image}_{{\rm{GT}}} $为叠加前的真值图像, ${Image}_{{\rm{recon}}}$为重构后的结果, $ \delta $为重构损失的缩放倍数. 当重构损失在总损失中占比过大时会导致网络的过拟合, 本文使用$ \delta$取值为0.0005对重构损失进行缩放.

    训练时选取模长最大的两个向量, 同时放入两个重构网络进行训练. 将上式的重构误差加入总损失函数中, 参见第2.5节, 可以使重构网络与分类网络一起进行共同训练.

    因为重叠手写数字识别, 需要进行两分类, 也即需要最后输出的向量中有两个模长较长的向量. 由于是双向量结果, 所以要避免这两个向量间的竞争. 在此选择使用Margin Loss作为代价函数, 它适用于双分类, 在不同类识别结果之间不进行竞争, 其具体形式为

    $$ \begin{split} {L_{{\rm{cls}}}} =& \sum {{T_k}} {\rm{max}}{(0,{{{m}}^ + } - \left\| {{v_k}} \right\|)^2}\;+\\ & \lambda \left( {1 - {T_k}} \right){\rm{max}}{(0,\left\| {{v_k}} \right\| - {{{m}}^ - })^2} \end{split} $$ (9)

    式中, $ {L}_{{\rm{cls}}} $表示k个分类的胶囊的分类误差, $ {T}_{k} $表示第k分类的标签值.

    为防止过优化, 将式(9)中的${m}^{-}$${m}^{+} $分别设定为0.1与0.9. 若为正标签, 则式(9)的前半部分有效, 希望正标签的胶囊输出的向量的模长$ {v}_{k} $保持在0.9以上; 若为负标签, 则式(9)的后半部分有效, 希望负标签的胶囊输出的向量的模长$ {v}_{k} $保持在0.1以下. 最后, 将每个分类的损失函数值进行相加, 再与重构损失$ {L}_{{\rm{recon}}} $联合起来形成最终的损失函数值$ {L}_{\rm{total}}, $

    $$ {L}_{{\rm{total}}}={L}_{{\rm{cls}}}+{L}_{{\rm{recon}}} $$ (10)

    通过式(10)进行分类网络与重构网络的联合训练.

    本实验采用的数据集为3种: 1) MNIST原数据集; 2) 全重叠数据集; 3) 前两种数据集的混合集. 其中第2种是由MNIST原数据集生成, 生成方式是将MNIST数据集的一半(30000 幅图像), 与另一半(30000 幅图像)进行叠加生成, 重叠率为100%, 也即全重叠生成, 叠加后效果如图3所示.

    图 3  全重叠数据集
    Fig. 3  Full-overlapping dataset

    标签是对原one-hot标签进行处理后得到的, 如表1所示. 若由两个不同数字叠加, 将这两个数字的位置置为1, 其他位置置为0; 如果是由相同数字叠加, 将其位置置为2, 其他位置置为0.

    表 1  数据集标签
    Table 1  Dataset label
    输入图像标签说明
    (0, 0, 0, 0, 0, 0, 0, 1, 0, 0)无叠加
    (0, 0, 0, 0, 0, 0, 0, 0, 0, 2)两个相同数字叠加
    (0, 0, 0, 1, 0, 0, 0, 1, 0, 0)两个不同数字叠加
    下载: 导出CSV 
    | 显示表格
    3.2.1   EM向量聚类模长

    输出向量的模长是对分类概率的度量, 模长越长属于该类的概率越高. 它也是聚类效率和效果的反映, 因为聚类是将正确的类别向量进行放大, 提示降低不正确类别向量模长, 所以越快达到高模长, 说明所用聚类形式的效率越高, 效果越好.

    在DCN结构上分别用MNIST数据集、全重叠手写数字数据集以及混合数据集进行训练. 对全重叠图片进行测试, 以测试不同聚类迭代次数R下EM向量聚类的模长, 见图4所示. 以下本文实验不做特别说明时其值均为3, 并与CapsNet路由模长进行对比, 如表2所示, 其为分别进行10次测量的均值.

    图 4  不同聚类次数下输出向量的模长
    Fig. 4  Module length of output vector under different clustering times
    表 2  在不同聚类次数下的激活向量模长
    Table 2  Active vector module length under different clustering times
    网络结构及聚类形式所用训练集R = 1R = 2R = 3
    DCN EM 聚类/CapsNet 路由聚类MNIST数据集0.0413/0.05360.5241/0.41220.9800/0.8792
    全重叠数据集0.0332/0.04230.4342/0.58650.9943/0.8653
    混合数据集0.0323/0.03540.4543/0.32520.9923/0.9173
    下载: 导出CSV 
    | 显示表格

    表2图4可发现, 对重叠数字识别时, 不同的聚类次数对输出向量的模长有着相当大的影响. 在进行聚类之前, 最长的输出向量只有不到0.1的长度, 而在进行了3次聚类之后, 正确的向量的长度已经达到了0.85以上(由于压缩函数的存在, 向量的长度不能超过1). 从表2可见, DCN所用EM向量聚类效果, 在第3轮聚类时(R = 3), 在3个数据集下模长都明显高于CapsNet的路由聚类, 说明EM向量聚类效果较路由算法更好.

    3.2.2   EM向量聚类速度

    在DCN中一共进行两次EM聚类, 分别在初级胶囊层与聚类胶囊层1之间和聚类胶囊层1与聚类胶囊层2之间, 见图1(a). 因为聚类是一个无监督过程, 该过程并不对学习参数进行保存, 所以在每一次网络进行聚类时, 都先初始化参数然后多次迭代. 迭代过程无论在训练还是测试中都会进行, 是整个网络中最耗时的部分. 表3是在不同的聚类次数之下网络进行一个Epoch所花费的时间(实验平台是单张titan XP). 从表3可知, 每次聚类中每增加一次迭代, 训练时间都会增加近三分之一(对比进行一次聚类的网络).

    表 3  参数量与不同聚类次数下的单Epoch消耗时间(s)
    Table 3  Parameter quantity and single epoch consumption time under different clustering times (s)
    网络结构参数量聚类算法R = 1R = 2R = 3
    CapsNet8 215568迭代路由150±2210±2240±2
    DCN20128032EM240±2300±2340±2
    下载: 导出CSV 
    | 显示表格

    因为DCN是原CapsNet网络的加深与扩宽, DCN的参数量达到了原CapsNet网络的2.45倍(增加140%), 所以DCN网络相较于CapsNet网络能够提取更多细粒度特征, 识别能力更强. 但DCN较CapsNet的运行时间也增加了40%, 如表3所示.

    DCN较CapsNet在增加网络深度与宽度, 从而导致训练参数量增加140%的情况下, 对相同训练数据量的训练时间仅增加40%, 缩短的运行时间可以认为是EM向量聚类算法较CapsNet迭代路由算法快的时间. 这说明单纯就DCN的EM向量聚类算法, 与CapsNet的向量内积迭代路由算法比较, 在速度上前者有明显优势.

    在DCN中, 分别用迭代路由和EM算法对单Epoch消耗时间进行了实验, 结果如表4所示. 在相同条件下, 对于不同的迭代次数R, EM算法较迭代路由算法消耗时间减少约30% ~ 40%.

    表 4  DCN不同聚类算法单Epoch消耗时间(s)
    Table 4  Single epoch consumption time of different DCN clustering algorithms (s)
    聚类算法R = 1R = 2R = 3
    迭代路由350±2410±2440±2
    EM240±2300±2340±2
    下载: 导出CSV 
    | 显示表格
    3.3.1   不同数据集上的识别率及对比

    为了检测DCN对全重叠手写数字数据集的识别率, 用MNIST数据集、全重叠手写数字数据集和这两种混合数据集训练, 对得到的网络模型进行对比实验. 设定了两组实验, 分别对无重叠的字体识别以及对全重叠字体进行识别.

    表5可知, DCN使用MNIST与全重叠数据集混合训练得到的网络不仅在重叠目标识别任务上取得了96.55%的正确率, 在无重叠的识别上的正确率也提高到了95.7%.

    表 5  DCN识别手写数字效果对比 (%)
    Table 5  Effect comparison of handwritten digits recognized by DCN (%)
    所用训练集无重叠手写
    数字识别率
    全重叠手写
    数字识别率
    MNIST 数据集99.655.2
    全重叠手写数字数据集80.796.75
    混合数据集95.796.55
    下载: 导出CSV 
    | 显示表格

    值得注意的是, 使用MNIST数据集训练的DCN模型在全重叠的识别任务上得到了55.2%的正确率. 尽管识别率不高, 但这是在简单的数据集上进行训练而对复杂数据集的识别结果. 一定程度反映了DCN网络的特征提取, 以及运用所提取低级特征对高级特征进行有效预测的能力.

    同时, 使用重叠手写数字数据集进行训练的DCN模型, 在进行无重叠识别时, 取得了80%的识别率. 这表明在不进行特别的训练集设计时, DCN网络可以在使用重叠图片进行训练后, 对不重叠的图片进行识别, 即在特征有区别的情况下, 也能保证一定准确度的识别率.

    DCN模型对于全重叠手写数字测试集5000个测试样本的总体识别率达到了96.75%, 其识别准确率与loss值的变化曲线如图5所示.

    图5可知, 在不到20个Epoch下测试准确率达到96%以上, 损失由1开始缩小至低于0.02, 且其后没有反复, 说明DCN“识别网络”运行收敛快且平稳, 能够较好地将重叠的数字进行分类识别.

    图 5  DCN对全重叠手写数字的识别率与损失函数值曲线
    Fig. 5  Recognition rate and loss value curve of DCN for fully overlapped handwritten digits

    与CapsNet进行对比, CapsNet在80%重叠率的MutiMNIST数据集上取得了95%的正确率[5], 在全重叠数据集中正确率只有88%. 本文DCN网络结果在全重叠识别正确率达到了96.75%, 见表6所示. 与CapsNet对比在全重叠的情况下, DCN识别准确率高于CapsNet.

    表 6  重叠手写数字识别率对比(R = 3) (%)
    Table 6  Comparison of recognition rate of overlapping handwritten digits (R = 3) (%)
    网络模型训练集重叠率正确率
    CapsNetMutiMNIST8095
    全重叠数据集10088
    DCN全重叠数据集10096.75
    下载: 导出CSV 
    | 显示表格
    3.3.2   分离效果

    本文构建的DCN重构网络见图1(b). 其为对分类网络(图1(a))的输出向量进行重构, 得到分离图片. 在分离训练过程中, 使用掩蔽的方法只把正确的数字胶囊的激活向量保留下来. 然后用两个激活向量通过两个并行的重构网络进行重构, 最终输出两幅$28\times28 $像素的灰度图片, 显示已经分离的手写体数字的分离效果.

    重构时的重构误差是通过计算重构图片的像素亮度以及与叠加之前的图片的像素亮度进行对比, 然后加和得到, 参见式(9). 把得到的此重构误差按一定的占比放入到总误差中, 参见式(11), 然后对全网络进行统一训练, 进而得到重构图片.

    图6显示了在不同缩放数量级的情况下, 总损失函数值${L}_{{\rm{total}}}$的变化情况. 由图6(a)中总损失函数值${L}_{{\rm{total}}}$升高的情况可以得知, 在重构误差占比大于0.005时网络出现了过拟合的情况. 重构损失占比过大抑制了分类的损失${L}_{{\rm{cls}}}$, 导致分类效果的下降. 通过反复试调, 将重构损失$ {L}_{{\rm{recon}}} $占比降低至0.0005时, 重构损失才不会在训练过程中抑制$ {L}_{{\rm{cls}}} $的作用, 得到的总损失$ {L}_{{\rm{total}}} $曲线收敛迅速, 在20 Epoch时$ {L}_{{\rm{total}}} $值下降到了0.02, 而且下降平稳, 没有反复, 见图6(b)所示.

    图 6  重构loss函数占比收敛对比
    Fig. 6  Comparison of proportion convergence of reconstructed loss function

    图7为分离结果, 图7(a)为100个待分离重叠数字图片, 图7(b)图7(c)为分类网络识别后由重构网络所重构的分离结果.

    图 7  重构结果
    Fig. 7  Reconstructing results

    表7显示的是8个重叠图片的分离情况, 其中标注“$^\ast$”的3组数字“7”与“9”的组合中, 3幅重叠图片均由相同数字不同写法的图片叠加而成, 在进行准确分类之后, 得到的重构结果与原本的数字一样, 这说明整个网络对重叠数字分离准确, 尽管这3组数字笔画有些许区别, 但网络进行了准确的识别与重构. (3, 7), ( 9, 1), ( 0, 8), ( 0, 4)这4幅图片, 重叠后图形复杂, “识别网络”识别准确, “分离网络”分离后字体笔划基本清晰.

    表 7  全重叠手写数字分类与重构的部分结果
    Table 7  Partial results of classification and reconstruction of fully overlapped handwritten digits
    分类标签(3, 7)(9, 1)(0, 8)(0, 4)(9, 7)*(7, 9)*(7, 9)*(5, 9)•
    分类结果(3, 7)(9, 1)(8, 0)(0, 4)(7, 9)*(7, 9)*(7, 9)*(8, 9)•
    输入图片
    重构图片 1
    重构图片 2
    下载: 导出CSV 
    | 显示表格

    卷积在标注“$^\bullet$”的数字“5”与“9”的组合中, 原图叠加后的特征复杂, 网络分类出现错误. 由重构结果可以得知, DCN网络依旧将数字“9”完整地区分出来, 但是将另一个数字“5”识别成了数字“8”. 说明网络对于极复杂的图片的识别不够理想, 需要进一步提高.

    用DCN对CASIA汉字手写图片集中的“不”、“下”、“丑”、“世”、“专”、“王”、“也”、“卫”、“大”、“人”10个汉字进行全重叠测试. 共进行了150个Epoch训练, 训练的平均识别率为92.7%, 如见图8所示.

    图 8  训练识别率
    Fig. 8  Training recognition rate

    表8是部分识别和分离结果. 从中可以看出, 对图片清晰、字体简单的汉字, 识别结果准确, 分离基本清晰. 但对于字体复杂不规整的汉字, 重叠图片识别率低, 如最后两个标签(王, 丑)、(也, 卫)识别错误, 分离结果模糊.

    表 8  部分识别和分离结果
    Table 8  Partial identification and separation results
    分类标签(不, 专)(下, 不)(丑, 下)(不, 丑)(下, 世)(下, 专)(王, 丑)(也, 卫)
    分类结果(不, 专)(下, 不)(丑, 下)(不, 丑)(下, 世)(下, 专)(丑, 不能确定)(不能确定, 不能确定)
    输入图片
    重构图片 1
    重构图片 2
    下载: 导出CSV 
    | 显示表格

    对重叠汉字测试, DCN在所选汉字较简单情况下测试识别误差为15.2%, 相较MNIST手写数字重叠识别误差较高. 对于简单图片分离基本清晰, 复杂图片识别与分离误差较高.

    本文设计了一种深度胶囊网络模型DCN, 它具有6层网络结构, 使用向量维数为16维, 用EM的向量聚类算法代替了原路由算法. 同时构建了一个并行重构网络, 以实现对重叠目标的分离重构. 最后用不同的聚类次数与训练集对重叠手写体数字进行了识别实验, 结果显示DCN网络对全重叠手写数字识别率达到96%, 超过了胶囊网络CapsNet在80%重叠率下识别率95%, 分离重构图片的效果较好. 但是DCN对重叠数字的重构效果还未达到理想效果, 重构目标还是有一定比例的模糊和近4%的识别错误问题, 这将在后期工作中进行完善. 后期工作也将进一步提高该方法应用于重叠手写汉字的识别.

  • 图  1  深度胶囊网络结构图

    Fig.  1  Deep capsule network structure diagram

    图  2  EM向量聚类算法流程图

    Fig.  2  Flow chart of EM vector clustering algorithm

    图  3  全重叠数据集

    Fig.  3  Full-overlapping dataset

    图  4  不同聚类次数下输出向量的模长

    Fig.  4  Module length of output vector under different clustering times

    图  5  DCN对全重叠手写数字的识别率与损失函数值曲线

    Fig.  5  Recognition rate and loss value curve of DCN for fully overlapped handwritten digits

    图  6  重构loss函数占比收敛对比

    Fig.  6  Comparison of proportion convergence of reconstructed loss function

    图  7  重构结果

    Fig.  7  Reconstructing results

    图  8  训练识别率

    Fig.  8  Training recognition rate

    表  1  数据集标签

    Table  1  Dataset label

    输入图像标签说明
    (0, 0, 0, 0, 0, 0, 0, 1, 0, 0)无叠加
    (0, 0, 0, 0, 0, 0, 0, 0, 0, 2)两个相同数字叠加
    (0, 0, 0, 1, 0, 0, 0, 1, 0, 0)两个不同数字叠加
    下载: 导出CSV

    表  2  在不同聚类次数下的激活向量模长

    Table  2  Active vector module length under different clustering times

    网络结构及聚类形式所用训练集R = 1R = 2R = 3
    DCN EM 聚类/CapsNet 路由聚类MNIST数据集0.0413/0.05360.5241/0.41220.9800/0.8792
    全重叠数据集0.0332/0.04230.4342/0.58650.9943/0.8653
    混合数据集0.0323/0.03540.4543/0.32520.9923/0.9173
    下载: 导出CSV

    表  3  参数量与不同聚类次数下的单Epoch消耗时间(s)

    Table  3  Parameter quantity and single epoch consumption time under different clustering times (s)

    网络结构参数量聚类算法R = 1R = 2R = 3
    CapsNet8 215568迭代路由150±2210±2240±2
    DCN20128032EM240±2300±2340±2
    下载: 导出CSV

    表  4  DCN不同聚类算法单Epoch消耗时间(s)

    Table  4  Single epoch consumption time of different DCN clustering algorithms (s)

    聚类算法R = 1R = 2R = 3
    迭代路由350±2410±2440±2
    EM240±2300±2340±2
    下载: 导出CSV

    表  5  DCN识别手写数字效果对比 (%)

    Table  5  Effect comparison of handwritten digits recognized by DCN (%)

    所用训练集无重叠手写
    数字识别率
    全重叠手写
    数字识别率
    MNIST 数据集99.655.2
    全重叠手写数字数据集80.796.75
    混合数据集95.796.55
    下载: 导出CSV

    表  6  重叠手写数字识别率对比(R = 3) (%)

    Table  6  Comparison of recognition rate of overlapping handwritten digits (R = 3) (%)

    网络模型训练集重叠率正确率
    CapsNetMutiMNIST8095
    全重叠数据集10088
    DCN全重叠数据集10096.75
    下载: 导出CSV

    表  7  全重叠手写数字分类与重构的部分结果

    Table  7  Partial results of classification and reconstruction of fully overlapped handwritten digits

    分类标签(3, 7)(9, 1)(0, 8)(0, 4)(9, 7)*(7, 9)*(7, 9)*(5, 9)•
    分类结果(3, 7)(9, 1)(8, 0)(0, 4)(7, 9)*(7, 9)*(7, 9)*(8, 9)•
    输入图片
    重构图片 1
    重构图片 2
    下载: 导出CSV

    表  8  部分识别和分离结果

    Table  8  Partial identification and separation results

    分类标签(不, 专)(下, 不)(丑, 下)(不, 丑)(下, 世)(下, 专)(王, 丑)(也, 卫)
    分类结果(不, 专)(下, 不)(丑, 下)(不, 丑)(下, 世)(下, 专)(丑, 不能确定)(不能确定, 不能确定)
    输入图片
    重构图片 1
    重构图片 2
    下载: 导出CSV
  • [1] Hinton G E, Ghahramani Z, Teh Y W. Learning to parse images. In: Proceedings of the 12th International Conference on Neural Information Processing Systems. Denver, USA: MIT Press, 1999. 463−469
    [2] Goodfellow I J, Bulatov Y, Ibarz J, Arnoud S, Shet V B. Multi-digit number recognition from street view imagery using deep convolutional neural networks. In: Proceedings of the 2nd International Conference on Learning Representations. Banff, Canada: ICLR, 2014.
    [3] Ba J, Mnih V, Kavukcuoglu K. Multiple object recognition with visual attention. In: Proceedings of the 3rd International Conference on Learning Representations. San Diego, USA: ICLR, 2015.
    [4] Greff K, Rasmus A, Berglund M, Hao T H, Schmidhuber J, Valpola H. Tagger: Deep unsupervised perceptual grouping. In: Proceedings of the 30th International Conference on Neural Information Processing Systems. Barcelona, Spain: Curran Associates Inc., 2016. 4491−4499
    [5] Sabour S, Frosst N, Hinton G E. Dynamic routing between capsules. In: Proceedings of the 31st International Conference on Neural Information Processing Systems. Long Beach, USA: Curran Associates Inc., 2017. 3859−3869
    [6] Gupta M R, Chen Y H. Theory and use of the EM algorithm. Foundations and Trends in Signal Processing, 2011, 4(3): 223−296
    [7] Xuan G R, Zhang W, Chai P Q. EM algorithms of Gaussian mixture model and hidden Markov model. In: Proceedings of the 2001 International Conference on Image Processing (Cat. No.01CH37205). Thessaloniki, Greece: IEEE, 2001. 145−148
    [8] Jain A K, Dubes R C. Algorithms for Clustering Data. Prentice-Hall Inc., 1988.
    [9] Wang D L, Liu Q. An optimization view on dynamic routing between capsules. In: Proceedings of the 6th International Conference on Learning Representations. Vancouver, Canada: ICLR, 2018.
    [10] Jaiswal A, AbdAlmageed W, Wu Y, Natarajan P. CapsuleGAN: Generative adversarial capsule network. In: Proceedings of the 2018 European Conference on Computer Vision. Munich, Germany: Springer, 2018. 526−535
    [11] LaLonde R, Bagci U. Capsules for object segmentation. arXiv Preprint arXiv:1804.04241, 2018.
    [12] Rajasegaran J, Jayasundara V, Jayasekara S, Jayasekara H, Seneviratne S, Rodrigo R. DeepCaps: Going deeper with capsule networks. In: Proceedings of the 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Long Beach, USA: IEEE, 2019. 10717−10725
    [13] Hinton G E, Sabour S, Frosst N. Matrix capsules with EM routing. In: Proceedings of the 6th International Conference on Learning Representations. Vancouver, Canada: ICLR, 2018.
    [14] Zhang H Y, Cissé M, Dauphin Y N, Lopez-Paz D. mixup: Beyond empirical risk minimization. In: Proceedings of the 6th International Conference on Learning Representations. Vancouver, Canada: ICLR, 2018.
    [15] Tokozume Y, Ushiku Y, Harada T. Between-class learning for image classification. In: Proceedings of the 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Salt Lake City, UT, USA: IEEE, 2018. 5486−5494
    [16] 朱周华. 期望最大(EM)算法及其在混合高斯模型中的应用. 现代电子技术, 2003, 26(24): 88−90 doi: 10.3969/j.issn.1004-373X.2003.24.032

    Zhu Zhou-Hua. EM algorithm and its application in mixture of Gaussian. Modern Electronics Technique, 2003, 26(24): 88−90 doi: 10.3969/j.issn.1004-373X.2003.24.032
  • 期刊类型引用(7)

    1. 黎光艳,王修晖. 多分支轻量级残差网络的手写字符识别方法. 计算机工程与应用. 2023(05): 115-121 . 百度学术
    2. 孙海蓉,李帅. 改进胶囊网络的小样本光伏热斑识别方法. 中国测试. 2023(02): 106-112 . 百度学术
    3. 王寅同,郑豪,常合友,李朔. 基于残差注意网络的端到端手写文本识别方法. 控制与决策. 2023(07): 1825-1834 . 百度学术
    4. 陈康鑫,赵杰煜,陈豪. 一种基于自监督学习的矢量球面卷积网络. 自动化学报. 2023(06): 1354-1368 . 本站查看
    5. 尹晟霖,张兴兰,左利宇. 双重路由深层胶囊网络的入侵检测系统. 计算机研究与发展. 2022(02): 418-429 . 百度学术
    6. 冯栩,喻文健,李凌. 结合领域知识的因子分析:在金融风险模型上的应用. 自动化学报. 2022(01): 121-132 . 本站查看
    7. 苏比努尔·艾依来提,南新元,石跃飞,杨天伟. 基于改进胶囊网络模型的小样本图像识别. 现代电子技术. 2022(05): 49-55 . 百度学术

    其他类型引用(4)

  • 加载中
图(8) / 表(8)
计量
  • 文章访问数:  1074
  • HTML全文浏览量:  595
  • PDF下载量:  161
  • 被引次数: 11
出版历程
  • 收稿日期:  2019-12-18
  • 修回日期:  2020-04-16
  • 网络出版日期:  2022-10-24
  • 刊出日期:  2022-12-23

目录

/

返回文章
返回