ai theory
강화학습 기초 (16) - 환경을 상상하며 학습하는 Model-based RL
Junyoung Park · 2024-06-28 · 5 min
들어가며...
지금까지 다룬 Monte Carlo, TD, DQN, PPO는 환경의 Transition rule을 명시적으로 배우지 않았다. 경험을 받으면 Value나 Policy를 바로 고쳤다. 이런 방법을 Model-free RL이라고 한다.
Model-based RL은 한 가지를 더 배운다.
이 State에서 이 Action을 하면 다음에 무엇이 일어날까?
환경 Model이 있다면 실제 환경에서 매번 부딪혀보지 않고도 가능한 미래를 상상해 계획할 수 있다. 다만 틀린 Model로 오래 상상하면 잘못된 미래를 확신할 수 있다.
이번 글에서는 Model의 의미, Learning과 Planning의 차이, 두 과정을 연결하는 Dyna를 살펴본다.
환경 Model이 예측하는 것
MDP의 Dynamics는 다음 확률로 표현했다.
현재 State 와 Action 가 주어졌을 때 Next state 와 Reward 의 분포다.
Model 는 이 분포를 Data로 근사한다.
결정적인 환경이라면 Neural Network가 다음 State와 Reward를 바로 예측할 수 있다.
확률적인 환경이라면 평균 하나만 맞히는 것보다 가능한 결과의 Distribution을 표현해야 한다.
Learning과 Planning
두 단어를 구분하면 Model-based RL이 쉬워진다.
- Learning: 실제 환경의 경험으로 Value, Policy, Model을 고친다.
- Planning: Model이 만든 가상 경험으로 Value나 Policy를 고친다.
실제 Transition과 Model Transition은 Update 식에서 같은 모양일 수 있다.
차이는 이 Tuple이 현실에서 왔는지 Model의 Simulation에서 왔는지다.
Dyna: 경험하고, 배우고, 상상한다
Dyna architecture는 Model-free learning과 Planning을 한 Loop에 넣는다.
- 실제 환경에서 Action을 수행해 Transition을 얻는다.
- 실제 Transition으로 Value 또는 Policy를 Update한다.
- 같은 Transition으로 Model을 학습한다.
- 이전에 본 State-Action을 골라 Model로 가상 Next state와 Reward를 만든다.
- 가상 Transition으로 Value 또는 Policy를 여러 번 Update한다.
Q-Learning을 사용한다면 실제 경험과 가상 경험 모두 같은 식으로 Update할 수 있다.
한 번의 실제 환경 Step 뒤에 Planning update를 번 수행하면, 비싼 상호작용 하나를 더 많이 활용할 수 있다.
Planning의 간단한 예
미로에서 실제로 를 수행해 로 이동했다고 하자. Model은 이를 기억한다.
나중에 Agent가 다른 곳에 있어도 Model에서 를 다시 꺼내 RIGHT를 가상으로 수행할 수 있다. 실제로 까지 돌아가지 않고도 Q값을 반복해서 고친다.
이것은 이미 모은 경험을 Replay하는 것과 닮았지만 차이가 있다.
- Replay buffer는 실제로 관찰한 Transition을 다시 사용한다.
- Model은 학습한 Dynamics를 이용해 관찰하지 않은 조합이나 미래도 생성할 수 있다.
Model-based RL이 Sample-efficient한 이유
Robot을 한 번 움직이거나 사람에게 한 번 답을 평가받는 일은 비싸다. 반면 학습된 Model에서 Simulation을 돌리는 것은 상대적으로 저렴할 수 있다.
실제 경험 하나로,
를 만들면 같은 환경 상호작용 예산에서 더 많은 학습 Signal을 얻는다. 이것이 Model-based method의 중요한 장점이다.
또 Model이 명시적이면 Counterfactual question도 다룰 수 있다. “여기서 왼쪽이 아니라 오른쪽으로 갔다면?”을 실제로 실행하지 않고 비교할 수 있다.
Model이 틀리면 Planning도 틀린다
Model은 Data가 많은 구간에서는 정확하고, 거의 방문하지 않은 구간에서는 부정확할 수 있다. Policy가 Model의 작은 Error를 이용하는 Action을 찾으면 실제 환경에서는 실패할 수 있다.
특히 여러 Step을 연속으로 Model에서 Rollout하면 Error가 누적된다.
첫 예측의 작은 오차가 두 번째 입력이 되고, 그 오차가 다음 Step에서 더 커진다.
Model bias를 줄이는 방법
실제 Algorithm은 여러 장치를 사용한다.
짧은 Model rollout
Real state에서 시작해 몇 Step만 Model을 사용하고 다시 실제 Data로 돌아온다. 긴 상상보다 Error 누적이 작다.
Ensemble과 Uncertainty
여러 Model을 학습해 예측이 크게 다른 구간을 불확실하다고 본다. 불확실한 Transition의 Planning 비중을 줄이거나 실제 환경에서 Data를 더 모은다.
Real data와 섞기
Model data만으로 학습하지 않고 실제 Transition을 계속 섞어 Policy가 현실에서 멀어지지 않게 한다.
보수적인 목적
Model이 확신하지 못하는 State-Action을 지나치게 낙관적으로 평가하지 않도록 Penalty를 줄 수 있다.
Model-free와 Model-based는 양자택일이 아니다
실제 방법들은 연속선 위에 있다.
| 방법 | Model 사용 | 예시 역할 |
|---|---|---|
| Model-free | 없음 | 경험으로 Q나 Policy를 직접 Update |
| Dyna-style | 학습한 Model | 실제 Update와 Planning update를 함께 사용 |
| Planning 중심 | 알려진 또는 학습한 Model | Search로 Action을 선택 |
| Hybrid | 일부만 Model | 짧은 Rollout, Value bootstrap, Search 결합 |
Model로 미래를 전부 예측하지 않아도 된다. Reward만 예측하거나, 몇 Step 뒤의 Latent state만 예측하거나, Search의 일부 구간에서만 사용할 수 있다.
이번 글에서 기억할 것
Model-based RL은 환경의 Next state와 Reward를 예측하는 Model을 배우고, 그 Model이 만든 가상 경험으로 Planning한다.
- 환경 Model은 를 근사한다.
- Learning은 실제 경험에서, Planning은 Model의 경험에서 Update한다.
- Dyna는 실제 한 Step 뒤에 여러 Planning update를 수행한다.
- Model은 Sample efficiency를 높이지만 잘못된 예측은 Policy를 잘못된 방향으로 이끈다.
- 짧은 Rollout, Uncertainty, Real data 혼합으로 Model bias를 완화할 수 있다.
다음 글에서는 실제 환경에 새로 접속할 수 없고 이미 모인 Dataset만 있을 때의 Imitation Learning과 Offline RL을 살펴본다.