본문 바로가기

트렌드 한눈에 보기/학계 트렌드

[Bayesian 1차] 모르면 모른다 말하는 Deep Learning - "What Uncertainties Do We Need in Bayesian Deep Learning for Computer Vision?"

저자인 Alex Kendall은 2017년 SegNet이라고 하는 Encoder-Decoder 구조를 발표하면서 해당 분야의 선두주자로 뛰어오른 바 있다. 잘 감이 안오겠지만, 생성형 AI (Generative AI)의 두 분야가 1) Encoder/Decoder 구조 2) Generative Adversarial Network (GAN) 라고 생각하면 된다. 그 중 천하통일을 하고 있는 것이 Encoder/Decoder 구조인 것이다. 다른 저자인 Yarin Gal 역시 젊은 나이에 해당 분야에서 두각을 나타내며 현재는 영국 Oxford의 교수를 하고 있다. 2020년부터 200여개 가까운 연구결과물을 발표했으니, 성과가 상당하다.

 

 

Encoder/Decoder 구조를 더 잘 이해할 수 있으면 좋겠지만, 아쉽게도 오늘 정리하고자 하는 논문은 해당 논문이 아니다. 바로 밑에 있는, Bayesian 으로 표현하는 불확실성에 대한 내용이다. 말이 너무 어렵지만, 일단은 이해한 척 넘어가기로 하자.

 

 

ChatGPT의 할루시네이션 현상이 그렇듯, 딥러닝은 자기가 뭘 알고 뭘 모르는지 정확히 알지 못한다 (사람이라고 다르겠냐마는). 그래서 "주펄찜 레시피 알려줘"라는 질문에 있지도 않은 요리를 마음대로 창작해서 아무 말이나 찌끄리기도 하는 것이다. 이런 경우면 양반이지, 자율주행 차량이 트럭 옆면을 하늘로 인식하고 그대로 꼴아박은 사고 사례나, 흑인 두 명을 고릴라로 분류한 사례도 있다. 

 

분류 문제의 경우에는 그나마 양반이다. 예를 들어 어떤 사진을 주면서 "이게 똥인지, 된장인지 분류해줘" 라는 질문을 했을 때 딥러닝은 "1) 똥일 확률: 68%, 2) 된장일 확률: 32%" 라는 식으로 대답하곤 한다. 그렇다면 "아 똥일 확률이 크긴 하지만 확실하진 않군" 하고 넘어갈 수 있는 것이다. 하지만 회귀 문제 (Regression)는 다르다. 숫자 하나로 결과물이 나오는 문제 특성상, 결과물의 불확실성을 따로 확인할 길이 없다. 

 

 위 사진을 보면 이 논문이 하려는 바가 명확해진다. (a) Input이 주어졌을 때, (b) Ground Truth를 결과물로 내놓는게 목표이고, 실제 결과물은 (c) Semantic Segmentation이다. Segmentation 문제도 원래는 불확실성을 파악하기가 상당히 까다로운 영역인게, 분류 문제가 아니기 때문이다. 하지만 (d)를 보면, 사물과 사물의 경계처럼 edge가 필요한 부분, 즉 input 자체에서 변화가 크게 일어나며 불확실성이 커지는 부분을 정확히 짚어냈고, (e)를 보면 어두워서 잘 보이지 않는 부분들을 표시하는 것을 볼 수 있다. (d)와 (e)는 서로 다른 성향의 불확실성을 의미하며, 각각 "aleatoric uncertainty", "epistemic uncertainty"라고 부른다. (a)는 데이터 자체의 불확실성인 반면, (e)는 충분한 데이터가 쌓이게 되면 없앨 수도 있는 불확실성이다.

 

 

 

그럼 이 불확실성들을 활용하면 어떤 일이 가능할까? 학습을 A set을 활용해서 했는데, B라는 데이터가 들어왔다고 해보자. 보나마나 똥 같은 결과물을 뱉고 있을 테다. 이 때 Epistemic Uncertainty를 보면, "아, 익숙지 않은 데이터가 들어와서 그렇구나" 하는 식으로 해석하면 된다. 

 

 예를 들어, 걸을 때 속력을 예측해주는 모델이 있다고 하자. 학습 데이터는 모두 평지 상황에서 이뤄졌다. 근데 갑자기 뛰는 상황의 데이터가 주어지면, 어떻게든 결과는 나오겠지만 Epistemic Uncertainty가 높아지는 것을 보면서 "아, 지금 좀 다른 상황에서 보행이 이뤄지고 있구나" 하고 깨달을 수 있는 것이다.

 

 

그런데, 이 불확실성을 계산하는 방법이 말도 안되게 복잡하다. 일부러 어렵게 쓴 것은 아닐까 의심될 정도로 이해할 수가 없다. 위 식 중에서 어한 부분은 Aleatoric이고, 한 부분은 Epistemic일 텐데, 다행히도 식에 적혀있는 두 항이 명확하게 나눠진다. 근데 차마 이해할 엄두가 나지 않는다. 이 부분은 좀 더 쉽게 내용을 서술한 후속 논문에서 확인해봐야겠다.