[논문리뷰] Weight Uncertainty in Neural Networks - Bayes by Backprop

·2022년 7월 25일
0

들어가기 전에

이 부분은 https://hyeongminlee.github.io/blog/bayesian/ 글에 bayesian view에 관한 내용이 잘 설명되어 있어, 해당 내용을 인용하였습니다.

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

Abstract

이 논문에서는 neural network의 가중치의 확률 분포를 학습하는 backprop-compativle algorithm인 Bayes by Backprop을 제안하고 있다.
해당 알고리즘은 compression cost 최소화를 통해 가중치를 정규화한다. MNIST dataset classification 실험을 통해, 해당 알고리즘이 dropout과 견줄만 한 정규화 성능을 낸다는 것을 보여준다.
이 논문에서는 다음 두 가지에 대해 입증한다.

Introduction

전통적인 feedforward neural network는 오버피팅 문제가 발생할 수 있다. 지도학습이나 강화학습에 neural network가 적용되었을 때, 이러한 네트워크는 훈련 데이터의 불확실성을 정확하게 평가할 수 없으므로 올바른 클래스, 예측 또는 행동에 대해 지나치게 자신있는 결정을 내린다. (Frequentest View)
저자들은 weight uncertainty라는 개념이 도입된 variational Bayesian learning을 이용하면서 이러한 문제를 해결하고자 한다. 그리고 이 알고리즘을 Bayes by Backprop이라 칭한다. 저자들이 제시하는 neural network의 모든 가중치들은 possible balue에 대한 probability distribution으로 represent된다. (Bayesian View) 따라서 이 네트워크에서는 weight가 변화해도 representation이나 computation이 robust하다. 그리고 weight의 변화량 또한 train data의 변동성을 일관되게 설명하는 방식으로 학습된다.

Uncertainty on the weight라는 개념을 제안하게 되는 motivation으로는 다음의 세 가지가 있다.

  • Regularization via a compression cost on the weights
  • Richer representations and predictions from cheap model averaging
  • Exploration in simple reinforcement learning problems (such as contextual bandits)

이 논문에서는, 어떻게 uncertainty라는 개념이

  • epsilon greedy 알고리즘보다 더 systematic하게 exploration을 할 수 있는지
  • 데이터가 적거나 없는 부분에 대해 회귀 문제에서 predictive 성능을 올릴 수 있는지
  • 강화학습에서의 exploration-exploitation trade-off를 도출하는 데에 사용 될 수 있는지
  • non-linear regression 문제의 generalization을 향상시킬 수 있는지

에 대해서 입증한다.

Method

https://hyeongminlee.github.io/post/bnn003_vi/ 참고

Conclusion

weight uncertatinty와 함께 학습하는 Bayes by Backprop 알고리즘을 제시함.

  • neural net의 weight 분포에 optimise됨.
  • 몇가지 domain에 잘 작동함.
    • MNIST 분류에서, dropout의 성능과 견줄만 함
    • non-linear regression 문제에서, 보지 못했던 데이터에 대해 uncerainty가 더 reasonable한 prediction을 함.
    • contextual bandit 문제에서, exploration과 exploitation의 trade-off를 자동으로 배움.
  • Bayes by backprop은 심플하게 gradient update되는 알고리즘으로, multi-machine optimisation schemes에 적용될 수 있다.
  • 모든 연산은 GPU에서 수행될 수 있다.

참고

profile
튼튼

0개의 댓글