강화학습 TRPO 알고리즘에 유도과정을 복습하기 좋도록 ChatGPT 답변을 생성해보았고, 이에 대한 백로그
1. GAE (Generalized Advantage Estimation) 목적함수 정의
GAE는 가치함수(value function)를 사용해 Advantage 함수를 추정하는 방법으로, 상태 $s_t$, 행동 $a_t$의 Advantage는 다음과 같이 정의됩니다.
$$
A^{\pi}(s_t, a_t) = Q^{\pi}(s_t, a_t) - V^{\pi}(s_t)
$$
GAE는 이 Advantage를 TD-error($\delta_t^V$)로 표현합니다.
$$
\hat{A}_t^{GAE(\gamma, \lambda)} = \sum_{l=0}^{\infty}(\gamma\lambda)^l \delta_{t+l}^{V},\quad\text{where}\quad \delta_t^V = r_t + \gamma V(s_{t+1}) - V(s_t)
$$
2. GAE 기반 Policy Gradient 목적함수
정책 그래디언트 목적함수는 아래처럼 정의됩니다.
$$
J(\theta) = \mathbb{E}_{\tau \sim \pi_{\theta}} \left[ \sum_{t=0}^{T}\log\pi_{\theta}(a_t|s_t)\hat{A}_t^{GAE}\right]
$$
3. TRPO 목적함수 유도과정 (Importance Sampling 등장)
TRPO는 이전 정책($\pi_{\theta_{old}}$)의 경험 데이터를 효율적으로 재사용하고자 Importance Sampling 개념을 사용합니다.
이를 통해 목적함수를 다음과 같이 변경합니다.
$$
J(\theta)
= \mathbb{E}_{\tau \sim \pi_{\theta_{old}}}\left[\frac{P(\tau|\pi_{\theta})}{P(\tau|\pi_{\theta_{old}})}\sum_{t=0}^{T}\log\pi_{\theta}(a_t|s_t)\hat{A}_t^{GAE}\right]
$$
궤적(trajectory)의 확률비를 분해하면 아래와 같습니다.
$$
\frac{P(\tau|\pi_{\theta})}{P(\tau|\pi_{\theta_{old}})} = \prod_{t=0}^{T}\frac{\pi_{\theta}(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)}
$$
전체 곱셈 형태가 복잡하므로, TRPO는 작은 정책 변경을 가정하고 다음과 같이 근사합니다.
$$
J(\theta)\approx\mathbb{E}_{\tau\sim\pi_{\theta_{old}}}\left[\sum_{t=0}^{T}\frac{\pi_{\theta}(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)}\hat{A}_t^{GAE}\right]
$$
4. KL-divergence 기반의 TRPO 제약조건 도입
TRPO는 정책의 급격한 변경을 방지하고 안정적 학습을 위해 KL-divergence로 정책 변화를 제한합니다.
최종 TRPO 목적함수 및 제약조건은 아래와 같습니다.
목적함수
$$
\max_{\theta}\mathbb{E}_{s_t,a_t\sim\pi_{\theta_{old}}}\left[\frac{\pi_{\theta}(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)}\hat{A}_t^{GAE}\right]
$$
제약 조건
$$
\mathbb{E}_{s_t\sim\pi_{\theta_{old}}}[D_{KL}(\pi_{\theta_{old}}(\cdot|s_t)||\pi_{\theta}(\cdot|s_t))]\leq\delta
$$
5. 로그(log) 텀이 사라진 이유와 Importance Sampling 개념 상세 이해
기존의 목적함수에서는 정책의 로그 확률($\log\pi_{\theta}(a|s)$)이 포함되어 있습니다. 이는 다음과 같은 이유 때문입니다.
- 기존 목적함수: 정책 Gradient 계산($\nabla_{\theta}\log\pi_{\theta}(a|s)$)을 쉽게 하기 위해 로그를 사용.
- TRPO 목적함수: 이전 정책($\pi_{\theta_{old}}$)에서 새 정책($\pi_\theta$)으로의 성능 변화를 명확히 표현하려고 Importance Sampling의 확률 비율(ratio)을 직접 사용합니다.
즉, TRPO는 "정책의 상대적 성능 향상"을 나타내고자 했기 때문에 로그 항을 굳이 사용하지 않았습니다.
Importance Sampling의 개념적 이해
Importance Sampling은 실제 샘플링한 분포($\pi_{\theta_{old}}$)와 목표 분포($\pi_{\theta}$)가 다를 때, 분포의 차이를 보정하기 위해 확률의 비율(ratio)을 사용하는 기법입니다.
- 원래 원하는 기대값
$$
\mathbb{E}_{x \sim p(x)}[f(x)] = \mathbb{E}_{x \sim q(x)}\left[\frac{p(x)}{q(x)}f(x)\right]
$$
이를 정책 최적화에 적용하면 다음과 같습니다.
- 원하는 분포: $\pi_{\theta}$
- 실제 사용한 분포: $\pi_{\theta_{old}}$
따라서 보정 비율은 다음과 같습니다.
$$
\frac{P(\tau|\pi_{\theta})}{P(\tau|\pi_{\theta_{old}})}=\prod_{t=0}^{T}\frac{\pi_{\theta}(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)}
$$
6. 로그를 씌우지 않는 TRPO 형태의 장점
- 로그는 Gradient 계산을 위한 도구일 뿐, 정책 변경의 직관적 표현에는 적합하지 않습니다.
- TRPO는 정책 변경의 비율을 명확히 나타내 정책 성능의 향상과 정책 변경의 안정성을 직관적으로 표현할 수 있습니다.
- 이론적 성능 하한(performance bound) 증명에도 비율(ratio)이 더 적합합니다.
📚 참고 문헌 및 출처
- TRPO 논문 Schulman et al., 2015, ICML
- [GAE 논문 Schulman et al., 2016, ICLR
- [PPO 논문 Schulman et al., 2017