DASE

KIISE 컴퓨팅의 실제 논문지 27(10), 2021 · 실습 데모

LSTM을 이용한 해양시정 예측 방법

해무(바다 안개)로 시정이 떨어지는 현상을 LSTM으로 예측하고, 해수면 온도·해기차가 도움이 되는지, 그리고 예측이 ‘직전 시정 베끼기’보다 나은지를 확인합니다. 학습된 LSTM이 브라우저에서 직접 추론합니다. 논문 DOI

이 데모의 자료와 모델

논문은 덕적도의 공군 기상대 시정과 기상청 부이 자료(2012~2017)를 썼지만, 이 자료는 재배포할 수 없어 해무 물리를 반영한 합성 자료로 대신했습니다. 따뜻하고 습한 공기가 차가운 바다 위로 올 때(해기차 > 0, 습도 높음, 바람 약함) 안개가 생기고 몇 시간 지속되도록 만들었고, 시정은 논문 표 5의 보고 단위(100 m 단위, 10 km 이상은 99)로 기록했습니다. 결측도 논문과 비슷한 규모로 넣고 앞의 값으로 채웠습니다. 모델은 논문과 같이 은닉층 1개, 노드 5개, 24시간 입력 창의 LSTM을 numpy로 학습했으며, 5년 학습 / 1년 시험으로 나눴습니다. 실측 자료로 재현하는 스크립트는 train/train_real.py에 있습니다.

월평균 시정 (m)

논문 그림 4처럼 6~7월에 5,000 m 안팎으로 떨어지고 겨울에는 9,000 m 이상으로 회복됩니다.

월별 해무 비율 (시정 1 km 미만)

해기차 구간별 해무 발생률

해기차(기온 − 해수면 온도)가 양수일수록, 즉 공기가 바다보다 따뜻할수록 안개가 잦습니다. 논문이 해수면 온도와 해기차를 인자로 추가한 근거입니다.

결측값 (시간 수)

논문도 변수마다 3,400~4,700개의 결측을 앞의 값으로 채웠습니다. 긴 결측 구간을 앞의 값으로 채우면 그 구간 동안 값이 멈춰 있게 됩니다.

시험 연도 예측

기본값은 7월 2일입니다(논문 그림 11과 같은 날짜). 시정은 100 m 단위이고 99는 10 km 이상입니다.

실제값–예측값 산점도 (선택한 달)

논문 그림 12에 해당합니다. 대각선에 가까울수록 정확합니다.

선택 기간 점수

LSTM은 ‘직전 시정 베끼기’보다 나은가

지속 예보(persistence)는 “한 시간 뒤 시정 = 지금 시정”이라고 답하는 가장 단순한 기준선입니다. 시정은 시간마다 크게 바뀌지 않아 이 기준선이 매우 강합니다. 기후값은 학습 기간의 평균 시정 하나로 답합니다.

RMSE는 100 m 단위입니다(논문과 같음). ‘변화 시점 RMSE’는 시정이 한 시간 사이 2 km 이상 바뀐 시점만 모은 것으로, 안개가 끼거나 걷히는 순간을 얼마나 맞히는지 봅니다. POD는 1 km 미만 해무를 놓치지 않은 비율, FAR는 해무 경보 중 틀린 비율, CSI는 둘을 합친 점수입니다.

지연 분석: 예측을 몇 시간 당기면 실제와 가장 잘 맞나

왜 ‘1시간 늦게 따라가는’ 예측이 나오나

입력에 직전 시정이 들어 있으면, 오차를 줄이는 가장 쉬운 길은 그 값을 거의 그대로 내놓는 것입니다. 그러면 평소에는 잘 맞지만 안개가 끼거나 걷히는 순간은 한 시간 늦게 따라갑니다. 논문이 ‘약 1시간의 차이를 두고 정확히 모의했다’고 쓴 현상이 바로 이것이며, 실제로는 변화를 미리 예측하지 못했다는 뜻입니다. 시정 입력을 뺀 모델(‘시정 제외’)은 이 지연이 줄어드는 대신 평소 오차가 커집니다.

해수면 온도·해기차를 넣으면 나아지나 (논문 표 6 재현)

은닉 노드 수에 따른 RMSE (논문 표 4 대응, 1시간 예측, 시드 3개)

학습된 LSTM으로 가정 실험

시험 연도의 하루를 골라, 그날 해수면 온도나 습도가 달랐다면 모델이 시정을 어떻게 예측했을지 브라우저에서 다시 계산합니다. 모델이 해무의 원리(따뜻하고 습한 공기 + 차가운 바다)를 배웠는지 확인하는 실험입니다.

해수면 온도를 낮추면 해기차가 커져 안개가 짙어지는 쪽으로, 습도를 낮추면 걷히는 쪽으로 예측이 바뀌어야 물리적으로 그럴듯합니다. ‘전체 인자’ 모델은 직전 시정에 크게 의존해 변화가 작게 나타날 수 있습니다.

논문 표 4 — 은닉층·노드 수별 RMSE

논문 표 6 — 해수면 온도·해기차 추가 여부별 RMSE

10회 평균 차이는 0.02~0.03으로, 표준편차(0.02~0.06)와 같은 크기입니다.

현재 교육 관점에서 다시 볼 점

  1. 기준선이 없다. 시간별 시정에서는 ‘지금 시정을 그대로 쓰는’ 지속 예보가 매우 강합니다. LSTM의 RMSE 10.14만으로는 좋은지 나쁜지 판단할 수 없고, 같은 시험 기간의 지속 예보·기후값 RMSE를 함께 보고해야 합니다(③ 탭).
  2. ‘1시간 차이’는 장점이 아니라 경고 신호. 예측이 실제를 한 시간 늦게 따라간다면, 모델이 직전 시정을 베끼고 있어 안개가 끼는 순간을 미리 알려 주지 못한다는 뜻입니다. 해무 예보의 가치는 바로 그 변화 시점에 있습니다.
  3. RMSE는 맑은 날이 지배한다. 시험 기간의 대부분이 99(10 km 이상)라 RMSE는 맑은 시간의 정확도에 좌우됩니다. 항공·항해에 중요한 저시정 구간은 1 km 미만 해무에 대한 POD·FAR·CSI 같은 사건 기반 지표로 따로 평가해야 합니다.
  4. 인자 추가 효과는 잡음 수준. 표 6의 10회 평균 차이(0.02~0.03)는 표준편차와 같은 크기라, 해수면 온도·해기차가 ‘효과가 있다’고 결론 내리기 어렵습니다. 또 해기차는 기온과 해수면 온도의 차이라, 두 값을 모두 입력하면 새 정보가 아닙니다(④ 탭).
  5. 하이퍼파라미터를 시험 세트로 골랐다. 표 4의 노드 수 선택이 시험 연도 RMSE로 이루어졌다면 선택 편향이 생깁니다. 학습 기간 안에 검증 연도를 따로 두고 고른 뒤, 시험 연도는 마지막에 한 번만 써야 합니다(train_real.py가 이렇게 합니다).
  6. 검증 손실이 학습 손실보다 낮다(그림 5). 시험 연도가 학습 기간보다 맑은 날이 많았거나, 분포가 달랐을 가능성이 있습니다. 연도별 저시정 빈도를 함께 보고하면 해석이 쉬워집니다.
  7. 시정 값의 특성. 시정은 보고 단위로 양자화되고 99에서 잘린(censored) 값입니다. 회귀 대신 ‘1 km 미만인가’ 같은 범주 예측이나 확률 예보로 다루는 방법도 비교할 만합니다.
  8. 이후 흐름. 해무 예측은 이후 수치예보 결과를 입력으로 쓰는 하이브리드 모델, 위성 영상 기반 해무 탐지, 확률 예보로 발전했습니다. 같은 자료로 XGBoost 같은 트리 모델과 비교해 보는 것도 좋은 실습입니다.

출처: 조우진·강동수, 「LSTM을 이용한 해양시정 예측 방법」, 정보과학회 컴퓨팅의 실제 논문지 27(10), pp.471–478, 2021.