티스토리 뷰

Study/AI

[RL] Fully Observable와 Partially observable의 차이

생각많은 소심남 2018. 10. 22. 13:57

 강화학습을 다루다보면 근본적으로 environment의 특성에 대해서 이해할 필요가 있다. 그 중에서도 많이 나오는 내용이 해당 env가 Fully Observable 이냐 Partially Observable이냐 를 정의하는 것이다. 

 우선 Observability라는 개념은 Dynamic Control System 이론에서 나온 개념인데, 위키피디아에 정의된 내용을 그대로 가져오면, 시스템의 내부 상태가 외부 출력에 대한 지식으로부터 얼마나 잘 추론될 수 있는지에 대한 척도를 말한다. 다시 말해서 출력만 가지고 시스템 상태를 파악할 수 있느냐를 나타내는 것이다. 

 Fully Observable이라는 말은 출력된 결과만 가지고도 내부 state를 모두 추론할 수 있는 것을 의미한다. 강화학습 notation으로 표현하면 action을 행하는 agent가 해당 environment와 관련된, 또는 action에 의해서 영향을 받는 변수들을 모두 관찰할 수 있는 것이다. 이를 활용하여 시스템의 내부 구조도 이해할 수 있기 때문에 굳이 memory를 가지고 있지 않더라도 Optimal Decision making이 가능하다. 예를 들자면 체스 게임 같은 경우는 한번 판이 정해진 경우, 각각의 말이 움직이는 경우와 각 말이 움직일 수 있는 경로에 대해서 agent가 인지할 수 있기 때문에 Fully Observable하다고 표현할 수 있다.

 반면, Partially Observable은 Fully Observable과 다르게 받은 출력만 가지고 내부 state를 일부만 추론할 수 있다. 그렇기 때문에 Optimal Decision making 시에도 과거의 데이터를 기반으로 action을 결정하기 때문에 내부적으로 memory를 가져야 한다는 특징이 있다. 포커 게임 같은 경우는 보통 판이 열렸을 때 상대방한테 보여지는 패도 있고, 안 보여지는 패도 있기 때문에 안 보여진 패에 대한 state를 agent 인지할 방법이 없다. 그렇기 때문에 Partially Observable의 대표적인 예로 들고 있다. 

댓글