베이즈 필터 개요
✔ 베이즈 정리(Bayes Theorem)를 재귀적으로 따름
✔ 이산시간(discrete-time) 확률 동적 시스템(stochastic dynamical system)의 상태변수를 추정하기 위한 확률론적인 방법으로서 칼만필터를 비롯한 대부분의 상태변수 추정 알고리즘의 근간
베이즈 필터 수식
- Bayes Filter의 목적을 단 한줄의 수식으로 표현하면 다음과 같다
- 시점의 상태 값
- 시점의 센서 입력 값
- 시점의 제어 입력 값
알고리즘의 시작부터 현재 시점 까지의 센서값과 제어값을 이용하여 현재 상태를 확률적으로 추정하는 것
베이즈 필터의 두 가지 역할
물리 모델을 통한 예측
- 이전 상태와 제어값()을 이용하여 현재 상태를 예측하는 것
이동하는 자동차의 위치를 예측할 때, 1초 전 자동차의 위치와 속도 정보 및 추가적으로 입력된 엑셀 및 브레이크 제어값을 통해 현재 상태 예측
센서값을 통한 예측
- Bayes Rule을 이용하여 센서값()을 현재 상태에 반영하는 역할
GPS를 통해 현재 위치 예측
퓨전
- 베이즈 필터는 위 값 중 하나만을 사용하는 것이 아니라 두가지 값을 모두 사용하여 하나의 값으로 퓨전함
현재 위치를 이전 위치 상태 + 속도 물리 모델 + 제어값을 이용하여 먼저 예측하고, 그 위치에 센서값을 통해 보정하는 방식 등
- 퓨전 방법을 통해 더 좋은 성능으로 현재 상태를 추정할 수 있음
- 위 두가지 값을 퓨전할 때, 노이즈가 더 작은 값을 더 신뢰하여 반영하는 것이 높은 성능을 확보하기 위해 고려할 점, 상황에 맞춰서 적용해야함
로봇 이동 예제를 통한 베이즈 필터의 이해
- 앞에서 설명한 컨셉을 Probabilistic Robotics의 로봇 예제를 이용하여 알아보도록 하자
Step 1
- 위 그림에서 x축은 로봇의 위치, y축은 확률을 나타냄
- 초기에는 어떠한 정보가 없으므로 uniform 분포를 가지게되므로 모든 위치가 동일하게 낮은 확률 값을 가짐
- 각 문 앞에는 센서가 있어서, 로봇이 지나갈 때 3개의 문 중 하나에 로봇이 있다고 판단할 수 있으나 어느 문 앞에 로봇이 존재하는지는 판단할 수 없음
- 로봇은 왼쪽에서 오른쪽으로 이동 중
Step 2
- 센서가 인지한 로봇 위치의 확률 분포
- 로봇의 상태가 x로 주어졌을 때, 센서가 인지한 로봇 위치의 확률 분포
- 현재 시점의 최종 로봇 위치 상태에 대한 확률 분포
- 위 그림에서 는 문앞에 센서가 있고 로봇이 문앞을 지나면 문앞에 로봇이 있을 확률이 증가하게 됨
- 문 앞의 센서가 로봇을 인지하여 각 문앞에 로봇이 있을 확률이 동등하게 증가함
- 문 앞의 확률 분포가 매우 좁게 (분산이 작게) 분포하지 못하는 이유는 센서에 존재하는 노이즈 때문
Step 3
- 로봇이 오른쪽으로 이동함에 따라 Step2에서 얻은 위치의 확률 분포가 로봇이 오른쪽으로 이동한 만큼 그대로 이동함
- 이 결과는 물리 모델을 통한 예측을 한 것으로 파악할 수 있으며, 기존 확률 분포 보다 더 낮고 넓어진 분포를 보이는 것은 물리 모델을 통한 예측의 제어 노이즈가 추가되었기 때문
Step 4
- Step 3까지 반영한 에 센서가 인지한 로봇의 위치에 대한 확률 분포를 결합
- 문앞의 센서가 로봇을 감지하여 의 확률 분포가 문 앞에 로봇이 있을 확률로 갱신되고, 기존 와 센서값 가 결합하여 새로운 를 계산함
Step 5
- 물리 모델을 통한 예측을 통해 로봇이 이동한 만큼 분포가 이동함
- Step 3에서와 같이 물리 모델에 사용된 제어값에 대한 노이즈에 의해 각 위치 별 분포의 분산이 커짐
정리
- 상태가 변화할 때, 물리 모델을 통한 예측을 통하여 현재 상태를 예측하고, 이와 연관된 센서값이 있으면 센서값을 통한 예측을 통하여 현재 상태를 보정(보완)
베이즈 필터 알고리즘
알고리즘 개요
- 핵심이 되는 알고리즘은 for문 안의 2줄로 매우 간단함
알고리즘 분석
- for 문의 첫번째 줄은 control update 또는 prediction이라 하며, 이는 물리 모델을 통한 예측에 해당하고 제어값을 이용해 상태를 업데이트함
- 두번째 줄은 measurement update 도는 correction이라 하며, 이는 센서값을 통한 예측에 해당하고 센서값을 이용해 상태를 보정함
- 이전 상태
- 이전 상태와 제어값이 주어졌을 때, 현재 상태의 확률 분포
- control update (prediction)
- 현재 상태의 센서값의 확률 분포
- measurement update (correction)
베이즈 필터 수식의 이해
수식의 개요
- 베이즈 필터에서 사용되는 데이터는 제어값 와 관측값(센서값) 가 사용됨
- 상태 모델 :
- 센서 모델 :
- 시스템 상태의 사전 확률 분포 :
- 이 때, 구해야 하는 값은 상태의 Posterior(사후확률)로
- 이상적으로는 사후 확률 식과 같이 알고리즘이 시작한 시점부터 현재 시점까지의 를 모두 사용하는 것이 맞으나, Markov Assumption 을 도입하여 문제를 간단하게 만들 수 있음
- Markov Assumption은 모든 와 가 독립임을 가정하고, 업데이트된 들은 그 이전의 정볼르 함수학고 있다고 가정 하는 것
- 따라서 베이즈 필터는 대신 현재 입력된 센서 및 제어값인 와 바로 직전 상태의 상태값인 을 사용함
전개 및 유도
- 위 식의 3번 행은 를 만족함. 현재 센서값 없이 추정한 상태 이기 때문.
- 따라서 센서값이 적용된 4번 행은 를 만족해야함
Control Update (Prediction)
- 먼저 을 전개하여 3행의 식 를 유도해보자
- 베이즈 정리(Bayes Theorem)의 total probability 법칙을 이용하여 을 통해 아래와 같이 전개할 수 있다
- 위 식에서 은 아래와 같이 전개될 수 있음
- 위와 같이 전개될 수 있는 이유는 Markov Assumption을 가정하기 때문에 이 을 포함하기 때문
- 은 아래와 같이 전개됨
- 위 식에서는 대상이 이기 때문에 미래에 발생할 를 사용하여 확률을 나타낼 수 없으므로 를 생략하고 로 표현함
- 정리된 식은 최종적으로 bel 함수의 정의에 따라 로 나타냄
- 따라서, 예측(prediction)식은 아래와 같이 정리됨
Measurement Update (Correction)
- 을 전개하여 4행의 식 를 유도해보자
- 따라서 최종식은 아래와 같음
로봇 예제
참고
- Prev: 상태 방정식(State Equation
- Next: