늦깎이 공대생의 인공지능 연구실

ICML Tutorial on Model-Based Methods in Reinforcement Learning(모델 기반 강화학습) - 3.루프에서의 모델 기반 제어(Model-based control in the loop) 본문

AI기술설명

ICML Tutorial on Model-Based Methods in Reinforcement Learning(모델 기반 강화학습) - 3.루프에서의 모델 기반 제어(Model-based control in the loop)

Justin T. 2025. 1. 28. 21:11

 

 우리는 어떻게 하면 모델을 학습하고 이를 기반으로 행동할 수 있을지에 대한 질문에 답하고자 합니다.

모델 학습을 위한 데이터 수집

모델을 학습시키기 위해 데이터를 어떻게 수집할 수 있을까요? 이는 마치 '닭이 먼저냐 달걀이 먼저냐'와 같은 문제입니다. 나쁜 Policy는 나쁜 Experience로 이어지고, 나쁜 모델로 이어지고, 이는 또 나쁜 Policy로 이어지는 악순환이 발생하는 것이지요.

이는 곧 학습 안정성 문제로 이어집니다. 최근 게임 이론에서 안정성에 대한 기준을 제시하는 몇 가지 연구가 있습니다.

고정된 오프라인 데이터셋(Fixed off-line datasets)

이 루프 문제를 해결하는 또 다른 방법은 Policy와 관련이 없는 고정된 Experience에서 실제로 훈련할 수 있는지 확인하는 것입니다. 예를 들어 다음과 같은 몇 가지 옵션이 있습니다:

  • 인간 시연(Human demonstration)
  • 수동으로 설계된 정책 롤아웃(Manually-engineered policy rollouts)
  • 또 다른 (차선) 정책(Another (sub-optimal) policy)

이는 최근 화제가 되고 있는 '모델 기반 오프라인 강화 학습'으로 다음과 같인 연구들이 있습니.

데이터 증강(Data augmentation)

데이터를 생성하는 또 다른 방법은 모델을 사용하여 스스로 학습할 데이터를 생성하는 것입니다(Venkatraman et al (2014)). 실제 실험에서 특정 작업을 수행하여 얻은 궤적이 있을 수 있습니다. 그 다음 모델을 롤아웃하고 예측된 다음 상태를 실제 다음 상태로 끌어오도록 훈련합니다.

 

또한 다음과 같이 모델을 자체 감사하기 위한 데이터를 생성하는 몇 가지 적대적 접근(adversarial approaches) 방식도 있습니다.

하지만 이 모든 작업을 수행한다고 해도 모델이 완벽하게 만들어지지는 않습니다. 모든 상황을 다 예측할 수는 없으며, 항상 근사치 오차가 존재하기 마련입니다. 이러한 작은 오류는 점차 커지고 복잡해집니다. 실제 데이터와 조금 더 멀리 떨어져 있는 일부 상태에서는 예상치 못한 상황이 발생할 수 있습니다. 따라서 결국 그 다음에는 더 큰 오차가 발생하고, 이러한 식으로 시간이 지남에 따라 모델 롤아웃이 실제로 예상했던 위치에서 매우 멀리 떨어진 곳에 도달할 수도 있습니다.

더욱 심각한 문제는 플래너가 목표를 달성하기 위해 이러한 모델 오류를 의도적으로 악용할 수도 있다는 것입니다.

 

이로 인해 모델 롤아웃이 길어져 신뢰도가 떨어집니다.

 

아래의 논문을 통해 동작 방식을 확인하실 수 있습니다.

불완전한 모델에서 액션 수행

“불완전한 모델로도 액션을 수행할 수 있을까요?”라는 질문에 대한 답은 '그렇다'입니다!

모델 예측 제어를 통한 plan 재설정

첫 번째 접근 방식은 단일 플랜(개방형 루프 제어)을 고수하지 않고 진행하면서 지속적으로 플랜을 재설정하는 것입니다(폐쇄형 루프 제어).

한 가지 예를 들어 보겠습니다.

어떤 초기 상태에서 시작하여 CEM과 같은 궤적 최적화 방법이나 다른 방법을 사용하여 가상의 플랜을 만들 수 있습니다. 그런 다음 이 플랜의 첫 번째 액션만 적용합니다. 그러면 실제로는 상상했던 모델과 일치하지 않는 상태가 될 수도 있습니다. 하지만 괜찮습니다! 이 새로운 state에서 다시 플랜을 세우고, 첫 번째 액션을 반복해서 적용하면 목표에 가까워질 가능성이 높으니까요.

 

이와 같은 방법을 사용하면 오류가 누적되지 않습니다. 즉, 항상 완벽한 모델을 사용할 필요 없이 올바른 방향으로 나아가는 모델 하나만 있으면 충분합니다. 이러한 plan 재설정은 시간이 오래 걸릴 수 있지만, 이전 단계의 솔루션을 다음 계획의 초기 추측값으로 재사용하는 것도 한 가지 해결책이 될 수 있습니다.


보수적 계획(Plan conservatively)

우리는 롤아웃이 길어질수록 불안정성이 높아지는 것을 확인했습니다. 한 가지 해결 방법은 롤아웃을 짧게 유지하는 것입니다. 그럼으로써 실제 데이터에서 크게 벗어나지 않을 수 있습니다. 그리고 Dyna에서 보았듯이 단 한 번의 롤아웃도 학습을 개선하는 데 큰 도움이 될 수 있습니다.

보수적으로 계획하는 다른 옵션은 모델에 대한 분포를 고려하고 모델 또는 모델 불확실성에 대한 평균 또는 최악의 경우의 WRT 분포를 계획하는 것입니다.

$$\max_{\theta}E_{f\sim F}[\sum_t\gamma^{t}r_t],\quad a_t=\pi_{\theta}(s_t),\quad s_{t+1}=f_s(s_t,a_t),\quad r_t=f_r(s_t,a_t)$$

 

 

보수적인 계획을 위한 또 다른 옵션은 모델이 확실한 상태에 가깝게 유지하는 것입니다. 이를 수행하는 방법에는 몇 가지가 있습니다:

 

보수적인 계획을 위한 마지막 두 가지 옵션에서는 불확실성이 필요합니다. 그렇다면 이 모델의 불확실성을 어떻게 확보할 수 있을까요?

모델 불확실성 추정

보수적인 계획을 위해 필요한 경우 불확실성을 모델링할 수 있지만, 이 모델링은 나중에 살펴볼 다른 용도로도 사용할 수 있습니다.

여기서는 불확실성의 두 가지 원인을 고려합니다

  1. 인식적 불확실성(Epistemic uncertainty)
    • 환경에 대한 모델의 지식 부족(Model's lack of knowledge about the world)
    • 확신에 대한 분포(Distribution over beliefs)
    • 환경에 대한 더 많은 경험 수집으로 감소 가능(Reducible by gathering more experience about the world)
    • 학습에 따른 변화(Changes with learning)
  2. 예측 불가능한 불확실성/위험(Aleatoric uncertainty/Risk)
    • 세계의 내재적 확률성(World's inherent stochasticity)
    • 결과에 대한 분포(Distribution over outcomes)
    • 감소 불가능(Irreducible)
    • 학습의 지속에 따른 정적(Static as we keep learning)

이러한 불확실성을 추정하는 방법에는 여러 가지가 있으며, 이는 다음과 같습니다.

  • 모델의 출력에 대한 분포를 모델링하는 확률론적 신경망.
    • 모델은 평균과 분산(일반적으로 Gaussian)을 명시적으로 출력함.
      $$p(s_{t+1}|s_t,a_t)=N(\mu_\theta(s_t,a_t),\sigma_\theta(s_t,a_t))$$
    • 간단하고 신뢰할 수 있음(지도 학습)
    • 불확실성/위험만 포착
    • 학습 데이터 외의 합리적인 결과물에 대한 보장 없음
  • 베이지안 신경망
    • 모델에 신경망 가중치 분포가 있는 경우
      $$p(s_{t+1}|s_t,a_t)=E_\theta[p(s_{t+1}|s_t,a_t,\theta)]$$
    • 인식론적 불확실성 및 비인지적 불확실성 포착
    • 인수 분해된 근사치는 불확실성을 과소평가할 수 있음
    • 학습하기 어려울 수 있음(그렇지만 활발히 연구되고 있는 분야에 속함)

  • 가우시안 프로세스
    • 인식적 불확실성 포착
    • 명시적으로 제어되는 상태 거리 측정지표
    • 규모를 확장하기 어려울 수 있음(그렇지만 활발히 연구되고 있는 분야에 속함)
  • 유사 카운트(Pseudo-counts)
    • 이미 방문한 카운트 또는 해시 상태(Count or hash states you already visited)
    • 인식적 불확실성 포착(Captures epistemic uncertainty)
    • 카운트하는 상태 공간에 민감할 수 있음(Can be sensitive to state space in which you count)

  • 앙상블(Ensembles)
    • 여러 모델을 독립적으로 학습하고 모델 간에 예측을 결합
    • 인식적 불확실성 포착
    • 구현이 간단하고 다양한 컨텍스트에 적용 가능
    • 상태 공간 및 네트워크 아키텍처에 민감할 수 있음

강화 학습의 배경에 대한 논의는 다음 논문을 참고 바랍니다.

Osband et al (2018). Randomized Prior Functions for Deep Reinforcement Learning.

 

위의 옵션 중 앙상블은 단순성과 유연성으로 인해 현재 인기가 높습니다.

계획과 학습의 결합(Combining planning and learning)

이전 섹션에서 이 두 가지 방법을 비교한 결과 백그라운드 계획(Background planning)과 의사 결정 시간 계획(Decision-time planning)에는 상호 보완적인 장단점이 있다는 것을 알 수 있었습니다.

의사 결정 시간 계획과 백그라운드 계획 방법을 결합하여 두 가지 방법의 이점을 모두 누리려면 어떻게 해야 할까요?

증류법(Distillation)

이 접근 방식에서는 초기 state에 대한 모음을 수집하고 각 초기 state에 대해 결정 시간 계획을 실행하여 목표에 도달하는 데 성공한 궤적 모음을 얻습니다. 이 최적의 궤적 모음을 수집한 후에는 지도 학습 알고리즘을 사용하여 정책 함수 또는 기타 함수를 학습시켜 State를 Action에 매핑할 수 있습니다. 이는 행동 복제(Behavioral Cloning)와 유사합니다.

학습 오류가 발생할 수 있는 몇 가지 문제가 있습니다.

  • 학습된 정책에 복합적인 오류가 발생할 수 있는가? state 중 하나에서 policy를 롤아웃하면 의도한 것과 다른 결과가 발생합니다.
  1. policty에 의해 방문한 이러한 state에서 새로운 의사 결정 시간 계획을 만듭니다.
  2. 이러한 궤적(새 의사 결정 시간 계획)을 증류 데이터셋에 추가(policy에서 오류가 발생하는 데이터셋 확장)

이것이 바로 Dagger 알고리즘의 개념입니다

  • 계획이 일관성이 없다면 어떻게 하면 될까요? 목표를 달성하는 방법에는 여러 가지가 있으며, 초기 조건을 조금만 변경해도 의사 결정 시간 계획이 하나의 목표를 달성하기 위해 상당히 다른 해결책을 제시할 수 있다는 것을 보았습니다. 이러한 혼란스러운 행동은 정책으로 정리하기 어려울 수 있습니다.

  1. 우리는 학습하고 있는 policy 함수가 실제로 피드백을 주고 계획에 영향을 미치도록 만들 수 있습니다.
  2. 이를 위해 정책에 가깝게 유지한다는 추가 조건을 비용에 추가할 수 있습니다. 아래 그림에서 비용 함수 \(D\)는 plan의 action값인 \(a_t\)와 policy값 \(\pi(s_t)\) 사이의 거리를 나타냅니다. 

최종값 함수(최종 state일때의 값)

많은 궤적 최적화 또는 이산 검색 접근법의 문제 중 하나는 일반적으로 계획 범위가 유한하다는 것입니다. 이는 근시안적이거나 탐욕스러운 행동으로 이어질 수 있습니다.

$$J^{H}=\sum_{t=0}^{H}\gamma^tr_t$$
이 문제를 해결하기 위해 최종 상태의 값 함수를 사용하고 이를 목적 함수에 추가할 수 있습니다. 이 학습된 값 함수는 계획을 장기적으로 좋은 상태로 안내합니다. 따라서 목적 함수는 다음과 같이 무한 상태가 됩니다

$$J^{\infty}=\sum_{t=0}^{\infty}\gamma^tr_t=\sum_{t=0}^H\gamma^tr_t+\gamma^HV(S_H)$$

이것은 의사 결정 시간 계획(최적화 문제)과 배경 계획(학습된 값 함수)을 결합한 또 다른 유형입니다.

이 방법은 불연속 및 연속 action space에서 모두 사용할 수 있습니다:

Policy 개선으로서의 계획

지금까지는 policy(배경) 또는 의사 결정 시간 계획을 사용하여 결정을 내리고 궤적과 action을 생성했습니다.

그래도 이러한 policy들이 결합되어 plan을 개선하는 데 사용할 수 있습니다. policy를 사용하여 plan에 몇 가지 정보를 제공할 수 있습니다. 예를 들어, policy는 궤적 집합을 출력할 수 있고 plan은 이를 웜 스타트(PC가 실행되는 동안 메모리에 쌓인 캐시로 인해 실행이 효율화되는 것을 의미하는 것으로 보임 - 번역자 각주) 또는 초기화로 사용하여 개선할 수 있습니다. 여기서 우리는 plan이 제안한 개선이 효과가 없도록 policy를 훈련시키고자 합니다. 따라서 policy 궤적은 우리가 할 수 있는 최선의 방법입니다. 제 생각에는 plan은 policy의 교사라고 볼 수 있습니다.

다음은 이와 관련된 몇 가지 논문들입니다.

암시적 계획(Implicit planning)

또한 plan을 사용하여 policy 궤적을 개선하기 위해 plan을 policy 네트워크 내부의 구성 요소로 배치하고 end-to-end로 학습시킬 수 있습니다.

이 방법의 장점은 policy 네트워크가 계획할 추상적인 state/action 공간을 지정한다는 것입니다. 하지만 단점은 plan 알고리즘을 통해 차별화를 해야 한다는 것입니다. 하지만 다행스러운 점은 지금까지 살펴본 여러 알고리즘이 차별화되어 이러한 plan에 통합할 수 있게 되었다는 것입니다.

몇 가지 예는 다음과 같습니다:

또한 일반적인 블랙박스 정책 네트워크와 모델 없이도 RL 훈련이 가능하다는 것을 보여주는 몇 가지 연구도 있습니다.

 

참고자료: https://kargarisaac.github.io/blog/reinforcement%20learning/machine%20learning/deep%20learning/2020/10/26/mbrl.html#Model-based-control-in-the-loop

 

Model Based Reinforcement Learning (MBRL)

This is a summary of MBRL tutorial from ICML-2020.

kargarisaac.github.io

 

반응형