Major in CS/Reinforcement Learning(강화학습)

Reinforcement Learning (9) - Planning과 Learning의 통합

SHJuan 2019. 12. 5. 17:59

수업 내용을 정리한 것이므로, 작성자의 상태에 따라 잘못된 내용이 적힐 수 있습니다.

오류사항 있으면 지적부탁드립니다 헿

Model-based RL?

  • Model-based Planning과는 다르다.
  • 경험(experience)을 통해 Model을 직접 학습한다(즉 처음부터 Model을 알고 시작하지 않는다).
  • Model의 Transition Probability를 하나하나 알아내는 것이 아니다. Model을 근사하는 것(approximation)이라고 볼 수 있다.
  • 근사한 Model을 기반으로 가상 환경(environment)를 구축해볼 수 있다.
  • 그 환경에서 Sampling을 수행하여, 이를 통해 얻은 정보를 가지고 Model-free RL을 수행한다.
  • 실제 environment를 통한 RL 또한 병행하여 합쳐 볼 수도 있다.

Model-free RL vs. Model-based RL

  • Model-free RL
    • 실제 env에서 어떤 state에서 action을 통해 reward를 얻는 일련의 과정을 통해 정보를 획득하고, 이를 이용하여 학습을 수행한다.
  • Model-based RL
    • agent의 학습을 수행하기 전에 random한 action을 취해 어떻게 reward를 얻고 state transition이 일어나는지 정보를 획득한다(experience).
    • Supervised Learning과 비슷한 학습을 통해 근사한 env를 만든다(model learning).
    • 이를 통해 agent의 학습을 수행한다(planning, DP 방식과는 다르다).

Model-based RL의 장단점

장점

  • Supervised Learning을 통해 Model을 효율적으로 학습할 수 있다.
  • Model의 Uncertainty(불확실성?)의 근거를 제시할 수 있다.
  • 어떤 시점에서 exploration을 하는 게 좋을 지, 혹은 exploitation을 하는 게 좋을 지 setting을 해줄 수 있다.

단점

  • Model을 학습하고, value function을 만든다.
  • 2번의 approximation, 그에 따른 2개의 approximation error 존재.

Model이란?

  • MDP로 표현가능한, <State, Action, Transition Probability, Reward>로 구성
  • 여러 번의 experience를 통해, 혹은 사전 정보로서 알 수 있으므로, State space와 Action space는 충분히 알려졌다고 가정한다. 
  • 따라서 Transition Probability와 Reward를 미리 알 수 없고, 이를 구하는(근사하는) 게 관건이다.
  • P와 R의 근사 함수를 얻어냈다면, S와 A를 넣었을 때 각각의 함수는 적절한 Next S와 Reward를 내주어야 한다.

Model Learning

  • 목표는 experience를 통해 Model을 학습하는 것이다.
  • Supervised Learning 문제이고, 이는 꼭 DNN을 사용할 필요는 없다(Tabular Data를 이용한 학습을 수행할 수도 있다).
  • P의 근사함수는 Density Estimation Problem이다.
  • R의 근사함수는 Regression Problem이다.

Table Lookup Model

  • Model은 explicit MDP가 된다.
  • 어떤 S에서 A를 취할 때 마다, count를 증가시킨다.
  • 또, 그렇게 했을 때 어떤 S로 전이했는지 Table에 저장한다.
  • 이를 통해 Transition Probability를 구해볼 수 있다.
  • Reward의 경우도 똑같이 해볼 수 있다.
  • 이러한 experience가 충분히 많아지면 신뢰할 수 있는 값이라고 볼 수 있다.

Alternative Approach

  • 매번 experience tuple(S, A, R, Next_S)를 저장한다.
  • Model sampling을 할 때, 저장된 tuple중에서 random하게 (S, A, *, *) tuple을 선택하여 Learning할 수 있다.

Model을 이용한 Planning

 

Sample-based Planning

  • 학습을 통해 생성한 가상의 Model로부터 experience를 새로 Sampling할 수 있다.
  • 그 experience를 기반으로 model-free RL을 적용한다.
  • Efficient한 학습방법이다.

정확하지 않은 Model을 이용한 Planning

  • env가 너무 크거나 복잡하면 Model이 정확하지 못할 수 있다.
  • 해결방안 1. 그냥 model-free RL을 수행한다.
  • 해결방안 2. 좀 더 exploration과 exploitation을 수행한다.

Real & Simulated Experience

  • 꼭 experience를 근사한 Model에서만 Sample할 필요는 없다.
  • 실제 env와 소통 가능하다면, 이를 통한 experience도 Sample할 수 있다.

Dyna - Learning과 Planning의 통합

  • model-free RL과, model-based RL을 접목
  • Model을 실제 env로부터 얻은 experience를 이용하여 학습
  • real experience와 simulated experience를 모두 사용하여 value function 혹은 policy를 학습할 수 있다.
  • 점점 더 Model이 정교해질 것이라 추측할 수 있다.

Forward Search

  • Model을 학습시킬 때, Random하게 Sampling하기 보다는, Lookahead를 통해 최선의 action을 선택해나간다.

Simulation-Based Search

  • Sample-based Planning을 기반으로 하는 Forward Search 방법이다.

Simple Monte-Carlo Search

 

Monte-Carlo Tree Search

  • ss

General Process in MCTS

다음 4 과정을 반복적으로 수행한다.

  1. Selection
    • tree policy를 통해 leaf node에 도달할 때 까지 선택
    •  
  2. Expansion
    • 어떤 Action을 취하여 새로운 State에 도달
    • 그 State를 tree의 leaf node로서 추가
  3. Simulation(Evaluation)
    • Rollout(Default) policy를 통해 끝날 때 까지 수행하여 결과를 획득한다.
    •  
  4. Backpropagation(Update)
    • expansion된 node부터, 결과값을 이용하여 update해준다.
    • rollout된 node는 버린다.

2019/12/5 처음 작성