崔 昊,郭 锐,李兴强*,冯克建,张飞飞
(1.中国科学院 沈阳自动化研究所 智能检测与装备研究室,辽宁 沈阳 110016;2.中国科学院 机器人与智能制造创新研究院,辽宁 沈阳 110169;3.中国科学院大学,北京 100049;4.西安航天发动机有限公司,陕西 西安 710100)
位置敏感器件(Position Sensitive Devices,PSD)是一种光电位置探测器,属于半导体器件。与其他使用离散探测阵列方式的传感器(如CCD[1]等)不同,PSD是由一个整体的PIN光电二极管组成,利用光电二极管表面阻抗分布均匀的特性可实现光点位置信息的快速连续采集[2];此外,PSD的输出仅与光点位置有关,与光强度无关,响应速度快,位置分辨率高,因此广泛应用于位移检测、角度测量等领域。在实际应用中,由PSD及其外部信号处理电路所采集的信号夹杂着大量噪声,如何获得准确稳定的位置信号成为了使用PSD要解决的关键问题之一[3]。PSD信号产生误差的来源主要有三点:第一,在PSD的光敏区域内,光点位置与光电流输出并非完全呈线性,随光点位置匀速偏离PSD中心,光电流信号的非线性度增大;第二,PSD输出信号微小,在后续信号放大等处理过程中易受各分立元件带来的非线性因素和噪声因素影响,从而降低测量精度;第三,在不同应用场合下,环境光或应用条件的影响可能导致光斑的强度分布不均匀,从而影响PSD的位置识别精度[4]。
传统的PSD信号处理方法除了简化电路设计、硬件的采样保持滤波外,软件的数字滤波算法是实现各种非理想因素补偿的重要方法[5-8]。陈健等[9]通过结合基于阈值的自适应中值滤波方法与多阈值自适应滤波算法,提出了一种两阶段结合的方法,提高了对数据细节的保护能力。但该方法只适用于中低噪声密度的对象;N Agrawal等[12]针对复杂度大的处理对象,使用粒子群优化算法和人工蜂群算法设计出一种稳定的IIR(Infinite Impulse Response)数字滤波器,解决了在通带和阻带区域滤波均方误差的非线性最小化问题,但增加了数据处理的成本;杨媛等[11]结合最小二乘法与滑动平均滤波的优点,提出了一种改进型滤波算法,在未引入庞大计算量的前提下,对信号的识别和检测取得了可靠效果;除此之外,Zhao等[12]设计了一种基于正弦函数的新型数字滤波器,具有抑制噪声、抗弹道损失和提高能量分辨率等优势,同时简化了结构、提升了可操作性;Rajib Kar[13]在硬件上实现了分数阶模拟滤波器,如Butterworth滤波器,提供了阻带衰减的精确控制;叶国阳等[10]根据数据噪声的特点,提出了一种中值滤波和小波滤波相结合的方法,在消除奇异噪声方面取得了良好效果。但由于奇异噪声通常无规律可寻,多数传统方法滤波效果的精确度欠佳。
对于数字信号的滤波,现有的方法主要是在真实结果未知的条件下,依据被处理数据在时域或频域上的分布特性,给定预期的处理指标,通过计算得到。而在实际应用中,例如传感器的调试、模拟信号的调制等,目标真值通常是可获得的,若能够充分地利用目标真值求取其与待处理数据间的关系,则既简化了数据的处理过程,又能够提高精度。此外,高速测量下的PSD采集信号具有样本数目有限、非线性度高等特点,而传统滤波方法往往需要大量的测量样本来支撑结果的准确性,使得传统方法的处理结果不佳。
针对上述问题,本文提出了一种以ELM(Extreme Learning Machine)为基本预测模型的反馈堆叠学习算法FsELM(Feedback stacking modle based on ELM),在保持ELM快速学习和良好泛化能力的前提下,提高了预测精度并具有良好的鲁棒性。该算法通过将预测值与真实值的偏差作为反馈并更新输入数据,构造了反馈堆叠模型,实现了数据的多层深度训练。为验证所提出模型的有效性和实用性,进行了基于一维PSD的激光三角位移信号处理验证实验,与传统的小波滤波方法以及IIR数字滤波算法对比后,证明了FsELM在处理随机噪声干扰信号的优越性,与经典学习算法、核函数处理的ELM及ELM的变体进行了比较,证明了FsELM在预测精度上有所提升。
ELM是一种用于分类和回归的单隐层前馈神经网络的学习算法[15-17]。ELM在进行模型训练时会根据所设置的隐藏层节点数目自动生成随机数权重矩阵和偏置,这使得整个训练过程中没有权重迭代变化的存在,在保证网络具有良好泛化能力的同时,极大程度地提高了前向神经网络的学习速度,避免了基于梯度下降学习方法存在的许多问题[18]。
在实际应用中,ELM首先进行模型训练,训练数据包括目标真实结果和与之对应的若干影响因素。记录训练后的输入层权重、偏置以及隐藏层权重用于ELM的预测,预测时输入与训练数据结构相同的影响因素即可得到预测结果。具体地,ELM通过式(1)将输入数据映射到L维的随机特征空间:
(1)
其中:β=[β1,β2,…,βL]T表示处于隐藏层节点和输出节点间的隐藏层权重矩阵。h(x)=[h1(x),h2(x),…,hL(x)]表示L个隐藏节点对应于输入x的输出行向量,h(x)构成输入数据到隐藏层输出的映射矩阵H。ELM等式可以总结为:
Hβ=T,
(2)
(3)
其中H†表示矩阵H的广义逆矩阵。
一维PSD的输出信号微弱,且信号的传输过程中存在如器件自身误差、信号处理电路噪声以及实验条件影响等干扰,原始数据的有效信息被湮没于大量噪声中。ELM仅具有单隐层结构,而增大隐藏层节点数目并不能提高预测能力的上限,过多的隐藏层节点还可能造成模型的过拟合。因此通常需要多隐藏层结构或多层次训练来提取数据的潜在相关。Yu等[19]尝试用深度堆叠泛化的思想改进极限学习机并设计了一种深度堆栈极限学习机(DrELM)。该方法使用ELM作为单次训练模型,将ELM的预测结果与随机数矩阵相乘并激活后与原始数据相叠加作为下一层的输入,以此类推循环训练。DrELM提供了一种使用ELM进行多层训练的新思路,并提升了模型预测能力。本文对ELM的多层训练结构在迭代的实现方式上进行了改进,进一步提升了算法的预测精度。
受控制理论中“反馈”思想和深度迭代学习思想的启发[20-21],本文提出了一种基于经典ELM的反馈堆叠学习算法(FsELM),在保持ELM快速训练和优秀泛化能力的同时,提升了预测结果的准确性并具有良好的鲁棒性,实现了PSD信号有效信息的深度提取。该学习算法将单次训练后的结果与目标真值再次做差,通过随机映射、核函数激活以及合适的反馈因子,与相邻最近的ELM训练块的输入数据叠加作为下一层训练的输入,模型的训练结构如图1所示。FsELM算法充分利用了目标真实值,而非单纯地利用单层训练结果作为反馈项,使原始数据的迭代变化更有意义。
图1 FsELM反馈训练结构示意图
在实际应用中,选取一个包含m组的训练集(xi,ti),其中xi∈Rd(d表示相关影响因素的维数)表示特征向量,ti∈Rc(c表示目标真值维数)表示与xi相对应的目标真值。定义矩阵X为包含m个输入数据样本的矩阵,矩阵T为目标真值矩阵,即X=[x1,x2,…,xm]T,T=[t1,t2,…,tm]T,以此进行单层ELM的训练。训练可得一组初步的预测结果O=[o1,o2,…,om]T,该结果不会精确逼近目标真值,但会优于随机猜测。对于堆叠模型的实现,利用预测结果与真实结果的差值O-T作为反馈项,通过式(4)计算得到Xi+1作为下一层训练的输入(假定上一层训练的输入为Xi):
Xi+1=σ(Xi+α(Oi-T)Wi2),
(4)
其中:α为反馈因子,表示反馈信号与输出信号之比,Wi2∈Rc×d为服从正态分布的随机数矩阵。核函数σ(·)可为任意激活函数(如sigmoid函数、高斯函数、三角函数等)。反馈过程采用了与ELM类似的随机映射的思路,无需进行权重的更新,保证了算法运行过程的速率。
(5)
综合FsELM的训练和预测过程,绘制如图2所示的学习算法流程图。
图2 FsELM学习算法流程图Fig.2 Flowchart of FsELM algorithm
为证明本文所提出算法在预测性能上的提升,设计了基于一维PSD的激光三角位移检测实验并采集了相关数据,与传统的信号滤波方法以及经典学习算法、核函数处理的ELM及ELM的变体进行了比较。
PSD主要由单表面或双面附有电阻层的一个高阻抗半导体层构成,电阻层两端放置一对电极,用于输出位置信号。电阻层上的光敏区域是一个PN结,通过光电效应产生光电流。图3为PSD的剖面图,在N型高阻硅基底上设有P型电阻层,作为光电转换的活动区域,且两端设有一对输出电极。N型硅基底连接有公共电极。因此,除了表面的P型电阻层外,这与PIN型光电二极管的结构相同。
图3 PSD剖面示意图Fig.3 Diagrammatic profile of PSD
当有光束照射时,PSD上的不同位置就会产生与光强成比例的电荷,该电荷流经电阻层并被输出电极X1和X2收集为光电流,该光电流与入射位置和每个电极之间的距离成反比。假设PSD中点为原点,入射光位置与输出电极的光电流之间的关系式为:
IX1=IO·(LX/2-XA)/LX,
(6)
IX2=IO·(LX/2+XA)/LX,
(7)
(8)
(9)
其中:IO为总光电流IX2+IX1;IX1为电极X1的输出电流;IX2为电极X2的输出电流;LX表示阻抗长度;XA表示光点距PSD中点的距离。
激光三角法[22]是一种非接触式光电测量方法,由于其测量高效、准确和无损伤等优势被应用于位移、角度、振动等多类测量领域。其原理为:激光器发出的一束激光照射在待测物体平面上,接收物镜采集物面的漫反射光并在检测器上成像,该像的位置会随着物体表面沿入射光方向的位置变化而变化。通过像移和物体位移之间的关系式,可由像移大小计算出物体的实际位移。
根据激光三角法原理绘制出如图4所示的位移检测光路图,并设计了激光三角传感器。实验中,干涉仪镜组固定于被测物面一侧并放置在滑轨上,固定有镜组的一侧放置激光干涉仪,另一侧为激光三角传感器,检测模型如图5所示,现场实验如图6所示。开始实验前移动被测物面直到PSD输出为0,同时将激光干涉仪调零。为了保证PSD的采集数据可以提供同一位置尽可能多的信息,设置传感器重复采集同一位置信号40次,并以激光干涉仪测得数据作为目标真值。实验时,将被测物面以10 μm左右的间隔平移约2 mm,分别记录每次移动后激光干涉仪和与之对应的传感器的输出。
图4 位移检测光路示意图Fig.4 Optical path of displacement detection
图5 位移检测模型示意图Fig.5 Displacement detection model
图6 位移检测现场示意图Fig.6 Displacement detection site
4.3.1 实验方法
实验采用一只激光三角传感器进行三次独立的位移测量实验(光斑从设定量程的一端间隔地遍历PSD光敏面至另一端算作一次独立实验)。根据前文的介绍,一次独立的实验采集约n=200组数据,数据集结构为X(n,40)和T(n,1)。采用4折交叉验证的方法进行最优模型和参数的评估,随机的将样本数据分为四部分,分别选取其中三部分作为训练集,其余为测试集,即每次独立实验进行4次模型预测。
FsELM模型网络的参数包括隐藏层节点个数L和模型深度k。其中,模型深度为1时,该算法模型等同于经典ELM。实验中设定α=0.1,激活函数为“sigmoid”函数,分别设置隐藏层个数为5~100(间隔为5),模型深度为1~9,共有180种组合。通过计算预测结果与目标真值的均方误差对预测精度进行定量的评估。均方误差(Mean Squared Error,MSE)的计算方法为:
(10)
其中:observed表示预测结果,predicted表示目标真值。每种组合下重复预测150次,计算MSE的均值和方差(方差用来评估学习算法的预测稳定度)。
表1 4折交叉验证结果与网络参数Tab.1 Results of 4-fold cross validation and network parameter
如表1所示为FsELM预测模型的4折交叉验证实验结果与对应的网络参数。分析可知,在进行三次独立实验中的多次预测结果相近,最优预测MSE的均值分别为1.25×10-5,2.51×10-5,1.1×10-5,计算最优隐层节点个数的均值为68,平均模型深度为6。如此设定FsELM模型的网络参数,并进行对比实验的验证。
4.3.2 对比实验
为评估算法性能,选择了具有代表性的传统滤波算法和经典学习算法进行了对比实验,并作出定性分析。
传统的数据处理方法包括数据预处理、滤波、最小二乘法拟合三个过程。预处理过程处理的对象是对同一位置的重复测量数据,分别采用自适应中值滤波(Adaptive Median Filter,AMF)[4]和直方图统计预处理(HS)[23]。
滤波过程采用小波滤波(Wavelet Filter,WF)[5]和巴特沃斯IIR低通滤波(IIR)[8]进行处理滤波参数如下:
(1)IIR:通带截止频率200π;阻带截止频率2 000π;通带衰减不大于1 dB,阻带衰减不小于8 dB;
(2)WF:利用小波“db5”对数据进行7层分解,将小波分解的前3层高频系数置零,后4层采用软阈值函数处理,设定阈值为0.014。
预处理和滤波方法两两组合为4种不同的处理方法,最后使用最小二乘法拟合真实位置曲线。
神经网络比较算法包括支持向量回归机(Support Vactor Regression,SVR)、原始ELM(ELM)[10]、核函数处理的ELM(K-ELM)、堆栈ELM(DrELM)[17]。参数设置如下:
(1)SVR:核函数选用径向基函数;惩罚系数为2.2;损失函数p的值为0.01;
(2)ELM,K-ELM,DrELM中隐层节点个数分别为5,4,5,其中DrELM模型深度为2。
表2 FsELM与其他数据处理方法的结果对比Tab.2 Comparison of results between FsELM and other digital processing methods (×10-4)
对比实验的结果如表2所示,分析实验数据可知:ELM,K-ELM和DrELM的处理效果与采用传统的预处理和滤波相结合的方法相近,而FsELM的预测结果更为精确。这是由于对同一位置进行重复测量的数据所受噪声干扰是随机的,传统的处理方法无法根据噪声的规律进行数据处理。FsELM算法能够获取噪声的潜在相关,在应对随机干扰时表现出更优异的性能。
同时,FsELM相比ELM,K-ELM和SVR,预测精度上有大幅提升,表明了堆叠训练结构在处理复杂回归问题时可获取更精确的结构信息,与DrELM的结果对比表明,与目标真值的偏差反馈更有助于模型对结构信息的学习。
4.3.3 时间复杂度分析
神经网络的时间复杂度正比于模型的运算次数,对于单隐层神经网络,时间复杂度可由式(11)表示:
Time~O(k(n1×L+L×n3)),
(11)
式中:k表示模型训练深度;L表示隐层节点个数;n1和n3分别代表输入样本个数和输出样本个数。对于相同数据集的预测,时间复杂度简化为O(k×L)。FsELM是一种堆叠式结构,理论上相比ELM等单层模型具有较高的复杂度,但FsELM使用ELM作为单层训练模型,保留了ELM无需迭代更新权重的优势,使得运算过程相比于其他神经网络模型更简便。本节在公共测试集中选取相同训练集和测试集且所有的算法保持原算法的参数设置以保证实验公平性,对4.3.2节中对比方法的数据处理时间进行统计。计算机硬件配置为Inter Core i7-4720HQ,2.6 GHz,8 G RAM,软件平台为MATLAB R2016a。
图7 模型运算时间对比Fig.7 Comparison of processing time of the models
如图7所示为不同数据处理模型的运算时间对比,所有模型均从数据输入后开始计时,至得出预测结果位止。分析可知FsELM模型的运算时间最短,相比SVR缩短了约0.031 s。
抗随机噪声干扰能力是评价滤波处理算法能力的重要指标。针对实际应用中的PSD采集信号具有样本数目有限、受随机噪声干扰而引起非线性度强等特点,本文提出一种基于经典ELM的反馈堆叠学习算法,FsELM,通过模型训练结果与真值的偏差构成反馈,从而构建了多层训练模型,实现了对数据潜在相关的学习和PSD信号有效信息的高精度提取,预测结果均方误差为1.4×10-5,相比SVR提高了57%,预测精度为0.78%。FsELM在保持ELM和良好泛化能力的同时,兼具快速学习的优势,相比其他数据处理算法具有更快的运算速度。