시계열 분석 칼만 필터 개요

   칼만 필터 Kalman filter는 충분히 성숙한 방법이다. 시계열로 부터 새로운 정보를 결합하는 데 사용되고 과거에 알려진 내부 상태 추정 정보를 지능적으로 결합해 준다. 칼만 필터의 최초 사용 사례로는 아폴로 11호 apollo 11 mission 이 있다. 



아폴로 칼만필터

NASA 엔지니어들은 기내의 계산 자원만으로는 매우 메모리 집약적인 위치추정 기법 사용이 불가능하다는 판단을 내렸다.  이 상황에서 킬만 필터 기법이 대신 선택되었다. 계산이 비교적 간단하고,  미래의 예측이나 현재를 추정하는 데 과거 데이터의 저장이 필요없다는 것은 칼만 필터의 장점이다. 

 개요 

  칼만필터를 처음 접한다면 칼만 필터의 계산과정을 보고 놀랄지도 모른다.  특별히 어려워서라기 보다는 꽤 많은 양의 추적이 필요하기 때문이다.  순환적인 반복성을 띈 구조는 추적을 더 어렵게 만든다.  다행히 여기에서는 칼만 필터 공식의 도출 과정을 다루지 않는다.  대신에 동작 방식의 감을 잡기 위해서 관련 공식을 높은 수준에서 바라보고 이해하는 시간을 가져 볼 것이다. 

상태 및 관측이 다음과 같은 역동성을 가진다고  상정하는 선형 가우스 모델 linear Gaussian model로 시작 한다. 

$ x_t = F × x_{t-1} + B × μ_t + w_t$
$ y_t = A × x_t +  v_t$


즉 시간 t 에서의 상태는 이전 시간 단계의 상태항 ($ F × x_{t-1}$), 외부 압력에 대한 항 ($B×μ_t$),의 확률적 항 ($w_t$)에 대한 함수로 표현 할 수 있다.  이와 유사하게 시간 t에서의 측정은 시간 t 의 상태, 확률적 오차항, 측정 오차항에 대한 함수이다. 

$x_t$가 우주선의 실제 위치를 나타내고,  $y_t$는 센서로 측정한 위치라고 상상해보자.  이때 $v_t$는 센서장치 (또는 그 외 여러 장치 )의 측정 오차를 의미한다.  그러면 칼만 필터에 적용 가능한 기본 공식은 다음과 같다.  시간 t에서 새로운 정보가 주어졌을 때 추정을 갱신하는 방법을 보어 준다. 

$ \hat{x}_t  = K_t × y +(1-K_t) × \hat{x}_{t-1}$

이는 필터링 단계를 보여 준다.  즉 시간 t의 상태에 대한 추정 갱신 시간 t의 측정을 사용하는 것이다.  한 가지 기억해 둬야 할 사실은 $y_t$만 관측 가능하며 정확한 상태는 모른 채 상태를 추론 했다는 상황을 상정 했다는 것이다.   그리고 위 식 $K_t$는 새로는 정보 $(y_t)$와 과거 정보 $(\hat{x}_{t-1})$ 사이의 추정에 대한 균형을 맞추는 데 사용된 것을 알 수 있다. 

모델의 동작 방식을 좀 더 깊게 살펴 보려면 몇 가지 항을 정의 해야 한다.  상태의 공분산 추정은 $P_t$로 표현해 보자 (상태가 단변량인지, 다변량인지에 따라 스칼라 또는 행렬이 될 수 있으며 대체로 다변량이 일반적이다. )  그리고 $P_t$는 시간 t에서의 측정이 고려되기 전의 추정이다. 

측정 오차의 분산을 R로 표현해 보자.  즉 $v_t$에 대한 분산이 되는 것이다. (마찬가지로 측정의 차원에 따라 스칼라나 공분산 행렬이 될 수 있다.) 특정 센서나 측정 장치의 잘 알려진 물리적 속성을 묘사하는 R은 일반적으로 꽤 잘 정의 되어 있다.  $w_t$의 적절한 값인 Q는 R과는 다르게 명확하지 않으며 모델링 시 조정이 필요하다. 

그러면 시간 0에서 이미 알고 있는 x와 추정된 P로 구성된 과정으로 시작한다.  그리고 나서 시간 0에서 시간 뒤로 움직이며 예측과 갱신을 반복한다.  먼저 예측 단계가 발생한 다음 갱신/필터링 단계가 실행 된다.  이 순서를 계속 반복 한다. 

 예측 

Kalman 필터 예측


 필터링

Kalman 필터링



여기에서 $K_t$는 칼만 이득 Kalman gain으로,  다음을 뜻한다. 
칼만 이득





이 반복 과정을 표현한 여러 시각화 자료를 찾아볼 수 있다.  그 중 일부는 이 과정을 4단계에서 5단계까지 여러 단계로 세분화 하기도 한다.  하지만 이 과정을 가장 간단하게 바라보는 방법은 다음과 같다.  측정 $Y_t$에 대한 내용을 알지 못한 채 시간 t에서 예측에 수행된 계산(예측),   $y_t$를 알게 된 이후 시간 t에서 수행된 단계가 있다는 것이다. 

이 과정을 시작하기 위해서는 다음과 같은  값들이 필요하다. 

  • (쉽게 알 수 있는) 측정의 오차와 상태의 확률성 (보통 추정됨)의 공분산 행렬인 R과 Q의 추정치 
  • 시간 0에서 이미 알고 있거나 추정된 상태값 $ \hat{x}_0$ ( $y_0$ 에 기반하여 추정됨)
  • 시간 t에 적용될 압력에 대한 사전 지식과 그 압력이 상태에 어떤 영향을 미칠 것인가를 나타내는 행렬 B 또는 값 $μ_t$
  • 시간 단계에 따른 상태의 변화를 결정짓는 시스템의 역동성에 대한 지식 F
  • 측정이 상태에 의존하는 방식에 대한 지식 A
확률론적 관점의 기대 값, 최소제곱 최소화 문제,  최대우도 추정 문제 등 칼만 필터의 공식은 여러 방법으로 도출 할 수 있다.  공식 도출 과정은 인터넷에서 쉽게 찾아볼 수 있으므로 좀 더 깊게 배워보고 싶다면 검색해보길 바란다. 


# 참고서적 :  실전 시계열 분석 - 한빛 미디어




 

댓글 없음:

댓글 쓰기

css cheat sheet 클래스 선택자, margin(마진), display , center 조정 간단한 구성 요소

 앞에서는 html의 간단한 sheet를 소개 하였습니다.   html은  주로 골격을 나타나는 것이라, 디자인을 하는데는 css로 하여야 합니다.  아래 코드와 같이 css 관련 하여 매우 간단하게 코딩 하겠습니다.  body 부분의 css 코딩  ...