马致颖,赵佰亭,冯 铸,张 华
(1.安徽理工大学 机械工程学院,安徽 淮南232001;2.安徽理工大学 电气与信息工程学院,安徽 淮南232001)
社会进步与科技高速发展,图像成为人们获取信息重要的手段.图像作为一种直观的信息,被广泛应用在各个领域.图像数量庞大,要实现快速检索图像信息,就要对海量图像进行有效分类.图像分类的重要依据是分类算法.因此,分类算法的设计成为探索的重点.
图像研究领域日益深入,多位学者陆续提出了各具特色的图像分类算法.Vapnik[1]在1993年提出支持向量机(Support Vector Machine,SVM),使用核函数把输入空间的非线性可分数据映射到高维特征空间使其线性可分[2].当前图像种类繁多,数量庞大,SVM算法在处理多分类问题时难以施展.K近邻(K-Nearest Neighbor,KNN)算法虽然具有较好的准确性和稳定性,但缺点也很显著,效率低和容错性差.传统的图像分类方法并不能应对极具复杂性的图像分类任务.在过去的几年里,已经见证了人工智能领域的显著进步.深度学习是很多先进技术的应用基础[3].卷积神经网络(Convolutional Neural Network,CNN)是深度学习的一种重要算法,可以轻松处理高纬数据.2010年,ImageNet挑战赛中出现了一个CNN架构,LeNet5,是由Yann Lecun创建[4].该网络随后应用于邮政编码识别,取得了较好的效果.在此之后,多位学者在CNN结构的输入和特征提取上做改进,提升了模型性能.同时,CNN特征提取模型和不同的分类原理的结合也取得了令人瞩目的成绩.目前,使用CNN与SVM共同搭建的混合模型,是最普遍的结合方式.Matsugu和Ebert验证了CNN与SVM的混合模型比CNN模型更具有优势[5-6].由于SVM的设计非常复杂,SVM算法通过代价高昂的交叉验证法实现来实现可能性预计,所以寻找其他参数少、分类性能好、泛化能力强的分类器来处理图像分类任务具有重要意义.黄广斌教授提出了极限学习机(Extreme Learning Machine, ELM)算法[7],因学习速度优异,泛化性能很强而受到广泛关注.随后,ELM迅速发展,应用潜力不断被挖掘,为构建新的混合模型提供了方向.
采用ELM代替SVM,与CNN共同搭建新的混合模型应用于图像分类领域,充分利用CNN优良的特征提取能力和ELM优异的分类特性,不仅可以更加高效的完成分类任务,还能进一步提升分类精度.
CNN主要有三层,分别是卷积层、池化层和全连接层[8].卷积层的主要功能是提取局部特征.卷积运算的输出包含多个特征映射,在每个特征映射中,滤波节点的权值共享使网络参数数量减少,同时还降低了相关层的复杂度.池化层与卷积层一样,前一层中位于感受野中有限数量的神经元的输出端都与池化层中每个神经元相连.池化的目标是对输入图像进行二次抽样,减少计算负载,避免出现过度拟合.特征被编码成全连接层中的一维向量之后,进行分类.图1为CNN的结构图.
图1 CNN结构图Figure 1 CNN structure chart
使用传统的梯度下降法来训练单隐层前馈神经网络(SLFN),需要不断更新权重直到找到最优解,增加了计算时间.ELM作为一种快速学习算法,在训练过程中随机初始化输入层权重和隐层偏差[9-13],最后通过广义逆矩阵理论计算得到最优解.ELM的网络结构如图2所示.
图2 ELM网络结构图Figure 2 ELM network structure diagram
假设有N个训练样本xi=[xi1,xi2,…xin]T∈Rn,ti=[ti1,ti2,…,tim]T∈Rm,xi为输入向量,ti为输出向量,则有L个隐层节点的单隐层神经网络可以表示为:
(1)
其中:g(x)为激活函数,ωi=[ωi1,ωi2,…,ωin]T为输入权重,βi为输出权重,bi是第i个隐层神经元的偏置.单隐层神经网络的学习是以oj无限趋近于tj为目的,所以存在:
(2)
矩阵表示为:
Hβ=T
(3)
H是隐层节点的输出,T为期望输出.等式(3)代表一个线性系统,唯一的最优解可以通过最小二乘法计算得到.输出权重可以被确定为:
(4)
其中:H+是矩阵H的Moore-Penrose广义逆.
混合模型CNN-ELM的原理是利用ELM代替已经训练好的CNN的输出层做分类,其结构图见图3.混合模型主要包括两个阶段,特征提取和分类.首先在训练过程中调整CNN参数直到网络结构达到期望状态;然后调用ELM来接收被编码成一维向量的特征映射,由ELM给出分类结果.
图3 混合模型CNN-ELM结构Figure 3 CNN-ELM structure of hybrid model
3.1.1 卷积层
(5)
3.1.2 最大池化层
(6)
3.1.3 分类层
输入图像经过卷积和池化运算后,所提取的特征转化成一维向量作为ELM的输入,由ELM进行分类[10-17].如上所述,输入的权重和隐层偏差是随机决定的.因此,只需计算输出训练过程中的权重,多层感知机(Multilayer Perceptron,MLP)计算最优权重是通过重复迭代的误差反向传播(Error Back Propagation,BP)算法,不仅增加计算复杂度,还促使过拟合的概率增加.与MLP相比,ELM提高了网络的泛化能力、鲁棒性和抗噪声能力.
训练阶段,混合模型首先在学习过程中调整CNN的参数.然后,每迭代1 000次,验证模型的准确性,即是否调整参数并提取特征.如果精度接近70%,将调用ELM层.此时,计算隐层权重,缓存β矩阵.当混合模型的训练精度接近100%或整体迭代次数超过设定的最大迭代次数时,停止训练过程并计算β矩阵的平均值.最后,混合模型将用于在测试阶段对图像进行分类.步骤总结如下:
步骤1 当卷积层和输出标签之间的连接是全连接层时,在训练阶段调整CNN的参数.
步骤2 计算隐层权值,缓存β矩阵,同时验证微调网络的精度.
步骤3 停止训练过程,计算β的平均值.
步骤4 使用混合模型对图像进行分类.
ELM是一个前馈算法,只需将误差从ELM的输出层转换到卷积层,而不是在这个过程中调整ELM的参数.如何计算ELM的梯度并将其转化为卷积部分是成为关键步骤.与CNN相比,混合模型在前向传播过程中将特征映射转化为一系列一维向量,只需将ELM输入层的局部梯度转化为卷积.因此,反向传播过程可以写成如表1所示的算法.
表1 CNN-ELM混合模型的反向传播算法Table 1 Back propagation algorithm of CNN-ELM hybrid model
续表1
实验环境是Core(TM)_i7-7700HQ_CPU_@_2.8GHz,NVIDIA GeForce GTX1060和Python 3.7.实验采用的CNN-ELM混合模型网络结构,由两个卷积层、两个池化层和一个ELM分类器组成.CNN的非线性激活函数是RELU函数,ELM分类器使用Sigmoid函数.CNN-ELM混合模型的网络参数如表2所示.
表2 CNN-ELM混合模型的网络参数Table 2 Network parameters of CNN-ELM hybrid model
实验采用的数据集是MNIST手写数字数据集、GTSRB德国交通标志数据集和CIFAR-10数据集.MNIST数据集包含了从0~9的手写数字.GTSRB德国交通标志数据集由43种交通标志组成,共含有50 000张图像.CIFAR-10数据集分为10类,每类有6 000张图像.
ELM隐层神经元的数量是人为设定的,需要进行多次的实验.隐层神经元的数量对ELM分类器的泛化性能有显著的影响.图4反映了ELM分类误差值与隐层神经元数量的关系.
图4 ELM分类误差值与隐层神经元数量关系图Figure 4 Relationship between ELM classification error and the number of hidden layer neurons
随着隐层神经元数量的增加,误差值逐渐减小.当隐层神经元数量达到10 000时,误差值趋于稳定,所以将ELM隐层神经元的数量设定为10 000,然后在MNIST数据集和GTSRB德国交通标志数据集上对所提出的CNN-ELM混合模型分类精度进行评估.在MNIST数据集上的分类精度达到了99.32%,GTSRB德国交通标志数据集上的分类精度达到99.35%.为了进一步验证CNN-ELM混合模型性能,把CNN-ELM混合模型与CNN模型,CNN-SVM模型的分类精度进行对比.三种不同的模型也在MNIST数据集和GTSRB数据集进行过实验,CNN-ELM混合模型的分类结果优于其他模型.表3、4列出了CNN-ELM混合模型和其他模型实验的结果.
表4 分类结果对比-GTSRBTable 4 Comparison of classification results-GTSRB
图5、6给出了在MNIST数据集和CIFAR-10数据集下,CNN模型和CNN-ELM混合模型的训练时间和测试速度.批尺寸(Batch_Size)相同时,CNN-ELM混合模型的训练时间仅为CNN模型的9.9%~10.3%,同时测试速度是CNN模型的1.50~1.56倍.实验结果直观的反映出CNN-ELM混合模型的快速性优势,解决了CNN模型训练时间和测试过程耗时较长的问题.
图5 训练时间Figure 5 Training time
图6 测试速度Figure 6 Test speed
在研究图像分类算法的基本理论,分析经典的卷积神经网络分类模型的优缺点前提下,设计了一种复杂度较低的CNN-ELM混合模型.使用ELM作为分类器,在保证分类精度的基础上显著降低了计算量,克服了其他混合模型计算复杂导致学习和分类时间较长的问题.实验结果表明,ELM的隐层神经元数量设置为10 000时,CNN-ELM混合模型在图像分类的精度方面优于其余两种方法,且泛化性能更强.在MNIST数据集上的分类精度达到了99.32%,GTSRB德国交通标志数据集上的分类精度达到99.35%且泛化性能更强.CNN-ELM混合模型的训练时间仅为CNN模型的9.9%~10.3%,同时测试速度是CNN模型的1.50~1.56倍,大幅缩短了时间.