王 濤, 武淑紅, 王耀力
(太原理工大學(xué)信息與計(jì)算機(jī)學(xué)院,晉中 030600)
實(shí)際生活中受到地形、經(jīng)濟(jì)等多方面條件的限制,氣象站點(diǎn)的設(shè)置很不均勻,這就導(dǎo)致一些地區(qū)的氣象數(shù)據(jù)獲取困難。近年來通常是通過對這些地區(qū)的氣象數(shù)據(jù)進(jìn)行空間插值預(yù)測來獲取整個地區(qū)完整且準(zhǔn)確的氣象數(shù)據(jù)[1]。由于氣象因子的形成是一個復(fù)雜的非線性過程,因此大部分學(xué)者采用神經(jīng)網(wǎng)絡(luò)方法進(jìn)行氣象插值研究。Snell等[2]第一次將人工神經(jīng)網(wǎng)絡(luò)應(yīng)用于氣溫空間插值且預(yù)測精度高于反距離加權(quán)法和泰森多邊形等傳統(tǒng)插值方法。王兆禮等[3]采用BP神經(jīng)網(wǎng)絡(luò)對降雨量進(jìn)行空間插值預(yù)測。Tang等[4]構(gòu)建了基于粗糙集的徑向基神經(jīng)網(wǎng)絡(luò)插值模型用于解決實(shí)時氣象數(shù)據(jù)不完整、存在缺失的問題。Appelhans等[5]使用14種機(jī)器學(xué)習(xí)方法對Kilimanjaro山南部斜坡的溫度變量的空間插值進(jìn)行了測試和評估。邱云翔等[6]將粒子群算法優(yōu)化的反向傳播(back-propagation,BP)神經(jīng)網(wǎng)絡(luò)分別用于三峽區(qū)間流域日、月和年降雨的空間插值預(yù)測研究。李純斌等[7]以甘肅省降水量為研究對象構(gòu)建基于BP神經(jīng)網(wǎng)絡(luò)和支持向量機(jī)的降水量空間插值模型。王亞琴[1]采用在輸入與輸出之間加直接連接的BP神經(jīng)網(wǎng)絡(luò)進(jìn)行氣溫插值預(yù)測,實(shí)驗(yàn)結(jié)果表明BPNN-DIOC(back-propagation neural network with direct input-output connections)預(yù)測精度更高。
然而,傳統(tǒng)神經(jīng)網(wǎng)絡(luò)方法需要復(fù)雜的結(jié)構(gòu)調(diào)整和大量的網(wǎng)絡(luò)訓(xùn)練計(jì)算,耗時較長。針對這些問題,Chen等[8]提出的寬度學(xué)習(xí)系統(tǒng)(broad learning system,BLS)提供了一種高效率的訓(xùn)練方法,因其簡單、高效等優(yōu)點(diǎn)廣泛地應(yīng)用于各種分類和預(yù)測任務(wù)中。因此,基于寬度學(xué)習(xí)方法提出了一種半監(jiān)督寬度學(xué)習(xí)模型(semi broad learning system, SBLS)用于解決氣溫空間插值問題。因?yàn)閷挾葘W(xué)習(xí)屬于有監(jiān)督學(xué)習(xí)方法,故結(jié)合稀疏編碼算法來更好地利用數(shù)據(jù)內(nèi)部的結(jié)構(gòu)和特征,首先利用稀疏編碼進(jìn)行字典學(xué)習(xí),然后將字典映射到一個代碼向量來重建樣本數(shù)據(jù),最后將新的樣本數(shù)據(jù)引入寬度學(xué)習(xí)系統(tǒng)建立半監(jiān)督寬度學(xué)習(xí)模型(SBLS)。
圖2 寬度學(xué)習(xí)系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)圖[8]
傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)算法如反向傳播(back-propagation,BP)神經(jīng)網(wǎng)絡(luò)網(wǎng)絡(luò),因其反向傳播計(jì)算耗時長、容易陷入局部最優(yōu)等缺陷,網(wǎng)絡(luò)的預(yù)測性能往往受初始化區(qū)域的影響較大。為了有效解決這些問題,不少學(xué)者致力于尋求結(jié)構(gòu)簡單的單層網(wǎng)絡(luò)模型,利用嶺回歸直接求解全局最優(yōu)來優(yōu)化網(wǎng)絡(luò)的效率,因此基于寬度的網(wǎng)絡(luò)結(jié)構(gòu)逐漸發(fā)展起來[9]。典型的方法有:單層前饋神經(jīng)網(wǎng)絡(luò)(single layer feedforward neural networks, SLFN)[10]、隨機(jī)向量功能鏈接網(wǎng)絡(luò)(random vector functional link neural network, RVFLNN)[11]、極限學(xué)習(xí)機(jī)(extreme learning machine, ELM)[12]等。
寬度學(xué)習(xí)系統(tǒng)(broad learning system, BLS)是一種具有平面功能鏈路結(jié)構(gòu)的隨機(jī)向量單層神經(jīng)網(wǎng)絡(luò),是典型的RVFLNN[13]。傳統(tǒng)的功能鏈接神經(jīng)網(wǎng)絡(luò)如圖1所示。然而,與原始的RVFLNN不同的是,輸入與輸出之間的直接連接被一組映射特征所替代,通過特征映射將輸入樣本變換為特征節(jié)點(diǎn),特征節(jié)點(diǎn)再經(jīng)由非線性映射生成增強(qiáng)節(jié)點(diǎn)。特征節(jié)點(diǎn)和增強(qiáng)節(jié)點(diǎn)共同作為系統(tǒng)的輸入,經(jīng)由連接矩陣線性輸入。不同于傳統(tǒng)神經(jīng)網(wǎng)絡(luò)算法采用梯度下降法等求解權(quán)值,迭代耗時長且容易陷入局部最優(yōu),寬度學(xué)習(xí)系統(tǒng)采用嶺回歸廣義逆直接求解連接權(quán)值。網(wǎng)絡(luò)的結(jié)構(gòu)示意圖如圖2所示。
圖1 功能鏈接神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖[8]
稀疏編碼(sparse coding)是深度學(xué)習(xí)的一個重要分支,能夠很好地提取數(shù)據(jù)集的特征,在分類和回歸問題中都取得了成功。該算法是一種無監(jiān)督學(xué)習(xí)算法,它通過尋找一組“超完備”基向量來更加高效地表示樣本數(shù)據(jù)。“超完備”基可以更有效地找出隱含在樣本數(shù)據(jù)內(nèi)部的結(jié)構(gòu)和模式。稀疏編碼是將輸入樣本X分解為多個基元的線性組合,這些基前面的系數(shù)表示輸入數(shù)據(jù)的特征,其分解公式表達(dá)為
(1)
式(1)中:φi是分解的基向量;ai是基向量對應(yīng)的系數(shù)。為保證找到的基向量能更容易地學(xué)到輸入數(shù)據(jù)內(nèi)在的結(jié)構(gòu)和特征,一般要求基向量的個數(shù)k非常大,至少比X中元素個數(shù)n要大,因此,分解系數(shù)a不能唯一確定,要對其作一個稀疏性約束,即最小化以下函數(shù):
(2)
式(2)中:第一部分是使稀疏編碼算法為輸入數(shù)據(jù)提供一個高擬合度的線性表達(dá)式,第二部分是稀疏懲罰項(xiàng),即使得分解系數(shù)a變得稀疏。
為使氣溫空間插值有更高的預(yù)測性能和更少的時間損耗,對寬度學(xué)習(xí)系統(tǒng)進(jìn)行了一定程度的創(chuàng)新和改進(jìn),提出了能更高效地找出樣本數(shù)據(jù)內(nèi)部特征的半監(jiān)督寬度學(xué)習(xí)系統(tǒng)(semi broad learning system, SBLS)。
半監(jiān)督寬度學(xué)習(xí)系統(tǒng)(SBLS)是利用稀疏編碼算法進(jìn)行特征提取的寬度學(xué)習(xí)結(jié)構(gòu)。該算法的訓(xùn)練過程分為可分為三個部分:首先,利用稀疏編碼進(jìn)行字典學(xué)習(xí),然后將字典映射到一個代碼向量來重建樣本數(shù)據(jù);其次,將新的樣本數(shù)據(jù)映射到特征層,然后經(jīng)過非線性映射將特征層映射到增強(qiáng)層,最后,將特征層和增強(qiáng)層作為整體輸入連接到輸出層;通過嶺回歸直接求解從輸入層到輸出層的連接權(quán)值。
2.1.1 字典學(xué)習(xí)
將稀疏編碼算法看成是構(gòu)造包含k個向量的字典D,通過將字典映射到一個代碼向量來重建輸入樣本X的一種方法。字典D可由優(yōu)化以下函數(shù)得到:
(3)
式(3)中:代碼向量s(i)是與字典D關(guān)聯(lián)的每個x(i)的新表示形式;字典D是無監(jiān)督特征表示的關(guān)鍵,通過不斷更新字典D和代碼向量s(i)使得上式最小,每次迭代分兩步,第一步固定字典D,逐個使用樣本數(shù)據(jù)X來優(yōu)化代碼向量s(i),第二步固定系數(shù),一次性處理多個樣本數(shù)據(jù)對基向量進(jìn)行優(yōu)化。不斷迭代直至收斂,這樣就得到一組能有效表示輸入樣本的超完備基,即字典。一旦字典確定,將輸入樣本映射到新的特征向量的函數(shù)f(x;D)就可以確定。對于任意非線性函數(shù)g(),式(4)是得到新的特征向量的首選。
f(x;D)=g(DTx)
(4)
2.1.2 特征映射
將重建的樣本數(shù)據(jù)表示為R,通過函數(shù)φi(RWei+βei),i=1,2,…,n生成第i組映射特征Zi,特征映射的權(quán)重Wei是從分布密度ρ(ω)中隨機(jī)抽樣,具體說就是,映射特征的維度由Wei決定。最后,將特征映射的第i個集合表示為Zi≡[Z1,Z2,…,Zi],增強(qiáng)節(jié)點(diǎn)的第j組集合表示為Hj,是由函數(shù)ξj(ZiWhj+βhj)映射來的。同樣地增強(qiáng)節(jié)點(diǎn)的第j個集合也表示為Hj≡[H1,H2,…,Hj],并且增強(qiáng)節(jié)點(diǎn)的隨機(jī)權(quán)重Whj也是從分布密度ρ(ω)中抽樣得到的。對于給定的輸入數(shù)據(jù)R,假設(shè)寬度學(xué)習(xí)網(wǎng)絡(luò)有n組映射特征,每組映射特征有k個節(jié)點(diǎn),特征映射的過程可由式(5)表示:
Zi=φ(RWei+βei),i=1,2,…,n
(5)
n組映射特征的集合記為Zn≡[Z1,Z2,…,Zn],第m組增強(qiáng)節(jié)點(diǎn)的生成過程由式(6)表示:
Hm≡ξ(ZnWhm+βhm)
(6)
因此,上述構(gòu)建的半監(jiān)督寬度學(xué)習(xí)系統(tǒng)可表示為
Y[Z1,Z2,…,Zn|ξ(ZnWh1+βh1),…,ξ(ZnWhm+βhm)]W′=[Z1,Z2,…,Zn|H1,H2,…,Hm]Wm=[Zn|Hm]Wm
(7)
式(7)中:矩陣Wm是由[Zn|Hm]的偽逆推導(dǎo)出來的:
Wm=[Zn|Hm]+Y
(8)
在本算法中,矩陣的偽逆由嶺回歸直接逼近得到,公式為
[Zn|Hm][Zn|Hm]T}-1[Zn|Hm]T
(9)
式(9)中:λ是常規(guī)的L2范數(shù)正則化。最后,預(yù)測值可由式(10)計(jì)算得到:
Y=[Zn|Hm]Wm
(10)
該模型的主要學(xué)習(xí)步驟如下:
(1)對于輸入數(shù)據(jù),數(shù)據(jù)預(yù)處理是很重要的,為消除不同數(shù)據(jù)類型的量綱造成的差異,將數(shù)據(jù)歸一化到[0,1]。另外,為克服相鄰向量間的相關(guān)性應(yīng)對數(shù)據(jù)進(jìn)行白化。
(2)對于給定的未標(biāo)記數(shù)據(jù),可以無監(jiān)督地學(xué)習(xí)上一節(jié)描述的字典矩陣D。此外,它的列提供樣本數(shù)據(jù)的稀疏投影。
(3)字典確定后,將輸入樣本映射到新的特征向量的函數(shù)就可以確定。
(4)將得到的新特征向量引入寬度學(xué)習(xí)系統(tǒng)進(jìn)行分類預(yù)測等研究。
因此,基于稀疏編碼的半監(jiān)督寬度學(xué)習(xí)算法的步驟見表1。
表1 半監(jiān)督寬度學(xué)習(xí)算法步驟
圖3表示基于半監(jiān)督寬度學(xué)習(xí)系統(tǒng)的氣溫空間插值模型的結(jié)構(gòu)圖。在構(gòu)建好半監(jiān)督寬度學(xué)習(xí)模型的基礎(chǔ)上,以相關(guān)氣象數(shù)據(jù)作為系統(tǒng)的輸入,經(jīng)訓(xùn)練得到的輸出為預(yù)測氣溫值。
圖3 基于半監(jiān)督寬度學(xué)習(xí)的氣溫空間插值模型
以山西省氣象站點(diǎn)的數(shù)據(jù)進(jìn)行實(shí)驗(yàn),相關(guān)數(shù)據(jù)包括山西省108個氣象站點(diǎn)所處位置的經(jīng)、緯度和海拔,以及1981—2010年累年值日值氣溫。山西省大部分地區(qū)在5、6、7月份氣溫較高,空氣干燥,風(fēng)力也較大,屬于森林火災(zāi)高發(fā)期。僅選取5月1—5月7日的日值氣溫進(jìn)行氣溫空間插值預(yù)測研究。
選取前70%的76個氣象站點(diǎn)的相關(guān)數(shù)據(jù)作為訓(xùn)練樣本來構(gòu)建基于半監(jiān)督寬度學(xué)習(xí)的氣溫空間插值模型,其余的32個站點(diǎn)的數(shù)據(jù)作為測試樣本,以實(shí)驗(yàn)整個區(qū)域的氣象數(shù)據(jù)空間化。輸入因子為氣象站點(diǎn)所處位置的經(jīng)度、緯度和海拔,輸入因子為該站點(diǎn)的日值氣溫,該模型的拓?fù)浣Y(jié)構(gòu)如圖4所示。為實(shí)現(xiàn)對不同類型的數(shù)據(jù)進(jìn)行統(tǒng)一分析以提高預(yù)測精度,將數(shù)據(jù)按式(11)進(jìn)行歸一化處理。
(11)
式(11)中:Tk表示原始數(shù)據(jù);Tmax和Tmin分別表示原始數(shù)據(jù)的最大和最小值;tk表示原始數(shù)據(jù)的歸一化值。
為評測半監(jiān)督寬度學(xué)習(xí)模型(SBLS)的性能,進(jìn)行了該模型與BP神經(jīng)網(wǎng)絡(luò)以及原始寬度學(xué)習(xí)系統(tǒng)(BLS)的比較。BP神經(jīng)網(wǎng)絡(luò)采用只有一層隱含層的結(jié)構(gòu),使用五折交叉驗(yàn)證法來確定隱含層節(jié)點(diǎn)個數(shù)。BLS以只經(jīng)過歸一化的原始數(shù)據(jù)為輸入數(shù)據(jù)。
將以上三種方法均用于山西省108個氣象站點(diǎn)1981—2010累年值日值氣溫的插值預(yù)測研究。每次試驗(yàn)進(jìn)行5次取平均值。預(yù)測精度通過均方根誤差(RMSE)、平均百分比誤差(MAPE)和時間來評估。三種方法對32個測試站點(diǎn)的插值結(jié)果的RMSE和時間消耗分別見表2和表3,BP算法的預(yù)測值(Pre_BP)、BLS算法的預(yù)測值(Pre_BLS)及SBLS算法的預(yù)測值(Pre_SBLS)與真實(shí)值(Actual)的比較如圖5所示,由此可得以下結(jié)論。
圖5 32個測試站點(diǎn)5月1—7日在三種方法下的插值結(jié)果
(1)在本數(shù)據(jù)集上采用SBLS的RMSE最低,因?yàn)榕cBLS相比,SBLS加入了特征提取,更有效地找到樣本數(shù)據(jù)內(nèi)部的結(jié)構(gòu)和特征。
(2)BLS所用時間最短,SBLS次之,BP所用時間最長。因?yàn)锽LS通過嶺回歸直接求解連接權(quán)值而且結(jié)構(gòu)簡單,而BP神經(jīng)網(wǎng)絡(luò)在使用梯度下降法更新參數(shù)時需要數(shù)次迭代。
(3)相比于BLS、SBLS所用時間長是因?yàn)橄∈杈幋a找字典時耗費(fèi)大量時間。
表2 三種方法對測試站點(diǎn)插值結(jié)果的RMSE(5月1—7日)
表3 三種方法的時間消耗
在SBLS中調(diào)整的參數(shù)有:每組映射特征包含的節(jié)點(diǎn)數(shù)、映射特征組數(shù)和增強(qiáng)節(jié)點(diǎn)數(shù)。將映射特征數(shù)記為N2,增強(qiáng)節(jié)點(diǎn)數(shù)記為N3,RMSE與N2、N3的關(guān)系如圖6所示,由圖6可得以下結(jié)論。
(1)隨著N2和N3的增加,數(shù)據(jù)集的RMSE呈現(xiàn)先下降后上升的趨勢,這是因?yàn)镾BLS的預(yù)測能力隨著N2和N3的增加而逐漸增加并趨于飽和。
(2)過低的N2和N3會導(dǎo)致預(yù)測結(jié)果的RMSE較高,過高的N2和N3會增加額外的計(jì)算。
圖6 RMSE與N2、N3關(guān)系圖
(1)從預(yù)測精度來說,本文SBLS的預(yù)測性能更高,因?yàn)樗孟∈杈幋a將原始輸入數(shù)據(jù)映射到一個新的特征向量,充分發(fā)掘了數(shù)據(jù)內(nèi)部的結(jié)構(gòu)和特征。
(2)從消耗時間來看,與BP神經(jīng)網(wǎng)絡(luò)相比,BLS和SBLS消耗的時間更少,原因是寬度學(xué)習(xí)需要訓(xùn)練的參數(shù)遠(yuǎn)少于BP神經(jīng)網(wǎng)絡(luò)需要訓(xùn)練的參數(shù),而且寬度學(xué)習(xí)使用嶺回歸直接求解,無需反復(fù)迭代。寬度學(xué)習(xí)的單隱層簡單結(jié)構(gòu)也是訓(xùn)練時間更短的原因,但由于對照的BP神經(jīng)網(wǎng)絡(luò)也只采用一層隱含層,故此點(diǎn)不作考慮。相比于BLS、SBLS由于使用額外的計(jì)算來獲取字典,因此更耗時。
(3)不能保證從具有任何參數(shù)設(shè)置的SBLS中獲取最低的RMSE,這是由于節(jié)點(diǎn)太少的話,在映射過程中會丟失很多信息。
另外,對提出的SBLS的缺點(diǎn)總結(jié)如下。
(1)與其他插值算法類似,BLS和SBLS都對輸入敏感。
(2)如果在映射特征層和增強(qiáng)層設(shè)置太多節(jié)點(diǎn)會占用大量內(nèi)存空間。
為提高氣溫空間插值的預(yù)測性能并減少訓(xùn)練時間,對寬度學(xué)習(xí)系統(tǒng)進(jìn)行一定程度的改進(jìn),提出了能更高效地找出樣本數(shù)據(jù)內(nèi)部特征的半監(jiān)督寬度學(xué)習(xí)模型(SBLS),其使用稀疏編碼找到一個字典來重建輸入樣本,然后通過寬度學(xué)習(xí)來進(jìn)行插值預(yù)測。在山西省1981—2010累年值日值氣溫?cái)?shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,SBLS不僅可以獲得更高的預(yù)測精度,而且比傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)耗費(fèi)更少的時間。此外,對氣溫的研究只考慮了3個影響因子,未來還可以將SBLS用于更多影響因子的氣象空間插值研究中去。