昨天提到了分群,今天來說一下監督式學習的應用。
雲的估計是目前數值模式極具挑戰性的一項變數,故有些研究學者已經開始嘗試使用深度學習的方法進行雲的估計。
有想過在數值模式世界中,雲是什麼??跟人有所看到的雲有何差別?要如何描述?
數值模式是以格點方式表達變數值,所以以數值模式的角度而言,雲是在這個網格範圍內所占的比率,即雲分辨率(Cloud Fraction)。
我們將數值模式與雲有關的變數與衛星觀測反演的雲分辨率進行深度學習建模,即X是數值模式與雲有關的變數,Y是衛星觀測反演的雲分辨率。
數值模式的資料為3維資料,故採取卷積神經網路的方式進行建模,不過這邊加上了為卷積神經網路而設計的注意力機制模組(CBMA),看有沒有辦法提升效果。
CBMA全名稱為Convolutional Block Attention Module,主要分為通道(channel)注意力機制與空間(spatial)注意力機制,如果以2維5乘5大小的RGB圖做說明,通道指的就是RGB的維度,空間指的就是5乘5的維度,當然也可以是3維空間。
通道注意力:
將輸入的特徵X分別進行平均池化即最大池化,然後兩個池化後的特徵共享一個神經網路(MLP),將兩者相加後再進入啟動函數(σ)。通道注意力機制後會是一維陣列,將其與原本的特徵X進行broadcast,會得到X'。
CHATT(X) = σ(MLP(avgpool(X)) + MLP(maxpool(X)))
X' = X * CHATT(X)
空間注意力機制:
將經過通道注意力機制的特徵x'分別進行空間的avgpool及maxpool,將兩著concat。針對concat的特徵進行filter後再進入啟動函數(σ)。將X'與空間注意力後的特徵相乘,得到最後的特徵X''。
SPATT(X') = σ(filter[avgpool(X'),maxpool(X')])
X'' = X' * SPATT(X')
詳細的介紹可以看CBMA論文。
最後將無使用CBMA與有使用CBMA的雲分辨率的估計結果比較如下:
訓練 | 驗證 | 測試 | |
---|---|---|---|
無注意力機制 | 0.35 | 0.4 | 0.37 |
有注意力機制 | 0.20 | 0.35 | 0.27 |
雲分辨率的數值介於0至1之間,而表格中的數值是深度學習估計雲分辨率與衛星雲分辨率之均方根誤差,可以看到有注意力機制能提升20%左右的表現。