KSME 학회 후기 — 신경회로망 PM2.5 예측 (대한기계학회 유체경진대회 금상, 2019)
📅 2019년 11월 학부 졸업논문으로 진행한 연구의 회고. 대한기계학회(KSME) 유체경진대회에서 금상을 받았던 작업. 2024년 시점에서 다시 정리하고, 2년 뒤 대학원에서 발견한 함정까지 솔직히 기록.
그림1. 2019년 제주에서 열린 대한기계공학회 학술대회 — 유체경진대회 금상 시상
무엇을 했나
신경회로망(ANN) 으로 초미세먼지(PM2.5) 농도를 예측. 기상·대기질 데이터로 학습해서 6시간·12시간 후의 농도를 예측하는 모델.
그림2. 6시간 후 미세먼지 농도 예측 결과 (학회 발표용)
왜 이 연구가 의미 있다고 봤나
기존 PM2.5 예측의 표준은 수치해석(전산유체역학·대기화학 모델)인데: - 계산 시간 1개월 이상 + 막대한 컴퓨팅 자원. - 정확한 만큼 무거움.
신경회로망 접근의 장점: - 약 10만 개 데이터로 학습 가능. - 학습 후엔 추론이 즉시 (몇 초 단위). - 정확도는 수치해석에 못 미치지만, 계산량 대비 효율이 압도적.
목표: "정확도를 어느 정도 양보하더라도 빠르게 단기 예측이 가능한 모델".
데이터 처리 파이프라인
A. 데이터 수집
그림3. 데이터 수집 및 출처
B. 데이터 가공 — 변수 선택의 3단계
Step 1. 결핍 변수 제거
결측치 50% 이상인 변수 삭제 (데이터 오염 방지).
Step 2. AIC 단계적 선택법 (변수 후보 압축)
AIC(Akaike Information Criterion) = 모델 적합도와 변수 개수 사이의 균형을 평가하는 지표. 작을수록 좋음.
단계적 선택법으로: - Middle and low cloud·Sunshine hour 제거. - 21개 변수 남김.
그림4. 데이터 가공 — AIC 단계적 변수 선택
Step 3. VIF 로 독립성 검증
VIF(Variance Inflation Factor) — 다중공선성 측정. VIF 값이 크면 다른 변수들과 강한 선형 관계 → 둘 중 하나만 남겨야 모델 안정.
여기서 통계적 결과 + 공학적 도메인 지식을 결합: - 예: 상대습도 vs 증기압 둘 다 높은 VIF → 더 근본적인 물리량인 증기압 선택. (상대습도는 증기압·온도로부터 파생.)
그림5. 데이터 가공 — VIF 로 독립변수 선택
Step 4. 최종 13개 변수
pm10·Visibility·SO2·CO·NO2·Vapor Pressure·O3·Sea level pressure·Temperature·Solar radiation·Total cloudy·Wind direction·Wind speed
C. 결측치 보정 (Imputation)
Predictive Mean Matching (PMM) 사용. 선형 모델 기반 imputation 은 비물리적 값 (음수 농도 등) 을 생성하는 경우가 있어 배제.
그림6. PMM 결측치 보정 결과
모델 — ANN + Window Learning
그림7. 학습 모델링 — 신경회로망 구조
기본 ANN 위에 Window Learning 기법 적용 — 시계열 예측의 표준 패턴:
이전 72시간 데이터를 한 묶음(window)으로 입력 → 6 / 12 / 24시간 후 PM2.5 농도 예측.
그림8. Batch Configuration — 14개 변수를 재구성, batch size 100
결과
그림9. 학습 / 테스트 결과 산점도 (Scatter)
그림10. 예측·관측값 시계열 비교
2019년 발표 시점에는 결과가 "괜찮아 보였다". 산점도의 R²·MAE 도 적당했고, 시계열도 대략 추세를 따라가는 듯.
2년 뒤 — 대학원에서 발견한 함정
2021년 대학원 연구 중 같은 모델을 다시 들여다보다 발견한 사실:
Time lag (시간 밀림) 현상 — 모델이 사실은 미래를 예측하는 게 아니라 "가장 가까운 과거를 그대로 따라 그리고 있었다". 즉 6시간 후 예측 그래프가 6시간 전 실제값과 거의 일치.
산점도(scatter) 만으로는 이 문제가 보이지 않는다. 점들의 분포는 좋은 R² 를 보여주지만, 시계열을 펼쳐서 시간축으로 정렬해야 "예측이 실제보다 N 시간 뒤처져 있다"는 게 보임.
보완 시도 (RL 기반 거리 + 각도)
대학원에서 강화학습으로 이 문제를 다시 봄: - 손실 함수에 유클리드 거리 외에 각도 차이(시계열 변화 방향)를 추가. - 시간 밀림이 어느 정도 보완됨. - 다만 메인 연구가 있어 끝까지 정리하지 못함.
회고 — 그때와 지금
"교수님들을 (모르고) 속이고 금상을 받았던 셈"
당시엔 결과가 좋아 보였지만 본질을 못 본 거. 그렇지만: - 데이터 수집부터 변수 선택, 결측치 보정, 모델 구성까지 전 파이프라인을 직접 만든 경험은 그대로 남음. - 이때 깔린 통계학·신경망 기본기가 지금까지 작업의 토대. - 틀린 결과도 학습이라는 것 — 산점도만 보면 안 된다는 lesson 이 두 번 다시 같은 실수를 안 하게 만듦.
그때 적은 다짐 (2019)
"앞으로는 다상유동·전통 유체 등 물리적 세계에 AI를 얼마나 유효하게 결합할 수 있을지 기대됩니다. 특히 베이지안 통계학 추천."
2024년 현재
회사원이지만 그때 그린 그림은 여전히 유효. PM2.5 같은 환경 시계열, 다상유동·CFD + ML 결합, 베이지안 — 다 흥미로운 영역 그대로.
참고
- 학부 졸업논문 포스터 — 당시 발표 자료
- 데이터 출처: Air Korea · 기상자료개방포털
- 함께 옮긴 또 다른 후기:
📦 이 글은 제가 운영하던 티스토리 블로그에서 옮겨온(migration) 글입니다. 원문: taehyuklee.tistory.com/18

댓글