본문 바로가기

AI

SORT 구현을 위한 기초 이론 2 ( feat. 베이즈 필터 )

728x90
반응형
반응형

안녕하세요. WH입니다

오늘은 kalman filter를 위한 bayes filter에 대해 알아보겠습니다.

왜 이런 지식이 필요하냐,, 앞의 글을 참조하시길 바랍니다.

2022.06.29 - [AI] - SORT 구현을 위한 기초 이론 1 ( feat. 코드를 통한 flow 이해하기 )

 

SORT 구현을 위한 기초 이론 1 ( feat. 코드를 통한 flow 이해하기 )

안녕하세요. WH입니다. SORT를 구현해보려고 하는데요 우선 구현하기에 앞서 필요한 이론들을 정리하는 시간을 가져보려고 합니다. SORT ( simple online and realtime tracking )의 흐름 SORT의 흐름을 간단하

developer-wh.tistory.com

 

Concept of Bayes Filter

  Bayes Filter는 확률 기반의 recursive filter인데요. Bayes Theorem을 통해 prior와 likelihhod 구하고 이를 활용해 posterior를 구합니다. 여기서 그치지 않고 구해진 posterior를 다음 스템의 prior로 사용하게됩니다. Discrete case와 Continuous Case에 대해 모두 아래의 그림의 과정을 거칩니다.

Bayes Filter를 수식으로 표현하면 아래와 같습니다

우선 인자들의 의미를 보겠습니다. x_t는 t 시점에서의 상태값입니다. 그 다음으로는 센서 값과 제어, 제어 입력 값에 이 나오는데, 위 수식에서 센서값은 z_1:t, 제어 입력 값은 u_1:t 입니다. 위 식을 해석해 보자면, 현재 시점 t까지의 센서 값과, 제어 입력 값이 주어 질 때, 현재 상태 값이 일어날 확률을 뜻하게 됩니다. 위 식을 풀어 쓰면 아래의 식이 됩니다.

 

다소 자세히 들어가보도록 하겠습니다. 위 식을 요약해서 이해하기 위해서 처음 나온 식과 마지막 나온 식을 가져왔습니다.

bel(x_t) 는 처음부터 현재 t 까지 센서 값 ( observation ) 과 제어값 ( control input )을 알고 있을 때 현재 상태 ( state )일 확률을 의미한다고 말씀드렸죠? 그 위 의 내용에 기반해 2 번째 복잡한 식을 해석해봅시다. 우선 상수를 제외한 첫번 째 term입니다.

이 term이 의미하는 바는 현재의 state을 알고 있을 때, 센서 값 z_t가 나타날 확률을 말합니다. 그리고 다음 term인

이 term은 이전 상태와, 제어 값 t 를 알고 있을 때, 현재 state 가 나타날 확률을 의미하죠. 그럼 이 식이 의미하는 바가 무엇일까요? 이전 상태를 알고 있고, 현재의 제어 값을 알고 있으며, 현재 상태가 될 확률이라. 이 말은 과거 상태에서 현재 제어 값이 나타나면 현재 상태로 update 됨을 의미 한답니다. 그럼 그 뒤에 나오는 bel(x_t-1 )이 곱해지는 이유는 당연한 사실이죠. 왜냐 이전 상태가 나와야 하니까요. 이전 상태가 있어야 이전 상태를 가지고 현재 상태를 고려하게 되니까 곱해주게 됩니다. 확률에서 곱하기는 뭐랄까 약간 동시성, 순차성을 나타낸다고 생각하시면 될 겁니다. 참고로 bel은 belif 랍니다.

 

유도 과정

  이 과정을 다루는 이유는 역할에 대해 설명할 때 이 과정에서의 해석이 들어가기 때문입니다.

식 1

  belif의 정의를 기본적인 bayes rule에 따라 적으면 위와 같죠.  각 term을 설명해 보자면

 

이 term은 normalize term입니다.

이 term은 시점 t에서 제어 값을 알고 있고, 현재 상태를 알고 있으며, t-1 시점까지의 센서 값을 알고 있을 때, 현재 센서 값이 나타날 확률을 의미하며

이 term은 시점 t에서의 제어 값과 t-1까지 센서 값을 알고 있을 때 현재 상태가 나타날 확률을 의미합니다. 위 식에 Markob Assumption이 사용되는데, 현재의 상태는 바로 이전의 state에만 영향을 받는다는 assumption입니다. 즉 해당 assumption을 적용하면 식1 은 아래와 같이 바뀔 수 있습니다. 왜냐하면 현재의 센서값은 현재의 상태에만 영향을 받으며, z_1:t-1과 u_1:t는 오직 현재 상태에만 영향을 미치기 때문이죠.

식 2

식 2가 전개 될 수 있는 근거는 바로 total probability 법칙을 활용하게 됩니다. total probability 법칙은 아래와 같습니다.

여기에 Markov assumption을 지속적으로 적용하면 위에서의 전개를 따라갈 수 있게 됩니다.

  Bayes Filter의 역할

위 식을 보면 bayes Filter의 역할을 알 수있습니다.

 

  1. 센서 입력값을 현재 상태에 반영하는 역할

  2. 1-t 시점까지의 센서 값과 현재 시점의 제어 값을 활용해서 현재 상태에 반영( 예측 하는 역할 )

 

이를 정리해서 표현해보면 bayes Filter는 이전 상태 및 제어 값 ( 물리적을 상태를 표현하는 모델을 활용 ) 하여 현재 상태를 예측하고, 해당 현재 상태에서 현재 센서 값을 반영하여 보정하는 과정을 통해 최종 결과물을 산출합니다. 

  Comprehension of concept for Bayes Filter

Probabilistic Robotic의 robot example을 통해 한 번 이해해 볼까요? 우선 아래 스텝들을 유심히 봐주세요.

Step 1

Step 2

  Step 3

  Step 4

  Step5

 설명 시작하겠습니다. step 1에서의 belif는 uniform하게 매우 작은 값을 가집니다. 왜냐 아무런 정보도 없기 때문에, 모든 위치에서의 상태는 같은 것이죠. step 2에서는 p( z|x ) 가 나타납니다. 이는 로봇이 문앞에 있을 때 센서가 로봇을 인지할 확률을 의미하죠. 즉, 문 앞에 센서가 있다고 가정하면, 3개의 센서는 모두 같은 확률 분포로 로봇을 인지할 겁니다. peak가 아닌 distribution으로 나타나는 이유는 sensor의 noise 때문이죠. 이를 belif에 반영하면 step 2의 belif 분포가 됩니다. step 3에서는 robot의 위치가 바뀌었습니다. 즉 그에 따라 belif의 분포 역시 움직이게 됩니다. 센서 값과 제어 값을 이용해서 분포 역시 로봇의 움직임을 반영한 상태로 이동 합니다. 그리고 분포에 변화가 생깁니다. 왜냐하면 제어 값에 noise가 기존 noise에 추가되기 때문입니다. 즉, step 3은 제어값과 센서 값을 반영한 현재 상태를 나타냅니다 ( 분포의 이동 ).  step 4 에서는 p(z|x)를 반영합니다. 현재의 상태를 센서 값에 반영해 주는 과정을 말합니다.  이 반영에 따라 belif는 step4 맨 아래의 분포를 가지게 됩니다. step 5는 step 3과 동일한 과정이라고 생각하시면 됩니다. 이것이 기본적인 concept입니다.

  Bayes Filter 알고리즘

Line 3과 4개 이 알고리즘의 key입니다. LIne 3은 센서 값과 제어 값을 이용해 분포를 이동시키는 과정을, Line 4는 현재의 상태를 반영해 센서 값을 보정하는 과정을 말합니다. Line 3을 contorl update라 하고 Line 4를 measurement update 라고 합니다. control update는 물리적 과정과 제어 값을 활용하여 예측하는 과정이기에 prediction으로, measurement update는 센서 값에 현재 상태를 보정해 줌으로 correction이라고도 불립니다.

 

여기까지가 bayes Filter에 관한 기본적인 내용입니다.

Kalman filter를 이해하기 위해 필요한 내용이라 정리해보았습니다.

다음 글에서는 kalman filter에 대해 다뤄보도록 하겠습니다

 

728x90
반응형