2025.06.29 - [Data & Research] - [Reinforcement Learning] Table of Contents
1. On-Policy 학습의 한계
On-Policy 정책 경사도의 업데이트 규칙은 다음과 같이 현재 정책 \(\pi_{\theta}\)에 대한 기댓값으로 표현됩니다.
\[ \nabla_{\theta} J(\theta) = \mathbb{E}_{\tau \sim \pi_{\theta}} \left[ \nabla_{\theta} \log p_{\theta}(\tau) R(\tau) \right] \]
이 식의 의미는 그래디언트를 계산하는 데 사용되는 샘플 궤적 \(\tau\)가 반드시 현재 파라미터 \(\theta\)를 가진 정책 \(\pi_{\theta}\)로부터 샘플링되어야 한다는 것입니다. 따라서 정책이 \(\theta \to \theta'\)로 업데이트되는 순간, 이전에 \(\pi_{\theta}\)로 뽑았던 모든 데이터는 'old data'가 되는 것이죠.
2. Importance Sampling의 활용
그럼 이전 가치기반 학습에서 살펴본 것처럼 Importance sampling을 이용해서 이전 정책을 활용할 수 있도록 해볼까요?
- 타겟 정책의 tarjectory 확률: \(\pi_{\theta}(\tau)\)
- 행동 정책의 trajectory 확률: \(\mu(\tau)\)
우리가 구하고 싶은 목적 함수 \(J(\theta)\)는 타겟 정책 \(\pi_{\theta}\)에 대한 리턴의 기댓값입니다.
\[ J(\theta) = \mathbb{E}_{\tau \sim \pi_{\theta}}[R(\tau)] \]
이를 importance sampling을 이용해 행동 정책 \(\mu\)에 대한 기댓값으로 바꾸면 다음과 같습니다.
\[ J(\theta) = \mathbb{E}_{\tau \sim \mu} \left[ \frac{\pi_{\theta}(\tau)}{\mu(\tau)} R(\tau) \right] \]
여기서 \(\rho(\tau) = \frac{\pi_{\theta}(\tau)}{\mu(\tau)}\)는 어떻게 계산할까요? trajectory의 확률은 시작 상태 확률과 각 스텝의 정책 확률, transition probability의 곱입니다.
\[ p_{\theta}(\tau) = p(S_0) \prod_{t=0}^{T-1} \pi_{\theta}(A_t|S_t) p(S_{t+1}|S_t, A_t) \]
따라서 비율을 계산하면, 우리가 모르는 환경 모델 \(p(S_{t+1}|S_t, A_t)\)와 시작 상태 분포 \(p(S_0)\)는 분자/분모에서 약분되어 사라지고, 두 정책의 확률 비율만 남게 됩니다.
$$ \begin{aligned} \rho(\tau) &= \frac{\pi_{\theta}(\tau)}{\mu(\tau)} & & \\ &= \frac{p(S_0) \prod_{t=0}^{T-1} \pi_{\theta}(A_t|S_t) p(S_{t+1}|S_t, A_t)}{p(S_0) \prod_{t=0}^{T-1} \mu(A_t|S_t) p(S_{t+1}|S_t, A_t)} & & \text{; (trajectory 확률의 전체 정의)} \\ &= \frac{\prod_{t=0}^{T-1} \pi_{\theta}(A_t|S_t)}{\prod_{t=0}^{T-1} \mu(A_t|S_t)} & & \text{; (약분 후 결과)} \\ &= \prod_{t=0}^{T-1} \frac{\pi_{\theta}(A_t|S_t)}{\mu(A_t|S_t)} \end{aligned} $$
위 유도 과정에서 가장 중요한 점은, 우리가 알지 못하는 환경 모델 \(p(S_{t+1}|S_t, A_t)\)과 시작 상태 분포 \(p(S_0)\)가 분자와 분모에 동일하게 존재하여 약분된다는 것입니다. 그 결과, 중요도 샘플링 비율은 오직 우리가 알고 제어할 수 있는 두 정책, \(\pi_{\theta}\)와 \(\mu\)의 비율만으로 계산할 수 있게 됩니다. 이것이 모델 없이 Off-Policy 학습을 가능하게 하는 핵심 원리입니다.
\[ \rho(\tau) = \frac{\pi_{\theta}(\tau)}{\mu(\tau)} = \frac{p(S_0) \prod_{t=0}^{T-1} \pi_{\theta}(A_t|S_t) p(S_{t+1}|S_t, A_t)}{p(S_0) \prod_{t=0}^{T-1} \mu(A_t|S_t) p(S_{t+1}|S_t, A_t)} = \frac{\prod_{t=0}^{T-1} \pi_{\theta}(A_t|S_t)}{\prod_{t=0}^{T-1} \mu(A_t|S_t)} \]
4. Off-policy Gradient
이로써 우리는 모델 없이도 다른 정책의 경험을 현재 정책 학습에 활용할 수 있는 수학적 기반을 마련했습니다. 이제 이 목적 함수를 \(\theta\)에 대해 미분하여 Off-Policy 정책 경사도를 구하고, 학습을 진행할 수 있습니다.
\[ \rho(\tau) = \frac{\pi_{\theta}(\tau)}{\mu(\tau)} = \prod_{t=0}^{T-1} \frac{\pi_{\theta}(A_t|S_t)}{\mu(A_t|S_t)} \]
\[ \nabla_{\theta} \log \pi_{\theta}(\tau) = \sum_{t=0}^{T-1} \nabla_{\theta} \log \pi_{\theta}(A_t|S_t) \]
\[ R(\tau) = \sum_{t'=t}^{T}r(S_t,A_t) \]
\[ J(\theta) = \mathbb{E}_{\tau \sim \mu} \left[ \frac{\pi_{\theta}(\tau)}{\mu(\tau)} R(\tau) \right] \]
이 목적 함수를 정책 파라미터 \(\theta\)에 대해 미분합니다. 기댓값은 \(\mu\)에 대해 계산되므로, 그래디언트는 \(\pi_{\theta}\)에만 영향을 줍니다.
\[ \nabla_{\theta} J(\theta) = \nabla_{\theta} \mathbb{E}_{\tau \sim \mu} \left[ \frac{\pi_{\theta}(\tau)}{\mu(\tau)} R(\tau) \right] = \mathbb{E}_{\tau \sim \mu} \left[ \frac{\nabla_{\theta} \pi_{\theta}(\tau)}{\mu(\tau)} R(\tau) \right] \]
여기에 로그-미분 트릭 \(\nabla_x f(x) = f(x) \nabla_x \log f(x)\)을 \(\nabla_{\theta} \pi_{\theta}(\tau)\)에 적용하면,
\[ \nabla_{\theta} \pi_{\theta}(\tau) = \pi_{\theta}(\tau) \nabla_{\theta} \log \pi_{\theta}(\tau) \]
이를 위 식에 다시 대입하면, 최종적인 Off-Policy 정책 경사도를 유도해낼 수 있습니다.
\[ \nabla_{\theta} J(\theta) = \mathbb{E}_{\tau \sim \mu} \left[ \frac{\pi_{\theta}(\tau)}{\mu(\tau)} \nabla_{\theta} \log \pi_{\theta}(\tau) R(\tau) \right] \]
이 식은 "전체 궤적의 확률 비율"과 "전체 궤적의 로그-그래디언트 합"과 "전체 궤적의 리턴"을 곱한 것의 기댓값을 취하는 형태입니다.
3. 인과관계의 고려
사실 인과 관계를 고려하면 식을 좀 더 변형하는 것이 가능합니다(Notation은 본문에서 사용했던 것과 조금 다릅니다. 여기에 주의해서 봐주세요).
Off-policy 방법론도 살펴보았는데요, 앞 서 가치기반 학습에서와 비슷한 문제가 여기서도 발생합니다. 학습 과정이 inefficient하고 variance가 높다는 단점이 있는 것이죠. 이러한 맥락 속에서 Actor-Critic 알고리즘이 등장하게 됩니다.
'Data & Research' 카테고리의 다른 글
[Reinforcement Learning] Table of Contents (0) | 2025.06.29 |
---|---|
[Reinforcement Learning] Actor-Critic Algorithm (0) | 2025.06.29 |
[Reinforcement Learning] Rethinking Policy Gradient (0) | 2025.06.28 |
[Reinforcement Learning] REINFORCE (2) | 2025.06.27 |
[Reinforcement Learning] Policy Gradient (2) | 2025.06.25 |