何法虎,梁健濤
(華北理工大學人工智能學院,唐山063200)
近幾年來,我國的大氣環境質量日趨下降,我國在保護環境方面面臨著巨大的壓力[1]。基于神經網絡的空氣質量的預測打破傳統的空氣質量監測,能預測短時間內的空氣質量,為環境保護部門提供預警信息,有效及時地處理環境污染問題。
20世紀以來,國外環境部門最初是通過站點的監測數據對污染源進行分析,判定污染源的排放量來對空氣質量進行研究。后來利用統計學方法對監測站點收集的數據進行分析,進行空氣質量的預測。統計學方法預測空氣質量需要大量的實際站點采集的數據,而且對數據的穩定性要求比較高。隨著互聯網時代的發展已經神經網絡的不斷改進,使用神經網絡對空氣質量進行預測也成為國外研究者的主要方法[2]。
因為空氣質量數據具有時間序列的特性,所以在文中使用了具有時間序列特性的傳統的循環神經網絡RNN、長短期記憶網絡(LSTM)和門控單元(GRU)進行空氣質量數據的預測。通過均方根誤差和R方的分來判定模型的擬合程度,根據幾種神經網絡模型預測的結果,選取一種預測空氣質量合適的神經網絡進行應用。
在文中使用了循環神經網絡對空氣質量數據進行分析研究,首先介紹的是最基本的循環神經網絡RNN。循環神經網絡在處理和預測具有時間序列特性的數據方面有著較強的處理能力。空氣質量數據具有時間序列的特性,當前時刻的信息與前一個或幾個時刻的信息有較大的關聯[3],所以選擇循環神經網絡在處理空氣質量數據。RNN循環神經網絡的隱藏層的輸入不僅來自輸入層,還來自于過去時刻的隱藏層。RNN循環神經網絡的基本結構如圖1所示。

圖1 RNN循環神經網絡結構圖
h為隱藏狀態,y為可選擇使用的輸出,兩者構成了RNN循環神經網絡。V為隱藏狀態h到輸出y之間的權重矩陣,W作為上一個時間點的隱藏狀態hi-1與當前時間點的隱藏狀態hi之間的權重,U表示當前時刻的輸入x與當前隱藏狀態h之間的權重,Fi和ti表示逐步的損失和訓練的結果。RNN循環神經網絡的隱藏層的更新如公式(1)所示。

在公式(1)中,f表示非線性激活函數,xi為當前時刻的輸入,hi-1為上一時刻的隱藏狀態。在本文中使用的非線性激活函數為Sigmoid[4]。Sigmoid激活函數是一個將輸入轉化為0-1之間的輸出的函數,其表達式為公式(2)。

基本循環神經網絡RNN由于是一個循環體的不斷循環,所以容易發生梯度爆炸的情況。為了減小這種梯度爆炸發生的概率,研究者們提出了RNN的變體模型為長短期記憶網絡(LSTM)。在長短期記憶網絡LSTM中,加入了輸入門、遺忘門和輸出門三種門控結構來控制上一時刻信息的保留程度[5]。LSTM的基本結構如圖2所示。

圖2 LSTM基本結構圖
遺忘門綜合當前時刻的輸入Xt與上一時刻的輸出Ht-1來考慮信息的有效性。遺忘門首先會生成一個矢量f=sigmoid(Wf[Ht-1,Xt]),然后與隱藏層的上一刻狀態Ct-1相乘,如果值接近于1,大量的信息都是有效的,能夠被保留使用,如果值接近0,則代表信息是無效的,被遺忘門遺棄不被使用。
輸入門的作用就是補充并更新循環體的最新信息。首先將上一時刻的輸出信息Ht-1與當前時刻的輸入Xt通過矩陣相加,傳遞到Sigmoid函數[6],然后將這兩個信息再次傳遞到tanh函數中,得到的結果與遺忘門的結果共同構成新的隱藏層狀態Ct。通過這兩個門可以確定哪些信息有效哪些信息被遺棄。
輸出門用于生成當前時刻的輸出Ht。各個門的公式如下所示:

其中Wz、Wi、Wf和Wo表示每個結構體上的權重參數。
GRU模型是LSTM的變體,能夠解決時間序列的長時依賴性問題。本文通過對比LSTM和GRU在所選數據上的準確度來選擇適合的模型。GRU模型中只有兩個門:更新門和重置門。更新門的作用相當于LSTM網絡中遺忘門和輸入門的結合,可以決定哪些信息有效,需要被模型保留,哪些信息無效需要被遺棄[7]。公式為:

實驗方案采用理論與實踐相結合的方式,環境質量數據是從中國環境監測總站實時發布的空氣質量數據獲得。利用Python中數據分析技術對獲取的數據進行清理與整合,結合神經網絡模型相關理論方法,確定總體方案,建立神經網絡模型,實現空氣質量的預測。技術路線包括Python開發環境的搭建,數據的預處理,數據分析,神經網絡模型的訓練和評估四個主要階段。
(1)Python開發環境的搭建:本實驗所采用的開發環境為Python,安裝實驗中所需要的各種工具包,并搭建TensorFlow學習框架。這個框架可以為應用程序提供靈活的計算圖,建立神經網絡的結構,并能直觀地對網絡模型的結構進行靈活的操作。
(2)數據的預處理:數據集的質量直接影響模型的訓練的速度和效力。數據的預處理包括:數據的讀取,數據缺失值的處理,異常值的處理,以及各個屬性的表現形式。
(3)數據分析:數據預處理之后,對數據進行分析,主要分析各個污染物濃度隨時間的變化規律和各個污染物之間的關聯關系。
(4)神經網絡模型的訓練和評估:將經過處理的空氣質量數據分為訓練數據和測試數據。建立神經網絡模型,并用訓練集訓練該模型,找到損失函數最小的最優模型參數,在測試集上對最優函數的性能進行評估,并且通過測試集對模型的泛化能力進行評估。
在數據進行預處理與分析之后,我首先選擇了幾種簡單的模型進行了預訓練,分別是隨機森林、梯度提升樹、XGBoost回歸模型和神經網絡回歸模型[8]。使用Python中Sklearn工具庫進行了模型的訓練得出每個模型的R方得分,具體模型的R方得分見表1所示。

表1 普通模型R方得分
在初步的使用LSTM模型進行訓練,得到的R方得分為0.9737。在LSTM模型訓練時,損失函數公式為:

為了避免過擬合,一種常用的方法就是正則化。通過在損失函數中加入映射模型復雜程度的參數,提高模型的泛化能力[9]。假設模型的損失函數為J(θ),R(w)代表了模型的復雜程度。
正則化表達式有L1正則化和L2正則化兩種[10],L1正則化公式為:

L2正則化公式為:

為了防止過擬合,加入L2正則化項為:

其中φ是一個L2范數的參數,訓練模型中加入了L2正則化方法來解決過擬合問題。圖3為訓練數據和測試數據損失函數圖。

圖3實驗損失函數圖
圖3 可以看出,損失值在100步以前下降特別快,在100步到500步之間有輕微的波動,500步以后趨于平穩,模型收斂,訓練完成。
本文提出了使用神經網絡進行空氣質量的預測,空氣質量的預測在實際生活中有很重要的意義,人們的日常生活和健康都與空氣質量的好壞有直接的關系。在近幾年,研究者們對空氣質量的不斷研究,給出了可行的解決方案,我國的空氣質量得到了很大的改善。因為空氣質量數據具有一定的時間序列的特性,在本文中選擇了循環神經網絡。循環神經網絡在解決時間序列數據時具有選擇性,預防梯度爆炸的情況發生。在文中給出了基于神經網絡模型的空氣質量預測的實驗驗證,分析在具有時間序列的空氣質量數據中使用循環神經網絡具有一定的優勢。該算法可用于解決實際工作中的一些相關問題,具有一定的實際意義。