끄적거림

[논문 리뷰] What uncertainties do we need in Bayesian deep learning for computer vision? - 1.Introduction 본문

개인 공부 정리/Bayesian

[논문 리뷰] What uncertainties do we need in Bayesian deep learning for computer vision? - 1.Introduction

Signing 2020. 11. 10. 18:10
728x90
반응형

베이지안 관련으로 많이 알려진 옥스포드 대학의 yarin Gal 교수가 2017년 Kendall과 함께 발표한 논문이다.

 

1200회가 넘는 인용이 이루어진 것만 봐도 얼마나 유명한 논문인지를 알 수 있다.

다른 논문들도 읽어보고 포스팅할 계획이다.(시간이 얼마나 걸릴지는 미지수,,)

 

본 논문을 100% 다 이해하기 위해서는 Random Process, Variational Inference 등과 같은 이론을 알고 있어야하지만, 일단은 공부하는 입장에서 이 논문을 리뷰해보고자 한다.

 

많이 부족하니 참고용으로 봐주시면 감사하겠습니다.

 

논문: papers.nips.cc/paper/2017/file/2650d6089a6d640c5e85b2b88265dc2b-Paper.pdf

 

 

 


1. Inroduction

이 단락에서는 본 논문에서 소개할 내용에 필요한 개념과 정의, 그리고 왜 이 논문이 필요한지를 밝히고 있다.

 

1.1 불확실성(Uncertainty)을 알아야 할 필요성

대부분의 ML/DL 모델들은 주어진 데이터를 가지고 학습을 진행하고, 성과를 높이는데에만 집중한다.

하지만 각 모델들은 저마다의 불확실성을 가지고 있다.

불확실성이란 무엇일까?

많은 곳에서 정의를 내리고 있지만 내가 생각하기로는 모델이 어떤 의사결정을 내릴때까지의 모든 과정에서 발생할 수 있는 오류라고 해두고 싶다.

오류(error)는 통계학 또는 모델링 부분에서는 꼭 필요한 존재다. 가장 기본적인 회귀분석만 보아도 normal 분포를 따르는 error term을 가지고 있다.

이 역시 불확실성이라 말할 수 있다.

 

 

그러면 이런 불확실성이 왜 필요할까?

 

본 논문에서는 두 가지 사례를 들어 그 필요성에 대해서 말하고 있다.

trailer 사고

 - 운전을 도와주는 시스템이 트레일러의 흰색 밝은 면을 하늘로 인식하여 첫 사망자가 발생한 사건이다.

구글 포토앱 사진 분류 사고

 - 이미지 분류 시스템이 두 African American(흑인종 미국인)을 고릴라로 분류한 사건이다.

이런 오류들은 왜 일어날까?

비전 분야에 한해서 생각해보자! 모델은 학습한 데이터를 기반으로 이미지를 분류해낸다.

예를 들어, 강아지 종을 분류해내는 모델이 있다고 가정해보자.

수만장의 강아지 종을 가져와서 높은 수준의 분류 모델을 만들었다.

여기에 이제 고양이 사진을 넣어보자.

무슨일이 일어날까?

모델은 고양이 사진을 보고 고양이! 라고 말할 수 없다.(고양이에 대해 학습한 적이 없기 때문에)

모델이 알고 있는 강아지 종 중에서 가장 비슷한 종이라고 답할 것이다.

올바른 판단이었을까? 이 것이 시사하는 바는 모델이 어떤 결정을 내릴 때 "모른다!" 라고 말할 줄 알아야 한다는 점이다.

 

 

모델이 "모른다!" 라고 판단할 때 그 근거를 불확실성으로 판단한다고 보면 되겠다.

문제는 이 불확실성을 어떤 지표로 만들어서 수치화 할 것인지이다.

이에 대한 문제는 차후에 이어진다.

 

불확실성에도 종류가 있다.

 

1) Epistemic Uncertainty

 

Model로부터 나오는 불확실성이다.(빨간색으로 칠한 이유는 그렇게 외웠기 때문이다.ㅎㅎ)

모델링을 하는 과정에서 이 모델이 내린 결정이 얼마나 불확실한지를 나타내는 지표다.

나중에 나오겠지만, drop-out과 연관되어 있다.

 

2) Aleatoric Uncertainty

Data로부터 나오는 불확실성이다.

이미 데이터를 수집하는 과정에서 발생한 불확실성이다.

이런 데이터 불확실성은 또다시 두가지로 나눠질 수 있다.

 

2-1) Homoscdastic Aleatoric Uncertainty

데이터 수집 과정에서 동일한 불확실성이 발생하여 수집되는 것이다.

가령 예를 들면, 카메라 렌즈에 먼지가 하나 붙어있다고 가정할 수 있다.

이 사진기로 사진을 찍으면 모든 사진에 동일한 먼지(error)가 불확실성으로써 존재할 것이다.

 

2-2) Heteroscedastic Aleatoric Unertainty

데이터 수집 과정에서 서로 다른 불확실성이 발생하여 수집되는 것이다.

(정확하지 않을 수도 있지만..)예를 들면, 온도계로 사람의 체온을 측정할 때, 체온의 real value는 36.542185421445... 이지만, 온도계로 실측했을때의 결과는 36.5로 측정될 것이다.

저마다의 real value와 observed value와의 차이는 매 측정마다 다를 것이다. 비전쪽으로 가져와 생각하자면, 사진기의 노출시간, 빛의 노출, 음영 등으로 생각할 수 있다.

핵심은 다 다른 불확실성을 갖는다는 것이다.

 


 

이 그림은 CamVid라는 이미지 데이터 셋을 가지고 semantic segmantation 모델링을 했을 때의 불확실성을 시각화한 것이다.

(a)는 실제 input image data

(b)는 groud truth, 실제 영역별로 라벨링을 붙여준 것이라 생각하면 된다. --> 이렇게 모델링되면 좋겠다 정도..

(c)는 학습을 진행하고 모델이 내놓은 output이다.

(d)는 Aleatoric Uncertainty, 데이터 불확실성

(e)는 Epistemic Uncertainty, 모델 불확실성

을 표현한 것이다.

 

빨간 네모 표시를 보면 (c)에서 보이는 것처럼 semantic segmantation이 제대로 이뤄지지 않았다.

더불어서 (d), (e)에서 불확실성을 보더라도 높은 불확실성을 보였고 특히, 모델 불확실성이 높다고 보여진다.

이 것은 모델이 그만큼 저 영역에 한해서는 잘 모르겠다고 의미하는 것이기도 하다.

파란 표시를 봐도 동일하게 보인다.

우리는 이런 불확실성을 측정하여 어떤 판단을 내릴 때 하나의 지표로써 사용하길 바라는 것이다.

 

 

 

 

따라서 본 논문에서 연구했던 것은 아래 3가지임을 나타내고 있다.

1. Aleatoric Uncertainty와 Epistemic Uncertainty, 두 불확실성을 한 번에 측정할 수 있다.

 - 기존의 연구 또는 불확실성 모델링의 경우, 두 불확실성 중 하나의 불확실성만 측정할 수 있었지만, 이를 하나로 묶어서 전체의 불확실성으로 나타낼 수 있음을 보였다.

2. 이러한 불확실성을 측정함으로써 모델의 성능을 베이지안 모델이 아닌 경우보다 1~3% 정도 향상시키는데 기여했다.

3. Aleatoric Uncertainty와 Epistemic Uncertainty 두 불확실성 사이의 trade-off에 대해 연구했다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

참고 자료

김동희님의 딥러닝논문읽기: www.youtube.com/watch?v=d7y42HfE6uI

 

728x90
반응형
Comments