基于自动驾驶系统的轻量型卷积神经网络优化①

2020-03-18 07:54高秀龙葛动元
计算机系统应用 2020年3期
关键词:权值卷积神经网络

高秀龙,葛动元

(广西科技大学 机械与交通工程学院,柳州 545000)

自动驾驶系统主要应用车载智能设备通过互联网与其它交通工具进行实时交互.所以采集道路上的物体来进行分类识别是自动驾驶系统最主要的任务之一.

近年来百度,特斯拉等公司对自动驾驶汽车进行了许多的研究,自动驾驶技术需要车载智能系统具有高稳定性,处理信息准确性高,和能够实时进行信息处理和网络交互的能力.当前计算机视觉技术是该领域的主要方法,它已经广泛的应用于道路分割,物体分类[1,2],物体检测与追踪的任务中,因此研究计算机视觉技术是当前主要任务.

通过大量的研究可知,在卷积神经网络[3]结构中,网络的层数与卷积核的规模对网络分类的能力有决定性的作用,网络结构越复杂,权值参数越多分类就更加准确.但随着网络的层数不断增加,网络中需要保存的权值参数变得巨大,而随之内存容量要求变高,进而会导致训练成本增大,网络处理信息的实时性也随网络规模的增大而下降.在网络的训练阶段,由于训练数据的不足,常常会导致网络训练出的模型泛化能力弱,使网络的分类识别准确度下降.为了解决以上问题,本文提出了一种轻量化的网络结构,在保证准确度的同时,也能使网络处理信息的实时性得到增强.

1 轻量级网络架构

结合AlexNet、VGG16、Inception、ResNet 等分类网络的优点,开发出一个适合于自动驾驶领域的六分类网络[4],包括汽车、自行车、人、路灯、交通灯、树木.采用13 个卷积层来对训练图像做信息提取,3 个全连接层对卷积层提取的信息进行重新整合.

1.1 卷积层设计

卷积层在网络中起到提取图像局部信息的作用,其结构复杂,参数规模较大,直接影响分类精度的高低,网络结构如表1.

表1 卷积层结构

在卷积神经网络中,卷积层通过卷积核的权值矩阵[5]来对输入的图像进行局部信息提取,所以在网络中卷积核的数量与卷积核中权值是卷积层主要的参数.鉴于原始图像像素矩阵维度较低,少量的卷积核便可以有效的对图像信息进行特征提取,所以对网络的前两层卷积采用32 个卷积核.根据前两层网络处理得出的高维数据,第三,四层网络采用更多的64 个卷积核,对高维数据进行特征提取,不断的分解细化图像信息.由于浅层网络不断向深层网络输入高维数据,所以网络中需要的卷积核数逐层递增.卷积核的尺寸不易过大,经实验与理论分析证明,当尺寸过大时,提取到的特征信息不够精确,进而使网络的性能下降.

1.2 全连接层设计

全连接层将卷积层提取的局部特征重新通过权值矩阵整合成完整的特征图,在全连接层的底部通过损失函数与训练数据标签比较.根据工程任务设定3 层全连接网络,前两层选用120 个神经元负责整合卷积网络输入的局部特征信息,最后一层全连接层6 个神经元,负责分类任务.

2 神经网络优化

2.1 激活函数的选择

Tanh 激活函数[6]:当训练数据分布较大或较小时,函数梯度接近于0,易造成梯度消失,故应用Tanh 函数时,要先将训练数据进行归一化.Tanh 函数如:

Relu 激活函数:当训练数据分布大于0 时,其梯度不会消失且易于计算,当训练数据分布小于0 时,神经元不被激活,这种特性有助于网络稀疏性的建立,Relu 函数如:

通过在playground-tensorflow 系统中的实验对比发现,当选用Relu 激活函数时,如图1(a)网络进行了60 次迭代后,模型拟合完毕且损失函数值比较小.选用Tanh 激活函数时,网络进行110 次的迭代后,模型拟合完毕,但是损失值较大.本文选用Relu 函数作为网络的激活函数.

图1 激活函数对比

2.2 梯度下降算法的选择与优化

神经网络的模型拟合过程可以分为两个阶段,第一阶段先通过正向传播算法得到预测值,并将预测值和训练数据标签作对比得出两者之间的差距.第二阶段通过反向传播算法计算损失函数对每一个参数的梯度,再使用梯度下降算法更新所有权值.

SGD[7,8]算法运算速度快并且占用硬件资源少,是当前深度学习领域主要的优化算法,公式为:

式中,φ代表网络中权值,▽φ表示梯度值,h(φ)代表loss 函数,g(φ)代表目标函数,yi代表第i个样本的样本值,m代表迭代次数,η表示学习率,j表示网络中参数的总数目.

但是SGD 执行更新时,所伴随的高方差导致损失值的剧烈波动,如果把学习率的值设置的过大会导致始终无法达到最优解,也会可能会直接造成进入局部最优解,如图2 中马鞍面A点,如果全局使用过小的学习率会导致模型拟合速度过慢,迭代次数增多.为此本文提出了一种基于SGD 的自适应学习率优化算法[9],见算法1,随着迭代进行学习率有规律的由大变小.

图2 学习率测试

2.3 过拟合问题处理

权值正则化[10]:当模型非常复杂之后,它可以准确地记忆每一个训练数据,包括随机噪音的部分,但模型学习的不是训练数据中通用的趋势.为了防止模型从训练数据中学到错误和无关的特征信息,最优的解决方式是获得更多的训练数据,来训练模型.如果无法获得更多的训练数据数据,次优解决方法是增大模型允许存储的信息容量,或对模型允许存储的信息大小加以约束.如果一个网络只能记住几个模式,那么优化过程会迫使模型集中学习最重要的模式,这样就能得到良好的泛化.根据以上解决过拟合思想,结合本文任务,引入权值正则化算法,根据给定的数据和网络架构强制让模型的权值只能取较小的值,限制模型的复杂度.

?

Dropout 正则化:本文在全连接层中使用Dropout[11,12]算法,该算法能够使全连接层中的一部分神经元以0.5 的概率失活,失活的神经元激活函数输出为0.此时神经元在网络中没有任何贡献.在测试阶段在乘以一定的系数并重新激活,这种正则化方法由于其随机性,可以为网络引入一些随机噪声,这样可以使模型的泛化能力变强,因为它不会太依赖某些局部的特征,从而减少模型的过拟合,如图3(a)是没有引入正则化与Dropout处理方法而进行的分类网络实验,可以看到模型过度拟合了数据,包括噪音,而图3(b)是引入权值正则化和Dropout 的网络,可看到网络自动将两个红色的噪音屏蔽掉,从而使训练出的模型分类准确率得到提高.

3 实验结果与分析

3.1 实验平台的搭建

本文网络使用Keras 作为前端,tensorflow 为后端进行构建,计算机CPU 为6 核12 线程,主频为2.2 GHz,GPU:NVIDIA Geforce GTX1080TI 显存11 GB,内存32 GB,操作系统Ubuntu14.02.

图3 随机失活测试

3.2 数据收集与数据增强

通过网络爬虫获取实验数据,共收集6 种类别,共12 300 张各种尺寸的图像.经大量理论分析与实验证明,模型过拟合的原因之一是训练数据规模小,导致无法训练出能够泛化到新数据的模型,鉴于此问题本文采用tensorflow 的数据生成器来进行数据增强[13],从现有的训练样本中生成更多的训练数据,利用多种能够生成可信图像的随机变换来增加样本,具体方式为图像随机旋转、水平和垂直方向上平移、随机错切变换、随机缩放、随机翻转图像一半、随机像素填.如图4 所示代表原图与生成的新图像.将增强后得到的数据,分成训练集与测试集,比例分别占80%和20%.

图4 数据增强

3.3 实验验证

由于Keras 框架在网络训练过程中,使用训练生成器对数据进行增强便无法得到网络的训练日志,进而无法调用tensorboard 模块来观察网络中卷积层与全连接层中的权值和偏置值的分布变化,所以针对此问题本文提出了一种解决方法,代码如下:

网络经过200 次迭代后,模型准确率变化情况如图5(a),损失值变化情况如图5(b),模型在验证集上的准确率达到97.5%.分析结果可知,随着网络不断迭代,损失值变化平稳,学习率与权值初始化参数设置合理,高精度的准确率证明网络深度与卷积核数量满足本文要求.从准确率曲线变化可知损失值还有下降空间,后期可增加迭代次数再次提高模型准确率.卷积层及全连接层的权值分布变化分别如图6 和图7,可知权值参数变化有序平稳,没有出现剧烈波动.偏置值分布变化不明显,由此可知偏置值对模型分类准确度的贡献度远小于权值,通过研究最终参数的分布规律,可以在升级改造的过程中,有针对性的对权值参数进行初始化操作,进而降低训练周期.

图5 准确率与损失值变化曲线

图6 卷积层权值与偏置值分布变化

图7 全连接层权值与偏置值分布变化

4 卷积神经网络的可视化

4.1 可视化卷积神经网络的特征输出

对卷积神经网络输出的特征图进行可视化[14],来研究网络中卷积核如何对输入进行处理与变换.如图8所示,通过检查卷积核的输出,发现浅层网络中卷积核的特征输出保留了原始图像中的所有信息,而深层网络中卷积核的输出是抽象特征,如车窗与轮胎等,这些特征信息更加有利于对识别,分类任务等决策任务形成贡献.

通过实验中卷积层1 与卷积层7 对比发现,随着网络层数加深,每层网络卷积核的特征输出不断增加,但是无意义的特征输出也在不断增加[15-17],如图8 中无图像的灰绿色部分.根据本文的网络特点,经过理论分析可知,引起这种现象的原因是由于卷积核权值处理过的训练数据分布小于0,以这种分布作为Relu 激活函数的输入,引起了神经元的假性失活.针对此问题带来的神经网络参数冗余,引入剪枝算法来屏蔽假性失活的卷积核,使模型既能满足准确度不变,又响应速度变快.

图8 卷积层可视化测试

4.2 类激活热力图

通过Grad-CAM 可视化算法[18],本文方法研究出图像中哪些部位特征,使神经网络做出最终的分类决策.如图9 所示的神经网络,在识别汽车过程中是以车轮和车窗为主要特征进行判断的.由理论分析可知,这些图像特征经过神经网络的数字化处理后形成特征矩阵,训练后的神经网络便以这些特征矩阵作为分类决.由此我们在训练网络的过程中,可以为某一物体准备大量具有不同特征的图像数据,来增加网络在测试集上的准确率.

图9 热力激活测试

5 结束语

本文对自动驾驶领域物体分类与识别问题,提出了基于深度学习的一种轻量化改进型网络结构,在保证分类准确度和网络实时性的情况下,使网络的参数规模显著减少.通过大量实验和理论分析选择出了适合此网络的激活函数,并证明了权值正则化与Dropout 在网络中至关重要的作用,选择了适合此网络的过拟合处理方法.通过tensorboard 对卷积核中的权值分布变化进行了详细直观的描述.利用Grad-CAM 等卷积可视化算法,直观的阐述了神经网络在分类任务中的工作原理和特点,为网络的结构的搭建和后期改进提出了理论依据和方向.

猜你喜欢
权值卷积神经网络
基于全卷积神经网络的猪背膘厚快速准确测定
一种融合时间权值和用户行为序列的电影推荐模型
基于神经网络的船舶电力系统故障诊断方法
MIV-PSO-BP神经网络用户热负荷预测
基于改进Hopfield神经网络的对地攻击型无人机自主能力评价
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
三次样条和二次删除相辅助的WASD神经网络与日本人口预测
财务风险跟踪评价方法初探