Study/Probabilistic Robotics

2.4. Bayes Filters

soohwan_justin 2020. 9. 10. 11:07

이 글은 Sebastian thrun의 Probabilistic Robotics를 보고 내용을 정리한 글이며, 나름 쉽게 표현하기 위해서 의역을 한 부분이 있습니다.

 

1. 베이즈 필터 알고리즘(Bayes Filter Algorithm)

belief를 계산하기 위한 대부분의 알고리즘은 베이즈 필터(bayes filter) 알고리즘을 기반으로 합니다. 이 알고리즘은 belief 분포 $bel$을 측정(measurement)과 컨트롤 데이터(control data)로부터 계산합니다. 다음 table은 기본적인 베이즈 필터의 수도 코드입니다.

 

Table 2.1. 베이즈 필터링(Bayes filtering)의 일반적인 알고리즘

 

베이즈 필터는 재귀적(recursive)이며, 시간 t에서의 belief인 $bel(x_t)$는 t-1에서의 $bel(x_{t-1})$에 의해 계산됩니다. 이 알고리즘의 입력(input)은 t-1에서의 belief인 $bel$과, 가장 최근의 컨트롤과 측정값인 $u_t$와 $z_t$이고, 출력(output)은 시간 t에서의 belief인 $bel(x_t)$ 입니다. Table 2.1은 베이즈 필터의 단지 한 번의 반복만을 묘사하며, 이것은 업데이트 규칙(update rule)을 나타냅니다. 이 업데이트 규칙은 이전에 계산된 $bel(x_{t-1})$로부터 $bel(x_t)$를 계산하기 위해 재귀적으로 적용됩니다.

 

위 알고리즘의 3번째 줄에서는 컨트롤 $u_t$를 처리하는데, 이 전의 상태 $x_{t-1}$와 $u_t$를 기반으로 한 상태 $x_t$의 belief를 계산함으로써 $u_t$ 처리합니다. 특히 $\overline{bel}(x_t)$은 두 개의 분포의 적분(또는 합)으로부터 얻어지며, 이는 아래 식과 같이 전체 확률의 법칙 비슷한 것을 알 수 있습니다.

 

 

식 2.11, 2.12. 전체 확률의 법칙(Law of total probability)

 

이러한 업데이트는 컨트롤 업데이트(control update) 또는 예측(prediction)이라고 합니다.

 

베이즈 필터의 두 번째 step은 측정 업데이트(measurement update)라고 합니다. 4번째 줄에서 베이즈 필터 알고리즘은 $\overline{bel}(x_t)$를 측정값 확률 $z_t$와 곱합니다. 이 값의 합은 1이 되지 않기 때문에, 정규화(normalize)가 필요합니다. 여기서 $\eta$는 베이즈 정리에서의 정규화 방법과 비슷합니다.

 

베이즈 정리에서의 정규화 상수

 

여기서 사후 확률 belief를 재귀적으로 계산하기 위해서는, $t=0$에서의 초기의 belief 값 $bel(x_0)$를 경계 조건(boundary condition)으로 합니다. 만약 $x_0$값을 정확하게 안다면, $bel(x_0)$를 해당하는 값을 중심으로 하고 나머지 값은 확률을 0으로 하는 확률 질량 함수로 초기화합니다. 만약 초깃값 $x_0$가 무시할만 하다면, $bel(x_0)$를 $x_0$의 모든 영역에 균등 분포(uniform distribution) 된 함수로 초기화합니다.

 

2. 예제

 

다음 그림과 같이 로봇이 문이 열렸는지 닫혔는지 판단하는 상황을 생각합니다.

그림 2.3. 로봇이 문의 개폐 여부를 판단하는 상태

문은 열렸거나 닫혔거나 둘 중 하나의 상태를 가지며, 로봇만이 문의 상태를 바꿀 수 있습니다. 그리고, 로봇은 처음에 문이 열렸는지 닫혔는지 모르는 상태라고 가정합니다. 이때, 로봇의 belief는 다음과 같습니다.

 

로봇은 처음 문의 상태를 모르기 때문에 위와 같이 X가 가질 수 있는 모든 값에 균등한 값을 할당합니다.

그리고, 로봇의 센서는 노이즈로 인해 정확하지 않다고 가정합니다. 센서의 노이즈로 인해 로봇이 문의 상태를 판단할 확률은 다음과 같다고 가정합니다.

즉, 로봇은 상대적으로 문이 닫힌 경우에 더 정확하게 판단한다고 가정합니다.

마지막으로, 로봇은 문이 닫힌 경우에만 문을 여는 동작을 한다고 합니다. 만약 문이 열렸다고 판단하면 문은 그대로 열려있을 것이고, 문이 닫혔다고 판단하면 80%의 확률로 문을 연다고 합니다.

 

 

또한 로봇은 아무 동작도 하지 않을 수도 있습니다. 이러는 경우에는 기존의 상태가 그대로 유지되며, 다음과 같이 조건부 확률로 나타낼 수 있습니다.

 

 

이제 시간 t=1일 때, 로봇이 아무 동작을 하지 않았으나 문이 열렸다고 감지하는 상황을 가정하겠습니다. 이에 의한 사후 확률의 결과는 사전 확률의 belief $bel(X_0)$를 이용한 베이즈 필터에 의해 계산됩니다. 아무 동작을 하지 않았으므로 컨트롤 $u_1$=do_nothing이며, 측정값 sense_open을 입력값으로 취합니다. 따라서 알고리즘의 3번째 줄은 다음과 같이 유한한 합으로 나타낼 수 있습니다.

우리는 상태변수 $X_1$를 가능한 두 개의 확률 값으로 치환할 수 있습니다. $X_1$=is_open인 경우와 is_closed인 경우에 대해 계산하면 다음과 같은 결과를 얻습니다.

즉, $\overline{bel}(x_1)$은 사전 확률 $bel(x_0)$와 차이가 없습니다. 왜냐하면 로봇은 아무 행동을 하지 않았으며, 아직 그 결과에 대한 관측도 하지 않았기 때문입니다. 그러나 아무 행동을 하지 않은 것에 대한 결과를 포함한 값을 계산하면, belief 값은 바뀌게 됩니다. 알고리즘의 4번째 줄을 적용하면 $bel(x_1)$은 다음과 같습니다.

 

즉, 처음에 아무 행동을 하지 않은 후에 관측 값을 포함한 결과는 문이 열렸다고 판단할 확률이 75%, 닫혔다고 판단할 확률이 25%입니다. 그리고 이전과 똑같이 로봇이 아무 행동을 하지 않았다고 가정하고 한 번만 더 계산하면 문이 열렸다고 판단할 확률은 98.3%, 닫혔다고 판단할 확률이 1.7%입니다. 문이 열렸을 때 문이 열렸다고 제대로 판단할 확률이 비록 60%밖에 되지 않을지라도, 위 알고리즘을 두 번만 반복해도 매우 높은 확률로 문이 열렸다는 결과가 나옵니다.

 

4. 마르코프 가정(Markov Assumption)

마르코프 가정은 현재의 상태 $x_t$를 알고 있을 경우 과거와 미래의 데이터들은 독립임을 상정(postulate) 합니다. 즉, $x_{t-1}$과 $x_{t+1}$은 독립이라는 것입니다. 즉, 현재 상태는 이전의 상태에만 영향을 받는다는 것입니다. 이 가정이 얼마나 엄격한(severe) 가정인지 보기 위해 모바일 로봇이 위치 추정(localization)을 하는 예를 생각해봅니다. 로봇의 위치 추정에서 $x_t$는 로봇의 자세이며, 베이즈 필터는 이 자세를 고정된 지도에 대한(relative to a fixed map) 자세로 추정합니다. 이에 따르는 요소(factor)들은 센서 값을 읽어들이는데(sensor reading) 체계적으로 영향을 미칠 수 있습니다. 따라서, 이는 마르코프 가정에 대한 위반(violations)를 만듭니다.

- 로봇 환경에서의 모델링 되지 않은 동적 요소(Unmodeled dyamics, 예를 들어, 위치 추정에서 움직이는 사람과 그들이 센서 측정에 미치는 영향)들은 상태 $x_t$,

- 확률 모델

의 부정확함(inaccuracies),

- belief 함수의 근사를 사용할 때 근사 오류와, (approximation error, 예를 들면 grid나 가우시안을 말하는데, 이는 나중에 설명합니다)

- 다중 제어(multiple controls)에 영향을 주는 로봇 컨트롤 소프트웨어의 변수들(software variables, 예를 들어 "목표 위치"같이 전체적인 컨트롤 명령의 전체 절차에 영향을 주는 변수)에 포함되지 않았다.

이론상으로, 이 많은 변수들은 상태의 표현(state representation)에 포함될 수 있습니다. 하지만, 베이즈 필터 알고리즘을 계산하는 복잡도(computational complexity)를 줄이는데 완전하지 않은 상태 표현(incomplete state representations)들이 더 완전한 상태 표현보다 선호되는 경우가 많습니다.

 

베이즈 필터 수식 유도는 아래 링크를 참조하세요

https://soohwan-justin.tistory.com/78

'Study > Probabilistic Robotics' 카테고리의 다른 글

5.3. Velocity Motion Model  (0) 2020.09.10
4.3. The Particle Filter  (0) 2020.09.10
3.3 The Extended Kalman Filter  (0) 2020.09.10
3.2 The Kalman Filter  (0) 2020.09.10
2-3. Robot Environment Interaction  (0) 2020.09.04