白 雪,朱紅康,吳 瑞
(山西師范大學(xué) 數(shù)學(xué)與計算機科學(xué)學(xué)院,山西 臨汾 041099)
大氣環(huán)境受到多種氣象要素(風(fēng)速、相對濕度、氣溫、氣壓、云量、降水量等)的綜合作用,隨著季節(jié)、時段、地理位置的改變,一個氣象要素的變化會直接或間接地影響著其他一個或多個氣象要素的變化。近來,許多學(xué)者研究發(fā)現(xiàn)氣象要素的變化與全球災(zāi)害如干旱、山洪,人類疾病如哮喘[1]、過敏[2]、季節(jié)性流感[3]和登革熱[4]等的發(fā)作和冬季供暖[5]和PM2.5[6]等造成的大氣污染息息相關(guān)。因此研究氣象要素間的相關(guān)性是一項重要的預(yù)防措施。目前氣象要素相關(guān)性主要依靠站點檢測和分析,為氣象要素的預(yù)測提供數(shù)據(jù)支持。然而,氣象要素之間的影響過程錯綜復(fù)雜,包含多種物理或化學(xué)變化過程,目前的氣象模式也難以準(zhǔn)確地描述大氣中各種氣象要素的相互變化關(guān)系,因此難以對其定性和定量計算進(jìn)行預(yù)測。目前,用于研究氣象要素的方法分為以下幾類:數(shù)學(xué)模型和機器學(xué)習(xí)方法。錢悅等人利用基于后向軌跡HYSPLIT模型和潛在源解析PSCF對江西省(贛州市)臭氧污染特征與氣象因子的關(guān)系進(jìn)行了分析[7]。尹曉梅等人利用后向軌跡及WRF-CAMx模式針對氣象要素及污染物濃度進(jìn)行了特征分析,得到了供暖結(jié)束前后的污染物演變規(guī)律[8]。上述是基于現(xiàn)有數(shù)學(xué)模型的研究方法,在氣象要素的分析研究中,機器學(xué)習(xí)的算法應(yīng)用得越來越廣泛,在預(yù)測方面表現(xiàn)出巨大的潛力。隨著科學(xué)技術(shù)的發(fā)展,機器學(xué)習(xí)算法之一的神經(jīng)網(wǎng)絡(luò)已成為許多領(lǐng)域進(jìn)行預(yù)測的強大工具。黃建風(fēng)等人利用小波-NAR神經(jīng)網(wǎng)絡(luò)技術(shù),提出氣象要素的時間序列預(yù)測原理與方法[9],劉洋等人研究了降雨及其多種相關(guān)參數(shù)(PWV,溫度,相對濕度,露點溫度,年積日,日積時)間的時變特征,并構(gòu)建了基于徑向基(radial basis function,RBF)神經(jīng)網(wǎng)絡(luò)的短期降雨預(yù)測模型[10]。Peng Zhen等人提出一種PS-FCM模型并將其挖掘方法應(yīng)用于霧霾污染因果挖掘和預(yù)測[11]。
基于氣象要素的監(jiān)測數(shù)據(jù),采用智能算法進(jìn)行分析,建立預(yù)測模型,已成為新的研究方向之一。然而采用現(xiàn)有數(shù)學(xué)模型進(jìn)行分析模擬需要考慮本地化,設(shè)置相應(yīng)的參數(shù)化方案。而且WRF都是中尺度模式,對于小尺度的模擬不夠精確,所以模擬出來的分辨率還比較粗[12]。而神經(jīng)網(wǎng)絡(luò)獨有的黑匣子特性,導(dǎo)致無法解釋其預(yù)測機理,隨著模型預(yù)測規(guī)模的增加,誤差也隨之增加。
由于氣象要素之間彼此制約的特點符合模糊認(rèn)知圖的運行機制,故該文將FCM應(yīng)用于氣象預(yù)測領(lǐng)域,提出一種基于FCM的氣象要素相關(guān)性模型。首先以相鄰氣象監(jiān)測點的以時間為序列的數(shù)據(jù)集作為研究對象,對歷史數(shù)據(jù)通過相關(guān)分析法獲得影響權(quán)重,構(gòu)建關(guān)系矩陣,進(jìn)而建立氣象要素相關(guān)性模型進(jìn)行研究,可對未來的氣象要素進(jìn)行較為準(zhǔn)確地推算。
模糊認(rèn)知圖(fuzzy cognitive map,F(xiàn)CM)由節(jié)點和加權(quán)弧(連接,邊)組成,它們以圖形形式顯示為帶可選反饋環(huán)的帶符號加權(quán)圖。圖上的節(jié)點表示描述系統(tǒng)行為特征的概念。概念可以是系統(tǒng)的輸入、輸出、變量、狀態(tài)、事件、動作、目標(biāo)和趨勢[13]。帶符號的加權(quán)弧表示概念之間存在的因果關(guān)系。模糊認(rèn)知圖的推理使用一種源于神經(jīng)網(wǎng)絡(luò)的方法,可以迭代計算因子對彼此的影響。網(wǎng)絡(luò)穩(wěn)定之后,結(jié)果顯示系統(tǒng)內(nèi)的趨勢。由于模糊認(rèn)知圖允許反饋循環(huán),新激活的概念可能會影響以前已經(jīng)激活的概念,最后,激活通過非線性的方式通過模糊認(rèn)知圖傳播,直到系統(tǒng)達(dá)到一個穩(wěn)定的極限環(huán)或者不動點[14]。
圖1說明了一個簡單的FCM,由六個概念l=1,2,…,6組成。這六個要素作為概念節(jié)點集合C,C={C1,C2,C3,C4,C5,C6},同時也定義了各要素之間的關(guān)系權(quán)值矩陣W,如公式(1)所示,權(quán)重表示概念之間的因果關(guān)系。
C1C2C3C4C5C6
(1)
Kosko[15]提出了一規(guī)則,根據(jù)相互關(guān)聯(lián)的概念的影響來計算每個概念的值,其中下列函數(shù)被歸一化到區(qū)間[-1,1]:
(2)
由于氣象模式的不確定性和氣象要素之間相互影響的特點,將模糊認(rèn)知圖應(yīng)用到氣象背景中,研究氣象要素間的關(guān)系。
利用FCM可以動態(tài)地衡量時間序列中概念的前一時刻對后一時刻的影響程度的特性,本節(jié)將FCM引入氣象要素的相關(guān)性建模中,建立一個氣象要素相關(guān)性模型,將氣象要素作為概念,要素之間的相關(guān)系數(shù)作為加權(quán)弧,通過FCM體現(xiàn)要素和要素之間的相關(guān)性。
構(gòu)建的模糊認(rèn)知圖如圖2所示。以九個氣象要素l=1,2,…,9作為概念節(jié)點集合C,C={C1,C2,…,C9}。將節(jié)點之間的關(guān)系表示為矩陣Wl,如公式(3)所示,節(jié)點之間的關(guān)系作為有向連線,ωij表示要素和要素之間的相關(guān)性,其中ωij為正表示節(jié)點之間是正相關(guān),為負(fù)則表示節(jié)點之間是負(fù)相關(guān)。ωij根據(jù)公式(3)其初始關(guān)系權(quán)值可以算出。
(3)
(4)
(5)
(6)
wij是要素i和j之間的相關(guān)系數(shù),表示氣象要素之間的相關(guān)程度,處于[-1,1]之間。wij>0,表示要素對要素有促進(jìn)作用;wij<0,表示要素對要素有減弱作用;wij的絕對值越接近于1,表示要素i和要素j之間的關(guān)系越密切,wij的絕對值越接近于0,表示兩要素?zé)o關(guān)。在該模型中,l=9,即共有9個概念節(jié)點,對于氣壓(P)和露點溫度(Td)這兩個要素來說,它們之間的相關(guān)性可以表示為:
(7)
由于模糊認(rèn)知圖屬于神經(jīng)網(wǎng)絡(luò)的一種,且之前受到專家領(lǐng)域的知識、經(jīng)驗和個人主觀性的干擾,使得得出的結(jié)果缺乏一定的客觀性。鑒于這個缺點,該文采用基于數(shù)據(jù)驅(qū)動的實數(shù)編碼的遺傳算法通過時間序列歷史數(shù)據(jù)構(gòu)成模糊認(rèn)知圖。
遺傳算法包括選擇、交叉、變異三個步驟,適應(yīng)度fitness低的個體會被逐步淘汰,而適應(yīng)度高的個體會越來越多,經(jīng)過多代的自然選擇后,保存下來的個體都是適應(yīng)度很高的[13]。err表示適應(yīng)度函數(shù)中預(yù)測值和真實值的均方誤差。
(8)
(9)
式中,N為模糊認(rèn)知圖中概念節(jié)點的個數(shù),即衡量個體的指標(biāo)數(shù),L為模糊認(rèn)知圖中每個概念節(jié)點的原始數(shù)據(jù)的個數(shù),即個體的個數(shù)。
利用模糊認(rèn)知圖對時間序列數(shù)據(jù)進(jìn)行預(yù)測,該文采用一步領(lǐng)先預(yù)測的方法,即根據(jù)上一時刻的數(shù)據(jù)對下一時刻的數(shù)據(jù)進(jìn)行預(yù)測的方法。即根據(jù)T-1時刻的數(shù)據(jù)預(yù)測T時刻的數(shù)據(jù)。
(10)
f(·)表示激活函數(shù),數(shù)據(jù)進(jìn)行完一次迭代以后通過激活函數(shù),其輸出值即為預(yù)測值。激活函數(shù)可以將非線性因素引入到模糊認(rèn)知圖的計算當(dāng)中,使得模糊認(rèn)知圖可以逼近非線性函數(shù),這樣模糊認(rèn)知圖可以應(yīng)用到眾多的非線性模型中。模糊認(rèn)知圖的結(jié)構(gòu)源于神經(jīng)網(wǎng)絡(luò),因此激活函數(shù)也與神經(jīng)網(wǎng)絡(luò)的激活函數(shù)一脈同源,在此采用Tanh函數(shù)作為激活函數(shù)。
(11)
構(gòu)建模糊認(rèn)知圖之前,先將數(shù)據(jù)集分為兩部分。將一年中每個季節(jié)的70%數(shù)據(jù)作為訓(xùn)練集,將剩下的每個季節(jié)的數(shù)據(jù)作為測試集。
關(guān)系權(quán)值的優(yōu)化流程如下:
(1)編碼:將九個要素對自身的關(guān)系權(quán)值設(shè)置為1,要素的關(guān)系矩陣對應(yīng)81個權(quán)值。需要將位于1和-1之間的81個權(quán)值進(jìn)行實數(shù)編碼,W在遺傳算法中稱作染色體,Wj= {w11,w12,…,w99}。
(2)初始化種群:構(gòu)建過程中已經(jīng)通過歷史數(shù)據(jù)使用相關(guān)分析法確定了j個適應(yīng)值較大的染色體Wj(j=1,2,3,4)作為初始種群。
(3)適應(yīng)度計算:按照公式(8)計算種群中每條染色體的適應(yīng)度。
(4)選擇:通過處理歷史數(shù)據(jù)得到了最優(yōu)染色體,此步驟將精簡得出的每條染色體保留并參與交叉和變異操作,直接插入到新種群pop中。
(5)交叉:實驗中設(shè)置交叉率參數(shù)Pc。該步驟的操作對象是實數(shù)數(shù)串Wj,任選數(shù)串中的一個數(shù)據(jù)位置作為交叉點。例如染色體W1,若選中染色體中第三個元素w13作為交叉點,則這條染色體第三個元素與其之后的第九個元素相互交換,構(gòu)成新的一條染色體參與下一步的變異操作。每次交叉之前,生成一個0到1的隨機數(shù),若該隨機數(shù)大于Pc則進(jìn)行本步操作,否則不進(jìn)行。
(6)變異:設(shè)置變異率參數(shù)Pt,在變異之前產(chǎn)生一個0到1的隨機數(shù),如果該隨機數(shù)大于Pt,則進(jìn)行變異,否則不變異,變異時隨機產(chǎn)生染色體中的位置,其值按照公式(12)進(jìn)行修改,其中r為0到1之間的任意浮點數(shù),MaxPerturbation為最大變異步長[14]。
(7)迭代:重復(fù)執(zhí)行第3到第6步,將變異后的新染色體插入到種群pop中,直到達(dá)到種群上限或者適應(yīng)度基本不變?yōu)橹埂?/p>
w=w+(r-1.0)×MaxPerturbation
(12)
關(guān)系權(quán)值優(yōu)化的偽代碼如下:
算法1:用實數(shù)編碼遺傳算法構(gòu)建模糊認(rèn)知圖。
輸入:訓(xùn)練集,初始化的權(quán)值矩陣,交叉概率Pc,變異概率Mt,最大迭代代數(shù)T,最大變異步長MaxPerturbation
輸出:最佳權(quán)值矩陣。
1. while i 2.保存該種群中染色體的適應(yīng)度 3.將此染色體插入下一代種群popj 4. while n 5.對此個體按交叉概率Pc執(zhí)行交叉操作 6.對此個體按變異概率Mt執(zhí)行變異操作 7.這個新染色體插入下一代種群popj 8. end while 9. i++ 10. end while 通過上述步驟構(gòu)建出了基于模糊認(rèn)知圖的氣象要素相關(guān)性模型,首先應(yīng)用相關(guān)分析法將關(guān)系矩陣初始化,然后對初始化后的權(quán)值矩陣通過遺傳算法進(jìn)行優(yōu)化。 實驗選取的是某市2018年末和2019年兩個氣象監(jiān)測站點共24個點位的監(jiān)測數(shù)據(jù),觀測了逐日逐時的地表溫度(Dmt)、能見度(N)、本站氣壓(P)、降水量(R)、相對濕度(RH)、溫度(T)、露點溫度(Td)、風(fēng)速(V)和云量(Y)九個氣象要素數(shù)據(jù)。根據(jù)氣溫的起伏變化將實驗數(shù)據(jù)分為四季,2018年12月到來年2月為冬季,3月到5月為春季,6月到8月為夏季,9月到11月為秋季。通過相關(guān)性分析與合并處理,最終得到樂山市一年中四個季節(jié)不同氣象要素的相關(guān)系數(shù)。表1為3月份的部分?jǐn)?shù)據(jù)。 表1 春季的部分氣象數(shù)據(jù) 由上述表1和圖3可知,各個要素的取值范圍存在較大差距,因此在使用數(shù)據(jù)的時候需將數(shù)據(jù)進(jìn)行預(yù)處理。 數(shù)據(jù)預(yù)處理包括兩個步驟: (1)除了降水量R這一指標(biāo)外,對每個因素每天的24個點位的數(shù)據(jù)取平均值,對降水量R的24個數(shù)據(jù)求和,其結(jié)果作為當(dāng)日的數(shù)據(jù)結(jié)果。 (2)由于站點數(shù)據(jù)的差異較大,因此對參與模型構(gòu)建的數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理,將上一步處理好的數(shù)據(jù)壓縮到0和1之間,這里采用公式(13)最大最小值法標(biāo)準(zhǔn)化數(shù)據(jù)結(jié)果。 (13) 以平均值為代表的春季的數(shù)據(jù)值歸一化后的部分如表2所示。 表2 春季數(shù)據(jù)的歸一化值 FCM中的權(quán)重矩陣可以用來分析因果關(guān)系和推斷預(yù)測結(jié)果。首先運用氣象學(xué)中常用的相關(guān)分析法初始化權(quán)重矩陣。圖4為春季的初始化權(quán)重矩陣。 由于利用相關(guān)分析法得到的關(guān)系矩陣的適應(yīng)度還存在改進(jìn)的空間,利用公式(8)~公式(12)對矩陣不斷交叉變異,在迭代10 000次優(yōu)化之后,將最大適應(yīng)值的權(quán)重矩陣保存下來。經(jīng)過實驗發(fā)現(xiàn)不同的變異步長,得到的實驗結(jié)果不盡相同,下面列舉了五個不同的步長所產(chǎn)生的不同的適應(yīng)值。圖5為適應(yīng)值隨變異步長r的變化趨勢。 表3 不同步長對應(yīng)春季關(guān)系矩陣的適應(yīng)值 觀察圖5和表3發(fā)現(xiàn),當(dāng)步長r取0.01時,適應(yīng)值最高,則實驗中的步長r即取0.01。在迭代10 000次優(yōu)化之后,得到的關(guān)系矩陣的適應(yīng)值達(dá)到0.937 4,較第一次的0.9的適應(yīng)值有了較大改進(jìn),說明了遺傳算法的合理性。 根據(jù)前文所述,將優(yōu)化后的關(guān)系矩陣帶入模型,對氣象要素值進(jìn)行預(yù)測,并計算其預(yù)測值與實際值之間的絕對誤差和相對誤差,最后根據(jù)相對誤差來評價所構(gòu)建模型的預(yù)測精度。絕對誤差e(t,i)和平均相對誤差A(yù)verage(e(t,i))的計算公式如下: (14) (15) 進(jìn)行了如前文所述的實驗,四個季節(jié)利用建好的模型得出的預(yù)測值與實際值之間的誤差值如表4所示。 表4 實驗得出的四個季節(jié)的適應(yīng)值和誤差 通過表5可以看出,該模型得到的預(yù)測值與實際值之間的誤差均小于0.1,適應(yīng)值均大于0.9,模型具有合理性。 表5 實驗結(jié)果 通過利用模糊認(rèn)知圖對氣象要素相關(guān)性進(jìn)行分析建模,使得數(shù)據(jù)能進(jìn)入模糊認(rèn)知圖中進(jìn)行迭代,通過相關(guān)分析法對歷史數(shù)據(jù)進(jìn)行分析得到初始權(quán)重矩陣,通過遺傳算法對初始權(quán)重矩陣數(shù)次優(yōu)化,最后使模糊認(rèn)知圖迭代到一個穩(wěn)定不動的平衡點后對氣象要素進(jìn)行預(yù)測。 實驗表明,使用基于模糊認(rèn)知圖和遺傳算法的優(yōu)化模型進(jìn)行氣象要素相關(guān)性分析和要素預(yù)測具有可行性,將促進(jìn)氣象事業(yè)的進(jìn)一步發(fā)展。但是該文只考慮了2019年的數(shù)據(jù)作為訓(xùn)練集和測試集,數(shù)據(jù)量不夠大,同時對比方法不足。下一步考慮使用更多的歷史數(shù)據(jù),并使用其他方法以此構(gòu)建精度更高,對比更明顯的預(yù)測模型。3 實例與實驗分析
3.1 數(shù)據(jù)的收集與處理
3.2 關(guān)系矩陣的構(gòu)建
3.3 預(yù)測與誤差
3.4 實驗結(jié)果對比
4 結(jié)束語