2020년 1월 15일(수) 구글 AI 리서치 블로그
이상적인 세계에서는 딥러닝과 같은 머신러닝 (ML) 방법을 사용하여 훈련된 것과 동일한 분포에서 데이터를 예측합니다. 그러나 실제 현실 세계에서는 상당히 다를 수 있습니다: 카메라 렌즈가 흐려지고 센서가 저하되고 인기 있는 온라인 주제로 변경하면, 모델이 훈련된 데이터의 분포와 모델이 적용된 데이터 간에 차이가 생길 수 있는 데, 이것을 공변량 이동(covariate shift)이라고 합니다. 예를 들어, 최근에는 흉부 엑스레이에서 폐렴을 탐지하도록 훈련된 딥러닝 모델이 부분적으로 이미지 획득 및 처리의 미묘한 차이로 인해 이전에 보지 못한 병원의 데이터를 평가할 때 매우 다른 수준의 정확도를 달성한 것으로 최근에 관찰되었습니다.
NeurIPS 2019에서 “모델의 불확실성을 신뢰할 수 있습니까? 데이터셋 변화에 따른 예측 불확실성 평가하기”라는 주제 발표로, 우리는 최신 딥러닝 모델이 변화하는 데이터 분포와 분포하지 않은 데이터에 모두 노출될 때의 불확실성을 벤치마킹합니다. 이 연구에서는 이미지, 텍스트 및 온라인 광고 데이터를 포함한 다양한 입력 방식을 고려하여 이러한 딥러닝 모델을 점차 변화하는 테스트 데이터에 노출시키면서 예측 확률의 동작을 신중하게 분석합니다. 또한 모델 불확실성을 개선하기 위한 다양한 방법을 비교하여 어떤 전략이 분포 이동에서 가장 잘 수행되는지 확인합니다.
Out-of-distribution 데이터란 무엇입니까?
딥 러닝 모델은 각 예측마다 확률을 제공하여 모델 신뢰성 또는 불확실성을 나타냅니다. 따라서 그들은 자신이 모르는 것을 표현할 수 있으며, 그에 따라 데이터가 원래의 훈련 데이터 영역의 범위를 벗어난 경우 예측을 피할 수 있습니다. 공변량 이동의 경우, 불확실성은 정확도의 감소에 비례하여 이상적으로 증가합니다. 더 극단적인 경우는 데이터가 훈련 셋(Training Set)에 전혀 표현되지 않은 경우, 즉 데이터가 OOD (Out-of-Distribution)인 경우입니다. 예를 들어, 고양이 대 개들의 image classifier가 비행기의 이미지로 표시될 때 발생하는 상황을 고려하십시오. 모델이 자신 있게 잘못된 예측을 합니까? 아니면 각 클래스에 낮은 확률을 할당합니까? 관련 게시물에서 최근 이러한 OOD 예제를 식별하기 위해 개발한 방법에 대해 논의했습니다. 이 작업에서 우리는 모델의 확률이 그러한 데이터에 대한 예측 능력을 반영하는지 확인하기 위해 분포를 벗어난 예제와 이동된 예제가 제공된 모델의 예측 불확실성을 분석합니다.
불확실성의 질적 정량화
한 모델이 다른 모델보다 불확실성을 더 잘 표현한다는 것은 무엇을 의미합니까? 이것은 종종 다운 스트림 작업에 의해 정의되는 미묘한 질문 일 수 있지만, 확률론적 예측의 일반적인 품질을 정량적으로 평가하는 방법이 있습니다. 예를 들어, 기상 커뮤니티는 이 질문을 주의 깊게 고려하여 정확성을 보전하면서도 날씨 예측에 대한 비교 함수가 잘 교정되기 위해 충족해야 하는 일련의 적절한 점수 규칙을 개발했습니다. 우리는 데이터 셋 전환 시 ML 모델이 불확실성을 처리하는 방법을 이해하기 위해 ECE (예상된 캘리브레이션 오류, expected calibration error)와 같은 것 보다 직관적인 휴리스틱과 함께 Brieer Score 및 Negative Log Likelihood(NLL)과 같은 적절한 점수 규칙을 적용했습니다..
실험
이미지, 텍스트, 온라인 광고 데이터 및 유전체학을 포함한 다양한 데이터 양식에서 데이터 세트 이동이 불확실성에 미치는 영향을 분석합니다. 예를 들어, 인기있는 이미지 추상화 벤치 마크인 ImageNet 데이터셋에 대한 데이터셋 이동의 영향을 보여줍니다. ImageNet은 백만 개가 넘는 이미지를 1,000 가지 범주로 분류합니다. 일부 사람들은 이제 이 문제가 대부분 해결되었다고 생각하고, 손상된 이미지넷 (또는 Imagenet-C)과 같이 더 어려운 변형을 개발했습니다. 여기에서 데이터는 각각 5 가지 다른 강도로 16 개의 서로 다른 실제로 손상된 것들에 따라 확장됩니다.
[그림1]의 상세 설명 - 우리는 손상된 이미지 넷에서 사용되는 이미지 동요의 강도 증가와 같은 데이터 분포의 변화에 따라 모델 불확실성이 어떻게 동작하는지 살펴 봅니다. 여기에 강도 레벨 3 (5)의 각 이미지 손상 유형에 대한 예가 나와 있습니다.
우리는 이러한 손상된 이미지를 시프팅된 데이터의 예로 사용하고, 딥러닝 모델의 강도가 증가하는 시프트에 노출될 때 딥러닝 모델의 예측 확률을 조사했습니다. 아래는 각 수준의 손상 (손상되지 않은 테스트 데이터 포함)에 대한 결과 정확도 및 ECE의 상자 그림을 보여줍니다. 여기서 각 상자는 ImageNet-C의 모든 손상 유형에 걸쳐 집계됩니다. 각 색상은 서로 다른 유형의 모델, 즉 기준선으로 사용되는 "바닐라"심층 신경망, 4 가지 불확실성 방법 (dropout, temperature scaling 및 마지막 레이어 접근) 및 앙상블 접근법(ensemble approach)으로 나타냅니다.
[그림2]의 상세 설명. ImageNet-C에서 데이터셋 이동 강도를 높이기 위한 정확도(상단) 및 예상된 캘리브레이션 오류 (하단, 낮을수록 좋음) 정확도(Accuracy)의 감소는 모델의 불확실성의 증가에 의해 반영되지 않으며, 정확도와 ECE가 악화됨을 나타냅니다.
시프트 강도가 증가함에 따라 각 모델에 대한 손상 방법 전체의 정확도 편차가 예상대로 증가하고 (상자 크기 증가) 전체 정확도가 감소합니다. 이상적으로는 모델의 불확실성이 증가하는 데 반영되므로 예상된 캘리브레이션 오류 (ECE)는 그대로 유지됩니다. 그러나 ECE의 더 낮은 플롯(plot)를 보면, 이것은 그 케이스가 아니며 캘리브레이션도 일반적으로 어렵다는 것을 알 수 있습니다. Brier score와 NLL에 대한 유사한 악화 추세를 관찰한 것은 모델이 시프트에 대한 확신이 점점 더 이상 확실하지 않고, 대신 자신있게 잘못되고 있음을 나타냅니다.
교정을 개선하기 위해 널리 사용되는 방법 중 하나는 Platt Scaling의 변형(Variant)인 Temperature Scaling 으로 알려져 있습니다. 이 스케일링은 보류된 검증셋(Validation Set)의 성능을 사용하여 훈련 후 예측을 부드럽게 하는 것을 포함합니다. 우리는 표준 테스트 데이터에 대한 이러한 개선된 캘리브레이션을 수행하는 반면, 시프트(shift)된 데이터에 대해서는 종종 상황이 악화되는 것을 관찰했습니다! 따라서 이 기법을 적용하는 실무자들은 배포 이동에 주의해야 합니다.
다행히도 하나의 메서드는 다른 메서드보다 훨씬 더 불확실성을 떨어 뜨립니다. 각기 다른 초기화가 있는 모델 선택의 예측을 평균화하는 딥 앙상블 (녹색)은 테스트된 다른 모든 방법을 변경하고 능가하는 견고성을 크게 개선하는 간단한 전략입니다.
요약 및 권장 모범 사례
본 논문에서는 이미지, 텍스트, 온라인 광고 데이터 및 유전체학 간의 데이터 집합 이동에서 최첨단 모델의 동작을 살펴보았습니다. 우리의 연구 결과는 이러한 다양한 종류의 데이터에서 일관되게 나타났습니다. 데이터셋 이동에 따라 불확실성의 품질이 저하되지만 이를 완화하기 위한 유망한 연구 방법이 있습니다. 딥러닝 사용자는 본 연구에서 다음과 같은 메시지를 받아 보시기 바랍니다.
데이터셋 이동에서 불확실성은 모델을 훈련할 때 고려해야 할 실제 관심사입니다.
분산 테스트셋에서 캘리브레이션 및 정확도를 개선한다고 해서 시프트된 데이터의 캘리브레이션이 향상되지 않는 경우가 많습니다.
우리가 고려한 모든 방법 중에서 딥 앙상블은 데이터셋 이동에 가장 견고하며 비교적 작은 앙상블 크기 (예 : 5)로 충분합니다. 앙상블의 효과는 다른 접근 방식을 개선하기 위한 흥미로운 방법을 제시합니다.
딥러닝 모델의 예측 불확실성을 개선하는 것은 ML에서 활발한 연구 분야로 남아 있습니다. 우리는 이 중요한 주제에 대한 향후 작업을 추진하고 평가하는 것이 커뮤니티에 도움이되기를 희망하여 이 벤치 마크에서 사용한 모든 코드 및 모델 예측을 공개했습니다.
게시자 : Jasper Snoek (연구 과학자) 및 Zachary Nado (Google Research 연구 엔지니어)
원문 링크: https://ai.googleblog.com/2020/01/can-you-trust-your-models-uncertainty.html
소스 코드: https://github.com/google-research/google-research/tree/master/uq_benchmark_2019
이 블로그는 2020년 1월 15일(수), Google AI Blog 기사를 영어에서 우리나라 말로 번역한 것입니다. 또한 이 번역 글은 정보 공유 목적으로만 작성했으므로 어떠한 상업용으로 사용할 수 없으며, 원본 저작물 모두 구글에게 저작권이 있음을 알려 드립니다. (First Draft Version)