Study/Probabilistic Robotics

Bayes Filter 공식 유도 정리

soohwan_justin 2023. 7. 19. 22:44

참고자료 :

- 베이즈 필터 공식 유도 :  https://www.youtube.com/watch?v=0lKHFJpaZvE

- Probablistic Robotics : https://docs.ufpr.br/~danielsantos/ProbabilisticRobotics.pdf

 

 

 

필요한 사전 지식

 

1. 베이즈 정리 : https://angeloyeo.github.io/2020/01/09/Bayes_rule.html

 

위 링크의 내용에 의하면, 베이즈 정리의 의미는

"새로운 정보를 토대로 어떤 사건이 발생했다는 주장에 대한 신뢰도를 갱신해 나가는 방법(a method to update belief on the basis of new information)이다."

 

따라서 로보틱스의 관점에서 위 의미를 해석하자면,

- 새로운 정보 : 센서 데이터

- 어떤 사건이 발생했다는 주장에 대한 신뢰도 : 현재 로봇의 위치에 대한 신뢰도

이 정도로 보면 될 것 같습니다.

 

더 직관적으로 설명하자면, 조건부 확률을 생각할 때 일반적으로는... P(결과|원인)를 따지게 될 것입니다. 그러나 베이즈 정리는 원인을 정확하게 알 수 없을 때, 결과를 사용하여 원인을 반대로 추적하는, 즉 P(원인|결과)를 구하는 것이고, 이는 실제 시스템에서 많이 사용됩니다.

 

또 다른 예를 들자면, 검은색 카드 2개와 빨간색 카드 1개가 있습니다. 이 3장의 카드를 뒷면으로 놓고, 중 랜덤하게 하나의 카드를 뽑은 다음 아무도 볼 수 없게 봉투 안에 넣습니다. 그러면 2장의 카드가 남아있을 것입니다. 우리는 아직 봉투 안에 어떤 카드가 있는지 모릅니다.

만약 이때 남아있는 2장의 카드 중 하나를 뒤집었는데, 그 카드가 빨간색이라면 우리는 봉투 안에 넣은 카드가 검은색이라는 것을 확신할 수 있습니다. 즉, 새로운 정보를 통해 봉투에 넣었던 카드의 색에 대한 신뢰도를 갱신한 것입니다.

 

이를 로봇에 적용하면... 현재 로봇의 위치가 어디있는지 모르는 상태입니다. 그런데 로봇의 제어 명령과 센서의 데이터가 있으면, 이 값을 기반으로 로봇의 현재 위치에 대한 신뢰도를 갱신할 수 있을 것이다! 를 적용하는 것이 베이즈 필터를 사용한 로봇의 위치 추정입니다.

 

 

베이즈 정리를 여러 개의 변수에 적용하면 아래와 같습니다

 

 

2. 전체 확률 법칙(Low of Total Probability) : https://www.boostcourse.org/ai152/lecture/30896?isDesc=false

 

 

책에서는 다음과 같이 사용합니다

 

 

 

3. 베이즈 정리와 LOTP(Low of Total Probability)의 결합 : https://www.boostcourse.org/ai152/lecture/30896?isDesc=false

 

베이즈 정리에서 분모에 들어가는 값에다 LOTP를 넣어주면 다음과 같습니다.

 

그런데 위 식에서 $p(y)$는 $x$에 의존하지 않습니다. 즉, "normalizer"라고 하는 상수 $\eta$로 나타낼 수 있습니다.

 

4. 동적 베이즈 네트워크 및 마르코프 가정(Markov Assumption)

 

$x_t$라는 데이터는 이전의 모든 값들이 계산되면서 최종적으로 추정된 위치입니다. 따라서 $x_t$를 알면, 그 이전의 모든 $u$와 $z$는 신경 쓸 필요가 없습니다. 이미 로봇의 위치를 알면, 이미 과거의 데이터를 모두 사용하여 계산한 결과이므로 과거의 값은 버리고, 앞으로 사용할 $u$와 $z$만을 사용하여 상태를 업데이트 할 것입니다. $x_t$를 안다는 것은 이전의 모든 데이터를 신경 쓸 필요가 없다, $x_t$를 아는 한, $x_{t-1}$과 $x_{t+1}$은 독립이다. 이를 Markov Assumption이라고 합니다.

 

 

5. notation

$x_t$ : 시간 $t$에서 로봇의 위치

$z_t$ : 시간 $t$에서 센서의 측정값

$u_t$ : 시간 $t$에서 로봇의 제어값

$\overline{bel}(x_t)$ : 센서의 측정값이 들어오기 전 로봇의 위치 추정 값(prediction step)

$bel(x_t)$ : 측정값이 들어오고 나서의 로봇의 위치 추정 값(correction step)

 

$\overline{bel}(x_t)$과 $bel(x_t)$는 다음과 같의 정의됩니다.

 

 

 

수식 유도

 

위 수식에서 line3과 line4가 어떻게 나온건지 알아보겠습니다.

 

먼저, 전반적인 내용을 요약하자면... 우리가 알고 싶은것은 P(로봇의 위치 | 측정값, 제어값)이고,

이 값을 구하기 위해 P(측정값 | 로봇의 위치, 제어값)을 사용하게 됩니다.

 

$\overline{bel}(x_t) = p(x_t|z_{1:t}, u_{1:t})$이므로, 다음과 같이 베이즈 규칙을 적용할 수 있습니다.

 

 

위 식을 처음 보면 $p(z_t|x_{t}, z_{1:t-1}, u_{1:t})$가 어디서 튀어나온거냐? 하는 생각이 드는데... $z_{1:t} =z_1, z_2, \dots,z_t $ 입니다. 따라서, 아래와 같이 나타낼 수 있고, 이 값에다가 베이즈 정리를 적용한 것입니다.

 

 

그리고 사전 지식 5.의 동적 베이즈 네트워크에서, $x_t$를 안다는 것은 더이상 $u_{t-1}, z_{t-1}$에서 얻을 정보가 없다는 뜻입니다(Markov Assumption). 

 

 

지금까지의 식을 정리하면,

 

 

이렇게 되겠네요.

이때, 위 식에서 $\overline{bel}(x_t)$는 다음과 같이 LOTP를 사용해서 정리할 수 있습니다.

 

 

이때 이게 왜 LOTP가 적용된건가? 하는 생각이 들 수 있는데...

그냥 간단하게 생각해보면, 위 식에서 $z$와 $u$는 모든 부분에 다 똑같이 조건으로 들어가니까 있으나 마나 하다고 생각하고 보면 직관적으로 이해가 좀 쉽습니다.

 

 

이렇게 보면 좀 LOTP같이 보이네요.

그리고, 이전 식에서와 같이 Markov Assumption을 적용하면, 최종적으로 다음과 같이 정리가 가능합니다.

 

 

그리고, 위 식에서 Markov Assumption을 한번 더 적용할 것인데... LOTP가 적용된 식을 다시 한번 보겠습니다.

 

 

빨간 박스 부분을 보면, $x_{t-1}$를 구하기 위해 조건부로 $z_{1:t-1}, u_{1:t}$가 주어졌습니다. 그런데 $x_{t}$기준에서 생각해보면... $u_t$는 "미래에 내가 어떻게 움직일 것인가?" 하는 값이지, "지금 나의 위치를 계산하기 위해 필요한 데이터"가 아닙니다. 즉, $x_{t-1}$에 대해 어떠한 정보도 줄 수 없으므로, 저 빨간 박스를 계산하기 위해 $u_t$는 확률 값에 영향을 줄 수 없습니다.

 

따라서, 최종적으로 다음과 같이 정리됩니다.