기술 및 엔지니어링 정보/AI
자율주행 엔지니어로서, 머신러닝 업무 프로세스 정리
Junique
2025. 5. 21. 17:42
반응형
1. 왜 머신러닝인가?
- 자율주행/ADAS 시스템은 방대한 센서 데이터(카메라, 레이다, 라이다 등)를 처리해야 함
- 전통적 규칙 기반 접근으로는 방대한 변수를 모두 커버하기 어려움
- 머신러닝을 통해 예측(Prediction)과 패턴 분석(Pattern Analysis) 기능을 구현
- 예: 차량 주변 객체(보행자, 차량 등) 인지 → 충돌 위험 예측 → 안전한 제동/차선 변경 결정
2. 머신러닝 업무 프로세스
2.1 전체 프로세스 개념
- 문제 파악 & 문제 정의
- 데이터 준비
- 모델 구축 & 분석/평가
- 결과 공유
- 모니터링 (실제 시스템에 적용 후, 지속 관찰)
이 과정을 ADAS 프로젝트에 대입해보면:
- 문제 파악 & 정의: 예: “고객이 원하는 충돌 방지 기능 정확도를 높이고 싶다.”
- 데이터 준비: 센서(카메라·레이다)에서 수집된 대규모 주행 데이터 정리
- 모델 구축 & 평가
- 이미지 기반 객체 검출 모델(예: YOLO, Faster R-CNN 등) 학습
- 도로 상황별 인식 정확도·오인식율 평가
- 결과 공유: 모델 성능 리포트(Precision/Recall/ROC 등) 전달, 시스템 인터페이스 논의
- 모니터링: 실제 테스트 주행 후, 오탐·미탐 상황 기록 → 모델 재학습 반영
3. 문제 파악 & 문제 정의
3.1 비즈니스(또는 프로젝트) 문제 파악
문제파악 및 문제정의를 위한 세부 프로세스는 다음과 같음
먼저, 비즈니스 문제를 파악한 후에 이를 해결하기 위한 데이터 과학과 머신러닝 문제로 전환
3.1 비즈니스(또는 프로젝트) 문제 파악
- “자율주행 차량이 교통 흐름을 더 안전하고 부드럽게 운영하려면?”
- “ADAS에서 오탐(잘못된 장애물 인식)을 줄이려면?”
- 이처럼 비즈니스·안전적 요구사항을 먼저 명확히 해둬야 효율적인 머신러닝 모델 설계 가능
3.2 머신러닝 문제로 전환
머신러닝의 타입
- Supervised Learning (지도학습)
- 입력 및 출력 데이터 기반 예측 모델 생성
- Classification (분류) - 범주를 예측
- Regression (회귀) - 숫자를 예측
- 입력 및 출력 데이터 기반 예측 모델 생성
- Unsupervised Learning (비지도학습)
- 입력 데이터 기반 데이터 그룹화 및 해석
- Clustering (군집화) - 유사한 그룹끼리 군집화
- 입력 데이터 기반 데이터 그룹화 및 해석
비즈니스 문제 | 목표 (출력) | 머신러닝 문제 |
차량 주변 객체를 ‘차량’, ‘보행자’, ‘자전거’로 분류 | 범주(Category): 객체 종류 | Classification (분류) |
다음 시점 차량 위치 예측 | 수치(Numerical): 차량 좌표(위경도 등) | Regression (회귀) |
유사 주행 스타일 그룹 찾기 | 유사 운전자 그룹화 | Clustering (군집화) |
- 예시: “고객(운전자) 상태 파악 후, 피로도가 높은 운전자에게 경고 알림?” → Classification(분류)
- 자율주행·ADAS에서도 필요에 따라 Recommender System, Anomaly Detection(센서 이상 탐지), Time series Forecasting(교통량 예측) 등을 사용
4. 모델 구축 & 분석/평가
4.1 모델 구축 단계
머신러닝 문제로 전환하고 데이터 준비를 마친 이후에는 적절한 머신러닝 모델 & 알고리즘을 선택하여 모델을 구축하고 평가함, 해당 프로세스는 아래와 같음
- 모델 & 알고리즘 선택
- 분류(Classification): Logistic Regression, Decision Tree, SVM 등 (-> 범주 예측)
- 회귀(Regression): Linear Regression, Ridge, Lasso 등 (-> 숫자 예측)
- 군집(Clustering): K-means, DBSCAN 등 (-> 군집)
- 비즈니스 제약 고려한 모델 적용
- 실시간성(Real-time) 요구사항이 높은 ADAS에서는 경량 모델 우선 고려
- 하이퍼파라미터 설정
- 예: Decision Tree 깊이, 학습률, 규제 파라미터 등
- 모델 학습
- GPU/TPU 활용 대규모 데이터 병렬처리
- 모델 재학습(Iterative)
- 모델 성능이 만족스럽지 않으면 수정→재학습 반복
4.2 모델 평가
4.2.1 Regression (회귀) 평가
- 실제 값(y)과 예측 값(y')의 오차(에러)로 성능 파악
- MAE (Mean Absolute Error), MSE (Mean Square Error), RMSE (Root Mean Square Error), MAPE (Mean Absolute Percentage Error) 등 척도 활용
- ADAS 예시: 예측 차선 위치(y')와 실제 차선 위치(y) 차이가 작은지 확인
4.2.2 Classification (분류) 평가
Name | Description | Etc. |
Accuracy | 옳게 분류한 정확도 | (correct prediciton / total data points) * 100% |
Confusion Matrix | 분류 결과를 2x2 의 표로 정리한 혼동행렬 | |
F-measure | precision과 recall의 조화평균 *precision : 예측한 범주에서 실제 True 범주 비율 *recall : 실제 범주에서 옳게 True 라고 예측한 범주 비율 |
F = (precision X recall) / (precision + recall) |
AUC | TPR과 FPR을 각각 x축과 y축으로 했을 때의 생성되는 ROC curve 아래의 면적 *TPR : True Positive Rate (옳게 예측한 비율) *FPR : False Positive Rate (True 라고 잘못 예측한 비율) |
- Accuracy(정확도), Confusion Matrix(혼동행렬), F-measure(Precision과 Recall의 조화평균), AUC(ROC 곡선 아래 면적) 등
- ADAS 예시: 보행자 인식(TP) vs. 보행자가 아닌데 보행자라고 잘못 인식(FP)
- Precision이 낮으면 오탐이 많아 경고 남발
- Recall이 낮으면 실제 보행자를 놓쳐 위험
4.2.3 기대손익(비용편익) 관점
- 혼동행렬 × 비용편익분석 → Expected Value(기대수익/기대효과) 계산
- 예) “충돌 위험이 높은 운전자에게 긴급제동 시스템 가동” 모델의 손익
- True Positive(위험 운전자 제대로 잡아냄)의 Benefit
- False Negative(위험 운전자를 놓침)의 Cost
- ADAS 예시: 잘못된 긴급제동(FP) 비용 vs. 충돌 회피(TP) 이익 비교 → 모델 최적화 지점 찾기
5. 실제 프로젝트 적용 & 모니터링
- 결과 공유
- 모델 성능 지표(정확도, AUC 등)와 함께 실차 테스트 시나리오를 함께 검토
- 안전 규제(ISO 26262, ASIL 등) 충족 여부 확인
- 모니터링
- 주행 중 발생하는 예외 상황(새로운 도로·차량 패턴 등)을 수집하여 정기적으로 모델 업데이트
- 오탐·미탐 분석 후, 데이터 레이블링 보강 → 재학습
- 재투입 & 성능 향상 루프
- 실제 운행 환경이 바뀔 때마다 추가 데이터로 모델 고도화
- ADAS는 실시간성이 중요하므로, 필요 시 차선 인지 등 특정 모듈에 전용 하드웨어(ASIC, FPGA) 적용
6. 맺음말
- 자율주행/ADAS에서는 머신러닝이 복잡한 주행 환경에 유연하게 대응하는 열쇠가 됩니다.
- “문제 정의 → 데이터 준비 → 모델 구축 & 평가 → 결과 공유 → 모니터링” 순환 사이클을 통해 모델 성능을 꾸준히 개선해야 합니다.
- 모델 성능 평가 시, 단순 정확도 외에 기대 손익과 안전성(Functional Safety)도 고려해야 합니다.
- 궁극적으로 정확도가 높고 안전 표준을 준수하며, 비즈니스적으로도 가치가 있는 모델을 선정·운영하는 것이 핵심입니다.
반응형