꺼내먹는지식 준
베이즈 아주 얕은 정리 본문
베이즈를 활용해서 연구도 해봤고, 어느정도 이해했다고는 생각하지만 항상 약간만 깊이 들어가면 내가 아무것도 모르는 구나를 깨닫게 된다.
이론적으로 완벽할 필요는 없지만 어느정도 구조에 대한 파악이 필요하다고 생각한다.
아래 블로그는 웹서핑 과정 중에서 만난 여지껏 어떤 블로그보다 베이즈에 대한 개괄을 잘 작성해놓은 블로그이다.
본 글은 내 사전지식에 맞춰 좀 덜거나 더해 작성되었기에 해당 글을 읽는 것보다 아래의 블로그 글을 읽는 것이 더 좋을 것 같다. 물론 나랑 사전 지식이 비슷하다면 이 글이 오히려 좋을 수도 있다.
http://posterior.egloos.com/9606941
대부분 글의 표현과 이미지는 위 블로그에서 가져온 것임을 먼저 밝힌다.
베이지안 추론
베이지안 추론은 '주관적 확률'을 사용할 수 있다는 점에서 전통적 절차와 큰 차이점을 지닌다.
※주관적 확률이란 어떤 사건의 발생 또는 어떤 명제가 참임에 대한 믿음의 정도 (degree of belief) 를 0 에서 1 사이의 숫자로 나타낸 것이다. 이를테면 동전을 하나 던졌을 때 앞면이 나올 확률이 0.5라고 말하는 것은 '앞면과 뒷면이 나올 가능성은 동일하다' 라는 믿음을 반영하는 것이다.
배경 지식을 반영할 수 있다는 엄청난 이점과, 이를 통해 여러 '주관적 확률 가설' 중 어느것이 더 확률적으로 그럴듯한지 비교해볼 수 있다.
대표적인 예시로 장마철 기상청은 장마 시기의 비올 확률이라는 사전 지식을 예측에 활용한다.
최근 예측 결과가 좀 좋지 않은데 여러 가설을 이용해보거나, 아예 사전 지식을 빼보면 어떨까?
베이즈 정리
모든 베이지안 통계분석 절차는 베이즈 정리의 특수한 적용 사례에 불과하다. 베이즈정리의 토대가 되는 개념인 조건부확률을 살펴보자.
※조건부확률이란 어떤 사건(명제)이'참'일 때 다른 사건(명제)이 참일 확률을 의미한다.
'동전이 공평함' 이라는 전제 하에 동전이 앞면이 나올 확률이 0.5
P('앞면' | '공평한 동전') = 0.5
'동전이 심하게 굽음' 전제 하에 앞면이 나올 확률이 0.8
P('앞면' | '굽은 동전') = 0.8
조건부확률의 개념을 토대로, 베이즈정리는 다음과 같은 공식으로 표현된다.
$$P(A|B) = \frac{ P(B|A) \times P(A) }{ P(B) }$$
$P(A|B)$ : 사후 확률
$P(A)$ : B가 참임을 알기 전에 A에 대해 갖고 있던 믿음(확률)을 의미, 사전확률
$P(B|A)$ : 우도, Likelihood
$P(B)$ : 증거, evidence
예시) 동전은 공평한가?
가설이 두개밖에 없다고 가정하자.
- 만약 동전이 공평하다면, 그것이 앞면이 나올 확률은 0.5이다.
- 만약 동전이 공평하지 않다면, 그것이 앞면이 나올 확률은 0.4이다.
2번의 시행에서 뒷면, 뒷면의 결과를 얻었다.
이 동전이 공평할 확률은?
$P(A|B)$ : 사후 확률
$P(A)$ : 0.5
$P(B|A)$ : 0.5 X 0.5 = 0.25
$P(B)$ : 0.5 X 0.25 + 0.5 X 0.36
분모의 계산은 분자보다 다소 까다롭다. P(B)가 의미하는 것은 'B가 일어날 확률' 인데, 이것을 조금 확장하여 생각하면 모든 가능한 상황에서 B가 일어날(참일) 확률의 합 이라 볼 수 있다. 그런데 위 경우에서 모든 가능한 상황이란 단 두 가지, 즉 동전이 앞면이 나올 확률이 0.5이거나 0.6인 경우로 제한되었다. 따라서 각각의 상황에서 뒷면이 두 번 나올 확률을 계산하여 더해야 한다. 하지만 여기서 주의할 것은 확률을 그냥 더하면 되는 것이 아니고, 각각의 우도에 사전확률을 가중치로 곱하여 더해야 한다. 이것은 각각의 가능성에 대한 사전믿음을 반영하는 것이다.
$$P(A|B) = \frac{ P(B|A) \times P(A) }{ P(B) } = \frac{0.5 \times 0.25}{ 0.5 \times 0.25 + 0.5 \times 0.36} \approx 0.41 $$
동전이 공평하다는 가능성인 사후확률이 0.41 임을 확인하였다. 상단에서 제시하였지만 사후확률은 여러 가설 중 어떤 가설이 얼마나 현상을 잘 설명하는 가에 대한 지표이다.
앞면이 나올 사전 믿음이 0.4인 경우
$$P(A|B) = \frac{ P(B|A) \times P(A) }{ P(B) } = \frac{0.4 \times 0.36}{ 0.4 \times 0.25 + 0.4 \times 0.36} \approx 0.59 $$
앞면이 나올 확률이 0.4 라고 믿는 경우가 0.5 라고 믿는 경우보다 뒷면이 2번 연속 나온 것을 (0.59 - 0.41) 만큼 더 잘 설명한다.
위 예시는 동전이 앞면이 나올 확률은 0.5이거나 0.6인 경우밖에 없으며, 그 외의 값은 갖지 않는다고 간주했다.
그러나 실제로 베이지안 데이터분석을 할 때는 가설이 이와 같이 뚝뚝 떨어진 (이산적인) 경우는 흔치 않다. 이를테면 동전이 앞면이 나올 확률은 0에서 1 사이의 어느 값이나 가능다고 가정한다. 이런 경우에는 앞에서 설명한 방식으로 베이즈 정리를 사용하는 것은 불가능하다. 따라서 이번 글에서는 그러한 경우에도 일반적으로 사용할 수 있는 베이즈 정리의 형태를 알아보자.
베이즈 정리의 일반적 형태
$$P(H|D) = \frac{P(H) P(D|H)} {P(D)}$$
통계분석 장면에서 가설은 모수치에 대한 어떤 명제를 의미한다. 더 쉽게 말하자면, 통계적 가설은 다음과 같은 형태를 갖는다: '신약의 치료효과는 0과 같다.' '동전이 앞면이 나올 확률은 0.5보다 크다.' 여기서 '신약의 치료효과', '동전이 앞면이 나올 확률' 등은 모수치에 관한 진술로 바꿀 수 있다. 전자의 경우에는 '신약의 치료효과' 를 θ로 나타내기로 하면 가설을 'θ=0' 과 같이 나타낼 수 있다. 후자의 경우에도 비슷하게 'p > 0.5' 와 같이 나타낼 수 있다. 다시 말해, 가설(H)은 모수치(θ)에 관한 진술이다. 따라서 위의 베이즈 정리를 아래와 같이 나타낼 수 있다.
$$P(\theta|D) = \frac{P(\theta) P(D|\theta)} {P(D)}$$
위 공식의 분모 P(D) 는 추론 과정에서 중요한 역할을 하지 않는 경우가 많는데, 상수로 취급되기 때문이다. (아마도 적분해서 1) 경우에 따라서는 중요하기도 하다.
P(θ|D)는 사후확률(posterior), P(θ)는 사전확률(prior), P(D|θ)는 우도(likelihood) 임을 언급했다. 따라서 분모를 비례상수로 취급하면, 다음과 같은 표현을 얻게 된다:
정규분포 베이지안 업데이팅
베이지안에서 가장 흔하고, 가장 간단한 형태인 정규- 정규 모형을 살펴보자.
이 글에서는 모분산을 이미 알고 있다고 가정하고, 단 하나의 자료를 관측했을 때 모평균에 대한 베이지안 추론을 한다.
평균이 θ, 분산이 σ의 제곱인 정규분포 확률밀도함수는 아래와 같다.
간단하게 수식을 통해 증명 과정을 살펴봤으나 생각보다 깨닫게 되는 점은 적다.
이는 우도 (likelihood)에 해당된다. (우도는 P(D|θ)로 표현되었음을 상기하자.) 다시 말해 우도는 모수치가 주어졌을 때 자료(x)의 확률을 계산하는 데 사용되는 함수이다. (MLE 가 주어진 자료를 가장 잘 관찰할 수 있는 likelihood 를 말한다는 것을 떠올려보라!)
그런데 여기서는 분산이 상수라고 가정했기 때문에, 좌변에서 시그마(σ)를 생략해도 무방하다. 따라서 다음과 같이 다시 나타낼 수 있다.
사후확률(사후분포) 을 계산하기 위해서는 사전확률도 필요하다. 사전 확률은 분석가가 사전에 할당하는 내용이다. 우도가 정규분포일 때 흔히 사용되는 정규사전분포(normal prior)를 사용한다.
위 식은 모평균(θ)에 대한 사전믿음을 평균이 m, 표준편차가 s인 정규분포로 표현한다. 좀 더 쉽게 말하자면, 위 사전분포를 사용하는 사람은 모평균이 대략 m이라 믿으며, 그 불확실성이 대략 s만큼이라고 믿는다는 것을 의미한다. 분석가가 s에 작은 값을 할당한다면 그것은 모평균이 m이라는 것에 대해 확신이 있다는 것을 의미하는 것이다. 반대로 큰 s의 값은 모평균이 m이라는 믿음에 대해 확신이 그만큼 없다는 것을 의미한다.
아래의 식을 상기해보자.
이 표현을 위에 적용하면 다음과 같은 결과를 얻게 된다. 편의상 사전분포와 우도의 순서를 바꾸었다. (x가 데이터, D에 해당된다.)
(정규분포 밀도함수 숨은 의미)
베이지안 업데이팅에 내포된 의미
Precision
여러 자료로 구성된 표본을 갖고 있는 경우에 대해 예를 들어보자. (이 자료들은 공통의 정규분포에 왔으며, 각각은 독립이라고 가정한다.)
한가지 명확하게 하고 싶은 점은, 왜 표본 평균과 표본 평균의 분산을 사용했다는 점이다.
https://zzaebok.github.io/machine_learning/mle-bayes-mathematical-proof/
https://gaussian37.github.io/ml-concept-basic_bayesian_theory/
https://github.com/markdregan/Bayesian-Modelling-in-Python
켤레 사전 분포
우도함수(데이터 생성모형)가 있을 때, 사전분포를 적절히 설정하면 사후분포가 사전분포와 같도록 만들 수 있다. 이러한 사전분포를 '켤레사전분포' (Conjugate prior distribution) 라 부르며, 베이지안 통계에서 흔히 사용한다. 켤레사전분포를 사용하면 사후분포가 우리가 잘 아는 분포가 되기 때문에 사후평균, 사후분산 등을 매우 쉽게 구할 수 있다.
켤레사전분포를 사용하는 이유는 계산이 편해지기 때문이다. 이를테면 정규-정규 모형에서 우도함수의 분산을 이미 안다고 가정하는 경우, 모평균의 기댓값에 대한 업데이팅은 다음과 같이 이루어짐을 이미 확인하였다:
만약 사전분포가 켤레사전분포가 아니라면 수학적으로만 사후분포를 얻는 것은 매우 어려운데, 사후분포를 친숙한 분포의 형태로 구하는 것이 난해하기 때문이다. 따라서 사후분포로부터 평균이나 분산 등의 통계치를 얻기를 원하거나, 사후분포를 시각화하려는 경우에는 컴퓨터 시뮬레이션의 힘을 빌릴 수밖에 없다. 1990년대 이전에는 이것은 매우 어려웠다. 이론적으로도 힘들었거니와 당대의 컴퓨터의 성능이 이와 같은 복잡한 시뮬레이션을 수행하기에는 부족했기 때문이다. 그러나 기술의 눈부신 발전과 이론적 발전에 힘입어, 최근 들어서는 사전분포가 켤레사전분포가 아닌 경우에도 비교적 짧은 시간 안에 사후분포에 대한 시뮬레이션 결과를 얻을 수 있게 되었다. 이는 베이지안 통계학이 주류로 들어올 수 있게 해 준 중요한 계기가 되었다.
'AI > 머신러닝' 카테고리의 다른 글
머신 러닝 정리 4- Decision Tree (1) | 2022.10.05 |
---|---|
머신 러닝 정리 3 - 룰 베이스 알고리즘이란? (0) | 2022.09.29 |
머신 러닝 정리 2 - 확률 분포 (0) | 2022.09.29 |
머신 러닝 정리 1 - MLE, MAP 정리 (0) | 2022.09.28 |
베이지안 PYMC3 (0) | 2022.09.27 |