ai theory

강화학습 기초 (17) - 이미 모인 Data만으로 행동을 배울 수 있을까

Junyoung Park · 2024-07-05 · 5 min

들어가며...

지금까지의 Agent는 환경에 접속해 새 경험을 계속 만들 수 있었다. 실패하면 다시 시도하고, 잘 모르는 Action은 탐색했다.

현실에서는 이 가정이 어려운 경우가 많다.

  • 의료 처치의 위험한 Action을 학습 목적으로 시도할 수 없다.
  • Robot을 수백만 번 넘어뜨리면 장비가 망가진다.
  • 이미 기록된 사용자 Log만 있고 새 Experiment를 할 수 없을 수 있다.

이때 고정된 Dataset,

D={(si,ai,ri,si)}i=1N\mathcal D = \left\{ (s_i,a_i,r_i,s'_i) \right\}_{i=1}^{N}

만으로 Policy를 학습하는 문제가 생긴다.

이번 글에서는 전문가의 Action을 흉내 내는 Imitation Learning과, 고정 Dataset에서 Reward까지 이용해 더 좋은 Policy를 찾는 Offline RL을 비교한다.

Behavior Cloning: Action을 정답처럼 학습한다

Demonstration Dataset에 State와 전문가 Action의 Pair가 있다고 하자.

Ddemo={(si,aiexpert)}\mathcal D_{\text{demo}} = \left\{ (s_i,a_i^{\text{expert}}) \right\}

Behavior Cloning은 이를 Supervised classification 또는 Regression 문제로 본다.

Discrete action이라면 Negative log-likelihood를 최소화할 수 있다.

LBC(θ)=E(s,a)D[logπθ(as)]L_{\text{BC}}(\theta) = - \mathbb E_{(s,a)\sim\mathcal D} \left[ \log\pi_\theta(a\mid s) \right]

Dataset에서 전문가가 고른 Action의 확률을 높이는 식이다. Reward나 Next state가 없어도 학습할 수 있다는 장점이 있다.

작은 실수가 새로운 State를 만든다

Supervised validation accuracy가 높아도 Policy를 실제로 실행하면 문제가 생길 수 있다.

전문가 Dataset은 전문가가 방문한 State에 집중되어 있다. 학습된 Policy가 작은 Action error를 내면 전문가 경로에서 조금 벗어난 State에 도착한다. 그 State는 Dataset에 거의 없으므로 다음 Action의 Error가 더 커지고, 경로는 더 멀어진다.

Behavior Cloning의 작은 Action error는 전문가가 방문하지 않은 State를 만들고, 그곳의 Error가 시간에 따라 누적될 수 있다.

이 현상을 Covariate shift라고 한다.

sdexpertduring trainings\sim d_{\text{expert}} \quad\text{during training}

이지만 실행할 때는,

sdπθs\sim d_{\pi_\theta}

이다. 입력 State distribution이 달라진다.

DAgger는 Policy가 방문한 State도 묻는다

DAgger는 이 Distribution gap을 줄이기 위한 방법이다.

  1. 현재 Policy를 환경에서 실행한다.
  2. 현재 Policy가 실제로 방문한 State를 모은다.
  3. 그 State에서 전문가에게 올바른 Action을 묻는다.
  4. 새 Label을 Dataset에 추가해 다시 학습한다.
DD{(s,πexpert(s))}\mathcal D \leftarrow \mathcal D \cup \left\{ (s,\pi_{\text{expert}}(s)) \right\}

이렇게 하면 실수 뒤에 도착하는 State에도 전문가 예시가 생긴다. 다만 DAgger는 학습 중 환경에 접속하고 전문가에게 추가 Query를 보낼 수 있어야 한다. 완전히 고정된 Offline setting에서는 사용할 수 없다.

Offline RL은 무엇이 다른가

Offline RL Dataset에는 Reward와 Next state가 포함된다.

(s,a,r,s)(s,a,r,s')

Behavior Cloning은 “Data에서 어떤 Action을 했는가”만 따라간다. Offline RL은 “그 Action 뒤에 어떤 Reward와 미래가 왔는가”를 이용해 Dataset을 만든 Behavior policy보다 더 좋은 Action을 찾으려 한다.

예를 들어 같은 State 근처에서 Action A는 자주 등장하지만 Reward가 낮고, Action B는 적게 등장해도 Reward가 높다면 Offline RL은 B의 비중을 높일 수 있다.

이 점이 매력적이지만 어려움도 만든다. Dataset에 없는 Action의 결과는 확인할 수 없다.

보지 못한 Action의 Q값

Online Q-Learning에서는 Q값이 높은 Action을 실제로 실행해 검증할 수 있다. 틀렸다면 새 Transition이 Q값을 고친다.

Offline RL에서는 Dataset 밖 Action을 실행할 수 없다. Function approximation이 그 Action의 Q값을 우연히 높게 예측해도 반박할 Data가 들어오지 않는다.

Y=r+γmaxaQ(s,a)Y = r + \gamma\max_{a'}Q(s',a')

max\max가 Dataset에서 거의 보지 못한 aa'를 고르면, 근거 없는 Q값이 Bootstrap Target에 들어간다. 그 Target으로 다시 Q를 학습하면 Error가 커질 수 있다. 이를 Extrapolation error 또는 Out-of-distribution action 문제라고 한다.

Dataset이 지지하지 않는 Action은 Q값을 검증할 수 없다. Conservative method는 이런 Action의 낙관적인 값을 낮춘다.

Dataset 가까이에 머무는 방법

Offline RL은 대체로 Policy나 Value가 Dataset의 Support에서 너무 멀리 가지 않도록 한다.

Policy constraint

학습 Policy가 Behavior policy와 크게 달라지지 않게 제한한다.

D(πθ(s),πβ(s))ϵD \left( \pi_\theta(\cdot\mid s), \pi_\beta(\cdot\mid s) \right) \leq \epsilon

πβ\pi_\beta는 Dataset을 만든 Behavior policy다.

Conservative value

Dataset에 없는 Action의 Q값을 낮추는 Penalty를 준다. “증거가 없으면 좋다고 가정하지 말자”는 방향이다.

Advantage-weighted imitation

Data의 모든 Action을 똑같이 복제하지 않고 Advantage가 높은 Action을 더 강하게 따라간다.

L(θ)=E(s,a)D[w(s,a)logπθ(as)]L(\theta) = - \mathbb E_{(s,a)\sim\mathcal D} \left[ w(s,a) \log\pi_\theta(a\mid s) \right]

w(s,a)w(s,a)는 좋은 Action일수록 큰 Weight다.

Dataset의 품질이 Algorithm의 한계를 정한다

Offline RL은 Dataset에 전혀 없는 행동을 마법처럼 평가할 수 없다.

Dataset을 볼 때는 다음을 확인해야 한다.

  • Coverage: 중요한 State와 Action을 충분히 포함하는가?
  • Quality: 성공과 실패가 모두 들어 있는가, 한쪽에 치우쳤는가?
  • Reward: 기록된 Reward가 실제 목표를 잘 나타내는가?
  • Behavior policy: 누가 어떤 규칙으로 Data를 만들었는가?
  • Confounding: 기록되지 않은 변수가 Action과 결과에 영향을 주지 않았는가?

좋은 Trajectory만 있으면 Behavior Cloning이 강한 Baseline이 될 수 있다. 다양한 성공과 실패가 있고 Reward가 신뢰할 수 있다면 Offline RL이 행동의 상대적 가치를 더 활용할 수 있다.

세 Setting 비교

Setting새 환경 상호작용Reward 사용핵심 위험
Behavior Cloning필요 없음필요 없음Covariate shift, 전문가 Error 복제
DAgger필요함필수 아님전문가 Query 비용
Offline RL없음사용Dataset 밖 Action의 Value error
Online RL계속 사용사용탐색 비용과 안전 문제

용어보다 “학습 중 새 Data를 만들 수 있는가?”를 먼저 확인하면 문제의 성격이 분명해진다.

이번 글에서 기억할 것

Imitation Learning은 Dataset의 행동을 따라 배우고, Offline RL은 고정 Dataset의 Reward와 Transition을 이용해 더 좋은 행동을 찾되 Dataset 밖의 낙관적 추정을 경계한다.

  1. Behavior Cloning은 logπ(as)-\log\pi(a\mid s)를 최소화하는 Supervised learning이다.
  2. 실행 중 작은 Error는 Training distribution 밖 State를 만들어 누적될 수 있다.
  3. DAgger는 현재 Policy가 방문한 State에 전문가 Label을 추가한다.
  4. Offline RL은 Reward를 사용하지만 OOD action의 Q값을 검증할 새 경험이 없다.
  5. Dataset coverage와 quality가 가능한 Policy의 범위를 크게 결정한다.

다음 글에서는 Offline Trajectory를 Return, State, Action의 Token sequence로 바꿔 Transformer가 Action을 예측하게 만드는 Decision Transformer를 살펴본다.

참고 자료