本发明涉及深度神经网络技术领域,特别是一种加入Dropout的卷积神经网络的果蔬图像识别方法。
背景技术:
智能冰箱的果蔬识别可帮助商家收集用户果蔬产品的消耗情况,利用该数据分析出用户喜好,商家可通过终端APP适时向用户做出果蔬产品以及个性化食谱推荐,或提醒用户尽快食用冰箱中即将过期的食品。目前大多数对果蔬图像的识别分类都是基于机器视觉的研究,采用人工提取果蔬颜色,纹理,形状等特征,然后用分类器识别。人工提取特征繁琐,提取到的特征片面,且容易受外界如光照等因素的变化,鲁棒性不强。
鉴于上述原因,本发明提出一种加入Dropout的卷积神经网络的果蔬图像识别方法,卷积神经网络是一类可以直接以2D图像作为输入的深度神经网络,这种自主从隐含层中逐层选取图像物体由边、颜色等低层到角点、形状等高层特征的方式,避免了人工提取特征的繁琐与片面,使网络具有自主选取特征并进行学习与识别的能力。卷积神经网络还具有良好的容错能力,自适应能力强,对特定的遮挡、光照、平移、旋转、缩放及其他形式的扭曲都具有良好的鲁棒性,非常适合用于处理该类果蔬识别问题。
对于传统的卷积神经网络,当需要训练的样本集不大时,容易引起“过拟合”,从而导致识别率降低。
技术实现要素:
有鉴于此,本发明的目的是提出一种加入Dropout的卷积神经网络的果蔬图像识别方法,在隐含层中引入Dropout技术,减少传统卷积神经网络中“过拟合”现象的发生。
本发明采用以下方案实现:一种加入Dropout的卷积神经网络的果蔬图像识别方法,具体包括两层卷积滤波层、两层降采样层、一层全连接层、一层输出层;通过在所述卷积滤波层中加入一定比例的随机隐退Dropout,令某些神经元冻结,使其输出为0,进而减少过拟合现象;包括以下步骤:
步骤S01:将输入图像归一化至网络所需尺寸大小;
步骤S2:进行卷积:用一个可训练的滤波器卷积输入图像,得到卷积层的特征图,其中卷积层中引入Dropout的神经元的比例为30%;
步骤S3:进行降采样:对卷积层的特征图中每个n×n的邻域求平均得到降采样层的一个值,进而使得降采样层的特征图在各个维度都比卷积层的特征图缩小了n倍;
步骤S4:进行全连接:将第二层降采样层的特征图展开成一个向量,乘上加权值并通过激活函数得到输出层神经元的输出值;
步骤S5:求出输出值与标签值的的均方误差,网络采用基于带动量项的梯度下降反向传播算法,当迭代次数满足要求时终止卷积神经网络的训练。
具体可包括以下步骤:
S01:将输入图像归一化至网络所需的尺寸大小;
S02:将所述S01中归一化后的图像通过第一层卷积滤波层得到该层的特征图;
S03:将所述S02中的特征图通过第一层降采样层得到该层的特征图;
S04:将所述S03中的特征图通过第二层卷积滤波层得到该层的特征图;
S05:将所述S04中的特征图通过第二层降采样层得到该层的特征图;
S06:将所述S05中的特征图展开成一个列向量;
S07:将所述S06中向量乘上加权通过一个非线性激活函数进行映射得到输出值;
进一步的,所述网络所需尺寸为1:1的等宽高图像。
进一步的,所述两层卷积滤波层均采用ReLU非线性非饱和函数作为激活函数进行映射得到输出值,加速网络收敛。
进一步的,所述两层降采样层均采用均值采样,即对输入的上一层卷积滤波层的特征图的n×n区域求平均后作为该层的一个点。
进一步的,步骤S5中所述基于带动量项的梯度下降反向传播算法中,采用的权重更新规则为:
ωi+1=ωi+νi+1;
其中,i为迭代次数,η为学习率,λ为权重衰减因子,ω为权重向量,vi表示动量,α为动量项系数;为第i批训练样本Di的损失函数在权值为ωi时关于ω的导数的平均值。
与现有技术相比,本发明有以下有益效果:本发明提出在卷积神经网络中加入Dropout技术,即在隐含层中“冻结”一定比例的神经元,在网络训练过程中保留其当前的权值,同时将输出设定为0,而这些被选择的神经元在下次训练过程中又会恢复之前保留的取值,并再次随机选择部分神经元重复此过程。该方法可减少“过拟合”的发生,提高网络的泛化能力。
附图说明
图1为本发明实施例中方法整体结构图;
图2为本发明实施例中采用的果蔬图像集(Supermarket Produce dataset)的部分果蔬图像;
图3为本发明实施例中ReLU激活函数连接网络的示意图;
图4为本发明实施例中卷积层引入随机隐退的示意图;
图中:Input为输入层,C1、C3为卷积层,S2、S4为降采样层;Wx为权值;Cx为卷积层的特征图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
本实施例提供了一种加入Dropout的卷积神经网络的果蔬图像识别方法,具体包括两层卷积滤波层、两层降采样层、一层全连接层、一层输出层;通过在所述卷积滤波层中加入一定比例的随机隐退Dropout,令某些神经元冻结,使其输出为0,进而减少过拟合现象;包括以下步骤:
步骤S01:将输入图像归一化至网络所需尺寸大小;
步骤S2:进行卷积:用一个可训练的滤波器卷积输入图像,得到卷积层的特征图,其中卷积层中引入Dropout的神经元的比例为30%;
步骤S3:进行降采样:对卷积层的特征图中每个n×n的邻域求平均得到降采样层的一个值,进而使得降采样层的特征图在各个维度都比卷积层的特征图缩小了n倍;
步骤S4:进行全连接:将第二层降采样层的特征图展开成一个向量,乘上加权值并通过激活函数得到输出层神经元的输出值;
步骤S5:求出输出值与标签值的的均方误差,网络采用基于带动量项的梯度下降反向传播算法,当迭代次数满足要求时终止卷积神经网络的训练。
具体可包括以下步骤:
S01:将输入图像归一化至网络所需的尺寸大小;
S02:将所述S01中归一化后的图像通过第一层卷积滤波层得到该层的特征图;
S03:将所述S02中的特征图通过第一层降采样层得到该层的特征图;
S04:将所述S03中的特征图通过第二层卷积滤波层得到该层的特征图;
S05:将所述S04中的特征图通过第二层降采样层得到该层的特征图;
S06:将所述S05中的特征图展开成一个列向量;
S07:将所述S06中向量乘上加权通过一个非线性激活函数进行映射得到输出值;
在本实施例中,所述的卷积层均采用ReLU非线性非饱和函数作为激活函数,加速网络收敛。
在本实施例中,所述的卷积滤波层中加入一定比例的Dropout,使某些神经元“冻结”,为了减少过拟合现象。
在本实施例中,所述的降采样层均采用均值采样。
在本实施例中,误差反向传播采用基于动量项的梯度下降反向传播算法,防止网络陷于局部极小值。
在本实施例中,所述的网络采用贪心迭代算法,直到迭代的次数满足条件时终止迭代。
具体的,如图所示,图2为本实施例中采用的果蔬图像集(Supermarket Produce dataset)的部分果蔬图像,数据集的原图像尺寸为1024*768,先裁剪并按照1:1的比例压缩为28*28。
如图1所示,在本实施例中,所述的第一层卷积层C1采用6个5*5大小的卷积核,卷积步长为1。所述的激活函数采用ReLU非线性非饱和函数,即f(x)=max(x),该函数通过线性修正的方式,强制某些数据为零,使得模型具有适度的稀疏表达。其梯度值大,可防止梯度向前传递时弥散,所述的ReLU函数连接网络如图3所示。为了防止神经元之间产生依赖性,所述的卷积层还引入比例为30%的随机隐退,即随机“冻结”卷积层30%的神经元,在网络训练过程中保留其当前的权值,同时将输出设定为0,而这些被选择的神经元在下次训练过程中又会恢复之前保留的取值,并再次随机选择部分神经元重复此过程,本实施例中采用30%比例随机隐退示意图如图4所示。最后,第一层卷积层输出为6个24*24大小的特征图。
如图1所示,所述的第一层降采样层S2为均值采样,采样窗口为2*2,即对输入的上一层卷积层的特征图的2*2区域求平均后作为该层的一个点,故该层输出的特征图在两个维度都缩小了一半。因此所述的S2层得到6个12*12大小的特征图。
如图1所示,所述的第二层卷积层C3采用12个5*5大小的卷积核,卷积步长为1。所述的激活函数采用ReLU非线性非饱和函数,所述的卷积层还引入比例为30%的随机隐退。所述的第二层卷积层C3输出12个8*8大小的特征图。
如图1所示,所述的第二层降采样层S4为均值采样,采样窗口为2*2,即对输入的上一层卷积层的特征图的2*2区域求平均后作为该层的一个点,故输出特征图在两个维度都缩小了一半。因此所述的S4层得到12个4*4大小的特征图。
如图1所示,所述的全连接层将所述S4层得到的12个4*4大小的特征图展开成一个192维的向量。
如图1所示,所述的全连接层的192维向量乘上加权得到输出值。
卷积神经网络是一种有监督的学习方式,本发明实施例使用批量随机梯度下降法,对每次epoch,每输入10个样本训练后,进行反向传播并更新一次权值。本发明实施例中网络的权值更新基于带动量因子的梯度下降反向传播算法,权重更新规则如下:
ωi+1=ωi+νi+1
其中,i为迭代次数,η为学习率,λ为权重衰减因子,ω为权重向量,vi表示动量,α为动量项系数;为第i批训练样本Di的损失函数在权值为ωi时关于ω的导数的平均值。增加动量项的目的是为了避免网络训练陷于较浅的局部极小值,并且加快网络收敛的速度。
在本发明实施例中,所述的网络采用贪心迭代算法,迭代200次(200epochs),直到迭代的次数满足条件时终止迭代。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。