칼만 필터(Kalman Filter, KF)는 동적 시스템에서 관측 노이즈가 존재하는 상황에서도 시스템의 상태를 최적 추정하는 재귀적 알고리즘입니다. 선형 시스템과 가우시안 노이즈를 가정할 때, 최소 평균 제곱 오차(MMSE)를 달성할 수 있습니다. 항공우주, 로보틱스, 경제, 신호 처리 등 다양한 분야에서 널리 활용되며, EKF, UKF, 파티클 필터와 같은 확장 기법은 비선형 또는 비가우시안 환경에서도 적용 가능합니다.
칼만 필터의 핵심 목표는 예측(Prediction)과 갱신(Update) 과정을 반복하며, 과거 관측과 시스템 모델을 결합해 현재 상태를 추정하는 것입니다.
1. 이론적 배경
칼만 필터(Kalman Filter)는 선형 동적 시스템에서 노이즈가 포함된 관측 데이터를 이용해 상태를 최적으로 추정하는 재귀적 알고리즘입니다. 1960년 루돌프 E. 칼만(Rudolf E. Kálmán)에 의해 개발되었으며, 항공우주, 로보틱스, 신호 처리, 경제 등 다양한 분야에서 사용됩니다. 칼만 필터는 베이지안 추론을 기반으로 하며, 시스템의 상태를 가우시안 확률 분포로 모델링하여 최소 제곱 오차(Minimum Mean Square Error, MMSE)를 최소화합니다.
1.1. 베이지안 관점
칼만 필터는 베이지안 필터링의 특수 사례로, 상태 \( \mathbf{x}_t \)의 사후 확률 분포 \( p(\mathbf{x}_t | \mathbf{z}_{1:t}) \)를 계산합니다. 가우시안 분포를 가정하므로 상태는 평균 \( \hat{\mathbf{x}}_t \)와 공분산 \( \mathbf{P}_t \)로 표현됩니다. 주요 단계는 다음과 같습니다:
- 예측: 이전 사후 분포 \( p(\mathbf{x}_{t-1} | \mathbf{z}_{1:t-1}) \)를 이용해 사전 분포 \( p(\mathbf{x}_t | \mathbf{z}_{1:t-1}) \)를 계산.
- 갱신: 새로운 관측 \( \mathbf{z}_t \)를 이용해 사후 분포 \( p(\mathbf{x}_t | \mathbf{z}_{1:t}) \)를 갱신.
1.2. 가정
- 시스템과 관측 모델은 선형이어야 합니다.
- 시스템 노이즈 \( \mathbf{w}_t \sim N(\mathbf{0}, \mathbf{Q}) \)와 관측 노이즈 \( \mathbf{v}_t \sim N(\mathbf{0}, \mathbf{R}) \)는 평균이 0인 가우시안 분포를 따릅니다.
- 노이즈는 서로 독립이며, 시간적으로 상관관계가 없습니다.
- 현재 상태 \( \mathbf{x}_t \)는 이전 상태 \( \mathbf{x}_{t-1} \)에만 의존합니다 (마르코프 성질).
2. 수학적 모델
2.1. 상태 방정식 (System Model)
\[ \mathbf{x}_t = \mathbf{A} \mathbf{x}_{t-1} + \mathbf{B} \mathbf{u}_t + \mathbf{w}_t \]
- \( \mathbf{x}_t \in \mathbb{R}^n \): 시간 \( t \)에서의 상태 벡터 (예: 위치, 속도).
- \( \mathbf{A} \in \mathbb{R}^{n \times n} \): 상태 전이 행렬.
- \( \mathbf{u}_t \in \mathbb{R}^p \): 제어 입력 벡터.
- \( \mathbf{B} \in \mathbb{R}^{n \times p} \): 제어 행렬.
- \( \mathbf{w}_t \sim N(\mathbf{0}, \mathbf{Q}) \): 시스템 노이즈, 공분산 \( \mathbf{Q} \in \mathbb{R}^{n \times n} \).
2.2. 관측 방정식 (Measurement Model)
\[ \mathbf{z}_t = \mathbf{H} \mathbf{x}_t + \mathbf{v}_t \]
- \( \mathbf{z}_t \in \mathbb{R}^m \): 관측 벡터.
- \( \mathbf{H} \in \mathbb{R}^{m \times n} \): 관측 행렬.
- \( \mathbf{v}_t \sim N(\mathbf{0}, \mathbf{R}) \): 관측 노이즈, 공분산 \( \mathbf{R} \in \mathbb{R}^{m \times m} \).
2.3. 초기 조건
초기 상태는 \( \mathbf{x}_0 \sim N(\hat{\mathbf{x}}_0, \mathbf{P}_0) \)로 가정하며, \( \hat{\mathbf{x}}_0 \)는 초기 상태 추정치, \( \mathbf{P}_0 \)는 초기 공분산 행렬입니다.
3. 칼만 필터 알고리즘
3.1. 예측 단계 (Time Update)
- 상태 예측:\[ \hat{\mathbf{x}}_{t|t-1} = \mathbf{A} \hat{\mathbf{x}}_{t-1|t-1} + \mathbf{B} \mathbf{u}_t \]
- 공분산 예측:\[ \mathbf{P}_{t|t-1} = \mathbf{A} \mathbf{P}_{t-1|t-1} \mathbf{A}^T + \mathbf{Q} \]
3.2. 갱신 단계 (Measurement Update)
- 칼만 이득 계산:\[ \mathbf{K}_t = \mathbf{P}_{t|t-1} \mathbf{H}^T (\mathbf{H} \mathbf{P}_{t|t-1} \mathbf{H}^T + \mathbf{R})^{-1} \]
- 상태 갱신:\[ \hat{\mathbf{x}}_{t|t} = \hat{\mathbf{x}}_{t|t-1} + \mathbf{K}_t (\mathbf{z}_t - \mathbf{H} \hat{\mathbf{x}}_{t|t-1}) \]여기서 \( \mathbf{z}_t - \mathbf{H} \hat{\mathbf{x}}_{t|t-1} \)는 혁신(Innovation) 또는 측정 잔차입니다.
- 공분산 갱신:\[ \mathbf{P}_{t|t} = (\mathbf{I} - \mathbf{K}_t \mathbf{H}) \mathbf{P}_{t|t-1} \]
4. 수식 유도
4.1. 예측 단계
상태 예측: 상태 방정식에서 기대값을 취하면:
\[ \hat{\mathbf{x}}_{t|t-1} = E[\mathbf{x}_t | \mathbf{z}_{1:t-1}] = \mathbf{A} \hat{\mathbf{x}}_{t-1|t-1} + \mathbf{B} \mathbf{u}_t \]
공분산 예측: 상태 오차 \( \tilde{\mathbf{x}}_t = \mathbf{x}_t - \hat{\mathbf{x}}_{t|t-1} \)의 공분산은:
\[ \mathbf{P}_{t|t-1} = E[\tilde{\mathbf{x}}_t \tilde{\mathbf{x}}_t^T] = \mathbf{A} \mathbf{P}_{t-1|t-1} \mathbf{A}^T + \mathbf{Q} \]
4.2. 갱신 단계
칼만 이득: 혁신 공분산 \( \mathbf{S}_t \)는:
\[ \mathbf{S}_t = \mathbf{H} \mathbf{P}_{t|t-1} \mathbf{H}^T + \mathbf{R} \]
칼만 이득은 추정 오차 공분산을 최소화하도록:
\[ \mathbf{K}_t = \mathbf{P}_{t|t-1} \mathbf{H}^T \mathbf{S}_t^{-1} \]
상태 갱신: 사후 추정치는:
\[ \hat{\mathbf{x}}_{t|t} = \hat{\mathbf{x}}_{t|t-1} + \mathbf{K}_t (\mathbf{z}_t - \mathbf{H} \hat{\mathbf{x}}_{t|t-1}) \]
공분산 갱신: Joseph Form을 사용하여 수치적 안정성을 높일 수 있습니다:
\[ \mathbf{P}_{t|t} = (\mathbf{I} - \mathbf{K}_t \mathbf{H}) \mathbf{P}_{t|t-1} (\mathbf{I} - \mathbf{K}_t \mathbf{H})^T + \mathbf{K}_t \mathbf{R} \mathbf{K}_t^T \]
5. 칼만 필터의 한계
칼만 필터는 강력하지만 다음과 같은 한계가 있습니다:
- 선형성 가정: 시스템과 관측 모델이 선형이어야 하며, 비선형 시스템에서는 직접 적용 불가. 예: 로봇의 비선형 운동(회전 경로)이나 레이더의 각도 측정.
- 가우시안 노이즈 가정: 노이즈가 가우시안이어야 하며, 비가우시안 노이즈(예: 스파이크 노이즈)에서는 최적성 보장 안 됨.
- 노이즈 공분산의 정확성: \( \mathbf{Q} \)와 \( \mathbf{R} \)의 부정확한 설정은 추정 오류를 유발. 예: \( \mathbf{Q} \) 과소평가 시 관측 데이터 무시, \( \mathbf{R} \) 과소평가 시 관측 과도 의존.
- 초기 조건 의존성: 부정확한 \( \hat{\mathbf{x}}_0 \)와 \( \mathbf{P}_0 \)는 수렴 지연. 예: GPS 초기 위치 오류.
- 수치적 안정성: 공분산 행렬 \( \mathbf{P}_t \)의 비대칭성이나 음의 고유값 문제. 역행렬 계산 시 불안정성 발생 가능.
- 계산 복잡도: 고차원 시스템에서 행렬 연산 비용 증가. 예: 대규모 SLAM 문제.
- 시간적 상관 노이즈: 시간적으로 상관된 노이즈(예: 센서 드리프트)에 부적합.
6. 칼만 필터의 대안
6.1. 확장 칼만 필터 (EKF)
EKF는 비선형 시스템에 칼만 필터를 적용하기 위해 1차 테일러 전개로 선형화합니다.
모델:
\[ \mathbf{x}_t = f(\mathbf{x}_{t-1}, \mathbf{u}_t) + \mathbf{w}_t, \quad \mathbf{w}_t \sim N(\mathbf{0}, \mathbf{Q}) \] \[ \mathbf{z}_t = h(\mathbf{x}_t) + \mathbf{v}_t, \quad \mathbf{v}_t \sim N(\mathbf{0}, \mathbf{R}) \]
알고리즘:
- 예측:\[ \hat{\mathbf{x}}_{t|t-1} = f(\hat{\mathbf{x}}_{t-1|t-1}, \mathbf{u}_t) \] \[ \mathbf{P}_{t|t-1} = \mathbf{A}_t \mathbf{P}_{t-1|t-1} \mathbf{A}_t^T + \mathbf{Q}, \quad \mathbf{A}_t = \frac{\partial f}{\partial \mathbf{x}} \big|_{\hat{\mathbf{x}}_{t-1|t-1}, \mathbf{u}_t} \]
- 갱신:\[ \mathbf{K}_t = \mathbf{P}_{t|t-1} \mathbf{H}_t^T (\mathbf{H}_t \mathbf{P}_{t|t-1} \mathbf{H}_t^T + \mathbf{R})^{-1}, \quad \mathbf{H}_t = \frac{\partial h}{\partial \mathbf{x}} \big|_{\hat{\mathbf{x}}_{t|t-1}} \] \[ \hat{\mathbf{x}}_{t|t} = \hat{\mathbf{x}}_{t|t-1} + \mathbf{K}_t (\mathbf{z}_t - h(\hat{\mathbf{x}}_{t|t-1})) \] \[ \mathbf{P}_{t|t} = (\mathbf{I} - \mathbf{K}_t \mathbf{H}_t) \mathbf{P}_{t|t-1} \]
장점: 비선형 시스템 처리 가능, 계산 효율성.
한계: 강한 비선형성에서 선형화 오류, 야코비안 계산 복잡, 비가우시안 노이즈 부적합.
응용: 로보틱스(SLAM), GPS/INS 통합.
6.2. 비향 칼만 필터 (UKF)
UKF는 비선형 함수를 선형화하지 않고, 언센트 변환을 통해 시그마 포인트로 상태 분포를 근사합니다.
알고리즘:
- 시그마 포인트 생성:\[ \mathcal{X}_{t-1}^{(i)} = \hat{\mathbf{x}}_{t-1|t-1} \pm (\sqrt{(n+\lambda)\mathbf{P}_{t-1|t-1}})_i, \quad i=1,\dots,n \] \[ \mathcal{X}_{t-1}^{(0)} = \hat{\mathbf{x}}_{t-1|t-1} \]
- 예측:\[ \mathcal{X}_{t|t-1}^{(i)} = f(\mathcal{X}_{t-1}^{(i)}, \mathbf{u}_t) \] \[ \hat{\mathbf{x}}_{t|t-1} = \sum_{i=0}^{2n} w_m^{(i)} \mathcal{X}_{t|t-1}^{(i)} \] \[ \mathbf{P}_{t|t-1} = \sum_{i=0}^{2n} w_c^{(i)} (\mathcal{X}_{t|t-1}^{(i)} - \hat{\mathbf{x}}_{t|t-1})(\mathcal{X}_{t|t-1}^{(i)} - \hat{\mathbf{x}}_{t|t-1})^T + \mathbf{Q} \]
- 갱신:\[ \mathcal{Z}_t^{(i)} = h(\mathcal{X}_{t|t-1}^{(i)}) \] \[ \hat{\mathbf{z}}_t = \sum_{i=0}^{2n} w_m^{(i)} \mathcal{Z}_t^{(i)} \] \[ \mathbf{S}_t = \sum_{i=0}^{2n} w_c^{(i)} (\mathcal{Z}_t^{(i)} - \hat{\mathbf{z}}_t)(\mathcal{Z}_t^{(i)} - \hat{\mathbf{z}}_t)^T + \mathbf{R} \] \[ \mathbf{P}_{xz} = \sum_{i=0}^{2n} w_c^{(i)} (\mathcal{X}_{t|t-1}^{(i)} - \hat{\mathbf{x}}_{t|t-1})(\mathcal{Z}_t^{(i)} - \hat{\mathbf{z}}_t)^T \] \[ \mathbf{K}_t = \mathbf{P}_{xz} \mathbf{S}_t^{-1} \] \[ \hat{\mathbf{x}}_{t|t} = \hat{\mathbf{x}}_{t|t-1} + \mathbf{K}_t (\mathbf{z}_t - \hat{\mathbf{z}}_t) \] \[ \mathbf{P}_{t|t} = \mathbf{P}_{t|t-1} - \mathbf{K}_t \mathbf{S}_t \mathbf{K}_t^T \]
장점: 강한 비선형성 처리, 야코비안 계산 불필요.
한계: 계산 비용 높음, 비가우시안 노이즈 부적합.
응용: 비선형 센서 융합(레이더+카메라).
6.3. 파티클 필터 (PF)
파티클 필터는 비선형, 비가우시안 시스템에 적합한 몬테카를로 기반 방법입니다.
알고리즘:
- 초기화: \( N \)개의 입자 \( \{ \mathbf{x}_{t-1}^{(i)}, w_{t-1}^{(i)} \}_{i=1}^N \)를 \( p(\mathbf{x}_0) \)에서 샘플링.
- 예측:\[ \mathbf{x}_{t|t-1}^{(i)} \sim p(\mathbf{x}_t | \mathbf{x}_{t-1}^{(i)}, \mathbf{u}_t) \]
- 갱신:\[ w_t^{(i)} \propto w_{t-1}^{(i)} p(\mathbf{z}_t | \mathbf{x}_{t|t-1}^{(i)}) \] \[ w_t^{(i)} = \frac{w_t^{(i)}}{\sum_{j=1}^N w_t^{(j)}} \]
- 리샘플링: 낮은 가중치 입자 제거, 높은 가중치 입자 복제.
장점: 비선형, 비가우시안 시스템 처리, 다중 모드 분포 가능.
한계: 높은 계산 비용, 입자 퇴화 문제.
응용: SLAM, 이상치 많은 데이터 처리.
6.4. 기타 대안
- H-infinity 필터: 가우시안 가정 없이 견고한 추정.
- 정보 필터: 공분산 대신 정보 행렬 사용, 다중 센서 융합에 유리.
- 앙상블 칼만 필터(EnKF): 대규모 시스템(기상 예보)에 사용.
7. 구현 고려사항
- 노이즈 공분산: \( \mathbf{Q} \), \( \mathbf{R} \)은 실험적 튜닝 필요.
- 수치적 안정성: Joseph Form 사용, Cholesky 분해로 역행렬 안정화.
- 초기 조건: \( \hat{\mathbf{x}}_0 \), \( \mathbf{P}_0 \)는 사전 지식 반영.
8. 응용 예시
- GPS/INS 통합: EKF로 비선형 관측 처리.
- SLAM: EKF/UKF로 로봇 위치와 맵 추정.
- 금융: 시계열 데이터의 잠재적 추세 추정.
9. 결론
칼만 필터는 선형 가우시안 시스템에서 최적 상태 추정을 제공하는 강력한 도구입니다. 그러나 선형성, 가우시안 노이즈, 공분산 설정 등 몇 가지 가정과 한계가 존재합니다. 이러한 한계를 극복하기 위해 EKF, UKF, 파티클 필터 등 다양한 확장 기법이 개발되었습니다.
- EKF: 비선형 시스템에 1차 테일러 전개로 접근, 계산 효율적이지만 강한 비선형성에서는 오차 발생 가능
- UKF: 비선형 함수를 선형화하지 않고 시그마 포인트로 근사, 야코비안 계산 불필요
- 파티클 필터: 비선형·비가우시안 시스템에 적합, 다중 모드 상태 분포 가능하지만 계산 비용이 높음
결국 칼만 필터와 그 확장 기법들은 시스템 특성, 노이즈 유형, 계산 자원에 맞춰 선택적으로 활용해야 하며, 다양한 응용 분야에서 신뢰성 있는 상태 추정을 가능하게 합니다.