李 海 桑晨禹 郭生權 田 眾
(中國民航大學天津市智能信號與圖像處理重點實驗室 天津 300300)
冰雹災害性天氣雖然出現的范圍小、時間短,但是具有極強的破壞力,且常常伴隨強降雨、狂風等天氣過程,嚴重阻礙農業、電力通訊等方面的發展。精準的冰雹檢測對于災害性冰雹天氣預報預警以及人工作業防雹指揮具有重要意義。冰雹產生于強對流天氣,可通過雷達探測強對流系統而進行冰雹的識別[1]。與常規多普勒天氣雷達相比,雙極化氣象雷達能夠發射水平和垂直方向的電磁波,不僅能得到反射率因子、譜寬和速度,還能反演得到反映水凝物降水粒子形狀、尺寸、密度等物理特性的多種極化參數[2-3],在降水估計、水凝物識別和災害監測等方面具有明顯優勢,是冰雹檢測領域的研究熱點。
1986年雙極化氣象雷達極化參數首次被應用于冰雹探測領域,Aydin等提出結合反射率因子和差分反射率因子的冰雹識別算法[4]。這種基于統計結果的判決雖然方法簡單,但是該算法的前提條件是假設極化參數是互斥的。目前,雙極化氣象雷達冰雹檢測的研究主要有兩大類方法,分別為模糊邏輯判別技術和機器學習類算法。Straka應用模糊邏輯成功實現降水粒子分類[5],Ryzhkov驗證了該算法能夠有效識別冰雹[6]。后續相關學者的研究主要集中于不同波段雷達驗證應用[7-8]和隸屬度函數參數的優化改進[9-11]。模糊邏輯算法能夠有效解決數據交叉、不精確等問題。但是該算法隸屬度函數參數的確定和相關權重的選擇過度依賴專家經驗值,主觀性較大。現已應用到天氣檢測領域的機器學習相關算法主要有支持向量機[12]、貝葉斯[13]、聚類[14]和神經網絡[15]等。支持向量機算法在同等樣本數量下計算量大、耗時長。貝葉斯神經網絡應用回歸和分類方案進行冰雹檢測,但是易出現過擬合現象。聚類算法減少了獲取標簽的成本,不易受到數據污染,但是該方法計算成本高且聚類誤差對識別結果影響較大。王金虎等將神經網絡算法與水凝物分類相結合,但對冰雹等大顆粒固體粒子識別結果較差[15]。神經網絡能夠依據數據搭建輸入輸出關系、自適應調節模型參數,然而機器學習性能的上限取決于數據和數據特征[16]。人為選定的特征往往在不同數據、不同模型下不能通用。
本文提出了一種基于卷積神經網絡(Convolutional Neural Network,CNN)的冰雹檢測方法,該方法通過前向傳播搭建模型設置網絡結構,再通過后向傳播訓練網絡調節模型參數,最終得到冰雹檢測模型。該方法能夠提取極化參數數據的顯著特征,同時無需進行模型參數假設就可以有效進行冰雹檢測。
本文選取雙極化氣象雷達回波數據計算得到的四種極化參數作為冰雹檢測的屬性依據,具體為反射率因子Zh、差分反射率因子ZDR、互相關系數ρHV、以及差分相移率KDP。這些極化參數以數值的形式單獨存放在每個雷達回波分辨單元內,而單個數值無法進行卷積計算。因此,在構建卷積神經網絡模型之前需要對分辨單元內的極化參數進行擴充。目的是將極化參數數值轉化成數據矩陣的形式。首先將每個分辨單元沿距離向和方位向分割成n×n個小分辨單元,每個小分辨單元為一個插值點,然后采用最近鄰插值方法[17],利用相鄰分辨單元極化信息的值來推斷出插值點的數值。n取值為大于3的正整數,取值越大越有利于特征提取但同時產生的冗余也越多。本文取n=5,圖1為分辨單元內一個極化參數插值處理示意圖。將本文選取的四個極化參量分別進行插值處理后,再通過堆疊操作得到四通道的數據矩陣。此數據矩陣與對應的標簽信息相結合構成冰雹檢測數據集。
雙極化氣象雷達的極化參數經過數據預處理后每個分辨單元數據格式為4×5×5,本文以此三維數組作為輸入,構建一個輸出為冰雹和其他(非冰雹降水粒子統稱)的二分類網絡。CNN是一種“特征提取器+分類器”的串聯結構,其基礎模型包括卷積層、池化層、全連接層三個部分。卷積和池化對極化參數的特征進行提取,全連接神經網絡依據特征進行分類。參考CNN的基本架構,本文所提的冰雹檢測模型由一個輸入層、兩個卷積層、兩個池化層、三個全連接層和一個輸出層組成。模型結構如圖2所示,各層參數設置如表1所示。

圖2 基于CNN的冰雹檢測模型構建

表1 模型參數設置
卷積層通過卷積運算的方式對數據進行特征提取。初始化的卷積核以固定的步長在極化參數上滑動來遍歷每個數據。每滑動一次,就要計算卷積核和極化參數重合區域的乘積并求和,再加上偏置。為了防止數據邊緣信息丟失,在卷積層1中對極化數據使用全零填充以保證輸入數據大小和輸出數據大小一致。卷積核會在一次次的迭代中被更新,無限接近符合當前數據分布的特征向量集,最后利用訓練好的卷積核提取每個雷達分辨單元的極化參數數據特征。以卷積層1中一個通道的輸入為例,在全零填充后輸入矩陣變為7×7,經卷積運算后,輸出大小為5×5的特征矩陣,示意圖如圖3所示。

圖3 極化參數卷積示意圖
經卷積提取后的特征矩陣送入池化層。池化層的作用是對卷積之后的特征矩陣進行降維處理。該層考慮特征不變性,在空間范圍內做維度約減,使模型得到更廣泛的特征。
Xl=pool(Xl-1)
(1)
l表示層數取值為3和5,對應模型中的最大值池化層和均值池化層;Xl和Xl-1分別為池化層和卷積層的輸出;pool(·)表示池化函數。在冰雹檢測算法中采用最大池化和平均池化對極化數據的特征進行聚合統計,既關注重要的局部特征,又關注全局特征。池化過程通過設定池化窗口的大小和步長遍歷特征矩陣,每滑動一次就計算池化窗口對應的特征矩陣相應區域內的最大值或均值。以圖3的輸出為例,兩種池化標準的計算結果如圖4所示。

圖4 極化參數池化(最大、平均)過程示意圖
全連接層選用3層神經網絡,同時加入Relu激活函數和Dropout策略。最后使用Softmax函數作為輸出層函數,得到預測結果,其數學定義為
(2)


圖5 原始全連接神經網絡

圖6 Dropout后網絡結構
模型訓練任務的最終目標是讓預測值和真實標簽盡可能的接近。在形式上表現為通過調整模型參數最小化損失函數。而模型參數調整依據梯度下降算法。在后向傳播過程中,通過導數鏈式法則計算損失函數J對各參數的梯度,并根據梯度和學習率更新網絡中的權重和偏置。為了避免模型在訓練過程中陷入最優解以及減小學習率設置對參數收斂的影響,引入了指數衰減學習率和滑動平均。
下面以權重的更新過程為例進行詳細闡述,模型權重參數的更新公式為

(3)

J(w,b)=Jdata(w,b)+JR(w,b)
(4)

(5)
正則化項是在最小化損失函數J時增加一個約束,能夠降低原始損失函數在離線訓練時的誤差以及減小衡量指標下參數w的規模,有效避免冰雹檢測模型的過擬合。
JR(w,b)=αΩ(w)
(6)
其中α表示正則化的強度;Ω(w)表示正則化函數,不同的正則化方式對冰雹檢測模型的影響也不同,L2正則化通過加入αw來約束參數的變化,這主要是對參數線性的放縮;L1方案正則化對應梯度添加了和符號函數sign(wi)同號的一個常數,能夠通過較大的α來稀疏冰雹檢測模型參數。因此,在冰雹檢測模型離線訓練過程中使用L1范數正則化。即公式(4)對應損失函數公式(7),其中‖w‖1作為權重絕對值之和為
(7)
確定損失函數后,對于不同層的梯度計算步驟如下:
1)首先定義節點靈敏度誤差δ,表示損失函數J對第l層神經元輸入的變化率為式(8)所示。
(8)
當第l層為卷積層時:
δl=up(δl+1)wl+1*f′(ul)
(9)
其中up(·)表示上采樣。
當第l層為池化層時:
δl=δl+1rot180(wl+1)*f′(ul)
(10)
其中,rot180(·)表示矩陣順時針旋轉180°。
當第l層為全連接層時:
δl=(wl)Tδl+1f′(ul)
(11)
2)依據得到的各層靈敏度誤差計算權重和偏置的梯度。
?w=δlxl-1
?b=δl
(12)
模型參數更新公式(3)中η表示學習率。學習率過大過小都會影響參數收斂。為了使模型中參數學習率能夠自適應調整,加入了指數衰減學習率。η的計算公式為
η=η0·βK
(13)
其中η0表示初始學習率;β表示學習率的衰減率;K表示當前訓練次數與學習率更新頻率的比值。在冰雹檢測模型中,學習率更新頻率定義為訓練樣本總數和批量樣本數的比值。在參數更新的過程中加入滑動平均用于記錄一段時間內模型中的權重和偏置,防止模型過擬合。在冰雹檢測模型離線訓練的過程中,滑動平均值能夠體現參數的變化。可以保存每一次訓練后的模型,實現斷點訓練,在測試時只需要加載最新的模型即可,確保模型在訓練時更加靈活。
本文選取美國國家海洋和大氣管理局(National Atmospheric Administration,NOAA)數據庫中提供的KTLX雙極化氣象雷達偏振參量信息進行實驗。在2019年4月至2020年3月期間獲取的回波數據中選取15萬個作為訓練樣本。該樣本數據包含多個典型的天氣情況并涉及不同的季節,具有較強的代表性。采用Python語言和Tensorflow架構進行編程,實現上述模型搭建和參數調整。在訓練過程中,采用初始學習率為0.001,學習率衰減率為0.99,滑動平均衰減率為0.99,Droupout調整策略保留率為0.5。在輸入樣本的過程中引入了小批次樣本降低復雜度。隨著訓練次數的增加損失誤差不斷下降,當損失誤差達到收斂狀態時,保存模型及權重參數。模型訓練過程中準確率和損失誤差的變化曲線如圖7所示。

圖7 準確率和損失誤差變化曲線
基于卷積神經網絡的雙極化氣象雷達冰雹檢測方法流程如圖8所示。

圖8 基于卷積神經網絡的雙極化氣象雷達冰雹檢測方法流程圖
基于卷積神經網絡的雙極化氣象雷達冰雹檢測方法步驟如下所示。
1)步驟1:對獲取的雙極化氣象雷達極化數據進行處理,使其符合卷積神經網絡的輸入同時提高數據分辨率;
2)步驟2:搭建卷積神經網絡結構,設定模型中的超參數;
3)步驟3:對模型進行迭代訓練,更新模型參數;
4)步驟4:使用冰雹檢測模型來進行測試;
5)步驟5:輸出模型分類結果。
本文分別使用仿真數據和實測數據,對訓練好的卷積神經網絡冰雹檢測模型進行驗證。下面分別展示兩份數據的實驗結果。
通過仿真得到的雷達回波數據反演計算出的極化參數稱為仿真數據。仿真過程用到的雷達參數如表2所示。

表2 極化雷達仿真參數


圖9 KTLX雷達強降雨過程可視化結果(2020/4/22 05:06)

圖10 仿真數據可視化結果(2020/4/22 05:06)
利用卷積神經網絡對仿真數據進行檢測,冰雹檢測的結果如圖11所示。結合圖10(a)可以看出反射率較大的地方分為了冰雹,與實際情況相符合。

圖11 仿真數據冰雹檢測結果(卷積神經模型)
對于二分類問題,實際標簽與預測標簽兩個維度交織構成的混淆矩陣包含四種情況,分別為:實際冰雹預測冰雹;實際冰雹預測其他;實際其他預測其他;實際其他預測冰雹。通過對混淆矩陣的分析我們可以得到精確率、召回率和F1指標。用精確率表示冰雹檢測結果的好壞,用召回率表示冰雹檢測結果的完整性,F1指標表示兩者的綜合。使用卷積神經網絡得到冰雹檢測結果的混淆矩陣(仿真數據)如表3所示,從表3中可以計算得到冰雹仿真數據的精確率為70%,召回率為80%,F1為75%。

表3 卷積神經網絡檢測結果混淆矩陣(仿真數據)
本文實測數據選取NOAA數據庫中的KTLX雷達在2019年6月19日14時55分的極化參數來進行測試,該數據的可視化結果如圖12所示。

圖12 KTLX雷達獲取的極化參數(2019/6/19 14:55)
為了進一步說明本文所提方法的有效性,分別利用全連接神經網絡和卷積神經網絡模型進行測試,全連接神經網絡的結構以及初始設置和卷積神經網絡中的全連接神經網絡一樣。如圖13所示為使用全連接神經網絡和卷積神經網絡的冰雹檢測結果以及NOAA給出的冰雹檢測結果。

圖13 冰雹檢測結果
與全連接神經網絡冰雹檢測結果相比,卷積神經網絡冰雹檢測結果更加接近于NOAA提供的真實分類結果。通過計算兩種方法的混淆矩陣對檢測結果進一步量化,如表4和表5所示為全連接神經網絡和卷積神經網絡檢測結果計算得到的混淆矩陣。

表4 冰雹檢測結果混淆矩陣(全連接神經網絡)

表5 冰雹檢測結果混淆矩陣(卷積神經網絡)
依據混淆矩陣計算得出全連接神經網絡冰雹檢測模型的精確率為68%,召回率為52%,F1為60%。卷積神經網絡冰雹檢測模型的精確率為73.59%,召回率為83%,F1為78%。從結果來看,基于卷積神經網絡的冰雹檢測模型的準確率和完整性均高于全連接神經網絡,有效降低了冰雹識別的虛警概率。
本文提出了一種基于卷積神經網絡的雙極化氣象雷達冰雹檢測算法。通過對獲取的極化參數進行處理,得到符合卷積神經網絡輸入的數據,然后搭建卷積神經網絡模型,接著在模型訓練的過程中加入指數衰減學習率、正則化等措施來優化網絡,從而實現冰雹檢測。通過對比卷積神經網絡和全連接神經網絡的測試結果,得出了經過特征提取和權值共享后卷積神經網絡的檢測能力優于全連接神經網絡的結論,表明了卷積神經網絡能夠改善冰雹檢測模型的性能。通過對仿真數據和實測數據進行實驗表明,該方法能夠實現較為準確的冰雹檢測,且具有很好的研究潛質和模型泛化性。為防止數據失真,數據插值規模較小,神經網絡深度較淺,后續可以通過研究高維數據處理與深度神經網絡相結合的方式,提高冰雹檢測準確率。