PRML/Chapter 13. Sequential Data

칼만 필터 (Kalman Filter)

초짜공대생 2022. 9. 15. 01:37

베이즈 필터를 기반으로 하는 칼만필터(Kalman Filter)는 여러 분야에 많이 쓰인다.

자이로 센서, GPS 등, 측위하는데 있어 오차를 제거하기 위해 이용한다.

결론적으로 불확실한 관측으로부터 질 좋은 정보를 얻는 것이 칼만 필터의 목적이다.

 

이전 장에서 언급했듯이, 모델은 2가지가 존재한다.

Dynamical ModelObservation Model(Measurement Model)이 두 가지이다.

 

칼만 필터의 알고리즘은 크게 3가지로 구성되어 있다.

초깃값 설정과, 예측 과정(Prediction Step), 추정 과정(Correction Step)이 존재한다.

 

Step 0

State Model인 x0과 P0(오차 공분산) 값을 넣어 초깃값을 선정한다.

 

 

Step 1

다음 과정에서는 Prediction Step으로 State Model x(t + 1)과 P(t + 1)을 계산한다.

즉 x(1)과 P(1)을 계산하게 되는 것이다.

A는 시스템 행렬으로서, 직접 설계해야 하는 부분이다.

P는 오차 공분산으로, 추정값이 정확한 값인지 판별하는 역할을 한다.

w_k는 시스템 노이즈에 해당한다.

 

 

x_(t+1) 모델에, control factor u, 즉 차량의 엑셀이나 브레이크 요소가 들어가면 

다음과 같이 수식이 바뀐다. B는 control input matrix이다.

 

 

 

Step 2

Correction Step에서는 시스템 행렬을 통과한 제어 데이터를 보정하는 역할을 한다.

 

 

K_t는 칼만 이득(Kalman Gain)으로서, 관측 데이터와 시스템 모델 내에서, 어느 부분에 대한 

비중을 둘 것인지 역할을 한다.

 

 

Z_t는 관측값으로, H는 출력 행렬, v_t는 관측 센서 노이즈에 해당한다.

 

 

Y를 Innovation 과정이라 한다.

 

 

최종적으로 x_t에 대한 값을 보정한다.

 

 

다음 Correction Step을 위한 오차 공분산을 업데이트 한다.