본문 바로가기

카테고리 없음

Bayes Filter 설명 (Cyrill Stachniss)

개요

- Kalman Filter 와 Particle Filter 의 이론적 기초가 되는 Bayes Filter 에 대해 알아보자

- Cyrill Stachniss 의 유튜브 강의를 듣고 아래 내용을 정리했다

https://www.youtube.com/watch?v=0lKHFJpaZvE 

 

Bayes Filter 의 목적

- 이전의 관측 값과 현재의 제어 입력 정보를 활용하여 현재의 위치를 추정하는 것

- 수식적 표현

$ bel(x_t) = p(x_t | z_{1:t},u_{1:t}) $

$bel(x_t)$ = bel은 belief 의 약자

$x_t$ = 현재 상태 (진짜 위치)

$z_{1:t}$ = 지금까지 관측한 값 (측정된 위치들)

$u_{1:t}$ = 지금까지의 제어 입력

$p(x_t | z_{1:t}, u_{1:t})$ --> 현재 위치를 하나의 값으로 추정하는 것이 아니라 확률 분포로 예측한다는 뜻

 

도식 표현

각각의 Step 이 어떻게 나오는지는 뒤쪽에 수식으로 설명하였다

사전 지식 

1. Bayes Rule

$$ P(A|B) = {{P(B|A) \cdot P(A)}\over{P(B)}}$$

이 수식은 증명도 어렵지 않은 단순한 수식인데, 다양한 분야에서 요긴하게 사용된다

Bayes Filter 수식 유도 시에도 사용된다

2. Markov Property

$$ P(S_{t+1} = s' | S_0, S_1, ..., S_{t-1}, S_t) = P(S_{t+1} = s' | S_t)$$

Markov Property 는 특정 시간에 특정 상태(state)가 되는 확률은 그 이전에 어떤 상태(state)를 거쳐 온 것에는 무관하게, 바로 직전 상태(state)만 같다면, 다음 상태(state) 가 되는 확률은 같다는 것이다

이 성질도 다양한 분야에 많이 활용된다

 

Bayes Filter 수식 유도

1) $ bel(x_t) = p(x_t | z_{1:t},u_{1:t}) $

--> Bayes Rule $ P(x_t|z_t) = {{P(z_t|x_t) \cdot P(x_t)}\over{P(z_t)}}$ 적용

 

2) $ bel(x_t) = { p(z_t | x_t,z_{1:t-1},u_{1:t}) \cdot p(x_t | z_{1:t-1},u_{1:t}) \over { p(z_t | z_{1:t-1},u_{1:t}) }} $

--> 이전 측정결과가, 다음 측정결과에 직접적인 영향을 끼칠 수 없다.

따라서 분모는 상수 $ \eta $ 로 치환한다. 그리고 이는 확률분포의 합이 1이 되게 조정하는 상수로 활용한다.

 

3) $ bel(x_t) = { \eta p(z_t | x_t,z_{1:t-1},u_{1:t}) \cdot p(x_t | z_{1:t-1},u_{1:t}) } $

--> Markov Property 에 따라 $p(z_t | x_t,z_{1:t-1},u_{1:t})=p(z_t | x_t)$

 

4) $ bel(x_t) = { \eta p(z_t | x_t) \cdot p(x_t | z_{1:t-1},u_{1:t}) } $

--> 조건부 확률 성질에 따라 $ p(x_t) = \int {p(x_t \cap x_{t-1})} dx_{t-1} = \int {p(x_t | x_{t-1}) \cdot p(x_{t-1})} dx_{t-1} $

 

5) $ bel(x_t) = { \eta p(z_t | x_t) \cdot \int {p(x_t | x_{t-1},z_{1:t-1},u_{1:t}) \cdot p(x_{t-1} | z_{1:t-1},u_{1:t})} dx_{t-1} } $

--> Markov Property 에 따라 $p(x_t | x_{t-1},z_{1:t-1},u_{1:t}) = p(x_t | x_{t-1},u_{t})$

--> 현재의 제어 입력이 과거의 상태에 영향을 미칠 수 없으므로 $p(x_{t-1} | z_{1:t-1},u_{1:t}) =p(x_{t-1} | z_{1:t-1},u_{1:t-1})$

--> $p(x_{t-1} | z_{1:t-1},u_{1:t-1}) = bel(x_{t-1})$

 

6) $ \therefore bel(x_t) = \eta p(z_t | x_t) \cdot \int {p(x_t | x_{t-1},u_{t}) \cdot bel(x_{t-1})} dx_{t-1} $

힘겹게 수식 유도를 완료했다

 

Step 분류

위에서 유도한 수식을 두 가지 단계로 분류한다. 물리 모델(Motion Model)을 활용하여 상태를 예측하고, 관측(Observation Model)을 통해 보정하는 작업을 수행하는 2가지 단계인데, 이런 단계를 통하여 필터링을 직관적으로 수행할 수 있다.

1) Prediction Step

$$ \bar{bel} (x_t) = \int {p(x_t | x_{t-1},u_{t}) \cdot bel(x_{t-1})} dx_{t-1} $$

$p(x_t | x_{t-1},u_{t})$  = 이전 상태와 현재의 제어 입력에 따라 계산되는 현재 위치를 뜻한다

이 Step 에서는 물리 모델을 활용하여 다음 상태(state)를 예측할 수 있다

2) Correction Step

$$bel(x_t) = \eta p(z_t | x_t) \cdot \bar{bel} (x_t)$$

$p(z_t | x_t)$  = 관측 값과 현재 상태와의 관계를 의미한다; 관측하는 것이므로 Gaussian Noise 가 포함되어 있다고 간주한다

이 Step 에서는 관측한 값을 바탕으로 다음 상태 값을 보정한다

 

Bayes Filter의 활용 분야

Prediction Step 의 물리 모델(Motion Model)을 Gaussian + Linear/Linearized Model 로 가정할 경우

--> Kalman filter, EKF

Prediction Step 의 물리 모델(Motion Model)을 Non-parametric, Arbitrary Model 로 가정하고, Monte-Carlo 방법을 활용하는 경우

--> Particle filter

 

향후 계획

- Kalman Filter (EKF, UKF 포함) 와 Particle Filter 에 대해서도 강의를 듣고 정리할 계획