칼만필터(Kalman filter)의 이노베이션(innovation) 또는 측정 잔차는 측정값(measurement)과 측정 예측값(measurement prediction)의 차이로서 칼만필터가 작동 중에 유일하게 실제값과 비교하여 알 수 있는 값이다. 따라서 이 값과 이 값의 확률적 특성을 이용하면 칼만필터가 설계대로 잘 작동하고 있는지 여부를 판단할 수 있을 뿐만 아니라 칼만필터 설계값들을 튜닝할 수 있는 근거가 된다.
먼저 칼만필터 알고리즘을 간략히 살펴본 후 이노베이션의 확률적 특성에 대해서 알아보자. 다음과 같이 선형 시스템이 있다.
\[ \begin{align} \mathbf{x}_{t+1} &= F_t \mathbf{x}_t + G_t \mathbf{u}_t + \Gamma_t \mathbf{w}_t \tag{1} \\ \\ \mathbf{z}_t &= H_t \mathbf{x}_t+ \mathbf{v}_t \end{align} \]
여기서 \(\mathbf{x}_t \in \mathbb{R}^{n_x }\), \(\mathbf{u}_t \in \mathbb{R}^{n_u }\), \(\mathbf{z}_t \in \mathbb{R}^{n_z}\), \(\mathbf{w}_t \in \mathbb{R}^{n_w}\), \(\mathbf{v}_t \in \mathbb{R}^{n_z}\) 이며 하첨자 \(t\) 는 시간스텝(time step)을 의미한다.
프로세스 노이즈 \(\mathbf{w}_t\) 와 센서 노이즈 \(\mathbf{v}_t\) 는 평균이 \(0\) 인 가우시안 화이트 노이즈(white noise)로서 그 값은 다음과 같이 주어진다.
\[ \begin{align} & \mathbb{E}[\mathbf{w}_t ]=0, \ \ \ \ \ \mathbb{E}[\mathbf{w}_t \mathbf{w}_l^T ]=Q_t \delta_{tl}, \ \ \ \ \ Q_t \gt 0 \tag{2} \\ \\ & \mathbb{E}[\mathbf{v}_t ]=0, \ \ \ \ \ \mathbb{E}[\mathbf{v}_t \mathbf{v}_l^T ]=R_t \delta_{tl}, \ \ \ \ \ R_t \gt 0 \\ \\ & \mathbb{E}[\mathbf{w}_t \mathbf{v}_l^T ]=0, \ \ \ \ \ \mathbb{E} [\mathbf{x}_0 \mathbf{w}_t^T ]=0, \ \ \ \ \ \mathbb{E} [\mathbf{x}_0 \mathbf{v}_t^T ]=0 \end{align} \]
여기서 \(\delta_{tl}\) 는 크로네커 델타(Kronecker delta) 함수로서 \(t=l\) 이면 \(\delta_{tl}=1\) 이고 \(t \ne l\) 이면 \(\delta_{tl}=0\) 이다. 노이즈 공분산 \(Q_t\) 와 \(R_t\) 는 정정행렬(positive-definite matrix)이다. 식 (1)에서 \(\Gamma_t \mathbf{w}_t= \tilde{\mathbf{w}}_t\) 로 단순하게 표기하는 경우도 많은데 이 경우 공분산은 \(\Gamma_t Q_t \Gamma_t^T \ge 0\) 으로서 반정정행렬(positive semi-definite matrix)이 될 수도 있다.
식 (1)과 (2)에 대해서 칼만필터 알고리즘은 다음과 같다.
\[ \begin{align} & \hat{\mathbf{x}}_{t+1|t} = F_t \hat{\mathbf{x}}_{t|t} +G_t \mathbf{u}_t \tag{3} \\ \\ & P_{t+1|t} = F_t P_{t|t} F_t^T + \Gamma_t Q_t \Gamma_t^T \\ \\ & \nu_t = \mathbf{z}_t-H_t \hat{\mathbf{x}}_{t|t-1} \\ \\ & S_t = H_t P_{t|t-1} H_t^T+R_t \\ \\ & K_t = P_{t|t-1} H_t^T S_t^{-1} \\ \\ & \hat{\mathbf{x}}_{t|t}= \hat{\mathbf{x}}_{t|t-1}+K_t \nu_t \\ \\ & P_{t|t}= P_{t|t-1}-K_t S_t K_t^T = (I-K_t H_t ) P_{t|t-1} (I-K_t H_t )^T+ K_t R_t K_t^T \end{align} \]
여기서 \(\nu_t\) 를 이노베이션(innovation)이라고 한다. 특성은 다음과 같이 정리할 수 있다.
\[ \begin{align} & \nu_t \sim \mathcal{N}(0, S_t ) \tag{4} \\ \\ & \mathbb{E}[ \nu_t \nu_l^T ]= S_t \delta_{tl} \end{align} \]
즉, 이노베이션은 평균이 0이고 공분산이 S_t인 가우시안 화이트 노이즈(Gaussian white noise)다.
이제 이를 증명한다. 먼저 평균이 0이라는 것은 최소평균제곱오차(MMSE, minimum mean-square error) 추정기가 바이어스(bias)가 없는 추정라는 점을 이용하면 증명할 수 있다.
\[ \begin{align} \mathbb{E}[\nu_t | \mathbf{z}_{0:t-1} ] &= \mathbb{E}[\mathbf{z}_t- \hat{\mathbf{z}}_{t|t-1} | \mathbf{z}_{0:t-1} ] \tag{5} \\ \\ &= \mathbb{E}[\mathbf{z}_t | \mathbf{z}_{0:t-1} ]- \hat{\mathbf{z}}_{t|t-1} \\ \\ &= \hat{\mathbf{z}}_{t|t-1}- \hat{\mathbf{z}}_{t|t-1}= 0 \end{align} \]
이번에는 이노베이션이 화이트 노이즈라는 것을 증명한다. 이노베이션을 전개해 보면,
\[ \begin{align} \nu_t &= \mathbf{z}_t-H_t \hat{\mathbf{x}}_{t|t-1} \tag{6} \\ \\ &=H_t \mathbf{x}_t+ \mathbf{v}_t-H_t \hat{\mathbf{x}}_{t|t-1} \\ \\ &=H_t \tilde{\mathbf{x}}_{t|t-1}+ \mathbf{v}_t \end{align} \]
이다. 여기서 \(\tilde{\mathbf{x}}_{t|t-1}= \mathbf{x}_t- \hat{\mathbf{x}}_{t|t-1}\) 은 사전(a priori) 추정 오차다. 사전 추정 오차를 다음 시간스텝으로 전개하면 다음과 같다.
\[ \begin{align} \tilde{\mathbf{x}}_{t+1|t} &= \mathbf{x}_{t+1}- \hat{\mathbf{x}}_{t+1|t} \tag{7} \\ \\ &=F_t \mathbf{x}_t+G_t \mathbf{u}_t+ \Gamma_t \mathbf{w}_t-(F_t \hat{\mathbf{x}}_{t|t}+G_t \mathbf{u}_t) \\ \\ &=F_t \mathbf{x}_t+ \Gamma_t \mathbf{w}_t-F_t \left( \hat{\mathbf{x}}_{t|t-1}+K_t (H_t \mathbf{x}_t+\mathbf{v}_t-H_t \hat{\mathbf{x}}_{t|t-1} ) \right) \\ \\ &= (F_t-F_t K_t H_t ) \mathbf{x}_t-(F_t-F_t K_t H_t ) \hat{\mathbf{x}}_{t|t-1}+ \Gamma_t \mathbf{w}_t-F_t K_t \mathbf{v}_t \\ \\ &= \bar{F}_t \tilde{\mathbf{x}}_{t|t-1} + \bar{\mathbf{w}}_t \end{align} \]
여기서
\[ \begin{align} \bar{F} = (F_t-F_t K_t H_t ), \ \ \ \ \ \bar{\mathbf{w}}_t = \Gamma_t \mathbf{w}_t-F_t K_t \mathbf{v}_t \end{align} \]
이다. 식 (7)은 \(\tilde{\mathbf{x}}_{t|t-1}\) 에 대한 선형 이산시간(discrete-time) 방정식이므로 해를 다음과 같이 구할 수 있다.
\[ \begin{align} \tilde{\mathbf{x}}_{t|t-1}= \Phi_{t,i} \tilde{\mathbf{x}}_{i|i-1}+ \sum_{j=i}^{t-1} \Phi_{t,j+1} \bar{\mathbf{w}}_j \tag{8} \end{align} \]
여기서 \(\Phi_{t,i}\) 는 상태천이행렬(state transition matrix)로서 다음과 같다.
\[ \begin{align} \Phi_{t,i} = \begin{cases} \bar{F}_{t-1} \bar{F}_{t-2} \cdots \bar{F}_i, & t \gt i \\ I, & t=i \end{cases} \tag{9} \end{align} \]
그러면 사전 추정 오차의 자기공분산(autocovariance)는 다음과 같이 구할 수 있다.
\[ \begin{align} \mathbb{E} [\tilde{\mathbf{x}}_{t|t-1} \tilde{\mathbf{x}}_{i|i-1}^T ]= \mathbb{E} \left[ \left( \Phi_{t,i} \tilde{\mathbf{x}}_{i|i-1}+ \sum_{j=i}^{t-1} \Phi_{t,j+1} \bar{\mathbf{w}}_j \right) \tilde{\mathbf{x}}_{i|i-1}^T \right] \tag{10} \end{align} \]
그런데 위 식에서
\[ \begin{align} \mathbb{E}[ \bar{\mathbf{w}}_j \tilde{\mathbf{x}}_{i|i-1}^T ] &= \mathbb{E}[(\Gamma_j \mathbf{w}_j-F_j K_j \mathbf{v}_j ) \tilde{\mathbf{x}}_{i|i-1}^T ] \\ \\ &=\Gamma_j \mathbb{E}[ \mathbf{w}_j \tilde{\mathbf{x}}_{i|i-1}^T ]- F_j K_j \mathbb{E}[\mathbf{v}_j \tilde{\mathbf{x}}_{i|i-1}^T ] \end{align} \]
인데, 여기서 \(\tilde{\mathbf{x}}_{i|i-1}\) 은 시간스텝 \(i-1\) 이전의 시간스텝에서의 \(\mathbf{w}_{i-1}\) 와 \(\mathbf{v}_{i-1}\) 에만 영향을 받을 뿐 \(\mathbf{w}_j\) 와 \(\mathbf{v}_j ,\ j \ge i\) 과는 무관하기 때문에 다음 식이 성립한다.
\[ \begin{align} \mathbb{E}[ \bar{\mathbf{w}}_j \tilde{\mathbf{x}}_{i|i-1}^T ] =0, \ \ \ \ \ j \ge i \tag{11} \end{align} \]
식 (11)을 (10)애 대입하면 다음과 같이 자기공분산 식이 간단해진다.
\[ \begin{align} \mathbb{E} [\tilde{\mathbf{x}}_{t|t-1} \tilde{\mathbf{x}}_{i|i-1}^T ] &= \Phi_{t,i} \mathbb{E} [\tilde{\mathbf{x}}_{i|i-1} \tilde{\mathbf{x}}_{i|i-1}^T ] \tag{12} \\ \\ & = \Phi_{t,i} P_{i|i-1} \end{align} \]
이번에는 사전 추정 오차와 측정 노이즈의 상호공분산(cross-covariance)을 구해보자.
\[ \begin{align} \mathbb{E}[ \tilde{\mathbf{x}}_{t|t-1} \mathbf{v}_i^T ]= \mathbb{E} \left[ \left( \Phi_{t,i} \tilde{\mathbf{x}}_{i|i-1}+ \sum_{j=i}^{t-1} \Phi_{t,j+1} \bar{\mathbf{w}}_j \right) \mathbf{v}_i^T \right] \tag{13} \end{align} \]
위 식에서 같은 이유로 \(\mathbb{E}[\tilde{\mathbf{x}}_{i|i-1} \mathbf{v}_i^T ]=0\) 이고,
\[ \begin{align} \mathbb{E}[ \bar{\mathbf{w}}_j \mathbf{v}_i^T ] &= \mathbb{E}[(\Gamma_j \mathbf{w}_j-F_j K_j \mathbf{v}_j ) \mathbf{v}_i^T ] \tag{14} \\ \\ &= \Gamma_j \mathbb{E}[\mathbf{w}_j \mathbf{v}_i^T ]-F_j K_j \mathbb{E}[\mathbf{v}_j \mathbf{v}_i^T ] \\ \\ &= \begin{cases} 0, & j \gt i \\ -F_i K_i R_i, & j=i \end{cases} \end{align} \]
이다. 따라서 식 (13)은 다음과 같이 된다.
\[ \begin{align} \mathbb{E}[ \tilde{\mathbf{x}}_{t|t-1} \mathbf{v}_i^T ]=-\Phi_{t,i+1} F_i K_i R_i \tag{15} \end{align} \]
이제 \(t \ge i\) 에서 이노베이션의 자기공분산을 구해보자.
\[ \begin{align} \mathbb{E}[\nu_t \nu_i^T ]= \mathbb{E}[(H_t \tilde{\mathbf{x}}_{t|t-1}+ \mathbf{v}_t ) (H_t \tilde{\mathbf{x}}_{i|i-1}+ \mathbf{v}_i )^T ] \tag{16} \end{align} \]
만약 \(t=i\) 이라면, 식 (16)은 다음과 같이 된다.
\[ \begin{align} \mathbb{E}[\nu_t \nu_t^T ] &= H_t \mathbb{E}[\tilde{\mathbf{x}}_{t|t-1} \tilde{\mathbf{x}}_{i|i-1}^T ] H_t^T+ \mathbb{E}[\mathbf{v}_t \mathbf{v}_t^T ] \tag{17} \\ \\ &=H_t P_{t|t-1} H_t^T+R_t \\ \\ &=S_t \end{align} \]
\(t \gt i\) 에서는 식 (16)은 다음과 같이 된다.
\[ \begin{align} \mathbb{E}[\nu_t \nu_i^T ] &= \mathbb{E}[(H_t \tilde{\mathbf{x}}_{t|t-1}+\mathbf{v}_t ) (H_t \tilde{\mathbf{x}}_{i|i-1}+ \mathbf{v}_i )^T ] \tag{18} \\ \\ &= H_t \mathbb{E}[ \tilde{\mathbf{x}}_{t|t-1} \tilde{\mathbf{x}}_{i|i-1}^T ] H_i^T+H_t \mathbb{E}[\tilde{\mathbf{x}}_{t|t-1} \mathbf{v}_i^T ]+ \mathbb{E}[\mathbf{v}_t \tilde{\mathbf{x}}_{i|i-1}^T ] H_i^T \end{align} \]
여기서 \(t \gt i\) 이기 때문에 \(\tilde{\mathbf{x}}_{i|i-1}\) 는 \(\mathbf{v}_t\) 와는 무관하다. 따라서 \(\mathbb{E}[\mathbf{v}_t \tilde{\mathbf{x}}_{i|i-1}^T ]=0\) 이다. 식 (12)와 (15)를 식 (18)에 대입하면 다음과 같이 된다.
\[ \begin{align} \mathbb{E}[\nu_t \nu_i^T ] &= H_t \Phi_{t,i} P_{i|i-1} H_i^T-H_t \Phi_{t,i+1} F_i K_i R_i \tag{19} \\ \\ &=H_t \Phi_{t,i+1} (\bar{F}_i P_{i|i-1} H_i^T-F_i K_i R_i ) \end{align} \]
\(\bar{F}_i=(F_i-F_i K_i H_i )\) 이므로 식 (19)에 대입하면,
\[ \begin{align} \mathbb{E}[\nu_t \nu_i^T ] &= H_t \Phi_{t,i+1} \left( (F_i-F_i K_i H_i ) P_{i|i-1} H_i^T-F_i K_i R_i \right) \tag{20} \\ \\ &=H_t \Phi_{t,i+1} (F_i P_{i|i-1} H_i^T-F_i K_i H_i P_{i|i-1} H_i^T-F_i K_i R_i ) \\ \\ &=H_t \Phi_{t,i+1} \left( F_i P_{i|i-1} H_i^T-F_i K_i (H_i P_{i|i-1} H_i^T+R_i ) \right) \end{align} \]
이 되고 식 (3)에 의하면
\[ \begin{align} K_i=P_{i|i-1} H_i^T (H_i P_{i|i-1} H_i^T+R_i ) \end{align} \]
이므로 위 식을 식 (20)에 대입하면,
\[ \begin{align} \mathbb{E}[\nu_t \nu_i^T ] &= H_t \Phi_{t,i+1} (F_i P_{i|i-1} H_i^T-F_i P_{i|i-1} H_i^T ) \tag{21} \\ \\ &=0, \ \ \ \ \ t \gt i \end{align} \]
이 된다. 따라서 이노베이션은 화이트 노이즈다.
또한 모든 확률 함수가 가우시안이고 시스템이 선형이므로 이노베이션도 가우시안이다. 이로써 이노베이션이 평균이 0인 가우시안 화이트 노이즈임을 증명하였다.
'유도항법제어 > 칼만필터를 넘어서' 카테고리의 다른 글
노이즈 공분산 추정 방법: ALS (0) | 2024.12.17 |
---|---|
[PF-2] SIS에서 파티클 필터로 (0) | 2021.07.11 |
[PF-1] 순차 중요 샘플링 (Sequential Importance Sampling) (0) | 2021.06.13 |
베이즈 필터 (Bayes Filter) (0) | 2021.06.08 |
칼만필터 알고리즘 (0) | 2021.03.04 |
댓글