崔明光, 张秀梅, 韩维娜
(长春工业大学 电气与电子工程学院, 吉林 长春 130012)
随着木材加工业的深入发展,木材的质量决定了其商品的使用价值[1]。近年来,很多针对木材缺陷的识别方法被提出,如基于分型理论、超声波频谱分析技术[2]等。然而,这些方法不仅需要较高的实验器材,对实验所处的环境要求也很严格。文献[3]使用无监督聚类方法来检测和识别木材缺陷,但检测结果易受到噪声的影响。文献[4]采用Neural Network对树干表面和内部缺陷进行辨别,模型虽然具有良好的学习能力,但它在数据表示方面还有所欠缺。
针对木材缺陷的检测与分割问题,提出一种基于深度学习的木材缺陷检测算法。深度学习本质上是一种特殊的神经网络[5],主要包括受限玻尔兹曼机、深度信念网络、自动编码器、递归神经网络、卷积神经网络[6]。其中,卷积神经网络提供一种端到端的学习模型,在训练时,采用梯度下降法对模型参数进行优化,实现对图像特征学习和分类[7]。随着深度学习算法的不断发展,它在视觉领域有着突出的性能,使得传统方法无法解决的问题得以解决。近年来,许多学者致力于深入学习的目标检测[8]。2012年,Krizhevsjy等[9]提出Alex-Net结构,并在图像网络图像分类大赛中获得冠军。文中采用卷积神经网络对木材缺陷进行识别。实验表明,卷积神经网络具有较高的识别精度、较低的复杂度和鲁棒性。He等[10]提出的深度残差网络,在前馈卷积网络上增加了一些跨层的连接,该结构不仅在层数上刷新了记录,而且在图像网络中取得了很好的效果,Sun等[11]提出的DeepId网络中也有设计将最后的池化层和卷积层与全连接层相连。
卷积神经网络最初是由多伦多大学的Yann Lecun[12]教授提出的,因为其具有局部感知、权值共享和降采样[13]三大特性,局部感知可以大大增强提取局部特征的能力,减少网络的参数;权值共享可以大大减少网络的参数,降低网络的复杂程度;降采样功能是对提取的特征进行采样,消除图像信息提取带来的冗余度;正是因为CNN的这些特性,使其在人脸识别[14]、交通标志识别[15]、手写字体识别[16]、目标识别[17]等方面有着良好的应用[18]。
常见的CNN基本结构有三层:输入层、隐含层和输出层。输入层主要是将原始图片进行预处理,统一其尺寸大小再进行输入;隐含层包括卷积层、池化层和全连接层,卷积层主要从图像中提取特征,池化层的设计是为了减小图像的大小并加快计算速度,全连接层是一种常见的隐含层,它通过全连接将网络信息传递给分类器;最后,输出层输出结果。
在卷积神经网络中,存在着四种操作,分别为内卷积、外卷积、下采样和上采样。
(1)
式中,1≤i≤M-m+1,1≤j≤N-n+1。
它们的外卷积定义为
(2)
(3)
(4)
式中,(i-1)×λ+1≤s≤i×λ,(j-1)×τ+1≤t≤j×τ。
(5)
用大小为λ×τ的对矩阵A的下采样定义为
(6)
对矩阵A进行倍数为λ×τ的不重叠上采样定义为
upλ×τ(A)=A⊗lλ×τ,
(7)
式中:lλ×τ----全为1的矩阵;
⊗----克罗内克积。
传统的卷积神经网络不能有效地融合低层次特征和高层次特征来构造更好的分类器,为了解决这一问题,引入跨层连接的思想,提出了一种跨层卷积神经网络,该网络模型包含一个输入层、两个卷积层、两个池化层、一个全连接层和一个输出层,结构如图1所示。
网络的输入为一张图片,然后使用两个互相交错的卷积层和池化层对图片进行特征提取,从两个池层中提取的特征直接传输到全连接层进行融合处理和分类,此时,全连接层的节点数是两个池化层节点数之和。在训练人工神经网络时,如果其网络结构比较复杂,而用于训练的样本数量较小,训练出来的模型可以很好地拟合训练样本,但采用测试样本对其进行测试时,网络可能不会很好地拟合,即出现过拟合的情况。在这种情况下,Dropout技术可以用来减少过度拟合的可能性,提高模型的适应性。简单地说,在每次训练的时候,让一半的神经元工作,这样可以提高网络的泛化能力。
图1 改进的网络模型
在训练阶段加入Dropou技术后,由伯努利随机分布函数确定上下层之间的联系。每个连接的网络节点不同,使得网络稀疏连接多样化。经验证,隐藏节点的概率等于0.5,原因是当取值0.5的时候,Dropout随机生成的网络结构最多。文中采用Dropout技术,通过随机连接整个连接层中的神经节点来合成不同的结构网络,在一定程度上对过拟合有着一定的影响。
对于第l个样本xl,跨连卷积神经网络的计算过程为:
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
式中:σ(·)----激活函数,g(x)=x;
downλ×τ(·)----下采样函数;
W1,j,b1,j----分别为第一个隐含层的第j个卷积核和偏置;
W3,j,b3,j----分别为第三个隐含层的第j个卷积核和偏置;
W6,b6----分别表示输出层的权值和偏置;
系统的输入为
期望的输出为
实际的输出为
则优化的目标函数为样本的均方误差,即
(16)
为了计算反向传播,应首先计算各层的反馈误差δ,针对全连接层,因为其采用了Dropout技术,全连接层节点的输出值以50%的概率被随机清0,既然前向传播时有些隐含节点值被清0了,那么在误差方向传播时也应该有相应的处理,同时还需要注意在第一个池化层的反馈误差,因为其不仅与下一层的卷积层相连,还与全连接层相连,因此,该层的反馈误差为两部分之和。
(17)
(18)
δ5=(δ21,1,δ21,2,…,δ21,6,δ4,1,δ4,2,…,δ4,12),
(19)
(20)
(21)
δ2=(δ21,j+δ22,j),1≤j≤6,
(22)
(23)
式中: ∘----矩阵表对应元素相乘;
upλ×τ(·)----上采样操作。
在获得每一层传递误差后,对网络的各层参数求其偏导数,如下:
(24)
(25)
(26)
最后,利用梯度下降法更新权值与偏导。
对于训练集S={(xl,yl),1≤l≤N},算法如下:
1)随机初始化所有的权值和偏置;
2)for epoch=1 to maxepoch do;
3)for l=1 to N do;
4)通过设计的网络计算每个样本的实际输出;
5)计算网络每一层的反馈传递误差;
6)计算网络中权值与偏置的导数;
7)使用梯度下降法更新网络的权值与偏置;
8)End for;
9)End for。
采用的木材缺陷来自文献[19],选取其中几种常见的木材缺陷,如图2所示。
(a) dry_knot
(b) edge_knot
(c) leaf_knot
(d) sound_knot图2 木材缺陷图片
将样本集中的图片进行处理,使其尺寸达到一致,并采用相同的训练集和测试集,分别对传统的卷积神经网络没加入Dropout技术的跨层连接和加入Dropout技术的跨层连接进行实验,通过选择相同的学习速率和训练次数,得到相应的网络训练误差曲线和误差识别率。误差曲线分别如图3~图5所示。
图3 传统CNN的训练误差图
图4 没加入Dropout技术的训练误差图
图5 加入Dropout技术的训练误差图
由图3和图4可以看出,网络在训练集中进行训练与传统的CNN相比,采用跨层连接可以将网络的高层次特征和低层次特征相结合,在网络训练中,为网络更快收敛提供了更多的特征值,在相同的训练时间内,将跨层连接方法与传统方法进行了比较,它可以减小网络的训练误差,使误差稳定得更快。
由图4和图5可以看出,当网络达到稳定或者最大迭代次数时,加入Dropout后网络在训练误差精度上比没有加入Dropout的要坏一些,其原因是网络结构采用Dropout技术,可以增强网络的泛化能力,使网络结构不会出现过拟合现象,所以网络的训练误差要比没有加入Dropout精度低一些。交叉验证后,当丢弃概率值为0.5时,Dropout是最佳选择,因为当概率值为0.5时,随机生成的网络结构最多。
跨层思想能有效地提高网络的识别精度,减少网络的训练误差,算法比较见表1。
表1 算法比较
由表1可以看出,加入Dropout技术后,网络的训练误差虽然要比没有加入Dropout技术的低一些,但其识别率有所提高,这证明了加入Dropout技术是对网络的一种正则化,防止网络出现过拟合现象。
对训练后的网络进行测试,测试结果分别如图6~图8所示。
图6 传统CNN的测试结果
图7 未加入Dropout的测试结果
图8 加入Dropout的测试结果
图6中,圆形是样品的实际值,三角形是预测值和实际值之间的差异,由图6和图7对比可以看出,采用跨层连接的测试结果比传统CNN的要好,采用跨层连接其识别的错误率仅为16.64%,而CNN的识别错误率为19.11%。这可能是因为文中可以直接使用两个池化层提取到的特征去分类,而CNN直接使用一个池化层提取到的特征去分类,采用跨层连接的方法可以融合不同尺度的信息时能够更加准确地反映图像信息,从而获得更好的分类性能。
由图7和图8可以看出,在加入了Dropout技术后,网络的错误识别率有所降低,为15.17%。一般情况下,对于同一组训练数据,利用不同的神经网络训练之后,求其输出的平均值可以减少过拟合。Dropout就是利用这个原理,每次丢掉一半的一隐藏层神经元,相当于在不同的神经网络上进行训练,减少了神经元之间的依赖性,所以,Dropout不仅减少过拟合,还能提高准确率。
在卷积神经网络的基础上提出了一个跨连卷积网络模型,该模型能够通过跨层连接融合两个隐含层的图像特征,从而更加准确地反映图像信息,并针对网络的过拟合现象,采用Dropout技术防止模型产生过拟合。实验结果表明,针对木材缺陷的图像识别,采用文中方法比传统方法要好,因为文中方法将网络的高层次特征和低层次特征相结合,并且可以有效地防止网络因为训练过度而产生的过拟合现象。