BNN
문제
기존 MLE 방식은 확률 분포를 일차원적으로 단순 모델링.
-> 모르는 것을 모른다고 표현할 수 없다.
ex. 개, 고양이 구별하는 모델에 오리를 넣으면 개 80%, 고양이 20%
해결
mle가 아닌 Bayesian을 사용하여 학습된 분포 밖의 데이터를 마주하면 자각할 수 있도록 한다.
기본 개념
각 파라미터를 하나의 고정된 숫자가 아닌 평균과 분산 둘을 가진 확률분포로 생각.
-> mle는 데이터 사이를 구분하는 하나의 직선을 가지지만, bnn은 직선이 아닌 직선 주변의 확률 분포 - 구름을 학습한다.
데이터 D가 주어졌을때 가장 적절한 가중치 w의 사후 분포를 학습한다.
그리고 추론은 고정된 가중치로 한번 돌리는 것이 아니라 각 w에서 샘플링한 여러 가중치들로 여러번 추론 돌린다. 결과는 여러 결과의 평균으로 내고, 결과들의 분산이 크면 "학습 데이터 바깥의 분포, 모델이 모르는 케이스"임을 알 수 있다.
-> 직관적으로 데이터가 많은 곳이면 선이 촘촘, 데이터 없는 - 모델이 모르는 - 곳이면 선이 듬성듬성
학습
위의 식에서
그런데 w의 샘플링은 미분 불가능하니 대신 w의 분포에 대해 reparametrization trick을 사용한다.