확장 칼만 필터

추정 이론에서 **확장 칼만 필터**(, **EKF**)는 현재 평균 및 공분산의 추정치에 대해 선형화하는 칼만 필터의 비선형 버전이다. 잘 정의된 전이 모델의 경우, EKF는 비선형 상태 추정, 항법 시스템 및 GPS 이론에서 사실상 표준으로 간주되어 왔다.

## 역사
칼만 유형 필터의 수학적 기초를 확립한 논문은 1959년에서 1961년 사이에 발표되었다. 칼만 필터는 전이 및 측정 시스템 모두에서 부가적인 독립 백색 잡음이 있는 선형 시스템 모델에 대한 최적의 선형 추정기이다. 불행히도 공학에서는 대부분의 시스템이 비선형이므로 이 필터링 방법을 비선형 시스템에 적용하려는 시도가 이루어졌다. 이 작업의 대부분은 NASA Ames에서 수행되었다. EKF는 미적분학의 기술, 즉 다변량 테일러 급수 확장을 채택하여 작업점 주변의 모델을 선형화했다. 시스템 모델(아래 설명 참조)이 잘 알려져 있지 않거나 정확하지 않은 경우, 특히 파티클 필터와 같은 몬테카를로 방법이 추정에 사용된다. 몬테카를로 기법은 EKF의 존재보다 앞서지만, 적당히 차원이 정해진 상태 공간의 경우 계산 비용이 더 많이 든다.

## 정의
확장 칼만 필터에서 상태 전이 및 관측 모델은 상태의 선형 함수일 필요는 없지만 대신 미분 가능 함수일 수 있다.

:\boldsymbol{x}_{k} = f(\boldsymbol{x}_{k-1}, \boldsymbol{u}_{k-1}) + \boldsymbol{w}_{k-1}

:\boldsymbol{z}_{k} = h(\boldsymbol{x}_{k}) + \boldsymbol{v}_{k}

여기서 **w**k와 **v**k는 프로세스 및 관측 잡음이며, 둘 다 공분산 **Q**k와 **R**k를 가진 영 평균 다변량 정규 분포 잡음으로 가정된다. **u**k는 제어 벡터이다.

함수 f는 이전 추정치로부터 예측된 상태를 계산하는 데 사용될 수 있으며, 유사하게 함수 h는 예측된 상태로부터 예측된 측정을 계산하는 데 사용될 수 있다. 그러나 f와 h는 공분산에 직접 적용될 수 없다. 대신 편미분 행렬(야코비 행렬)이 계산된다.

각 시간 단계에서 야코비 행렬은 현재 예측된 상태로 평가된다. 이 행렬들은 칼만 필터 방정식에 사용될 수 있다. 이 과정은 본질적으로 현재 추정치 주변의 비선형 함수를 선형화한다.

표기법에 대한 설명은 칼만 필터 문서를 참조.

## 이산 시간 예측 및 업데이트 방정식
표기법 \hat{\mathbf{x}}_{n\mid m}은 시간 까지의 관측치를 바탕으로 시간 n에서의 \mathbf{x}의 추정치를 나타낸다.

### 예측

### 업데이트

여기서 상태 전이 및 관측 행렬은 다음 야코비안으로 정의된다.

: } = \left . \frac{\partial f}{\partial \boldsymbol{x} } \right \vert _{\hat{\boldsymbol{x}}_{k-1|k-1},\boldsymbol{u}_{k-1}} 

: } = \left . \frac{\partial h}{\partial \boldsymbol{x} } \right \vert _{\hat{\boldsymbol{x}}_{k|k-1}} 

## 단점 및 대안
선형 칼만 필터와 달리, 확장 칼만 필터는 일반적으로 최적 추정기가 아니다(측정 및 상태 전이 모델이 모두 선형인 경우에만 최적이며, 이 경우 확장 칼만 필터는 일반 칼만 필터와 동일하다). 또한, 상태의 초기 추정치가 잘못되었거나 프로세스가 부정확하게 모델링된 경우, 선형화로 인해 필터가 빠르게 발산할 수 있다. 확장 칼만 필터의 또 다른 문제는 추정된 공분산 행렬이 실제 공분산 행렬을 과소평가하는 경향이 있어 "안정화 잡음"을 추가하지 않으면 통계적 의미에서 일관성이 없는 상태가 될 위험이 있다.

더 일반적으로는 비선형 필터링 문제의 무한 차원적 특성과 최적 필터를 완전히 표현하기 위한 단순한 평균 및 분산-공분산 추정기의 부적절성을 고려해야 한다. 확장 칼만 필터는 최적 필터가 이봉 분포를 가질 수 있고 그 자체로 단일 평균 및 분산 추정기로 효과적으로 표현될 수 없는 풍부한 구조를 가진 3차 센서와 같은 매우 간단한 1차원 시스템에서도 저조한 성능을 보일 수 있다는 점에 주목해야 한다. 이는 2차 센서의 경우에도 마찬가지이다. 이러한 경우, 사영 필터가 대안으로 연구되었으며 항법에도 적용되었다. 이 경우 전체 파티클 필터와 같은 다른 일반적인 비선형 필터링 방법을 고려할 수 있다.

그럼에도 불구하고 확장 칼만 필터는 합리적인 성능을 제공할 수 있으며 항법 시스템 및 GPS에서 사실상 표준이라고 할 수 있다.

## 일반화
### 연속 시간 확장 칼만 필터
**모델**
:
\begin{align}
\dot{\mathbf{x}}(t) &= f\bigl(\mathbf{x}(t), \mathbf{u}(t)\bigr)
\\
 \mathbf{z}(t) &= h\bigl(\mathbf{x}(t)\bigr)(t)
\end{align}

**초기화**
:
\hat{\mathbf{x}}(t_0)=E\bigl[\mathbf{x}(t_0)\bigr] \text{, } \mathbf{P}(t_0)=Var\bigl[\mathbf{x}(t_0)\bigr]

**예측-업데이트**
:\begin{align}
\dot{\hat{\mathbf{x}}}(t) &= f\bigl(\hat{\mathbf{x}}(t),\mathbf{u}(t)\bigr)+\mathbf{K}(t)\Bigl(\mathbf{z}(t)-h\bigl(\hat{\mathbf{x}}(t)\bigr)\Bigr)\\
\dot{\mathbf{P}}(t) &= \mathbf{F}(t)\mathbf{P}(t)+\mathbf{P}(t)\mathbf{F}(t)^{T}-\mathbf{K}(t)\mathbf{H}(t)\mathbf{P}(t)+\mathbf{Q}(t)\\
\mathbf{K}(t) &= \mathbf{P}(t)\mathbf{H}(t)^{T}\mathbf{S}(t)^{-1}\\
\mathbf{F}(t) &= \left . \frac{\partial f}{\partial \mathbf{x} } \right \vert _{\hat{\mathbf{x}}(t),\mathbf{u}(t)}\\
\mathbf{H}(t) &= \left . \frac{\partial h}{\partial \mathbf{x} } \right \vert _{\hat{\mathbf{x}}(t)}
\end{align}
이산 시간 확장 칼만 필터와 달리, 연속 시간 확장 칼만 필터에서는 예측 및 업데이트 단계가 서로 연결되어 있다.

#### 이산 시간 측정
대부분의 물리적 시스템은 연속 시간 모델로 표현되지만, 디지털 프로세서를 통해 상태 추정을 위해 이산 시간 측정이 자주 수행된다. 따라서 시스템 모델과 측정 모델은 다음과 같이 주어진다.
:
\begin{align}
\dot{\mathbf{x}}(t) &= f\bigl(\mathbf{x}(t), \mathbf{u}(t)\bigr) + \mathbf{w}(t) &\mathbf{w}(t) &\sim \mathcal{N}\bigl(\mathbf{0},\mathbf{Q}(t)\bigr) \\
\mathbf{z}_k &= h(\mathbf{x}_k) + \mathbf{v}_k   &\mathbf{v}_k &\sim \mathcal{N}(\mathbf{0},\mathbf{R}_k)
\end{align}

여기서 \mathbf{x}_k=\mathbf{x}(t_k)이다.

**초기화**
:
\hat{\mathbf{x}}_{0|0}=E\bigl[\mathbf{x}(t_0)\bigr], \mathbf{P}_{0|0}=E\bigl[\left(\mathbf{x}(t_0)-\hat{\mathbf{x}}(t_0)\right)\left(\mathbf{x}(t_0)-\hat{\mathbf{x}}(t_0)\right)^T\bigr]

**예측**
:
\begin{align}
\text{solve }
&\begin{cases}
\dot{\hat{\mathbf{x}}}(t) = f\bigl(\hat{\mathbf{x}}(t), \mathbf{u}(t)\bigr) \\
\dot{\mathbf{P}}(t) = \mathbf{F}(t)\mathbf{P}(t)+\mathbf{P}(t)\mathbf{F}(t)^T+ \mathbf{Q}(t)
\end{cases}\qquad
\text{with }
\begin{cases}
\hat{\mathbf{x}}(t_{k-1}) = \hat{\mathbf{x}}_{k-1|k-1} \\
\mathbf{P}(t_{k-1}) = \mathbf{P}_{k-1|k-1}
\end{cases} \\
\Rightarrow
&\begin{cases}
\hat{\mathbf{x}}_{k|k-1} = \hat{\mathbf{x}}(t_k) \\
\mathbf{P}_{k|k-1} = \mathbf{P}(t_k)
\end{cases}
\end{align}

여기서
: \mathbf{F}(t) = \left. \frac{\partial f}{\partial \mathbf{x} } \right \vert _{\hat{\mathbf{x}}(t),\mathbf{u}(t)} 
**업데이트**
:\mathbf{K}_{k} = \mathbf{P}_{k|k-1}\mathbf{H}_{k}^{T}\bigl(\mathbf{H}_{k}\mathbf{P}_{k|k-1}\mathbf{H}_{k}^{T} + \mathbf{R}_{k}\bigr)^{-1} 
:\hat{\mathbf{x}}_{k|k} = \hat{\mathbf{x}}_{k|k-1} + \mathbf{K}_{k}\bigl(\mathbf{z}_{k} - h(\hat{\mathbf{x}}_{k|k-1})\bigr) 
:\mathbf{P}_{k|k} = (\mathbf{I} - \mathbf{K}_{k}\mathbf{H}_{k})\mathbf{P}_{k|k-1} 
여기서
: \textbf{H}_{k} = \left . \frac{\partial h}{\partial \textbf{x} } \right \vert _{\hat{\textbf{x}}_{k|k-1}} 
업데이트 방정식은 이산 시간 확장 칼만 필터의 방정식과 동일하다.

### 고차 확장 칼만 필터
위의 재귀는 1차 확장 칼만 필터(EKF)이다. 테일러 급수 전개의 더 많은 항을 유지함으로써 고차 EKF를 얻을 수 있다. 예를 들어, 2차 및 3차 EKF가 설명되었다. 그러나 고차 EKF는 측정 잡음이 작을 때만 성능 향상을 제공하는 경향이 있다.

### 비부가 잡음 공식화 및 방정식
**EKF**의 일반적인 공식화는 부가 과정과 측정 잡음의 가정을 포함한다. 그러나 이 가정은 **EKF** 구현에 반드시 필요한 것은 아니다. 대신 다음과 같은 보다 일반적인 시스템을 고려한다.

:\boldsymbol{x}_{k} = f(\boldsymbol{x}_{k-1}, \boldsymbol{u}_{k-1}, \boldsymbol{w}_{k-1})

:\boldsymbol{z}_{k} = h(\boldsymbol{x}_{k}, \boldsymbol{v}_{k})

여기서 **w**k와 **v**k는 프로세스 및 관측 잡음이며, 둘 다 공분산 **Q**k와 **R**k를 가진 영 평균 다변량 정규 분포 잡음으로 가정된다. 그러면 공분산 예측 및 혁신 방정식은 다음과 같다.

: \boldsymbol{P}_{k|k-1} =  }} {\boldsymbol{P}_{k-1|k-1}}} {+} {\boldsymbol{L}_{k-1}} {\boldsymbol{Q}_{k-1}}{\boldsymbol{L}^{T}_{k-1}} 

: \boldsymbol{S}_{k} = }{\boldsymbol{P}_{k|k-1}} {+} {\boldsymbol{M}_{k}} {\boldsymbol{R}_{k}} {\boldsymbol{M}_{k}^{T}}

여기서 행렬 \boldsymbol{L}_{k-1}과 \boldsymbol{M}_{k}는 야코비 행렬이다.

: } = \left . \frac{\partial f}{\partial \boldsymbol{w} } \right \vert _{\hat{\boldsymbol{x}}_{k-1|k-1},\boldsymbol{u}_{k-1}} 

: } = \left . \frac{\partial h}{\partial \boldsymbol{v} } \right \vert _{\hat{\boldsymbol{x}}_{k|k-1}} 

예측된 상태 추정치와 측정 잔차는 프로세스 및 측정 잡음 항의 평균에서 평가되며, 이는 0으로 가정된다. 그렇지 않으면 비부가 잡음 공식화는 부가 잡음 **EKF**와 동일한 방식으로 구현된다.

### 음함수 확장 칼만 필터
특정 경우에 비선형 시스템의 관측 모델은 \boldsymbol{z}_{k}에 대해 풀 수 없지만, 음함수로 표현될 수 있다.

:h(\boldsymbol{x}_{k}, \boldsymbol{z'}_{k}) = \boldsymbol{0} 

여기서 \boldsymbol{z}_{k} = \boldsymbol{z'}_{k} + \boldsymbol{v}_{k}는 잡음이 있는 관측치이다.

기존 확장 칼만 필터는 다음 대입을 사용하여 적용할 수 있다.

: } \leftarrow } } } 

: \tilde{\boldsymbol{y}}_{k} \leftarrow -h(\hat{\boldsymbol{x}}_{k|k-1}, \boldsymbol{z}_{k}) 

여기서:

: } = \left . \frac{\partial h}{\partial \boldsymbol{z} } \right \vert _{\hat{\boldsymbol{x}}_{k|k-1}, \boldsymbol{z}_{k}} 

여기서 원래 관측 공분산 행렬  } 가 변환되고, 혁신  \tilde{\boldsymbol{y}}_{k} 는 다르게 정의된다. 야코비 행렬  } 는 이전과 같이 정의되지만 음함수 관측 모델 h(\boldsymbol{x}_{k}, \boldsymbol{z}_{k})에서 결정된다.

## 수정 및 대안
### 반복 확장 칼만 필터
반복 확장 칼만 필터는 테일러 전개의 중심점을 재귀적으로 수정하여 확장 칼만 필터의 선형화를 개선한다. 이는 계산 요구 사항 증가의 대가로 선형화 오류를 줄인다.

### 강인 확장 칼만 필터
강인 확장 칼만 필터는 현재 상태 추정치에 대해 신호 모델을 선형화하고 선형 칼만 필터를 사용하여 다음 추정치를 예측함으로써 발생한다. 이는 국소적으로 최적의 필터를 생성하려 하지만, 기본 리차드 방정식의 해가 양의 정부호가 보장되지 않으므로 반드시 안정적이지는 않다. 성능을 개선하는 한 가지 방법은 의사 대수 리카티 기법이다.
이는 최적성을 안정성과 교환한다. 확장 칼만 필터의 익숙한 구조는 유지되지만, 게인 설계를 위해 의사 대수 리카티 방정식에 대한 양의 정부호 해를 선택하여 안정성이 달성된다.

확장 칼만 필터 성능을 개선하는 또 다른 방법은 강인 제어의 H-무한대 결과를 사용하는 것이다. 강인 필터는 설계 리카티 방정식에 양의 정부호 항을 추가하여 얻는다. 추가 항은 스칼라로 매개변수화되며, 설계자는 평균 제곱 오차와 피크 오차 성능 기준 사이의 절충을 달성하기 위해 이를 조정할 수 있다.

### 불변 확장 칼만 필터

불변 확장 칼만 필터(IEKF)는 대칭(또는 불변성)을 갖는 비선형 시스템을 위한 EKF의 수정된 버전이다. 이는 EKF와 최근 도입된 대칭 보존 필터의 장점을 결합한다. 선형 출력 오차를 기반으로 하는 선형 보정 항을 사용하는 대신, IEKF는 불변 출력 오차를 기반으로 하는 기하학적으로 적응된 보정 항을 사용한다. 같은 방식으로 게인 행렬은 선형 상태 오차에서 업데이트되는 것이 아니라 불변 상태 오차에서 업데이트된다. 주요 이점은 EKF의 경우와 같이 게인 및 공분산 방정식이 평형점보다 훨씬 더 큰 궤적 집합에서 일정한 값으로 수렴하여 추정의 더 나은 수렴을 가져온다는 것이다.

### 언센티드 칼만 필터
EKF를 개선하는 데 유망한 비선형 칼만 필터는 언센티드 칼만 필터(UKF)이다. UKF에서 확률 밀도는 가우시안으로 기본 분포를 나타내는 점들의 결정론적 샘플링으로 근사된다. 이 점들의 비선형 변환은 사후 분포의 추정치가 되도록 의도되며, 그 모멘트는 변환된 샘플에서 파생될 수 있다. 이 변환은 언센티드 변환으로 알려져 있다. UKF는 모든 방향에서 오차를 추정하는 데 EKF보다 더 강건하고 정확한 경향이 있다.

2012년 논문에는 일부 발표된 UKF 변형이 2차 확장 칼만 필터(SOEKF), 일명 증강 칼만 필터만큼 정확하지 않다는 시뮬레이션 결과가 포함되어 있다. SOEKF는 UKF보다 약 35년 앞서며, 모멘트 동역학은 Bass 등이 처음 설명했다. 비선형 상태 전이를 위한 모든 칼만 유형 필터 구현의 어려움은 정밀도에 필요한 수치 안정성 문제에서 비롯되지만, UKF도 선형 회귀와 같은 선형화를 사용하므로 이러한 어려움을 피할 수 없다. UKF의 안정성 문제는 일반적으로 공분산 행렬의 제곱근에 대한 수치적 근사에서 비롯되며, EKF와 SOEKF의 안정성 문제는 궤적을 따라 테일러 급수 근사에서 발생할 수 있는 문제에서 비롯된다.

### 앙상블 칼만 필터
UKF는 사실 1994년 에벤슨이 발명한 앙상블 칼만 필터보다 앞섰다. 이는 사용되는 앙상블 구성원 수가 상태 차원보다 훨씬 적을 수 있다는 UKF에 대한 장점이 있어, 10억 이상의 상태 공간 크기를 가진 날씨 예측과 같은 매우 고차원 시스템에 적용할 수 있다.

### 퍼지 칼만 필터
최근에는 비대칭 프로세스 및 관측 잡음과 프로세스 및 관측 모델의 높은 부정확성을 사용할 수 있도록 확률 분포를 가능성 분포로 대체하기 위한 새로운 방법으로 퍼지 칼만 필터가 제안되어 진정한 가능성 필터를 얻을 수 있게 되었다.

## 같이 보기
* 칼만 필터
* 앙상블 칼만 필터
* 고속 칼만 필터
* 불변 확장 칼만 필터
* 이동 지평선 추정
* 파티클 필터
* 언센티드 칼만 필터
* 비선형 필터링 문제
* 프로젝션 필터

## 각주

## 추가 자료

* 

* 

* 

* 

## 외부 링크
* Position estimation of a differential-wheel robot based on odometry and landmarks

분류:신호 추정
분류:로봇 제어
분류:비선형 필터