본문 바로가기
내 맘대로 읽는 논문 리뷰/CV

Bayesian Learning

by 동석2 2021. 5. 3.

오늘은 조금 근본적인(?) 내용을 공부해보려 한다. 딱히 하나의 논문은 아니고, 한 분야를 공부하는 셈..

우리가 흔히 공부하는 분류 문제, 회귀 문제에 대한 해답으로 보통 여러 층으로 된 신경망, neural network를 사용하곤 한다. 이러한 신경망을 통해 나온 output은 원하는 학습 점인 optimal point를 도출하도록 학습이 된다.

이러한 기존의 학습을 Machine Learning이라고 보통 부른다. ML은 크게 세 가지 분야로 보통 나누는데, 학습할 label과 data가 같이 주어져 label을 도출하도록 학습시키는 Supervised Learning, data만 주고 data를 clustering하거나, feature 추출을 학습시키는 Unsupervised Learning, 주어진 환경에서 많은 iteration을 통해 reward를 최대화하는 Reinforcement Learning.

이러한 모든 ML 학습법의 경우, 특정한 fixed point를 도출하기 위한 방법이라 볼 수 있다. 그런데 이러한 접근은 공통적인 문제점을 가지는데, 바로 Uncertainty, 데이터에 대한 불확정성에 대한 대처가 어렵다는 것이다.

몇 가지 예시를 생각해보면, 동전 토스의 앞뒷면 확률은 1/2로 알려져 있는데, 만약 실제 환경에서 둘 다 앞면인 동전 데이터를 이용한다면? 이 데이터로 학습한 동전 토스 예측 머신 러닝 모델은 무조건 앞면만을 도출하게 될 것이다. 왜냐면 머신 러닝에서는 주어진 데이터에 의존 (data-driven)이기 때문이다. 즉 여기선 데이터에 대해 확실히 알지 못하기에, 잘못된 데이터를 사용해 잘못된 학습 결과가 나온 것이다.

보다 현실과 연계된 것은, 자율주행이다. 자율주행 모델을 머신러닝으로 학습할 때 연구진들은 정말 많은 경우의 수를 생각하고, 이를 학습시킬 것이다. 하지만 분명히, 이러한 데이터를 벗어나는 경우가 존재할 것이며 (물론 이를 핸들링하기 위해 일반화를 굉장히 신경쓰겠지만) 뜻하지 않는 경우를 만나 대처가 어려워져 사고라도 난다면, 큰 일이 날 것이다.

이러한 문제들을 해결하기 위한 학습 방법론이 Bayesian Learning으로, 쉽게 말하자면 어떠한 point들을 예측하는 것이 아닌, distribution 분포를 예측하는 모델을 학습하는 것이다.

 

원래 ML의 경우 W(weight)를 training data에 가장 잘 맞는 것으로 고정을 하는데, bayesian learning에선 W의 분포만을 학습하기 때문에, W가 고정되지 않는다. W를 통해 Y를 예측하는 것이 아니고, W의 분포를 통해 Y의 분포를 예측하는 것이 Bayesian Learning의 핵심이라고 볼 수 있다.

수식을 조금 넣어 이해해보자. 우리가 ML에서 학습할 때는 보통 data 우도를 최대화하는 MLE나, 여기에 Regularization term인 Prior을 추가해 최대화하는 MAP를 사용한다. 즉 MAP는 posterior p(W|X,Y)를 최대화하는 것과 일맥상통한다. (이는 베이즈 정리를 따져보면 알 수 있다.)

 

  • 베이즈 정리 : p(W|Y,X) = p(Y|W,X) * p(W) / p(Y|X)
  • MLE = argmax log p(Y|W,X)
  • MAP = argmax log p(Y|W,X) + p(W)

곧 MAP는 X,Y관계를 잘찾는 W를 찾는 것이며, MLE는 정확한 Y를 도출하는 W를 찾는 것이다.

Bayesian learning이 MAP와 비슷한데, MAP가 posterior를 최대화하는 W를 구한다면, Bayesian learning은 posterior p(W|Y,X)를 직접 구하는 것이다. p(W|Y,X)가 해당 데이터를 잘 설명하는 W의 확률 분포를 나타내는 것이다.

구한 posterior를 통해, 새로운 데이터 X에 대한 Y의 분포(p(Y*|X*))를 예측하는 것이 Bayesian learning의 최종 목표이다. 이때는 p(Y*|X*,W)의 합(w 적분)을 최대화하도록 학습한다.

이러한 분포를 학습하는 것은, 다시 말해 불확실성을 수치로 볼 수 있어 이 불확실성을 줄이도록 학습한다는 말이 된다. 이 때문에 hyperparameter/model 선택에서 비교적 자유롭다는 이점도 가지게 된다. 대신 단점으로 Evidence가 난해일 때 variational inference와 같은 도움을 요할 때가 있고, 실제 y 분포 예측에서도 sampling등의 방법을 사용하는 등 좀 더 복잡하다는 단점이 있다.

Bayesian Learning은 실제로 여러 computer vision분야에 널리 쓰이고 있고, (이미지 생성, 자율주행 등등) 여러 분야에서 쓰이고 있다. 그 만큼 연구 분야도 넓어 공부하려면 할게 정말 많다. 우선 오늘은 기본적인 것들만 생각해 정리해 보았고, 글을 추가해보도록 하겠다.