Ttoro_Tech

[AIVLE_3기]_15주차_AI_SPARK_CHALLENGE(2탄) 본문

Data Projects

[AIVLE_3기]_15주차_AI_SPARK_CHALLENGE(2탄)

Lee_Ttoro 2023. 5. 9. 13:58

https://aifactory.space/competition/detail/2317

 

제5회 2023 연구개발특구 AI SPARK 챌린지 - 사회문제해결형

 

aifactory.space

AIVLE 두번째 공모전 참여

기존 4인 팀을 이뤄 두번 공모전에 참가함

목표

지역사회 대기오염 예측 인공지능 모델 개발
대덕특구 50주년, 대전/세종/충남 지역 초미세먼지 오염도 시간단위로 예측하는 모델

지도 학습

머신러닝 유형에는 3가지가 존재함

  • 지도학습(Supervised Learning)
  • 준지도학습(Semi-supervised Learning)
  • 비지도학습(Unsupervised Learning)

이중 지도학습을 목표로 한 공모전

 

지도 학습(Unsupervised Learning)

  • 정답이 있는 데이터를 가지고 값을 예측하는 학습방법
    • 회귀문제는 정답과 가장 가까운 값 즉 손실을 줄이는 것이 목표
    • 이번 대회는 MAE(Mean Absoulute Error)를 사용하여 Loss 값을 계산함
  • 시계열 데이터
    • 시간당 초미세먼지 수치(PM2.5)와 AWS(주변 기상 관측 데이터)를 통해 예측하는 모델 생성
    • 학습 데이터는 48시간 (2일) 데이터를 가지고 72시간 (3일)의 PM2.5를 예측하고자 함

'23.05.09. 기준 Score 8.43점

데이터 전처리

  • 다양한 지역의 PM2.5의 관측소와 AWS의 관측소 데이터가 제공되었고, 각 지역별 예측 모델이 아닌 모든 지역을 예측할 수 있는 모델을 생성하는 것이 조건이다.
  • 이를 해결하기 위해 전체 지역을 하나로 보는 방법과, 각 지역별로 데이터를 표시하는 방법 등 아이디어를 제안하였다.
  • 첫 시도는 PM2.5의 관측소와 AWS 관측소 간의 거리를 통해 가까운 지역을 1:1 mapping 하였고, 모든 관측소를 하나의 지역으로 보기 위해 평균값으로 처리하였다.
  • 두 번째 시도는 모든 값을 concat하여, 각 지역 정보를 특징으로 one-hot-encoding을 통해 처리하였다.
  • AWS에서는 결측치가 많이 존재하였는데, 이를 KNN-Imputer를 통해 결측치를 처리하였다. 

1. 1D-CNN

  • CNN은 Convoluation Nerual Network로 이미지 분류에서 높은 정확도를 보여준 모델이다.
  • 이미지는 2차원의 필터를 사용하는데, 이번 1D-CNN의 경우 시계열 분석(Time Series Analysis)이나 텍스트 분석을 하는 데 많이 사용됨.
  • 데이터의 입력은 Batch와 time, feature 수를 가지게 된다.
  • 실제 데이터셋을 가지고 예를 들면,

총 34992개 데이터, 48시간, 9개의 feature를 가짐

  • 와 같이 표현할 수 있다.

Conv1D layer

  • 2D 이미지의 경우 kernel_size는 filter의 가로 세로 축을 의미하지만, 1D에서는 얼마만큼 시간을 볼지를 의미한다.
  • 실제 kernel_size를 12로 둘 경우, 현 시점으로 부터 12시간 간격을 하나로 보고, 가중치를 계산한다.
  • 이때 filter는 얼마만큼의 특징을 뽑아낼지를 의미하며, 이를 통해 결과를 예측한다.
  • 총 3개의 Conv 1D 층으로 구성했고, BatchNormalization과 Activation 레이어, Dropout을 통해 모델을 설계했다.
  • 마지막에 Flatten을 통해 Dense층을 구성하였고 최종적으로 72시간의 값을 예측하는 방향으로 모델을 학습했다.

2. LSTM(GRU)

  • 시계열 데이터의 경우 시간의 순서가 정보로 들어오기 때문에 시간 정보를 활용하는 것이 중요하다.
  • 이러한 정보도 학습할 수 있는 RNN 기반의 모델 중 LSTM과 GRU를 통하여 PM2.5를 예측하였다.
  • 데이터 전처리는 동일하게 진행하였으며, 48시간의 데이터를 넣어 72시간의 PM2.5를 예측하는 방식을 사용하였다.
  • LSTM을 깊게 쌓을 수록 성능이 좋아졌으나, LSTM 특성상 깊이가 깊어질 수록 학습하는데 시간이 많이 걸리며, 일정한 깊이 이상이 될 경우 예측의 성능이 떨어지는 것을 확인할 수 있었다.
  • 하지만 시간 정보를 활용하여 예측을 통해 시도함으로써 가장 처음 좋은 결과를 낸 모델이다.

3. LSTM(Encoder-Decoder)

  • 이전 모델은 LSTM의 Layer를 깊게 쌓았다면, Encoder 부분에서 문맥을 학습하여, Decoder부분에서 매 시간을 예측하는 모델이다.
  • 번역기에서 문장의 순서를 활용하여 다음 시간의 PM2.5를 예측하는 방식으로 한번에 72시간을 예측하기 보단 각 시점에서 48시간을 학습한 후 다음 1시간을 예측하면서 예측된 이전 정보를 함께 다시 다음 시간을 예측하는 방법을 사용하였다.
  • 이전 두 모델처럼 72시간을 한 번에 예측한 것이 아닌 매 시간을 예측하면서 정확도를 높이고자 하였으며, 최종 Score낸 모델 방식이다.

4. 그 외

  • LSTM을 활용한 Encoder Decoder에서 높은 성적을 보인 것으로 보아, 최근 많이 사용하는 Transformer 모델을 활용하여 Attention 부분을 추가하면 더 높은 예측을 할 수 있지 않았을까 라는 생각이 든다.
  • 또한 대회 측에서 OverFitting된 모델을 방지하기 위해 앙상블 모델에 대해 많은 규제를 두었는데 앙상블 모델을 통한 예측 점수는 어떻게 나올지 궁금하다.

정리

  • 미세먼지 데이터는 KT AIVLE SCHOOL에서 제공된 다른 데이터 셋을 가지고 예측해본 경험이 있었다.
  • 하지만 이번 대회의 경우 충남 지역에 대한 데이터 셋으로 각 지역을 예측하는 모델이 아닌 충남지역 전체를 대표할 수 있는 예측 모델을 요구하였기 때문에 모델 일반화에 많은 생각을 해볼 수 있었던 것 같다.
  • 또한 앙상블 모델을 사용할 수 없었기 때문에 Tabular 데이터를 ML로 해결한 것이 아닌 시계열 데이터 모델을 다루는 데 많은 시간을 들일 수 있었다.
  • 추후 Transformer 모델 등을 통해 더 높은 Score의 예측 모델을 구축해보고자 한다.