Probability concepts explained: Bayesian inference for parameter estimation
Probability concepts explained: Bayesian inference for parameter estimation.
Intruduction
이전 글에서는 머신러닝과 통계적 모델에서 파라미터 추정을 위한 최대 우도 방법(maximum likelihood method)에 대해 다루었다. 이 글에서는 베이지안 추정(Bayesian inference)을 사용한 파라미터 추정을 위한 또다른 방법에 대해 다룬다. 또한 이 방법이 어떻게 최대 우도의 일반화로써 보여지는지와 이런 경우 두 방법이 같다는 것을 보인다.
몇가지 확률 이론의 기본적인 지식 즉 주변(marginal) 확률과 조건부(conditional) 확률을 알고 있다고 가정한다. 이에 대한 개념은 다른 글에서 설명한다. 또한 가우시안 분포에 대한 몇가지 기본적인 지식이 도움이 되지만 필수적이지는 않다.
베이즈 정리(Bayes’ Theorem)
베이지안 추론을 소개하기 전에 베이즈 정리를 이해해야 한다. 베이즈 정리는 정말 굉장하다. 베이즈 정리를 유용하게 하는 것은 베이즈 정리가 관련된 이벤트의 확률을 계산하는데 도움이 되는 우리가 이미 가지고 있는 몇몇 지식 또는 믿음을 사용할 수 있게 한다는 것이다. 예를 들면, 맑고 더운날에 아이스크림 판매에 대한 확률을 알고 싶다면, 베이즈 정리는 다른 날(비, 바람, 눈 등)에 아이스크림 판매 가능성에 대한 이전 지식을 사용할 수 있는 도구가 된다. 만약 아직 이해가 되지 않더라도 이후에 좀 더 다룰 것이니 걱정할 필요는 없다.
수학적 정의
수학적으로 베이즈 이론은 아래와 같이 정의된다.
여기서 A와 B는 이벤트이다. $P(A|B)$는 이미 발생한 이벤트 B가 주어지면 이벤트 A가 발생하는 확률이다.($P(B|A)$도 동일한 의미를 갖지만 A와 B의 역할이 반대이다.) 그리고 $P(A)$와 $P(B)$는 이벤트 A와 이벤트 B가 각각 발생하는 주변확률이다.
Example
수학적 정의는 때때로 너무 추상적이고 두렵게 느껴질 수 있다. 그래서 예제로 이를 이해해 보자. 트럼프 카드에서 카드를 뽑는 예제를 보자. 카드는 총 52장이 있고 그중 26장은 빨강, 나머지 26장은 검정이다. 카드가 빨강인 것을 알때 이 카드가 4인 확률은 무엇인가?
이를 위에서 본 수학기호로 변환하려면 이벤트 A는 선택된 카드가 4인 이벤트이고 이벤트 B는 카드가 빨강인 이벤트이다. 그래서 위 식의 $P(A|B)$는 이번 예제에서는 $P(4|red)$가 된다. 그리고 이것이 우리가 계산하려는 것이다. 우리는 이전에 이 확률이 $1/13$같다는 것을 계산했지만 베이즈 정리를 사용하여 계산해 보자.
찾아야할 우변에 대한 확률은 다음과 같다.
- $P(A|B) = P(red|4) = 1/2$
- $P(A) = P(4) = 4 / 52 = 1/13$
- $P(B) = P(red) = 1/2$
위의 결과를 베이즈 정리에 관한 식에 대입하면 $1/13$을 얻는다. 이는 우리가 기대했던 결과이다.
어떻게 베이즈 정리가 이전의 믿음을 포함하도록 하는가?
위에서 베이즈 정리가 이전 믿음을 포함한다고 언급했다. 그러나 단지 위 식으로는 어떻게 이전 믿음이 포함되는 것인지 알기 어렵다. 그래서 아이스크림과 날씨 예제를 사용하여 어떻게 이전 믿음이 포함될 수 있는지 알아보자.
A가 아이스크림을 판매하는 이벤트이고 B가 날씨에 대한 이벤트라고 하자. 그러면 날씨 유형을 고려할 때 특정 날짜에 아이스크림을 판매 할 확률은 얼마인가?라고 물을 수 있다. 수학적으로 이는 $P(A=아이스크림 판매|B=날씨)$로 쓸 수 있다. 이는 식의 좌변이다.
우변에서 $P(A)$는 이전에 알고 있는 표현이다. 우리의 예제에서 이는 $P(A = 아이스크림 판매)$이다. 즉 바깥 날씩에 상관없이 아이스크림 판매에 대한 (주변)확률이다. $P(A)$는 우리가 이미 아이스크림 판매에 대한 주변확률을 알고 있기 때문에 이전아 알려져 있다. 예를 들면, 100명의 잠재고객중 30명이 실제로 어딘가 몇몇 가게에서 아이스크림을 샀다는 데이터를 볼 수 있다. 그러면 날씨에 대한 어떤것을 알기에 앞서 $P(A = 아이스크림 판매) = 30 / 100 = 0.3$이다. 이것이 베이즈 정리가 이전 정보를 포함하는 방법이다.
주의 : 위에서 이전 정보를 얻기위해 가게로부터 데이터를 찾을 수 있다고 했다. 하지만 데이터에 기초하지 않는 완전히 주관적인 이전(prior)을 구성하는 것에 방해되는 것은 없다. 누군가가 개인적인 경험 또는 특정 도메인 지식으로부터 알려진 추측인 이전을 찾아내는 것도 가능하다. 그러나 계산한 결과가 이 선택에 영향을 받는다는 것을 아는 것이 중요하다. 이 글에서 이전 믿음의 강도가 결과어 어떻게 영향을 미치는지에 대해 좀 더 다룰 것이다.
베이지안 추론(Bayesian Inference)
정의
이제 베이즈 정리가 무엇이고 어떻게 사용하는지 알기 때문에 베이지안 추론이 무엇인가?라는 질문에 대한 대답을 할 수 있다.
우선, (통계적으로) 추론(inference)은 데이터로부터 모집단(population) 또는 확률 분포에 대한 속성(property)을 추론(deduce, 연역하는 것에 대한 절차이다. 최대 우도(maximum likelihood)에 관한 글에서 이를 수행했었다. 관찰된 데이터 포인트 셋으로부터 우리는 평균의 최대 우도 추정을 결정했다.
따라서 베이지안 추론은 단지 베이즈 정리를 사용하여 데이터로부터 모집단 또는 확률 분포에 대한 속성을 추론하는 절차이다.
분포로 베이즈 정리 사용하기
지금까지 위에서 사용한 예제는 베이즈 정리 식에서 각 항에 대해 하나의 숫자를 사용했다. 이는 우리가 얻는 대답또한 하나의 숫자라는 것을 의미한다. 그러나, 단일 숫자가 적합하지 않는 경우가 있을 것이다.
위의 아이스크림 예제에서 아이스크림 판매에 대한 이전 확률이 0.3인 것을 보았다. 그러나, 0.3이 단지 우리의 가장 좋은 추측이지만 이 값이 좀 불확실하다고 하면 확률 또한 0.25 또는 0.4일 수 있다. 이런 경우 이전 믿음의 분포는 아래 그림처럼 좀 더 적절하게 될 것이다. 이 분포는 사전(이전) 분포(prior distribution)으로 알려져 있다.
어떤 특정 날짜에 아이스크림 판매에 대한 사전확률을 나타내는 두 분포.파랑과 금색 곡선 모두의 피크값은 0.3값 근처이다. 위에서 언급된 것처럼 이것은 아이스크림 판매 사전확률에 대한 우리의 가장 나은 추측이다. f(x)가 x의 다른값에 대해 non-zero인 사실은 0.3이 아이스크림 판매에 대한 참값인 것이 완전히 명확하지 않다는 것을 보여준다. 파랑 곡선은 0에서 0.5사이 어디에도 있을 가능성이 있다는 것을 보여준다. 금색 곡선이 더 퍼져있고 파랑 곡석보다 더 작은 피크를 갖는 사실은 금색 곡선에 의해 표현되는 사전확률이 참값에 대해 파랑 곡선보다 "더 불확실하다"는 것을 의미한다.
유사한 방법으로 분포를 사용하여 베이즈 정리에서 다른 항목을 표현할 수 있다. 우리는 모델을 다룰때 주로 분포를 사용한다.
베이즈 이론의 모델 형식(Model form of Bayes’ Theorem)
베이즈 정리에 대한 서두의 정의에서 이벤트 A와 B를 사용했지만 문헌에 베이즈 정리의 모델 형식이 설명될 때 다른 기로로 종종 사용된다. 이를 알아보자.
이벤트 A 대신 보통 $\theta$를 볼 것이다. 이 기호는 쎄타로 불린다. 쎄타가 우리가 흥미를 갖는 것으로 파라미터의 셋을 나타낸다. 따라서 가우시안 분포의 파라미터값을 추정하려면 $\theta$는 평균($\mu$)와 표준편차($\sigma$) 모두를 나타낸다.(수학적으로 $\theta = {\mu, \sigma}$로 쓴다.)
이벤트 B 대신 data 또는 $y={y1, y2, ..., yn}$을 볼 것이다. 이는 데이터 즉, 우리가 가진 관측셋을 나타낸다. 이 글에서는 수식을 좀 덜 헤깔리게 하도록 수식에서 data를 사용한다.
그럼 모델 형식에서 베이즈 정리는 아래와 같이 쓸 수 있다.
우리는 $P(\theta)$가 사전(prior) 분포인 것을 보았다. 이는 아이스크림 판매 확률에 대한 우리의 믿음을 나타내는 분포가 있는 것처럼 파라미터의 참값에 대한 우리의 믿음을 나타낸다.
좌항의 $P(\theta|data)$는 사후 분포(posterior distribution)으로 알려져 있따. 이는 관측된 데이터를 고려하는 우항에서 모든 것이 계산된 후 파라미터 값에 대한 우리의 믿음을 나타내는 분포이다.
$P(data|\theta)$는 전에 이해한 것이다. 최대 우도에 관한 글을 읽었다면 $L(data; \mu, \sigma)$가 (가우시안 분포에 대한) 우도(likelihood) 분포인 것을 기억할 것이다. $P(data|\theta)$는 정확하게 이것으로 우도 분포(likelihood distribution)이다. 때때로 이는 $L(\theta;data)$로 표시되지만 여기서는 동일하다.
따라서 우리의 우도(likelihood)로 갱신된 사전 믿음(prior belief)을 사용하여 파라미터의 사후 분포(posterior distribution)을 계산할 수 있다.
베이지안 추론을 사용하여 파리미터 추론의 예를 진행한기 위한 충분한 정보를 제공한다. 그러나 우선...
완전히 P(data)를 무시한 이유는?
데이터의 주변(marginal) 분포인 것을 제외하고 때때로 증거(evidence)로써 나타나지만 실제로는 좋은 이름을 갖지 않는다. 우리는 오직 파리미터 값에 흥미가 있고 $P(data)$는 그에 대한 어떠한 참조도 없다는 것을 기억하자. 사실 $P(data)$는 분포로 평가조차 하지 않는다. 이는 단지 숫자이다. 우리는 이미 데이터를 관측해서 $P(data)$를 계산할 수 있다. 일반적으로 $P(data)$를 계산하는 것은 매우 힘들고 이를 계산하기 위한 많은 방법이 존재한다. 이 글에서 몇가지 방법에 대해 설명한다.
$P(data)$가 중요한 이유는 나온 숫자가 정규화한 상수(normalising constant)이기 때문이다. 확률분포의 필수 조건중 하나가 이벤트의 모든 결과의 합이 1과 같아야 한다는 것이다.(즉, 6면 주사위에서 1, 2, 3, 4, 5, 6이 나오는 전체 확률은 1이다.) 정규화된 상수는 사후분포가 분포의 합은 1인 것이 확실하게 하여 사후 분포 결과가 진짜 확률분포인 것을 확실하게 만든다.
몇몇 케이스에서 분포이 이 속성에 관심을 갖지 않는다. 분포가 정규화되었는지 아닌지에 관계없이 단지 분포의 피크가 나타는 곳에 관심을 갖는다. 이런 경우, 많은 사람들은 베이즈 정리에 대한 모델 형식을 아래와 같이 나타낸다.
여깃서 $\alpha$는 "~에 비례하는(proportional to)"를 의미한다. 이는 정규화 상수(normalisation constant) $P(data)$를 설명하지 않았기 때문에 진짜 사후 분포가 우항과 다르다는 것을 나타낸다.
베이지안 추론 예제
추론이 쓸모가 았을 수 있는 예제로 계속해 보자. 우리가 사용할 예제는 수소결합의 길이를 계산하는 것이다. 수소결함이 무엇인지 알 필요는 없다. (저자가 박사기간 동안 친구를 돕기위해 찾아낸 것이기 때문에 예제로 사용한 것 뿐이다.)
수소결합이 3.2Å에서 4.0Å이라고 가정하자.(Å(Ångström)은 1Å이 0.1 나노미터와 같은 길이의 단위이다.) 이 정보가 사전정보(prior) 가 된다. 활률 분포 용어로 이를 평균 $\mu = 3.6$Å, 표준편차 $\sigma=2.0$Å인 가우시안 분포로 아래와 같이 다시 만든다.
수소결합 길이에 대한 사전확률(prior probability).이것은 평균 μ = 3.6Å, 표준편차 σ = 0.2Å 인 가우시안 분포로 표현된다.
이제 측정된 수소결합 길이를 제공하는 몇가지 데이터(정확히는 평균 3Å, 표준편차 0.4Å인 가우시안 분포에서 무작위로 생성된 5개의 데이터 포인트. 실제 상황에서는 이들 데이터는 과학적 실험의 결과로부터 올 것이다.)를 제공한다(아래 그림에서 금색 포인트). 최대 우도에 관한 글에서 처럼 데이터로부터 우도(likelihood) 분포를 유도할 수 있다. 데이터가 가우시안 분포를 따른다고 가정하면 아래 그림에서 금색 곡선으로 표현되는 우도 분포를 얻는다. 5개의 데이터 포인트 평균의 최대 우도 추정은 3보다 작다는 것에 주목하자.(약 2.8Å)
파랑에서 수소결합의 길이에 관한 사전 확률(prior probability)과 5개의 금색 데이터 포인트에서 유도된 금색 우도 분포(likelihood distribution)
이제 2개의 가우시안 분포가 있다. 파랑은 사전(prior)을 나타내고 금색은 우도(likelihood)를 나타낸다. 우리는 정규화된 상수를 신경쓰지 않는다 그래서 정규화되지 않은 사후 분포(posterior distribution)을 계산하기 위한 모든것이 있다. 가우시안에 대한 확률 밀도를 나타내는 수식이 아래와 같다는 것을 기억하자.
이 중에서 2개를 곱해야 한다. 매우 지저분해지기 때문에 여기서는 수학을 다루지 않는다. 만약 수학에 관심이 있다면 이 문서의 처음 2페이지에서 볼 수 있다. 사후 분포 결과는 아래 그림의 핑크색이다.
파랑과 금색 분포를 곱하여 생성된 핑크색 사후 분포
이제 수소결합의 길이에 대한 사후분포를 얻었다. 여기에서 통계를 유도할 수 있다. 예를 들면, 거리 추정을 위한 분포의 기대값(expected value)을 사용할 수 있다. 또는 결론에 대한 불확실성을 수량화하기 위한 편차를 계산할 수 있다. 사후분포로부터 계산되는 가장 일반적인 통계는 최빈값(mode)이다. 최빈값은 종종 관심 파라미터의 참값에 대한 추정으로써 사용되고 MAP(Maximum a posterior probability) estimate로 알려져 있다. 이런 경우 사후 분포는 역시 가우시안 분포이다. 그래서 평균이 최빈값과 동일하다(그리고 중간값(median)값과도 동일하다) 그리고 수소결합의 거리에 대한 MAP 추정은 약 3.2Å에서 피크이다.
결론
왜 항상 가우시안을 사용하는가?
저자의 여러 글중 분포와 연관된 모든 예제에서는 가우시안 분포를 사용한다. 가우시안 분포를 사용하는 주요 이유중 하나는 수식을 더 쉽게 만들기 때문이다. 그러나 베이지안 추론 예제는 2개 분포의 곱을 계산했다. 이것은 매우 지저분해서 수식으로 진행하지 않았다. 그러나 수식 자체가 없더라도 사후(posterior)는 가우시안 분포인 것을 안다. 이는 가우시안 분포가 작업하기 쉽게 만드는 특정 속성을 갖기 때문이다. 가우스 우도 함수에 대한 가우스 분포는 켤레(conjugate)이다. 이것은 가우스 사전 분포에 가우스 우도 함수를 곱하면 가우스 사후 함수를 얻는다는 의미이다. 사후와 사전이 동일한 분포 패밀리(모두 가우시안)에 있다는 사실은 그것들을 켤레 분포(conjugate distribution)이라고 불린다는 뜻이다. 이런 경우 사전 분포는 conjugate prior로써 알려져 있다.
많은 추론 상황에서 우도와 사전이 선택되면 수식을 더 쉽게 만들기 때문에 결과 분포는 켤케이다. 데이터 과학에서의 예제는 LDA(Latent Dirichlet Allocation)로 몇가지 텍스트 문서(말뭉치로써 나타나는)에서 주제를 찾기위한 비지도 학습 알고리즘이다. LDA에 관한 소개는 여기에서 찾을 수 있다.
몇몇 경우 사후분포를 계산하기 쉽게 만들기 위해 그 같은 방밥으로 사전 또는 우도를 선택할 수 없다. 때때로 우도와(또는) 사전 분포는 끔찍해 보일 수 있고 직접 사후를 계산하는 것은 쉽지 않거나 불가능하다. 이런 경우 사후 분포를 게산하기 위한 다른 방법을 사용할 수 있다. 가장 일반적인 방법 중 하나는 마르코프 연쇄 몬테카를로(Markov Chain Monte Carlo) 방법이라 불리는 기술이다. 이에 관해서는 A Zero-Math Introduction to Markov Chain Monte Carlo Methods을 참조하자.
새로운 데이터를 얻은 경우 어떤 일이 발생하는가?
베이지안 추론에 대한 굉장한 것중 하나가 사용하기 위한 많은 데이터가 필요없다는 것이다. 1개의 관측이 사전(prior) 갱신에 충분하다. 사실 베이지안 프레임워크는 데이터가 들어오는 것으로써 실시간, 반복적으로 믿음을 갱신한다. 이는 다음과 같이 동작한다.
- 여러분은 무엇인가에 대한 사전 믿음(즉, 파라미터 값)을 가지고 있다.
- 그리고 약간의 데이터를 받는다.
- 위에서 했던 것과 같이 사후 확률을 계산하여 믿음을 갱신할 수 있다.
- 후에 더 많은 데이터가 들어온다.
- 그러면 사후가 새로운 사전이 된다.
- 새로운 데이터로부터 유도된 우도로 새로운 사전을 갱신하여 새로운 사후를 얻는다.
이 사이클은 무한히 계속될 수 있어서 믿음을 계속 갱신한다.
칼만 필터(Kalman filter)(그리고 이것의 변형)가 이에 대한 좋은 예제이다. 칼만필터는 많은 시나리오에서 사용되지만 데이터 과학에서 가장 높은 가능성은 applications to self driving cars이다. 칼만 필터에 대해서는 How a Kalman filter works in pictures를 참조하자.
정규화(regularisers)로써 사전(prior) 사용
위 수소결합 길이 예제에서 생성한 데이터는 2.8Å이 최고의 추정인 것을 제시한다. 그러나 오직 데이터상에서 추정을 기반으로 한다면 오버피팅의 위험이 있을 수 있다. 이는 데이터 수집 절차에 문제가 있다면 큰 문제일 수 있다. 우리는 사전을 사용하여 베이지안 프레임워크에서 이를 처리할 수 있다. 3.6Å에 중점을 둔 가우시안 사전을 사용하는 우리의 예제에서 3.2Å의 수소결합 길이의 MAP 추정을 제공하는 사후확률이 된다. 이는 우리의 사전이 파라미터값을 추정할때 정규화(regularisers)로써 동작할 수 있다는 것을 보여준다.
사전 vs. 우도에 놓는 가중치의 합은 두 분포간 관련된 불확실성에 기초한다. 아래 그림에서 이를 그래프로 볼 수 있다. 위와 동일한 색상으로 파랑은 사전분포를 금색은 우도 그리고 핑크는 사후분포를 나타낸다. 왼쪽 그래프에서 사전(파랑)이 우도(금색)에 비해 훨씬 덜 퍼져있는 것을 볼 수있다 따라서 사후는 우도보다 훨씬 더 사전을 닮았다. 오른쪽 그래프에서는 반대이다.
따라서 파라미터의 정규화를 증가시키려면 우도에 관해 사전 분포를 좀게하도록 선택할 수 있다. 이것에 관해서는 The truth about Bayesian priors and overfitting을 참조하자.
언제 MAP 추정이 최대우도 추정과 같아지는가?
MAP 추정은 사전 분포가 균등할 때 MLE와 같다. 균등 분포(uniform distribution)의 예는 아래와 같다.
Uniform distribution
우리가 볼 수 있는 것은 균등분포가 x축의 모든 값에 같은 가중치를 할당하는 것이다. 직관적으로 어떤 값이 가장 가능성이 있는지에 대한 어떠한 사전 지식의 결핍을 나타낸다. 이런 경우 가중치 모두는 우도 함수로 항당된다. 그러면 사전을 우도로 곱할 때 사후는 정확히 우도를 닮는다. 그러므로 최대 우도 방법은 MAP의 특별한 경우라고 볼 수도 있다.