# 센서 퓨전의 예측과 보정 단계의 개념

#### 확률적 관점에서의 기초

센서 퓨전은 여러 센서로부터 획득되는 정보를 하나로 통합하여 더욱 정확한 상태 추정을 수행하는 방법론이다. 상태 추정은 보통 확률적 방식으로 이해되는데, 이는 측정 잡음이나 시스템 모델의 불완전성을 고려하기 위해서다. 예측(Prediction)과 보정(Update)은 확률적 센서 퓨전에서 핵심적인 두 단계로서, 동적 시스템 상태를 점진적으로 추정하는 과정에서 필수적인 연산이다. 이 과정을 베이즈 필터(Bayesian Filter) 관점에서 살펴보면, 시스템의 현재 상태분포는 이전 상태분포로부터의 예측 단계를 거치고, 새로운 관측치(센서 측정)를 활용하는 보정 단계를 통해 갱신된다. 이때 상태 벡터는 보통 시간에 따라 변화하므로, 시점 k에서의 상태를 벡터 $\mathbf{x}*{k} \in \mathbb{R}^{n}$처럼 표현하고, 예측 단계에서는 $\mathbf{x}*{k-1}$에서 $\mathbf{x}\_{k}$로 확률분포가 전이된다.

#### 베이즈 필터의 일반적 형태

베이즈 필터는 두 가지 핵심 방정식으로 표현될 수 있다. 하나는 예측 단계이고, 다른 하나는 보정 단계다. 일반적인 베이즈 필터의 표현은 상태 전이 확률과 측정 확률의 결합을 통해 이루어진다. 시점 k에서의 상태분포 사전확률(prior)을 $p(\mathbf{x}*{k}|\mathbf{z}*{1:k-1})$라 하고, 사후확률(posterior)을 $p(\mathbf{x}*{k}|\mathbf{z}*{1:k})$라 할 때, 다음과 같은 구조를 갖는다.

$$
\begin{align} p(\mathbf{x}*{k}|\mathbf{z}*{1:k-1}) &= \int p(\mathbf{x}*{k}|\mathbf{x}*{k-1}) , p(\mathbf{x}*{k-1}|\mathbf{z}*{1:k-1}) , d\mathbf{x}*{k-1}\\
p(\mathbf{x}*{k}|\mathbf{z}*{1:k}) &= \frac{p(\mathbf{z}*{k}|\mathbf{x}*{k}) , p(\mathbf{x}*{k}|\mathbf{z}*{1:k-1})}{\int p(\mathbf{z}*{k}|\tilde{\mathbf{x}}*{k}) , p(\tilde{\mathbf{x}}*{k}|\mathbf{z}*{1:k-1}) , d\tilde{\mathbf{x}}*{k}} \end{align}
$$

여기서 $\mathbf{z}*{k}$는 시점 k에서의 측정(센서 관측)에 해당한다. 예측 단계에서는 이전 시점의 상태분포 $p(\mathbf{x}*{k-1}|\mathbf{z}*{1:k-1})$를 상태 전이 확률 $p(\mathbf{x}*{k}|\mathbf{x}*{k-1})$로 적분하여 $\mathbf{x}*{k}$의 사전확률 $p(\mathbf{x}*{k}|\mathbf{z}*{1:k-1})$을 구한다. 이어서 보정 단계에서는 새로운 측정 값 $\mathbf{z}*{k}$를 활용해 사후확률 $p(\mathbf{x}*{k}|\mathbf{z}\_{1:k})$를 계산한다.

#### 예측 단계의 직관적 이해

예측 단계(Prediction)는 시스템 동역학을 기반으로 다음 시점의 상태가 어떻게 분포될지를 추정하는 절차다. 센서가 아직 측정하기 전 시점에서, 이전 상태와 시스템 모델이 알려져 있다면 상태 전이를 통해 미래 상태를 미리 추론한다. 이 과정은 시스템의 운동방정식이나 모델을 활용하여 상태 벡터가 얼마나 변화할지, 그리고 그 불확실성(분산 또는 공분산 구조)이 어떻게 변할지를 추산한다.

이때 상태 전이 모델은 매우 단순할 수도 있지만, 물리 기반 모델이나 데이터 기반 모델을 사용할 수도 있다. 불확실성은 잡음이 추가되어 모델에서 예측된 상태 주변으로 확산되며, 그 형태가 가우시안일 수도 비가우시안일 수도 있다. 가우시안 분포를 가정하면 전형적으로 칼만 필터(Kalman Filter)가 사용되고, 비선형 시스템인 경우 확장 칼만 필터(Extended Kalman Filter)나 무향 칼만 필터(Unscented Kalman Filter) 등의 변형이 적용된다.

#### 보정 단계의 직관적 이해

보정 단계(Update)는 새로운 센서 정보가 들어왔을 때 상태 추정을 어떻게 업데이트할지를 결정하는 절차다. 예측 단계에서 얻은 사전확률에 센서 측정의 확률모델을 곱하여, 측정치와 일치하는 정도에 비례해 확률분포를 재정렬한다. 측정모델을 통해 측정값이 주어졌을 때의 가능도(likelihood)를 정의할 수 있는데, 해당 분포가 예측된 상태분포와 어떻게 겹치는지를 반영하여 사후확률이 형성된다.

만약 특정 상태가 실제 측정값과 부합한다면 해당 상태의 확률은 높아지고, 그렇지 않다면 낮아진다. 이를 정규화(normalization)하여 총합 혹은 적분이 1이 되게 하므로, 새로운 사후확률분포가 최종 추정 결과가 된다. 센서가 여러 대라면 각각의 측정치에 대한 측정모델을 순차 또는 동시적으로 적용하여 더욱 정확한 상태 추정을 수행한다.

#### 칼만 필터에서의 예측과 보정

가장 단순하고 선형-가우시안 조건을 가정한 센서 퓨전 알고리즘은 칼만 필터다. 여기서는 시스템이 다음과 같은 선형 모델을 따른다고 가정한다.

$$
\begin{align} \mathbf{x}*{k+1} &= \mathbf{F}*k \mathbf{x}*{k} + \mathbf{G}*k \mathbf{u}*{k} + \mathbf{w}*{k} \mathbf{z}*{k} &= \mathbf{H}*k \mathbf{x}*{k} + \mathbf{v}*{k} \end{align}
$$

여기에서 $\mathbf{x}*{k}$는 시점 k의 상태 벡터이고, $\mathbf{F}k$는 상태 전이 행렬, $\mathbf{G}k$는 제어 입력 $\mathbf{u}k$에 해당하는 제어 행렬, $\mathbf{w}{k}$는 시스템 노이즈(process noise)이다. 측정방정식에서 $\mathbf{z}{k}$는 측정 벡터, $\mathbf{H}k$는 측정 행렬, $\mathbf{v}{k}$는 측정 잡음을 나타낸다. $\mathbf{w}{k}$와 $\mathbf{v}*{k}$는 평균이 0인 가우시안 잡음으로 가정하며, 다음과 같은 공분산을 갖는다.

$$
\begin{align} \mathbf{w}\_{k} &\sim \mathcal{N}(\mathbf{0}, \mathbf{Q}*k) \\
\mathbf{v}*{k} &\sim \mathcal{N}(\mathbf{0}, \mathbf{R}\_k) \end{align}
$$

이와 같은 가정하에서 칼만 필터는 시간 k에서 추정된 상태의 평균 $\hat{\mathbf{x}}*{k}$와 공분산 $\mathbf{P}*{k}$를 이용해 시간 k+1에서의 상태를 예측하고, 실제 측정값 $\mathbf{z}\_{k+1}$를 가지고 보정한다.

예측 단계는 다음과 같이 주어진다.

$$
\begin{align} \hat{\mathbf{x}}\_{k+1|k} &= \mathbf{F}*k ,\hat{\mathbf{x}}*{k|k} + \mathbf{G}\_k ,\mathbf{u}*k\\
\mathbf{P}*{k+1|k} &= \mathbf{F}*k ,\mathbf{P}*{k|k},\mathbf{F}\_k^T + \mathbf{Q}\_k \end{align}
$$

보정 단계는 다음과 같다.

$$
\begin{align} \mathbf{K}*{k+1} &= \mathbf{P}*{k+1|k},\mathbf{H}*{k+1}^T \bigl(\mathbf{H}*{k+1},\mathbf{P}*{k+1|k},\mathbf{H}*{k+1}^T + \mathbf{R}*{k+1}\bigr)^{-1}\\
\hat{\mathbf{x}}*{k+1|k+1} &= \hat{\mathbf{x}}*{k+1|k} + \mathbf{K}*{k+1},\bigl(\mathbf{z}*{k+1} - \mathbf{H}*{k+1},\hat{\mathbf{x}}*{k+1|k}\bigr)\\
\mathbf{P}*{k+1|k+1} &= \bigl(\mathbf{I} - \mathbf{K}*{k+1},\mathbf{H}*{k+1}\bigr),\mathbf{P}\_{k+1|k} \end{align}
$$

여기서 $\mathbf{K}\_{k+1}$는 칼만 이득(Kalman Gain)이다. 이는 측정값과 모델 예측값 간의 상대적 신뢰도를 반영하여, 보정 단계에서 상태추정을 어느 정도로 조정할 것인지를 결정한다.

#### 간단한 흐름도 예시

예측과 보정 단계가 교차하며 수행되는 과정을 간단한 흐름도로 표현하면 다음과 같은 구조가 될 수 있다.

{% @mermaid/diagram content="flowchart LR
A\[이전 추정 상태] --> B\[예측 단계] --> C\[예측 결과]
D\[새 센서 측정] --> E\[보정 단계]
C --> E\[보정 단계] --> F\[갱신된 상태 추정]" %}

위 흐름도에서 보듯이, 이전 시점 상태에서 예측을 수행하고, 새로운 센서 데이터가 들어왔을 때 보정을 수행한 후, 다시 이 보정된 상태를 새로운 이전 상태로 삼아 다음 주기의 예측을 진행하게 된다.

#### 고급적 해석: 예측과 보정에서의 불확실성 관리

실제 응용에서는 가우시안 잡음 가정이 만족되지 않는 경우가 많거나, 상태 전이와 측정 방정식이 매우 비선형일 수 있다. 이때는 입자 필터(Particle Filter)나 무향 칼만 필터 등을 적용한다. 그러나 어떤 필터를 적용하더라도, 예측 단계는 모델 기반으로 확률분포를 앞으로 전파(propagation)하는 과정이며, 보정 단계는 관측 또는 측정이라는 새로운 정보를 통해 확률분포를 재조정하는 과정이라는 큰 틀은 동일하다.

확률분포를 직접적으로 취급하는 방법 외에도, 집합(domain) 접근 기반의 집합값 추정(Set-membership Estimation)이나 확률논리를 넘어서는 퍼지 로직(Fuzzy Logic) 접근이 가능하다. 하지만 센서 퓨전에서 가장 보편화된 접근은 여전히 확률론적 관점이며, 이에 따라 예측과 보정 단계가 모든 필터의 골격을 이룬다.

#### 비선형 시스템에서의 예측과 보정

센서 퓨전 문제에서 시스템이 비선형 동역학이나 측정모델을 갖는 경우가 매우 많다. 예측단계의 상태 전이 방정식이 비선형이라면, 가우시안 분포의 전파가 단순히 선형 변환처럼 처리되기 어려우며, 보정단계에서도 측정모델의 비선형성 때문에 상태 분포와 측정 분포를 결합하는 과정이 복잡해진다. 이를 해결하기 위해 가장 널리 쓰이는 접근 중 하나가 확장 칼만 필터(Extended Kalman Filter, EKF)와 무향 칼만 필터(Unscented Kalman Filter, UKF)다.

**확장 칼만 필터 (EKF)**

EKF는 비선형 함수를 선형화(linearization)하여 칼만 필터와 유사한 구조로 예측과 보정을 수행한다. 예측 단계에서는 비선형 상태 전이 함수를 1계 도함수를 사용해 선형 근사하고, 보정 단계에서는 비선형 측정 함수를 유사하게 선형화한다. 전이함수가 다음과 같이 주어진다고 해보자.

$$
\mathbf{x}*{k+1} = f(\mathbf{x}*{k}, \mathbf{u}\_k) + \mathbf{w}\_k
$$

측정함수가 다음과 같이 주어진다고 하자.

$$
\mathbf{z}\_{k} = h(\mathbf{x}\_k) + \mathbf{v}\_k
$$

잡음 $\mathbf{w}\_k$와 $\mathbf{v}\_k$는 여전히 가우시안 분포를 갖는다고 가정한다. EKF에서는 다음과 같은 야코비 행렬(Jacobian Matrix)을 사용한다.

$$
\begin{align} \mathbf{F}*k &= \frac{\partial f}{\partial \mathbf{x}} \bigg\rvert*{\hat{\mathbf{x}}*{k|k}}\\
\mathbf{H}*k &= \frac{\partial h}{\partial \mathbf{x}} \bigg\rvert*{\hat{\mathbf{x}}*{k|k}} \end{align}
$$

이를 통해 비선형함수를 국소적으로 선형화하여, 칼만 필터와 같은 형태의 예측 및 보정을 수행한다.

예측 단계:

$$
\begin{align} \hat{\mathbf{x}}*{k+1|k} &= f(\hat{\mathbf{x}}*{k|k}, \mathbf{u}*{k})\\
\mathbf{P}*{k+1|k} &= \mathbf{F}*k ,\mathbf{P}*{k|k},\mathbf{F}\_k^T + \mathbf{Q}\_k \end{align}
$$

보정 단계:

$$
\begin{align} \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} &= \bigl(\mathbf{I} - \mathbf{K}\_k ,\mathbf{H}*k \bigr),\mathbf{P}*{k|k-1} \end{align}
$$

EKF의 핵심은 비선형함수를 1차 근사하는 것이다. 따라서 상태변화가 심하거나 시스템이 심각하게 비선형이면, 선형화 오차 때문에 EKF 추정정확도에 문제가 발생할 수 있다. 그러나 계산량이 비교적 작고 구현이 간단하기 때문에 실시간 센서 퓨전에서 널리 적용된다.

**무향 칼만 필터 (UKF)**

UKF는 확장 칼만 필터와 달리, 비선형함수의 야코비 근사를 구하지 않고도 가우시안 분포를 좀 더 정확하게 전파하기 위해 시그마 점(Sigma Point)을 활용한다. 시그마 점 집합을 상태추정값과 공분산으로부터 샘플링하고, 각 시그마 점을 비선형함수에 통과시킨 뒤 통계적 특성을 다시 계산하여 새로운 평균과 공분산을 구한다.

UKF에서 시그마 점을 구성하는 방식 중 대표적인 것으로는 scaled unscented transform(SUT)이 있다. 상태차원이 n차원이라면, 2n+1개의 시그마 점이 생성된다. 시그마 점 집합을 ${\chi\_0, \chi\_1, \dots, \chi\_{2n}}$라 할 때, 각 시그마 점은 다음과 같이 정의할 수 있다. 공분산 행렬 $\mathbf{P}\_{k}$의 분해(주로 Cholesky 분해)를 통해 얻는 $\mathbf{S}$를 이용한다.

$$
\begin{align}
\chi\_0 &= \hat{\mathbf{x}}*{k}\\
\chi\_i &= \hat{\mathbf{x}}*{k} + \bigl(\sqrt{(n + \lambda)} ,\mathbf{S}\bigr)*{i}, \quad i=1,\dots,n\\
\chi*{i+n} &= \hat{\mathbf{x}}*{k} - \bigl(\sqrt{(n + \lambda)} ,\mathbf{S}\bigr)*{i}, \quad i=1,\dots,n
\end{align}
$$

여기서 $\lambda$는 척도 인자(scale parameter)다. 시그마 점을 예측단계의 비선형 전이함수 $f(\cdot)$에 대입하여,

$$
\chi\_{i|k+1}^- = f\bigl(\chi\_{i|k}, \mathbf{u}\_k\bigr)
$$

한 뒤, 예측된 시그마 점들을 기반으로 평균과 공분산을 다시 계산한다. 보정단계에서도 측정 함수 $h(\cdot)$에 시그마 점을 통과시키고, 그 결과로 얻는 시그마 점의 평균과 공분산을 통해 칼만 이득을 구한다. 이렇게 함으로써 EKF 대비 선형화 오류를 줄일 수 있으며, 높은 차수의 비선형 현상까지 어느 정도 반영한다.

UKF는 EKF와 달리 야코비 계산이 필요 없어 구현이 단순해 보이지만, 실제로 시그마 점 생성을 위한 공분산 분해가 필요하고 시그마 점 개수가 많아져서 EKF와 계산량이 비슷하거나 더 커질 수도 있다. 그럼에도 불구하고 비선형에서의 성능 향상이 기대되어, 비선형 센서 퓨전 상황에서 각광받는다.

#### 확률 분포의 직접 전파: 입자 필터

선형 혹은 비선형 칼만 필터들은 가우시안 분포를 전제로 하거나, 그 근사 기법에 기반한다. 하지만 실제로는 측정 잡음 분포나 상태 전이 분포가 심하게 비가우시안(non-Gaussian)일 수 있다. 이럴 때 입자 필터(Particle Filter, PF)를 통해 확률 분포를 직접 샘플링 포인트로 표현하여 예측과 보정을 수행할 수 있다.

입자 필터에서는 상태분포 $p(\mathbf{x}*k|\mathbf{z}*{1:k})$를 다수의 무게(weight)를 갖는 입자들(particles) 집합으로 근사한다. 각 입자는 상태 공간 내의 한 점 $\mathbf{x}\_k^{(i)}$를 나타내며, 그 점이 실제 상태일 가능성을 나타내는 무게 $w\_k^{(i)}$를 갖는다. 이 입자 집합이 전체 확률분포를 표현하므로, 다음 시점으로의 예측은 각각의 입자에 대해 비선형 혹은 복잡한 전이 함수를 그대로 적용하여 이루어진다.

보정단계에서는 새로운 측정 $\mathbf{z}\_k$에 대한 측정모델 $p(\mathbf{z}\_k|\mathbf{x}\_k^{(i)})$를 활용하여, 입자들의 무게 $w\_k^{(i)}$를 업데이트한다. 일반적 형태는 다음과 같다.

$$
w\_k^{(i)} \propto w\_{k-1}^{(i)} , p(\mathbf{z}\_k \mid \mathbf{x}\_k^{(i)})
$$

이렇게 업데이트된 무게를 정규화한 후, 입자 첨두 현상(particle degeneracy)을 막기 위해 재샘플링(resampling) 과정을 수행한다. 이를 통해 무게가 극도로 작은 입자들은 제거하고, 무게가 큰 입자들을 다중 복제하여 입자 집합을 재구성한다.

입자 필터는 어떠한 분포 형태도 표현 가능하다는 장점이 있지만, 필요한 입자 수가 많아질수록 계산량이 기하급수적으로 늘 수 있다. 따라서 고차원 문제에서 직접 입자 필터를 적용하는 것은 제약이 많고, 여러 가지 하이브리드 방법이나 차원 축소 기법(예: Rao-Blackwellized Particle Filter 등)이 연구되고 있다.

#### 예측 단계와 보정 단계의 통합적 이해

예측과 보정의 개념은 어떤 필터를 사용하더라도 동일한 골격 위에서 작동한다. 서로 다른 것은 확률분포를 표현하고 전파하는 방법이 다르며, 실제 구현과정에서의 계산량과 정확도 사이의 절충 방식이 달라진다는 점이다. 다음과 같은 순환적 절차를 반복 수행하면서 시간이 흐름에 따라 실시간 상태추정을 이어간다.

{% @mermaid/diagram content="flowchart LR
A\[이전 시점 사후 확률] --> B\[예측: 전이 모델로 시간 전파] --> C\[현재 시점 사전 확률]
D\[새로운 측정] --> E\[보정: 측정 모델로 갱신]
C --> E\[보정] --> F\[새로운 시점 사후 확률]
F --> A" %}

예측 단계에서 상태분포가 시간에 따라 어떻게 변화하는지를 추정하고, 보정 단계에서 실제 센서로부터 관측되는 정보를 결합하여 해당 상태분포를 맞춰나간다. 센서의 관측주기가 짧아질수록 보정이 잦아지므로 오차가 쌓일 틈이 줄어들지만, 그만큼 계산량이 증가할 수 있다. 반면 관측주기가 길어지면 예측단계만으로 상태를 추정하는 시간이 늘어나므로, 시스템 모델이 부정확하거나 잡음이 큰 경우 추정 성능이 저하될 수 있다.

#### 센서가 여러 개일 경우

다중 센서 퓨전에서는 시스템에 입력되는 측정 정보가 여러 채널에서 동시 혹은 비동시에 들어온다. 각 센서가 다른 형태의 물리량을 측정하는 경우도 있고, 같은 물리량을 다른 조건(예: 다른 위치, 다른 정밀도)에서 측정하기도 한다. 이때 보정 단계에서 각 센서 정보를 하나씩 순차적으로 적용하거나, 하나로 통합된 측정 벡터 형태로 만들어 동시에 적용할 수 있다. 순차 적용의 경우에는 다음과 같은 형태로 구현할 수 있다.

$$
p(\mathbf{x}*k|\mathbf{z}*{k}^{(1)}, \mathbf{z}\_k^{(2)}) \propto p(\mathbf{z}\_k^{(2)}|\mathbf{x}\_k) , p(\mathbf{x}*k|\mathbf{z}*{k}^{(1)})
$$

이런 방식으로 센서가 많아질수록 측정모델들의 곱(또는 결합)을 통해 상태분포가 한층 더 강력하게 보정될 수 있다. 물론 센서끼리의 상호 의존관계나 측정 잡음이 정확히 가우시안인지 여부, 센서 간 시간 동기화 수준 같은 현실적인 이슈들이 복잡도를 높인다.

#### 예측-보정 구조에서의 오차 누적과 해결책

실시간 센서 퓨전에서 예측은 시간적 간격이 생길 때마다 끊임없이 수행되므로, 예측 모델이 정확하지 않을 경우 누적 오차가 점차 커질 수 있다. 측정으로 이를 보정하기에, 센서의 측정 주기가 길면 중간에 발생한 오차가 크게 누적될 위험이 있다. 또한 센서 측정 잡음이 큰 경우, 보정에 의해서도 충분히 오차가 상쇄되지 않을 수 있다. 이를 최소화하기 위해서는

* 시스템 모델(동역학 모델)의 정교한 보정(calibration)이 필수적이다.
* 센서 측정 노이즈 특성을 정확히 추정하기 위해 사전에 충분한 센서 모델링과 실험적 튜닝이 필요하다.
* 필요하다면 다중 센서를 도입해 상호 보완성을 높인다.
* 필요한 시점에서 재보정(recalibration)이나 리셋(reset) 과정을 통해 분산이 과도하게 증가하는 것을 방지한다.

이처럼 예측단계의 모델링 정확도, 보정단계의 센서 특성 이해, 그리고 실제 구현에서의 효율적 필터링 구조 설계가 모두 잘 어우러져야 센서 퓨전 알고리즘이 안정적이고 정확하게 동작한다.

#### 고급 관점: 예측과 보정에서의 정합성(consistency) 및 안정성

동적 시스템에서의 센서 퓨전 과정이 올바르게 이루어진다면, 추정된 상태분포가 실제 상태를 충분히 포함하면서도 과도하게 퍼져 있지 않아야 한다. 이를 두고 필터 정합성(Consistency)이라 부른다. 예측 단계에서는 불확실성을 제대로 반영해야 하고, 보정 단계에서는 새로운 센서 정보를 통해 불확실성이 적절히 줄어들어야 한다. 여러 센서의 정보가 잘못 반영되면, 실제 상태를 배제하는 쪽으로 사후확률이 치우칠 수도 있고(언더슈팅), 반대로 불확실성을 제대로 줄이지 못해 과도하게 보수적인(오버슈팅) 추정이 될 수도 있다.

정합성을 평가하는 대표적 방법 중 하나로 혁신(Innovation) 기반 통계검정이 있다. 혁신은 다음과 같이 정의된다.

$$
\mathbf{y}\_k = \mathbf{z}\_k - \mathbf{H}*k ,\hat{\mathbf{x}}*{k|k-1}
$$

이는 측정값과 예측된 측정값(모델을 통해 예측한 측정치)의 차이를 의미한다. 가우시안 가정 하에 혁신은 평균 0, 공분산 $\mathbf{H}*k ,\mathbf{P}*{k|k-1},\mathbf{H}\_k^T + \mathbf{R}\_k$를 갖는다. 이때 Normalized Innovation Squared(NIS) 등을 사용해 실제로 혁신이 유효범위 안에 드는지 판별한다. 만약 필터가 계속해서 일관된 예측과 보정을 수행하고 있다면, 특정 통계량이 적절한 확률분포(예: 카이제곱 분포) 범위 안에 남아 있어야 한다.

#### 정보 필터(Information Filter) 관점

에스티메이션(추정) 문제에서 확률분포 $p(\mathbf{x}*k|\mathbf{z}*{1:k})$를 평균과 공분산으로 표현하는 대신, 정보 행렬(Information Matrix)과 정보 벡터(Information Vector)를 사용해 저장하는 방법도 가능하다. 이러한 접근을 정보 필터(Information Filter)라고 한다. 칼만 필터가 상태 공분산 $\mathbf{P}\_k$를 다루는 반면, 정보 필터는 그 역행렬 $\mathbf{P}\_k^{-1}$를 직접적으로 업데이트한다. 정보 행렬을 $\mathbf{Y}\_k = \mathbf{P}\_k^{-1}$, 정보 벡터를 $\mathbf{y}\_k = \mathbf{P}\_k^{-1} ,\hat{\mathbf{x}}\_k$라 할 때,

예측 단계와 보정 단계를 거치면서 $\mathbf{Y}\_k$와 $\mathbf{y}\_k$가 갱신된다. 정보 필터는 다중 센서 퓨전을 분산(Distributed) 구조로 구현하기 쉬운 장점이 있다. 보정 단계에서 센서 측정이 들어올 때마다, 해당 센서 측정이 제공하는 정보 행렬을 단순 가산으로 합칠 수 있기 때문이다. 이처럼 정보 필터는 그래프 최적화와 연관이 깊고, 동시최적화(SLAM 등) 분야에서도 자주 활용된다.

#### 분산 및 계층 구조에서의 예측과 보정

센서 노드가 물리적으로 분산되어 있고 서로 다른 프로세서 위에서 병렬로 동작해야 할 때, 각 노드에서 부분적인 예측-보정 필터를 수행한 뒤, 주기적으로 중앙 서버 또는 주변 노드와 추정결과를 교환할 수 있다. 이를 분산 센서 퓨전이라고 부른다. 여러 노드가 동시에 움직이거나 센서 지점이 고정되어 있어도, 각 노드에서 개별적으로 상태를 추정한 후, 이를 네트워크를 통해 협력적으로 통합하게 된다.

분산 칼만 필터(Distributed Kalman Filter), 정보 필터 기반의 분산 알고리즘, Covariance Intersection(CI) 기법 등은 센서 간 상호상관(cross-correlation)을 명시적으로 고려하거나, 이를 안전하게(보수적으로) 무시하는 방법을 제시한다. CI는 상호상관 정보를 모를 때에도 공분산을 적당히 증가시켜서 결합하는 방법으로, 필터 정합성을 유지하려는 목표가 있다. 이는 예측과 보정 단계를 단일 센터에서가 아니라 여러 노드에서 부분적으로 수행하고, 안전하게 합치는 관점으로 이해할 수 있다.

#### 그래프 최적화 관점의 예측과 보정

최근 로봇공학이나 컴퓨터비전 분야에서는 베이즈 필터링과 별도로 그래프 최적화(graph optimization)를 이용한 방법도 각광받는다. 상태추정 문제를 그래프로 표현하면, 노드(node)는 상태(또는 잠재 변수)를 나타내고, 엣지(edge)는 측정(또는 운동방정식)에 해당한다. 이때 노드 간 연결 방정식을 최소오차 형태의 잔차(residual)로 표현하고, 그 잔차들이 합쳐진 목적함수를 최소화한다.

이 방식에서도 예측(모션 모델)과 보정(센서 측정 모델)이 각각의 엣지로 구성된다. 비선형 최적화 알고리즘(Gauss-Newton, Levenberg-Marquardt 등)을 통해 전역적으로 상태를 추정한다. 온라인 동작을 위해 인크리멘탈(incremental) 기법이 적용되기도 하며, 이는 필터 접근과 매우 흡사해진다.

#### 스무딩(Smoothing)과 배치(Batch) 추정

베이즈 필터는 보통 순방향(forward)으로만 상태를 전파하며, 현재 시점까지의 센서 데이터를 활용해 실시간 추정한다. 반면, 스무딩(smoothing) 기법은 과거 시점의 상태까지도 재평가하여, 전체 관측데이터를 바탕으로 더 정확한 상태 추정을 수행한다. 배치 추정(Batch Estimation)은 일정 구간의 모든 데이터(예: 1초간의 모든 측정)를 한꺼번에 모아서 최적화하는 방식으로, 과거 예측이나 보정을 재조정할 수 있다.

예를 들어, 고정 구간 스무딩(Fixed-interval smoothing)에서는 $k \in \[0, N]$ 구간에 대한 모든 데이터가 주어졌을 때, 각 시점의 상태를 한 번에 추정한다. 이런 접근은 오프라인 처리나, SLAM(Simultaneous Localization And Mapping)처럼 과거 궤적까지 정확히 재평가해야 하는 상황에서 사용된다. 온라인 센서 퓨전이라면 순수 배치방식은 계산량이 많아 어렵지만, 고정 크기의 슬라이딩 윈도우(Sliding window)를 두고 과거 일부 구간만 스무딩하는 방법이 실시간으로도 활용된다.

#### 오차 검출과 이상치(Outlier) 처리

보정 단계에서 센서 측정이 극단적인 잡음이나 오작동을 일으킬 경우, 필터 추정치가 급격히 튀거나 수렴 실패를 일으킬 수 있다. 이를 방지하려면 보정 단계에서 외란이나 이상치(outlier)를 걸러내는 기법이 필요하다. 전형적으로는 혁신의 마할라노비스 거리(Mahalanobis distance)가 너무 크면 해당 측정을 거부(rejection)하거나 다운스케일(down-weight)하는 기법을 사용한다.

보다 고급 기법으로는 M-Estimator, RANSAC(RANdom SAmple Consensus) 기반 방법, 혹은 GMSF(Graduated Multiple-Scale Filter) 등이 있다. 이런 기법들은 측정 모델에 대한 잔차(residual)가 지나치게 큰 센서 데이터를 완전히 배제하거나 부분적으로만 반영하여, 필터가 무너지는 사태를 방지한다.

#### 다중 모드 추적(Multiple Model Filtering)

시스템이 하나의 모션 모델만 가지는 것이 아니라, 여러 모드(Mode)로 전환될 수 있다면(예: 차량이 일반 주행 상태와 급가속 상태를 오가거나, 드론이 여러 가지 비행 모드로 전환), 예측 단계에서 어느 모델이 적용되는지를 고려해야 한다. 이를 위한 기법이 다중 모델 필터(Multiple Model Filter)로, 대표적으로 Interacting Multiple Model(IMM) 필터가 있다.

IMM 필터에서는 각 모드마다 별도의 칼만 필터(또는 EKF 등)를 동시에 돌리고, 모드 전이 확률에 따라 필터 간 추정값을 혼합(mixing)한다. 보정 단계에서 새 측정이 들어오면 각 모드 필터의 사후확률을 계산하여, 전체 추정은 이들을 가중합한 형태가 된다. 따라서 예측과 보정의 기본 틀은 유지하되, 모드 전이 확률행렬(Mode Transition Matrix)과 모드별 측정모델을 추가로 관리하여 복잡한 시스템을 추정할 수 있게 된다.

#### 시간 동기화와 센서 오프셋 보정

여러 센서가 동작할 때 필연적으로 생기는 문제가 센서 간 시간 동기화다. 어떤 센서는 100Hz로 측정하고, 다른 센서는 10Hz나 비정기적으로 데이터를 전송할 수도 있다. 예측과 보정 과정에서 센서 시점이 일치하지 않으면, 실제 상태변화와 측정 시점 간 시간차로 인해 큰 오차가 발생한다. 이를 해결하기 위해,

* 예측단계를 더 세분화하거나 보간(interpolation) 기법을 통해 필요 시점에 상태를 예측한다.
* 센서 측정에 시간 스탬프를 포함시키고, 각 센서마다 추정된 시간 오프셋을 보정한다.
* 필터 내부적으로 비동기 측정을 처리할 수 있는 구조(Asynchronous Update)를 설계한다.

이 과정을 통해 예측-보정 알고리즘이 다양한 주기의 센서 데이터를 자연스럽게 통합할 수 있다.

#### 결합 추정에서의 잡음 상호상관

센서가 여러 대이고, 서로 간에 잡음이 독립이 아닌 경우(예: 일부 공통 환경 잡음을 공유하거나, 센서가 서로 영향을 주고받는 구조)에는 보정 단계에서 잡음 공분산의 상호상관 항목을 정확히 고려해야 한다. 이를 무시하고 단순히 곱으로 측정모델을 결합하면, 실제보다 과도하게 불확실성이 줄어드는 문제가 생긴다. 특히 클로즈드 루프 구조나, 네트워크 공유를 통해 센서들이 서로 데이터를 교환하는 경우, 중복 정보가 순환(cycle)하며 공분산 계산이 어긋날 수 있다.

상호상관을 완전히 고려하려면 센서별 측정 과정에서 생성되는 잡음 항의 공분산 교차항을 추적해야 하며, 분산 구조에서는 이 정보 교환이 복잡해질 수 있다. Covariance Intersection(CI)이나 Bar-Shalom의 분산 칼만 필터 기법 등은 이러한 난제를 완화하기 위한 방법들이다.

#### 성능 평가와 필터 품질 지표

센서 퓨전에서 예측과 보정 단계를 설계하고 구현했을 때, 추정 성능을 정량적으로 평가하기 위해 여러 지표를 사용한다. 가장 직관적인 것은 추정값과 실제 참값(진실)을 비교하는 평균 제곱 오차(MSE)나 평균 제곱근 오차(RMSE)이지만, 실제 운용환경에서 진실을 알 수 없는 경우가 많다. 이럴 때는 내부적으로 계산되는 혁신(Innovation)이나 상태 추정값의 확률분포를 활용하여, 필터가 제대로 동작하는지를 점검한다.

대표적으로 Normalized Innovation Squared(NIS)나 Normalized Estimation Error Squared(NEES) 같은 통계량이 사용된다. 예를 들어, NIS는 다음과 같이 정의될 수 있다.

$$
\text{NIS}\_k = \mathbf{y}\_k^T ,\bigl(\mathbf{S}\_k\bigr)^{-1} ,\mathbf{y}\_k
$$

여기서 $\mathbf{y}\_k$는 혁신 벡터이고, $\mathbf{S}\_k$는 해당 혁신의 공분산 행렬이다. 가우시안 가정하에 이 값은 카이제곱($\chi^2$) 분포를 따라야 하므로, 통계적으로 분석할 수 있다. 필터가 제대로 정합성을 유지하고 있다면, NIS가 기대 범위 안에 분포하게 된다.

이와 달리 NEES는 상태 추정 오차를 직접 다루는데, 실제 상태(또는 상정된 기준 상태)와의 오차 벡터 $\mathbf{e}*k = \mathbf{x}k - \hat{\mathbf{x}}{k|k}$ 및 추정 공분산 $\mathbf{P}*{k|k}$를 통해 정의된다.

$$
\text{NEES}\_k = \mathbf{e}*k^T ,\mathbf{P}*{k|k}^{-1} ,\mathbf{e}\_k
$$

실시간 운용에서 실제 참값을 모른다면, 시뮬레이션 환경이나 일부 검증 데이터셋을 통해 미리 필터 품질을 점검하고, 그 결과를 기준으로 필터 파라미터를 조정(예: 잡음 공분산 조정)한다. 운용 중에도 특별한 레퍼런스 센서(예: 고정밀 GNSS 위치 측정)나 지표(예: 지면 마커를 활용한 절대 위치)를 주기적으로 획득해 오차를 추정함으로써, 필터 안정성을 관리할 수 있다.

#### 실시간 구현 고려사항

실제 센서 퓨전 시스템을 구현할 때, 예측과 보정 단계를 어떤 주기로 수행할지, 어떤 하드웨어에서 계산할지, 센서 입력이 비동기적으로 들어올 때는 어떻게 합칠지 등이 중요하다. 실시간 제어가 필요한 로봇 시스템일수록 예측과 보정 사이의 지연(Latency)이 생기면 제어 성능이 떨어지고, 때로는 불안정해질 수도 있다.

예측 단계는 비교적 빠르게 수행할 수 있지만, 보정 단계에서 측정이 들어오는 빈도와 시점이 다를 수 있으므로, 필터 내부적으로 센서별 큐(Queue)를 운용하거나 타임스탬프 기반으로 상태 추정을 보간(Interpolation)해야 한다. 센서 데이터가 고속(High rate)이라면 CPU/GPU 사용량이 급증할 수 있으므로, EKF와 같이 간략한 비선형 근사를 적용하거나, UKF 시그마 점 계산을 병렬화(Parallelization)하여 최적화하기도 한다.

간단히 말해 예측-보정 알고리즘이 전개되는 순서는 다음과 같은 과정을 반복한다. 예측-대기-보정-대기-다음 예측-… 형태로 계속 순환하는 셈이다. 그러나 실제 분산 시스템에서는 특정 노드에서 보정 단계가 지연될 수 있고, 이는 다른 노드의 예측 단계에 영향을 미치는 등 복잡한 상호작용이 발생한다. 따라서 센서 퓨전 시스템 설계 시에는 알고리즘의 이론적 정합성뿐 아니라, 구현 환경과 스케줄링(실시간 OS, 멀티스레드, GPU 가속 등)을 종합적으로 고려해야 한다.

#### 센서 모델링과 파라미터 추정

보정 단계의 성능은 얼마나 정확히 센서 모델을 파악하여 잡음 특성을 반영했는지에 달려 있다. 센서마다 $\mathbf{R}\_k$가 달라지고, 이 잡음 공분산이 특정 조건(온도, 습도, 동작 모드 등)에서 변할 수 있다면, 이를 동적으로 추적하는 적응형(Adaptive) 방법이 필요하다. 예측 단계에서 시스템 모델의 잡음 공분산 $\mathbf{Q}\_k$도 마찬가지다. 초기에는 추정치를 보수적으로 크게 잡았더라도, 운용 중에 측정된 데이터를 바탕으로 최적화할 수 있다.

센서 퓨전 시스템을 한 번에 완벽히 구성하기는 어렵고, 결국 튜닝 과정이 필수적이다. 시스템 식별(System Identification) 기법이나 오프라인 로그 데이터를 활용하여 최적 파라미터를 찾고, 이후 실제 운영 현장에서는 약간의 예외 상황까지 포함해 동적으로 파라미터를 업데이트해야 한다. 예측-보정 단계가 아무리 정교해도, 센서 모델과 시스템 모델이 실제와 동떨어져 있다면 신뢰할 수 없는 추정 결과가 나온다.

#### 머신러닝 및 딥러닝 기반 예측-보정

최근에는 전통적인 모델 기반 예측단계 대신, 딥러닝 모델을 통해 상태 전이를 학습하거나 측정모델을 보정하려는 시도가 늘고 있다. 예컨대, 물리 모델의 불완전한 부분을 딥 뉴럴 네트워크가 보완하거나, 센서 측정 잡음을 학습하여 더 정확한 추정 공분산을 추론하기도 한다. 이런 접근은 하이브리드 모델(Hybrid Model)이라고 불리며, 예측 단계의 일부를 신경망으로 대체하거나, 보정 단계에서 사용되는 측정오차 공분산을 실시간으로 학습하는 형태도 가능하다.

이러한 방법은 충분한 학습데이터와 강건한 일반화(Generalization) 역량이 요구되며, 실제 환경변화나 센서 고장 같은 돌발상황에 대처하기 위해 여전히 전통적 모델 기반 요소와 결합된 구조를 많이 쓴다. 예측과 보정이라는 큰 틀은 그대로 두되, 내부 세부 계산을 데이터 기반으로 학습해 개선한다는 점이 특징이다.

#### 중간 정리

지금까지 살펴본 바와 같이 센서 퓨전에서 예측과 보정은 모든 확률적 추정 알고리즘의 핵심 과정이다. 센서 종류가 다양해지고, 시스템이 복잡해질수록 이를 효율적으로 결합하기 위한 기법들이 연구되어 왔으며, 모두 예측과 보정이라는 두 단계의 순환 구조를 기반으로 한다. 각 기법마다 분포 표현 방법, 계산량, 정확도, 확장성 등의 특성이 다르며, 실제 환경에 맞춰 적절한 방안을 선택하고 조정해야 한다.

#### 멀티레이트(Multi-rate) 센서 퓨전

예측과 보정이 늘 동시에 이루어지는 것은 아니다. 어떤 센서는 높은 주파수로 데이터를 전송하고(예: 관성센서 200Hz 이상), 다른 센서는 낮은 주파수로 동작하거나(예: GPS 1Hz), 심지어 비정기적으로 데이터를 보내기도 한다(예: 이벤트 트리거 센서). 이와 같은 환경에서는 센서마다 달라지는 주기로 인해 예측과 보정의 순서와 빈도가 다를 수밖에 없다. 이를 멀티레이트 센서 퓨전이라 부른다.

이 상황에서 일반적으로 다음과 같은 형태가 나타난다. 고속 센서(주기가 매우 짧음)는 상태 추정이 빠르게 변하는 구간에서도 정보를 계속 공급해 주지만, 노이즈가 크거나 오프셋이 존재할 수 있다. 반대로 저속 센서(주기가 길음)는 정확도가 높을 수 있으나, 갱신 주기가 길어 예측에서 발생하는 오차가 누적되는 구간이 길어진다. 따라서 다음과 같은 구현 전략이 자주 쓰인다.

* 빠른 센서의 측정이 들어올 때마다 보정을 수행한다. 느린 센서가 들어오는 타이밍에 맞춰 추가적으로 한 번 더 보정한다.
* 느린 센서 주기에 맞춰 전체 시스템을 동작시키되, 빠른 센서 데이터는 보정 대신 가상 측정(혹은 보조 측정) 형태로 적용하거나, 예측단계에서 동역학 모델과 함께 빠른 센서를 활용한 확장 모델을 구성한다.

정확한 동기화가 이루어지지 않으면, 빠른 센서의 최신 측정이 실제로는 느린 센서가 관측한 시점과의 시간이 뒤섞여 버릴 수 있다. 이 문제를 해결하기 위해서는 센서별 타임스탬프를 기반으로 보정 시점을 보간(Interpolation)하거나, 필터 내부에 시간을 연속적으로 처리하는 장치(Continuous-time Filter, 혹은 Event-based Filter 등)를 도입하기도 한다.

#### 부분 보정(Partial Update) 기법

센서로부터 오는 측정이 부분적으로만 상태를 관측할 때, 즉 전체 상태 벡터 중 일부 요소에 대한 정보만 측정으로 들어올 때는 해당 요소에 대해서만 부분 보정을 수행하는 방식이 있다. 일반적인 칼만 필터의 보정식은 전체 상태 벡터를 갱신하지만, 실제로는 측정 모델의 행렬 $\mathbf{H}\_k$가 상태 벡터의 일부 차원에만 유효할 수도 있다.

이 경우에도 전형적인 보정식은 동일하게 적용되지만, 실제로 $\mathbf{H}\_k$의 많은 항목이 0이거나 해당 관측 차원만 남기게 된다. 이를 좀 더 효율적으로 구현하기 위해, 필터 구조를 블록 분할(Block-partition)하여 관측되는 부분만 업데이트하고 나머지는 그대로 예측값을 유지하는 방법을 쓸 수 있다. 이러한 부분 보정 기법은 고차원 상태 공간에서 유용하며, 여러 센서가 각기 다른 상태 변수를 관찰하는 경우에도 확장 가능하다.

#### 미싱 데이터(Missing Data)와 불완전 측정 처리

센서 퓨전 과정에서 종종 센서 데이터가 유실되거나 측정이 불완전하게 들어오는 경우가 생긴다. 예컨대 측정이 간헐적으로 끊기는 상황에서, 보정 단계는 생략되고 예측 단계만 계속 수행해야 한다. 특정 센서의 데이터가 전혀 들어오지 않더라도, 가능한 다른 센서에서 온 데이터로 상태를 보정할 수 있다. 이를 구현할 때 주의할 점은, 누락된 센서 측정 정보를 지나치게 오래 기다리다가 전체 필터 주기가 늦어지는 일이 없도록 처리해야 한다는 것이다.

실제 필터 구현에서는 센서 데이터가 도착하지 않으면 해당 시점의 보정 단계를 건너뛰고, 다음에 데이터가 도착할 때까지 예측만 반복한다. 만약 갑작스럽게 센서가 복원되거나 재연결되면, 이전 필터 상태와 새로 들어온 측정값을 교차검증하여 큰 이질성이 없는지 확인할 필요가 있다. 그렇지 않으면 한 번의 보정으로 대규모 오차가 반영되어 필터가 폭주(Divergence)할 수 있다.

#### 강인(Robust) 센서 퓨전: M-Estimator와 라플라스 분포

가우시안 잡음 가정이 센서 퓨전에서는 널리 적용되지만, 실제로는 이상치(Outlier)나 측정 분포 꼬리가 두꺼운(Heavy-tailed) 분포가 발생할 수 있다. 이럴 때, 보정 단계에서 측정모델의 가능도 함수를 일반적인 가우시안 대신 좀 더 완만한(cost function이 급격히 커지지 않는) 형태로 사용하는 기법들이 고안되었다. 예를 들어, M-Estimator 기법이나 라플라스(Laplacian) 분포(평균 0, 스케일 파라미터 b) 등을 고려하면, 극단값에도 필터가 무너지지 않는 강인한(robust) 추정을 수행할 수 있다.

강인 필터 구조에서 예측 단계는 큰 차이가 없지만, 보정 단계의 잔차(residual)에 따른 가중 계산이 달라진다. 예컨대 라플라스 분포를 활용하면 잔차가 커질 때 가중이 가우시안보다 더 빨리 낮아지므로, 이상치에 대한 민감도가 줄어든다. 다만 이런 식으로 비가우시안 likelihood를 사용하면 칼만 필터 공식처럼 간단히 해가 나오지 않으므로, 반복최적화나 수치해석 기법을 추가로 사용해야 한다.

#### 비선형 관측 모델에서의 선형화 기법 확장

EKF나 UKF 외에도, 고차 스칼로 확장(Taylor series 고차 항 고려)이나 국소 가우시안 혼합(Local Gaussian Mixture) 등 다양한 방법으로 비선형성을 다룰 수 있다. 혼합 가우시안(Mixture of Gaussians) 접근은 주어진 분포를 다수의 가우시안 성분으로 나누어 표현한 다음, 각 성분에 대해 선형 근사를 하여 병렬적으로 필터링을 수행한다. 이 방법은 잡음 분포가 복잡한 형태이거나 비선형성이 심한 경우에도 비교적 유연하게 대처할 수 있지만, 성분의 수가 기하급수적으로 늘어날 수 있어 적절한 수합(merging) 과정을 둔다.

#### 대규모 상태 추정: 희소(sparse) 구조 활용

차량 군집 제어, 무인기 편대비행, 로보틱스의 SLAM 문제 등에서는 상태 차원이 매우 커질 수 있다. 예측과 보정 과정에서 대형 공분산 행렬 또는 정보 행렬을 다루는 일은 계산 복잡도를 폭증시킨다. 이 문제를 해결하기 위해서는 상태 벡터와 측정 간 연결이 희소(sparse)하게 나타나는 구조를 이용할 수 있다. 정보 필터나 그래프 최적화 형태로 문제를 구성하면, 희소 행렬 연산에 특화된 알고리즘(Cholesky 분해의 희소 버전 등)을 적용해 큰 상태공간을 더 효율적으로 처리한다.

#### 베이즈 필터와 최적 제어(Control) 간 연계

센서 퓨전에서 예측 단계는 보통 오프라인으로 주어진 모델을 통해 진행되지만, 실제로는 상태 추정과 제어가 밀접하게 연결되어 있다. 로봇이나 자율주행 차량에서는 제어 입력 $\mathbf{u}*k$가 단순한 외부 주어진 값이 아니라, 추정된 상태 $\hat{\mathbf{x}}*{k|k}$에 따라 결정된다. 이런 상호작용을 최적화하기 위해서는 확률적 모델 예측 제어(Model Predictive Control, MPC)나, Partially Observable Markov Decision Process(POMDP)와 같은 틀이 활용된다.

이런 구조에서는 예측 단계가 제어 전략을 반영하여, 보정 단계가 측정으로 필터링된 정보를 다시 제어기로 전달한다. 오차가 누적되면 제어가 보정된 상태 추정값을 근거로 다시 코스를 수정해 오차를 줄일 수 있고, 측정 또한 제어 모션에 따라 달라질 수 있다. 따라서 예측과 보정이 단순 반복되는 것 이상으로, 센서 퓨전과 제어는 상호 피드백 루프를 형성한다.

#### 결합 학습과 적응형 필터

동적 환경에서 시스템 모델이나 센서 특성이 시간에 따라 변하면, 고정된 $\mathbf{Q}\_k$와 $\mathbf{R}\_k$로는 최적 추정을 유지하기 어렵다. 이를 위해 적응형 필터(Adaptive Filter) 기법을 사용하여, 실시간으로 $\mathbf{Q}\_k$와 $\mathbf{R}\_k$를 추정하거나 업데이트한다. 예컨대, 센서 측정 잔차의 통계를 일정 창(window) 크기만큼 모아서, 그 분산이 커지면 $\mathbf{R}\_k$를 증가시키고, 줄어들면 감소시킨다. 또는 오차가 특정 패턴으로 증가할 때, 시스템 모델이 바뀌었다고 가정하고 $\mathbf{Q}\_k$를 재설정하여 상태 추정에서 불확실성을 더 크게 두는 식이다.

머신러닝 기법을 결합할 경우, 센서 데이터 패턴이나 외부 환경 상태(조도, 주행 속도, 충격 등)에 따라 동적으로 잡음 공분산을 추정하는 모델을 학습시킬 수 있다. 이때도 예측과 보정의 구조는 유지하되, 필터 내부 파라미터(잡음 공분산, 이득 등)가 학습 모델에 의해 변동된다. 이를 통해 고정된 필터 설정만으로는 대응하기 힘든 복잡한 실환경 변화에 더 유연하게 대처할 수 있다.

#### 안전성 검증: 포멀 메서드와 신뢰성(Dependability)

자율주행 등 안전성(Safety)이 매우 중요한 분야에서는, 예측-보정 알고리즘의 안정성과 극단적 상황에서의 성능을 사전에 검증해야 한다. 이를 위해 포멀 메서드(Formal Methods)를 일부 적용하거나, 극한 값 시험(Stressing Test) 시나리오를 준비해 필터가 폭주하지 않는지 확인한다. 센서가 동시에 노이즈가 커지는 상황, 시스템 모델이 잠시 달라지는 상황, 일부 센서가 일정 기간 신호를 아예 보내지 않는 상황 등을 시뮬레이션해 보고, 필터가 얼마나 로버스트하게 동작하는지 평가한다.

이 작업은 예측-보정 단계의 설계(특히 초기화와 에러 가정)부터 필터가 무너질 때 적절히 재시작하거나 경고를 생성하는 운영 프로토콜까지 전반에 걸쳐 이뤄진다. 즉 센서 퓨전 알고리즘만이 아니라, 상위 계층에서 모니터링과 페일세이프(fail-safe) 로직을 갖춤으로써 전체 시스템 신뢰도를 끌어올린다.

***

예측과 보정은 센서 퓨전의 가장 본질적인 틀이며, 이를 다양한 확률적·비확률적·그래프 기반 방법으로 확장할 수 있다. 실제 응용에서는 필터 정합성, 계산량, 로버스트성, 센서 특성, 시간 동기화, 제어와의 통합, 안전성 등 수많은 현실적 문제가 얽혀 있으므로, 이를 종합적으로 고려해야 한다. 센서 퓨전의 이론적 기초가 튼튼해야만 실제 로봇·자율주행·산업계 시스템에서 정확하고 안정적인 상태 추정을 달성할 수 있다.
