賈克斌,王彥明,楊加春,劉鵬宇
(1.北京工業(yè)大學(xué)信息學(xué)部,北京 100124;2.先進(jìn)信息網(wǎng)絡(luò)北京實驗室,北京 100124;3.北京工業(yè)大學(xué)計算智能與智能系統(tǒng)北京市重點實驗室,北京 100124;4.天津華云天儀特種氣象探測技術(shù)有限公司,天津 300392)
隨著全球氣候變化,高空探測在氣候預(yù)測中越來越重要.氣象探測是獲取大氣變化信息的重要手段,在高空探測過程中,氣壓值是重要的參數(shù)之一,氣壓傳感器測量精度直接影響到最終探測結(jié)果.在氣象測量過程中,氣壓傳感器受外界環(huán)境影響會表現(xiàn)出非線性特性,其原因有多方面: 1) 由于傳感器自身材質(zhì)、設(shè)計方案、制作流程等條件的限制,非線性特征不能完全消除[1];2) 傳感器標(biāo)定環(huán)境存在干擾,使傳感器特性點發(fā)生漂移,測量結(jié)果產(chǎn)生偏差,從而造成非線性[2].
傳感器設(shè)計原因造成的非線性誤差在其出廠時已經(jīng)存在,無法進(jìn)行優(yōu)化,因此,環(huán)境干擾是影響傳感器測量精度的主要因素,通過對傳感器進(jìn)行標(biāo)校實驗,采集干擾因素來進(jìn)行誤差補償,成為傳感器校正的主流思路[3].
為改善傳感器工作性能,實現(xiàn)非線性校正,相關(guān)科研人員進(jìn)行了大量的實驗,通過對傳感器采集的數(shù)據(jù)進(jìn)行分析來設(shè)計相應(yīng)的補償機制,從而實現(xiàn)傳感器的校正.文獻(xiàn)[4]采用非線性積分器進(jìn)行相位校正,提高了控制系統(tǒng)的穩(wěn)定性;文獻(xiàn)[5]采用串并聯(lián)電阻網(wǎng)絡(luò)對熱敏傳感器進(jìn)行校正,使溫度傳感器測量精度顯著提升.然而,通過硬件電路進(jìn)行校正,成本高、精度低、集成復(fù)雜,不利于實際生產(chǎn)應(yīng)用[5-7].隨著計算機技術(shù)的發(fā)展,通過軟件算法對傳感器進(jìn)行誤差補償來實現(xiàn)非線性校正成為主要的研究方法.軟件補償主要有查表法和曲線擬合法.文獻(xiàn)[8]通過查表法對高分2號圖像業(yè)務(wù)化大氣進(jìn)行校正,將誤差降低到0.8%;文獻(xiàn)[9]通過最小二乘法對磁場傳感器進(jìn)行校正,達(dá)到了較高的精度.查表法忽略了標(biāo)校點的測量誤差,擬合法只能反映傳感器整體趨勢,都是幾個離散測量點對傳感器整體模型的逼近,不能滿足復(fù)雜情況下的非線性擬合.
神經(jīng)網(wǎng)絡(luò)技術(shù)在傳感器非線性校正方面已取得一定成果.文獻(xiàn)[10]采用反向傳播(back propagation,BP)神經(jīng)網(wǎng)絡(luò)法對角度傳感器進(jìn)行標(biāo)校,有效地減少了測量誤差,提高了測量的準(zhǔn)確性.文獻(xiàn)[11]通過運用BP神經(jīng)網(wǎng)絡(luò)對顏色傳感器進(jìn)行標(biāo)定,提升了傳感器感光精度.但是,傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)存在局部最小值、收斂速度慢等缺點,仍需要進(jìn)一步優(yōu)化以適應(yīng)氣壓傳感器的非線性校正.
本文以氣壓傳感器為例,在溫度、氣壓等外界環(huán)境影響下,通過標(biāo)校設(shè)備對氣壓傳感器進(jìn)行數(shù)據(jù)采集與標(biāo)校實驗.對傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化,將小波函數(shù)作為神經(jīng)網(wǎng)絡(luò)隱藏層的激活函數(shù),并引入Levenberg-Marquardt(LM)算法對各層參數(shù)進(jìn)行更新,得到了氣壓傳感器非線性校正的模型.實驗證明,所提出的方法在模型精度、收斂速度方面均優(yōu)于傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò),可以更加快速、準(zhǔn)確地完成氣壓傳感器的非線性校正,滿足了高空探測的需要,具有較高的實用價值.
氣壓傳感器的非線性誤差由其物理特性和環(huán)境干擾組成[12-14],前者由傳感器的物理材料和設(shè)計方案造成,使傳感器具有滯后性、非線性,后者由傳感器的工作電路、外界環(huán)境造成,使其受到噪聲干擾,對傳感器特性造成影響,產(chǎn)生測量誤差[15-17].氣壓傳感器系統(tǒng)模型如圖1所示[18].
圖1 氣壓傳感器系統(tǒng)非線性模型Fig.1 Nonlinear model of pressure sensor system
氣壓傳感器模型為
y=f(x,t)+v
(1)
式中:y為傳感器輸出的測量氣壓值;x為被測實際環(huán)境中的氣壓;t表示環(huán)境變量,如溫度、濕度等;v為傳感器系統(tǒng)受到的干擾噪聲.
函數(shù)f(x,t)是一未知的復(fù)雜函數(shù),該函數(shù)與氣壓傳感器的特性以及外界環(huán)境因素有關(guān)[18].由氣壓傳感器特性可得,對于特定的環(huán)境變量t,x與y是一一對應(yīng)關(guān)系,則存在某一特殊函數(shù)X=g(y)=g(f(x,t))=x,即尋找函數(shù)g使傳感器經(jīng)過校正后輸出值能準(zhǔn)確反映所測氣壓大小[19-21],其校正原理如圖2所示.
圖2 氣壓傳感器校正原理Fig.2 Calibration principle of pressure sensor
在神經(jīng)網(wǎng)絡(luò)中,最常用的是如圖3所示的BP神經(jīng)網(wǎng)絡(luò),其計算量相對較小,非線性擬合程度較高[22-24].BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程可分為輸入數(shù)據(jù)正向計算和誤差反向傳播2個階段.
圖3 BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 BP neural network structure
在正向計算過程中,從輸入層輸入數(shù)據(jù),通過層間連接權(quán)重加權(quán)求和并將結(jié)果傳遞到隱藏層的激活函數(shù)中,最后經(jīng)過激活函數(shù)非線性映射傳遞到輸出層.如果在輸出層不能獲得預(yù)期的輸出值,則執(zhí)行反向傳播,通過修改神經(jīng)元之間的連接權(quán)重將誤差損失最小化[25].
傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)采用梯度下降法進(jìn)行參數(shù)更新,其輸入層和隱藏層網(wǎng)絡(luò)參數(shù)更新為
(2)
Δβh=-αeh
(3)
隱藏層和輸出層網(wǎng)絡(luò)參數(shù)更新為
ΔWhj=αgjHh=α(Yj-Y′j)Yj(1-Y′j)Hh
(4)
Δβj=-αgj
(5)
式中:α為學(xué)習(xí)率;gj和eh為誤差信息;Xi為輸入層第i個神經(jīng)元輸入;Hh為隱藏層第h個神經(jīng)元輸出;Y′j為輸出層第j個神經(jīng)元輸出;Yj為對應(yīng)的真實值[26-29].
鑒于BP神經(jīng)網(wǎng)絡(luò)在非線性擬合中存在對初始權(quán)重敏感、收斂速度慢等缺點,本文利用LM法對傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化,以提高網(wǎng)絡(luò)的收斂速度,各層權(quán)重更新表達(dá)式為
(6)
式中:I為單位矩陣;u為比例因子;E為網(wǎng)絡(luò)預(yù)測誤差;J為雅可比矩陣,該矩陣包含預(yù)測誤差對網(wǎng)絡(luò)各層參數(shù)的一階導(dǎo)數(shù),公式為
(7)
LM算法根據(jù)網(wǎng)絡(luò)誤差變化對權(quán)值進(jìn)行更新,如果模型權(quán)值更新后網(wǎng)絡(luò)預(yù)測誤差增加,則u可能太小,導(dǎo)致LM算法接近高斯- 牛頓法,并且存在發(fā)散的可能性.與此同時,u進(jìn)行放大以接近梯度下降法.相反,如果誤差較小,則該算法處于收斂階段,此時u變小并將LM算法近似為高斯- 牛頓法,以加速收斂[30-32].使用LM算法可以解決傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)中極值點附近精度低和收斂慢的問題,使網(wǎng)絡(luò)模型參數(shù)更快更準(zhǔn)確地逼近誤差最小值[33].
小波變換是分析信號的一種重要方法,與傅里葉變換相比,排除了穩(wěn)態(tài)信號的制約,能更好地滿足實際工程應(yīng)用,并且起到時域分析的效果.小波變換以衰減的小波基函數(shù)為基礎(chǔ),以不同的分辨率對數(shù)據(jù)進(jìn)行處理,實現(xiàn)對擬合函數(shù)的逼近.
在傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)中,隱藏層選擇Sigmoid函數(shù)作為激活函數(shù)進(jìn)行非線性變換,其輸出值范圍為[-1,1],函數(shù)形狀如圖4所示.對于氣壓傳感器這一非線性的元器件,Sigmoid函數(shù)映射能力較差,無法精確地完成校正.
圖4 Sigmoid函數(shù)圖形Fig.4 Sigmoid function graph
以小波函數(shù)替換原有的Sigmoid函數(shù)作為隱藏層節(jié)點的激活函數(shù),通過一系列小波母函數(shù)的組合來逼近測量值,達(dá)到氣壓傳感器校正的目的.
本文選擇Morlet小波作為網(wǎng)絡(luò)隱藏層的激活函數(shù),其在降水量分析、大氣環(huán)境預(yù)測、激光器校準(zhǔn)[34-39]等方面取得顯著的成果.Morlet小波函數(shù)的表達(dá)式為
(8)
式中:C為重構(gòu)時的歸一化常數(shù),取值為1;u用來控制小波函數(shù)的形狀.圖5為不同u值對應(yīng)的Morlet小波函數(shù)形狀對比圖.通過實驗確定u值,從而確定Morlet小波函數(shù)形狀以達(dá)到最佳的校正效果,獲得最高的傳感器測量精度.
圖5 u值與Morlet函數(shù)形狀對比Fig.5 Comparison of the u value and the Morlet function
為了測試神經(jīng)網(wǎng)絡(luò)對氣壓傳感器的非線性校正效果,需首先獲得訓(xùn)練樣本數(shù)據(jù).因此,需要利用標(biāo)準(zhǔn)設(shè)備對氣壓傳感器進(jìn)行標(biāo)校實驗,氣壓傳感器的測量值不僅與大氣氣壓有關(guān)而且與所處溫度有關(guān),需采用控制變量法進(jìn)行標(biāo)校.
根據(jù)高空氣象探測規(guī)范,氣壓測量值為500~1 100 hPa時,傳感器測量誤差|ε|≤1 hPa;氣壓測量值為5~500 hPa時,傳感器測量誤差|ε|≤0.7 hPa[40-42].因此,標(biāo)校氣壓范圍為5~1 100 hPa,根據(jù)高空探測需要,標(biāo)校溫度范圍為-30~40 ℃.在35 ℃下,部分采集數(shù)據(jù)如表1所示.
圖6所示為在不同溫度下氣壓傳感器對應(yīng)的測量誤差分布圖.由此圖可以看出,該氣壓傳感器存在較大溫漂效應(yīng),溫度對傳感器測量結(jié)果影響較大,通過神經(jīng)網(wǎng)絡(luò)進(jìn)行校正后可以克服溫度對氣壓傳感器的影響,使測量值更加接近真實值.
表1 氣壓傳感器采集的數(shù)據(jù)
圖6 不同溫度下傳感器測量誤差分布Fig.6 Distribution of sensor measurement error at different temperatures
根據(jù)通用近似定理,只要具備單個隱藏層和有限個神經(jīng)元的神經(jīng)網(wǎng)絡(luò),就能以任意精度擬合任意的函數(shù).由此選用3層BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,由氣壓傳感器測量數(shù)據(jù)可知,影響因素為溫度、氣壓2個變量,所以輸入層有2個神經(jīng)元;隱藏層神經(jīng)元的數(shù)目對網(wǎng)絡(luò)性能有著重要的影響,通過對不同神經(jīng)元數(shù)目進(jìn)行實驗以確定合適的隱藏層結(jié)構(gòu)[20];經(jīng)過網(wǎng)絡(luò)計算后,使其輸出對應(yīng)的標(biāo)準(zhǔn)氣壓,因此,輸出層有1個神經(jīng)元.將氣壓傳感器的測量氣壓、測量溫度輸入到BP神經(jīng)網(wǎng)絡(luò)中,經(jīng)過神經(jīng)網(wǎng)絡(luò)推理過程,使其輸出對應(yīng)的標(biāo)準(zhǔn)氣壓以達(dá)到傳感器校正的目的.
對于表1所采集的不同溫度范圍、不同壓力范圍的數(shù)據(jù),一共有800條,為了使訓(xùn)練結(jié)果能夠正確反映樣本的內(nèi)在規(guī)律,同時又為了避免出現(xiàn)過擬合,將所有的數(shù)據(jù)按照8∶2劃分為訓(xùn)練集和測試集,由訓(xùn)練集數(shù)據(jù)對網(wǎng)絡(luò)進(jìn)行訓(xùn)練,使網(wǎng)絡(luò)模型參數(shù)達(dá)到最優(yōu),用測試集對最終網(wǎng)絡(luò)進(jìn)行測試以檢測模型的泛化能力[43-47].
由隨機函數(shù)產(chǎn)生[0~1]的各層網(wǎng)絡(luò)初始權(quán)重值,偏置值設(shè)置為0,其他參數(shù)設(shè)置如表2所示.
表2 網(wǎng)絡(luò)訓(xùn)練參數(shù)設(shè)置
為了比較隱藏層神經(jīng)元個數(shù)對標(biāo)校精度的影響,通過設(shè)置不同隱藏層神經(jīng)元個數(shù)來進(jìn)行對比實驗.其中激活函數(shù)均采用Sigmoid函數(shù),采用梯度下降法訓(xùn)練10 000次,統(tǒng)計各個神經(jīng)元下對應(yīng)的均方根誤差(mean squared error,MSE)σ,其實驗結(jié)果如表3所示,神經(jīng)元個數(shù)與標(biāo)校誤差變化如圖7所示.
表3 神經(jīng)元個數(shù)與均方根誤差
圖7 神經(jīng)元個數(shù)與均方根誤差Fig.7 Amount of neurons and MSE
由圖7可以看出,當(dāng)隱藏層神經(jīng)元個數(shù)較少時,MSE隨著神經(jīng)元個數(shù)的增加而降低.由表3可得,當(dāng)神經(jīng)元節(jié)點超過20個時,隨著神經(jīng)元個數(shù)的增加,MSE基本趨于穩(wěn)定,網(wǎng)絡(luò)校正能力達(dá)到上限.當(dāng)繼續(xù)增加神經(jīng)元個數(shù),網(wǎng)絡(luò)模型復(fù)雜度增加,需要更長的訓(xùn)練周期才能達(dá)到最終收斂.由此可知,將網(wǎng)絡(luò)隱藏層神經(jīng)元個數(shù)選為20可以達(dá)到標(biāo)校精度與模型復(fù)雜度之間的平衡,快速、準(zhǔn)確地實現(xiàn)氣壓傳感器的非線性校正.
為了比較LM算法與傳統(tǒng)梯度下降法對網(wǎng)絡(luò)收斂速度的影響,隱藏層函數(shù)均采用Sigmoid函數(shù),隨機產(chǎn)生10組初始化權(quán)重,分別采用2種網(wǎng)絡(luò)參數(shù)優(yōu)化算法進(jìn)行訓(xùn)練,記錄訓(xùn)練過程中σ≤0.7時所需訓(xùn)練周期,其實驗結(jié)果如表4所示.訓(xùn)練過程中,梯度下降法損失值變化過程如圖8所示,LM算法如圖9所示.
表4 收斂速度性能比較
圖8 梯度下降法損失變化Fig.8 Loss change of gradient descent method
圖9 LM算法損失變化Fig.9 Loss change of LM method
由表4可得,對于隨機的網(wǎng)絡(luò)權(quán)重初始值,梯度下降法所需訓(xùn)練周期有較大差異,對權(quán)重初始值敏感.由圖8可以看出,采用梯度下降法進(jìn)行網(wǎng)絡(luò)訓(xùn)練,在收斂過程中存在抖動現(xiàn)象,不能直接逼近最小值.相比之下,LM算法能夠克服梯度下降法的不足,快速準(zhǔn)確地完成收斂.基于LM算法的平均訓(xùn)練周期為6次左右,遠(yuǎn)快于傳統(tǒng)BP算法.由此可知,LM算法能夠克服梯度下降法的不足,更加快速地進(jìn)行收斂,提高了網(wǎng)絡(luò)的穩(wěn)定性.
由圖5可知,對于Morlet小波函數(shù),不同u值對應(yīng)不同的小波形狀,通過實驗來測試不同u值對最終標(biāo)校結(jié)果的影響以確定最佳的激活函數(shù).
將相同的測試數(shù)據(jù)輸入到BP神經(jīng)網(wǎng)絡(luò)中,經(jīng)過訓(xùn)練使網(wǎng)絡(luò)達(dá)到最終收斂,計算經(jīng)過校正后的數(shù)據(jù)與標(biāo)準(zhǔn)測量值之間的MSE,其實驗結(jié)果如表5所示.
由實驗結(jié)果可知,當(dāng)u=8時,標(biāo)校誤差存在極小值,σ=0.28,即將激活函數(shù)u值設(shè)置為8可得最佳校正效果.
神經(jīng)網(wǎng)絡(luò)的預(yù)測精度是評價其性能的重要指標(biāo),為了比較Sigmoid函數(shù)與小波函數(shù)對最終標(biāo)校結(jié)果的影響,采用梯度下降法對網(wǎng)絡(luò)進(jìn)行訓(xùn)練,部分標(biāo)校結(jié)果如表6所示.
表5 u值與均方根誤差關(guān)系
表6 標(biāo)校精度對比
通過表6可以看出,2種BP神經(jīng)網(wǎng)絡(luò)模型都能夠有效地對氣壓傳感器進(jìn)行校正,使MSE在規(guī)定的范圍內(nèi).由整體MSE可知,采用小波函數(shù)作為激活函數(shù)比Sigmoid函數(shù)預(yù)測精度更高,σ降低了0.4,使氣壓傳感器達(dá)到了更高的測量精度,更利于高空氣象探測.
為進(jìn)一步分析Sigmoid函數(shù)與小波函數(shù)對氣壓傳感器標(biāo)校結(jié)果的影響,繪制了圖10所示的氣壓傳感器測量誤差曲線以及經(jīng)過2種激活函數(shù)校正后對該誤差曲線的逼近情況.由圖可知,與Sigmoid函數(shù)相比,采用小波函數(shù)作為激活函數(shù)具有更好的逼近能力,能更準(zhǔn)確地進(jìn)行誤差補償,提高測量精度,實現(xiàn)氣壓傳感器校正.
圖10 誤差補償對比Fig.10 Contrast of error compensation
圖11所示為氣壓傳感器校正前特性曲面網(wǎng)格圖.可以看出,由于氣壓傳感器非線性誤差的存在,導(dǎo)致特性曲面發(fā)生彎曲,測量精度降低.
圖11 校正前特性曲面網(wǎng)格Fig.11 Characteristic surface mesh before correction
氣壓傳感器采集的數(shù)據(jù)經(jīng)過本文提出的校正算法后其特性曲面如圖12所示.由圖11、12對比可得,經(jīng)過校正后,氣壓傳感器特性曲面更加平滑,有效地減少了氣壓傳感器的非線性誤差,提高了氣壓傳感器的測量精度.
圖12 校正后特性曲面網(wǎng)格Fig.12 Characteristic surface mesh after correction
為了測試所建立模型的泛化能力以及網(wǎng)絡(luò)是否出現(xiàn)過擬合,選取在不同溫度下的不同氣壓值作為測試集數(shù)據(jù)進(jìn)行模型檢驗.其部分測試結(jié)果如表7所示.
由表7可知,無論對于傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)還是基于小波函數(shù)的BP神經(jīng)網(wǎng)絡(luò),經(jīng)過神經(jīng)網(wǎng)絡(luò)校正后,傳感器測量精度都得到了顯著提升.由實驗結(jié)果可以看出,測試集的平均誤差與訓(xùn)練集接近,沒有過擬合現(xiàn)象發(fā)生,基于小波函數(shù)的BP神經(jīng)網(wǎng)絡(luò)校正值比傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)校正值誤差更小,更接近實際值,更能準(zhǔn)確地實現(xiàn)氣壓傳感器的非線性校正,具有更高的精度以及泛化能力.
表7 測試集標(biāo)校精度對比
1) 針對氣壓傳感器輸入輸出的非線性問題,通過引入神經(jīng)網(wǎng)絡(luò)校正環(huán)節(jié)進(jìn)行標(biāo)校,實現(xiàn)了氣壓傳感器的校正,滿足了高空探測的要求.
2) 針對傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)收斂速度慢、對初始權(quán)值敏感、容易陷入局部極小值的缺點,引入LM優(yōu)化算法,使網(wǎng)絡(luò)收斂速度明顯加快.
3) 與Sigmoid函數(shù)相比,通過引入小波函數(shù),使標(biāo)校精度進(jìn)一步提高,推廣能力進(jìn)一步加強,能夠更加精確地測量高空氣壓.