티스토리 뷰

Study/AI

[RL] Dealing with inaccurate models

생각많은 소심남 2019. 10. 8. 18:41

(해당 포스트는 Coursera의 Sample-based Learning Methods의 강의 요약본입니다)

 이전 포스트들을 통해서 얘기한 내용은 결국 model을 활용해서 planning을 할 수 있어서 sampling efficiency도 높이고, 효율적으로 policy를 학습할 수 있다고 했었다. 여기서 던질 수 있는 질문은 "그럼 정확하지 않은(inaccurate) model로 planning 등을 수행하면 policy를 improve할 수 있을까?" 이다. 예를 들어서 앞에서 다뤘던 maze example 상에서도 policy를 improve시키기 위해서는 가능한한 많은 state와 action을 취해서 얻은 value function이 있어야 하는데, 아무래도 exploration도 하고 중간에 termination이 되다보면 모든 state와 action에 대한 정확한 value function을 얻기 힘들다. 이처럼 state, action에 대한 value function이 정의되어 있지 않은 상태에서 학습된 model을 incomplete model이라고 표현한다. 이런 model도 하나의 environment이고, Markov Decision Process를 따르는 이상, action을 취하면 내부적으로 enviornment도 변화하게 되고, 앞에서 얻은 incomplete model로 planning된 agent는 model상에 정의되어 있지 않은 state와 action이 나오게 되면, 당연히 model에 정의된 정보와 다른 정보를 얻게 될 것이다. 이런 경우를 보통 model이 inaccurate하다고 한다.

 그럼 위와 같은 예시처럼 model이 inaccurate해지는 경우는 언제일까?

그림 1. model

 우선 위와 같이 model은 주어진 state와 action이 있을 때, 이에 대한 reward와 next state를 내보내는데, incomplete model은 말그대로 주어진 state와 action에 대한 value function이 정의되어 있지 않은 부분도 존재하기 때문에, 그때는 reward와 next state를 내보낼 수가 없다. 당연히 이런 model을 가지고 planning을 할 수가 없다. 또 이런 경우도 있다. 물론 model update시 실제 environment와의 interaction을 많이 해서 몰랐던 value function을 정확하게 채울 수 있을 수 있는데, 만약 이렇게 완성된 model이 있는 상태에서 environment가 변하게 되면, 기존의 model은 무용지물이 될 것이다. 결국 언제든지 model이 inaccurate한 상황은 발생할 수 있다는 것이다.

 사실 Dyna-Q에서는 이렇게 model이 inaccurate한 상황에 대해서는 model을 update하지 않도록 되어 있다.

그림 2. Dyna-Q

 Q-Planning 과정이 (f)인데, 이때 model을 update할때 사용되는 State \(S\)와 Action \(A\)이 각각 previously observed state, action previously taken in \(S\) 로 되어 있다. 이 말은 결국 Dyna-Q에서 Planning 수행시 model update는 이전에 수행했던 state action transition, 다르게 표현하면 이전에 수행했던 경험에 대해서만 이뤄진다는 것이다. 위와 같이 동작한다면, 초반에 model이 incomplete한 상황에서는 Q-planning이 거의 이뤄지지 않겠지만, state action transition이 많이 수행되면 Q-planning도 다양한 State와 Action내에서 이뤄지면서, 그만큼 맨처음에 언급했던 inaccurate model을 다룰 수 있게 된다.

 아무튼 inaccurate model을 다루기 위해서는 실제 environment와의 interaction (도식상에서는 direct RL)이 많이 이뤄지고, 이 interaction내에 model이 담지 못한 state action transition에 대한 정보를 많이 가져와야 한다. 아마 아는 사람도 있겠지만, 보통 이런 이유가 나오면 나오는게 바로 exploration-exploitation trade off이다. 만약 direct RL과정내에서 exploration을 많이 수행하면, 위에서 언급한 inaccurate model을 조금더 accurate하게 만들 수 있겠지만, 그만큼 policy improve시키기 어려울 것이다. 반대로 exploitation을 많이 수행하면, 그만큼 greedy action을 취하는 action을 찾기 때문에 현재 policy보다 좋은 policy를 찾겠지만, inaccurate model 문제는 남아있게 된다. 

 여기서 약간의 직관적인 방식이 적용된다. 이렇게 model을 update하는데 있어 시간적인 개념을 적용하자는 것이다. 만약 model이 update되고 나서 direct RL에서 실제 enviornment을 탐색할 때, 이미 알고 있는 state이고, 그때의 action이 결정된 상태라면 그 state는 많이 거치게 될 것이다. 반면 알지 못하는 state는 상대적으로 알고있는 state에 비해서는 정보가 부족한 상태이고, model에서는 정의가 되어 있는 부분이지만, exploration을 수행하는 이상 가긴 갈 것이다. 대신 그 state를 다시 방문할 때까지 걸리는 시간은 앞의 경우보다 길 것이다. 이런 정보를 활용하면, exploration을 더 할 수 있게 하는 그런 여지가 생기지 않을까? 그런 방문한 빈도(엄밀히 말하면 지난 방문이후 다시 방문할때까지 걸린 timestep)를 \(\tau\)로 표시하고, 이를 활용해서 새로운 reward를 계산해서 planning시 반영하는 방식을 생각해볼 수 있는데, 이 방식이 sutton 책에서는 Dyna-Q+라고 언급되는 알고리즘이다. planning에서 새로운 reward를 반영한 value function update는 다음과 같다.

$$ Q(S,A) \leftarrow Q(S,A) + \alpha \big[ r + \kappa \sqrt{\tau} + \gamma \max_{a}Q(S',a) - Q(S,A) \big]$$

그러면 변경된 model에 대한 도식은 다음과 같이 된다.

그림 3. Dyna-Q+

 이렇게 하면 exploration하면서 발견하지 못한 state에 대한 정보를 얻게 된 경우, reward를 더 크게 받을 수 있게 되는데, 이게 좋은게 무엇이냐면, 앞에서 언급한 inaccurate model에 대한 처리를 하면서도 exploration을 할 수 있다는 것이다. 즉, 모든 state와 action을 수행하지 못해서 model이 incomplete한 상황이나, model이 완성된 상태에서 environment가 변하는 상황에서도 Dyna-Q+를 활용하면 효율적으로 planning하고 이에 따른 policy improvement를 수행할 수 있게 된다.

'Study > AI' 카테고리의 다른 글

[RL] The Objective of TD  (0) 2019.11.12
[RL] The Objective for On-policy Prediction  (0) 2019.11.11
[RL] Estimating value function with supervised learning  (0) 2019.11.06
[RL] Dyna as a formalism for planning  (3) 2019.09.30
[RL] Model & Planning  (0) 2019.09.25
[RL] Expected SARSA  (0) 2019.09.18
[RL] Q-learning: Off-policy TD Control  (0) 2019.09.11
댓글