책/probability robotics

2.4 BAYES FILTERS

정지홍 2025. 5. 22. 10:57

전체적인 목차

 

2.4.1 The Bayes Filter Algorithm

  • 가장 일반적인 calculating beliefs알고리즘은 Bayes filter algorithm이다.
    • 이 알고리즘은 measurement data와 control data를 이용하여 belief distribution bel을 계산한다.
    • 먼저, 기본 알고리즘을 제시하고 수치 예제로 설명한뒤, 지금까지 세운 가정들을 수학적으로 유도한다.
  • 표 2.1은 기본 Bayes filter의 의사코드이다.
  • Bayes filter는 재귀적으로 동작하며, 시간 t에서의 belief bel( x_t )는 이전 시간( t-1 )의 belief bel( x_t-1 )로부터 계산된다.
    • 입력되는 값으로는 이전 시각( t-1 )의 bel , 가장 최근의 제어( u_t ) , 가장 최근의 측정( z_t )가 들어간다.
    • 출력으로는 시간 t에서의 bel( x_t )를 반환한다.
    • 표 2.1에는 한 단계만 update rule이 나타나있으며, 이를 재귀적으로 적용해서, 이전에 계산된  bel( x_t-1 )로부터  bel( x_t ) 을 구한다.
  • Bayes filter 알고리즘에는 2가지의 핵심 단계가 존재한다.
    • 1. Control Update ( prediction )
      • 라인3에서 제어( u_t )를 처리한다. 이전상태( x_t-1 )에 대한 prior belief제어( u_t )가 주어질때, 상태 x_t에 대한 belief bel( x_t )두 분포의 곱적분(혹은 sum)한 결과로 얻어진다.
      • 구체적으로는, prior로 할당된 bel( x_t-1 )제어( u_t )x_t-1에서 x_t전이(transtion)을 유도할 확률인 p( x_t | x_t-1 , u_t )을 모든 x_t-1에 대해서 적분한다. 이는 식 2.12와 유사하다.
    • 2. Measurement Update
      • 라인4에서 측정( z_t )를 처리한다.
      • 가상의 posterior상태x_t에 대해서, bel( x_t )에서 측정( z_t )가 관측될 확률인 p( z_t | x_t )한다. 이 곱의 결과는 일반적으로 1이 되지 않으니 정규화가 필요하다.
        그래서, 정규화 상수 η를 이용해서 bel( x_t )를 정규화한다. 이 과정을 거쳐서 최종적인 posterior belief bel( x_t )가 완성되며, 최종적으로 라인6에서 반환된다.

==> 이제 posterior belief 재귀적으로 계산하기위해서, 경계 조건( boundry condition)으로 시간 t=0에서의 초기 belief bel( x_0 )이 필요하다.


=======> x_0을 완전히 알고있다면, bel( x_0 ) x_0의 정확한 값에 모든 확률 질량을 집중시키는 점 질량(point mass) 분포로 초기화한다.

 

=======> 초기 값 x_0에 대해 전혀 정보가 없다면, bel( x_0 ) x_0 정의역 전체 균일(uniform) 분포 초기화하거나, Dirichlet 계열의 분포를 사용할 수 있다.

 

=======> 초기 값 x_0에 대해 부분적인 지식이 있을 때는 비균일(non-uniform) 분포로 표현할 수 있다. 그러나 실제로는 완전 지식( full knowledge )과 완전 무지( full ignorance ) 두 경우가 가장 흔히 사용된다.

 

 

  • Bayes filter 알고리즘은 여기서 제시한 형태로 매우 단순한 추정 문제(simple estimation problems)에만 구현할 수 있다.
    • 즉, Line 3의 적분(integration) Line 4의 곱셈(multiplication) 닫힌 형식(closed form)으로 수행할 수 있거나, 유한 상태 공간(finite state spaces)으로 제한하여 Line 3의 적분을 유한 합(finite sum)으로 대체할 수 있을 때만 사용 가능하다.

 

 


2.4.2 Example

  • 우리의 Bayes filter algorithm 예시는 Figure 2.2의 시나리오를 기반으로 한다.
  • 이 그림은 robot이 camera를 사용하여 door의 상태를 추정하는 모습을 보여준다.
    • 이 문제를 단순화하기 위해 door는 open 혹은 closed의 두 가지의 가능한 state 중 하나에 있을 수 있고, door의 state를 변경할 수 있는 것은 오직 robot뿐이라고 가정하자.
    • 또한 robot은 처음에 door의 상태를 알지 못한다고 가정하자.
    • 대신 두 가지의 가능한 door state에 대해 동일한 사전확률( prior probability )를 할당한다. ( 식 2.37과 2.38 )
    • 또한 로봇의 센서가 잡음(noisy)을 포함한다고 가정하자. 이 잡음은 조건부 확률로 주어진다. ( 식 2.39 )

식 2.37 , 2.38
문이 실제로 열려있을떼 sense_closed라고 감지할 확률이 40%이다. 즉, 센서 오류 확률이 40%이다. 식 2.39
문이 실제도 닫혀 있을때, sense_opened라고 감지할 확률이 20%이다. 즉, 센서 오류가 발생할 확률이 20%이다. 식2.40

 

  • 위와 같은 확률들은 로봇의 센서가 closed_door를 감지하는데, 에러가 발생할 확률이 0.2인 것으로 상대적으로 신뢰할 만 하다고 할수있다.
    • 그러나 door가 open인 경우에 측정 실패 확률이 40%이다.
    • 마지막으로, 로봇이 manipulator를 사용해서 door를 push_to_open한다고 가정하면...
      • door가 이미 open상태라면, 계속 open상태를 유지하고....
        closed상태라면, 조작후에 open 상태가 될 확률이 80%이다.( 식 2.41 , 2.42 참고 )

식 2.41 , 2.42

 

  • 그리고 만약에 로봇이 manipulator를 사용할수 없는 상황이라서, 어떠한 state도 바뀌지 않는다면, 식 2.43과 식 2.44를 따른다.

식 2.43과 2.44

 

  • 시간 t에서, 로봇이 어떠한 제어 동작(control action)도 취하지 않고, 오직 문이 열림(sense_open)을 감지했다고 가정하자.
    • 이때 얻어지는 posterior beliefBayes filter에 이전의 prior belief bel ( X_0 ), 제어 u_1 = nothing , 측정값인 sense_open을 입력으로 하여 계산된다. ( Bayes_filter( bel(X_0) , u_1 , z_t = sense_open ) )
    • 상태 공간이 유한(finite)이니, 라인3의 적분은 유한 합(finite sum)으로 바뀐다.

식 2.45

 

  • 이제 상태 변수 X_1의 두가지 가능한 값에 대해서 대입해보자.
    • X_1 = is_open에 대해서 얻어지는 predicted belief는 식 2.46과 같다.
    • X_1 = is_close에 대해서 얻어지는 predicted belief는 식 2.47과 같다.
    • ==> 위 2개의 식의 결과는 초기 belief인 bel( x_0 )과 같다는 사실은 놀랍지 않다. 왜냐하면 do_nothing은 state of the world에 아무런 영향을 주지않기 때문이다.

식 2.46 ( X_1 = is_open )
식 2.47 ( X_1 = is_closed )

 

  • 하지만, measurement를 반영하면 belief가 바뀐다. Bayes filter알고리즘의 라인4는 이러한 것을 식 2.48과 같이 나타낸다.

아눈 measurement update단계이며, 제일 오른쪽 bel은 라인 3에서 계산된 예측된 belief이다. p( .. )는 상태 x_1일때 센서가 open을 감지할 확률을 뜻한다.

 

  • For the two possible cases, X_1 = is_openX_1 = is_closed가 있다.

라인 4 적용...
라인 4 적용...
식 2.49와 2.50의 결과를 구하기 위해서 정규화 상수를 계산
위의 과정을 통해서 이러한 결과를 얻는다...

 

 

===> 지금까지 예시의 과정을 X_2에서 전이시키면 아래와 같다.

 

  • 이 시점에서 로봇은 확률(probability) 0.983로 문이 열린 상태(open)라고 belief하며, 따라서 두 번의 measurements가 모두 correct했다고 본다.
  • 얼핏 보기에는 이 probability가 충분히 높아 이 hypothesis를 world state로 단순히 accept하고 act accordingly해도 될 것처럼 보인다.
    • 그러나 이와 같은 접근법은 불필요한 낭비를 초래할 수 있다.
    • 만약 닫힌 문을 열린 문으로 잘못 판단하면 비용이 발생한다면 , 두 가지 가설을 모두 고려하는 결정이 필요합니다.
    • 0.983의 확률로 비행기가 추락하지 않는다고 생각하고 자동 조종으로 비행한다고 상상해 보아라.