본문 바로가기
Data & Research

[Reinforcement Learning] Off-policy Learning

by 물박사의 저장공간 2025. 6. 22.

2025.06.29 - [Data & Research] - [Reinforcement Learning] Table of Contents


이전 포스팅에서 알아본 On-policy learning은 직관적이지만 때로는 비효율적이거나 적용하기 어려운 경우가 있습니다. 이런 경우 Off-policy learning을 고려하게 되는데요

 

1. Off-policy의 필요성

1) 탐색과 활용의 분리 (데이터 효율성 증대)

최적의 정책을 찾기 위해서는 충분한 탐색(Exploration)이 필수적입니다. 하지만 우리가 궁극적으로 배우고 싶은 '최적 정책'은 탐색 없이 가장 좋은 길만 가는 탐욕적 정책(Greedy Policy)입니다. Off-Policy는 이 문제를 해결합니다. 행동 정책(\(\mu\))은 ε-Greedy 처럼 자유롭게 탐색을 하며 데이터를 모으고, 이 데이터를 바탕으로 타겟 정책(\(\pi\))인 순수한 탐욕적 정책의 가치를 학습할 수 있습니다.

 

2) 과거 데이터의 재활용

On-Policy 방식(예: SARSA)은 정책이 \(\pi_k\)에서 \(\pi_{k+1}\)로 업데이트되면, \(\pi_k\)가 생성했던 과거의 데이터는 더 이상 쓸모가 없어집니다. Off-Policy 방식은 다른 정책이 만든 데이터도 학습에 활용할 수 있으므로, 과거의 경험 데이터를 버리지 않고 재사용하여 학습 효율을 높일 수 있습니다.

 

3) 다른 주체로부터의 학습

사람이 플레이한 로그 데이터나, 다른 에이전트의 경험 데이터를 가지고 내 에이전트의 최적 정책을 학습시킬 수 있습니다.

 

뭔가 분포가 다른데... 다른 분포의 값을 이용해서 타겟 분포를 다룬다. 어디서 본 적 있지 않나요? 네 맞습니다. 저희가 Sampling 그리고 MCMC를 살펴볼 때 나왔던 내용인데요. 좀 더 깊은 내용을 리뷰해보고 싶으신 분은 해당 포스팅을 봐주시면 되겠습니다. 

2021.11.10 - [Data & Research] - [Statistics] 샘플링(Sampling)과 MCMC

 

[Statistics] 샘플링(Sampling)과 MCMC

1. Reject Sampling (Accept-Reject Sampling) 알고리즘은 아래와 같습니다. 아래 블로그에서 퍼왔습니다. https://untitledtblog.tistory.com/134 [머신 러닝] 기각 샘플링 (Rejection Sampling) Rejection sampling (또는 acceptance-re

trillionver2.tistory.com

 

2. Importance Sampling

Importance Sampling을 하는 목적은 "어떻게 행동 정책 \(\mu(a|s)\)의 episode를 기반으로 타겟 정책 \(\pi(a|s)\)의 행동가치 함수를 추정할 수 있을까?" 입니다. 

f(x):State Value / Q(x):Behavior Policy / P(x):Target Policy

먼저, 특정 상태 \(S_t\)에서 시작하여 에피소드가 끝날 때까지의 특정 궤적(trajectory)이 발생할 확률을 정의해야 합니다. 

\[ \text{궤적 } \tau = (A_t, S_{t+1}, A_{t+1}, S_{t+2}, \dots, S_T) \]

 

(1) Target policy \(\pi\) 하에서의 trajectory 확률 vs. Behavior policy \(\mu\) 하에서의 trajectory 확률

만약 에이전트가 우리가 가치를 알고 싶은 'target 정책' \(\pi\)를 따랐다면, 위 궤적이 나타날 확률 \(P(\tau | S_t, \pi)\)는 다음과 같습니다. \begin{align*} P(\tau | S_t, \pi) &= \pi(A_t|S_t) \cdot p(S_{t+1}|S_t, A_t) \\ &\quad \cdot \pi(A_{t+1}|S_{t+1}) \cdot p(S_{t+2}|S_{t+1}, A_{t+1}) \\ &\quad \cdot \dots \\ &\quad \cdot \pi(A_{T-1}|S_{T-1}) \cdot p(S_T|S_{T-1}, A_{T-1}) \end{align*}

이를 곱셈 기호 \(\prod\)를 사용하여 간결하게 표현하면 다음과 같습니다. 이것이 importance sampling에서 계산하는 "비율"의 분자가 됩니다. \[ P(\tau | S_t, \pi) = \prod_{k=t}^{T-1} \pi(A_k|S_k) p(S_{k+1}|S_k,A_k) \]

 

마찬가지로, 에이전트가 실제로 데이터를 생성하기 위해 사용한 '행동 정책' \(\mu\)를 따랐을 때의 궤적 확률 \(P(\tau | S_t, \mu)\)는 다음과 같습니다. 이것이  importance sampling에서 계산하는 "비율"의 분모가 됩니다.

\[ P(\tau | S_t, \mu) = \prod_{k=t}^{T-1} \mu(A_k|S_k) p(S_{k+1}|S_k,A_k) \]

(2) Important sampling 비율(\(\rho\)) 정의

그럼 앞서 importance sampling에서 살펴본 것처럼 타겟 분포를 얻어내기 위해 "비율"을 계산해 봅시다. 특정 trajectory가 두 정책 하에서 나타날 확률의 비율은 다음과 같습니다.

\[ \rho_{t:T-1} = \frac{\prod_{k=t}^{T-1} \pi(A_k|S_k) p(S_{k+1}|S_k,A_k)}{\prod_{k=t}^{T-1} \mu(A_k|S_k) p(S_{k+1}|S_k,A_k)} \]

여기서 가장 중요한 점은, 우리가 모르는 환경 모델 \(p(S_{k+1}|S_k,A_k)\) 항이 분자와 분모에서 서로 약분되어 사라진다는 것입니다. 따라서 중요도 샘플링 비율은 우리가 아는 두 정책의 확률만으로 계산할 수 있습니다. 핵심은 "MDP trajectory의 확률은 MDP 구조에 영향을 받지만 두 trajectory의 비율은 MDP 구조에 영향을 받지 않는다"는 겁니다. 

\[ \rho_{t:T-1} = \prod_{k=t}^{T-1} \frac{\pi(A_k|S_k)}{\mu(A_k|S_k)} \]

(3) Off-Policy Update

이제 이 비율을 이용해 target 정책 \(\pi\)의 Policy evaluation을 할 수 있습니다.

상태 \(S_t\)의 가치 함수 \(V(S_t)\)는 다음과 같이 업데이트됩니다.

\[ V(S_t) \leftarrow V(S_t) + \alpha \left[ \rho_{t:T-1} G_t - V(S_t) \right] \]

 

\[ G_t^{\pi/\mu} = \frac{\pi(A_t|S_t)}{\mu(A_t|S_t)} \frac{\pi(A_{t+1}|S_{t+1})}{\mu(A_{t+1}|S_{t+1})} \cdots \frac{\pi(A_T|S_T)}{\mu(A_T|S_T)} G_t \] 와 같이 정의한다면 아래와 같이 표시할 수도 있겠죠. 

\[ V(S_t) \leftarrow V(S_t) + \alpha \left( G_t^{\pi/\mu} - V(S_t) \right) \]

 

마찬가지로 TD 방식에서의 업데이트도 생각해볼 수 있습니다.

\[ V(S_t) \leftarrow V(S_t) + \alpha \left[ \rho_t (R_{t+1} + \gamma V(S_{t+1})) - V(S_t) \right] \]

여기서 중요도 샘플링 비율 \(\rho_t\)는 딱 한 스텝에 대한 비율입니다.

\[ \rho_t = \frac{\pi(A_t|S_t)}{\mu(A_t|S_t)} \]

더보기

Off-Policy MC Control 업데이트: \[ Q(S_t, A_t) \leftarrow Q(S_t, A_t) + \alpha \left[ \rho_{t:T-1} G_t - Q(S_t, A_t) \right] \]

Off-Policy TD Control 업데이트: (SARSA와 유사하지만 \(\rho\)가 추가됨) \[ Q(S_t, A_t) \leftarrow Q(S_t, A_t) + \alpha \left[ \rho_t (R_{t+1} + \gamma Q(S_{t+1}, A_{t+1})) - Q(S_t, A_t) \right] \]

 

그런데, Importance Sampling의 가장 큰 단점은 분산이 매우 크다는 것입니다. \(\rho_{t:T-1}\)는 여러 비율의 곱으로 이루어져 있어, 그 값이 매우 크거나 0에 가까워지기 쉽습니다. 거기에 구현도 번거롭습니다. 결국 이것이 다음 포스팅의 Q-learning의 개념으로 이어지게 됩니다.