unsupervised-learning

2 개의 포스트

구글 지도에 HO (새 탭에서 열림)

구글 맵은 전용 차로(HOV)를 이용하는 운전자들에게 더욱 정확한 도착 예정 시간(ETA)과 최적의 경로를 제공하기 위해 새로운 비지도 학습 기반의 분류 시스템을 도입했습니다. 이 시스템은 속도 분포와 GPS 횡방향 거리 데이터를 분석하여 익명화된 교통 흐름 속에서 HOV 사용자를 정교하게 식별해냅니다. 이를 통해 사용자는 카풀 차로 이용 시의 시간 절약 효과를 미리 확인하고 보다 지속 가능한 이동 결정을 내릴 수 있게 되었습니다. **HOV 트립 분류를 위한 비지도 학습 접근법** * HOV 차로 이용 여부에 대한 별도의 레이블이 없는 상태에서 데이터를 처리하기 위해, 레이블이 필요 없는 비지도 학습(Unsupervised Learning) 방식을 채택했습니다. * 전체 경로를 한꺼번에 분석하는 대신, HOV 차로가 존재하는 개별 도로 세그먼트(Segment) 단위로 약 15분 분량의 짧은 시간 윈도우를 설정하여 데이터를 분류합니다. * 각 세그먼트에서 수집된 익명화된 트립 포인트(속도, 관측 시간, 도로 중앙으로부터의 거리 등)를 종합하여 해당 트립이 HOV 차로를 이용했는지 여부를 판단합니다. **속도 분포와 이봉성(Bimodal) 패턴 분석** * 교통량이 많은 혼잡 시간대에는 일반 차로와 HOV 차로 간의 속도 차이가 뚜렷하게 나타나며, 이때 속도 데이터는 두 개의 정점을 가진 '이봉성 분포'를 보입니다. * 시애틀 I-5 고속도로의 사례처럼 HOV 차로가 일반 차로보다 시속 40마일 이상 빠른 경우(Scenario A)는 물론, 속도 차이가 크지 않은 경우(Scenario B)에도 데이터 패턴을 분석하여 트립을 구분합니다. * 이러한 속도 차이 분석은 과거의 교통 트렌드를 파악하고, 미래의 HOV 전용 ETA를 예측하는 모델을 학습시키는 핵심 지표가 됩니다. **GPS 횡방향 거리 측정과 소프트 클러스터링** * GPS의 내재적인 오차를 보정하기 위해 속도 정보와 함께 '도로 중앙으로부터의 횡방향 거리(Lateral Distance)' 데이터를 결합하여 사용합니다. * 차량이 도로의 왼쪽(일반적인 HOV 차로 위치)에 치우쳐 운행하는지 측정함으로써, 속도가 비슷한 상황에서도 차로 위치에 따른 분류 정확도를 높였습니다. * 데이터를 이분법적으로 나누는 대신 각 포인트가 HOV 클러스터에 속할 확률을 계산하는 '소프트 클러스터링(Soft Clustering)' 기법을 적용해 경계선에 있는 데이터를 정교하게 처리합니다. * 통계적 신뢰성을 확보하기 위해 시간적 요소를 고려한 가중 중앙값(Weighted Median) 방식을 사용하며, 최근 데이터에 더 높은 비중을 두어 실시간 교통 변화를 반영합니다. 이와 같은 기술적 개선을 통해 구글 맵 사용자는 HOV 차로 이용 시의 시간 이득을 명확히 인지하고 경로를 선택할 수 있습니다. 이는 개인의 출퇴근 시간을 단축할 뿐만 아니라, 카풀과 같은 지속 가능한 교통 수단 이용을 장려하여 전체적인 교통 혼잡과 탄소 배출을 줄이는 데 실질적인 도움을 줍니다.

결함 있는 배포 탐지: 라벨링되지 않은 데이터에서 지도 학습까지의 여정 (새 탭에서 열림)

배포는 소프트웨어 개발의 핵심이지만, 구글 SRE에 따르면 전체 장애의 약 70%가 배포와 관련되어 있을 만큼 위험 요소가 큽니다. Datadog은 APM(Application Performance Monitoring) 데이터를 활용해 결함이 있는 배포를 신속히 식별하는 '자동 결함 배포 탐지' 기능을 개발했으며, 이를 위해 레이블이 없는 대규모 데이터셋에서 시작해 정교한 모델을 구축했습니다. 이 과정에서 비지도 학습과 반복적인 프레임워크를 도입하여 데이터 불균형과 서비스별 다양성 문제를 성공적으로 해결했습니다. **결함 배포 탐지의 주요 장애물** - **데이터 레이블의 부재**: 서비스마다 '결함'에 대한 기준이 다르고 명확한 정답 데이터(Ground Truth)가 없어 일반적인 지도 학습 모델을 적용하기 어려웠습니다. - **데이터 불균형**: 결함 배포는 전체 배포 중 극히 일부에 불과한 희귀 이벤트이므로, 단순히 무작위 샘플링을 통해 모델을 학습시키는 방식은 정밀도가 매우 낮았습니다. - **서비스의 다양성**: 트래픽의 계절성, 낮은 트래픽 빈도, 잦은 배포 주기 등 애플리케이션마다 다른 프로필을 가지고 있어 일관된 기준을 적용하기 까다로웠습니다. **결함 배포를 정의하는 세 가지 핵심 속성** - **영향도(Impact)**: 전체 오류 수가 기준치보다 충분히 높아야 하며, 이전 버전들과 비교했을 때 오류율 증가가 유의미하게 높아야 합니다. - **시간적 상관관계(Temporal Correlation)**: 관찰된 오류율의 증가가 새로운 버전의 배포 시점과 명확하게 일치하는지 검증합니다. - **지속성(Persistence)**: 배포 과정에서의 일시적인 노이즈를 배제하기 위해, 증가한 오류율이 일정 시간 동안 안정적으로 유지되는지 확인합니다. **반복적 프레임워크를 통한 모델 고도화** - **통계적 규칙 결합**: 배포 후 60분간의 데이터를 바탕으로 오류율 변화를 비교하는 단순 규칙에서 시작하여, 점차 복잡한 통계적 체크 항목을 늘려나갔습니다. - **만장일치 투표 방식의 앙상블 모델**: 여러 통계적 체크 항목이 모두 결함이라고 판단할 때만 최종적으로 결함 배포로 분류하는 방식을 채택하여 정밀도를 높였습니다. - **반복적 개선 프로세스**: 초기에는 높은 재현율(Recall)을 목표로 설정한 뒤, 수동 레이블링을 통해 오탐(False Positive)을 분석하고 이를 걸러낼 새로운 체크 항목을 추가하며 정밀도를 보정했습니다. - **데이터 피드백 루프**: 탐지되지 않은 결함(False Negative)을 찾기 위해 실제 발생한 인시던트 데이터와 버전 롤백 이력을 활용하여 모델의 임계값을 지속적으로 튜닝했습니다. 실제 환경에서 결함 탐지 모델을 구축할 때는 완벽한 레이블을 기다리기보다, 영향도·상관관계·지속성이라는 핵심 지표를 설정하고 반복적인 피드백 루프를 통해 비지도 학습 모델을 정교화하는 전략이 매우 효과적입니다.