교통 혼잡 전파를 분석하기 위해 시공간 교통 네트워크에서 교통파 탐지 및 혼잡 분석을 할 수 있는 알고리즘을 개발 및 연구 하는 프로젝트입니다.
- 속도 및 위치 데이터 정제 및 융합하여 Graph 구축
- Traffic 논문 리서치
- 관측되지 않은 속도 데이터를 가상네트워크 개념을 도입하고 DCRNN을 이용하여 예측
- ConvLSTM을 이용한 도시 고속도로의 교통 상황 예측
AI에서 가장 중요한 것은 데이터임을 알게되었습니다.
교통네트워크의 흐름을 예측하기 위해서 DCRNN(Diffusion Convolutional Recurrent Neural Network) 논문을 읽고, 그 논문을 구현한 오픈소스를 찾아 제가 구축한 서울시 교통 네트워크를 넣고 예측을 진행해보았고 성능 또한 잘 나왔습니다.
하지만 이 DCRNN은 RNN을 사용해서 장기간 기억력이 부족했습니다. 그래서 Attention을 추가해 주었고 장기간 기억력을 향상시켰습니다. 또 데이터가 없는 곳의 흐름을 예측하기 위해서 가상 네트워크라는 개념을 도입해서 예측을 진행했고 이 과정을 논문으로 남겼습니다(https://www.dbpia.co.kr/journal/articleDetail?nodeId=NODE10583410)
미래의 교통상황을 빠르게 예측하기 위해교통 네트워크와 속도를 Heatmap화 시키고 이를 ConvLSTM으로 예측하였습니다. ConvLSTM의 성능을 높히기 위해 Encoder-Decoder구조와 Attention을 도입하였습니다
TOPIS 교통 데이터 2019~2022 → 교통 네트워크 그래프 구축 → Data Pruning
서울시 교통정보 시스템 TOPIS에서 아래와 같은 원본데이터를 모두 가져왔습니다
모든 일자의 데이터를 Pandas를 이용해서 정제 및 융합하였습니다
각 시점 및 종점을 Node라고 생각하고 Graph를 구축하였습니다
노드 사이의 거리는 Edge로 속도는 가중치로 표현하였습니다
TOPIS에서 위 노드들의 위치정보를 가져와서 오픈소스 맵을 활용해 지도에 찍어보니 중복되거나 위치가 맞지 않는 노드들이 있어 이를 Pruning 해주었습니다
원천 데이터 → 날짜 및 지역별 데이터 추출 → 원하는 형태로 변형 → Data Interpolation
2차원 데이터를 날짜별로 만들어주고 이를 모아서 3차원 데이터(링크 X 속도 X 날짜)를 만들어주었습니다
(링크는 위 데이터에 보이는 것 처럼 시점, 종점, 거리를 가지는 벡터입니다)
값이 빈 Data는 근처 값을 활용하여 보간해주었습니다
미래의 교통파의 변화를 예측하기 위해 하루동안의 내부순환로 속도를 각각 Heatmap화 시켰습니다. Heatmap에서 교통 혼잡이 있는 부분은 검은색으로 짙게 칠해져서 그 교통 혼잡이 전파되는 양상을 파악할 수 있습니다. 그리고 이미지를 예측하는데 좋은 CNN과 시계열 예측에 좋은 RNN을 합친 ConvLSTM모델을 구축하여 3년간의 내부순환로 Heatmap을 데이터로 넣고 교통 혼잡 예측 모델을 만들어 예측을 하였습니다.
- 연구에 활용할 데이터 수집 및 전처리 및 보간
- AI 논문 리서치
- AI 논문 모델 구현
- MLflow를 이용한 모델 및 실험관리
- 논문 작성
-
처음에는 컬러 heatmap으로 만들고 이를 훈련 및 예측에 사용함 → 성능이 좋지 않았음 → 데이터 자체를 분석하여 문제점을 파악함 → 컬러 heatmap으로 만들 필요가 없음을 발견함 → 흑백 heatmap으로 예측을 하니 RMSE성능이 5 오름 (15→10)
-
위의 모델을 여러 방면으로 튜닝해도 성능이 10 이하로 떨어지지 않음
- 관련 최신논문을 리서치함 → Encoder - Decode구조를 도입함 → 성능 향상 RMSE(10→7) → 여기에 attnetion을 도입함 → 성능 향상 RMSE(7~3)
-
위의 모델을 튜닝하고 여러가지 데이터로 실험해야하는데 실험 및 모델관리가 매우 힘듬
- Mlops를 공부하여 모델 및 실험 관리 라이브러리 MLflow를 도입 → 실험 및 평가를 자동화