베이즈 통계(9): 확률밀도, 연속확률분포, 공액사전분포, 퍼라미터 추정

퍼라미터 추정에 관한 사례를 하나 더 보자. 사전 약속 없이 일반인이 백악관에 들어갈 수는 없다. 그런데 아주 유명한 사람, 예컨대 전설적인 농구 선수인 샤킬 오닐(Shaquille O’Neal)이라도 그럴까? 사전 예약 없는 유명인이 백악관 입장에 성공할 확률을 묻는 질문이다.

실험의 결과가 성공과 실패 두 가지이고, 시행들이 상호독립적이라면, 앞 게시글에서 공부한 이항확률분포를 적용할 수 있으나 이항확률분포는 이산확률변수에만 적용된다. 우리가 다루는 성공 확률은 0부터 1 사이의 어떤 값도 취할 수 있기 때문에 연속확률변수(continuous random variable)이다. 성공 확률 자체가 확률변수인 경우 적절한 분포는 베타확률분포(Beta probability distribution)이다. 이항 분포에서는 성공의 횟수가 확률변수인데, 베타분포에서는 성공의 비율이 확률변수이다. 베타분포하면 야구선수의 타율을 떠올리면 좋다. 베타(beta)와 배트(bat)를 묶으면 기억하기 편하다. (베타분포에 관해서는 확률분포(6): 베타분포 를 참조하시오.)

이산확률변수에서 연속확률변수로의 확장는 심각한 도약이다. 그러나 그것은 반드시 건너야 하는 강이다. 그 강에 놓인 첫번째 허들은 확률밀도와 확률밀도함수라는 개념이다.

과연 섁(Shaq)이 예약없이 백악관에 들어갈 수 있을까? 이 질문에 대한 합리적인 대답은 그렇다 아니다라는 양자택일이 아니라 확률로 표현될 수 있을 것이다. 섁의 백악관 입장이 허용될 확률이 0.01이다, 0.001이다, 0.0001이다, 0.2다, 0.3이다, 0.5다, 0.7이다…0.9999 따위로 추정되는 것이 합리적이라는 말이다. 섁의 백악관 입장이 허용될 확률(성공확률)을 라고 표기하자. 보다 정확히 말하자면, 는 섁의 백악관 입장이 허용되는 것에 대한 우리 믿음(짐작)의 정도이다. 는 우리가 추정하려는 퍼라미터이다. 의 값은 무수히 많을 수 있다. 성공가능성이 전혀 없다는 믿음을 의미하는 0에서부터 100% 성공가능하다는 믿음을 의미하는 1 사이에 존재하는 무수히 많은 수가 모두 퍼라미터가 될 가능성이 있다는 말이다.

이산확률분포의 경우 확률함수는 이항확률분포에서 보았듯이 확률변수의 각 값에 대한 확률을 부여한다. 그런데 연속확률변수의 경우 아무리 작은 범위일지라도 확률변수 값은 무수히 많기 때문에 각 확률변수 값은 거의 0에 가까운 확률을 가질 것이다. 그렇다면 연속확률분포에서 특정한 확률변수 값의 확률은 0인가? 만약 0이라고 한다면 연속확률분포의 면적이 1이 되어야한다는 정의에 문제가 발생한다. 개별확률변수값의 확률을 모두 더하면 1이 되어야 하는데, 개별 확률변수 값의 확률이 0이라면 그 값들의 총합은 1이 아니라 0이 되어 버리는 것이다. 그래서 확률은 0에 아주 가깝돼 정작 0은 아니어야 한다. 그래서 확률밀도함수(probability density function)는 아래와 같이 정의되고 우변이 확률밀도이다.

확률밀도(probability density)는 확률(probability)과 구분하기 위해 물리학에서 밀도라는 개념을 차용하여 만들어진 개념이다. 이산확률분포에서 높이가 확률인 것처럼 연속확률분포에서는 높이가 확률밀도이다. 아래 그림에서 오른쪽 그래프는 이산확률분포의 확률가 높이임을 보여주고, 왼쪽 그래프는 연속확률분포의 확률밀도가 높이임을 보여주고 있다.  ( 대신 라는 적분 기호로 표시되어 있으나 둘 다 0에 가까울 정도로 아주 미세한 크기의 밑변을 가리킨다.)

Probability density function

연속확률함수에서  혹은 는 확률이 아니라 확률밀도이다. 즉, 는 확률변수 의 값이 일 때의 확률밀도이다. 연속확률분포에서는 이산확률분포에서 사용되는 의미의 확률이 없다고 생각해도 무방할 것이다. 연속확률분포에서 확률분포(함수)는 항상 확률밀도를 낳는다. 섁의 성공확률밀도를 베이즈 정리로 표현하면 아래와 같을 것이다. 아직 이 식을 다 이해하지 못해도 상관없다. 곧 설명될 것이다.

좌변은 우리가 추정하려고 하는 사후확률밀도(posterior probability density)이다. 분자와 분모에 파란 글씨로 된 부분은 사전확률밀도이고 빨간 글씨로 된 부분은 우도이다. 우도와 사전확률의 곱은 결합확률이며, 분모에 0부터 1까지의 적분은 해당된 모든 결합확률밀도를 합하라는 지시이다. 이산확률분포를 설명할 때 언급했듯이 분모는 전체 합인 주변확률을 1로 만들어 분수의 값을 확률로 만들어 주는 정규화 상수(normalizing constant)이다. 연속확률변수에서는 주변확률밀도를 1로 만들어 분수의 값을 확률밀도로 만들어 주는 정규화 상수이다. 이산확률변수에서는 가 합을 나타내지만, 연속확률변수에서는 이 합을 표현한다.

베이즈 추론에서 이산확률분포에서 연속확률분포로 넘어가는 두번째 허들은 사전확률의 설정이다. 연속확률변수이니 하나의 사전확률이 있을 수 없고 무수히 많은 사전확률밀도가 존재하니 사전 확률(prior)은 사전확률분포(prior probability distribution)로 제시되어야 할 것이다. 그런데 성공확률의 확률분포로 베타 분포가 사용되니 사전확률분포로 베타확률분포을 채택하면 되겠다. 사전확률밀도가 베타확률분포를 따른다는 명제는 다음과 같이 간략히 표현될 수 있다.

에 아래첨자 0을 붙인 것이 사전확률밀도임을 나타내기 위해서이다. 베타확률분포는 퍼라미터 의 크기에 따라 아래와 같이 다양한 모습을 갖고 있다. 사전확률분포의 모습을 결정하는 퍼라미터인  를 우리가 구하려고 하는 미지의 퍼라미터(unkown parameter)인 와 구분하기 위해 하이퍼퍼라미터(hyper-parameter)라고 부른다.

Beta distribution - NtRand

이렇게 다양한 베타분포 중 우리 문제에서는 어떤 것을 사전확률분포로 채택할까? 두 개가 후보로 떠오른다. 하나는 보라색 그래프인데 그것은 연속균일분포이다. 사실 베타분포에서 하이퍼퍼라미터의 값이 둘 다 1이면 연속균일분포이다. 그 그래프는 0과 1사이에서 확률변수의 확률밀도 값이 모두 동일하다는 의미이다. 앞 게시글에서 균일분포가 비정보적(non-informative) 사전확률을 나타내는데 가장 많이 사용된다고 설명했다. 그런데 베타분포의 경우를 보면 비정보적이라는 말이 상대적이어서 베타분포의 여러 모양 중 가장 비정보적이라고 할 수도 없음을 알 수 있다. 그래프 중 U자 모양인 빨간색 그래프는 하이퍼퍼라미터가 둘 다 0.5일 때이다. 그것은 확률변수의 값이 0에 근접할 때와 1에 근접할 때 확률밀도가 가장 크고, 그 사이 값들에서는 확률밀도가 유사함을 보여준다. 이 그래프는 섁과 같은 유명인은 백악관 출입이 항상 허용될 것이라는 믿음(확률밀도가 1에 가까움)과 섁과 같은 대단한 유명인이라도 백악관 출입은 초청이나 사전 예약 없이 불가능할 것이라는 믿음(확률밀도가 0에 가까움)을 함께 나타내주는 것으로 볼 수 있다. 사실 이 그래프도 균일분포에 못지 않게 비정보적이다. 이 문제에 관해 우리는 둘 중에 후자인 를 사전분포로 채택하겠다. 그것은 아래와 같은 그래프이다.

사전확률분포를 정했으니 이번에는 우도 값을 정해야 한다. 우리가 손에 쥐게 되는 데이터는 시행 중 성공횟수가 될 것이다. 즉, 섁이 한번 시도해서(), 백악관에 들어가는 데 성공하거나(), 실패할 것이다(). 즉, 우도 값은 한번 시도한다면 베르누이 분포, 여러 번 시도한다면 이항분포를 따를 것이다. 즉, 베르누이 분포나 이항분포를 가지면 우도를 계산할 수 있다. 문제는 퍼라미터()가 무한히 많은 수라는 사실이다.  하나의 사전확률이 아니라 사전확률분포가 주어졌을 때 우도를 계산해야 한다. 그래서 우도도 아래와 같은 이항확률함수로 된 확률밀도함수(probability density function, pdf)로 정의되어야 한다.

만약 우리가 얻은 데이터가 섁이 한번 시도해서 백악관에 들어가는 데 실패했다는 것이라면, 일 것이므로 이항확률함수는 아래와 같을 것이다.

이제 사전확률분포와 우도함수를 구했다. 이제 식 (1)에서 보듯이 사후확률밀도를 계산하려면 정규화 상수를 구해야 한다. 그런데 거기에 적분이라는 엄청난 복병이 숨어있다. 적분 계산을 통해서 정규화 상수를 구하는 것은 대단히 번거롭고 심지어 때로는 불가능하기조차 하다. 사실 그것은 오랫동안 베이즈 추론이 널리 사용되지 못한 이유이기도 하다. 그래서 학자들은 적분을 우회할 수 있는 길을 찾아냈다. 그것의 첫번 째가 공액이라는 기법이다.

공액(켤레라고도 부름, conjugacy)이란 사전확률분포를 우도함수와 동일 계열의 확률분포로 설정하는 것을 말한다. 공액으로 설정된 사전확률분포를 공액사전확률분포(conjugate prior probability distribution, 혹은 간단히 conjugate prior)이라고 부른다. 위의 백악관 출입 허가 문제에서는 베타-이항 공액(beta-binomial conjugate)이 적용되었다. 베타 사전분포(beta prior distribution)와 이항 데이터(binomial data)를 결합하면, 베타사후분포를 얻는다. 사전분포와 사후분포가 하이퍼 퍼라미터만 다른 베타분포인 것이다. 이 사례의 경우 미지의 퍼라미터에 대한 우리의 믿음이 데이터를 얻은 후 베타분포의 하이퍼퍼라미터가 달라지는 방식으로 업데이트된 것이다. 이를 공식으로 표현하면 다음과 같다.

우리가 사전확률분포로 가정한 베타분포의 하이버퍼라미터가 이다. 그런데, 섁이 한번 시도해서 실패했으므로, 이다.그러면,

사후확률분포는 아래 그림과 같은 베타확률분포가 될 것이다.

사전확률분포와 사후확률분포의 모습이 사뭇 다르다. 사전확률분포에서는 극단적인 확률변수 값들의 모두 큰 확률밀도(높이가 높음)를 보였으나, 섁이 백악관 진입에 실패했다는 데이터를 얻은 후에 구한 사후확률분포에서는 0쪽에 가까운 확률변수 값들의 확률밀도는 그대로나 1쪽에 가까운 확률변수 값들의 확률밀도는 크게 낮아졌다. 다시 말해 섁이 한번 실패한 후에는 유명인이 백악관에 사전 약속 없이 들어갈 수도 있다는 데 대한 우리의 믿음이 크게 떨어졌다.

공액 덕분에 사후확률분포를 충격적일 정도로 쉽게 구했다! 확률 계산이 항상 이렇게 쉬우면 좋으련만….

만약 우리가 사전확률분포로 을 택한다면, 사후확률분포가 어떻게 될까? 데이터는 동일하다고 하자. 사전확률분포는 균일분포 모습일 것이다. 그렇다면 사후확률분포의 모습은 어떨까? 하이퍼퍼라미터를 계산하면 아래와 같다.

그래프로는 아래와 같다.

사후확률분포가 사선이다. 확률변수 값이 0에 가까울수록 확률밀도가 커지고 1에 가까이 갈수록 확률밀도가 작아진다. 앞에서 구한 사후확률분포와 비교해 보면 확률변수 값이 0에 가까울수록 확률밀도가 커지고, 1에 가까울수록 작아진다는 점에서는 유사하지만, 확률변수 값이 중간 지대에 속할 때는 확률밀도가 좀 많이 다르다. 분명한 점은 동일한 데이터가 주어졌을지라도(즉, 동일한 우도일지라도) 우리가 선택한 사전확률분포에 따라 사후확률분포가 달라진다는 사실이다.

셱이 다시 두 번 더 백악관 진입을 시도했다가(), 결국 한 번 성공했다()고 하자. 그런데 만약 처음 진입을 시도했을 때와 같은 경비라면 시행이 독립적이라고 보기 어려울 것이다. 때문에 매번의 시도가 서로 독립 사건이라고 가정하자. 그러면 사전확률분포가 일 경우 사후확률분포의 하이퍼 퍼라미터는 아래와 같을 것이다.

결과는 마찬가지이겠지만, 한번의 시행으로 업데이트된 하이퍼퍼라미터를 새로운 시행으로 업데이트하는 식으로 접근할 수도 있다. 그러면 1차 업데이트된 하이퍼퍼라미터가 2차 업데이트에서는 사전확률분포의 하이퍼퍼라미터가 된다. 사전확률분포의 하이퍼퍼라미터는 다음과 같다.

이 하이퍼 퍼라미터를 새로운 데이터로 업데이트하면 아래와 같게 된다.

(3)과 (4)의 결과가 동일하다. 이 업데이트 결과를 그래프로 표시하면 아래와 같다.

베타분포가 다시 업데이트되었음을 한 눈에 알 수 있다. 한 번의 성공이 확률밀도의 분포를 상당히 바꾸어 놓았다. 확률변수 값이 0과 1에 근접하면 확률밀도가 거의 0이고, 확률변수 값이 0.35 전후일 때 확률밀도가 가장 크다. 동일한 사전확률분포일 때라도 얻어진 데이터에 따라 사후확률분포(사후확률밀도함수)가 크게 다름을 알 수 있다. 또한 새로운 시행을 통해서 데이터가 계속 수집되면 사후확률분포도 지속적으로 업데이트될 수 있음을 알 수 있다.

새로 구해진 사후확률분포는 위에서처럼 그래프로 제시될 수도 있지만, 모멘트(예컨대 평균과 분산)를 추가하면 좋을 것이다. 베타분포의 평균과 분산은 다음과 같은 공식으로 구할 수 있다.

(4)에 제시된 하이퍼퍼라미터 를 위 공식에 대입하면 아래와 같은 값을 얻는다.

이상 공액이 베이즈 추론의 아주 편리한 지름길을 제공하고 있음을 살펴보았다. 베이즈 추론에 자주 사용되는 공액사전분포(conjugate priors)는 beta prior + binomial data –> beta posterior의 경우 외에도 여러 가지가 있다.

gamma prior + Poisson data –> gamma posterior

normal prior + normal data –> normal posterior

공액분포의 자세한 리스트는 아래의 위키피디아 링크를 참조하기 바란다.

Table of conjugate distributions

공액이 편리한 기법이기는 하지만, 모든 베이즈 추론 문제에 공액사전분포가 적용될 수 있는 것은 아니다. 그래서 다음 포스팅에서는 공액분포 적용 사례를 좀 더 살펴보고 나서 베이즈 정리의 분모에 있는 적분을 우회하는 또 하나의 방법인 시뮬레이션, 그 중 MCMC (Markov Chain Monte Carlo) 방법을 공부하겠다. (2020-11-03)

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.