이 글은 Sebastian thrun의 Probabilistic Robotics를 보고 내용을 정리한 글이며, 나름 쉽게 표현하기 위해서 의역을 한 부분이 있습니다.
1. 기본 알고리즘(Basic Algorithm)
파티클 필터(particle filter)는 nonparametric 한 베이즈 필터의 실행을 대체하기 위한 방법입니다(parametric 하다는 것은 어떤 모델임을 상정하는 것입니다. 예를 들어 "어떠한 분포가 가우시안 분포를 따를 것이다." 이런 식으로 말입니다. non-paramatic 하다는 것은 반대로 어떤 모델인지 상정하지 않는 것입니다.) 히스토그램 필터처럼, 파티클 필터는 사후 확률을 유한한 숫자의 파라미터들에 의해 근사화합니다. 파티클 필터의 중요한 아이디어는 사후 확률

그림 4.3은 가우시안 랜덤변수에 대한 예시입니다. 분포를 parametric 한 형태, 즉 정규 분포를 따르는 지수함수 형태의 확률 밀도 함수로 나타났을 것을, 파티클 필터는 그래프 형태가 아닌, 그 분포로부터 나온 샘플들의 집합의 형태로 나타냅니다. 이러한 표현은 근사적이지만 nonparametric 하며, 따라서 예를 들어 가우시안 같이 더 넓은 공간의 분포도 나타낼 수 있습니다. 또 다른 이점은 랜덤 변수의 비선형 변환도 나타낼 수 있다는 것입니다.
파티클 필터에서 사후확률분포의 샘플들은 "파티클"이라고 하며, 다음과 같이 나타냅니다.

각각의 파티클
이 파티클 필터에 대한 직관은 belief

식 (4.23)의 결과로써, 샘플에 의해 만들어진 상태 공간의 부분 구역의 확률밀도가 높을수록, true state가 그 부분 구역에 있을 확률이 더 높아집니다.
다른 베이즈 필터 알고리즘처럼, 파티클 필터 알고리즘은 1 타임 스텝 빠른 belief인
파티클 필터의가장 기본적인 알고리즘은 Table 4.3에 나타나 있습니다.

알고리즘의 입력값은 파티클 집합
1. Line 4는
2. Line 5는 각각의 파티클
3. 파티클 필터의 진짜 "기술"은 line 8부터 11입니다. Line 8~11은 리샘플링 또는 중요도 샘플링 이라고 하는 것을 적용합니다. 이 알고리즘은 집합
2. 중요도 샘플링(Importance Sampling)
직관적으로, 우리는 확률밀도함수

여기서
중요도 샘플링은 위의 변환을 이용합니다. 그림 4.4의 a는
즉, 우리가 얻고싶은 것은 그림 4.4의 (a)와 같은 그래프입니다. (a)에서 그림 밑쪽의 파티클을 통해 밀도추출을 하면

여기서 확률 밀도


이 것은 그림 4.4.의 (c)에 나와있습니다. 이 그림에서의 수직선들은 중요도 가중치(importance weight)의 크기를 나타냅니다. 중요도 가중치들은 아직 각각 파티클의 확률 질량 함수를 정규화(normalize) 하지 않았습니다.

위 식에서 첫번째 항은 모든 중요도 가중치를 위한 정규화 상수(normalizer)입니다. 다시 말해, 우리가 확률 밀도
파티클 필터에서, 확률 밀도

다시 말하지만, 이 분포는 proposal distribution이라고 합니다.
3. 파티클 필터의 실질적 고려사항과 속성(Parctical Considerations and Properties of Particle Filters)
밀도 추출(Density Extraction)
파티클 필터에 의해 유지되는 샘플 집합은 연속적 belief의 불연속 근사를 나타냅니다. 하지만, 많은 응용분야에서 연속적인 추정의 가능을 요구하며, 이 추정은 파티클에 의해 나타내어진 어떤 특정 상태에서만의 추정이 아니라 상태 공간 내부의 어떠한 지점에서도 가능해야 합니다. 이런 샘플에서 연속적인 확률 밀도를 추출(extract)하는 문제를 밀도 추정(density estimation)이라고 합니다(밀도 추정에 대한 자세한 설명은 darkpgmr.tistory.com/147 를 참조하세요).
그림 4.5는 파티클로부터 밀도를 추출하는 여러 방법들을 보여줍니다.

(a)는 변환된 가우시안의 파티클과 확률 밀도 함수입니다. 이런 파티클에 대해 간단하고 매우 효과적인 밀도 추정 접근법으로는 가우시안 근사가 있으며, 이는 그림 4.5의 (b)에 나타냈습니다. 이 경우, 파티클로부터 추출된 가우시안 그래프는 true density의 가우시안 근사와 가상적으로 같습니다(virtually identical).
분명히, 가우시안 근사는 확률 밀도 함수의 기본적인 속성만을 잡아내고, 그 확률 밀도 함수가 단봉형(unimodal)인 경우에만 적절합니다. 다봉 형(multimodal) 샘플 분포는 k-평균 클러스터링(k-means clustering)같이 더 복잡한 테크닉을 필요로 합니다. 이에 대한 또 다른 접근법은 그림 4.5의 (c)에 나타내었습니다. 여기 나타난 불연속 히스토그램은 상태 공간(state space)과 이 범위 안의 파티클들의 가중치를 더하여 계산한 각각의 bin의 확률을 겹쳐놓았습니다.
커널 밀도 추정은 파티클 집합을 연속 확률 밀도로 바꿔주는 다른 방법입니다. 여기서 각각의 파티클들은 커널의 중심 값으로 사용되고, 전체적인 확률 밀도는 이 커널 밀도의 혼합에 의해 주어집니다(위에서 언급한 링크를 참조하세요). 커널 밀도 추정의 장점은 smoothness와 간단한 알고리즘입니다. 하지만, 어떠한 점에서의 확률 밀도를 계산하는것의 계산 복잡도는 파티클 또는 커널의 개수에 선형적으로 비례합니다.
많은 로보틱스 응용분야에서는 컴퓨팅 파워가 매우 제한되어있고 파티클의 평균은 로봇을 컨트롤 하기에 충분한 정보를 제공해줍니다. active localization같은 경우, 상태 공간에서의 불확실성에 대한 정보처럼 더 복잡한 정보에 의존합니다. 이런 상황의 경우, 히스토그램이나 가우시안의 혼합이 더 적절합니다. 여러 로봇에 의해 수집된 데이터를 조합하는 경우에는 다른 샘플 집합의 확률 밀도들을 곱하는 것을 요구하기도 합니다. 이런 경우에는 density tree나 커널 밀도 추정이 더 적합합니다.
Sampling Variance
파티클 필터에서의 오류의 중요한 원인 중 하나는 랜덤 샘플링에 내재하는 분산에 관련되어 있습니다. 확률 밀도로부터 유한한 개수의 샘플이 그려질 때마다, 이 샘플로부터 추출된 통계는 원래 확률 밀도의 통계와는 조금씩 다릅니다. 예를 들어, 우리가 만약 가우시안 랜덤 변수로부터 샘플을 그리면, 그 평균과 분산은 원래의 랜덤 변수와는 다를 것입니다.
가우시안 belief가 같고, 노이즈가 없는 두 개의 같은 로봇이 움직인다고 상상해보겠습니다. 분명히, 두 로봇은 같은 행동을 하고 나서는 같은 belief를 가져야 할 것입니다. 이 상황을 시뮬레이션하기 위해, 가우시안 확률 분포와 그 값을 비선형 변환시킨 값에 의한 샘플들을 반복해서 그리겠습니다. 그림 4.6은 그 결과 샘플 및 커널 밀도 추정과 함께 true belief(회색 영역)을 보여줍니다.

왼쪽 열의 각각의 그래프들은 가우시안으로부터 그려진 25개의 샘플에 대한 결과를 보여줍니다. 우리가 요구하는 결과와 다르게, 일부 커널 밀도 추정은 true density와는 상당히 다를 뿐 아니라 각 실험에 대한 차이도 매우 큽니다. 그러나 샘플의 숫자가 많아지면 샘플링 분산은 줄어들게 됩니다. 위 그림에서 볼 수 있듯이 오른쪽 열은 250개의 샘플에 대한 일반적인 결과를 보여줍니다. 위 그래프는 샘플의 숫자가 많기 때문에 분산이 줄어들고 더 정확하게 근사하는 결과를 보여줍니다. 실제로, 충분한 개수의 샘플이 선택되면 로봇에 의한 관측은 일반적으로 true belief에 "충분히 근접한" belief에 근거한 샘플들을 유지(keep)합니다.
리샘플링(Resampling)
샘플링 분산은 반복적인 리샘플링을 통해 증폭됩니다. 이 문제를 이해하기 위해, 극단적인 경우를 생각하면 도움이 되는데, 예를 들어 로봇의 상태가 변하지 않는 경우를 생각해보겠습니다. 즉, 로봇의 상태
초기에, 파티클은 사전확률로부터 만들어질 것이며, 이 파티클들은 상태 공간에 퍼져있을 것입니다. 하지만, 리샘플링 단계(알고리즘의 line 8)는 상태 샘플
시간이 지남에 따라, 리샘플링 단계의 랜덤한 성질로 인해 더 많은 파티클들이 새로운 파티클을 만들지 않고 그냥 지워지게 됩니다. 즉, 한 개의 확률, 어떤 한 개의 파티클과 같은
이 예제는 중요한 실질적 영향과 함께 파티클 필터의 다른 한계에서의 힌트를 줍니다. 특히, 리샘플링 처리는 파티클 생성에 있어 다양성을 감소키며, 스스로 근사 오차로써 분명해지게 됩니다. 즉, 파티클 집합 자체의 분산은 감소될지라도, true belief를 추정하는데 있어서 파티클 집합의 분산은 증가하게 됩니다. 파티클 필터의 분산, 오차를 제어하는 것은 어떠한 실질적 적용에서든지 필수적입니다.
이 분산을 줄이기 위해서 2개의 주요 접근법이 있습니다. 첫 번째 방법은 리샘플링의 주파수를 줄이는 것입니다. 만약 상태가 정적이라고(

리샘플링을 언제 해야하는지의 선택은 복잡하고, 실질적인 경험을 필요로 합니다. 너무 자주 리샘플링을 하면 다양성을 잃을 위험이 있고, 만약 샘플링을 너무 적게 하면 확률이 작은 영역의 샘플이 낭비될 수 있습니다. 리샘플링을 해야 하는지 결정하는 기본적인 접근법은 중요도 가중치의 분산을 측정하는 것입니다. 가중치의 분산은 샘플에 기반한 표현의 효율성에 관련됩니다. 만약 모든 가중치가 같다면, 그 분산은 0이고 리샘플링은 실행되지 않을 것입니다. 반면, 적은 숫자의 샘플에 가중치가 집중되어있다면, 가중치 분산은 높을 것이고 리샘플링이 실행될 것입니다.
샘플링 에러를 줄이기 위한 두 번째 전략은 low variance sampling이라고 합니다. table 4.4는 low variance sampling을 나타냅니다.

기본적인 아이디어는 다른 리샘플링 처리에 대해 독립적으로 샘플을 선택하는 대신, 순차적인 확률적 처리(sequential stochastic process)를 포함하여 선택하는 것입니다.

Table 4.4의 while문은 방정식의 우항의 합을 계산하며, 추가적으로

위 그림을 좀더 설명하자면,
좀 더 쉽게 설명하기 위해 구체적인 예시를 들겠습니다.

먼저, line 6의 for문으로 들어갑니다. 여기서 초기의
Particle Deprivation
많은 개수의 particles이 사용된다고 하더라도, correct state 주변에 particles이 없는 경우가 발생할 수도 있습니다. 이 문제는 particle deprivation problem이라고 합니다. 이 문제는 대부분 high likelihood를 가진 relevant region을 커버하기에는 particles의 수가 너무 적을 때 발생합니다.
particle deprivation은 random sampling의 분산의 결과로 인해 발생하는데, 즉 운이 없는 랜덤한 숫자들로 인해 true state 주변의 particles들이 없어질 수 있다는 것입니다. 각각의 sampling step에서, 이런 경우가 일어날 확률은
실제로, 이런 문제는 high likelihood를 가진 states의 공간에 대해
'Study > Probabilistic Robotics' 카테고리의 다른 글
5.4. Odometry Motion model (0) | 2020.09.10 |
---|---|
5.3. Velocity Motion Model (0) | 2020.09.10 |
3.3 The Extended Kalman Filter (0) | 2020.09.10 |
3.2 The Kalman Filter (0) | 2020.09.10 |
2.4. Bayes Filters (0) | 2020.09.10 |