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