# 베이즈 추론의 개념

#### 베이즈 추론의 기본 아이디어

베이즈 추론(Bayesian inference)은 확률적 관점에서 미지의 매개변수나 잠재 변수에 대한 추론을 수행하는 이론적 틀이다. 전통적 빈도주의(Frequentist) 방식에서는 매개변수를 고정된 미지의 값으로 보고, 관측된 데이터에 대한 우도 함수를 최적화하여 추정치를 찾는다. 반면 베이즈 추론은 매개변수를 확률변수로 간주하고, 그 분포를 업데이트해 가면서 추론한다.

베이즈 추론에서는 관측 데이터를 통해 매개변수 분포를 갱신하는 과정이 핵심이 된다. 이를 수식으로 표현하면 다음과 같은 베이즈 정리를 사용한다.

$$
\begin{align} p(\mathbf{x} \mid \mathbf{z})  = \frac{p(\mathbf{z} \mid \mathbf{x}) , p(\mathbf{x})}{p(\mathbf{z})} \end{align}
$$

여기서

* $p(\mathbf{x})$는 사전확률(prior)이라 불리며, 데이터 $\mathbf{z}$를 관측하기 전 우리가 $\mathbf{x}$에 대해 갖고 있는 불확실성을 나타낸다.
* $p(\mathbf{z} \mid \mathbf{x})$는 우도(likelihood)라고 하며, $\mathbf{x}$가 주어졌을 때 우리가 실제로 $\mathbf{z}$를 관측할 가능성을 나타낸다.
* $p(\mathbf{z})$는 증거(evidence)라고 하며, $\mathbf{x}$에 관계없이 $\mathbf{z}$가 발생할 확률로서 정규화 상수 역할을 한다.
* $p(\mathbf{x} \mid \mathbf{z})$는 사후확률(posterior)이라 하며, 실제로 데이터 $\mathbf{z}$를 관측한 이후 $\mathbf{x}$에 대해 갖게 되는 새로운 확률 분포다.

이 사후확률 분포가 베이즈 추론에서 가장 중요한 양이다. 센서퓨전 관점에서는 센서로부터 측정된 다양한 관측값(데이터) $\mathbf{z}$에 근거하여 상태(예: 물체 위치, 속도) $\mathbf{x}$의 확률분포를 점진적으로 업데이트해 나가는 과정으로 볼 수 있다.

#### 베이즈 정리와 조건부 확률

베이즈 정리는 고등학교 수학에서 배우는 조건부 확률의 정리를 확장한 형태이다. 조건부 확률 $p(A \mid B)$는 “사건 $B$가 발생했을 때 사건 $A$가 발생할 확률”로 정의된다. 이를 $\mathbf{x}$, $\mathbf{z}$라는 무작위변수로 표현하면

$$
\begin{align} p(\mathbf{x} \mid \mathbf{z})  = \frac{p(\mathbf{x}, \mathbf{z})}{p(\mathbf{z})} \end{align}
$$

이 식에서 분자 $p(\mathbf{x}, \mathbf{z})$는 $\mathbf{x}$와 $\mathbf{z}$가 동시에 발생하는 결합확률이며, 분모 $p(\mathbf{z})$는 $\mathbf{z}$가 발생하는 주변확률이다. 결합확률 $p(\mathbf{x}, \mathbf{z})$는 아래와 같이 곱셈 정리를 이용해 표현할 수 있다.

$$
\begin{align} p(\mathbf{x}, \mathbf{z})  = p(\mathbf{z} \mid \mathbf{x}) , p(\mathbf{x}) \end{align}
$$

이를 대입하면 베이즈 정리가 된다.

#### 사전확률과 사후확률의 관계

베이즈 추론에서 사전확률(prior)은 매우 중요한 역할을 한다. 사전확률 $p(\mathbf{x})$는 측정 데이터가 전혀 없거나 매우 제한적일 때, $\mathbf{x}$에 대한 사전적인 믿음을 반영한다. 예를 들어 특정 물체가 지표면 근처에 위치할 확률이 높다는 경험적 지식을 사전확률로 설정할 수도 있다.

새로운 관측 데이터 $\mathbf{z}$가 주어졌을 때, 이는 우도 $p(\mathbf{z} \mid \mathbf{x})$를 통해 반영되고, 그 결과 사후확률 $p(\mathbf{x} \mid \mathbf{z})$가 계산된다. 관측 데이터가 많아지면 사전확률은 점점 사후확률에 의해 갱신되고, 궁극적으로 많은 양의 데이터가 확보되면 사전확률이 갖는 영향력은 작아진다.

#### 베이즈 추론의 핵심 구성 요소

베이즈 추론에서 중요한 구성 요소는 크게 사전확률, 우도, 사후확률, 그리고 증거다. 센서퓨전 시스템에서 각 센서로부터 획득된 데이터는 우도의 형태로 모델링된다. 센서 모델이 정교할수록 우도를 정확하게 표현할 수 있다. 또한 시스템 설계자는 특정 상황에 대한 사전 지식이나 경험 등을 사전확률로 정의할 수 있다. 이를 통해 데이터가 충분하지 않을 때도 어느 정도 합리적인 추론을 수행할 수 있다.

아래는 센서퓨전 시스템에서 베이즈 추론이 어떻게 센서간 정보를 결합하는지 직관적으로 나타내는 간단한 예시 구조를 mermaid로 나타낸 것이다.

{% @mermaid/diagram content="graph LR
X("숨겨진 상태 \mathbf{x}") --> Z1("센서 1 측정 \mathbf{z}\_1")
X("숨겨진 상태 \mathbf{x}") --> Z2("센서 2 측정 \mathbf{z}\_2")" %}

위 그림에서 숨겨진 상태 $\mathbf{x}$가 두 개의 센서 1, 2를 통해 각각 $\mathbf{z}\_1, \mathbf{z}\_2$로 측정된다고 할 때, 베이즈 정리에 기반한 사후확률은 다음과 같이 표현할 수 있다.

$$
\begin{align} p(\mathbf{x} \mid \mathbf{z}\_1, \mathbf{z}\_2)  = \frac{p(\mathbf{z}\_1, \mathbf{z}\_2 \mid \mathbf{x}) , p(\mathbf{x})}{p(\mathbf{z}\_1, \mathbf{z}\_2)} \end{align}
$$

이는 $p(\mathbf{z}\_1, \mathbf{z}\_2 \mid \mathbf{x}) = p(\mathbf{z}\_1 \mid \mathbf{x}) , p(\mathbf{z}\_2 \mid \mathbf{x})$와 같은 조건부 독립 가정 등을 적용할 수도 있으며, 구체적인 센서 모델에 따라 달라진다.

#### 센서퓨전과 베이즈 추론의 시너지

센서퓨전은 여러 종류의 센서나 여러 위치에 분산된 동일 센서 등으로부터 들어오는 측정값을 하나의 추론 결과로 통합하는 과정이다. 베이즈 추론은 이러한 통합 과정에서 각 측정값에 대한 불확실성을 확률적으로 해석하고, 사전확률과 우도를 활용하여 새로운 데이터가 들어올 때마다 시스템 상태에 대한 추정치를 갱신하는 강력한 수단을 제공한다.

특히 동적 시스템에서의 센서퓨전은 시간에 따라 변화하는 상태 $\mathbf{x}\_t$와 측정 $\mathbf{z}\_t$를 연속적으로 업데이트해야 하므로, 베이즈 필터(Bayesian filter)의 개념이 중요해진다. 예를 들어 칼만 필터(Kalman filter)는 가우시안 분포를 이용한 선형 베이즈 필터이고, 입자 필터(Particle filter)는 비가우시안 분포나 비선형 모델에서도 동작 가능한 시뮬레이션 기반 베이즈 필터다.

#### 확률분포의 표현: 사전분포 선택

베이즈 추론에서 사전분포를 어떻게 설정하느냐에 따라 추론 결과가 크게 달라질 수 있다. 센서퓨전의 상황에서는 측정 데이터나 시스템 특성을 반영하여 다양한 분포를 사용할 수 있다. 가우시안(정규) 분포를 예로 들면, 운동 모델이 선형 가우시안 형태를 가정할 경우, 특히 칼만 필터와 같은 분석적 해를 얻을 수 있는 장점이 있다.

만약 복잡한 시스템으로 인해 특정 값 근처에서만 부분적으로 밀도가 높고, 다른 영역에서는 상대적으로 낮은 분포가 예상된다면 혼합 가우시안(Mixture of Gaussians) 같은 형태의 사전분포를 고려할 수도 있다. 또는 사전 지식이 거의 없을 때는 균등 분포(Uniform distribution)를 사용하여 “정보가 전혀 없는 상태”를 반영하기도 한다.

#### 우도 함수의 중요성

센서퓨전에서 “센서 모델”은 측정값 $\mathbf{z}$가 실제 상태 $\mathbf{x}$와 어떻게 관계되어 있는지를 나타내는 함수로 볼 수 있다. 이는 수학적으로 우도 $p(\mathbf{z} \mid \mathbf{x})$에 해당하며, 각 센서가 갖는 측정 원리나 노이즈 특성을 반영한다. 예를 들어 레이더 센서라면 신호의 전파 거동과 반사 특성, GPS라면 위성으로부터의 전파 지연과 측정 오차 모델이 우도 함수에 들어간다.

만약 센서가 주는 정보에 잡음이 매우 크다고 판단되면, 우도 함수를 분산이 큰 가우시안 형태로 설정할 수도 있다. 반대로 고정밀 센서라면 분산이 작은 형태로 우도를 모델링하여 정확도를 높일 수 있다.

#### 사후분포 해석

사후분포 $p(\mathbf{x} \mid \mathbf{z})$는 “실제로 데이터 $\mathbf{z}$를 관측한 뒤, $\mathbf{x}$의 가능성을 어떻게 다시 평가할 것인가”에 대한 종합적인 확률분포다. 만약 $\mathbf{x}$가 벡터로 이루어진 고차원 공간이라면, 사후분포 역시 같은 차원의 확률분포가 된다. 베이즈 추론에서는 이 사후분포로부터 다양한 정보(최빈값, 평균, 분산, 신뢰구간 등)를 추출하여 의사결정에 활용한다.

일부 경우에는 사후분포를 직접 계산하기가 매우 어려울 수 있다. 이때는 마르코프 연쇄 몬테카를로(MCMC) 기법이나 입자 필터와 같이 시뮬레이션 기반으로 사후분포를 근사한다. 센서퓨전에서도 비선형, 비가우시안 문제에 자주 부딪히므로 이러한 몬테카를로 접근이 널리 쓰인다.

#### 센서퓨전에 있어서 베이즈 추론의 장점

베이즈 추론의 장점을 센서퓨전에 간략히 요약하면, (1) 여러 센서로부터 들어오는 불확실하고 잡음이 많은 데이터를 확률적으로 결합하여 보다 정교한 추정이 가능하고, (2) 사전 지식을 명시적으로 통합하여 초기에 데이터가 부족한 상황에서도 합리적인 추론을 수행할 수 있으며, (3) 시간이 지남에 따라 새로운 데이터가 들어올 때마다 분포가 순차적으로 업데이트되어 동적 환경에서도 유연하게 적용 가능하다는 점이다.

#### 고차원 문제에서의 베이즈 추론

실제 센서퓨전 문제에서 상태 공간이 매우 커질 수 있다. 예를 들어 로봇의 위치, 자세(Orientation), 조인트 각도, 속도, 가속도 등 많은 변수를 동시에 추론해야 한다면, 각각을 매개변수로 가지는 고차원 확률공간에서의 베이즈 추론을 수행해야 한다.

고차원 공간에서는 사전분포, 우도함수의 정의가 매우 복잡해지고, 사후분포를 직접 구하기도 어려워진다. 이러한 문제를 해결하기 위해서는

* 계층적 베이즈 모델(Hierarchical Bayesian model)
* MCMC, 입자 필터 같은 시뮬레이션 기반 샘플링 기법
* 뉴럴 네트워크를 통한 근사 베이즈 추론(Variational inference 등)

이 활용될 수 있다.

고차원일수록 관측 데이터 간 상호 독립 가정을 성립시키기 어렵고, 센서들이 각기 다른 종류의 잡음을 가지므로, 센서 모델(우도 함수)의 설계가 매우 중요한 역할을 한다. 또한 계산 복잡도를 줄이기 위해 적절한 가정이나 희생적인 단순화가 필요할 수 있다. 예컨대 일부 필터 기법은 오차 공분산 행렬을 특정 구조로 가정함으로써 연산량을 줄이는 식의 방법을 택하기도 한다.

#### 베이즈 추론과 최소제곱 해석의 관계

베이즈 추론은 최소제곱(LS: Least Squares) 해석과도 밀접한 관련이 있다. 예를 들어 가우시안 노이즈를 가정하면, 사후확률을 최대화하는 점추정(MAP: Maximum A Posteriori)은 최소제곱 해와 동일한 형태가 될 수 있다. 단, 베이즈 추론은 결과가 점추정에 그치지 않고 전체 분포를 제공하기 때문에, 불확실성까지 함께 추론할 수 있다는 점이 매우 중요한 차이점이다.

즉, 최소제곱 방식에서 얻어지는 해가 베이즈 추론의 MAP와 동일해 보일 수 있으나, 센서퓨전에서 중요한 것은 분산 등 불확실성을 함께 추론하는 능력이다. 실제로 로봇의 위치 추정을 할 때 오차공분산을 고려해야 로봇이 어느 범위 내에 있을 확률이 높은지를 판단할 수 있고, 이는 베이즈 추론으로부터 자연스럽게 도출된다.

#### 동적 시스템에서의 베이즈 필터

센서퓨전은 단순히 고정된 시점에서의 상태 추정뿐 아니라, 시간에 따라 변화하는 상태를 연속적으로 추적해야 하는 경우가 많다. 이를 위해 베이즈 추론의 순차적 업데이트가 활용된다. 동적 시스템에서 상태를 $\mathbf{x}\_t$, 관측값을 $\mathbf{z}\_t$라고 할 때, 베이즈 필터의 기본 구조는 다음과 같은 베이즈 정리의 재귀적 형태로 표현할 수 있다.

$$
\begin{align} p(\mathbf{x}\_t \mid \mathbf{z}\_t)  = \frac { p(\mathbf{z}\_t \mid \mathbf{x}\_t) , p(\mathbf{x}*t \mid \mathbf{z}*{t-1}) } { p(\mathbf{z}*t \mid \mathbf{z}*{t-1}) } \end{align}
$$

여기서 $p(\mathbf{x}*t \mid \mathbf{z}*{t-1})$는 직전 시간까지의 관측 $\mathbf{z}*{t-1} = {\mathbf{z}\*1, \dots, \mathbf{z}*{t-1}}$이 주어졌을 때의 상태 $\mathbf{x}\_t$에 대한 사전확률이다. 이는 동적 모델을 통해

$$
\begin{align} p(\mathbf{x}*t \mid \mathbf{z}*{t-1})  = \int  p(\mathbf{x}*t \mid \mathbf{x}*{t-1}) , p(\mathbf{x}*{t-1} \mid \mathbf{z}*{t-1}) , d \mathbf{x}\_{t-1} \end{align}
$$

와 같이 계산된다. 이를 일반적으로 “예측 단계”라 부른다. 이후 “갱신 단계”에서 관측 $\mathbf{z}\_t$를 받아 베이즈 정리를 적용하여 사후확률 $p(\mathbf{x}\_t \mid \mathbf{z}\_t)$를 구한다.

#### 마르코프 가정과 동적 모델

베이즈 필터의 핵심 가정 중 하나는 상태 변수가 1차 마르코프 성질을 만족한다는 점이다. 즉, $p(\mathbf{x}*t \mid \mathbf{x}*{t-1}, \mathbf{x}\_{t-2}, \dots) = p(\mathbf{x}*t \mid \mathbf{x}*{t-1})$와 같은 가정을 사용하면, 상태 전이 확률 $p(\mathbf{x}*t \mid \mathbf{x}*{t-1})$를 통해 시간 전이(혹은 예측)가 이루어진다.

센서퓨전에서는 로봇의 운동 모델, 물체의 이동 모델 등 다양한 형태의 동적 모델을 설정할 수 있다. 예컨대 선형 가우시안 모델은

$$
\begin{align} \mathbf{x}\_t  = \mathbf{F}*t , \mathbf{x}*{t-1} + \mathbf{w}\_t \end{align}
$$

와 같이 표현할 수 있으며, $\mathbf{w}\_t$는 가우시안 잡음을 따르는 항이다. 이때 동적 모델의 행렬 $\mathbf{F}\_t$와 잡음 공분산이 문제에 따라 달라지며, 칼만 필터 같은 선형 베이즈 필터를 적용할 수 있다.

#### 측정 모델과 우도 갱신

마찬가지로 관측 모델 $p(\mathbf{z}\_t \mid \mathbf{x}\_t)$는 센서가 상태를 어떻게 측정하는지를 나타낸다. 예를 들어 선형 가우시안 모델에서는

$$
\begin{align} \mathbf{z}\_t  = \mathbf{H}\_t , \mathbf{x}\_t + \mathbf{v}\_t \end{align}
$$

와 같이 표현하며, $\mathbf{v}\_t$ 역시 가우시안 잡음이라고 가정한다. 그러면 우도는

$$
\begin{align} p(\mathbf{z}\_t \mid \mathbf{x}\_t)  = \mathcal{N} !\bigl( \mathbf{z}\_t \mid \mathbf{H}\_t , \mathbf{x}\_t, \mathbf{R}\_t \bigr) \end{align}
$$

와 같은 정규분포 형태가 된다. 여기서 $\mathbf{R}\_t$는 측정 잡음 공분산 행렬이다. 이는 측정 모델을 단순화한 예시에 불과하며, 실제 센서퓨전 상황에서는 비선형 관계식이나 비가우시안 노이즈 모델을 사용할 수 있다.

#### 칼만 필터와 베이즈 추론

칼만 필터(Kalman Filter)는 선형 가우시안 모델을 전제로 하는 베이즈 필터의 대표적인 예다. 칼만 필터는 사후분포로부터 얻을 수 있는 평균과 공분산을 순차적으로 업데이트한다. 실제 계산에서는 전체 분포 함수를 직접 다루지 않고, 가우시안 분포의 파라미터(평균 벡터, 공분산 행렬)만을 추적한다.

칼만 필터 알고리즘은 크게 두 단계로 구성된다.

예측 단계:

$$
\begin{align} \mathbf{\hat{x}}*{t|t-1}  &= \mathbf{F}*t , \mathbf{\hat{x}}*{t-1|t-1} \ \mathbf{P}*{t|t-1}  &= \mathbf{F}*t ,\mathbf{P}*{t-1|t-1},\mathbf{F}\_t^\mathsf{T} + \mathbf{Q}\_t \end{align}
$$

갱신 단계:

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

이때 $\mathbf{\hat{x}}*{t|t-1}$는 시점 $t$에서의 상태에 대한 예측 추정값, $\mathbf{\hat{x}}*{t|t}$는 관측 $\mathbf{z}*t$까지 반영된 사후추정값이다. $\mathbf{P}*{t|t-1}$, $\mathbf{P}\_{t|t}$는 각각 예측과 갱신 이후의 공분산 행렬이다. $\mathbf{Q}\_t$는 동적 모델에서의 시스템 노이즈 공분산, $\mathbf{R}\_t$는 측정 잡음 공분산을 의미한다.

이 알고리즘은 실제로는 베이즈 추론의 선형 가우시안 케이스에 해당하며, 사후확률은 가우시안 형태를 유지하게 된다. 따라서 사후분포의 평균과 공분산만을 갱신하면 되므로 계산 효율이 높다.

#### 확장 칼만 필터와 비선형 관측 모델

현실 세계의 센서퓨전 상황에서는, 예를 들어 로봇의 자이로나 GPS 데이터를 모델링할 때 상태와 관측 사이의 관계가 비선형인 경우가 많다. 이때 확장 칼만 필터(EKF: Extended Kalman Filter)는 1차 테일러 전개를 이용하여 비선형 함수를 선형 근사함으로써 칼만 필터의 골격을 유지한다.

가령, 동적 모델이

$$
\begin{align} \mathbf{x}*t  = f(\mathbf{x}*{t-1}, \mathbf{w}\_t) \end{align}
$$

이고, 관측 모델이

$$
\begin{align} \mathbf{z}\_t  = h(\mathbf{x}\_t, \mathbf{v}\_t) \end{align}
$$

일 때, EKF는 $f$, $h$를 각각 현재 추정치 부근에서 선형화한다. 예측 단계와 갱신 단계의 수식은 칼만 필터와 유사하지만, $\mathbf{F}\_t$와 $\mathbf{H}\_t$ 행렬을 아래와 같이 야코비으로 대체한다.

$$
\mathbf{F}*t &= \left. \frac{\partial f(\mathbf{x}, \mathbf{w})}{\partial \mathbf{x}} \right|*{\mathbf{x} = \mathbf{\hat{x}}*{t-1|t-1}, \mathbf{w} = \mathbf{0}}
\\
\mathbf{H}*t &= \left. \frac{\partial h(\mathbf{x}, \mathbf{v})}{\partial \mathbf{x}} \right|*{\mathbf{x} = \mathbf{\hat{x}}*{t|t-1}, \mathbf{v} = \mathbf{0}}
$$

EKF는 간단하고 계산 효율이 높지만, 비선형성이 심한 경우 오차가 누적되거나 불안정성이 나타날 수 있다. 이런 상황에서는 언센티드 칼만 필터(UKF)나 입자 필터 등 다른 형태의 비선형 베이즈 필터가 고려된다.

#### 언센티드 칼만 필터

언센티드 칼만 필터(UKF: Unscented Kalman Filter)는 무향 샘플링(unscented transform)을 통해 비선형 함수를 직접 선형화하지 않고, 적절히 선택된 샘플(시그마 포인트)을 함수에 통과시켜 평균과 공분산을 추정한다. 이는 1차 테일러 전개로 인한 선형화 오차를 줄일 수 있는 방법이다.

UKF에서 핵심은 시그마 포인트(sigma points)를 생성하고, 이를 통해 예측과 갱신을 수행한다는 점이다. 즉, 상태분포를 대표하는 극소수의 포인트만을 사용하여, 이 포인트들을 비선형 함수에 입력한 결과로부터 분포의 변화를 추정한다. 수식적으로는 칼만 필터와 유사한 형태를 유지하나, 시스템 노이즈과 측정 잡음을 합쳐서 확장된 상태 벡터를 구성하기도 하며, 시그마 포인트를 어떻게 배치하느냐에 따라 알고리즘의 정확도와 안정성이 영향을 받는다.

#### 입자 필터

입자 필터(Particle Filter)는 비가우시안, 비선형 상황에서 매우 일반적으로 사용되는 시뮬레이션 기반 베이즈 필터다. 가우시안 분포와 같은 특정 확률 분포의 형태를 가정하지 않고, 랜덤 샘플(입자)들의 집합으로 사후분포를 근사한다.

시간 순서 $t$에서의 사후분포 $p(\mathbf{x}\_t \mid \mathbf{z}\_t)$를 표현하기 위해,

$$
\begin{align} p(\mathbf{x}\_t \mid \mathbf{z}*t)  \approx \sum*{i=1}^{N} w\_t^{(i)} , \delta\bigl(\mathbf{x}\_t - \mathbf{x}\_t^{(i)}\bigr) \end{align}
$$

와 같이 $N$개의 입자 ${\mathbf{x}*t^{(i)}}*{i=1}^N$와 가중치 ${w\_t^{(i)}}*{i=1}^N$를 사용한다. 여기서 $\delta(\cdot)$는 디랙 델타 함수다. 입자 필터는 예측 단계에서 $\mathbf{x}*{t-1}^{(i)}$를 동적 모델에 따라 시뮬레이션하여 후보 입자를 생성하고, 갱신 단계에서 관측값 $\mathbf{z}\_t$에 대한 우도를 계산하여 가중치를 업데이트한 뒤 정규화한다. 가중치가 편중되는 현상을 방지하기 위해 리샘플링(resampling) 과정을 수행하기도 한다.

입자 필터는 분포의 형태를 자유롭게 표현할 수 있어 매우 일반적인 상황에 적용 가능하지만, 필요한 입자 수가 많아질수록 계산량이 커진다. 이는 고차원 상태 공간에서 특히 두드러진 문제다.

#### 샘플링 기반 추론과 MCMC

센서퓨전 문제에서 다루는 상태 공간이 매우 복잡하고, 관측 모델도 비선형일 수 있으며, 동적 모델 역시 단순 가우시안이 아닌 경우가 많다. 이럴 때는 사후분포를 닫힌형태로 계산하기 어렵다. 마르코프 연쇄 몬테카를로(MCMC: Markov Chain Monte Carlo) 기법은 임의의 후보 해를 확률적으로 탐색하는 과정을 통해 사후분포를 샘플링한다.

대표적인 알고리즘인 Metropolis-Hastings, Gibbs Sampling 등을 활용하면 복잡한 사후분포에서 샘플을 효율적으로 추출하고, 이를 통해 각종 추정값이나 불확실성 정보를 얻어낼 수 있다. 다만, 온라인 센서퓨전(실시간 추론)에서 MCMC를 사용할 경우, 연산시간에 대한 제한을 고려해야 한다. 이 때문에 실시간 성능이 매우 중요한 경우에는 입자 필터나 EKF, UKF처럼 재귀적 구조로 업데이트가 가능한 베이즈 필터가 선호될 때가 많다.

#### 고차원과 희소 데이터 환경

센서퓨전에서 상태가 매우 고차원이고, 측정 데이터가 그에 비해 충분치 않다면, 베이즈 추론이 어려워질 수 있다. 관측값이 적은 상태에서 추론해야 하는 경우, 사전분포의 역할이 매우 커진다. 즉, 현실적인 사전 지식을 잘 설정하거나, 문제의 차원을 축소(예: 주성분 분석, 상태공간 축소 기법)하는 방안이 모색된다.

또한 센서 종류가 많아도 각 센서가 제공하는 정보가 희소하거나 잡음이 큰 경우, 측정 데이터에만 의존하는 것보다 사전 지식을 적절히 활용하는 편이 전체 추정 성능을 높일 수 있다. 예컨대 도로 주행 로봇이라면, 로봇이 갈 수 있는 공간(지도 정보)이 제한적이라는 점을 사전확률로 설정할 수 있다.

#### 센서 고장 및 이상치(outlier) 처리

센서퓨전 환경에서 중요한 과제 중 하나는 센서 고장 또는 이상치의 영향을 최소화하는 것이다. 어떤 센서가 오작동해서 전혀 신뢰할 수 없는 값을 주거나, 일시적으로 측정값이 극단적으로 튀는 상황이 발생하면, 베이즈 추론 과정에서 우도가 지나치게 왜곡될 수 있다.

이를 해결하기 위해서는 – 비정상 측정값에 대한 로버스트(robust)한 우도 모델 설계 – 사전확률 및 동적 모델과 상충하는 측정값은 가중치를 낮추는 기법 – 센서 상태를 추가 변수로 둬서, 센서가 정상인지 비정상인지에 대한 베이즈 추론을 병행 과 같은 방법이 활용된다. 예컨대 혼합 가우시안 노이즈 모델을 사용하면, 이상치가 발생했을 때 그 측정값을 다른 모드로 분리해 처리하기가 용이하다.

#### 비모수적/비모델적 접근

베이즈 추론을 적용할 때, 모든 모형을 사전에 명시하지 않아도 되는 방법들도 있다. 예를 들어, 가우시안 공정(Gaussian Process) 모델이나 커널 밀도 추정 등을 통해, 상태–측정 관계를 경험적으로 학습할 수 있다. 이들은 관측된 데이터로부터 직접 분포를 추정하므로, 복잡한 현상을 직접 수식으로 규정하기 어렵거나 시간이 오래 걸리는 경우에 유리할 수 있다.

다만 이러한 접근은 일반적으로 대규모의 학습 데이터가 필요하고, 계산량이 많아질 수 있다. 센서퓨전 문제에서는 여러 센서 타입별로 모델 학습을 해야 하므로, 실제 적용 시에는 적절한 사전 지식과 결합하거나, 온라인 학습 기법을 도입해 추론과 학습을 동시에 진행하기도 한다.

#### 베이즈 추론의 전산적 구현

베이즈 추론을 실제로 구현할 때는 문제 차원, 센서 특성, 실시간성 요구 등에 따라 다양한 전략이 있다. 예컨대

* 작고 단순한 문제: EKF, UKF 등
* 비선형, 중간 규모: 입자 필터
* 매우 복잡 또는 오프라인 분석: MCMC, Variational Inference

같은 방식으로 선택할 수 있다. 실무에서는 여러 알고리즘을 혼합하여 사용하는 경우도 잦다.

센서퓨전 소프트웨어 프레임워크나 라이브러리는 대체로 이런 알고리즘을 모듈화하여 제공한다. 예컨대 ROS(Robot Operating System)에서도 로봇 상태 추정용 패키지를 제공하며, MATLAB, Python 등에서도 칼만 필터, 파티클 필터, MCMC 등의 구현 라이브러리를 쉽게 구할 수 있다.

#### 계층적 베이즈 모델

센서퓨전에서 상태를 단순한 확률변수로 보는 것이 아니라, 복수의 레벨(계층)로 구조화하여 추정해야 하는 경우가 많다. 예를 들어 로봇의 위치 추정을 넘어, 로봇 주변 환경에 대한 지도를 동시에 학습해야 하거나, 센서 파라미터(캘리브레이션 정보)까지 포함해 추론하는 시스템을 고려할 수 있다. 이를 계층적 베이즈 모델(Hierarchical Bayesian Model)로 접근하면,

$$
\begin{align} p(\mathbf{x}, \mathbf{\theta} \mid \mathbf{z})  = \frac{p(\mathbf{z} \mid \mathbf{x}, \mathbf{\theta}) , p(\mathbf{x} \mid \mathbf{\theta}) , p(\mathbf{\theta})}{p(\mathbf{z})} \end{align}
$$

와 같은 형태로 해석할 수 있다. 여기서 $\mathbf{x}$는 실제 관측하고 싶은 상태(예: 로봇의 위치, 환경 변수 등), $\mathbf{\theta}$는 더 상위 계층에서 통제되는 하이퍼 파라미터(예: 센서 잡음 모델의 파라미터, 맵 구조에 대한 파라미터, 로봇 동역학 파라미터 등)를 나타낸다. 계층적 베이즈 모델은 복잡한 구조적 정보를 하나의 단일 분포로 묶어내므로, 센서퓨전 시스템에서 센서 고장, 동적 모델 변동, 환경 변화 등을 유연하게 반영할 수 있다.

#### 베이즈 네트워크와 마르코프 랜덤 필드

센서퓨전 문제를 확장하면, 상태와 관측 사이의 확률적 의존성을 베이즈 네트워크(Bayesian Network)나 마르코프 랜덤 필드(Markov Random Field)로 나타낼 수 있다. 베이즈 네트워크는 방향성 에지로 조건부의존관계를 표현하고, 마르코프 랜덤 필드는 무방향 그래프 구조로 이웃 노드 간 상호작용을 나타낸다.

예컨대 시간에 따른 로봇 상태를 일련의 노드로 두고, 각 노드가 이전 노드와 관측 노드들에 의해 결정되는 형태로 모델링하면 숨겨진 마르코프 모델(Hidden Markov Model)이나 동적 베이즈 네트워크(Dynamic Bayesian Network)를 얻을 수 있다. 이 구조화된 표현을 사용하면, 센서퓨전 알고리즘이 그래프 탐색 혹은 메시지 전달(Message Passing)을 통해 순차적으로 상태 추정을 수행할 수 있다.

#### 팩터 그래프와 Loopy Belief Propagation

팩터 그래프(Factor Graph)는 복잡한 확률분포를 변수 노드와 팩터 노드로 분리해 나타내는 방식이다. 예를 들어 로봇 위치 추정 문제에서 변수 노드는 로봇의 상태(또는 지도 정보)가 되고, 팩터 노드는 상태 간 관계(동적 모델)나 센서 관측 모델 등을 의미한다.

팩터 그래프 상에서의 베이즈 추론은 “Belief Propagation”이라는 메시지 전달 방식으로 구현될 수 있다. 만약 팩터 그래프가 고리(사이클)를 갖는다면(Loopy Factor Graph), 근사 알고리즘인 Loopy Belief Propagation을 적용하여 반복적으로 추정치를 갱신한다. 이는 SLAM 문제나 대규모 센서 네트워크에서 자주 등장한다.

특히 Graph-SLAM과 같은 기법은 로봇이 이동하면서 얻은 관측(예: 위치, 랜드마크)들을 노드와 엣지로 구성해, 전체 궤적과 지도에 대한 베이즈 추론을 동시에 수행한다. 이때 그래프 최적화 문제로 귀결되며, 예를 들어 가우시안 근사하에서는 스파스 행렬 연산기법(Cholesky 분해 등)을 통해 대규모 문제를 빠르게 풀 수 있다.

#### 정보 필터와 분산 센서퓨전

센서가 여러 대 분산되어 있거나, 로봇들이 멀티 로봇 시스템을 구성할 때, 모든 센서 데이터를 한곳에 모아 추정하기가 어려울 수 있다. 이때 정보 필터(Information Filter) 형태로 알고리즘을 구성하면, 상태 공분산 행렬 대신 정보 행렬(공분산의 역행렬)을 유지하므로, 센서 정보가 추가될 때 단순한 행렬의 덧셈 연산으로 업데이트가 가능하다.

이 방식은 여러 센서 노드(또는 로봇)가 각각 독립적으로 정보를 업데이트한 뒤, 서로 통신을 통해 정보 행렬과 정보 벡터를 합침으로써 전체 상태 추정을 일원화할 수 있다는 장점이 있다. 이를 분산 베이즈 추론(Distributed Bayesian Inference)이라 부를 수도 있으며, 대규모 센서 네트워크에서 수평적으로 확장하기에 적합하다.

#### 센서퓨전에서의 Smoothing

센서퓨전은 현재 시점 상태 추정뿐 아니라, 이전 시점들에 대한 상태를 다시 개선(Smoothing)할 수도 있다. 예컨대 RO(Dead Reckoning) 기반으로 추정했던 과거 위치를, 시간이 지나 새로 들어온 센서 데이터를 활용해 보정할 수 있다. 이를 베이즈 추론 관점에서 보면, 과거 시점의 사후분포 $p(\mathbf{x}*t \mid \mathbf{z}t)$를 이후에 관측된 $\mathbf{z}{t+1}, \mathbf{z}*{t+2}, \dots$ 등을 통해 다시 업데이트하는 과정이다.

칼만 필터 계열에서는 RTS(Rauch–Tung–Striebel) Smoother가 고전적 방법으로, 순방향 필터링 결과를 저장해두었다가 역방향으로 최적화하는 방식을 사용한다. 이 기법 역시 가우시안 선형 모델에서는 닫힌형태 해를 얻을 수 있다. 비선형 상황에서 EKF Smoother, UKF Smoother 등의 변형이 존재하며, 입자 필터에서도 Forward–Backward 기법으로 확률을 추정할 수 있다.

#### 고정 지연 필터와 고정 구간 스무딩

실시간으로 동작해야 하는 센서퓨전 시스템에서, 무한히 과거의 상태까지 모두 다시 보정하기는 어려우므로, 일정 길이의 시간 구간에 대해서만 스무딩을 적용하기도 한다. 이를 Fixed-Lag Smoother라고 부른다. 예컨대 최근 10초 동안의 이동 경로는 정밀하게 재추정하되, 10초 이전의 상태는 확정된 것으로 간주하고 더 이상 업데이트하지 않는 식이다. 센서퓨전 시스템에선 통신 지연, 측정 지연, 누락된 데이터 등이 수 초나 수십 초 단위로 발생할 수 있으므로, 고정 지연 필터는 실무에서 상당히 유용하다.

#### 데이터 어소시에이션

여러 개의 센서가 동시에 물체나 환경을 관측할 때, 어떤 관측이 어떤 물체(또는 어떤 특성)에 해당하는지를 식별하는 문제가 발생한다. 이를 데이터 어소시에이션(Data Association) 문제라고 한다. 베이즈 추론에서는 관측값과 잠재 상태의 매칭 확률을 고려해, 가장 그럴듯한 매칭을 찾거나(최대우도 매칭), 불확실성을 포섭하는 확률적 매칭을 수행할 수 있다.

다중 표적 추적 문제에서는 여러 표적(목표물)이 있을 때, 각 센서 관측이 어떤 표적에 해당하는지 결정해야 한다. 이때 베이즈 추론을 적용하면, 각 표적 상태에 대한 사후확률과 관측값에 대한 우도 등을 종합적으로 계산하여, 어떤 관측이 어느 표적과 관련 있는지 결정을 내린다. 확률적 알고리즘(예: 다중 가설 추적(MHT), JPDAF 등)이 널리 사용된다.

#### 센서 캘리브레이션과 베이즈 추론

센서퓨전 정확도를 높이기 위해서는 각 센서의 오차 특성이나 파라미터(편향, 스케일 팩터 등)를 정교하게 보정(캘리브레이션)해야 한다. 이를 베이즈 관점으로 접근하면, 센서 파라미터 역시 확률변수로 두고, 관측 데이터를 통해 추론하면서 동시에 상태(예: 로봇 위치)까지 함께 추정할 수 있다.

예컨대 카메라 내·외부 파라미터, IMU(관성측정장치)의 편향, 바퀴 인코더의 스케일 팩터 등을 상태 벡터에 포함하거나 계층적 베이즈 모델에 추가해 놓고, 실제 움직임과 관측 차이를 토대로 점진적으로 업데이트하면, 센서가 조금씩 바뀌어도 추정 정확도를 유지할 수 있다.

#### 분산/협력적 센서퓨전

다수의 로봇이나 센서 노드가 협력하여 환경을 모니터링하거나 지도화(SLAM)를 할 때, 각 노드가 자신이 측정한 정보를 공유하면서 전체 상태에 대한 분산 베이즈 추론을 수행한다. 이를 구현하는 대표적 방법은 아래와 같이 정보 필터를 확장하거나, 그래프-SLAM에서 부분 그래프를 병합하는 식으로 가능하다.

협력 로봇 상황에서는 통신 지연, 패킷 손실, 계산 자원 분산 등이 추가로 고려되어야 한다. 그래프 구조가 매우 커지면 근사 기법을 통해 그래프를 분할하고, 지역적으로 최적화한 뒤 병합하는 절차를 거칠 수도 있다. 이때도 기본적인 접근은 “베이즈 추론의 재귀적 업데이트”라는 틀 안에서 이루어진다.

#### 변분 베이즈 추론

마르코프 연쇄 몬테카를로(MCMC) 방식이 계산 비용이 높을 때, 변분 베이즈 추론(Variational Bayesian Inference)을 활용하여 사후분포를 근사할 수 있다. 변분 추론은 사후분포를 특정 군(Family)의 분포로 두고, KL 발산(Kullback-Leibler Divergence)을 최소화하는 방향으로 최적화한다.

센서퓨전에서도 고차원 문제나 실시간성이 필요한 상황에서, MCMC 대신 변분 추론을 써서 비교적 빠른 근사 해를 얻을 수 있다. 예컨대 인공신경망(Variational Autoencoder 등)으로 분포를 파라미터라이즈할 수도 있고, 파라메트릭 모델을 가정하여 빠른 추론을 구현하기도 한다.

#### 실제 시스템 적용 예시

로봇이 카메라, 라이다(LiDAR), IMU를 동시에 사용해 자율주행을 할 때, 보통 비선형 베이즈 필터나 그래프 기반 SLAM 접근을 사용해 실시간으로 위치와 맵을 추정한다. 카메라로부터의 영상 특징점 매칭(Visual SLAM), 라이다로부터의 거리 데이터(Mapping), IMU로부터의 관성값을 모두 하나의 베이즈 프레임워크 안에서 결합한다.

GPS 신호가 들어오면 위치 추정에 추가로 결합하여 전 지구 좌표계에서의 위치 정확도를 유지할 수도 있다. 건물 안, 터널 등 GPS가 안 잡히는 곳에서도 IMU와 라이다 기반으로 추정을 이어가다가, 다시 GPS가 잡히면 전체 좌표계 기준으로 오차를 보정할 수 있다. 모든 과정은 사실상 동적 베이즈 네트워크 혹은 팩터 그래프 형태로 모델링되어, 순차적(또는 부분 스무딩) 방식으로 업데이트된다.

***

센서퓨전에서 베이즈 추론은 단순히 사후확률을 갱신하는 데 그치지 않고, 동적 모델, 센서 모델, 계층적 파라미터, 분산 추론, 이상치 처리, 데이터 어소시에이션 등 다양한 요소를 모두 확률적 틀로 통합하여 해결하는 강력한 수단이다. 필터 계열(칼만 필터, EKF, UKF, 입자 필터 등)부터 그래프 기반(SLAM, 정보 필터 등), 그리고 변분 추론이나 MCMC 같은 몬테카를로 접근까지, 문제의 특성과 요구사항에 맞춰 다양한 방식이 활용될 수 있다.
