留言板

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

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

基于CNNs的两次训练融合的分类方法

佟国香 田飞翔

佟国香, 田飞翔. 基于CNNs的两次训练融合的分类方法[J]. 电子科技大学学报, 2019, 48(5): 774-778. doi: 10.3969/j.issn.1001-0548.2019.05.018
引用本文: 佟国香, 田飞翔. 基于CNNs的两次训练融合的分类方法[J]. 电子科技大学学报, 2019, 48(5): 774-778. doi: 10.3969/j.issn.1001-0548.2019.05.018
TONG Guo-xiang, TIAN Fei-xiang. Classification Method of Twice Train Fusion Based on CNNs[J]. Journal of University of Electronic Science and Technology of China, 2019, 48(5): 774-778. doi: 10.3969/j.issn.1001-0548.2019.05.018
Citation: TONG Guo-xiang, TIAN Fei-xiang. Classification Method of Twice Train Fusion Based on CNNs[J]. Journal of University of Electronic Science and Technology of China, 2019, 48(5): 774-778. doi: 10.3969/j.issn.1001-0548.2019.05.018

基于CNNs的两次训练融合的分类方法

doi: 10.3969/j.issn.1001-0548.2019.05.018
详细信息
    作者简介:

    佟国香(1968-), 女, 副教授, 主要从事嵌入式系统设计与开发、EDA设计、计算机视觉方面的研究

    通讯作者: 田飞翔, Email:linhaifly@163.com
  • 中图分类号: TP183

Classification Method of Twice Train Fusion Based on CNNs

图(2) / 表(4)
计量
  • 文章访问数:  3815
  • HTML全文浏览量:  1149
  • PDF下载量:  123
  • 被引次数: 0
出版历程
  • 收稿日期:  2019-01-03
  • 修回日期:  2019-03-19
  • 刊出日期:  2019-09-30

基于CNNs的两次训练融合的分类方法

doi: 10.3969/j.issn.1001-0548.2019.05.018
    作者简介:

    佟国香(1968-), 女, 副教授, 主要从事嵌入式系统设计与开发、EDA设计、计算机视觉方面的研究

    通讯作者: 田飞翔, Email:linhaifly@163.com
  • 中图分类号: TP183

摘要: 该文基于卷积神经网络(CNNs)模型,提出一种模型融合的图像分类方法,将原图像经过图像增强和数据标准化后获得的数据作为原始数据,将原始数据取反后作为映射数据,分别使用原始数据和映射数据训练CNNs模型,通过融合训练后的两组CNNs模型获得改进的CNNs模型。通过假设、验证、理论推导步骤证明了该方法在简单模型上的有效性,进而推广到更复杂的卷积神经网络模型。实验结果表明,改进的CNNs模型与原始CNNs模型分类精度对比,在CIFAR-10和CIFAR-100数据集上分别提升了1%和3%,有效提升了模型的分类精度。

English Abstract

佟国香, 田飞翔. 基于CNNs的两次训练融合的分类方法[J]. 电子科技大学学报, 2019, 48(5): 774-778. doi: 10.3969/j.issn.1001-0548.2019.05.018
引用本文: 佟国香, 田飞翔. 基于CNNs的两次训练融合的分类方法[J]. 电子科技大学学报, 2019, 48(5): 774-778. doi: 10.3969/j.issn.1001-0548.2019.05.018
TONG Guo-xiang, TIAN Fei-xiang. Classification Method of Twice Train Fusion Based on CNNs[J]. Journal of University of Electronic Science and Technology of China, 2019, 48(5): 774-778. doi: 10.3969/j.issn.1001-0548.2019.05.018
Citation: TONG Guo-xiang, TIAN Fei-xiang. Classification Method of Twice Train Fusion Based on CNNs[J]. Journal of University of Electronic Science and Technology of China, 2019, 48(5): 774-778. doi: 10.3969/j.issn.1001-0548.2019.05.018
  • 图像分类是计算机视觉研究的基础,广泛应用于安防、交通、医学等图像识别领域。传统的分类算法有K最近邻(k-nearest neighbor, KNN)、支持向量机(support vector machine, SVM)、聚类等基于决策理论的方法,以及贝叶斯分类、BP(back propagation)神经网络等基于统计的方法。深度神经网络技术不断发展,在BP神经网络的基础上,引入可学习权重的卷积层,大幅减少了模型参数,使其在图像分类、图像识别任务上表现优异,硬件计算能力不断发展,使得更深层的卷积神经网络模型成为可能,进一步增强了模型性能。

    模型复杂度和样本数量是影响CNNs模型性能的两个关键因素。对于图像任务而言,目前改善样本数量不足的主要手段是图像增强[1],文献[2-4]通过图像翻转、平移、随机裁剪等方法,从一个已有的图像数据库中生成更多训练数据,此外还可利用伽马校正、加噪声、基于直方图的动态方法扩充数据。文献[5]提出了APAC的方法, 指导图像增强方法的使用。文献[6]提出了手动提取特征的方法,在手写识别数据集上利用Auto-encoder压缩特征,使用压缩过的特征进行训练,来改善手写数字识别。文献[7]结合不同的数据预处理技术设计了一个交通信号分类系统,用于识别各种交通信号。文献[8]使用图像旋转、伽马校正、噪声注入、分割背景等方法,将目标移到图像中心,以此构建水果分类系统。文献[9]使用预处理方法,把只有500个医疗图像的数据集扩充到1 200个,增强了模型对图像的适应性,提高了阿兹海默症分类的准确率。

    本文基于文献[10-14]提出的CNNs模型,通过提高样本数量和模型融合的方法对其进行改进,实验结果表明了改进方法的有效性。

    • 最大似然估计:给出样本数量为m的数据集${{\boldsymbol{X}}_{\rm{1}}} = \{ ({{\boldsymbol{x}}^{(1)}}, {y^{(1)}}), ({{\boldsymbol{x}}^{(2)}}, {y^{(2)}}), \cdots , ({{\boldsymbol{x}}^{(m)}}, {y^{{\rm{(}}m{\rm{)}}}})\} $,每个样本y由未知真实数据分布${p_{{\rm{data}}}}({\boldsymbol{x}})$生成,${p_{{\rm{model}}}}({\boldsymbol{x}};{\boldsymbol{\theta }})$将任意输入x映射到实数来估计真实概率,对${\boldsymbol{\theta }}$的最大似然估计定义为:

      $$ \begin{aligned} \boldsymbol{\theta}_{\mathrm{ML}} &=\underset{\boldsymbol{\theta}}{\arg \max } ~p_{\text {model }}\left(\boldsymbol{X}_{1} ; \boldsymbol{\theta}\right)=\\ & \arg \max _{\boldsymbol{\theta}} \prod\limits_{i=1}^{m} p_{\text {model }}\left(\boldsymbol{x}^{i} ; \boldsymbol{\theta}\right) \end{aligned} $$ (1)

      式中,i=1, 2, …, m,扩展到监督学习并估计条件概率分布${\rm{p}}({y^{(i)}}|{{\boldsymbol{x}}^{{\rm{(}}i{\rm{)}}}};{\boldsymbol{\theta }})$,给定样本x预测y值,此时的条件最大似然估计为:

      $$ \boldsymbol{\theta}_{\mathrm{ML}}=\arg \max _{\boldsymbol{\theta}} \prod\limits_{i=1}^{m} p\left(y^{(i)} | \boldsymbol{x}^{(i)} ; \boldsymbol{\theta}\right) $$ (2)
    • 理想情况中,假设在给定样本集${\boldsymbol{X}}$的条件下,条件概率模型每次估计到的参数${\boldsymbol{\theta }}$相同,即用非线性[15]的神经网络估计${\boldsymbol{\theta }}$时,每次收敛到同一最优点。在实际情况中,多次训练模型时得到的参数${\boldsymbol{\theta }}$不完全一致,以参数值分布相近作为模型每次训练收敛到同一最优点,以$\varepsilon $表示波动误差。用${f_{{{\boldsymbol{\theta }}_{\rm{1}}}}}:{{\boldsymbol{x}}^{(i)}} \to {y^{(i)}}$;$({{\boldsymbol{x}}^{{\rm{(}}i{\rm{)}}}}, {y^{(i)}}) \in {{\boldsymbol{X}}_{\rm{1}}}$表示一个包含激活函数的非线性神经网络输入到输出的映射[16],记为${f_{{{\boldsymbol{\theta }}_{\rm{1}}}}}({\boldsymbol{x}})$,深度为L

      $$ {y^{{\rm{(}}i{\rm{)}}}} = {f_{{{\boldsymbol{\theta }}_{\rm{1}}}}}({{\boldsymbol{x}}^{(i)}}) $$ (3)

      前向传播中各层的输出为:

      $$ {{\boldsymbol{a}}^l} = \sigma ({{\boldsymbol{z}}^l});{{\boldsymbol{z}}^l} = {{\boldsymbol{w}}^l}{{\boldsymbol{a}}^{l - 1}} + {{\boldsymbol{b}}^l} $$ (4)

      式中,集合${{\boldsymbol{\theta }}_{\rm{1}}}$为$\{ ({\boldsymbol{w}}_1^1, {\boldsymbol{b}}_1^1), ({\boldsymbol{w}}_1^2, {\boldsymbol{b}}_1^2), \cdots , ({\boldsymbol{w}}_1^L, {\boldsymbol{b}}_1^L)\} $。

      反向传播中,只考虑输出层到输入层的各层梯度的反向传播,使用均方误差表示代价函数:

      $$ \begin{array}{*{20}{c}} {C = \frac{1}{{2m}}\mathop \sum \limits_{i = 1}^m ||{y^{(i)}} - {{\boldsymbol{a}}^L}({{\boldsymbol{x}}^{(i)}})|{|^2}} \end{array} $$ (5)

      计算参数${\boldsymbol{w}}, {\boldsymbol{b}}$的梯度:

      $$ \begin{array}{*{20}{c}} {\frac{{\partial C}}{{\partial {\boldsymbol{w}}_{jk}^l}} = {\boldsymbol{a}}_k^{l - 1}{\boldsymbol{\delta }}_j^l} \end{array};\frac{{\partial C}}{{\partial {\boldsymbol{b}}_j^l}} = {\boldsymbol{\delta }}_j^l $$ (6)

      输出层的梯度为:

      $$ \begin{array}{*{20}{c}} {{\boldsymbol{\delta }}_j^L = \frac{{\partial C}}{{\partial {\boldsymbol{a}}_j^L}}\sigma '({\boldsymbol{z}}_j^L)} \end{array} $$ (7)
      $$ {\boldsymbol{\delta }}_j^l = \frac{{\partial C}}{{\partial {\boldsymbol{z}}_j^l}} = \mathop \sum \limits_k \frac{{\partial C}}{{\partial {\boldsymbol{z}}_k^{l + 1}}}\frac{{\partial {\boldsymbol{z}}_k^{l + 1}}}{{\partial {\boldsymbol{z}}_j^l}} = \mathop \sum \limits_k \frac{{\partial {\boldsymbol{z}}_k^{l + 1}}}{{\partial {\boldsymbol{z}}_j^l}}{\boldsymbol{\delta }}_k^{l + 1} $$ (8)

      由于:

      $$ \begin{array}{*{20}{c}} {{\boldsymbol{z}}_k^{l + 1} = \mathop \sum \limits_j {\boldsymbol{w}}_{kj}^{l + 1}{\boldsymbol{a}}_j^l + {\boldsymbol{b}}_k^{l + 1} = \mathop \sum \limits_j {\boldsymbol{w}}_{kj}^{l + 1}\sigma ({\boldsymbol{z}}_j^l) + {\boldsymbol{b}}_k^{l + 1}} \end{array} $$ (9)

      所以:

      $$ \begin{array}{*{20}{c}} {{\boldsymbol{\delta }}_j^l = \mathop \sum \limits_k {\boldsymbol{w}}_{kj}^{l + 1}{\boldsymbol{\delta }}_k^{l + 1}\sigma '({\boldsymbol{z}}_j^l)} \end{array} $$ (10)
    • 现给出数据集${{\boldsymbol{X}}_1}$的对称集,样本数量为m:${{\boldsymbol{X}}_2} = \{ ( - {{\boldsymbol{x}}^{(1)}}, {y^{(1)}}), ( - {{\boldsymbol{x}}^{(2)}}, {y^{(2)}}), \cdots , ( - {{\boldsymbol{x}}^{(m)}}, {y^{(m)}})\} $

      记${f_{{{\boldsymbol{\theta }}_2}}}: - {x^{(i)}} \to {y^{(i)}}$,集合${{\boldsymbol{\theta }}_2}$为$\{ ({\boldsymbol{w}}_2^1, {\boldsymbol{b}}_2^1), $ $({\boldsymbol{w}}_2^2, {\boldsymbol{b}}_2^2), \cdots , ({\boldsymbol{w}}_2^L, {\boldsymbol{b}}_2^L)\} $,在假设1的前提下有:

      $$ {y^{(i)}} = {f_{{{\boldsymbol{\theta }}_1}}}({{\boldsymbol{x}}^{(i)}}) = {f_{{{\boldsymbol{\theta }}_2}}}( - {{\boldsymbol{x}}^{(i)}}) $$ (11)

      根据梯度反传式(6)、(7)、(10),假设:

      $$ \begin{array}{l}{\left|\boldsymbol{w}_{1}^{1}-\left(-\boldsymbol{w}_{2}^{1}\right)\right|=\varepsilon_{1}} \\ {\left|\boldsymbol{w}_{1}^{(i)}-\boldsymbol{w}_{2}^{(i)}\right|=\varepsilon_{1} \quad i \in\{2, 3, \cdots, L\}}\end{array} $$ (12)

      除了第一层的${\boldsymbol{w}}$参数互为相反数的近似值以外,其他层对应参数值近似相等。模型各输出层以及其他层的特征相等:

      $$ {f_{{{\boldsymbol{\theta }}_1}}}({\boldsymbol{z}}_{{\rm{out}}}^l) = {f_{{{\boldsymbol{\theta }}_2}}}({\boldsymbol{z}}_{{\rm{out}}}^l){\rm{ }}l \in \{ 1, 2, \cdots , L\} $$ (13)

      在假设2中,参数值${{\boldsymbol{\theta }}_1}$,${{\boldsymbol{\theta }}_2}$对模型有相同的贡献。现通过实验来证明式(12)不成立,进而否定假设2,以此来证明${{\boldsymbol{\theta }}_1}$,${{\boldsymbol{\theta }}_2}$对模型有不同贡献。通过设置实验来验证假设2成立与否。对比${{\boldsymbol{\theta }}_1}$新增:

      $$ {y^{(i)}} = {f_{{\mathit{\boldsymbol{\theta }}_1}}}\left( {{\mathit{\boldsymbol{x}}^{(i)}}} \right) = {f_{{\mathit{\boldsymbol{\theta }}_3}}}\left( {{\mathit{\boldsymbol{x}}^{(i)}}} \right) $$ (14)

      在实验中以平均绝对误差为评估指标,对比${f_{{{\boldsymbol{\theta }}_{\rm{1}}}}}{\rm{, }}{f_{{{\boldsymbol{\theta }}_{\rm{2}}}}}{\rm{, }}{f_{{{\boldsymbol{\theta }}_{\rm{3}}}}}$对应各层参数值。由于权重初始化和训练的随机性,同一个网络多次训练的${{\boldsymbol{\theta }}_i}$值只能近似相等,忽略偏置项$\boldsymbol{b}^{(i)}$试证明:

      $$ \left|\boldsymbol{w}_{1}^{(1)}-\boldsymbol{w}_{3}^{(1)}\right|=\left|\boldsymbol{w}_{1}^{(1)}-\left(-\boldsymbol{w}_{2}^{(1)}\right)\right|=\varepsilon_{1} $$ (15)

      式中,${\varepsilon _1}$为因训练的不确定性产生的波动误差。

    • 使用含激活函数的全连接神经网络估计模型参数${\boldsymbol{\theta }}$。

      固定值const = 42作为随机种子,$({{\boldsymbol{x}}^{{\rm{(}}i{\rm{)}}}}, {y^{(i)}}) \in {{\boldsymbol{X}}_1}$

      网络深度:L = 5, 6, 7, …, 15,循环执行以下步骤:

      1) 模型1:

      ${{\boldsymbol{a}}^1} = \sigma ({{\boldsymbol{z}}^1});{{\boldsymbol{z}}^1} = {\boldsymbol{w}}_1^1{{\boldsymbol{x}}^{(i)}} + {\boldsymbol{b}}_1^1 $

      w初始化方式${\rm{N}}(0, 1)$;seed(const)

      $ {{\boldsymbol{a}}^2} = \sigma ({{\boldsymbol{z}}^2});{{\boldsymbol{z}}^2} = {\boldsymbol{w}}_1^2{{\boldsymbol{a}}^1} + {\boldsymbol{b}}_1^2$

      w初始化方式${\rm{N}}(0, 1)$;seed(const)

      ${{\boldsymbol{a}}^L} = \sigma ({{\boldsymbol{z}}^L});{{\boldsymbol{z}}^L} = {\boldsymbol{w}}_1^L{{\boldsymbol{a}}^{L - 1}} + {\boldsymbol{b}}_1^L $

      w初始化方式${\rm{N}}(0, 1)$;seed(const)

      使用SGD根据式(6)、(7)、(10)优化式(5)。

      2) 模型2:

      $ {{\boldsymbol{a}}^1} = \sigma ({{\boldsymbol{z}}^{\rm{1}}});{{\boldsymbol{z}}^1} = {\boldsymbol{w}}_2^1( - {{\boldsymbol{x}}^{(i)}}) + {\boldsymbol{b}}_1^1$

      w初始化方式$ - {\rm{N}}(0, 1)$;seed(const)

      $ {{\boldsymbol{a}}^2} = \sigma ({{\boldsymbol{z}}^2});{{\boldsymbol{z}}^2} = {\boldsymbol{w}}_1^2{{\boldsymbol{a}}^1} + {\boldsymbol{b}}_1^2$

      w初始化方式${\rm{N}}(0, 1)$;seed(const)

      $ {{\boldsymbol{a}}^L} = \sigma ({{\boldsymbol{z}}^L});{{\boldsymbol{z}}^L} = {\boldsymbol{w}}_1^L{{\boldsymbol{a}}^{L - 1}} + {\boldsymbol{b}}_1^L$

      w初始化方式${\rm{N}}(0, 1)$;seed(const)

      使用SGD根据式(6)、(7)、(10)优化式(5)。

      3) 模型3:

      除把各层参数记为${\boldsymbol{w}}_3^{{\rm{(}}i{\rm{)}}}, {\boldsymbol{b}}_3^{{\rm{(}}i{\rm{)}}}$外,与模型1完全相同,使用SGD根据式(6)、(7)、(10)优化式(5)。

      注:${\rm{N}}(0, 1)$表示初始化参数值服从均值为0,方差为1的高斯分布。

      重复多次实验有:

      $$ \begin{array}{c}{\left|\boldsymbol{w}_{1}^{(i)}-\boldsymbol{w}_{2}^{(i)}\right|=\left|\boldsymbol{w}_{1}^{(i)}-\boldsymbol{w}_{3}^{(i)}\right|=\varepsilon_{1} \neq\left|\boldsymbol{w}_{1}^{(1)}-\left(-\boldsymbol{w}_{2}^{(1)}\right)\right|} \\ {i \in\{1, 2, \cdots, L\}}\end{array} $$ (16)

      实验中根据式(12)初始化参数,发现经过反传误差后的结果与假设2(即式(16)和式(15))相矛盾,证明假设2不成立,${{\boldsymbol{\theta }}_1}$,${{\boldsymbol{\theta }}_2}$对模型的贡献不同。${f_{{{\boldsymbol{\theta }}_1}}}({{\boldsymbol{x}}^{(i)}}), {f_{{{\boldsymbol{\theta }}_2}}}( - {{\boldsymbol{x}}^{(i)}})$通过不同的参数分布寻找数据特征。结论推断:分别训练${f_{{{\boldsymbol{\theta }}_1}}}({{\boldsymbol{x}}^{(i)}}), {f_{{{\boldsymbol{\theta }}_2}}}( - {{\boldsymbol{x}}^{(i)}})$,将两个模型的输出融合:

      $$ {f_{{{\boldsymbol{\theta }}_{{\rm{integ}}}}}} = {f_{{{\boldsymbol{\theta }}_1}}}({{\boldsymbol{x}}^{(i)}}) + {f_{{{\boldsymbol{\theta }}_2}}}( - {{\boldsymbol{x}}^{(i)}}) $$ (17)

      模型输出融合方式为各类别输出概率相加。

      数据标准化公式和反转标准化公式为:

      $$ \boldsymbol{x}_{\text {normal }}^{\mathrm{pos}}=\frac{\boldsymbol{x}-E(\boldsymbol{x})}{\sqrt{D(\boldsymbol{x})}} $$ (18)
      $$ \begin{gathered} {\boldsymbol{x}}_{{\rm{normal}}}^{{\rm{neg}}} = \frac{{(255 - {\boldsymbol{x}}) - E(255 - {\boldsymbol{x}})}}{{\sqrt {D(255 - {\boldsymbol{x}})} }} = \\ \frac{{ - {\boldsymbol{x}} + E{\rm{(}}{\boldsymbol{x}})}}{{\sqrt {D{\rm{(}}{\boldsymbol{x}})} }} = - {\boldsymbol{x}}_{{\rm{normal}}}^{{\rm{pos}}} \\ \end{gathered} $$ (19)

      式中,${\boldsymbol{x}}$表示原图像,${\boldsymbol{x}}_{{\rm{normal}}}^{{\rm{pos}}}, {\boldsymbol{x}}_{{\rm{normal}}}^{{\rm{neg}}}$分别表示原图像标准化后的数据和原图像反转再标准化后的数据。式(19)表明:原图像反转后进行标准化等同于原图像标准化后取反。

      通过假设和试验,证明模型中的参数对原数据集及其对称数据集比较敏感。因此,本文分别使用原数据集和对称数据集估计模型参数时,可以得到不同的参数分布,利用参数分布的差异化融合模型,提高CNNs在图像分类中的预测精度。

    • 在Ubuntu操作系统下,使用Conda环境,应用Tensorflow、Keras深度学习框架,硬件配置为:Intel i7处理器、NVIDIA1080Ti显卡、16 GB内存。

      模型的训练和验证采用公开数据集CIFAR-10、CIFAR-100、Fashion-MNIST[17],数据集详细信息如表 1所示:

      表 1  数据集

      数据集 训练集大小 验证集大小 图片尺寸 类别数
      CIFAR-10 50 000 10 000 32×32×3 10
      CIFAR-100 50 000 10 000 32×32×3 100
      Fashion-MNIST 60 000 10 000 28×28×1 10

      实验中使用的模型包括Vgg Networks、Residual Networks、Wide-Residual Networks和ResNeXt Networks。

    • 为增加模型稳定性并获得更好的分类效果,本文采用标准化方法对图像灰度值的大小进行制约。将标准化后的数据作为原始数据,将原始数据取反后作为映射数据,分别用于训练CNNs,最后融合两个训练后的模型,将其作为图像分类器。实验步骤如下:

      1) 对数据进行预处理,通过翻转、平移和旋转实现图像增强,将数据标准化。

      2) 将Softmax作为模型输出的映射函数,使用交叉熵作为损失函数建立CNNs分类模型,应用1)中预处理后的数据训练CNNs模型,训练完成后保存

      模型及其参数,记网络模型为${f_{{{\boldsymbol{\theta }}_1}}}$。

      3) 对数据进行预处理,通过翻转、平移和旋转实现图像增强,将数据标准化,根据式(19),对标准化后的数据取反。分别经过步骤1)和步骤3)预处理后的图像如图 1所示。

      图  1  步骤1)和步骤3)处理后的效果

      4) 保持2)中建立的模型不变,使用步骤3)中预处理后的数据重新训练CNNs分类模型,训练完成后保存模型及其参数,记网络模型为${f_{{{\boldsymbol{\theta }}_2}}}$。

      5) 根据式(17),建立一个新的模型。保持模型数据输入不变,将两个模型${f_{{{\boldsymbol{\theta }}_{\rm{1}}}}}, {f_{{{\boldsymbol{\theta }}_2}}}$输出的分类概率相加,记合并的网络模型为${f_{{{\boldsymbol{\theta }}_{{\rm{integ}}}}}}$。

      6) 基于测试集对步骤5)获得的模型${f_{{{\boldsymbol{\theta }}_{{\rm{integ}}}}}}$进行验证。

      模型训练过程中通过3种方法使模型跳出局部最优:一是以衰减的方式逐渐改变优化器的学习率;二是根据迭代次数自动触发改变学习率的条件[18],触发改变条件如图 2所示;三是设置验证方法保存最优的一组参数并提前结束训练。

      图  2  学习率改变曲线

    • 基于CIFAR-10数据集、CIFAR-100数据集和Fashion-MNIST数据集的实验结果分别如表 2~表 4所示。

      表 2  CIFAR-10数据集表现

      模型 原始模型准确率 改进模型准确率
      Vgg19 0.933 0 0.944 4
      ResNet50 0.928 3 0.941 7
      ResNet110 0.937 6 0.947 0
      Wide-Resnet 28×10 0.958 8 0.962 8
      Wide-Resnet 16×8 0.951 3 0.959 2
      ResNeXt-4×64d 0.951 9 0.958 5

      表 3  CIFAR-100数据集表现

      模型 原始模型准确率 改进模型准确率
      Vgg19 0.723 1 0.747 0
      ResNet50 0.722 4 0.756 4
      ResNet110 0.753 9 0.784 7
      Wide-Resnet 28×10 0.772 0 0.796 5
      Wide-Resnet 16×8 0.767 3 0.786 4
      ResNeXt-4×64d 0.742 2 0.773 3

      表 4  Fashion-MNIST数据集表现

      模型 原始模型准确率 改进模型准确率
      Vgg19 0.947 7 0.958 0
      ResNet32 0.934 3 0.946 4
      ResNet50 0.939 1 0.953 0
      ResNet110 0.950 5 0. 961 4
      Wide-resnet 28×10 0.951 0 0.963 3
      Wide-resnet 16×8 0.947 7 0.957 8
      ResNeXt-4×64d 0.948 0 0.956 3

      表 2中针对CIFAR-10数据集的实验结果表明,改进的Residual-Net50模型较原始模型提升效果最好,准确率提高约1.5%,原始Residual-Net110模型的复杂度比Residual-Net50高,但在改进模型上准确率只提高了约1.0%,原始Wide-Resnet 28×10模型参数最多,在改进模型上准确率只提高了0.4%。由此可知,在模型复杂度到达一定程度后,准确率的提高会遇到瓶颈。表 3中针对CIFAR-100数据集的实验结果表明,改进的Residual-Net110模型较原始模型提升效果最好,准确率提高了约3%,其他改进的模型较原始模型提升效果相近。表 4中针对Fashion-MNIST数据集的实验结果表明,各改进模型表现一致,较原始模型提高了约1.0%的准确率。在训练模型时,可使用不同的优化器如SGD、Adam、Adagrad、RMSprop更新模型参数,对比发现不同的优化器只影响收敛速度,对最终分类精度的影响可以忽略,各优化器分类精度基本相同,与文献[19]中的结论基本一致。表 2~表 4中给出的是使用SGD优化器获得的数据,具有代表性。

    • 在图像分类中,常因样本数量不足,模型容易出现过拟合现象,导致训练精度和测试精度受到影响。针对这个问题,本文提出一种基于CNNs两次训练融合的方法,分别训练两组不同的样本集得到差异化参数分布的模型,融合后的模型提高了图像分类准确率,有效地改善了样本数量不足的问题。实验表明,本文方法获得的模型比原始模型对未标注数据具有更高的预测能力,在样本数量较小的场景中具有较高的应用价值。后续研究将重点放在降低模型复杂度、提高模型训练效率等问题上。

参考文献 (19)

目录

    /

    返回文章
    返回