자율주행 차량, 산업용 로봇, 드론 군집은 기존의 오토파일럿 시스템을 구동하던 경직되고 수동으로 작성된 규칙을 따르지 않습니다. 이들은 방대한 양의 데이터로부터 학습하며, 이는 그들의 동작이 결정론적(deterministic)이 아닌 확률적(probabilistic)임을 의미합니다. 전통적인 항공기 오토파일럿은 명시적으로 코딩된 로직을 통해 센서 입력에 반응합니다. 반면 머신러닝 모델은 학습 과정에서 추론한 패턴을 통해 반응합니다. 이러한 차이로 인해 검증이 훨씬 더 어려워졌으며, 이것이 바로 머신러닝 커뮤니티가 임시방편적인(ad-hoc) 테스트 대신 구조화된 보증(assurance) 프레임워크로 이동한 이유입니다.

머신러닝 보증이 타협 불가능한 이유

자율 시스템이 실수를 저지를 때, 그 결과는 서버 오류나 애플리케이션 정지 수준을 넘어섭니다. 창고 로봇이 장애물을 잘못 식별하면 재고를 파손하거나 작업자에게 부상을 입힐 수 있습니다. 배송 드론이 전선을 탁 트인 하늘로 오인하면 인프라에 충돌할 수 있습니다. 이러한 시스템은 복잡한 신경망과 통계 모델에 의존하기 때문에, 실패 모드(failure modes)가 매우 미묘합니다. 명백한 방식으로 고장 나는 경우는 드뭅니다. 대신, 학습 과정에서 보았던 데이터 분포를 벗어난 입력값에 직면했을 때 조용히 성능이 저하됩니다.

자율 머신러닝의 오류가 항상 명백하게 잘못된 코드에서 비롯되는 것은 아닙니다. 학습 데이터의 공백, 예상치 못한 환경 변화, 또는 엣지 케이스(edge cases)에 대한 과도하게 확신에 찬 예측에서 발생할 수 있습니다. ML 구성 요소를 표준 소프트웨어 모듈처럼 취급하며 유닛 테스트 세트만으로 충분하다고 가정하는 조직은, 실험실에서의 정확도가 실제 환경의 안전으로 이어지지 않는다는 사실을 너무 늦게 깨닫게 됩니다. 학습된 동작의 고유한 위험을 다루는 체계적인 표준이 필요합니다. AMLAS 프레임워크는 바로 그 간극을 메우기 위해 설계되었습니다.

AMLAS가 실제로 다루는 범위

Autonomous Systems에서의 Machine Learning 사용을 위한 보증(Assurance of Machine Learning for use in Autonomous Systems)을 뜻하는 AMLAS는, 학습된 구성 요소가 고위험(high-stakes) 배포에 적합한지 검증하기 위한 엔드 투 엔드(end-to-end) 접근 방식을 제공합니다. 안전을 사후 고려 사항이나 출시 전의 마지막 관문으로 취급하지 않습니다. 대신, 보증 활동을 시스템의 라이프사이클에 통합합니다.

이 프레임워크는 세 가지 실질적인 핵심 축에 집중합니다:

ML 모델을 위한 검증 방법. 이는 정확도(accuracy)나 F1 스코어와 같은 표준적인 학습-테스트 분할 지표를 훨씬 뛰어넘습니다. AMLAS 기반의 보증은 모델이 결정 경계(decision boundaries)에서 예측 가능한 방식으로 동작하는지, 분포 외(out-of-distribution) 입력에 어떻게 반응하는지, 그리고 신뢰도 점수(confidence scores)가 실제 불확실성을 나타내는 신뢰할 수 있는 지표인지 묻습니다. 엔지니어는 적대적 예시(adversarial examples)를 통해 모델을 조사하고, 학습 세트에서 약간 벗어난 도메인의 입력값에 대해 스트레스 테스트를 수행해야 합니다. 목표는 완벽함이 아닙니다. 모델을 언제 신뢰할 수 있고 언제 신뢰할 수 없는지를 알 수 있는 충분한 근거를 확보하는 것입니다.

자율 동작을 위한 안전 프로토콜. 학습된 인지 모델은 물리적 하드웨어를 움직이는 계획 및 제어 소프트웨어로 전달됩니다. AMLAS는 이러한 다운스트림 동작에 가드레일(guardrails)이 포함될 것을 요구합니다. 신경망이 객체를 잘못 분류하더라도, 차량이나 로봇은 물리적 제약 조건(hard constraints)을 위반하는 궤적을 실행할 수 없어야 합니다. 이는 로봇 팔의 토크 제한, 드론을 위한 지오펜싱(geofencing), 또는 지상 차량을 위한 의무 제동 구간 등을 의미할 수 있습니다. 자율 시스템에는 단일 모델 오류가 통제 불가능한 물리적 사건으로 번지는 것을 방지하는 아키텍처 계층이 필요합니다.

불확실성을 줄이는 방법. 머신러닝에서의 불확실성은 여러 형태로 나타납니다. 센서 측정값이나 환경에 내재된 노이즈인 우연적 불확실성(aleatoric uncertainty)과, 모델이 아직 알지 못하는 것을 반영하는 인식적 불확실성(epistemic uncertainty)이 있습니다. AMLAS는 이 두 가지를 모두 정량화하고 관리하는 관행을 권장합니다. 기술로는 여러 모델이 의견 불일치를 경고 신호로 표시하는 앙상블 방법(ensemble methods)이나, 불안정한 동작을 유발하는 것으로 알려진 데이터를 거부하는 입력 검증 계층(input validation layers) 등이 포함될 수 있습니다. 불확실성을 완전히 제거할 수는 없더라도, 시스템이 불확실성에 기반해 맹목적으로 행동하는 것은 방지할 수 있습니다.

신뢰 구축을 위한 실질적인 경로

프레임워크는 팀이 이를 실제로 실행할 때만 의미가 있습니다. 조직이 규율 있는 순서를 따를 때 AMLAS는 가장 효과적으로 실행에 옮겨질 수 있습니다.

단 하나의 데이터셋을 수집하기 전에 안전 목표를 먼저 정의하십시오. 전통적인 소프트웨어 공학에서는 요구사항이 우선입니다. 머신러닝 프로젝트는 종종 이를 뒤집어, 모델을 학습시킨 후에 안전을 해결해야 할 문제로 취급하곤 합니다. 이러한 습관을 바꾸십시오. 명확한 운용 설계 영역(ODD)부터 시작하십시오. 시스템은 어떤 조건에서 작동할 것입니까? 각 위험 요소에 대해 허용 가능한 실패율은 어느 정도입니까? 어떤 실패 상황에서 즉각적인 인간의 개입이 필요합니까? 이러한 질문에 조기에 답하는 것은 데이터 수집부터 모델 아키텍처에 이르기까지 모든 것을 결정짓습니다.

실제 운영 환경의 무질서함을 반영하는 데이터로 모델을 테스트하십시오. 실험실 벤치마크는 안도감을 주지만, 실제와는 다릅니다. 깨끗한 바코드 이미지만으로 학습된 창고 로봇은 라벨이 구겨지거나, 조명이 불량하거나, 먼지로 가려져 있을 때 실패할 것입니다. 맑은 날씨에서만 테스트된 자율 주행 드론은 눈부심과 윈드시어(wind shear)로 인해 어려움을 겪을 것입니다. 큐레이션된 데이터셋에는 절대 나타나지 않는 짜증 나는 에지 케이스(edge cases)를 포함하여, 실제 배포 환경의 로그가 필요합니다. 자율 시스템이 인간 운영자와 병렬로 결정을 내리되 아직 하드웨어를 제어하지는 않는 섀도우 모드(shadow mode) 테스트를 실행하십시오. 그리고 로그를 엄격하게 비교하십시오.

배포 후에도 성능을 지속적으로 모니터링하십시오. 세상은 멈춰 있지 않습니다. 계절에 따른 조명 변화, 마모된 도로 표면, 새로운 패키징 디자인, 변화하는 네트워크 트래픽 패턴은 한때 훌륭하게 작동했던 모델의 성능을 저하시킬 수 있습니다. 예측 신뢰도, 입력 분포 드리프트(input distribution drift), 사고 발생률을 추적하는 텔레메트리(telemetry)를 구축하십시오. 행동이 변화할 때 인간의 검토나 일시적인 운영 제한을 트리거하는 임계값을 설정하십시오. 모델은 배포하고 잊어버리는 정적인 제품이 아닙니다. 모델은 실제 세상과 만나는 순간부터 노후화되는 구성 요소입니다.

실세계 검증에 관한 냉혹한 진실

많은 팀이 높은 검증 점수가 준비 완료를 의미한다고 스스로를 설득합니다. 그렇지 않습니다. 실세계 검증은 불편함을 감수하는 것을 의미합니다. 돌풍이 부는 조건에서 드론을 날리고, 전구가 깜빡이는 야간 교대 근무 시간 동안 창고 로봇을 가동하며, 도로 표지판의 적대적 스티커(adversarial stickers)에 인지 모델을 노출시키는 것을 의미합니다. 만약 당신의 테스트 환경이 깔끔하고 예측 가능하다면, 당신은 테스트를 하고 있는 것이 아닙니다. 연습을 하고 있는 것입니다.

이 과정은 비용이 많이 들고 느립니다. 머신러닝 엔지니어, 안전 전문가, 그리고 물리적 환경을 이해하는 도메인 운영자 간의 협업이 필요합니다. 그 대가는 '증거의 집합'입니다. 결국 배포할 때, 당신은 특정 테스트 조건, 알려진 실패 모드, 그리고 각 위험에 연결된 완화 조치를 구체적으로 지목할 수 있어야 합니다. 그 문서화 작업이야말로 프로토타입과 인간 근처에서 감독 없이 운영할 수 있는 시스템을 구분 짓는 요소입니다.

시간이 지나도 시스템의 정직함을 유지하는 법

배포 후 모니터링은 많은 보증 프로그램이 조용히 무너지는 지점입니다. 팀은 출시를 축하하고 다음 기능을 위해 리소스를 재배치합니다. 그동안 배포된 모델은 학습 경험에서 미묘하게 벗어나는 입력 스트림에 직면합니다. 능동적인 모니터링 없이는 이러한 드리프트(drift)가 축적되어 심각한 사고가 발생한 후에야 사후 조사에 나서게 됩니다.

구조화된 피드백 루프를 구축하십시오. 모델이 낮은 신뢰도를 보이거나 인간 운영자가 개입한 모든 사례를 기록하십시오. 이 로그를 사용하여 모델을 주기적으로 재학습하거나 미세 조정(fine-tune)하되, 각 업데이트는 원래 릴리스에 적용되었던 것과 동일한 보증 게이트(assurance gates)를 통해 검증하십시오. 모델 업데이트를 기계식 브레이크 시스템을 새로운 설계로 교체할 때와 동일한 주의를 기울여 다루십시오.

핵심 요약

자율 시스템에서의 머신러닝은 연구용 샌드박스가 아닙니다. 이는 물리적 위험을 수반하는 인프라이며, 항공우주 및 의료 기기 엔지니어가 하드웨어에 적용하는 것과 동일한 엄격함을 갖춰야 합니다. AMLAS는 그러한 엄격함을 위한 어휘와 워크플로우를 제공합니다. AMLAS가 신뢰를 자동으로 만들어주지는 않지만, 신뢰를 얻을 수 있는 반복 가능한 방법을 제공합니다. 정직한 안전 목표부터 시작하십시오. 지저분하고 실제적인 데이터로 검증하십시오. 시스템이 가동되면 회의론자처럼 감시하십시오. 프레임워크는 이미 존재합니다. 나머지는 규율의 문제입니다.

For the full technical breakdown of the AMLAS guidance, read the original details here: https://dev.to/paperium/guidance-on-the-assurance-of-machine-learning-in-autonomous-systems-amlas-f9

If you want to discuss assurance strategies and exchange practical notes with a community working on similar problems, join the conversation here: https://t.me/GyaanSetuAi