수업 내용을 정리한 것이므로, 작성자의 상태에 따라 잘못된 내용이 적힐 수 있습니다.
오류사항 있으면 지적부탁드립니다 헿
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 과정을 반복적으로 수행한다.
- Selection
- tree policy를 통해 leaf node에 도달할 때 까지 선택
- Expansion
- 어떤 Action을 취하여 새로운 State에 도달
- 그 State를 tree의 leaf node로서 추가
- Simulation(Evaluation)
- Rollout(Default) policy를 통해 끝날 때 까지 수행하여 결과를 획득한다.
- Backpropagation(Update)
- expansion된 node부터, 결과값을 이용하여 update해준다.
- rollout된 node는 버린다.
2019/12/5 처음 작성
'Major in CS > Reinforcement Learning(강화학습)' 카테고리의 다른 글
Reinforcement Learning (7) - Policy Based RL (0) | 2019.12.05 |
---|