늦깎이 공대생의 인공지능 연구실
ICML Tutorial on Model-Based Methods in Reinforcement Learning(모델 기반 강화학습) - 1.소개 및 모델 학습 본문
ICML Tutorial on Model-Based Methods in Reinforcement Learning(모델 기반 강화학습) - 1.소개 및 모델 학습
Justin T. 2022. 2. 3. 01:28
※이 글은 ICML 2020에서 발표된 Tutorial on Model-Based Methods in Reinforcement Learning의 내용에 대해 Isaac Kargar의 요약본을 번역한 내용임 정리한 것임을 알립니다.
소개 및 동기 부여
월드 모델에 접근하여 의사 결정에 사용하는 것은 상당히 강력한 아이디어입니다. 로봇 공학(어떤 행동을 함으로써 일어날 일에 대한 조작), 자율주행 자동차(다른 에이전트의 결정과 미래 움직임에 대한 모델을 가지고 그에 따른 행동), 게임(AlphaGo- 다른 가능성을 검색), 과학(화학 사용 사례), 운영 연구 및 에너지 적용(수요를 충족시키기 위해 다양한 시점에 재생 에너지를 공급)과 같은 다양한 분야에서 모델 기반 강화학습(MBRL)의 응용분야는 무궁무진 합니다.
문제 상태
순차적 의사 결정에 있어 agent는 액션 \(a\)를 수행하고 다음 상태 \(s\)를 얻고 \(r\)를 보상함으로써 세상과 상호 작용합니다.
우리들은 위와 같은 문제를 마르코프 의사결정과정(Markov Decision Process) 방식으로 다음과 같이 나타낼 수 있습니다.
- 상태(State) \(S\in R^{d_{s}}\)
- 행동(Action) \(A\in R^{d_{A}}\)
- 보상함수(Reward function) \(R:S×A\to R\)
- 전이함수(Transition function) \(T:S×A\to S\)
- 할인율(Discount rate) \(\gamma\in (0,1)\)
- 정책(Policy) \(\pi:S\to A\)
향후 할인율이 적용된 보상의 합계를 극대화하는 정책을 찾는 것이 목표인 함수는
$$argmax_{\pi}\sum_{t=0}^{\infty }\gamma^{t}R(s_{t},a_{t})$$
이는 다음 식에 대해 만족합니다.
$$a_{t}=\pi(s_{t}),s_{t+1}=T(s_{t},a_{t})$$
위 식의 최적화 문제는 어떻게 풀 수 있을까요?
- 데이터 \(D=\{{s_{t},a_{t},r_{t+1},s_{t+1}}\}^{T}_{t=0}\)를 모음
- Model-free: 데이터로부터 정책을 직접 학습$$D\toπ\qquad e.g. Q-learning, policy gradient$$
- Model-based: 모델을 학습한 후, 정책을 학습하거나 향상시키기 위해 사용$$D\to f\to \pi$$
모델이란 무엇인가?
모델은 환경(Environment)과 작업(Task)의 구조에 대한 지식을 명시적으로 인코딩하는 표현입니다.
이 모델은 다양한 형태를 취할 수 있습니다.
- 전이/동적 모델: \(s_{t+1}=f_{s}(s_{t},a_{t})\)
- 보상 모델: \(r_{t+1}=f_{r}(s_{t},a_{t})\)
- 역전이/동적 모델(한 상태에서 다음 상태로 이동하고 수행할 작업을 알려줌): \(a_{t}=f^{-1}_{s}(s_{t},s_{t+1})\)
- 두 상태의 거리 모델: \(d_{ij}=f_{d}(s_{i},s_{j})\)
- 미래 리턴 모델: \(G_{t}=Q(s_{t},a_{t})\quad or\quad G_{t}=V(s_{t})\)
일반적으로 MBRL(모델 기반 강화학습)이라고 하면 전이모델과 보상 모델을 의미합니다.
때때로 우리는 Ground-truth의 역학관계와 보상을 알고 있습니다. 그걸 쓰는 게 나을 수도 있지요! 게임 환경이나 Mujoco, Carla 등과 같은 시뮬레이터와 같은 환경에서 말이지요.
하지만 우리는 모든 경우에 모델에 접근할 수 없기 때문에 모델을 배워야 합니다. 로봇과 같은 경우, 복잡한 신체적 역학, 그리고 인간과의 상호작용 등이 있습니다.
어떻게 모델을 사용할 것인가?
모델이 없는 강화학습 Agent의 입장에서, 우리는 아래와 같은 그림을 통해 정책과 학습 알고리즘을 갖출 수 있습니다.
모델 기반 강화학습에서, 아래와 같은 세 가지 다른 방법으로 모델을 사용할 수 있습니다.
- 환경 시뮬레이션: 환경을 모델로 교체한 후 이를 사용하여 데이터를 생성하고 이를 사용하여 정책을 업데이트합니다.
- 학습 알고리즘 보조: 모델을 사용하여 데이터를 다르게 해석하도록 학습 알고리즘을 수정합니다.
- 정책 강화: 테스트 시 에이전트가 모델이 완료되기 전에 모델을 사용하여 다른 작업을 시도할 수 있습니다(실제 작업 수행).
일반적으로 모델이 있을 때와 없을 때의 강화학습의 차이는 다음과 같습니다.
모델은 어떻게 학습하는가?
모델 학습 방법에 있어 두 가지 차원에서 주의깊게 볼 필요가 있습니다.
- 모델이 학습되고 있는 상태(States)의 특성 표현
- 상태 간의 전이 표현
상태 전이 모델(State-Transition Model)
우리는 어떤 경우 운동 방정식과 역학 방정식은 알고 있지만, 질량과 같은 정확한 매개 변수는 알지 못합니다. 시스템 식별(System identification)을 사용하여 질량과 같은 알려지지 않은 파라미터를 추정할 수 있습니다. 그러나 이러한 종류의 경우 시스템이 정확히 어떻게 작동하는지에 대한 많은 도메인 지식이 필요합니다.
우리들이 운동 역학을 모르르더라도, MLP를 사용하여 \(s_t\)와 \(a_t\)의 관계와 다음 상태값인 \(s_{t+1}\)을 얻을 수 있습니다.
환경에 대한 도메인 지식이 완벽하지 않은 경우, 그래프 신경망(GNN)을 사용하여 에이전트(로봇)를 모델링할 수 있습니다. 예를 들어 Mujoco에서는 노드를 신체 부위로 하고 모서리를 관절로 하는 로봇(에이전트)을 모델링해 물리 엔진을 배울 수 있습니다.
관찰 전이 모델(Observation-transition model)
이 경우 상태(관절 각도와 같은 낮은 단계의 상태)에는 접근할 수 없지만 이미지를 통해 접근할 수는 있습니다. 이러한 경우에 대한 MDP는 다음과 같습니다.
그럼 우리는 MDP를 어떻게 사용할 수 있을까요?
- 관측치 사이의 전이를 직접 예측합니다(관찰 전이 모델).
- 모든 시간별 단계마다 관측 재구성: LSTM처럼 사용하여 각 시간별 단계에서 전체 관측을 재구성해야 합니다. 이 경우에는 이미지가 흐려보일 수 있습니다.
잠재 상태 전이모델(Latent state-transition models)
우리가 관측에 접근할 수 있는 또 다른 옵션은 관측 사이에 전이를 하는 대신 잠재 상태를 유지할 수 있고 관측 공간이 아닌 그 잠재 공간(잠재 상태 전이 모델)에서 전이를 하는 것입니다. 모든 시간별 단계에 대한 관측을 재구성하는 것보다 훨씬 빠를 것입니다. 우리는 초기 관측 또는 마지막 관측을 한 다음 잠재 상태에 반영한 다음 제때에 이를 풀어서 \(o\) 대신 \(z\)로 예측을 수행합니다.
보통 훈련 중에 관측을 사용하고 재구성하지만 테스트 시간에 우리는 모델을 매우 빠르게 풀 수 있습니다. 또한 우리가 원하는 각 시간별 단계에서 관측을 재구성할 수 있습니다(반드시 모든 시간별 단계마다 관찰을 재구성할 수 없습니다).
구조화된 잠재 상태 전이 모델(Structured latent state-transition models)
조금만 더 도메인 지식을 가지고 있다면 할 수 있는 또 다른 일은 잠재 상태에 약간의 구조를 추가하는 것입니다. 예를 들어 모델링하려는 장면이 객체로 구성되어 있는 경우 실제로 객체를 명시적으로 감지하고 분할한 다음 객체체 간의 전이를 학습할 수 있습니다.
반복되는 값 모델(Recurrent value models)
잠재 상태를 풀어보면 보상에 더해 미래의 각 시점에서의 상태값을 추가로 예측한다는 취지입니다. 관측을 사용하여 모델을 훈련할 필요 없이 실제 환경에서 풀 때 실제 관측값으로 진행되는 값을 예측하여 모델을 훈련시킬 수 있습니다.
이 모델은 왜 유용할까요? 왜냐하면 일부 플래너 계획 유형은 오직 MCTS(몬테 카를로 트리 탐색)과 같은 상태를 예측하는 대신 값만 예측하면 되기 때문입니다.
비모수적 모델(Non-parametric models)
지금까지 모델을 학습하는 모수적(ㅖarametric) 방법에 대해 알아보았습니다. 사실 그래프와 같이 비모수적인 방법을 사용할 수도 있습니다.
예를 들어, Off-polocy 방법에서 사용하는 리플레이 버퍼는 리플레이 버퍼에 충분한 데이터가 있는 경우 버퍼에서 샘플을 추출하여 전이 도중에 밀도 모델에 액세스할 수 있는 모델 유형에 근접한 것을 볼 수 있습니다. 추가 리플레이를 사용하면 모수적 모델을 학습하는 모델 기반 방법을 사용할 때와 동일한 수준의 성능을 얻을 수 있습니다.
또한 버퍼의 데이터를 사용하여 데이터 포인트를 활용하고 데이터 포인트 간의 전이를 학습하여 버퍼의 상태 간의 상태를 찾기 위해 보간법(Interpolate)을 사용할 수 있습니다. 분포를 배우고 새로운 데이터 포인트를 생성하기 위해 이를 사용합니다.
비모수적 전이의 또 다른 형태는 딥러닝 커뮤니티(Deep learning community)가 아닌 플래닝 커뮤니티(Planning community)에서 널리 사용되는 상징적 설명(Symbolic description)입니다.
비모수적 모델의 또 다른 형태는 가우시안 프로세스(Gaussian processes)로, 매우 적은 양의 데이터를 사용하여 강력한 예측을 제공합니다. PILCO는 이러한 알고리즘의 한 예입니다.
다음 포스팅에서 내용이 계속 이어집니다..