앞선 강들은 경험에서 가치나 정책을 직접 배웠다(모델 프리). 이번엔 경험에서 환경 모델을 배우고, 그 모델로 계획까지 한다(모델 기반). 그리고 둘을 하나로 합친다.
강의 슬라이드: PDF
모델 기반 강화학습
큰 그림은 순환이다. 실제 경험으로 모델을 배우고, 모델로 계획해 가치나 정책을 얻고, 그 정책으로 행동해 또 경험을 모은다.
모델 기반의 장점은 모델 학습이 그냥 지도학습이라는 데 있다. 경험 튜플 $(s,a) \to (r, s')$을 데이터셋으로 보면, 보상 $s,a \to r$은 회귀 문제, 전이 $s,a \to s'$은 밀도 추정 문제다. 강화학습 특유의 어려움(비정상성, 부트스트랩) 없이 회귀·분류의 온갖 도구를 그대로 쓸 수 있다. 모델은 표 룩업부터 선형 모델, 가우시안 프로세스, 신경망까지 무엇이든 될 수 있다. 단점은 오차의 원천이 둘로 늘어난다는 것이다. 모델도 틀리고, 그 위에서 푼 가치도 틀린다.
모델은 경험을 일반화한다: AB 예제
모델이 왜 쓸모 있는지, 4강에도 나온 A, B 예가 뒤집어 보여준다. 여덟 번의 짧은 경험이 있다. A에서 시작한 에피소드는 딱 하나뿐이고 보상 0으로 끝났다. B는 여러 번 나왔고 대개 보상을 줬다.
실제 경험만으로 MC를 돌리면 $V(A) = 0$이다. A가 나온 그 한 판이 0이었으니까. 그런데 경험으로 표 룩업 모델을 세우면 “A 다음엔 B가 온다"와 “B는 대개 보상을 준다"가 따로 기록된다. 이 모델에서 가짜 경험을 뽑아 학습하면 둘이 결합돼 $V(A) \approx 0.75$가 나온다. 모델이 흩어진 통계를 이어 붙여 일반화한 것이다. 이게 계획을 학습 문제로 바꾸는 표본 기반 계획의 힘이다.
부정확한 모델
모델이 틀리면 어디까지 나빠질까. 모델 기반 RL의 성능은 그 근사 모델의 최적 정책까지가 상한이다. 세상을 잘못 배우면 잘못된 세상의 정답에 머문다. 두 대비책이 있다. 모델이 못 미덥다 싶으면 모델 프리로 돌아가는 것, 그리고 모델의 불확실성을 명시적으로 안고 계획하는 것(베이지안)이다. 현대의 모델 기반 방법들이 짧은 상상 롤아웃만 쓰며 오차 누적을 관리하는 것도 같은 고민의 연장이다.
Dyna
Dyna는 실제 경험을 두 곳에 쓴다. 하나는 직접 학습(모델 프리 갱신), 다른 하나는 모델 학습이다. 거기에 더해, 배운 모델에서 상상 경험을 뽑아 추가로 갱신한다(Dyna-Q). 실버의 미로 실험에서, 실제 한 걸음마다 상상 계획을 0번·5번·50번 곁들이면 같은 실제 경험으로도 길을 훨씬 빨리 찾는다. 상상이 실제 경험을 알뜰하게 우려내는 셈이다.
여기에 함정이 있다. 모델이 낡으면 어떻게 될까. 실버의 두 실험이 답한다. 벽이 새로 막혀 길이 어려워지면, Dyna-Q는 헛걸음을 겪으며 결국 모델을 고쳐 적응한다. 그런데 벽이 뚫려 지름길이 생기면, Dyna-Q는 낡은 모델에 안주해 그 지름길을 좀처럼 못 찾는다. 좋아진 세상을 못 보는 것이다. 해법은 오래 안 가본 곳에 탐험 보너스를 주는 Dyna-Q+다. 다음 강 탐험 문제의 예고이기도 하다.
시뮬레이션 기반 탐색
계획을 전 상태에 뿌릴 필요는 없다. 지금 상태를 뿌리로 삼아 그로부터의 서브 MDP만 풀면 된다. 이것이 전방 탐색이고, 전체를 푸는 것보다 훨씬 싸다.
뿌리에서 모델로 여러 에피소드를 끝까지 시뮬레이션해 각 첫 행동의 평균 성적을 매기면 단순 몬테카를로 탐색이다. 여기에 트리를 얹은 것이 몬테카를로 트리 탐색(MCTS)이다. MCTS의 시뮬레이션 한 번은 두 부분으로 나뉜다. 트리 안에서는 지금까지의 값으로 개선되는 트리 정책을 따르고, 트리 밖에서는 고정된 무작위 롤아웃(기본 정책)을 돌린다. 결과로 트리의 값을 갱신하고 정책을 개선하는 이 반복은, 사실 시뮬레이션 경험에 대한 몬테카를로 제어다. 그래서 트리가 좋은 수 쪽으로 자라며 최적 행동 가치로 수렴한다. 단순 MC 탐색이 첫 행동만 평가하는 것과 달리, MCTS는 트리 전체가 유망한 가지로 비대칭 성장한다.
바둑이 이 방법의 무대였다. 위치의 가치를 그 자리에서 시작한 무작위 대국들의 평균 승률로 매긴다는 대담한 발상이 통했다. MCTS가 들어온 뒤 몇 년 만에 컴퓨터 바둑은 아마추어 급수에서 프로 문턱까지 뛰어올랐다. MCTS의 강점은 뚜렷하다. 유망한 가지만 골라 깊이 파고(best-first), 위치를 그때그때 평가하며, 샘플링으로 차원의 저주를 피하고, 규칙만 굴릴 수 있으면 되는 블랙박스 모델에도 통하고, 아무 때나 멈춰도 답을 내며 병렬화도 쉽다.
시뮬레이션 경험에 MC 대신 TD(부트스트랩)를 쓰면 TD 탐색이다. 모델 프리에서 TD가 MC보다 효율적이던 논리가 탐색 안에서도 그대로 반복된다. 마지막으로 Dyna-2는 두 기억을 합친다. 실제 경험에서 TD로 배우는 장기 기억(일반적 지식)과, 지금 국면의 시뮬레이션에서 TD 탐색으로 배우는 단기 기억(현 상황 지식)을 더해 가치를 낸다. 훗날 알파고의 “미리 학습한 가치망 + 실시간 탐색” 구도가 바로 이 발상의 후예다(10강).