Bayesian Deep Learning

Deep Learning을 비롯한 대부분의 머신러닝 알고리즘들은 주어진 문제를 해결하기 위해 필요한 다양한 파라미터들을 주어진 데이터를 통해 학습합니다. 그래서 머신러닝은 최적의 파라미터를 찾는 일이라고 볼 수 있습니다. 그런데 사실 이 파라미터를 보는 관점에는 크게 두 가지가 존재합니다.

  • Frequentest View: Model의 파라미터들을 Fixed Value로 취급하여 데이터로부터 그 값을 구해 냅니다.
  • Bayesian View: Model의 파라미터들을 각각 하나의 Random Variable로 취급하여 그 Distribution을 구해 냅니다.

예를 들어 봅시다. 전국 대학생의 평균 연령을 알기 위해 전국적으로 100명의 대학생을 Sampling 하여 평균 연령을 구했고, 그 결과 23살이라는 값이 나왔다고 합시다. Frequentest View에서는 “전국 대학생의 평균 연령을 23살이라고 하면 되겠군!“이라고 대답할 것이고, Bayesian View에서는 “전국 대학생의 평균 연령이 23살일 확률이 높겠지만, 아닐 확률도 존재 한다. 그 확률 분포는 다음과 같다.“라는 이야기를 할 것입니다. 이처럼 Bayesian View에서는 우리가 구하고자 하는 값을 정확히 구하지 않고, 어떤 값일 확률이 어느 정도인지에 대한 확률 분포로 대답합니다.

우리가 일반적으로 사용하는 Deep LearningFrequentest View입니다. Model의 Parameter들이 하나의 값으로 정해져 있고, 그에 따라 output도 하나의 값으로 출력하기 때문입니다. 하지만 이번 포스트에서 다룰 Bayesian Deep LearningBayesian View에 해당합니다. 즉 정답 뿐만 아니라 정답이 어느 값일 확률이 높은지에 대한 distribution을 출력합니다. 이렇게 distribution을 출력하였을 경우 얻을 수 있는 이득중의 하나는 Uncertainty를 알 수 있다는 점입니다. Model이 특정 값을 예측함에 있어서 그 대답이 얼마나 확실한지, 믿을만 한지를 알게 되면 여러 분야에 활용 가능합니다. 특히 자율주행과 같이 안전이 우선시되는 분야에서는 인공지능이 스스로 내린 결정이 정말 믿을만 한지에 대한 정보를 알 필요가 있습니다. 이번 포스팅에서는 이러한 Uncertainty에 집중하면서 Bayesian Deep Learning에 대해 알아 볼 예정입니다. 그럼 시작해보도록 하겠습니다.


contents

[top]