王少英
(黄河交通学院,河南 焦作 454950)
随着物联网[1-2]的快速发展,“万物互联”的未来技术方案将逐步应用到智能食品包装、智慧工厂等实际场景,其中所用终端传感器设备不断增加,传感节点每时每刻所获取的各类数据呈几何级数增长。这些海量的边缘数据,如摄像头采集的食品包装标志图像均依赖于远离终端的云端或者高度定制化的人工智能芯片进行处理,从而导致了对海量边缘数据无法实现实时有效处理,或者成本大幅度增加。因此,探索一种新的人工神经网络算法边缘计算[3]实现方案,使得满足诸如食品包装标志的实时在线识别与故障警报的实际需求,对智能食品包装应用具有重要意义。
目前,主要通过摄像头等检测流水线上的食品包装信息,利用卷积神经网络(Convolutional neural network, CNN)[4]算法进行分类识别并给出指示,避免发生误包装事故[5-8]。其中包括多列卷积神经网络,通过构建“3层卷积层+3层池化层+2层全连接层”的单列网络结构,并通过5种不同预处理方式组成一个完整的多列CNN结构,但多个网络的组合会产生大量的待训练参数,进而导致分类识别速率和训练速率均较慢;优化CNN的方法[6]综合了批量归一化(Batch-normalization,BN)方法、逐层贪婪预训练(Greedy layer-wise pretraining,GLP)方法,以及将分类器换成支持向量机(Support vector machine,SVM)3种方法对卷积神经网络结构进行优化。然而,CNN算法主要用于处理二维静态图像数据,且训练时间长、资源浪费严重,本质上不适用于对实时采集的连续图像数据进行分类处理。
循环神经网络算法(Recurrent neural network,RNN)[9]作为一种主要用来处理时序信息相关信号的基本人工神经网络算法架构,在实际应用中通常存在结构复杂、训练难度大,以及收敛速度慢等问题。循环神经网络算法通常是利用时间反向传播(Back propagation through time,BPTT)[9]算法进行训练,其训练计算代价较大,训练过程缓慢且训练成本高。利用BPTT算法训练递归神经网络过程中,输入层和中间层的连接权变化缓慢,只有输出连接权变化明显。
为解决上述问题,Atiya等[9]提出了多种优化RNN训练难度高的改进型算法模型,包括长短时记忆模型(Longshorttimememory,LSTM);Lukoševicius等[10]提出了回声状态网络(Echo state network,ESN);Verstraeten等[11]提出了液体状态机(Liquid state machine,LSM)。研究[10-11]表明,回声状态网络和液体状态机算法本质上一致,并概括为储备池计算(Reservoir computing, RC)。
因此,RC算法作为一种改进型循环神经网络算法,其核心思想是利用一个储备池代替传统神经网络中的中间层,输入层到储备池的输入连接权和储备池的内部连接权均随机生成并保持不变,训练过程中唯一需要确定储备池到输出层的输出连接权。该算法模型的提出,极大地推进了专门用于处理时序信号的硬件神经网络算法的研究。
该算法架构大大简化了传统RNN神经网络的训练计算难度,而且可以通过具备一定非线性特性与衰减特性的物理系统或器件在硬件层面实现该算法框架,在模拟域实现对传感信号的处理,有助于进一步推动边缘计算的实现。已有硬件RC系统的研究多是利用不同类型器件,结合不同非线性特性进行基础性能的探索,其中包括电器件、光电器件以及全光器件、忆阻器以及自旋纳米振荡器等[12-17]。
针对当前食品包装图像识别方案实时性差、成本高等问题,研究拟在智能食品包装这一具体应用场景下,引入改进型循环神经网络算法,构建以忆阻器非线性动态特性为核心的储备池计算系统。设计智能实时识别系统,通过仿真模拟实现对食品包装标志信号的分类识别,并验证该方法的可行性与实用性,以期为食品包装智能识别系统的开发提供依据。
采用公开的食品包装数据集GTSRB(german food sign recognition benchmark),该数据集共有43类食品包装标志,包含5万多张各类常见的食品包装图像,且这些图像的采集过程涉及不同的光照强度、拍摄角度、天气情况以及被遮挡等情况。该数据集构成为:训练集34 799个样本,测试集12 630个样本,验证集4 410个样本。
通过对该数据集样本进行观察分析,总结整体样本存在的特征:① 不同样本的尺寸明显不一致;② 不同样本的背景信息不一致;③ 不同样本的颜色不一致等。
综合考虑样本特征,结合试验采用的阵列式忆阻器RC系统需要保证待测信号的长度一致,而且样本颜色与冗余的背景信息不是实现分类识别的关键特征。因此将食品包装标志图像分别进行去除背景信息、灰度化与归一化处理以及重采样统一样本尺寸,最终实现降低模型训练的复杂度和减少模型的计算量的作用。预处理过程如图1所示。
图1 预处理过程
图1利用官方给出的4个Rois坐标信息进行图片背景的精准去除。使图像灰度化的方法较多,试验选择根据YUV颜色空间(Y分量的物理意义是点的亮度,由该值反映亮度等级),根据RGB和YUV颜色空间的变化关系可建立亮度Y与R、G、B3个颜色分量的对应,并以该亮度值表达图像的灰度值,其关系式为:
Y=0.3R+0.59G+0.11B。
(1)
同时对其数值利用最大值法进行归一化操作,以便于后续调节参数更适配忆阻器RC系统;最后选择使用一定的插值方法,对不同尺寸图像进行重采样缩放,试验采用“imresize()”函数,在默认使用双3次插值的情况下,实现对不同尺寸样本统一转化为30像素×30像素的图像。
智能实时识别系统主要由控制程序外加三部分构成,包括信号采集与处理模块、硬件RC系统与电路模块以及后处理回归算法模块。对食品包装标志等数据集的在线检测识别过程为:首先利用摄像头等传感器对实景中的食品包装标志进行采集,并转换为数字信号,从得到的视频流数据获取图像信息,经过一定的预处理过程;进一步通过控制程序将待测信号输入由稳定非线性传输函数构成的RC系统中,实时检测得到其动态响应信号;最后通过该响应信号矩阵,利用线性回归算法实现最优输出权重的训练,并将识别结果显示出来,其总体框图如图2 所示。
图2 智能实时识别系统结构总体框图
第2模块中的RC系统是在传统软件RC系统的基础上演变而来的硬件RC算法实现架构,如图3所示。其特点是利用物理器件的非线性响应特性实现传统的多个神经元节点构成的储备池映射层,既能保证高维映射性能,又能降低训练难度,节约整体成本。
图3 改进型循环神经网络算法架构
传统的储备池计算由输入层、储备池和输出层构成[图3(b)]。输入信号通过输入层进入储备池,在储备池中被非线性映射到高维状态空间,输出层根据节点状态和训练过程中确定的输出连接权重产生输出信号,然后进行预测任务或者分类任务。训练过程中一般根据一个线性回归算法确定输出连接权。储备池系统的节点状态更新方程x(n+1)和输出方程y(n+1)分别为
x(n+1)=fres[Winu(n+1)+Wresx(n)+Wbacky(n)],
(2)
y(n+1)=fout[Woutx(n+1)],
(3)
式中:
x(n)——节点状态;
u(n)——输入信号;
y(n)——输出信号;
n——时间步数;
Win、Wres和Wback——输入连接权值、内部连接权值、输出连接权值以及反馈连接权值;
fres——状态激活函数;
fout——输出函数(软件算法实现中通常选择双曲正弦函数作为fres);
fout——多项式恒等函数。
由于ESN和LSM本质相同,此处只介绍ESN模型。如图4所示,ESN主要由输入层、储备池层和输出层3部分组成。u(t)∈P×1为系统的输入向量,t=1,2,…,T。输入层与储备池层通过输入权重矩阵WESN_in∈N×P连接,其中N为储备池节点的个数。与RNN不同,输入权重矩阵WESN_in在系统初始化时随机指定,无需训练。储备池层由状态节点x∈N×1组成。ESN不是单项网络,储备池层状态节点的取值由两方面的输入决定:输入层的u(t)和储备池前一个状态节点输出x(t-1)。状态节点之间由状态反馈权重WESN∈N×N连接。状态节点更新式为:
图4 回声状态网络结构示意图
x(t)=f[WESN_inu(t)+WESNx(t-1)],
(4)
式中:
f(·)——非线性激活函数。
储备池层与输出层由输出权重WESN_out∈M×N连接。ESN网络需要训练的参数只有输出权重,因此大大减少了网络的训练计算量。训练目标为实际输出与目标输出y(t)之间的误差最小,其计算过程为:
(5)
(6)
需要训练的输出矩阵WESN_out可能为奇异矩阵,所以训练采用伪逆算法或者岭回归算法。
ESN有两个非常明显的特点:① 储备池中状态节点的连接状态是随机的,即神经元之间是否建立了连接、连接强度如何,外界是不清楚的;② 储备池中状态节点的连接权重矩阵是固定不变的,不会使用梯度下降法进行连接权重的更新。ESN的这两大特点,使其拥有了RNN不具备的优势:① 只需训练输出权重矩阵,计算量显著降低;② 在一定程度上避免了梯度下降算法中的局部极小情况,从而避免了梯度爆炸和梯度消失的问题。
综上,RC算法模型作为一种改进型循环神经网络算法,不仅解决了传统RNN网络复杂度高、训练难度大等问题,实现了对时序相关信号的快速处理;并且为硬件神经网络算法的实现提供了一条可行性极强的方案。
试验重点以忆阻器件作为实现硬件RC系统的研究对象,将其非线性响应特性与RC算法相结合,实现传感信号在模拟域的直接感知与并行计算。同时,忆阻器的非线性动力学是构建硬件RC系统的核心。与所有的忆阻器件一样,在WOx忆阻器件的I-V特性中可以明显观察到“迟滞”行为(图5)。当施加正电压时,器件电导逐渐增加(称为写过程),当施加负电压时,电导逐渐减少(称为擦除过程)。
图5 忆阻器响应状态随DC电压的变化
此外,当进行多次连续的正向扫描时,器件电导会随着每次扫描持续增加,但迟滞回路之间也会出现重叠,这与储备池计算系统中的短时记忆行为一致;此外,忆阻器加工工艺与传统半导体工艺兼容,且具备集成度高、体积小、成本低等特点。因此,选择忆阻器作为实现模拟硬件RC的研究对象,通过构建其仿真试验模型,初步探索其对食品包装标志信号的实时分类能力。
忆阻器响应电流与驱动电压的非线性表达式为:
I=(1-w)α[1-exp(-βV)]+wγsinh(δV),
(7)
式中:
α——对应Vo贫区电导的肖特基项;
β——对应Vo富区电导的类隧通项(两个传导通道并联,其相对权重由内状态变量w决定)。
状态变量w相对于外加电压的变化率的动力学方程为:
(8)
式中:
ι——外加电场下的漂移效应;
η——自发扩散系数;
τ——扩散时间常数。
表1的非线性传输函数表达式相关参数均按照所设计器件的参数给出,在仿真试验中默认其值保持不变。
表1 忆阻器RC模型相关参数†[13]
每个脉冲时序信号输入前,忆阻器初始化为w=0.1,对应于器件的静息状态。器件在脉冲时序信号中的变化可以分为两种情况:
(1) 当施加写脉冲时,状态变量w通过式(9)改变:
Δw=R(w)·tpulse·λ·sinh(ηVpulse),
(9)
式中:
tpulse、Vpulse——输入脉冲的时间长度与电压大小。
衰减效应往往在写入脉冲时序信号时被忽略,R(w)主要用于保证状态变量w不会超过其自身上限(w=1),表达式为
(10)
(2) 在写入脉冲的电压信号为0的周期内,状态变量将会衰减,形式为
(11)
式中:
Δt——该周期的长度;
w0——该周期状态变量的初始值。
该效应可通过对式(7)在V=0时求积分得到。
当写入一定的脉冲信号时,读出脉冲施加相当于可以得到式(7)中的响应电流信号。因此,储备池状态就可以通过包含忆阻器读出电流的向量信号表示,对于试验预处理后的图像(30×30),固定tpulse下采用单个忆阻器处理单行灰度值信号,响应向量长度即为30。
在忆阻器RC系统[13,17]基础上,根据忆阻器的非线性传输函数表达式,构建图3中改进型循环神经网络算法模型的储备池层,用于实现对待测食品包装标志时序信号进行实时分类处理。为更好地提升系统的计算速度,使得该系统的算法运行时间所产生的延时最小,试验设计了一种并行忆阻器RC算法架构,其原理如图6所示。
图6 并行忆阻器RC系统示意图
试验设计模型利用30个忆阻器构建30个并行RC系统阵列。预处理后的图像样本为30像素×30像素的图像,将每一行1×30的数据添加时间信息t0,作为一段时序信号输入至单个忆阻器RC系统;每个忆阻器RC分别对待测信号进行非线性高维映射,产生相应的状态响应;将30个并行忆阻器RC系统的实时状态响应串联为1×900的向量,作为该待测图像样本的高维非线性状态输出∑Ii。所有样本输出状态为N×I(N为数据集样本数),进一步与构建的43个分类器进行线性回归训练,得到最优权重Wi;利用测试集或者验证集中的样本进行测试,与43个最优权重值相乘后利用“Winnertakesall”的算法得到最终的分类结果;然后与真值比较,如果该样本分类准确则“+1”,分类错误则“+0”,通过计算该值与测试总样本数的比值得到最终分类准确率。
储备池系统的输出状态本身并不是整个RC系统所期望的结果,因此需要对该输出状态进行线性回归训练,获得系统最优权重向量,从而实现对测试集数据有效的分类与回归预测。该线性回归模型的训练算法为每个神经元节点分配一个输出权值,使状态的加权和尽可能接近期望的目标值,一般用式(12)表示。
y(t)=WTx(t),
(12)
式中:
W——待训练输出权重向量;
x(t)——储备池状态输出向量;
y(t)——预测值;
一般对于所述线性回归模型,需要使用最小二乘估计(Ordinary least squares estimation,OLS)来训练其最优权重向量值,其损失函数为:
(13)
为了避免训练数据过拟合以及模型大量参数导致的复杂度,一般解决方案是通过在式(13)上加一个惩罚项。
如果惩罚项是参数的L2范数,为岭回归(Ridge regression)模型,其损失函数的解为:
(14)
如果惩罚项是参数的L1范数,为拉索回归(Lasso regression)模型,其损失函数的解为:
(15)
第二项λ的目的是使W权重尽可能小,同时使误差最小化。在训练权重系数规模不是特别大的情况下,这两种方法都可以使用,并有望产生相同的结果。试验采用岭回归算法作为用于输出层权值训练的方法,有效避免过拟合现象,同时保证权值数量的一致性。
图7为具体训练测试流程。首先对所选择GTSRB数据集进行如图1所示预处理,得到无冗余背景、尺寸一致的归一化灰度值样本;构建由忆阻器非线性传输函数为储备池层的并行RC仿真模型,并通过先验知识确定模型各参数;利用训练集数据样本进行43个分类器最优权值的训练,并通过测试集数据进行均方误差(MSE)评估,通过式(14)的岭回归函数得到MSE最小时的λ取值,反复迭代优化后确定最优Wi;最后利用验证集进行最终性能测试,得到该算法模型分类精度指标。
图7 系统训练测试流程图
(16)
式中:
yk——目标值;
m——目标函数中以时间为步长的数值个数。
以MATLAB &Simulink作为程序开发环境,利用忆阻器非线性振动特性作为激活函数,设计并行忆阻器RC系统对43类不同食品包装标志数据进行仿真模型搭建。
图8为系统仿真模型示意图,通过Simulink构建式(2)的非线性振动方程以及测试电路模块,利用MATLAB的控制程序实现预处理后数据的并行输入与保存,以及岭回归算法完成训练与测试。最终模拟实现对“视频流”图像数据的实时分类处理,并做出相应警告与提醒。
图8 仿真模型部分示意图
图9 优化写入脉冲时间试验结果
设置试验系统写入DC脉冲信号的Vpulse=1.5 V,首先选择tpulse=[0.1∶0.1∶0.8] ms,时间间隔Δt=0.1 ms,分别与归一化后的待测信号数据相乘后输入忆阻器RC系统。试验测试结果表明,当tpulse=0.4 ms时,试验系统对有效数值信号的非线性积累效果最好。
在已有试验参数设置基础上,已实现对不同灰度值数据的非线性积累效应,但是由于忆阻器的电导率会随正向电压的施压,导致中间层离子浓度不断积累,最终达到最高离子浓度饱和值。因此,需要通过调节输入数据前后时间间隔周期Δt来实现离子浓度的降低,达到非线性状态衰减的效应。从而模拟神经元实现一定的上下文关联与短时记忆特性,保证系统实现复杂的非线性映射与状态积累。所设计优化试验通过改变Δt,分别取值[0.01∶0.2∶1] ms的50个数值进行参数扫描试验测试。由图10可知,当Δt=0.3 ms时,系统整体性能达到最优,此时的分类准确率高达98.89%。
图10 优化时间间隔试验结果
由于数据集中采集数据因为光照、天气影响以及遮挡等非可抗力影响,导致图像本身产生形变难以辨别。因此,由表2可知,试验设计系统的分类准确率最高只达到98.59%。
表2 不同神经网络算法模型对比
综合对比表明,试验建立的阵列式忆阻器RC系统实现的分类准确率较高,已达到较高水平;试验利用单个物理器件的非线性振动特性方程作为传统神经网络算法中的N个复杂连接的激活函数,不仅大大降低了神经元网络映射层的构建难度、节约了训练成本,还通过并行阵列式忆阻器RC系统架构提升了计算速度。
研究利用改进型循环神经网络算法,利用忆阻器非线性传输函数作为储备池神经网络映射层,构建并行储备池计算系统并设计智能实时识别系统仿真试验,最终实现了对食品包装的实时分类识别。结果表明,试验方案不仅取得了较高的分类准确率,且初步实现了对“视频流”图像数据的实时在线处理,极大提高了计算效率。说明循环神经网络算法构建的智能识别系统可以实现对食品包装标志信号的实时在线识别,并有望作为一种实现智能食品包装枢纽终端的重要技术方案。后续将进一步进行试验测试系统的搭建,并在此基础上逐步完善和改进该智能实时识别系统实现方案。