시계열 분석 칼만 필터 개요

   칼만 필터 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
확률론적 관점의 기대 값, 최소제곱 최소화 문제,  최대우도 추정 문제 등 칼만 필터의 공식은 여러 방법으로 도출 할 수 있다.  공식 도출 과정은 인터넷에서 쉽게 찾아볼 수 있으므로 좀 더 깊게 배워보고 싶다면 검색해보길 바란다. 


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




 

댓글 없음:

댓글 쓰기

[주식 클로드 자동매매 프로젝트] 제2편. 데이터 인프라 구축 — 모델보다 데이터가 먼저다

 머신러닝 모델을 이야기하기 전에, 그 모델이 먹는 데이터가 어디서 어떻게 왔는지부터 정직하게 밝혀야 한다. 이 프로젝트에서 가장 많은 시간이 들어간 부분은 화려한 모델 튜닝이 아니라, "내가 정말 그 데이터를 갖고 있는가"를 확인하...