Bayes and Particle Filters·Lecture 2 of 7

L2 · Bayes Theorem

Updated 2026-09-15·KO

시리즈: Bayes and Particle Filters · 이전: L1 · 다음: L3

이 강의는 measurement를 본 뒤 직접 볼 수 없는 state에 대한 belief를 어떻게 고치는지 답합니다. Bayes theorem을 product rule에서 유도하고, 식의 네 항이 실제 문제에서 각각 어디서 오는지까지 봅니다.

형광펜: 정의·핵심 · 직관·메커니즘 · 조건·주의

목차


1. 같은 joint를 두 방향으로 쪼개기

L1에서 product rule을 두 방향으로 쓸 수 있다는 것을 봤습니다 (L1 §6). 이번 강의는 그 한 줄에서 시작합니다.

p(x,y)=p(x∣y) p(y)=p(y∣x) p(x)p(x,y) = p(x\mid y)\,p(y) = p(y\mid x)\,p(x)

같은 joint distribution을 "먼저 yy, 그다음 yy가 주어졌을 때 xx"로 쪼갤 수도 있고, "먼저 xx, 그다음 xx가 주어졌을 때 yy"로 쪼갤 수도 있습니다. Bayes theorem은 이 두 분해가 같은 값이라는 사실에서 나옵니다. 유도하기 전에 숫자로 된 문제를 하나 세우겠습니다.

검사 예제와 두 질문

질병이 있는 사건을 DD, 없는 사건을 ¬D\neg D, 검사 결과를 T∈{+,−}T\in\{+,-\}로 두겠습니다. 이 예제에서는 사건의 확률이므로 대문자 PP를 씁니다. P(+)P(+)는 P(T=+)P(T=+)를 줄여 쓴 것입니다. 주어진 값은 세 개입니다.

P(D)=0.01,P(+∣D)=0.95,P(+∣¬D)=0.05P(D) = 0.01, \qquad P(+\mid D) = 0.95, \qquad P(+\mid \neg D) = 0.05

P(D)P(D)는 인구 중 질병이 있는 사람의 비율입니다. P(+∣D)P(+\mid D)는 "질병이 있을 때 검사가 positive일 확률"이라고 읽습니다. P(+∣¬D)P(+\mid\neg D)는 질병이 없는데 positive가 나올 확률, 즉 false positive rate입니다.

질문은 두 개입니다.

  1. 아무나 한 명 검사했을 때 positive가 나올 확률 P(+)P(+)는 얼마인가?
  2. 검사가 positive인 사람이 실제로 질병이 있을 확률 P(D∣+)P(D\mid +)는 얼마인가?

첫 번째 질문과 law of total probability

L1 §6의 law of total probability를 이 예제에 그대로 적용합니다. positive가 나오는 경우는 "질병이 있고 positive"와 "질병이 없고 positive" 두 가지이고, 둘은 겹치지 않습니다. 먼저 marginalization으로 둘을 더하고, 각 joint를 product rule로 바꿉니다.

P(+)=P(+,D)+P(+,¬D)(marginalization)=P(+∣D) P(D)+P(+∣¬D) P(¬D)(product rule)=0.95×0.01+0.05×0.99=0.0095+0.0495=0.059\begin{aligned} P(+) &= P(+, D) + P(+, \neg D) && \text{(marginalization)} \\ &= P(+\mid D)\,P(D) + P(+\mid\neg D)\,P(\neg D) && \text{(product rule)} \\ &= 0.95 \times 0.01 + 0.05 \times 0.99 \\ &= 0.0095 + 0.0495 = 0.059 \end{aligned}

첫 줄까지는 marginalization일 뿐입니다. Law of total probability는 marginalization 다음에 product rule을 써서, 각 경우의 conditional probability를 그 경우의 확률로 가중해 더한 형태입니다. 일반 기호로 쓰면 다음과 같고, ∑x\sum_x는 xx가 가질 수 있는 모든 값을 훑으면서 식에서 xx를 없앱니다.

p(y)=∑xp(y,x)(marginalization)=∑xp(y∣x) p(x)(product rule)\begin{aligned} p(y) &= \sum_x p(y, x) && \text{(marginalization)} \\ &= \sum_x p(y\mid x)\,p(x) && \text{(product rule)} \end{aligned}

두 번째 질문과 Bayes theorem

이제 P(D∣+)P(D\mid +)를 구합니다. 일반 기호로는 p(x∣y)p(x\mid y)를 구하는 문제입니다. 같은 joint를 두 방향으로 쪼갠 식에서 시작합니다.

p(x∣y) p(y)=p(x,y)(product rule)=p(y∣x) p(x)(product rule, other order)\begin{aligned} p(x\mid y)\,p(y) &= p(x,y) && \text{(product rule)} \\ &= p(y\mid x)\,p(x) && \text{(product rule, other order)} \end{aligned}

양변을 p(y)p(y)로 나눕니다. 나눗셈이므로 p(y)>0p(y)>0이어야 합니다. 확률이 0인 사건을 조건으로 두는 경우는 L1의 conditional probability 정의에서도 제외했습니다.

 p(x∣y)=p(y∣x) p(x)p(y) \boxed{\,p(x\mid y) = \frac{p(y\mid x)\,p(x)}{p(y)}\,}

이것이 Bayes theorem입니다. 새로운 법칙을 가정한 것이 아니고, product rule을 두 순서로 쓴 결과입니다.

분모 p(y)p(y)는 앞에서 쓴 law of total probability로 풀어 씁니다.

p(x∣y)=p(y∣x) p(x)∑x′p(y∣x′) p(x′)p(x\mid y) = \frac{p(y\mid x)\,p(x)}{\sum_{x'} p(y\mid x')\,p(x')}

분모에서 x′x'를 쓰는 이유가 있습니다. 분자의 xx는 지금 posterior를 계산하고 있는 특정한 값입니다. 분모는 모든 값을 더해서 xx를 없애야 하므로, 분자의 xx와 구분되는 합산용 dummy variable x′x'를 씁니다. x′x'는 새 random variable이 아니고, 합이 끝나면 사라지는 이름입니다.

검사 예제에 넣으면 다음과 같습니다.

P(D∣+)=P(+∣D) P(D)P(+)=0.00950.059≈0.161P(D\mid +) = \frac{P(+\mid D)\,P(D)}{P(+)} = \frac{0.0095}{0.059} \approx 0.161

0.95인데 왜 0.161인가

P(+∣D)=0.95P(+\mid D)=0.95를 보고 "positive면 95% 확률로 질병이 있다"고 읽기 쉽습니다. 그러나 P(+∣D)P(+\mid D)와 P(D∣+)P(D\mid +)는 조건의 방향이 반대인 다른 양입니다. P(+∣D)P(+\mid D)는 질병이 있는 사람만 모은 세계에서 positive의 비율이고, P(D∣+)P(D\mid +)는 positive인 사람만 모은 세계에서 질병의 비율입니다.

1만 명으로 세어 보면 차이가 보입니다.

집단 인원 그중 positive
질병 있음, P(D)=0.01P(D)=0.01 100 100×0.95=95100\times 0.95 = 95
질병 없음, P(¬D)=0.99P(\neg D)=0.99 9,900 9900×0.05=4959900\times0.05 = 495
합 10,000 590

positive 590명 중 질병이 있는 사람은 95명이므로 95/590≈0.16195/590 \approx 0.161입니다. 질병이 없는 사람이 99배 많아서, 5%라는 작은 false positive rate가 만든 positive(495명)가 질병이 있는 사람의 positive(95명)보다 많습니다.

인구 중 질병이 있는 사람의 비율 P(D)P(D)를 base rate라고 부릅니다. 0.95와 0.161의 차이는 작은 base rate P(D)P(D)와, 큰 집단 ¬D\neg D에 곱해지는 false positive rate P(+∣¬D)P(+\mid\neg D)가 함께 만듭니다. 식으로는 P(D∣+)=P(+∣D)×P(D)/P(+)P(D\mid +) = P(+\mid D)\times P(D)/P(+)이고, 배율 P(D)/P(+)=0.01/0.059≈0.169P(D)/P(+) = 0.01/0.059 \approx 0.169의 분모 P(+)P(+) 안에 P(+∣¬D)P(+\mid\neg D)가 들어 있습니다. 만약 P(+∣¬D)=0P(+\mid\neg D)=0이었다면 base rate가 작아도 P(D∣+)=1P(D\mid +)=1입니다.

일반적으로 p(x∣y)≠p(y∣x)p(x\mid y)\neq p(y\mid x)이고, Bayes theorem에 따르면 둘 사이에는 p(x)/p(y)p(x)/p(y)라는 배율이 곱해져 있습니다.

Continuous일 때

xx가 continuous variable이면 p(x)p(x)와 p(x∣y)p(x\mid y)는 density이고, 분모의 합은 적분이 됩니다 (L1 §8).

p(x∣y)=p(y∣x) p(x)∫p(y∣x′) p(x′) dx′p(x\mid y) = \frac{p(y\mid x)\,p(x)}{\int p(y\mid x')\,p(x')\,dx'}

분모의 dx′dx'는 x′x'를 모든 값에 걸쳐 적분해서 없앱니다. 그래서 분모는 xx에 의존하지 않는 yy만의 함수입니다. yy도 continuous이면 p(y∣x)p(y\mid x)가 yy에 대한 density가 되는데, 이때 달라지는 점은 §3에서 봅니다.


2. Prior, likelihood, evidence, posterior

Bayes theorem의 네 항에는 각각 이름이 있습니다. 이 이름은 시리즈 끝까지 그대로 씁니다.

p(x∣y)⏟posterior=p(y∣x)⏞likelihood  p(x)⏞priorp(y)⏟evidence\underbrace{p(x\mid y)}_{\text{posterior}} = \frac{\overbrace{p(y\mid x)}^{\text{likelihood}}\;\overbrace{p(x)}^{\text{prior}}}{\underbrace{p(y)}_{\text{evidence}}}
  • Prior p(x)p(x): measurement yy를 보기 전에 xx에 대해 가지고 있던 belief입니다. 검사 예제에서는 P(D)=0.01P(D)=0.01입니다.
  • Likelihood p(y∣x)p(y\mid x): xx가 참이라고 가정했을 때, 실제로 본 yy가 나올 확률(또는 density)입니다. 검사 예제에서는 P(+∣D)=0.95P(+\mid D)=0.95와 P(+∣¬D)=0.05P(+\mid\neg D)=0.05입니다.
  • Evidence p(y)p(y): 모든 xx를 고려했을 때 yy가 관측될 확률(continuous yy면 density)입니다. 검사 예제에서는 P(+)=0.059P(+)=0.059입니다.
  • Posterior p(x∣y)p(x\mid y): yy를 본 뒤의 xx에 대한 belief입니다. 검사 예제에서는 P(D∣+)≈0.161P(D\mid +)\approx0.161입니다.

Evidence는 marginal likelihood라고도 부릅니다. p(y)=∑xp(y∣x) p(x)p(y)=\sum_x p(y\mid x)\,p(x)는 likelihood를 prior로 가중평균해서 xx를 marginalize out한 값이기 때문입니다.

검사 예제에서 belief는 prior 0.010.01에서 posterior 0.1610.161로 바뀌었습니다. 앞으로 xx는 보통 직접 볼 수 없는 hidden state이고 yy는 sensor measurement입니다.

Bayes theorem은 모든 항에 같은 조건 zz를 붙여도 성립합니다. §1의 유도에서 모든 확률에 zz를 조건으로 붙이면 되고, p(y∣z)>0p(y\mid z)>0이어야 합니다.

p(x∣y,z)=p(y∣x,z) p(x∣z)p(y∣z)p(x\mid y,z) = \frac{p(y\mid x,z)\,p(x\mid z)}{p(y\mid z)}

L4의 update step은 이 식에서 xx를 xtx_t, yy를 yty_t, zz를 과거 measurement y1:t−1y_{1:t-1}로 둔 다음, L3의 measurement conditional independence로 likelihood의 조건을 xtx_t만 남긴 것입니다 (L4 §4, L3 §5).

Likelihood는 x에 대한 분포가 아니다

p(y∣x)p(y\mid x)는 두 가지 방식으로 볼 수 있습니다.

  • xx를 고정하고 yy를 바꾸는 함수 y↦p(y∣x)y\mapsto p(y\mid x)로 보면, YY의 conditional distribution입니다. 따라서 ∑yp(y∣x)=1\sum_y p(y\mid x)=1입니다(continuous yy면 ∫p(y∣x) dy=1\int p(y\mid x)\,dy=1).
  • 관측한 yy를 고정하고 xx를 바꾸는 함수 x↦p(y∣x)x\mapsto p(y\mid x)로 보면, likelihood function이라고 부르고 L(x)L(x)로 쓰기도 합니다.

Likelihood function은 xx에 대해 더해서 1이 될 필요가 없습니다. 1이 되도록 normalize된 variable은 ∣\mid 앞의 yy이고 xx가 아니기 때문입니다. 두 후보에 대해 L(x1)=0.9L(x_1)=0.9, L(x2)=0.3L(x_2)=0.3이면 합이 1.21.2이지만 아무 문제가 없습니다. 검사 예제에서 P(+∣D)+P(+∣¬D)=1P(+\mid D)+P(+\mid\neg D)=1이 된 것은 P(+∣¬D)P(+\mid\neg D)와 P(−∣D)=1−0.95P(-\mid D)=1-0.95를 둘 다 0.050.05로 잡아서 생긴 우연입니다.

그래서 likelihood만 보고 xx의 확률을 말할 수는 없습니다. xx의 확률이 되려면 prior를 곱하고 normalize해야 합니다.

세 state 예제와 순위가 뒤집히는 경우

state가 X∈{x1,x2,x3}X\in\{x_1,x_2,x_3\} 세 개이고, 관측 yy 하나에 대한 prior와 likelihood가 다음과 같다고 하겠습니다.

항 x1x_1 x2x_2 x3x_3 합
prior p(x)p(x) 0.6 0.3 0.1 1
likelihood p(y∣x)p(y\mid x) 0.1 0.5 0.9 1.5
곱 p(y∣x) p(x)p(y\mid x)\,p(x) 0.06 0.15 0.09 0.30
posterior p(x∣y)p(x\mid y) 0.2 0.5 0.3 1

계산은 세 단계입니다. 각 state에서 prior와 likelihood를 곱합니다. 곱을 모두 더하면 evidence p(y)=0.30p(y)=0.30입니다. 각 곱을 0.300.30으로 나누면 posterior입니다.

Prior에서는 x1x_1이 가장 그럴듯했고(0.60.6) x3x_3가 가장 드물었습니다(0.10.1). 그런데 yy는 x1x_1에서 잘 나오지 않고(0.10.1) x3x_3에서 잘 나옵니다(0.90.9). Posterior에서는 x1x_1이 0.20.2, x3x_3가 0.30.3으로 순서가 뒤집혔습니다.

Posterior는 prior만 따르지도 likelihood만 따르지도 않고, 각 state에서 둘을 곱한 값의 상대적 크기를 따릅니다. Likelihood가 가장 큰 x3x_3가 posterior 1위가 되지 못한 것도 같은 이유입니다(x2x_2의 곱 0.150.15가 x3x_3의 곱 0.090.09보다 큽니다).


3. Evidence는 계산되는 값이다

Evidence는 따로 정할 수 있는 값이 아니다

Prior와 likelihood를 정하는 순간 p(y)=∑xp(y∣x) p(x)p(y)=\sum_x p(y\mid x)\,p(x)가 결정됩니다. "evidence를 0.8이라고 하자" 같은 가정은 할 수 없습니다. 분자들의 합과 다른 숫자로 나누면 posterior의 합이 1이 되지 않습니다.

Evidence는 prior와 likelihood 외에 새로 들어오는 정보가 아닙니다. 검사 예제의 P(+)=0.059P(+)=0.059도 따로 물어서 얻은 숫자가 아니라 P(D)P(D)와 두 likelihood에서 계산한 값이었습니다.

 p(y)=∑xp(y∣x) p(x)orp(y)=∫p(y∣x) p(x) dx \boxed{\,p(y) = \sum_{x} p(y\mid x)\,p(x) \qquad \text{or} \qquad p(y) = \int p(y\mid x)\,p(x)\,dx\,}

Evidence로 나누면 합이 1이 되는 이유

Posterior가 확률분포라면 모든 xx에 대해 더한 값이 1이어야 합니다. 이것을 확인합니다.

∑xp(x∣y)=∑xp(y∣x) p(x)p(y)(Bayes theorem)=1p(y)∑xp(y∣x) p(x)(p(y) is constant in x)=p(y)p(y)=1(law of total probability)\begin{aligned} \sum_x p(x\mid y) &= \sum_x \frac{p(y\mid x)\,p(x)}{p(y)} && \text{(Bayes theorem)} \\ &= \frac{1}{p(y)} \sum_x p(y\mid x)\,p(x) && \text{(}p(y)\text{ is constant in } x\text{)} \\ &= \frac{p(y)}{p(y)} = 1 && \text{(law of total probability)} \end{aligned}

두 번째 줄에서 p(y)p(y)를 합 밖으로 뺄 수 있는 것은 ∑x\sum_x가 xx만 훑고, yy는 이미 관측한 값으로 고정되어 있기 때문입니다. 세 번째 줄에서 합이 정확히 p(y)p(y)가 되는 것은 law of total probability 때문입니다. 분모가 합을 1로 만드는 것은 분모가 바로 분자들의 합이기 때문이고, 분모를 다른 숫자로 바꾸면 이 등식이 깨집니다.

숫자는 서로 맞아야 한다

xx와 yy가 모두 discrete이면 각 분자는 p(y∣x) p(x)=p(x,y)≤p(x)≤1p(y\mid x)\,p(x) = p(x,y) \le p(x) \le 1이고, 분자를 모두 더한 값이 p(y)≤1p(y)\le1입니다. 그래서 다음이 성립합니다.

  • 분자 하나하나는 1을 넘을 수 없고, 분자들의 합도 1을 넘을 수 없습니다.
  • 분자들의 합이 곧 evidence입니다. §2의 세 state 예제에서 state가 그 셋뿐이고 분자가 [0.06, 0.15, 0.09][0.06,\ 0.15,\ 0.09]이면 evidence는 0.300.30으로 정해져 있습니다. 이것을 0.80.8로 나누면 [0.075, 0.1875, 0.1125][0.075,\ 0.1875,\ 0.1125]가 되어 합이 0.3750.375입니다.

yy가 continuous이면 p(y∣x)p(y\mid x)는 yy에 대한 density이므로 1을 넘을 수 있고, 분자들과 p(y)p(y)도 1을 넘을 수 있습니다. xx가 continuous이면 p(x)p(x)가 density이므로 분자도 1을 넘을 수 있고, 이때 evidence는 분자들의 합이 아니라 적분입니다. 어느 경우에도 p(y)p(y)가 prior와 likelihood의 곱을 xx에 대해 더하거나 적분한 값으로 정해진다는 사실은 같습니다.


4. 비례식과 normalization

Bayesian 논문에서는 Bayes theorem을 분모 없이 쓰는 경우가 많습니다.

p(x∣y)∝p(y∣x) p(x)p(x\mid y) \propto p(y\mid x)\,p(x)

∝\propto는 "proportional to", 즉 "비례한다"라고 읽습니다. 이 식은 "xx의 함수로 볼 때 posterior는 likelihood와 prior의 곱에 비례한다"는 뜻입니다.

분모를 빼도 되는 이유

yy는 이미 관측한 값으로 고정되어 있습니다. 그러면 1/p(y)1/p(y)는 xx를 어떻게 바꿔도 변하지 않는 숫자 하나입니다. f(x)=c g(x)f(x) = c\,g(x)이고 cc가 xx에 의존하지 않는 0이 아닌 상수이면 f∝gf \propto g라고 씁니다. Bayes theorem은 c=1/p(y)c = 1/p(y)인 경우입니다.

세 state 예제로 확인합니다. 분자는 [0.06, 0.15, 0.09][0.06,\ 0.15,\ 0.09]이고 posterior는 [0.2, 0.5, 0.3][0.2,\ 0.5,\ 0.3]입니다. 두 벡터의 비율은 둘 다 2:5:32:5:3입니다. Evidence로 나누는 것은 모든 state의 값을 같은 배율로 바꾸는 것이므로, 막대의 높이는 바뀌어도 state 사이의 비율, 즉 분포의 모양은 바뀌지 않습니다.

같은 이유로 likelihood 전체에 xx와 무관한 상수를 곱해도 posterior는 그대로입니다. Likelihood를 모두 1/31/3배 한 13[0.1, 0.5, 0.9]\tfrac{1}{3}[0.1,\ 0.5,\ 0.9]를 쓰면 분자는 [0.02, 0.05, 0.03][0.02,\ 0.05,\ 0.03], evidence는 0.100.10이 되지만 posterior는 다시 [0.2, 0.5, 0.3][0.2,\ 0.5,\ 0.3]입니다. Prior가 같다면 posterior를 정하는 것은 likelihood 값의 절대 크기가 아니라 state 사이의 비율입니다.

x에 대해 상수라는 말과 항상 같은 값이라는 말

p(y)p(y)가 상수라는 말은 관측한 yy 하나를 고정했을 때 xx에 대해 상수라는 뜻이고, yy가 달라져도 같다는 뜻이 아닙니다. 검사 예제에서 결과가 negative였다면 evidence는 다른 값입니다. 여기서 P(−∣D)=1−P(+∣D)=0.05P(-\mid D)=1-P(+\mid D)=0.05, P(−∣¬D)=1−P(+∣¬D)=0.95P(-\mid\neg D)=1-P(+\mid\neg D)=0.95입니다.

P(−)=P(−∣D) P(D)+P(−∣¬D) P(¬D)(law of total probability)=0.05×0.01+0.95×0.99=0.0005+0.9405=0.941\begin{aligned} P(-) &= P(-\mid D)\,P(D) + P(-\mid\neg D)\,P(\neg D) && \text{(law of total probability)} \\ &= 0.05\times0.01 + 0.95\times0.99 \\ &= 0.0005 + 0.9405 = 0.941 \end{aligned}

이 경우 posterior는 P(D∣−)=0.0005/0.941≈0.00053P(D\mid -) = 0.0005/0.941 \approx 0.00053입니다. Positive를 관측했을 때의 evidence 0.0590.059와 negative를 관측했을 때의 evidence 0.9410.941은 다르고, 각각의 update 안에서만 xx에 대한 상수입니다.

Unnormalized posterior와 evidence 계산

p(y∣x) p(x)p(y\mid x)\,p(x)를 unnormalized posterior라고 부릅니다. 이름에 posterior가 들어가지만 일반적으로 합이 1이 아니므로 확률분포가 아닙니다. 확률로 쓰려면 합(또는 적분)으로 나눠야 합니다.

분모를 빼고 쓴다고 해서 evidence 계산을 피한 것은 아닙니다. 세 state 예제처럼 state space의 모든 state를 빠짐없이 나열한 목록(grid)으로 들고 있으면, normalize할 때 나누는 분자들의 합이 곧 p(y)p(y)입니다(continuous state를 칸으로 나눈 grid라면 근사입니다). ∝\propto는 그 계산을 마지막으로 미루고, 식을 다루는 동안 xx에 의존하는 부분만 보이게 합니다.

이 합이나 적분은 state space 전체에 걸친 계산이라서, state space가 커지면 비싸집니다. 이 문제는 L4 §7과 L6 §4에서 다룹니다.

Normalization constant η

Bayes filter 문헌에서는 분모를 매번 쓰지 않고 normalization constant η\eta ("eta"라고 읽습니다)를 씁니다.

 p(x∣y)=η p(y∣x) p(x),η=1p(y) \boxed{\,p(x\mid y) = \eta\, p(y\mid x)\,p(x), \qquad \eta = \frac{1}{p(y)}\,}
η−1=∑xp(y∣x) p(x)orη−1=∫p(y∣x) p(x) dx\eta^{-1} = \sum_x p(y\mid x)\,p(x) \qquad \text{or} \qquad \eta^{-1} = \int p(y\mid x)\,p(x)\,dx

η\eta는 아무 상수가 아니라, 결과의 합이 1이 되게 하는 바로 그 상수입니다. L4의 update step에서도 같은 역할을 하며, 거기서는 η−1=p(yt∣y1:t−1)\eta^{-1}=p(y_t\mid y_{1:t-1})입니다 (L4 §5).

Filter 문헌에서는 식이 달라도 같은 기호 η\eta를 다시 쓰고, 한 유도 안에서 여러 번 쓰기도 합니다. 서로 다른 식의 η\eta는 값이 같다는 보장이 없습니다. η\eta는 "그 식을 세로선 앞의 variable에 대해 더하거나 적분해서 1이 되게 하는 상수"라고만 읽습니다.


5. 각 항은 실제로 어디서 오는가

여기까지 오면 질문이 하나 생깁니다. Prior, likelihood, evidence는 실제 문제에서 전부 알고 있는 값입니까? 답은 항마다 다릅니다. 로봇 예제로 보겠습니다.

복도 로봇 예제

로봇이 복도의 세 위치 X∈{1,2,3}X\in\{1,2,3\} 중 한 곳에 있습니다. 실제 위치는 보이지 않고, 앞쪽 벽까지의 거리를 재는 range sensor 값만 보입니다. 지도에 따르면 각 위치에서 벽까지의 거리 h(x)h(x)는 다음과 같습니다.

h(1)=2 m,h(2)=5 m,h(3)=8 mh(1) = 2\,\mathrm{m}, \qquad h(2) = 5\,\mathrm{m}, \qquad h(3) = 8\,\mathrm{m}

센서가 y=5 my = 5\,\mathrm{m}를 읽었습니다. 이번 update에서 실제로 관측된 숫자는 이것 하나입니다.

Measurement를 보기 직전의 belief는 p(x)=[0.2, 0.6, 0.2]p(x) = [0.2,\ 0.6,\ 0.2]라고 하겠습니다. 이것이 prior입니다. 설명을 위해 정한 값이고, 실제로 prior가 어디서 오는지는 §6에서 봅니다.

Likelihood는 sensor model에서 옵니다. 센서에 noise가 있으므로 Y=h(X)+ϵY = h(X) + \epsilon으로 모델링하되, ϵ\epsilon의 분포가 xx에 따라 달라질 수 있다고 둡니다(예: 거리 h(x)h(x)가 멀수록 spread가 커짐). 제어에서 쓰는 output equation에 noise를 더한 모양이고, 이 연결은 L3 §7에서 조건과 함께 봅니다.

센서 값을 1 m 단위로 반올림해서 쓰면 yy는 discrete이고, p(y∣x)p(y\mid x)는 로봇을 위치 xx에 두고 측정을 반복해서 각 값이 나오는 비율로 calibration할 수 있습니다. 그렇게 만든 표에서 y=5 my=5\,\mathrm{m}에 해당하는 값이 다음과 같다고 하겠습니다.

p(y=5 m∣X=1)=0.05,p(y=5 m∣X=2)=0.8,p(y=5 m∣X=3)=0.1p(y{=}5\,\mathrm{m}\mid X{=}1) = 0.05, \qquad p(y{=}5\,\mathrm{m}\mid X{=}2) = 0.8, \qquad p(y{=}5\,\mathrm{m}\mid X{=}3) = 0.1

Noise ϵ\epsilon이 0 근처에 몰려 있다고 보면, 위치 2에서는 지도상 거리와 측정값이 같으므로 값이 큽니다. 위치 1과 3은 둘 다 3 m 차이인데 값이 다릅니다. ϵ\epsilon의 분포가 xx와 무관하고 0에 대해 대칭이면 위치 1과 3의 값은 같아야 합니다. 여기서는 거리가 멀수록 noise가 커지는 센서라서, 실제 8 m에서 5 m가 읽힐 확률이 실제 2 m에서 5 m가 읽힐 확률보다 크다고 둔 것입니다.

세 값의 합은 0.950.95로 1이 아니며, §2에서 본 것처럼 그래도 됩니다.

Evidence와 posterior는 계산으로 얻습니다.

p(y=5 m)=∑xp(y=5 m∣x) p(x)(law of total probability)=0.05×0.2+0.8×0.6+0.1×0.2=0.01+0.48+0.02=0.51\begin{aligned} p(y{=}5\,\mathrm{m}) &= \sum_x p(y{=}5\,\mathrm{m}\mid x)\,p(x) && \text{(law of total probability)} \\ &= 0.05\times0.2 + 0.8\times0.6 + 0.1\times0.2 \\ &= 0.01 + 0.48 + 0.02 = 0.51 \end{aligned}
p(x∣y=5 m)=[0.01, 0.48, 0.02]0.51≈[0.020, 0.941, 0.039]p(x\mid y{=}5\,\mathrm{m}) = \frac{[0.01,\ 0.48,\ 0.02]}{0.51} \approx [0.020,\ 0.941,\ 0.039]

위치 2의 belief가 0.60.6에서 약 0.9410.941로 올라갔습니다.

bpf l2 bayes update
복도 로봇 예제의 update입니다. 각 위치에서 prior와 likelihood를 곱한 값(회색 빗금, 합 0.51)을 0.51로 나누면 posterior(초록)가 되고, 위치 사이의 비율은 그대로입니다.

누가 각 항을 공급하는가

항 공급원 성격
measurement yy 센서 실제로 관측한 값
prior p(x)p(x) 직전 belief, 처음이라면 가정 우리가 들고 있는 belief
likelihood p(y∣x)p(y\mid x) sensor model (measurement model) calibration과 데이터로 만든 model
evidence p(y)p(y) prior와 likelihood로 계산 따로 정할 수 없는 값
posterior p(x∣y)p(x\mid y) Bayes theorem 구하려는 결과

검사 예제도 같은 구조입니다. P(D)=0.01P(D)=0.01은 인구 통계에서 오고, P(+∣D)P(+\mid D)와 P(+∣¬D)P(+\mid\neg D)는 질병 여부를 이미 아는 사람들에게 검사를 해 본 데이터에서 옵니다. P(+)P(+)는 이 둘로 계산하고, P(D∣+)P(D\mid +)가 결과입니다.

Prior와 likelihood는 참값이 주어진 것이 아니라 우리가 정하거나 추정한 model입니다. 예를 들어 센서 noise를 실제보다 작게 잡으면 likelihood가 실제보다 뾰족해지고, posterior도 보통 실제보다 확신이 강한 모양이 됩니다. Bayes theorem의 계산이 정확해도, 결과는 넣은 model만큼만 맞습니다.

Grid 위의 곱은 particle weight가 아니다

위의 [0.01, 0.48, 0.02][0.01,\ 0.48,\ 0.02]는 고정된 후보 위치 세 개(grid) 위의 unnormalized posterior이고, particle filter의 weight가 아닙니다. Particle filter가 prior를 어떻게 다르게 다루는지는 L6 §6에서 유도합니다.


6. Prior는 update마다 상대적이다

§5의 [0.2, 0.6, 0.2][0.2,\ 0.6,\ 0.2] 같은 prior는 실제로 어디서 옵니까? Prior는 처음부터 알던 분포라는 뜻이 아니라, 이번 measurement를 반영하기 직전의 belief라는 뜻입니다. 그래서 prior의 출처는 처음 시작할 때와 그 이후로 나눠서 봐야 합니다.

처음 prior

이 시리즈에서는 state를 t=0t=0부터, measurement를 t=1t=1부터 셉니다. t=0t=0에는 센서를 한 번도 보지 않았지만, 추론을 시작하려면 x0x_0에 대한 분포 p(x0)p(x_0)가 필요합니다. 이 initial prior는 사전 정보나 가정으로 정합니다.

  • 로봇이 위치 2에 있다는 것을 확실히 알면 모든 확률을 그 위치에 둔 point mass p(x0)=[0, 1, 0]p(x_0) = [0,\ 1,\ 0]으로 둡니다. Prior가 0인 위치는 update에서 likelihood를 곱해도 0으로 남으므로, 틀렸을 가능성이 있으면 이 형태를 쓰지 않습니다.
  • 사람이 로봇을 위치 2에 놓았지만 약간 틀렸을 수 있다고 알면 p(x0)=[0.1, 0.8, 0.1]p(x_0) = [0.1,\ 0.8,\ 0.1]처럼 둡니다.
  • 위치에 대한 정보가 전혀 없으면 uniform distribution p(x0)=[1/3, 1/3, 1/3]p(x_0) = [1/3,\ 1/3,\ 1/3]으로 둡니다.

어느 경우든 실제 위치의 분포를 누가 알려준 것이 아닙니다. 가진 정보를 분포의 형태로 옮긴 것입니다.

이후의 prior

로봇이 움직이면 직전 posterior를 그대로 다음 prior로 쓸 수 없습니다. 움직이는 동안 위치가 바뀌었을 수 있기 때문입니다. 대신 transition model p(xt∣xt−1)p(x_t\mid x_{t-1})로 직전 belief를 한 step 옮긴 결과가 다음 measurement의 prior가 됩니다 (L3 §3). 이 과정이 L4의 prediction step입니다. 위치가 바뀔 가능성이 전혀 없으면(transition model이 identity이면) 직전 posterior가 그대로 다음 prior가 됩니다. 움직일 수 있으면 일반적으로 둘은 다릅니다.

한 줄로 쓰면 다음과 같습니다. 화살표 위에는 그 단계에서 한 일을 적었습니다.

p(x0)→motionp(x1)→update with y1p(x1∣y1)→motionp(x2∣y1)→update with y2p(x2∣y1,y2)→motion⋯p(x_0) \xrightarrow{\text{motion}} p(x_1) \xrightarrow{\text{update with } y_1} p(x_1\mid y_1) \xrightarrow{\text{motion}} p(x_2\mid y_1) \xrightarrow{\text{update with } y_2} p(x_2\mid y_1, y_2) \xrightarrow{\text{motion}} \cdots

p(x2∣y1)p(x_2\mid y_1)은 "y1y_1까지 본 상태에서 x2x_2에 대한 belief"라고 읽습니다. p(x1∣y1)p(x_1\mid y_1)은 y1y_1에 대한 update의 posterior이고, 이것을 motion model에 통과시킨 p(x2∣y1)p(x_2\mid y_1)은 y2y_2에 대한 update의 prior입니다. 한 update의 posterior가 motion을 거쳐 다음 update의 prior가 되므로, prior와 posterior는 분포의 종류가 아니라 update 하나를 기준으로 붙는 역할의 이름입니다.

같은 복도 로봇에 이 chain을 숫자로 적용하는 계산은 L4 §6에서 두 step 합니다. 거기서 y1=5 my_1 = 5\,\mathrm{m} update의 prior는 §5에서 가정한 [0.2, 0.6, 0.2][0.2,\ 0.6,\ 0.2]가 아니라, 위의 p(x0)=[0.1, 0.8, 0.1]p(x_0)=[0.1,\ 0.8,\ 0.1]을 motion model로 한 step 옮겨 계산한 [0.17, 0.66, 0.17][0.17,\ 0.66,\ 0.17]입니다. Measurement와 sensor model이 §5와 같아도 prior가 다르므로 posterior도 달라집니다.

이 강의에서 가져갈 것

Prior는 update 하나를 기준으로 붙는 이름입니다. 이번 measurement를 보기 직전의 belief가 prior이고, 처음 한 번만 가정으로 정하며, 그 뒤로는 직전 posterior와 motion model에서 계산됩니다. Evidence는 그 prior와 likelihood에서 계산되고, posterior는 둘의 곱을 evidence로 나눈 것입니다.


이해 확인

1. 검사의 P(+∣D)P(+\mid D)는 0.950.95인데 positive인 사람의 P(D∣+)P(D\mid +)는 약 0.1610.161이다. 이 차이를 만드는 값들은 무엇인가? 또 조건의 방향을 뒤집을 때 그 값들이 들어갈 수밖에 없는 이유를 설명하시오.

2. 어떤 풀이가 §2의 세 state 예제에서 분자를 [0.06, 0.15, 0.09][0.06,\ 0.15,\ 0.09]로 구한 뒤 "evidence를 0.80.8이라고 하자"고 하였다. 이 풀이에서 틀린 점을 설명하시오. 또 evidence를 임의로 정할 수 없는데도 p(x∣y)∝p(y∣x) p(x)p(x\mid y)\propto p(y\mid x)\,p(x)처럼 분모를 빼고 쓸 수 있는 이유를 설명하시오.

3. Likelihood p(y∣x)p(y\mid x)는 xx에 대해 더한 값이 1이 아니어도 되지만, posterior p(x∣y)p(x\mid y)는 xx에 대해 더한 값이 반드시 1이다. 두 경우의 차이가 어디서 오는지 설명하시오.

4. 복도 로봇이 매 step 움직일 때, y2y_2에 대한 update의 prior는 무엇인지 쓰고 그것을 어떻게 얻는지 설명하시오. 또 p(x1∣y1)p(x_1\mid y_1)을 그대로 쓰지 않는 이유를 설명하시오.


답

1. Prior P(D)=0.01P(D)=0.01 (base rate)이고, 이것이 false positive rate P(+∣¬D)=0.05P(+\mid\neg D)=0.05와 함께 P(+)P(+)를 거쳐 들어갑니다. Positive는 질병이 있는 사람(1만 명 중 95명)과 없는 사람(1만 명 중 495명) 모두에게서 나오고, 두 경로의 크기는 likelihood에 각 집단의 크기 P(D)P(D), P(¬D)P(\neg D)를 곱해야 정해집니다. 식으로는 p(x∣y)=p(y∣x) p(x)/p(y)p(x\mid y)=p(y\mid x)\,p(x)/p(y)이므로, 조건의 방향을 뒤집으면 product rule에서 p(x)/p(y)p(x)/p(y)가 반드시 곱해집니다. → §1

2. State가 그 셋뿐이면 분자의 합이 곧 evidence이므로 evidence는 0.300.30으로 정해져 있고, 0.80.8로 나누면 합이 0.3750.375인 결과가 나옵니다. 분모를 뺄 수 있는 이유는 관측한 yy가 고정되면 p(y)p(y)가 xx에 대해 상수여서 분포의 모양을 바꾸지 않기 때문이고, normalize할 때 결국 분자들의 합으로 나눕니다. → §3, §4

3. p(y∣x)p(y\mid x)에서 normalize된 variable은 ∣\mid 앞의 yy이므로 보장되는 것은 ∑yp(y∣x)=1\sum_y p(y\mid x)=1뿐입니다. Posterior는 ∣\mid 앞이 xx인 분포이고, 곱을 evidence로 나누는 단계가 ∑xp(x∣y)=1\sum_x p(x\mid y)=1을 만듭니다. → §2, §3

4. p(x2∣y1)p(x_2\mid y_1)입니다. 직전 posterior p(x1∣y1)p(x_1\mid y_1)을 transition model에 통과시켜 얻습니다. p(x1∣y1)p(x_1\mid y_1)은 x1x_1에 대한 belief이고 움직이는 동안 위치가 바뀌었을 수 있으므로, x2x_2에 대한 belief로 그대로 쓸 수 없습니다. → §6

lectureprobabilitybayes-filterparticle-filter