파티클 필터(Particle Filter)란 무엇인가?: 비선형, 비가우시안 문제 해결 방법

Posted by

파티클 필터(Particle Filter)는 비선형 및 비가우시안 추정 문제를 해결하는데 사용되는 강력한 시퀀스 몬테카를로 방법(Sequential Monte Carlo method)으로, 이 방법은 로봇 위치 추정, 금융 시장 분석, 생물학적 시스템 모델링 등 다양한 분야에서 활용할 수 있다. 파티클 필터는 복잡하고 다양한 시스템의 상태를 추정하기 위해 ‘파티클(Particle)‘이라고 불리는 일련의 샘플을 사용한다. 이 포스트에서는 파티클 필터의 기초부터 시작하여 자세히 알아보고자 한다.

파티클 필터란?

파티클 필터는 복잡한 동적 시스템의 상태를 추정하기 위해 사용되는 베이지안 필터링(사전 확률(prior)과 측정된 데이터(likelihood)를 결합하여 사후 확률(posterior)을 계산하는 것) 방법 중 하나이다. ‘파티클’이라는 용어는 시스템의 가능한 상태를 나타내는 샘플이나 점을 의미하며, 이 방법은 특히 비선형성이나 비가우시안 특성을 가진 시스템에서 유용하여, 로봇 공학, 추적, 금융 분석 등 다양한 분야에서 적용하고 있다.

파티클 필터의 기본 원리

파티클 필터의 기본 아이디어는 시스템의 상태 공간을 대표하는 파티클이라는 샘플의 집합을 사용하여 시스템의 상태를 추정하는 것이다. 각 파티클은 시스템의 가능한 상태를 나타내며, 각각의 파티클에는 그 상태가 현재 관측된 데이터를 얼마나 잘 설명하는지를 나타내는 가중치가 할당된다.

파티클 필터의 기본 과정과 수식

  1. 초기화(Initialization): 시스템의 초기 상태에 대한 파티클들을 무작위로 생성한다. 이 초기 파티클들은 시스템의 가능한 초기 상태들을 대표하며, 초기 파티클들은 주로 사전 지식이나 초기 관측을 바탕으로 설정된다.
    시스템의 초기 상태를 대표하는 N개의 파티클 \{x_0^{(i)} \}_{i=1}^N 을 초기 분포 p(x_0)에서 샘플링 한다. 여기서 x_0^{(i)}i번째 파티클의 초기 상태를 나타낸다.
  2. 예측(Prediction): 각 파티클은 시스템 모델을 사용하여 다음 시점으로 전이된다. 이 과정에서 무작위성이 도입될 수 있으며, 이는 시스템의 불확실성과 과정 잡음을 모델링한다.
    각 시간 단계 t에서, 파티클들은 시스템 모델 f(x_{t-1}, u_t)을 사용하여 다음 상태로 전이 된다. 여기서 u_t는 시간 t에서의 입력(제어 입력 또는 외부 입력)이다.
    예측된 파티클: x_t^{(i)} = f(x_{t-1}^{(i)}, u_t) + w_t, 여기서 w_t는 노이즈 이다.
  3. 업데이트(Update): 새로운 관측 데이터가 도착하면, 각 파티클의 가중치가 업데이트된다. 가중치는 관측 모델을 사용하여 계산되며, 파티클이 새로운 관측 데이터를 얼마나 잘 설명하는지를 나타낸다. 관측치에 더 가까운 파티클은 더 높은 가중치를 받게 된다.
    새로운 관측 z_t가 주어지면, 각 파티클의 가중치 w_t^{(i)}를 업데이트 한다. 가중치는 관측 모델 g(x_t)과 실제 관측 z_t 사이의 일치도를 나타낸다.
    가중치 업데이트: w_t^{(i)} = w_{t-1}^{(i)}\cdot p(z_t \mid x_t^{(i)}) , 여기서 p(z_t \mid x_t^{(i)})i번째 파티클이 주어진 관측 z_t를 얼마나 잘 설명하는지에 대한 확률이다.
  4. 리샘플링(Resampling): 가중치에 기반하여 파티클들을 리샘플링한다. 이 과정에서 가중치가 낮은 파티클들은 제거되고, 가중치가 높은 파티클들은 복제된다. 이는 가중치가 낮은 파티클들이 미래의 상태 추정에 기여하지 않도록 하여 효율성을 높이는 역할을 한다.
  5. 추정(Estimation): 추정 과정에서는 각 시간 단계에서 파티클 필터가 생성한 파티클들과 그에 해당하는 가중치를 바탕으로 시스템의 상태를 추정한다. 이때, 파티클들의 가중치는 해당 파티클이 주어진 데이터를 얼마나 잘 설명하는지를 나타내며, 파티클들의 가중치에 기반한 가중 평균을 사용하여 시스템 상태의 추정값을 계산할 수 있다.
    \hat{x_t} = \sum_{i=1}^N w_t^{(i)}x_t^{(i)}
    여기서 \hat(x_t) 는 시간 t에서 시스템 상태의 추정값이며,
    w_t^{(i)}는 시간 t 에서 i번째 파티클의 가중치이며,
    x_t^{(i)}는 시간 t 에서 i번째 파티클의 상태이다.
파티클 필터(Source: lancaster University)

파티클 필터의 중요성

파티클 필터는 비선형 시스템과 비가우시안 노이즈를 다룰 때 특히 유용하다. 칼만 필터와 같은 다른 베이지안 필터링 방법들이 선형 시스템과 가우시안 노이즈에 적합한 반면, 파티클 필터는 이러한 제한을 넘어서는 상황에서도 강력한 성능을 제공한다. 따라서, 복잡하고 예측하기 어려운 동적 시스템의 상태 추정 문제에 파티클 필터를 적용함으로써, 정확도 높고 신뢰할 수 있는 추정 결과를 얻을 수 있다.

  • 비선형 시스템 대응: 대부분의 실세계 시스템은 비선형적 특성을 가진다. 파티클 필터는 이러한 비선형 시스템에서도 효과적으로 상태를 추정할 수 있다.
  • 비가우시안 분포 처리: 실제 데이터는 항상 정규 분포를 따르지 않는다. 파티클 필터는 임의의 확률 분포를 가진 데이터에 대해서도 강력한 성능을 발휘한다.
  • 데이터 불확실성 관리: 모든 측정에는 노이즈와 오차가 수반된다. 파티클 필터는 이러한 불확실성을 모델링하고 관리하는 데 유용하다.
  • 다양한 응용 분야: 파티클 필터는 자동차의 자율 주행, 모바일 로봇의 위치 인식, 금융 시장 예측, 생태계 모델링 등 다양한 분야에서 응용되고 있다.

결론

파티클 필터는 복잡한 비선형 시스템의 상태를 추정하기 위한 강력한 도구이다. 그러나 이 방법은 계산 비용이 많이 들 수 있으며, 효과적인 구현을 위해서는 적절한 파티클의 수와 효율적인 리샘플링 기법을 선택하는 것이 중요하다.

Leave a Reply

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다