일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 3기
- ML
- SearchGPT
- 인공지능
- Stable Diffusion
- GPT4
- SKT
- AI
- 딥러닝
- GPT-4
- naver
- OpenAI
- TRANSFORMER
- ChatGPT
- LLaMA
- GPT-3.5
- AIVLE
- 생성형
- gpt
- KT
- Meta
- generative
- nlp
- KoGPT
- LLM
- hyperclovaX
- 네이버
- 생성형 AI
- deeplearning
Archives
- Today
- Total
Ttoro_Tech
[AIVLE_3기]_15주차_AI_SPARK_CHALLENGE(2탄) 본문
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 수를 가지게 된다.
- 실제 데이터셋을 가지고 예를 들면,
- 와 같이 표현할 수 있다.
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의 예측 모델을 구축해보고자 한다.
'Data Projects' 카테고리의 다른 글
[한국철도999_5위]_AIFactory_철도 인공지능 대회 (0) | 2023.09.12 |
---|---|
[LG Aimers 3기]_온라인 채널 제품 판매량 예측 AI 온라인 해커톤 (0) | 2023.08.31 |
[AIVLE_3기]_16주차_Dacon_도배 하자 유형 분류 AI 경진대회 (0) | 2023.05.24 |
[AIVLE_3기]_12주차_AI_SPARK_CHALLENGE (0) | 2023.04.18 |