基于深度学习的白酒分类识别方法
2021-05-10周永帅庹先国
刘 鑫 韩 强,3 周永帅 庹先国
(1. 四川轻化工大学自动化与信息工程学院,四川 自贡 643000; 2. 人工智能四川省重点实验室, 四川 自贡 643000;3. 泸州老窖集团有限责任公司,四川 泸州 646000)
白酒的分类识别技术是白酒研发生产中较为重要的一项技术,其性能有助于提升酒企的生产效率,如区别不同品牌的酒,同一品牌不同层次的酒以及不同等级的基酒。传统的白酒检测主要依靠品酒师的感官品评经验[1],主观性强,不能实时、快速、准确地提供检测数据。随着人工智能技术的高速发展,神经网络、模式识别等技术逐渐被运用至白酒领域,电子鼻、电子舌等智能仿生检测设备[2]也随之诞生。在先进检测设备和技术广泛应用的背景下,白酒的相关数据迅速扩增,导致传统的白酒分类识别方法[2-3](如人工品评、SVM等)无法满足分类识别的具体需求,其准确率低、耗时长等弊端逐渐显露。近年来,气相(GC)、气质联用(GC-MS)[4]等仪器被应用至白酒的数据测试中,此类检测方法的鉴别精度极高,但因其存在操作复杂、检测时间长等缺点,仅能在实验室进行小样检测。
深度学习是指基于多层人工神经网络的机器学习方法,因其对高维、冗杂的数据有极大的优势而在各个领域得到了广泛的应用。基于深度学习的分类预测应用仅是其中的一个功能领域,其中文本分类、图像分类、语音识别等的应用[5-7]已较为成熟。文章拟使用阵列式传感器(电子舌)采集白酒特征数据结合深度学习[8]建立白酒品牌分类识别模型,以期实现不同品牌白酒的高效、精准分类。
1 基于深度学习的白酒分类预测模型
在深度学习的分类应用中,数据集的质量与模型最终的分类预测准确率息息相关。高质量的数据集可以训练出高性能的分类预测模型,能够对待测数据类别进行精准预测。通常情况下,收集的数据集不能直接使用,需要进行预处理,包括数据筛选(异常数据处理、无效数据删除等)、数据标签(数据类别)设定、数据标准化以及训练集和测试集的划分。其中,数据标准化[9]的方法有:Min-max标准化和Z-score标准化。其目的是对原始数据进行线性变换,使结果落在[0,1]或[-1,1]区间,取消由于量纲不同、自身变异或者数值相差较大所引起的误差。
Min-max对应的表达式为:
(1)
式中:
max——同类样本数据最大值;
min——同类样本数据最小值。
Z-score标准化对应的表达式为:
x*=(x-μ)/σ,
(2)
式中:
μ——所有样本数据均值;
σ——所有样本数据标准差。
Z-score标准化会改变原有数据的分布结构,比较适合类正态分布的数据。因此,选择Min-max标准化将所测数据全部处理至0~1。训练集与测试集的划分是在原始数据标准化的基础上进行,参照各类经典案例中的分配情况及自身的试验经验,训练集设为样本总数的70%,剩余的归为测试集。为保障测试集与训练集内部数据分布均匀(各类别所含比例相当)且具有随机性,在数据集划分前需对总样本进行乱序调整。深度学习的模型结构是依据标准化后的样本数据特征及分类的类别来确定,数据特征对应神经网络输入层神经元的个数,分类的类别数对应输出层神经元的个数,中间层神经元的个数依据设定规则进行初步的设定并结合模型分类预测的效果进行反馈调节。各类参数确定后,进行模型训练,在神经网络的运算过程中,核心步骤是前向传播与反向传播[10],其中,前向传播表达式为:
Al=g(Zl)=g(Al-1*Wl+bl),
(3)
式中:
l——网络层数;
W——权值向量;
*——卷积运算;
b——偏置量bias;
g——激活函数。
反向传播的主要目的是更新权值与偏置,其表达式为:
(4)
式中:
α——学习率;
l——神经网络层数。
为增加模型的非线性特性,在隐含层和输出层的输出运算中引入激活函数。常见的激活函数[11-12]有:Sigmoid函数、Tanh函数、Relu函数、Logistic函数和Softmax函数。Logistic与Softmax主要在分类中使用,其中Logistic具体针对的是二分类问题,Softmax主要解决的是多分类问题。Sigmoid、Tanh及Relu通常被用为隐含层激活函数,其最大的区别在于函数值域不同。结合试验数据特征,隐藏层选择Relu作为激活函数,由于数据类别超过两类,故输出层选择Softmax作为激活函数,其数学表达式为:
(5)
式中:
zi——第i个类别的预测结果。
模型经Softmax函数得出的结果为概率值,其最大值所对应的类别即为预测结果(类别)。损失函数作为模型性能评价重要方法,在深度学习的分类应用中,交叉熵损失函数(Cross Entropy)应用最为广泛。其中Binary Cross Entropy主要运用在二分类领域中,Softmax结合Cross Entropy主要针对多分类问题,其表达式为:
(6)
式中:
p(xi)——真实概率分布;
q(xi)——预测概率分布。
由于试验数据来源于阵列式传感器(电子舌)对待测白酒的实时检测,数据量较大。为了加快深度学习分类预测模型的训练速度[13],采用Mini-batch方法将训练数据均分成多份,每次学习一份数据,小批量的进行梯度下降,按批更新参数,同一批次的数据共同决定了本次梯度的方向,减少了梯度下降过程中的随机性,与此同时,每份数据相对于整个数据集来说模型的计算量变小,加快了模型训练速度。在模型的训练过程中还引入Adam优化器[14]对模型进行优化。Adam优化器结合了AdaGrad和RMSProp两种优化算法的优点,在自动调整学习率的同时保证参数的更新不受梯度伸缩变换的影响,其参数更新的数学表达式为:
(7)
式中:
由式(7)可知,对更新的步长进行计算,能够从梯度均值及梯度平方两个角度进行自适应调节,而不是直接由当前梯度决定,能够达到提升模型性能的目的。在深度学习分类预测模型的训练过程中,极易出现过拟合现象,因此采用Dropout方法(参数正则化)解决过拟合问题[15-16],Dropout可作为训练深度神经网络的一种trick供选择,在每个训练批次中,通过忽略一定数量的特征检测器(使一定数量的隐层节点值为0),可以明显地减少过拟合现象。同时,神经元数量的减少进一步加快了深度学习模型的训练速度。基于深度学习分类应用的流程图如图1所示。
图1 深度学习分类应用流程图
2 实验验证
2.1 试验装置
采用多频脉冲阵列式传感器(电子舌系统),其中传感器阵列由铂、银、钨、钛、钯、金圆盘工作电极构成,直径Φ均为2 mm,工作温度15~35 ℃,工作湿度0%~80%。设备开机后需在0.01 mol/L氯化钾溶液中对传感器预热30 min,分别设置系统的起始电压、结束电压和步降降压值为1.0,-1.0,0.2 V,其中传感器提取数据的脉冲频率设为100 Hz。
2.2 数据获取
选用电子舌的人工进样系统数据采集模型对不同品牌的白酒进行特征信息采集。进样机共有12个柱形槽口用于放置盛有待测液体的容器,可以通过软件控制传感器测试待测液体位置,其中1号位必须为清洗液且清洗液可放置多个。阵列传感器S1~S6的灵敏度可依据样品的不同进行调整,灵敏度的选择一般使信号最大值在0.5~10.0 V 为宜,信号值过大需调小灵敏度,信号值过小则需适量调大灵敏度。信号过大或过小都可能造成不能保存的数据的失误。样品经一次采集后,会产生1×6维的数据,试验选取市面上常见的多个品牌进行测试,其中部分品牌的酒样见表1。为了保证样品采集的随机性,分别对每类酒进行若干次采集而非固定采集次数,初步得到每个品牌平均约10 000组数据,最后构成样本数据集,通过数据库进行存储。从全部数据中选取8类6维数据作为测试样本,8类酒分别用数字1,2,3,4,5,6,7,8进行标识分类,每一类数据具有6个特征值。所选数据的部分值见表2,传感器采集的所有数据的分布图如图2 所示。
表1 部分待测品牌样品酒
表2 部分样品值
2.3 数据处理与模型参数设定
在阵列式传感器(电子舌)所测的所有数据中选取8类数据进行异常值、无效数据删除等预处理操作,最终确立类别均匀的50 000组数据作为深度学习分类预测模型的数据集。由于模型的损失函数采用的是交叉熵,需对数据集在[0,1]区间内进行归一化处理,再按照30%,70%的比例对数据集进行测试集与训练集的划分,划分数据集需注意各种类别在训练集与测试集中分布均匀。载入模型中进行训练前还需作乱序处理,以保证数据的随机性。依据阵列式传感器(电子舌)所测数据的维度、白酒品牌的类别与隐含层的设计经验,结合初步结果进行反馈调整,模型的结构最终设定为6-64-8。为避免模型过拟合,Dropout的值设为0.5,即忽略1/2的特征检测器。模型的迭代次数并不是越大越好,结合模型结果,经过实际训练调整,最终设定该模型最多迭代次数为70。
图2 样品在各个属性上的分布
2.4 结果分析
在深度学习分类预测模型中,经过训练集对所建模型进行训练,通过测试集进行预测,得到预测样本识别率为99.987%。其损失函数效果见图3,正确率见图4。深度学习分类预测模型经训练后,交叉熵损失函数的值从开始训练的2.070 4降低至训练结束的0.087 9,说明模型的性能良好,能够满足分类需求。
图3 训练模型损失函数效果图
图4 测试样本训练集与测试集的正确率
由图4可知,训练集与测试集的正确率均较高,且未出现过拟合现象,能够满足预测的精度要求,达到精准分类的目的。
基于深度学习的分类识别与传统不同核函数的SVM分类识别方法对比结果如表3所示。由表3可知,传统的分类识别方法(不同核函数的SVM)对于白酒品牌分类准确率较低,而使用深度学习建立的白酒分类识别方法准确率较高,实用性更好。
表3 不同方法识别率比较
3 结论
文章提出的基于深度学习的白酒分类预测模型将深度学习引入至白酒领域中,再结合阵列式传感器(电子舌)对白酒快速、高效的检测优势,能够高效、精准地对不同品牌的白酒进行分类识别。试验结果表明,该预测模型的白酒品牌识别率达99.987%,具有较强的非线性特性,能够充分发掘数据特征与白酒类别间的关系,具有较好的实用性。后续将提升基于深度学习的白酒分类预测模型的速度,并将深度学习等更多的人工智能技术引入至白酒领域中,实现白酒的智能酿造、生产、勾兑以及生产状态实时监测等目标。