APP下载

基于改进VGGNet的城市生活垃圾分类研究

2020-03-15倪中付

电子技术与软件工程 2020年23期
关键词:池化层网络结构准确率

倪中付

(江苏科大汇峰科技有限公司 江苏省镇江市 212000)

1 引言

近年来,国民经济水平逐年提高,居民消费质量明显改善,随之带来的生活垃圾增长率也逐年递增。2017年以前,国内大多城市的垃圾分类只分为可回收和不可回收两类,居民的垃圾分类意识不够,缺乏垃圾分类基本常识,垃圾分类现状混乱。2019年6月初,国家发改委宣布全国从2019年开始全面启动垃圾分类,一些上门回收垃圾APP 和智能分类垃圾桶应运而生[1]。然而,上门回收垃圾的APP 需要投入大量的上门回收人员;而智能分类垃圾桶则存在大面积更换所需成本很高的弊端。

针对当前国内居民垃圾分类意识不够、基本垃圾分类常识缺乏,而国内针对垃圾分类的软件较少的现状,本文开展基于改进VGGNet 的城市生活垃圾分类研究,改进了VGGNet 网络结构和激活函数,基于TensorFlow 框架,进行了VGGNet 网络在垃圾图片分类上的准确率测试。

2 垃圾分类数据集构建

本文垃圾分类数据集的构建,基于上海市生活垃圾分类标准,通过网上搜集的方式搜集符合要求的图像共计79478 张。其中,包含可回收垃圾49251 张、干垃圾5056 张、湿垃圾20356 张及有害垃圾4815 张,各类垃圾图片的数量比例如图1 所示。

3 VGGNet网络结构及激活函数改进

3.1 VGGNet网络结构改进

常见的VGGNet 网络包括VGG16 和VGG19。以VGG16 为例,其网络结构的特点为:输入层为224×224 的RGB 模式图片;包含13 个卷积层、3 个全连接层、5 个最大池化层和1 个分类器层;卷积层中的卷积核大小为3×3;所有隐藏层都采用ReLU 作为激活函数;池化层采用最大池化方法[2-3]。

VGGNet 网络结构的网络层数多,训练时计算量大,收敛速度慢,需要的训练样本数据量大,同时,网络参数较多,以VGG16为例,其训练参数达到1.38 个亿,对计算机内存的要求较高,同时训练时间也比较长。

图1:垃圾图片数据集

图2:改进后的VGGNet 网络结构

图3:LReLU-Softplus 函数示意图

针对VGGNet 计算量大、内存占用大等缺点,对VGGNet 网络结构进行改进,从减少网络参数方面着手。为了保留VGGNet 网络的特征提取优势,在保证底层网络很少改变的基础上,尽可能地修改上层网络。VGGNet 会消耗很多计算机资源,究其原因,VGGNet有3个全连接层,每一个全连接层都会产生很多参数。因此,VGGNet 网络结构改进的第一步即是将3 个全连接层减少为1 个。

VGGNet 网络结构中,每一段卷积的后面都会连接一个池化层。池化层的作用是在保留原有重要特征的前提下尽可能减少网络参数。VGGNet 网络在每段卷积之后采用最大池化形式,相比平均池化操作,最大池化会产生更多的网络参数。因此,VGGNet 网络结构改进的第二步是将全连接层前面的最大池化层改为平均池化层,在最大程度保留VGGNet 网络图像特征提取优势的前提下,减少网络参数。改进后的VGGNet 网络结构如图2 所示。

3.2 VGGNet激活函数改进

常用的激活函数包括:Sigmoid 函数、Tanh 函数、ReLU 函数、LReLU 函数及Softplus 函数等[4]。其中,LReLU 函数能够有效解决数值偏移现象和神经元死亡的问题,但是它不具有光滑性;而Softplus 函数虽然具有光滑性,但是它存在数值偏移现象和神经元死亡的问题。因此,将这两种激活函数相结合,综合这两种激活函数的优缺点,提出一种新的激活函数LReLU-Softplus 函数:先将Softplus 函数向下平移ln2 个单位,然后将x ≤0 的输出值换为LReLU 函数部分,其表达式如公式(1)所示,与LReLU 函数相同的是公式(1)中a 是一个很小的常数。

表1:LReLU - Softplus 激活函数常数a 不同取值的测试结果

表2:网络改进前后的识别准确率

表3:网络改进前后的训练时长

图4:部分代码截图

如图3 所示为LReLU-Softplus 函数示意图。通过改进,LReLU-Softplus 激活函数兼具了LReLU 函数和Softplus 函数的优点,既具备了光滑性,又解决了数值偏移和神经元死亡问题。

VGGNet 的所有隐藏层都采用ReLU 作为激活函数,因此,改进的激活函数设计是将隐藏层的ReLU 激活函数替换为LReLUSoftplus 激活函数。

图5:训练准确率及测试准确率

图6:训练丢失率及测试丢失率

图7:网络改进前后的识别准确率

4 改进后的网络模型训练和验证

以上述构建的垃圾分类数据集为实验数据库,基于改进前后的网络结构模型,开展垃圾分类实验,将改进前后的网络识别准确率、计算机性能要求进行对比,根据对比分析的结果来判定改进前后的卷积神经网络模型的执行效率。

4.1 准确率定义

本文所使用的卷积神经网络垃圾图片分类模型的评价标准为准确率(英文为Accuracy rate),其计算公式如公式(2)所示:

式中:

Numbertrue表示垃圾图像测试集中能够进行正确预测的垃圾图像总数;

Numberall表示垃圾图像测试集样本总数,包括预测正确的垃圾图像数和预测错误的垃圾图像数两部分;

Accuracy rate 表示垃圾图像分类准确率。

4.1 激活函数的常数取值

选用LReLU-Softplus 作为激活函数时,首先要进行函数中常数a 的取值。本文分别选取常数a 为0.01、0.02、0.05、0.1、0.2、0.5、1 和2 进行测试,测试结果如表1 所示。根据表1 的测试结果可知:当a 的取值为0.1 时,误差最小。因此,当选用LReLU - Softplus作为激活函数时,函数中常数a 的取值为0.1。

4.2 模型训练及结果分析

构建好模型结构后,设置数据集的加载路径,在搭建好的环境中进行模型训练,将训练过程中每轮迭代的Train Loss、Valid Loss、Train Acc、Valid Acc 等数据保存到log日志文件中,然后使用matplotlib 库绘制在训练集和测试集上的Accuracy 跟Loss 的变化曲线,部分代码的截图如图4 所示。训练结果是以Train Loss、Valid Loss、Train Acc、Valid Acc 数值绘制的曲线,如图5、图6 所示。

4.3 网络改进前后对比分析

基于最佳性能的常数a 的取值0.1,针对改进前后的网络模型,进行垃圾分类实验,改进前后的识别准确率对比结果如表2 和图7所示,改进前后的训练时长对比结果如表3 所示。

由表2 和图7 可知,网络改进后,其识别准确率比改进前高,训练50 次时的识别率为95.22%,同时其收敛速度也比改进前快。因此,对比分析网络结构改进前后的结果,可以看出,改进后的网络结构,能在保证识别准确率的基础上,有效地提高网络收敛速度。由表3 可知,网络模型改进前,训练时长大约为18.5 分钟,网络模型改进后,其训练时长大约为17.3 分钟,比改进前有所降低。

综上所述,改进后的网络结构具有一定的实用性,在保证识别准确率的基础上,能够有效地提高网络收敛速度,同时能够适当地降低训练时长,降低对硬件计算能力的要求。

5 结束语

本文构建了基于上海市生活垃圾分类标准的垃圾分类数据集,改进了VGGNet 网络的结构和激活函数,并进行了训练验证,对比分析了改进前后的识别准确率和训练时长,得出改进后的网络结构能在保证识别准确率的基础上有效降低训练时长的结论。

猜你喜欢

池化层网络结构准确率
卷积神经网络模型研究分析*
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
基于深度学习卷积神经网络的人体行为识别研究
高速公路车牌识别标识站准确率验证法
基于全卷积神经网络的SAR图像目标分类*
基于互信息的贝叶斯网络结构学习
知识网络结构维对于创新绩效的作用机制——远程创新搜寻的中介作用
沪港通下A+ H股票网络结构演化的实证分析
复杂网络结构比对算法研究进展