Study/칼만필터

[칼만필터] Chap 14. 파티클필터

고냥정권 2022. 1. 15. 22:08

 Chap 14. 파티클 필터

Particle filter
정규분포를 따르지 않는 시스템에도 적용 할 수 있는 비선형 필터
 
UKF가 시그마포인트를 통해 비선형시스템의 확률분포를 모사하는 것처럼 
파티클 필터는 파티클을 통해 비선형모델의 확률분포를 모사한다.
파티클필터는 UT 변환 없이 무작위로 선정한 다수의 파티클을 이용하여 통계적으로 계산한다.
 

14.1 파티클 필터의 기본전략

비선형시스템의 경우 오차공분산의 예측과 추정이 관건이었다. 
파티클필터는 시그마포인트와 유사한 파티클이라는 다수의 데이터를 도입한다. 
 
파티클 마다 가중치가 주어진다는 점도 UKF와 동일하다.
 
파티클 필터는 상태변수의 추정값을 계산시, 칼만이득을 사용하지 않기 떄문에 오차공분산을 계산하지 않는다. 그리고 각 파티클의 가중치를 반영한 모든 파티클의 가중합이 상태변수의 추정값이 된다. 
 

14.2 파티클 필터 알고리즘

시스템 모델은 EKF와 동일하다. 
 
\(x_{k+1} = f(x_{k}) + w_{k}\)
\(z_{k} = h(x_{k}) + v_{k} \)
 
칼만필터는 예측 -> 추정 반복 구조인데, 
파티클 필터는 예측 -> 추정 - > 재샘플링을  반복하는 구조이다. 
 

 

 
1단계 파티클 예측과정
시스템 모델을 통해 각 파티클의 예측값을 구함
모든 파티클을 시스템모델에 적용하여 새로운 위치를 구함.
 
 
2단계 파티클 가중치 갱신
각 파티클 가중치 갱신, 현재의 측정값과 각 파티클의 예측 측정값의 차이를 기반으로 갱신됨.
 
새로운 측정값(변수 z)에 따라 각 파티클의 가중치를 바꿔준다. (normpdf)
normpdf는 측정값과 예측측정값을 입력으로 받고, 값이 비슷할 수록 큰 값을 출력하는데
측정값과 가장 근접한 예측측정값을 갖는 파티클의 가중치를 높힌다.
 
모든 파티클의 가중치를 조절한 다음에는 다시 가중치의 총합이 1이 되도록 정규화해준다.
 
 
3단계 추정값 계산
모든 파티클의 가중합으로 추정값을 구한다.
가중 합이 가중 평균이 된다. 
 
4단계 재샘플링
 
위 과정을 반복하면, 일부 파티클의 가중치만 커지고, 나머지 파티클들은 거의 역할이 없어진다. 
이렇게 되면 많은 파티클을 사용한 이유가 없기 때문에 따라서 재샘플링을 한다.
 
각 파티클의 가중치를 반영해 파티클을 새로 생성하는 과정이며,
새로 생성된 파티클의 가중치는 모두 \(\frac{1}{N}\) 로 초기화된다. 
 
이 재샘플링을 여러가지 모델이 있고, 여기에서는 순차적 중요도 재샘플링 SIR(Sequential Importance Resampling)이라는 알고리즘으로 적용한다. 
 
SIR은 각 파티클의 가중치에 비례하게 해당 파티클의 개수를 늘리거나 줄이는 방식으로 재샘플링을 하는 것이다. 
 
EX) 
A 파티클의 가중치가 B에 비해 10배 더 크다면, A 파티클 위치에 10배만큼 많은 파티클을 위치하도록 재샘플링을 하는 것이다. 이렇게 하면 A 파티클 근처에 더 많이 배치되고, 나머지는 파티클들은 줄어들거나, 없어진다. 전체 파티클 개수들은 동일하다.
 
재샘플링 이후 모두 동일하게  \(\frac{1}{N}\) 로 초기화된다. 
 

14.3 예제 레이다 추적

 
모델은 앞의 챕터와 동일하다. 
코드만 바뀐 부분만 보면 되겠다. 
 
resample 
 
 

 

 
 
 
 
 
반응형