王超學(xué), 賈曉莉,孫嘉誠
(西安建筑科技大學(xué) 信息與控制工程學(xué)院, 西安 710055)
近年來,霧霾已成為一種頻繁出現(xiàn)的天氣,對人們生產(chǎn)生活產(chǎn)生了很大影響。醫(yī)學(xué)期刊公布的研究表明,2015年的大氣污染事件已經(jīng)在全世界范圍內(nèi)造成了約640萬名患者死亡,其中約420萬名患者由于戶外大氣污染罹難,2017年剛開始,霧霾就已經(jīng)席卷了中國的大部分地區(qū)[1]。人們對于空氣懸浮物PM10和PM2.5的污染表現(xiàn)出空前未有的憂慮和關(guān)注,已有的研究結(jié)論表示,PM10和PM2.5是當(dāng)前對公眾健康造成危害的主要污染物。尤其顆粒物(PM2.5)由于體積小,可黏附于深呼吸道,通過穿透肺細(xì)胞影響血液循環(huán),從而影響人類健康[2-3]。研究表明,PM2.5濃度的上升將使人們增加患各種呼吸道疾病的風(fēng)險[4]。因此,對PM2.5濃度的準(zhǔn)確預(yù)測,不僅對于降低患病風(fēng)險和保護(hù)日常健康都具有重要意義,而且可以為PM2.5濃度的防治提供依據(jù)。
基因表達(dá)式編程算法[5](GEP,gene expression programming)是Ferreira受基因?qū)W中開放閱讀框的啟發(fā)提出的一種新型的智能進(jìn)化算法,是對遺傳算法和遺傳編程的融合與升華。它吸取了遺傳算法(GA)的編碼特點和遺傳編程(GP)的樹形特征,同時又將個體的基因型和表現(xiàn)型相分離。它的優(yōu)點在于在不了解事物內(nèi)部機理、只有實驗數(shù)據(jù)的情況下,依靠它的搜索和進(jìn)化能力,找出最符合建模數(shù)據(jù)的表達(dá)式。目前已經(jīng)成功應(yīng)用于軟件可靠性[6]、氣象露點[7]、函數(shù)發(fā)現(xiàn)[8]、能源損耗[9]、建筑[10]等領(lǐng)域的預(yù)測建模中。該算法不僅具有強大的模型學(xué)習(xí)能力,而且還可以得到顯式的函數(shù)關(guān)系式。本文基于GEP算法對西安地區(qū)的PM2.5濃度進(jìn)行預(yù)測,實驗表明不僅預(yù)測精度高,而且可以得到PM2.5濃度與各影響因素間的函數(shù)關(guān)系。
隨著人工智能技術(shù)的快速發(fā)展,許多學(xué)者采用基于神經(jīng)網(wǎng)絡(luò)的相關(guān)算法進(jìn)行PM2.5濃度相關(guān)的預(yù)測。謝劭峰等[11]利用鯨魚優(yōu)化算法(WOA)以及狼群算法(WPA)混合優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值,構(gòu)建WPA-WOA-BP神經(jīng)網(wǎng)絡(luò)模型,實驗結(jié)果表明預(yù)測穩(wěn)定性高且優(yōu)于BP網(wǎng)絡(luò)。王勇等[12]利用LSTM構(gòu)建融合大氣污染物、GNSS水汽和風(fēng)速的PM2.5濃度預(yù)測模型,結(jié)果表明該模型預(yù)測精度較好。段大高等[13]提出LSTM預(yù)測模型,能較準(zhǔn)確地預(yù)測未來5小時的PM2.5濃度。Y.B.Sun等[14]提出了一種深度神經(jīng)網(wǎng)絡(luò)模型(DNN),可以提高PM2.5濃度的預(yù)測精度。趙文芳等[15]提出卷積神經(jīng)網(wǎng)絡(luò)和長短時記憶相結(jié)合的預(yù)測方法,能有效提高PM2.5濃度未來24 h預(yù)測精度,并具有較高的泛化能力。陳成等[15]采用多示例遺傳神經(jīng)網(wǎng)絡(luò)預(yù)測室內(nèi)PM2.5濃度,其結(jié)果優(yōu)于線性回歸、支持向量回歸、隨機森林等方法。鄭國威等[16]針對 PM2.5 濃度變化的非線性、時變性等特點,建立的基于支持向量機-小波神經(jīng)網(wǎng)絡(luò)的組合預(yù)測模型,其預(yù)測結(jié)果優(yōu)于支持向量機單一模型。Z.G.Shang等[17]針對每小時PM2.5濃度的多種變化模式采用分類回歸樹和極限學(xué)習(xí)機的集成模型(CART-EELM)預(yù)測未來一小時的PM2.5濃度,提高了處理多種PM2.5變化模式的能力。T.Y.Li 等[18]提出卷積神經(jīng)網(wǎng)絡(luò)和長短期記憶神經(jīng)網(wǎng)絡(luò)組合模型(CNN-LSTM),通過單變量CNN-LSTM模型和多變量CNN-LSTM模型對比,證明了多變量CNN- LSTM模型預(yù)測效果更好。
綜上所述,神經(jīng)網(wǎng)絡(luò)算法已經(jīng)是PM2.5濃度預(yù)測的熱點方法,但是它并不能得到顯式的函數(shù)表達(dá)式。基因表達(dá)式編程是受基因?qū)W中DNA蛋白質(zhì)系統(tǒng)提出的一種新型的智能優(yōu)化算法。GEP不但有和神經(jīng)網(wǎng)絡(luò)算法一樣強大的泛函學(xué)習(xí)能力,而且可以得到顯式的數(shù)學(xué)模型。
劉小生等[19]采用GEP算法對北京地區(qū)的PM2.5濃度進(jìn)行逐日預(yù)測,結(jié)果發(fā)現(xiàn)其預(yù)測精度高于灰色理論、BP神經(jīng)網(wǎng)絡(luò)。S.Samadianfard等[20]采用GEP算法對o3濃度進(jìn)行預(yù)測,結(jié)果發(fā)現(xiàn)GEP在預(yù)測o3濃度上是一個有前景的算法。但是傳統(tǒng)GEP算法存在著收斂速度慢,容易早熟等問題,本文采用模擬人類進(jìn)化的基因表達(dá)式編程算法(DSCE-GEP, double system co-evolutionary gene expression programming),通過人工干預(yù)與自然進(jìn)化協(xié)同來提高收斂速度和全局尋優(yōu)能力。目前DSCE-GEP已經(jīng)成功應(yīng)用于函數(shù)發(fā)現(xiàn)問題、小麥蚜蟲預(yù)測問題中[21]。
本文探索雙系統(tǒng)協(xié)同進(jìn)化基因表達(dá)式編程算法在PM2.5濃度預(yù)測中的研究。以西安市PM2.5濃度預(yù)測為案例進(jìn)行逐日預(yù)測模擬,以擬合度(R2)、平均絕對誤差(MAE)和均方根誤差(RMSE)作為模型預(yù)測評價指標(biāo)。實驗中通過與傳統(tǒng)GEP算法、文獻(xiàn)中分類回歸樹與極限學(xué)習(xí)機組合模型(CART-EELM)和卷積神經(jīng)網(wǎng)絡(luò)與長短期記憶神經(jīng)網(wǎng)絡(luò)組合模型(CNN-LSTM)對比證明DSCE-GEP預(yù)測模型的有效性和先進(jìn)性。
文章采用雙系統(tǒng)協(xié)同進(jìn)化DSCE-GEP算法,該算法模擬人類進(jìn)化思想引入人工干預(yù)操作與自然進(jìn)化協(xié)同進(jìn)化進(jìn)行。人工干預(yù)由兩部分組成,個體干預(yù)和種群干預(yù)。
自然進(jìn)化系統(tǒng)和傳統(tǒng)基因表達(dá)式編程算法進(jìn)化操作相同,包括變異、轉(zhuǎn)座、重組操作。
變異:由于GEP算法的編碼特性,根據(jù)設(shè)定的變異概率在種群中隨機選擇位置改變其原來的符號,按照GEP的變異法則進(jìn)行變異運算。
轉(zhuǎn)座:轉(zhuǎn)座又稱插串,是GEP算法中特有的遺傳算子,其中轉(zhuǎn)座元素為染色體的基因片段。在GEP算法中,根據(jù)插入位置的不同分為IS轉(zhuǎn)座、RIS轉(zhuǎn)座和基因轉(zhuǎn)座。
IS轉(zhuǎn)座:起始位置上是函數(shù)或終結(jié)點的短片段(IS元素)轉(zhuǎn)座到基因的頭部中除根部以外的任何位置,IS元素為種群中隨機選取的基因片段。
RIS轉(zhuǎn)座:和IS轉(zhuǎn)座的操作類似,轉(zhuǎn)座片段的選取以及轉(zhuǎn)座目標(biāo)位置不同。轉(zhuǎn)座的片段的起始位應(yīng)是基因頭部中的一個元素,轉(zhuǎn)座的目標(biāo)位置應(yīng)在基因的首位。
基因轉(zhuǎn)座:把個體中的某個基因轉(zhuǎn)座至個體的首位作為第一個基因。
重組:又名交叉。根據(jù)基因片段不同的截取點和截取方式分為單點、兩點和基因重組。
單點重組:在當(dāng)代種群隨機選擇兩個個體,然后選擇同一位置將個體截斷,兩個個體交換截斷點之后的基因片段形成兩個新的個體。
兩點重組:在當(dāng)代種群中隨機選取兩個個體,接著任意選取兩個基因位置,將個體切斷。兩個個體相互交換切斷點之間的基因片段,形成兩個新的個體。
基因重組:父代種群中隨機選取兩個染色體中,然后隨機選擇某一個基因進(jìn)行整個基因相互交換,形成兩個新的子代染色體,形成的兩個子代染色體含有來自兩個父體的基因。
2.2.1 個體干預(yù)
個體干預(yù)通過去掉種群中的劣質(zhì)基因,增加種群中的優(yōu)質(zhì)基因來提高算法的進(jìn)化速度以及解的質(zhì)量。個體干預(yù)由“去劣”和“增優(yōu)”兩部分組成?!叭チ印眲h掉PM2.5濃度與影響因素錯誤的函數(shù)表達(dá);“增優(yōu)”增加與PM2.5濃度相關(guān)度高的函數(shù)和影響因素在染色體中的表達(dá)。具體操作如下:
去劣:對種群中非法表達(dá)包含的劣質(zhì)基因位,如使得除數(shù)為0、對數(shù)函數(shù)真數(shù)為0、二次根號下小于0等使得表達(dá)式無意義的基因位,通過隨機選擇改變相應(yīng)位置的基因使其成為可行解。
增優(yōu):保存每-代種群中較優(yōu)的m個個體作為優(yōu)質(zhì)基因庫。在“去劣”操作完成后,根據(jù)增優(yōu)概率,對當(dāng)前種群的第j個個體的s位置到t位置采用優(yōu)質(zhì)基因庫中的個體通過隨機選擇選中的第i個個體中從s位置到t位置的基因片段[s:t]移植替換,形成新個體k。并評價k的適應(yīng)度,如果適應(yīng)度大于原個體j的適應(yīng)度,則用新個體k替換原個體j,否則保持原個體j不變。
2.2.2 種群干預(yù)
種群干預(yù)的目的是增加種群遺傳信息多樣性,在算法進(jìn)化過程中,通過自然選擇、優(yōu)勝劣汰使得種群多樣性減少,即基因種類減少,使得算法表達(dá)過早收斂,陷入局部最優(yōu)。因此算法通過種群干預(yù)來增加種群遺傳信息的多樣性,以提高最優(yōu)解的質(zhì)量。種群干預(yù)使得DSCE-GEP算法能在較大范圍的函數(shù)集中更準(zhǔn)確地表達(dá)PM2.5濃度和各影響因素之間的關(guān)系。
本文選取信息熵作為種群遺傳信息是否豐富的評判準(zhǔn)則,依據(jù)設(shè)定信息熵值評判當(dāng)前種群遺傳信息是否豐富。如果當(dāng)前種群信息熵值大于或等于設(shè)定值則當(dāng)前種群不變;小于設(shè)定值則對進(jìn)行干預(yù)操作。具體操作如下:
把種群根據(jù)適應(yīng)度從大到小排序,對于倒數(shù)a個個體,即適應(yīng)度較低的a個個體,采用鏡像個體替換;對于倒數(shù)第a個到倒數(shù)第a+b個個體,即適應(yīng)度更低的b個個體,采用隨機個體替換形成新種群。
1)鏡像個體:函數(shù)符集F={+、-、*、/、sqrt、x2、exp、cos、sin、ln、lg、~(以10為底的指數(shù))abs、C(常數(shù))},鏡像函數(shù)符集mr_F={-、+、/、*、x2、sqrt、ln、sin、cos、exp,~,log、C、abs},對需要鏡像替換的個體遍歷,如果第i位基因為F中第j個元素,則替換后個體第i位基因為mr_F中第j個元素。依據(jù)上述規(guī)則操作遍歷完個體所有基因位后形成新個體。
2)隨機個體:和初始化生成個體規(guī)則相同。
算法流程如圖1所示。
圖1 DSCE-GEP流程圖
步驟1:始化參數(shù):確定種群規(guī)模、頭部長度、尾部長度、基因個數(shù)、函數(shù)集、終點集、遺傳概率等參數(shù)。
步驟2:碼/評價個體:針對每個染色體,根據(jù)適應(yīng)度求解公式計算其適應(yīng)度。
步驟3:建立優(yōu)質(zhì)基因庫:選出種群中適應(yīng)度較大的m個個體作為優(yōu)質(zhì)基因庫成員。
步驟4:判斷是否滿足終止條件:判斷是否存在個體適應(yīng)度達(dá)到最大值或進(jìn)化代數(shù)達(dá)到最大值,如果是,則結(jié)束;否則,進(jìn)入下一步。
步驟5:遺傳操作:
1)變異:根據(jù)變異概率隨機選擇變異個體進(jìn)行變異操作。
2)轉(zhuǎn)座(IS RIS 基因):根據(jù)不同的轉(zhuǎn)座位置分為IS、RIS、基因轉(zhuǎn)座,依據(jù)轉(zhuǎn)座概率隨機選擇個體進(jìn)行相應(yīng)的轉(zhuǎn)座操作。
3)重組(單點兩點基因):根據(jù)不同基因片段的組合分為單點、兩點、基因重組,依據(jù)重組概率隨機選擇個體進(jìn)行相應(yīng)的重組操作。
步驟6:人工干預(yù)操作
1)個體干預(yù):(1)去劣,對種群個體遍歷,對于造成不可行解的基因通過隨機選擇替換使其成為可行解;(2)增優(yōu),對于適應(yīng)度較低的個體,通過優(yōu)質(zhì)基因庫中的優(yōu)質(zhì)基因片段替換適應(yīng)度較低個體相應(yīng)位置的基因片段。
2)種群干預(yù):根據(jù)當(dāng)前種群的信息熵值判斷是否需要種群干預(yù)。如果當(dāng)前種群信息熵值小于理想種群信息熵值就進(jìn)行種群干預(yù),否則不干預(yù)。
步驟7:更新優(yōu)質(zhì)基因庫:合并當(dāng)前優(yōu)質(zhì)基因庫和當(dāng)前種群的所有個體,從中選出適應(yīng)度較高的前m個個體作為新的優(yōu)質(zhì)基因庫成員。
步驟8:選擇:采用輪盤賭選擇策略進(jìn)行選擇操作形成新種群并進(jìn)入下一次迭代。
本文設(shè)計了3個對比實驗來驗證DSCE-GEP算法在PM2.5濃度預(yù)測中的有效性和先進(jìn)性。實驗程序用python實現(xiàn),實驗環(huán)境為Intel i5處理器、16 GB內(nèi)存、Windows10操作系統(tǒng)。
本文采用的空氣質(zhì)量數(shù)據(jù)(PM2.5,PM10,SO2,NO2,CO,O3)與氣象數(shù)據(jù)(溫度,濕度,風(fēng)向,風(fēng)速,氣壓,露點),通過中國環(huán)境監(jiān)測網(wǎng)站獲取的2017.1.1~2018.12.31的西安地區(qū)每天監(jiān)測數(shù)據(jù),所采集的數(shù)據(jù)為每日平均值。70%數(shù)據(jù)作為訓(xùn)練集,30%數(shù)據(jù)作為測試集。
文中采用擬合度R2=1-SSE/SST作為適應(yīng)度函數(shù),即統(tǒng)計學(xué)中的復(fù)相關(guān)系數(shù)。其中,SSE計算如公式(1)所示,SST計算如公式(2)所示:
(1)
(2)
本文采用擬合度(R2)、均方根誤差(RMSE)、平均絕對誤差(MAE)3個指標(biāo)來對預(yù)測結(jié)果進(jìn)行評價。均方根誤差(RMSE)計算如公式(3)所示,平均絕對誤差(MAE)計算如公式(4)所示:
(3)
(4)
DSCE-GEP算法參數(shù)如表1所示。
表1 初始化參數(shù)設(shè)置
3.5.1 GEP、DSCE-GEP預(yù)測精度對比
1)預(yù)測精度對比:GEP算法、DSCE-GEP算法算法預(yù)測曲線分別如圖2、圖3所示。擬合度、均方根誤差、平均絕對誤差比較如表2所示。
圖2 GEP預(yù)測曲線
圖3 DSCE-GEP預(yù)測曲線
從圖2、圖3可看出GEP算法、DSCE-GEP算法預(yù)測效果都比較好,由表2得出DSCE-GEP較GEP擬合度提高0.03,均方根誤差降低4.29,平均絕對誤差降低5.47,較傳統(tǒng)GEP提高了預(yù)測精度,證明了KDSCE-GEP的有效性。
表2 DSCE-GEP和GEP性能比較
2)GEP、DSCE-GEP進(jìn)化速度對比:GEP算法、DSCE-GEP算法進(jìn)化曲線分別如圖4、圖5所示。
圖4 GEP最優(yōu)進(jìn)化曲線
圖5 DSCE-GEP最優(yōu)進(jìn)化曲線
通過圖4、圖5進(jìn)化曲線對比發(fā)現(xiàn),GEP在175代找到最優(yōu)解,DSCE-GEP在100代左右找到最優(yōu)解DSCE-GEP較GEP提高了進(jìn)化速度,DSCE-GEP通過個體干預(yù)及種群干預(yù),縮小了解的搜索空間,提高了進(jìn)化速度。通過實驗對比DSCE-GEP算法能有效提高收斂速度和預(yù)測精度。
3.5.2 DSCE-GEP、CART-EEL和CNN-LSTM對比實驗
1)DSCE-GEP算法的顯式表達(dá)式:
y= cos10cos((sinx11 *x11)-x1+cos10x7+2x6-
(5)
通過實驗得到DSCE-GEP算法的預(yù)測模型為公式(5)。其中y為當(dāng)前一天PM2.5濃度,x1,x5,x6,x7,x8,x10,x11分別為前一天SO2,O3,溫度,濕度,風(fēng)向,露點,PM2.5。通過實驗?zāi)P涂梢钥闯?,西安地區(qū)當(dāng)天PM2.5濃度主要與前一天SO2,O3,溫度,濕度,風(fēng)向,露點,PM2.5相關(guān),具體關(guān)系體現(xiàn)在公式(5)中。
2)DSCE-GEP算法、CART-EELM模型、CNN-LSTM模型預(yù)測精度對比
DSCE-GEP算法與比較分類回歸樹和極限學(xué)習(xí)機的組合模型和CNN-LSTM模型,證明其先進(jìn)性,結(jié)果表3所示。
表3 DSCE-GEP和CART-EELM、 CNN- LSTM預(yù)測結(jié)果對比
通過表3發(fā)現(xiàn),DSCE-GEP算法較CART-EELM擬合度高了0.01,均方根誤差和平均絕對誤差稍高于CART-EELM;較CNN-LSTM擬合度高了0.01,均方根誤差低了1.53,平均絕對誤差低了1.54。擬合度均優(yōu)于其他兩種模型,證明了DSCE-GEP算法在PM2.5濃度預(yù)測中的競爭力與先進(jìn)性。CART-EELM和CNN-LSTM分別都是基于神經(jīng)網(wǎng)絡(luò)的模型,最終得出的模型為參數(shù)矩陣,無法看到PM2.5濃度與各影響因素之間的關(guān)系,而DSCE-GEP算法最終可以得到PM2.5濃度與其影響因素之間的顯式函數(shù)關(guān)系,可以明確表達(dá)PM2.5濃度與各影響因素之間的關(guān)系。
3.5.3 實驗結(jié)論
經(jīng)過上述實驗分析發(fā)現(xiàn),DSCE-GEP算法不僅較傳統(tǒng)GEP算法、分類回歸樹和極限學(xué)習(xí)機組合算法(CART-EELM)以及卷積神經(jīng)網(wǎng)絡(luò)和長短期記憶神經(jīng)網(wǎng)絡(luò)算法(CNN-LSTM)在西安地區(qū)逐日的 PM2.5濃度中性能較優(yōu),擬合度均高于其他3種模型,而且得到了PM2.5濃度預(yù)測的顯式函數(shù)關(guān)系。證明DSCE-GEP算法在PM2.5濃度預(yù)測中的有效性與競爭力,對于準(zhǔn)確的控制PM2.5濃度具有重要意義。
通過對西安地區(qū)空氣質(zhì)量數(shù)據(jù)進(jìn)行分析,根據(jù)過去一天的空氣質(zhì)量數(shù)據(jù)及氣象數(shù)據(jù)預(yù)測當(dāng)天的PM2.5濃度,利用基于雙系統(tǒng)協(xié)同進(jìn)化算法得到預(yù)測模型,不僅可以有較高的預(yù)測精度,而且可以明確地看出各影響因素與PM2.5濃度之間的關(guān)系。未來還可以把DSCE-GEP算法應(yīng)用于其他智能預(yù)測領(lǐng)域中。