Introduction to Bayesian methods

Dane Ahn
Epopcon Data Science & Engineering
7 min readJul 1, 2018

앞으로 약 2개월간 Bayesian methods for machine learning이라는 주제로 포스트를 연재할 계획입니다. 독자분들은 선형대수학과 미적분을 포함해 기초적인 수리통계학을 안다고 가정하고 있습니다 :)

Bayesian method에 대해서는 많이들 들어보셨으리라 생각합니다. 방법론적으로 고전적인 통계학(빈도주의Frequentist)과 사뭇 다르고, 더 어려울 때가 많습니다. 하지만 여러 장점으로 머신러닝에서 널리 사용되고 있습니다. 본 포스트에서는 기초적인 bayesian approach를 다룹니다.

Bayesian Approach

Bayesian과 frequentist의 가장 큰 차이점 중 하나는 모수Theta를 fixed constant로 보느냐, 확률변수Random Variable(이하 RV)로 보느냐입니다.

Frequentis는 theta를 정해져있지만 알지 못하는 값으로 생각합니다. 그리고 theta로부터 관측된 데이터가 나올 확률, 즉 가능도Likelihood를 구해 이를 극대화하는 theta를 선택합니다. 이때 likelihood의 식은 P(D|Θ)이 됩니다.

하지만 사실 우리가 정말 관심이 있는 것은 P(Θ|D), 즉 데이터가 주어졌을 때 theta가 어떨 것이냐는 질문일 것입니다. Frequentist의 입장에서 theta는 고정된 상수이기 때문에 이에 대한 확률 분포를 구하는 것이 말이되지 않습니다. 하지만 bayesian에서는 theta를 RV로 보고 그 분포를 수리적으로 구하게 됩니다. 그럼으로써 빈도주의와 달리, 신뢰구간Confidence interval이나 P-value 등 지저분한 해석으로 고통받지 않게된다는 장점 또한 있습니다.

Bayes Rule

Bayesian은 그 이름 그대로 Bayes rule이 그 핵심입니다. 위에서 언급된 P(Θ|D)는 사후분포Posterior distribution이라고 불리는데, 데이터를 고려한 theta의 분포라는 뜻입니다. 여기에 Bayes rule을 적용해 보겠습니다.

두 번째 식에서, MLE에서 흔히 보는 P(D|Θ)는 아시다시피 가능도 혹은 우도Likelihood라고 불립니다.
P(Θ)는 데이터를 아직 고려하지 않은 theta의 분포, 즉 사전분포Prior distribution이라 합니다. P(D)는 관측된 데이터가 발생할 가능성을 모든 theta의 경우에 integrate out한 값으로, 정규화 상수의 역할을 합니다. 흔히 Evidence라 불리는데, 그 값이 theta와 무관하므로 보통 큰 관심을 두지 않고 계산에서 생략하게 됩니다. 그렇다면 식은 다음과 같이 변합니다.

즉 , posterior는 prior와 likelihood의 결합으로 이해될 수 있습니다. 이때 만약 P(Θ|D)를 새로운 prior, Θ’으로 보고 새로운 데이터 D’이 주어진다면 다음과 같은 유도가 가능합니다.

즉 처음 prior를 D로 업데이트한 뒤, 그 posterior를 다시 D’으로 업데이트 해 최종적인 posterior를 구하게 된 것입니다. 위와 같은 과정은 끊임없이 반복될 수 있고, 이는 계속해서 유입되는 데이터를 통해 theta에 대한 분포를 점점 더 정확하게 예측해나갈 수 있음을 뜻합니다.
만일 prior와 posterior의 형태가 같다면 그 update가 상당히 쉬워지는데, 이러한 prior를 conjugate prior라고 합니다. 정확한 정의는 다음 포스트에서 살펴보겠습니다.

Application: Linear Regression

제가 지금까지 보아왔던 bayesian approach의 첫 예제는 항상 이항분포의 모수 p가 베타분포를 따른다는 예시였습니다. 본 포스트에서는 약간 색다르게 선형 회귀Linear regression을 예시로 들어보겠습니다.

Target을 y, data를 x, weight를 w라 하겠습니다. 이때의 w는 일반적으로 회귀에서의 모수 beta와 같습니다. 그렇다면 최소제곱법Least squared estimation는 다음과 같은 수식으로 정리됩니다.

이제 이 문제를 bayesian 식으로 풀어보겠습니다. 기본적인 수식을 정리하면 다음과 같습니다.

우리가 관심있는 것은 전과 마찬가지로 weight입니다.
첫번째 수식은 X로부터 weight와 target의 분포를 유도하는 것이, prior와 likelihood의 곱과 같음을 보여줍니다. 이 식이 밑의 weight의 분포를 유도하는데 주요하게 쓰입니다.
두번째 수식에서 weight와 관측된 데이터가 주어졌을 때의 y의 분포, 즉 잔차Residual가 일반적인 회귀분석과 마찬가지로 정규분포를 따른다고 가정했습니다. 마지막 수식에서는 weight의 prior를 정규분포로 두었습니다. 만일 prior의 분포가 달라진다면 그 결과 역시 달라집니다.
이제 weight의 사후분포를 구해보겠습니다.

위의 w의 무관한 상수를 생략하니 위에서 봤던 첫번째 수식이 되었습니다. 여기에 로그를 씌워 다시 정리하면 다음과 같습니다.

우리가 최종적으로 도출할 w의 값은 위 식을 최대화하는 w의 값(최빈값Mode)을 찾는 것이니, -1을 곱해준 후 이를 최소화하는 w의 값과 동일할 것입니다. 따라서 -1을 곱한 뒤 다시 정리해주면 다음과 같이 정리됩니다.

위 식을 최소화하는 w를 찾는 것은, 다들 아시겠지만 ridge의 식과 동일합니다. 즉, linear regression에서 모수에 prior로 정규분포를 가정하는 bayesian approach는 ridge와 실질적으로 동일합니다. 추가로 말씀드리면 Lasso는 사전분포로 Laplace를 설정하는 것과 동일합니다.

마치며

저는 Bayesian approach에 관심이 많았지만 사실 아는 것은 별로 없어 공부하며 이 포스트를 작성하고 있습니다. 위의 사례는 개인적으로 정말 흥미로웠는데, 다른 분들께도 그럴지는 모르겠습니다.
가능하면 지나치게 어렵지 않으면서도 흥미로운 포스트를 작성하고 싶습니다. 다음 포스트에서는 conjugate prior를 빠르게 정리하고 EM-algorithm에 대해 소개해보도록 하겠습니다.

--

--