结合深度信念网络与支持向量机的地表分类算法*
2022-02-16郭剑辉
黄 勇 郭剑辉
(南京理工大学计算机科学与工程学院 南京 210094)
1 引言
地形识别主要是通过对图像进行有效的分类识别算法然后再进行一系列的研究。这些图像大多通过移动机器人在野外通过传感器进行图像采集而得到,移动机器人完成任务的首要任务是能够分辨出可以运动的路径与不可运动的路径。根据机器人在野外是否可通行,可将地形类别分为可通行和不可通行两类[2],根据机器人能否正常行驶将图像中的数据标出为可通行范围与不可通行的范围。本文主要研究可通行地形识别分类算法的研究。
分类算法中支持向量机(Support Vector Machine,SVM)在小样本数据集中具有良好的表现,故而常被用于地形识别领域[2]。但SVM 属于浅层学习算法,当数据较为复杂,样本数量较少的情况下对复杂函数的表示能力有限,复杂地形的数据的维度较大,其精度也会受到一定的影响。BP 算法是一种包含多层神经网络的算法,可能会有以下问题:因不合适的初始值造成局部最优、梯度弥散、训练时间较长等。深度学习因具有多层神经网络,可以在低维度的数据中,通过强大的学习调整能力,从低层数据特征抽离较高的数据特征。Hinton[3]等提出的深度信念网络(Deep Belief Network,DBN)通过对数据进行贪心无监督的学习解决了传统BP因不合适的初始值造成局部最优和梯度弥散以及训练时间过长的问题。通过将受限波尔兹曼机(Restricted Boltzmann Machines,RBM)进行有效的堆叠,而最后一层RBM 结构隐含层输出结果作为分类器的输入数据,这样就构成了一种常用的深度信念网络(Deep Belief Network,DBN)。
本文研究了深度信念网络(Deep Belief Network,DBN)与 支 持 向 量机(Support Vector Machine,SVM)的理论后,通过有效的结合进行地形识别研究。提前标注数据图片中感兴趣的部分并划分得到两组数据集,训练集作为输入数据输入到初始构建的DBN 网络结构中进行多次训练,将得到的模型用测试集验证。实验结果表明,本文提出的算法较SVM、GEPSVM等算法有了较大的提升。
2 地形识别的分类算法
OUTEX[4]是地形识别算法中常用的标准地形数据集。OUTEX 数据集共有20 幅图像,考虑到实验对比参数的唯一性,将全部图像调整大小为640*480,OUTEX 数据集较小故而仅采用2 折交叉验证的方式验证,选择10副为训练样本,10副为测试样本[6]。图片的整体数据量过于庞大,整张图片的识别较难分类,为了进行有效的评估,可以使用图像识别算法中的局域二值模式,局域二值模式(LBP)[7]在纹理特征上具有较强的稳定性可以较好地应对如光照、阴影的影响,而等价模式的LBP 算法运行复杂度并不高[8]。本文采用特征提取的方法是融合特征提取方法,将LBP与颜色直方图进行组合获取特征,纹理特征提取时通过小块来获取,本文将图像划分为10*10 的小块,最后的训练样本与测试样本的块数为6561 块和10094 块。通过观察可得OUTEX 数据集大致有4 类,分别为草地、树、天空、路面。在OUTEX 数据集上完成地形识别中可通行识别任务。图1显示了三幅图像实例。
图1 OUTEX数据集中的三幅图像
GEPSVM 是支持向量机的一种改进分类算法,其中两个数据集它们彼此不平行。通过算法生成两个平面时,使分类面尽可能地接近两个数据集中的一个,通过尽可能远离另一个数据集[5]。
样本为n维空间上的数据集,通过GEPSVM找到两个非平行平面:
获得的两个非平行平面,其受约束的条件是尽可能地接近某类样本同时远离另一类样本。为了得到第一个非平行平面,有如下的约束条件:
其中δ项为惩罚参数:
则式(3)转为
由于求解广义Rayleigh 商问题较难,通过转换可以转变为求解较容易的广义特征值来求解得:
通过式(6)可以得到最优解即为最小特征值和特征向量。
同样对第二个平面有
则式(7)转化为
从而
使用GEPSVM技术,分类算法可以实现对地形识别的可通行处理。
GEPSVM 算法应用于地形识别的算法流程如下:
1)样本数据划分为训练集和测试集,若样本数量较少使用2折交叉验证的方式。
2)在训练集中的少数类样本集中,通过计算两点的欧氏距离得到最近的k 个最近邻点(一般k =5)。
3)通过多次迭代对算法进行优化,最终得到最优惩罚参数C。
4)将惩罚参数C 用于GEPSVM 算法中学习得到两个非平行平面。
5)最后通过测试集进行分类器算法的验证。
3 深度信念网络与支持向量机结合的算法
3.1 SVM算法简介
引入拉格朗日乘子后得:
将式(13)代入(12),即可将L(w,b,α)中的w和b消去,再考虑式(14)中的约束,就得到式(10)的对偶问题
3.2 DBN算法简介
深层信念网络(Deep Belief Network,DBN)[3]是由多层受限波尔兹曼机(RBM)进行有效的组合,以及最后一层的分类器构成,最后一层的RBM 作为分类器的输入数据,经过了DBN 的网络结构可以提取到底层数据更高级的特征表达,进而得到的分类器分类效果更佳。DBN是为了解决传统BP神经网络的缺陷而提出的网络结构,这种结构可以组合成多种结构,是一种极其强大的深度学习思想应用,故而被广泛应用,而地形识别的分类算法分类器也会因为较差的数据集导致分类效果不佳,所以可以将其应用在地形识别领域。DBN 的主要训练流程有无监督的预训练(pre-training)过程以及有监督的微调(fine-tuning)过程。初始权值后通过预训练调整每层网络结构的权值,上一层RBM 输出的数据作为下一层输入数据,在预训练结束后,对最后一层的BP网络进行有监督的训练。通过设置好的误差范围对整个DBN进行微调。
玻尔兹曼机(Boltzmann Machine,BM)是由一层可视层与一层隐含层组合而成,是一个全连接的网络结构,通过限制仅在层间连接形成受限玻尔兹曼机(Restricted Boltzmann Machine,RBM)[14],RBM是一个两层的有向无环图,节点取值为0 或1 可以作为构建深层结构的基本单元[11]。由于BM 层内连接层外全连接,使得其计算量倍增,而RBM 相较BM计算量大大减小。RBM的结构如图2。
图2 RBM的结构
可视层和隐含层组成的系统的能量公式如下:
可视层(变量为v,偏置量为a)、隐层(变量为h,偏置量为b),通过多次迭代可以求得最终的激活条件为
其中σ是sigmoid函数。σ(z)=1/(1+e-z)。
RBM参数更新公式如下(其中ε为学习率,l层表示为重构层的数据)[9]:
DBN-SVM分类算法流程如下:
1)设置初始化训练RBM 迭代次数gn,权值学习率,可视节点学习率,隐含结点学习率,权重衰减系数等。
2)进行归一化处理,得到数据V[NI][NF],其中NI,NF 分别为输入个数和特征个数,转换成DBN能够处理的格式[10]。
3)对训练样本构造,分块,批量。
4)初始化3层RBM,n=3 同时设置RBM各隐含层的节点数,使用CD-K 算法训练RBM,第一次的RBM的可视层不是二值的,而隐含层是二值的。
5)初始化DBN网络的权值W=[W1,W2,W3] 。
6)将通过RBM 结构隐含层后的输出数据作为下一个RBM的输入数据,下同。
7)将训练好的RBM 的权重和偏执堆栈成DBN。
8)调用DBN 训练算法,DBN 是无监督的算法用于提取特征,若需要得到较好鲁棒性的网络结构需要加上有监督的回调优化权值。
9)通过有监督的fine-tune 优化权值W,DBN最后的分类器选择SVM。
10)将测试数据集中的样本通过调整后的网络结构,并将DBN输出的结果通过SVM进行分类。
4 实验
4.1 评价指标
在分类算法如果仅使用整体分类算法的精确度作为评价指标[12],若数据集包含两类,一类占比99%,另一类占比1%,即使1%全部分类错误,整体仍然有极高的精确度,导致最终的分类器性能较差。可以考虑使用Recall、Accuracy、F-measure、G-mean 等指标,这些分类评价考虑了少数类的样本分类性能,其中Recall用于评价少数样本的正确率,G-mean可以对整体的数据分类性能进行评价,本文将采用Accuracy、Recall、G-mean 作为主要评价分类评价指标[13]。通过对OUTEX 数据集进行观察发现,假设可通行类为少数类是正样本。则草和路为正样本,树和天空为负样本。T 表示分类正确,F 表示分类错误,P 表示为正类,N 表示为负类。TP、TN、FN、FP 分别代表正确分类的正类数量,正确分类的负类数量,错误分类的负类数量和错误分类的正类数量。如表1 所示。
表1 分类算法混淆矩阵
评价指标中较为常见的即为准确率,准确率是指通过分类器预测的样本示例正确分类的样本占总体样本的百分比,可由下式计算:
查准率Precision 的高低表示对于数据分类器分类效果的好坏。
召回率Recall是指分类正确的正类样本TP占全部正类样本TP+FN的百分比。
Kubat 等提出几何平均准则(geometric means metric,G-mean)用于不平衡数据分类算法评价指标[15]。G-mean 是指真阳性(TP)样本在正确分类样本TP+FN的比率与真阴性(TN)在分类错误样本TN+FP比率的乘积平方,G-mean 可以评价分类器性能以及各类别的准确率[13]。
4.2 实验结果
实验使用Matlab R2017a 进行仿真。实验设备如 下:16GB 内 存,处 理 器Intel(R)Core(TM)i5-9400F CPU @2.90GHz 2.90GHz,显卡为NVIDIA GeForce GTX1660(6GB)。SVM 分 类 器 使 用 了LIBSVM 工具箱。DBN训练方法使用了DeepLearn-Toolbox 工具箱。由于地形识别领域暂时没有通用的标准数据集,研究后多个地形数据集后,采用OUTEX 数据集对提出的算法进行实验验证。通过对比SVM、GEPSVM 以及DBN+SVM 等的算法。如图3,4,5为实验原图以及对比实验结果图。
图3 实验原图
图4 GEPSVM算法处理结果
图5 DBN-SVM算法处理结果
由前文的SVM 实验可视化的结果图可以发现,DBN-SVM分类的清晰度明显上升,层次化树木都较为清晰。第一幅图中天空、地面树木、草地都是分布较为均衡,所以分类效果较好。同时可以发现阴影的一些不同,一些因为阳光导致路面上的阴影也没能造成较大影响。第二幅图片中树木可以清晰分辨,同时天空因为交集较少所以分类很好而草地与阴影由于光照的影响,导致分类的结果有些偏差。第三幅图片中树的样本比例最大,而天空较少,在光照阴影情况下造成了树木之间有些差异,对算法的结果造成了一些影响。由于OUTEX 数据集树木与草地,路面与草地之间交叉较多,同时光照和阴影使草地分类出现了一些偏差。树枝与阴影的重叠,对于分类的结果也是有些影响的,通过与SVM 可视化效果图对比,明显发现通过DBN 与SVM 结合后形成的网络结果对于可视化结果有极大的提高,但DBN 在特征相似的特征间学习能力还有一些欠缺,可能是参数学习的并不足够,更有可能是样本数量较少,训练得到的模型不够完善,缺少了一些鲁棒性。
表2~表4 为OUTEX 数据集下算法的Accuracy、Recall、G-mean,我们将其与SVM、GEPSVM 进行对比。通过比较发现,在精确度,召回率以及几何平均值上,DBN-SVM 在训练集上的明显较高。但是在测试集上,发现训练的结果不如训练集效果好。可能是因为训练样本较少,导致模型过拟合现象,不能适应新的测试样本数据集。
表2 OUTEX数据集下算法的Accuracy值
表3 OUTEX数据集下算法的Recall值
表4 OUTEX数据集下算法的G-mean值
5 结语
针对地形识别领域,从分类算法的精度问题角度出发,由于传统的分类算法如SVM、GEPSVM 等浅层学习算法在复杂地形环境中的函数表征能力不足,而深度学习领域中对于复杂函数的表达能力较强,同时深度学习领域中的深度信念网络具有多层RBM 可以从复杂的底层特征数据中进一步提取出较为高级的特征等。通过研究了深度信念网络(DBN)与支持向量机(SVM),并将其进行结合后使用OUTEX 地形数据集对我们提出的算法进行了检验,实验结果表明结合DBN-SVM 算法较其他分类算法有较好的性能。在训练集上较其他分类算法的Accuracy 和Recall 以及G-mean 等评价指标有了明显的进步,但是在测试集的表现并不理想。有一些过拟合现象出现。深度学习往往建立在大数据、大样本集的前提下进行研究的,而OUTEX 数据集较小可能造成模型过于契合训练集,也有可能是参数训练较差如迭代次数不足或迭代次数过多等等导致的问题,但是总体而言相对于浅层学习算法而言,DBN-SVM分类虽然效果不是特别的优秀,但是在地形识别领域中的研究提供新的研究方向。