崔恩培,芶嵩淋,紀(jì) 越
(天津工業(yè)大學(xué) 電氣工程與自動(dòng)化學(xué)院,天津 300387)
甲烷(天然氣)、乙烷、丙烷、氨氣和乙醇是我們生活中常常會(huì)接觸到的幾種氣體,這些氣體在達(dá)到一定濃度后均有一定的危險(xiǎn),存在安全隱患。而甲烷、乙烷、丙烷均為無(wú)色無(wú)味氣體,難以察覺(jué),且三者均為易燃?xì)怏w,濃度高了容易發(fā)生火災(zāi)和爆炸。氨氣本身就為有毒氣體,有強(qiáng)烈的刺激味,能灼傷皮膚、眼睛、呼吸器官的黏膜,人如果吸入過(guò)多,則會(huì)引起肺腫脹,甚至死亡。而廁所、建筑工地用的混凝土添加劑中常常有氨氣散發(fā),如果某處通風(fēng)不好導(dǎo)致氣體大量聚集,極易發(fā)生危險(xiǎn)情況。乙醇在生活中更常見(jiàn),人們常不以為意,可是乙醇蒸汽和空氣能形成爆炸性混合物,極易形成安全隱患。為了避免這些氣體所帶來(lái)的安全隱患,如何能快速且準(zhǔn)確檢測(cè)上述氣體成為亟待解決的問(wèn)題。
長(zhǎng)期以來(lái),為了避免上述氣體帶來(lái)的隱患,人們努力保持室內(nèi)良好通風(fēng),暫時(shí)并無(wú)相關(guān)家用電子鼻檢測(cè)產(chǎn)品出現(xiàn)。電子鼻只被用在工業(yè)生產(chǎn)、惡臭檢測(cè)、食品檢測(cè)等方面。電子鼻是由有選擇性的化學(xué)傳感器陣列和適當(dāng)?shù)淖R(shí)別方法組成的儀器,能夠獲取氣體的數(shù)據(jù)信息,有效識(shí)別各類簡(jiǎn)單氣體包括無(wú)色無(wú)味的人類難以察覺(jué)的氣體。目前的氣體傳感器技術(shù)已經(jīng)有足夠精度來(lái)檢測(cè)生活中這些有可能帶來(lái)安全隱患的氣體,且具有高靈敏度、可靠、可重復(fù)等特點(diǎn),在生活用危險(xiǎn)氣體檢測(cè)方面有很大潛力。
以前,對(duì)氣體數(shù)據(jù)進(jìn)行模式識(shí)別的方法主要靠支持向量機(jī)或BP 神經(jīng)網(wǎng)絡(luò),可是近年來(lái),隨著深度學(xué)習(xí)的發(fā)展,許多改善神經(jīng)網(wǎng)絡(luò)的方法被提出并得到了廣泛認(rèn)可,在大數(shù)據(jù)樣本的情況下BP 神經(jīng)網(wǎng)絡(luò)的表現(xiàn)已遠(yuǎn)超支持向量機(jī)。
目前,國(guó)內(nèi)外已有學(xué)者將改進(jìn)的BP 神經(jīng)網(wǎng)絡(luò)用于氣體檢測(cè),胡曉楠、辜文祥先后研究了利用深度學(xué)習(xí)補(bǔ)償電子鼻傳感器漂移來(lái)提高識(shí)別率[1-2],但還沒(méi)有針對(duì)上述生活中常見(jiàn)的且一定濃度后具有安全隱患的氣體進(jìn)行識(shí)別研究,因此在本文中,我們用電子鼻對(duì)甲烷、乙烷、丙烷、氨氣和乙醇進(jìn)行檢測(cè),并從激勵(lì)函數(shù)和參數(shù)優(yōu)化算法兩個(gè)方面探討不同的BP 神經(jīng)網(wǎng)絡(luò)對(duì)識(shí)別效果的影響。
在本實(shí)驗(yàn)中,我們自己選用了來(lái)自日本FIGARO 公司的6 款氣體傳感器及其信號(hào)調(diào)理和數(shù)據(jù)采集電路構(gòu)成用于本實(shí)驗(yàn)的電子鼻系統(tǒng)。6 個(gè)氣體傳感器均為金屬氧化物半導(dǎo)體型傳感器,對(duì)氣體敏感的部分由集成的加熱器以及在氧化鋁基板上的金屬氧化物半導(dǎo)體構(gòu)成。當(dāng)空氣中有被測(cè)氣體存在時(shí),該氣體的濃度越高,傳感器的電導(dǎo)率也就越高。我們進(jìn)而將電信號(hào)轉(zhuǎn)換為可解釋的數(shù)據(jù)模型。不同傳感器最為敏感的對(duì)象氣體如表1 所示,TGS2603 的主要敏感氣體是三甲胺和甲硫醇,其對(duì)氨氣有較高的靈敏度。
表1 氣體傳感器陣列
本實(shí)驗(yàn)所用氣體樣本采用大連大特氣體公司生產(chǎn)的標(biāo)準(zhǔn)氣體,包括氨氣、甲烷、乙烷、丙烷和乙醇。實(shí)驗(yàn)所用氣體及其濃度如表2 所示。
表2 實(shí)驗(yàn)所用氣體濃度
將電子鼻置于兩側(cè)有開(kāi)口的氣室內(nèi),從其中一側(cè)勻速通入氣體樣本,氣體從另一側(cè)開(kāi)口流出,同時(shí)電子鼻系統(tǒng)將采集到的數(shù)據(jù)發(fā)送至上位機(jī),每0.5 s 采樣一次,獲取足夠的氣體數(shù)據(jù)。更換氣體樣本時(shí)先通入600 s 的空氣,確保上次實(shí)驗(yàn)氣體完全排除后再通入新被測(cè)氣體的樣本。最后將得到的數(shù)據(jù)進(jìn)行標(biāo)注和清洗,實(shí)際得到有效數(shù)據(jù)10 950 組,隨機(jī)取7 950 組為訓(xùn)練數(shù)據(jù),3 000 組為測(cè)試數(shù)據(jù),處理完成后利用神經(jīng)網(wǎng)絡(luò)算法進(jìn)行識(shí)別訓(xùn)練和測(cè)試。
神經(jīng)網(wǎng)絡(luò)是一種由大量的節(jié)點(diǎn)(或稱“神經(jīng)元”)和之間相互聯(lián)接構(gòu)成的運(yùn)算模型。每個(gè)節(jié)點(diǎn)代表一種特定的非線性輸出函數(shù),稱為激勵(lì)函數(shù)。神經(jīng)網(wǎng)絡(luò)的訓(xùn)練情況通過(guò)定義好的損失函數(shù)來(lái)進(jìn)行評(píng)估,BP 算法則是對(duì)網(wǎng)絡(luò)預(yù)測(cè)值和期望值的差值進(jìn)行反向傳播優(yōu)化網(wǎng)絡(luò)權(quán)重參數(shù)的算法,盡量讓網(wǎng)絡(luò)的損失函數(shù)輸出值達(dá)到最小。
本文采用Xavier 方法[3]初始化神經(jīng)網(wǎng)絡(luò)參數(shù),利用擁有2 個(gè)隱含層的深層BP 神經(jīng)網(wǎng)絡(luò)對(duì)危險(xiǎn)氣體進(jìn)行識(shí)別。在第一隱含層25 個(gè)神經(jīng)元,第二隱含層12 個(gè)神經(jīng)元,整個(gè)訓(xùn)練集分為50 個(gè)Minibatch 的情況下訓(xùn)練1 000 代,即遍歷1 000次訓(xùn)練集進(jìn)行訓(xùn)練,同時(shí)設(shè)學(xué)習(xí)速率為0.000 2,用Softmax loss 函數(shù)作為損失函數(shù)評(píng)估神經(jīng)網(wǎng)絡(luò)。
在傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)中,常用Sigmoid 函數(shù)作為神經(jīng)網(wǎng)絡(luò)的激勵(lì)函數(shù),并利用梯度下降法來(lái)優(yōu)化神經(jīng)網(wǎng)絡(luò)。然而隨著Jarrett 等人[4]利用ReLU 作激活函數(shù)使用,Kingma D 等人[5]利用Adam 算法來(lái)優(yōu)化神經(jīng)網(wǎng)絡(luò),ReLU 函數(shù)和Adam 的優(yōu)勢(shì)顯現(xiàn)出來(lái)。本文采用ReLU函數(shù)作為神經(jīng)網(wǎng)絡(luò)的激勵(lì)函數(shù),且采用Adam 算法來(lái)優(yōu)化神經(jīng)網(wǎng)絡(luò)。
2.3.1 激勵(lì)函數(shù)
激勵(lì)函數(shù)讓神經(jīng)網(wǎng)絡(luò)的輸出變?yōu)榉蔷€性函數(shù)。傳統(tǒng)的Sigmoid 函數(shù)是將輸入值歸一化到(0,1)之間。Sigmoid函數(shù)圖像如圖1 所示。Sigmoid 函數(shù)公式為:
圖1 Sigmoid 函數(shù)圖形
在Sigmoid 函數(shù)中,如果輸入值較大或較小,輸出的值會(huì)非常接近于1 或0,也就是在Sigmoid 函數(shù)的輸入較大或較小時(shí),它的輸出變化會(huì)非常小,導(dǎo)致這部分函數(shù)的導(dǎo)數(shù)非常接近于0,而人工神經(jīng)網(wǎng)絡(luò)在反向傳播時(shí),損失是以導(dǎo)數(shù)的形式不斷向上一層傳遞以調(diào)整權(quán)重優(yōu)化參數(shù)。所以如果導(dǎo)數(shù)無(wú)限接近于0,參數(shù)優(yōu)化就會(huì)非常慢,發(fā)生梯度消失現(xiàn)象。ReLU 函數(shù)在輸入小于0 時(shí)輸出值恒為0,在輸入大于0 時(shí),輸出線性增長(zhǎng)。ReLU 函數(shù)圖像如圖2 所示。ReLU 函數(shù)公式為:
圖2 ReLU 函數(shù)圖形
ReLU 函數(shù)在其輸入小于0 時(shí)輸出為0,大于0 時(shí)輸出成線性增長(zhǎng)。所以理論上ReLU 函數(shù)不會(huì)在反向傳播時(shí)出現(xiàn)梯度消失的情況,學(xué)習(xí)效果會(huì)更好。同時(shí)ReLU 函數(shù)計(jì)算簡(jiǎn)單,未涉及指數(shù)運(yùn)算,在一定程度上能縮短網(wǎng)絡(luò)的訓(xùn)練時(shí)間。
2.3.2 優(yōu)化算法
優(yōu)化算法的功能是通過(guò)改善訓(xùn)練方式,最小化損失函數(shù)。梯度下降法是為了找到網(wǎng)絡(luò)中最優(yōu)的權(quán)重參數(shù),使網(wǎng)絡(luò)損失最小。就是通過(guò)對(duì)函數(shù)求導(dǎo)得到梯度方向,然后沿梯度下降的方向按一定的步長(zhǎng)求解極小值的過(guò)程。梯度下降法公式為:
式(3)中:η為學(xué)習(xí)率(步長(zhǎng))。
在梯度下降法中,權(quán)重更新的快慢是由學(xué)習(xí)率η決定的,學(xué)習(xí)率是一個(gè)固定的值,如果學(xué)習(xí)率太小則訓(xùn)練太慢,如果學(xué)習(xí)率太大則不容易收斂到最優(yōu)值。在訓(xùn)練神經(jīng)網(wǎng)絡(luò)時(shí),人們更希望對(duì)經(jīng)常出現(xiàn)的數(shù)據(jù)使用小的學(xué)習(xí)率,而對(duì)罕見(jiàn)的數(shù)據(jù)使用較大的學(xué)習(xí)率。
Adam 算法根據(jù)損失函數(shù)對(duì)每個(gè)參數(shù)的梯度的一階矩估計(jì)和二階矩估計(jì)動(dòng)態(tài)調(diào)整針對(duì)于每個(gè)參數(shù)的學(xué)習(xí)速率。Adam 算法也是基于梯度下降的方法,但是每次迭代參數(shù)的學(xué)習(xí)步長(zhǎng)都有一個(gè)確定的范圍,不會(huì)因?yàn)楹艽蟮奶荻葘?dǎo)致很大的學(xué)習(xí)步長(zhǎng),參數(shù)的值比較穩(wěn)定。Adam 算法的過(guò)程如下:
Adam 算法在優(yōu)化過(guò)程中利用衰減系數(shù)β1計(jì)算了梯度的平均值,又利用β2計(jì)算了梯度平方的均值,在此基礎(chǔ)上實(shí)現(xiàn)學(xué)習(xí)率的動(dòng)態(tài)調(diào)節(jié),理論上可以達(dá)到不同參數(shù)具有不同學(xué)習(xí)率的目的,提高網(wǎng)絡(luò)的準(zhǔn)確率和訓(xùn)練速度。
在本實(shí)驗(yàn)中設(shè)β1為0.9,設(shè)β2為0.999,設(shè)ε為10-8.
電子鼻對(duì)不同氣體的響應(yīng)變化如圖3 所示。
圖3 不同氣體的響應(yīng)曲線
從圖3 中可以看出,不同傳感器對(duì)不同氣體的響應(yīng)均有差別。圖3(b)TGS2611 的數(shù)值從1 800 升至2 500.圖3(e)中,TGS2620 的數(shù)值明顯升高至接近3 000.在上述實(shí)驗(yàn)方法和條件下,將兩種激勵(lì)函數(shù)和兩種優(yōu)化算法兩兩組合,通過(guò)損失函數(shù)梯度下降的情況和它們分別在訓(xùn)練集和測(cè)試集上的成功率來(lái)判斷人工神經(jīng)網(wǎng)絡(luò)的訓(xùn)練情況。不同模型的梯度下降過(guò)程如圖4 所示。不同模型在訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)上的識(shí)別準(zhǔn)確率如表3 所示。
圖4 不同模型的梯度下降過(guò)程(Learning rate=0.000 2)
表3 不同模型在訓(xùn)練集和測(cè)試集上的準(zhǔn)確率
如圖4(a),在1 000 代的迭代后,使用sigmoid 函數(shù)和梯度下降法訓(xùn)練的網(wǎng)絡(luò)損失僅下降到1.3 左右,且仍有明顯的下降趨勢(shì),說(shuō)明該網(wǎng)絡(luò)并未訓(xùn)練完成,需要更多的迭代次數(shù)。仔細(xì)觀察發(fā)現(xiàn),在50~400 代左右的迭代范圍內(nèi)損失下降速度非常慢,出現(xiàn)了梯度消失現(xiàn)象。檢查該網(wǎng)絡(luò)在訓(xùn)練集和測(cè)試集上的識(shí)別準(zhǔn)確率,僅為44.6%和44.2%,此時(shí)的氣體識(shí)別效果并不理想,如果想要使成功率提升,讓損失進(jìn)一步下降,則需要進(jìn)行更多的迭代來(lái)訓(xùn)練網(wǎng)絡(luò)。
如圖4(b),在1 000 代的迭代之后,使用ReLU 函數(shù)和梯度下降的網(wǎng)絡(luò)損失下降到0.4 左右,且下降速度已經(jīng)開(kāi)始減慢,說(shuō)明此時(shí)已經(jīng)接近損失的最小值,網(wǎng)絡(luò)已經(jīng)訓(xùn)練到不錯(cuò)的水平。檢查該網(wǎng)絡(luò)在訓(xùn)練集和測(cè)試集上的識(shí)別準(zhǔn)確率,分別達(dá)到了88.8%和88.7%,識(shí)別效果較為良好。但此時(shí)距離最優(yōu)仍有一小段距離,仍可繼續(xù)訓(xùn)練以減小損失。
如圖4(c),使用Sigmoid 函數(shù)和Adam 算法的網(wǎng)絡(luò)在迭代到200 代的時(shí)候損失值接近0.25,網(wǎng)絡(luò)的訓(xùn)練速度較快,比起使用梯度下降的網(wǎng)絡(luò)有了大幅提升,之后仍有下降但非常小,說(shuō)明該網(wǎng)絡(luò)幾乎找到了最優(yōu)解。該網(wǎng)絡(luò)在訓(xùn)練集和測(cè)試集上的識(shí)別準(zhǔn)確率分別達(dá)到了92.7%和91.8%,已經(jīng)提取到了可靠的氣體數(shù)據(jù)特征并做出了較好的識(shí)別。
如圖4(d),使用ReLU 函數(shù)和Adam 算法的網(wǎng)絡(luò)在幾十代的迭代過(guò)程中損失迅速下降至0.2 左右,表明在這種情況下的網(wǎng)絡(luò)訓(xùn)練速度非常快。之后的訓(xùn)練中將損失穩(wěn)定降到了0.2 以下且一直穩(wěn)定幾乎不變,可以認(rèn)為此時(shí)該網(wǎng)絡(luò)已經(jīng)找到了損失函數(shù)的最小值。該網(wǎng)絡(luò)在訓(xùn)練集和測(cè)試集上的識(shí)別準(zhǔn)確率分別達(dá)到了93.3%和92.1%,說(shuō)明該網(wǎng)絡(luò)已經(jīng)很好提取到了氣體數(shù)據(jù)的基本特征。
綜上所述,利用ReLU 函數(shù)作為激勵(lì)函數(shù)的網(wǎng)絡(luò)不論在識(shí)別準(zhǔn)確率還是在訓(xùn)練速度上,都遠(yuǎn)遠(yuǎn)優(yōu)于同等條件下使用Sigmoid 作激勵(lì)函數(shù)的網(wǎng)絡(luò),在使用梯度下降法優(yōu)化網(wǎng)絡(luò)的情況下,使用ReLU 網(wǎng)絡(luò)的識(shí)別準(zhǔn)確率比使用Sigmoid 網(wǎng)絡(luò)的高44.2%;在使用Adam 算法優(yōu)化的情況下,前者也要比后者高出0.6%,同時(shí)使用ReLU 的網(wǎng)絡(luò)訓(xùn)練速度也有不同程度提升。
此外,在使用Sigmoid 作為激勵(lì)函數(shù)的情況下,利用Adam 算法優(yōu)化的網(wǎng)絡(luò)在識(shí)別準(zhǔn)確率上比使用梯度下降法的網(wǎng)絡(luò)高48.1%;在使用ReLU 作為激勵(lì)函數(shù)的情況下,前者相比于后者準(zhǔn)確率提升了4.5%,使用Adam 算法優(yōu)化的網(wǎng)絡(luò)訓(xùn)練速度也顯著快于使用梯度下降的網(wǎng)絡(luò)。實(shí)驗(yàn)證明ReLU 和Adam 算法均能提升用于氣體檢查識(shí)別的神經(jīng)網(wǎng)絡(luò)的效率,與理論吻合。
在利用電子鼻和人工神經(jīng)網(wǎng)絡(luò)對(duì)氣體的檢測(cè)和識(shí)別中,利用ReLU 函數(shù)作為網(wǎng)絡(luò)的激勵(lì)函數(shù)和使用Adam 算法優(yōu)化神經(jīng)網(wǎng)絡(luò)能大幅提高傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的效率,且效果顯著。在同時(shí)使用兩種方法的情況下,準(zhǔn)確率能達(dá)到93.3%,對(duì)上述5 種氣體能起到良好的識(shí)別效果。本文驗(yàn)證了ReLU 函數(shù)和Adam 優(yōu)化算法在對(duì)氣體識(shí)別神經(jīng)網(wǎng)絡(luò)上的優(yōu)勢(shì),為今后在氣體檢測(cè)的神經(jīng)網(wǎng)絡(luò)識(shí)別算法方面提供了優(yōu)化思路。