王 濤, 武淑紅, 王耀力
(太原理工大學信息與計算機學院,晉中 030600)
實際生活中受到地形、經濟等多方面條件的限制,氣象站點的設置很不均勻,這就導致一些地區的氣象數據獲取困難。近年來通常是通過對這些地區的氣象數據進行空間插值預測來獲取整個地區完整且準確的氣象數據[1]。由于氣象因子的形成是一個復雜的非線性過程,因此大部分學者采用神經網絡方法進行氣象插值研究。Snell等[2]第一次將人工神經網絡應用于氣溫空間插值且預測精度高于反距離加權法和泰森多邊形等傳統插值方法。王兆禮等[3]采用BP神經網絡對降雨量進行空間插值預測。Tang等[4]構建了基于粗糙集的徑向基神經網絡插值模型用于解決實時氣象數據不完整、存在缺失的問題。Appelhans等[5]使用14種機器學習方法對Kilimanjaro山南部斜坡的溫度變量的空間插值進行了測試和評估。邱云翔等[6]將粒子群算法優化的反向傳播(back-propagation,BP)神經網絡分別用于三峽區間流域日、月和年降雨的空間插值預測研究。李純斌等[7]以甘肅省降水量為研究對象構建基于BP神經網絡和支持向量機的降水量空間插值模型。王亞琴[1]采用在輸入與輸出之間加直接連接的BP神經網絡進行氣溫插值預測,實驗結果表明BPNN-DIOC(back-propagation neural network with direct input-output connections)預測精度更高。
然而,傳統神經網絡方法需要復雜的結構調整和大量的網絡訓練計算,耗時較長。針對這些問題,Chen等[8]提出的寬度學習系統(broad learning system,BLS)提供了一種高效率的訓練方法,因其簡單、高效等優點廣泛地應用于各種分類和預測任務中。因此,基于寬度學習方法提出了一種半監督寬度學習模型(semi broad learning system, SBLS)用于解決氣溫空間插值問題。因為寬度學習屬于有監督學習方法,故結合稀疏編碼算法來更好地利用數據內部的結構和特征,首先利用稀疏編碼進行字典學習,然后將字典映射到一個代碼向量來重建樣本數據,最后將新的樣本數據引入寬度學習系統建立半監督寬度學習模型(SBLS)。

圖2 寬度學習系統網絡結構圖[8]
傳統的神經網絡算法如反向傳播(back-propagation,BP)神經網絡網絡,因其反向傳播計算耗時長、容易陷入局部最優等缺陷,網絡的預測性能往往受初始化區域的影響較大。為了有效解決這些問題,不少學者致力于尋求結構簡單的單層網絡模型,利用嶺回歸直接求解全局最優來優化網絡的效率,因此基于寬度的網絡結構逐漸發展起來[9]。典型的方法有:單層前饋神經網絡(single layer feedforward neural networks, SLFN)[10]、隨機向量功能鏈接網絡(random vector functional link neural network, RVFLNN)[11]、極限學習機(extreme learning machine, ELM)[12]等。
寬度學習系統(broad learning system, BLS)是一種具有平面功能鏈路結構的隨機向量單層神經網絡,是典型的RVFLNN[13]。傳統的功能鏈接神經網絡如圖1所示。然而,與原始的RVFLNN不同的是,輸入與輸出之間的直接連接被一組映射特征所替代,通過特征映射將輸入樣本變換為特征節點,特征節點再經由非線性映射生成增強節點。特征節點和增強節點共同作為系統的輸入,經由連接矩陣線性輸入。不同于傳統神經網絡算法采用梯度下降法等求解權值,迭代耗時長且容易陷入局部最優,寬度學習系統采用嶺回歸廣義逆直接求解連接權值。網絡的結構示意圖如圖2所示。

圖1 功能鏈接神經網絡結構圖[8]
稀疏編碼(sparse coding)是深度學習的一個重要分支,能夠很好地提取數據集的特征,在分類和回歸問題中都取得了成功。該算法是一種無監督學習算法,它通過尋找一組“超完備”基向量來更加高效地表示樣本數據。“超完備”基可以更有效地找出隱含在樣本數據內部的結構和模式。稀疏編碼是將輸入樣本X分解為多個基元的線性組合,這些基前面的系數表示輸入數據的特征,其分解公式表達為
(1)
式(1)中:φi是分解的基向量;ai是基向量對應的系數。為保證找到的基向量能更容易地學到輸入數據內在的結構和特征,一般要求基向量的個數k非常大,至少比X中元素個數n要大,因此,分解系數a不能唯一確定,要對其作一個稀疏性約束,即最小化以下函數:
(2)
式(2)中:第一部分是使稀疏編碼算法為輸入數據提供一個高擬合度的線性表達式,第二部分是稀疏懲罰項,即使得分解系數a變得稀疏。
為使氣溫空間插值有更高的預測性能和更少的時間損耗,對寬度學習系統進行了一定程度的創新和改進,提出了能更高效地找出樣本數據內部特征的半監督寬度學習系統(semi broad learning system, SBLS)。
半監督寬度學習系統(SBLS)是利用稀疏編碼算法進行特征提取的寬度學習結構。該算法的訓練過程分為可分為三個部分:首先,利用稀疏編碼進行字典學習,然后將字典映射到一個代碼向量來重建樣本數據;其次,將新的樣本數據映射到特征層,然后經過非線性映射將特征層映射到增強層,最后,將特征層和增強層作為整體輸入連接到輸出層;通過嶺回歸直接求解從輸入層到輸出層的連接權值。
2.1.1 字典學習
將稀疏編碼算法看成是構造包含k個向量的字典D,通過將字典映射到一個代碼向量來重建輸入樣本X的一種方法。字典D可由優化以下函數得到:

(3)
式(3)中:代碼向量s(i)是與字典D關聯的每個x(i)的新表示形式;字典D是無監督特征表示的關鍵,通過不斷更新字典D和代碼向量s(i)使得上式最小,每次迭代分兩步,第一步固定字典D,逐個使用樣本數據X來優化代碼向量s(i),第二步固定系數,一次性處理多個樣本數據對基向量進行優化。不斷迭代直至收斂,這樣就得到一組能有效表示輸入樣本的超完備基,即字典。一旦字典確定,將輸入樣本映射到新的特征向量的函數f(x;D)就可以確定。對于任意非線性函數g(),式(4)是得到新的特征向量的首選。
f(x;D)=g(DTx)
(4)
2.1.2 特征映射
將重建的樣本數據表示為R,通過函數φi(RWei+βei),i=1,2,…,n生成第i組映射特征Zi,特征映射的權重Wei是從分布密度ρ(ω)中隨機抽樣,具體說就是,映射特征的維度由Wei決定。最后,將特征映射的第i個集合表示為Zi≡[Z1,Z2,…,Zi],增強節點的第j組集合表示為Hj,是由函數ξj(ZiWhj+βhj)映射來的。同樣地增強節點的第j個集合也表示為Hj≡[H1,H2,…,Hj],并且增強節點的隨機權重Whj也是從分布密度ρ(ω)中抽樣得到的。對于給定的輸入數據R,假設寬度學習網絡有n組映射特征,每組映射特征有k個節點,特征映射的過程可由式(5)表示:
Zi=φ(RWei+βei),i=1,2,…,n
(5)
n組映射特征的集合記為Zn≡[Z1,Z2,…,Zn],第m組增強節點的生成過程由式(6)表示:
Hm≡ξ(ZnWhm+βhm)
(6)
因此,上述構建的半監督寬度學習系統可表示為
Y[Z1,Z2,…,Zn|ξ(ZnWh1+βh1),…,ξ(ZnWhm+βhm)]W′=[Z1,Z2,…,Zn|H1,H2,…,Hm]Wm=[Zn|Hm]Wm
(7)
式(7)中:矩陣Wm是由[Zn|Hm]的偽逆推導出來的:
Wm=[Zn|Hm]+Y
(8)
在本算法中,矩陣的偽逆由嶺回歸直接逼近得到,公式為

[Zn|Hm][Zn|Hm]T}-1[Zn|Hm]T
(9)
式(9)中:λ是常規的L2范數正則化。最后,預測值可由式(10)計算得到:
Y=[Zn|Hm]Wm
(10)
該模型的主要學習步驟如下:
(1)對于輸入數據,數據預處理是很重要的,為消除不同數據類型的量綱造成的差異,將數據歸一化到[0,1]。另外,為克服相鄰向量間的相關性應對數據進行白化。
(2)對于給定的未標記數據,可以無監督地學習上一節描述的字典矩陣D。此外,它的列提供樣本數據的稀疏投影。
(3)字典確定后,將輸入樣本映射到新的特征向量的函數就可以確定。
(4)將得到的新特征向量引入寬度學習系統進行分類預測等研究。
因此,基于稀疏編碼的半監督寬度學習算法的步驟見表1。

表1 半監督寬度學習算法步驟
圖3表示基于半監督寬度學習系統的氣溫空間插值模型的結構圖。在構建好半監督寬度學習模型的基礎上,以相關氣象數據作為系統的輸入,經訓練得到的輸出為預測氣溫值。

圖3 基于半監督寬度學習的氣溫空間插值模型
以山西省氣象站點的數據進行實驗,相關數據包括山西省108個氣象站點所處位置的經、緯度和海拔,以及1981—2010年累年值日值氣溫。山西省大部分地區在5、6、7月份氣溫較高,空氣干燥,風力也較大,屬于森林火災高發期。僅選取5月1—5月7日的日值氣溫進行氣溫空間插值預測研究。
選取前70%的76個氣象站點的相關數據作為訓練樣本來構建基于半監督寬度學習的氣溫空間插值模型,其余的32個站點的數據作為測試樣本,以實驗整個區域的氣象數據空間化。輸入因子為氣象站點所處位置的經度、緯度和海拔,輸入因子為該站點的日值氣溫,該模型的拓撲結構如圖4所示。為實現對不同類型的數據進行統一分析以提高預測精度,將數據按式(11)進行歸一化處理。

(11)
式(11)中:Tk表示原始數據;Tmax和Tmin分別表示原始數據的最大和最小值;tk表示原始數據的歸一化值。
為評測半監督寬度學習模型(SBLS)的性能,進行了該模型與BP神經網絡以及原始寬度學習系統(BLS)的比較。BP神經網絡采用只有一層隱含層的結構,使用五折交叉驗證法來確定隱含層節點個數。BLS以只經過歸一化的原始數據為輸入數據。
將以上三種方法均用于山西省108個氣象站點1981—2010累年值日值氣溫的插值預測研究。每次試驗進行5次取平均值。預測精度通過均方根誤差(RMSE)、平均百分比誤差(MAPE)和時間來評估。三種方法對32個測試站點的插值結果的RMSE和時間消耗分別見表2和表3,BP算法的預測值(Pre_BP)、BLS算法的預測值(Pre_BLS)及SBLS算法的預測值(Pre_SBLS)與真實值(Actual)的比較如圖5所示,由此可得以下結論。

圖5 32個測試站點5月1—7日在三種方法下的插值結果
(1)在本數據集上采用SBLS的RMSE最低,因為與BLS相比,SBLS加入了特征提取,更有效地找到樣本數據內部的結構和特征。
(2)BLS所用時間最短,SBLS次之,BP所用時間最長。因為BLS通過嶺回歸直接求解連接權值而且結構簡單,而BP神經網絡在使用梯度下降法更新參數時需要數次迭代。
(3)相比于BLS、SBLS所用時間長是因為稀疏編碼找字典時耗費大量時間。

表2 三種方法對測試站點插值結果的RMSE(5月1—7日)

表3 三種方法的時間消耗
在SBLS中調整的參數有:每組映射特征包含的節點數、映射特征組數和增強節點數。將映射特征數記為N2,增強節點數記為N3,RMSE與N2、N3的關系如圖6所示,由圖6可得以下結論。
(1)隨著N2和N3的增加,數據集的RMSE呈現先下降后上升的趨勢,這是因為SBLS的預測能力隨著N2和N3的增加而逐漸增加并趨于飽和。
(2)過低的N2和N3會導致預測結果的RMSE較高,過高的N2和N3會增加額外的計算。

圖6 RMSE與N2、N3關系圖
(1)從預測精度來說,本文SBLS的預測性能更高,因為它利用稀疏編碼將原始輸入數據映射到一個新的特征向量,充分發掘了數據內部的結構和特征。
(2)從消耗時間來看,與BP神經網絡相比,BLS和SBLS消耗的時間更少,原因是寬度學習需要訓練的參數遠少于BP神經網絡需要訓練的參數,而且寬度學習使用嶺回歸直接求解,無需反復迭代。寬度學習的單隱層簡單結構也是訓練時間更短的原因,但由于對照的BP神經網絡也只采用一層隱含層,故此點不作考慮。相比于BLS、SBLS由于使用額外的計算來獲取字典,因此更耗時。
(3)不能保證從具有任何參數設置的SBLS中獲取最低的RMSE,這是由于節點太少的話,在映射過程中會丟失很多信息。
另外,對提出的SBLS的缺點總結如下。
(1)與其他插值算法類似,BLS和SBLS都對輸入敏感。
(2)如果在映射特征層和增強層設置太多節點會占用大量內存空間。
為提高氣溫空間插值的預測性能并減少訓練時間,對寬度學習系統進行一定程度的改進,提出了能更高效地找出樣本數據內部特征的半監督寬度學習模型(SBLS),其使用稀疏編碼找到一個字典來重建輸入樣本,然后通過寬度學習來進行插值預測。在山西省1981—2010累年值日值氣溫數據集上的實驗結果表明,SBLS不僅可以獲得更高的預測精度,而且比傳統BP神經網絡耗費更少的時間。此外,對氣溫的研究只考慮了3個影響因子,未來還可以將SBLS用于更多影響因子的氣象空間插值研究中去。