Machine Learning, Deep Learning

Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting

n.han 2021. 6. 2. 21:03

Shi, Xingjian, et al. "Convolutional LSTM network: A machine learning approach for precipitation nowcasting." arXiv preprint arXiv:1506.04214 (2015).

Abstract

- '강우량 예측(precipitation nowcasting)'의 목표는 상대적으로 짧은 시간 사이의 어떤 지역의 강우량의 정도를 예측하는 것.
- 본 논문에서는 '강우량 예측(precipitation nowcasting)' 문제를 '공간적/시간적 시퀀스를 예측(spatiotemporal sequence forecasting problem)'하는 문제로 formulation.
- FC-LSTM (Fully Connected LSTM)을 Convolutional structure을 가지기 위해 확장한 ConvLSTM을 제안.
- 실험 결과, ConvLSTM 네트워크가 공간적/시간적 상관성(Spatiotemporal correlation)을 더 잘 포착(capture)한다는 것을 보임.
- 또한 강우량 예측 성능이 FC-LSTM과 당시 SOTA였던 operational ROVER 알고리즘의 것을 뛰어넘을 보임.

Introduction

- '강우량 예측'은 어떤 지역의 0-6 시간 정도의 기간에 걸친 강우량의 정도를 예측하는 문제.
- 강우량 예측은 긴급 강우량 경고, 공항을 위한 날씨 가이드 등에 활용되는 중요한 문제임.
- 강우량 예측하는 방법론은 크게 두 클래스로 분류:
  1) 대기 모델의 복잡한 수식을 활용하여 예측하는 NWP(Numerical Weather Forecasting)
  2) Radar echo map을 활용하는 radar echo extrapolation based methods

Radar map의 예. 출처: https://www.weather.gov/abr/heavyrain6_20

- 특히 radar map 기반의 방법론들은 Optical flow와 같은 컴퓨터 비전 테크닉을 활용하는 방법들이 꽤 유용함.
- Real-time Optical flow by Variational methods for Echoes of Radar (ROVER)
  . ROVER는 연속적인 radar map의 optical flow를 Brox, Thomas, et al. 가 제안한 알고리즘으로 계산.
  . 이런 Optical flow에 기반한 방법들은 flow 예측 스텝과 radar echo extrapolation 스텝이 (주어진 데이터 셋으로 새로운 데이터를 예측하는 단계)가 분리되어 있고, 예측 성능을 높이기 위한 모델 파라미터를 결정하는 것이 challenging 함.
  . Brox, Thomas, et al. "High accuracy optical flow estimation based on a theory for warping." European conference on computer vision. Springer, Berlin, Heidelberg, 2004.
  . Woo, W. C., and W. K. Wong. "Application of optical flow techniques to rainfall nowcasting." the 27th Conference on Severe Local Storms. 2014.

optical flow in radar map. 출처: https://journals.ametsoc.org/view/journals/atot/34/12/jtech-d-17-0110.1.xml
radar echo extrapolation. 출처: https://medium.com/pocasi/extrapolation-of-radar-echo-with-neural-networks-f87772f70db2

- 본 논문에서는 이 문제를 해결하기 위해 Convolutional LSTM (ConvLSTM) 네트워크를 제안
  . 강우량 예측 문제를 공간적/시간적 시퀀스를 에측하는 문제(spatiotemporal sequence forecasting)로 formulation.
  . 일반적인 sequence-to-sequence 네트워크인 FC-LSTM에 모델이 spatiotemporal 관계를 학습하기 위해 ConvLSTM으로 확장.
  . RNN

Vanila RNN 구조. 다른 시간의 모든 파라미터들은 공유됨. 출처: https://www.youtube.com/user/Joonseok2010


  . LSTM

LSTM 구조. RNN의 h 출력에 활성화 함수를 지나지는 않는 cell state를 더하고, 이에 non-linearity (tanh)를 추가하여 출력. 오랜 기억인 cell state와 입력, 출력 각각을 조절하기 위한 컴포넌트들(Forget gate, input gate, output gate)이 존재. 출처: https://www.youtube.com/user/Joonseok2010


  . FC-LSTM

FC-LSTM 구조. FC Layer에 cell state으로부터의 연결을 추가. 출처: https://www.youtube.com/user/Joonseok2010
FC-LSTM Equations. ‘◦’ denotes the Hadamard product.
Hadamard product. 출처: https://en.wikipedia.org/wiki/Hadamard_product_(matrices)

ConvLSTM

- FC-LSTM에서 Spatiotemporal 데이터를 다룰 때의 주요한 단점은 입력 이미지를 1D 벡터로 reshape 해야 함. 그로 인해 공간(spatial) 정보를 읽어버림!
- 이를 개선하기 위하여 LSTM의 모든 입력을 마지막 두 차원에 공간 정보가 있는 차원인 행과 열(spatial dimensions)로 구성된 3D 텐서로 하고, 기존의 Weight와 Vector 간 FC Layer 대신 Convolution Layer로 대체. 

ConvLSTM Cell 구조. 출처: https://jiwon-lee-it.tistory.com/93
ConvLSTM Equations. ‘∗’ denotes the convolution operator
ConvLSTM의 구현 중 일부. 출처: https://github.com/automan000/Convolutional_LSTM_PyTorch/blob/master/convolution_lstm.py

Encoding-Forecasting Structure

- LSTM으로 예측하는 모델은 인코딩 모델과 디코딩 모델로 구성. 인코딩 모델이 연속적으로 입력을 받아 시계열 데이터의 hidden representation을 찾아내고, 예측 모델이 인코딩 모델의 마지막 상태를 그대로 받아와 인코딩 모델에서 입력으로 주어졌던 데이터들 이후의 값들을 예측함. (출처: https://mikigom.github.io/jekyll/update/2017/06/13/deep-learning-forecast-research-1.html)

LSTM Future Predictor Model. 출처: https://arxiv.org/pdf/1502.04681.pdf


- ConvLSTM으로 구성된 Spatiotemporal sequence forecasting problem을 위한 structure는 다음과 같음.

Encoding-forecasting ConvLSTM network for precipitation nowcasting

- 위 구조를 식으로 표현하면 다음과 같음:

Experiments: Radar Echo Dataset

- 본 논문에서 사용한 Radar Echo Dataset은 주요 도시의 3년간의 radar 강도의 subset.
- 데이터 셋에서 97일의 rainy day를 선택.
- radar의 세기 Z를 min-max normalize 하고, radar map의 중심 330 X 330 region을 crop.
- radius 10의 disk filter를 적용하고 100 X 100으로 resize.

Example of disk filter. Smoothing의 효과가 있는 것일까. 출처: https://www.bogotobogo.com/Matlab/Matlab_Tutorial_Digital_Image_Processing_6_Filter_Smoothing_Low_Pass_fspecial_filter2.php


- 각 pixel 값의 평균에 K-means clustering을 적용하여 noisy 한 region에 있는 pixel 값들을 없애줌.
- Radar echo data가 매 6분마다 측정되기 때문에, 하루에 240 frame의 이미지들이 있음.
- 240 frame들을 40개의 non-overlapping frame block들로 만든 후, 4개의 block들은 training에, 1개의 block은 각각 test, validation으로 임의로 할당.
- ConvLSTM의 입력 Sequence는 20개의 frame들(5장은 Encoder, 15장은 Prediction)으로 구성. Block들을 sliding window 해가며 Sequence를 만들어서 활용.
- ConvLayer에는 64 hidden states, 3 × 3 kernels 사용.
- Metrics
  1. Rainfall-MSE: average squared error between the predicted rainfall and the ground truth. Pixel level로 강수량 예측을 하게 되는데, radar echo 세기와 rainfall 간의 관계식을 통해 계산. Z=10 loga+10 blogR (Z: radar 세기, R: 강우량, a와 b는 지역마다 달라질 수 있는 상수로, 본 논문에서는 a=118.239, b=1.5241을.
  2. CSI, FAR, POD를 계산하기 위하여, 예측과 GT를 0/1(0.5mm/h 보다 크면 1, 작으면 0)로 변경하였음.

CSI, FAR, POD 계산


  3. Correlation: 예측한 Frame P와 GT Frame T 간 상관성

두 Frame간 Correlation. eps = 10^-9

  - 결과
    . ConvLSTM 모델이 모든 metric에서 성능이 뛰어남을 보임.

다양한 모델 간의 성능 비교. (FC-LSTM-2000-2000은 FC-LSTM network with two 2000-node LSTM layers).
prediction time과 모델에 따른 각 지표의 변화. 공통적으로 먼 미래를 예측할수록 성능이 떨어짐을 알 수 있음.
두 강수량 예측 예제 (왼, 우). (1행: 입력 frame, 2행: GT frame, 3행: ConvLSTM 예측, 4행: ROVER2 예측). ConvLSTM은 rainfall 등고선을 더 정확히 예측. ROVER2는 ConvLSTM에 비해 더 Sharp한 예측을 하지만, 이는 False alarm을 야기. ConvLSTM의 blurry함은 이 태스크의 불확실성을 잘 표현하는 것이라 생각.

참고

https://www.youtube.com/watch?v=tpYGcIz_jGk

https://medium.com/pocasi/extrapolation-of-radar-echo-with-neural-networks-f87772f70db2

 

Extrapolation of radar echo with neural networks

About ideas how to get more from the weather radar images.

medium.com