이번 포스트에서는 이전 포스트와 마찬가지로 Trust Region Policy Optimization
(TRPO)를 설명하기 위한 이론적 배경들을 설명하도록 한다. 이전 포스트에서 다루었던 Lemma들과 Pinsker's Inequality
를 바탕으로 이번 포스트에서는 TRPO의 중요한 정리를 먼저 다루고 이 정리를 바탕으로 Minorization-maximization
(MM) 알고리즘을 정리하여 TRPO의 기본적인 형태를 다루게 된다.
Minorization-maximization 알고리즘
먼저 다음의 정리를 살펴보자.
Theorem 1)
\[\eta(\tilde{\pi}) \geq L_{\pi_\text{old}}(\tilde{\pi}) - CD_\text{KL}^\text{max}(\pi_\text{old}, \tilde{\pi}).\]여기서:
\[\begin{array}{rl} C & = \frac{4 \epsilon \gamma}{(1 - \gamma)^2} \\ D_\text{KL}^\text{max}(\pi_\text{old}, \tilde{\pi}) & = \max_s D_\text{KL}(\pi_\text{old}(\cdot \vert s) \Vert \tilde{\pi}(\cdot \vert s)), \\ \epsilon & = \max_{s, a} \left\vert A_{\pi_\text{old}}(s, a) \right\vert. \end{array}\]이를 증명하기 위해서는 이전 포스트에서 다뤘던 Lemma 1과 Lemma 2, 그리고 Pinsker's Inequality
에 대한 내용들이 필요하다. 먼저 임의의 정책 \(\pi_\text{old}\)와 \(\tilde{\pi}\)에 대해서 적절한 결합 분포를 선택하여 다음을 만족할 수 있다:
따라서 \(\pi_\text{old}\)와 \(\tilde{\pi}\)는 \(\alpha\)로 연관된 정책 짝이다.
이제 이를 바탕으로 다음을 살펴보자:
\[\begin{array}{l} L_{\pi_\text{old}}(\tilde{\pi}) - \eta(\tilde{\pi}) \\ = \sum_s \rho_{\pi_\text{old}}(s) \sum_a \tilde{\pi}(a \vert s) A_{\pi_\text{old}}(s, a) - \sum_s \rho_{\tilde{\pi}}(s) \sum_a \tilde{\pi}(a \vert s) A_{\pi_\text{old}}(s, a) \\ = \sum_s \rho_{\pi_\text{old}}(s) \bar{A}(s) - \sum_s \rho_{\tilde{\pi}}(s) \bar{A}(s) \\ = \sum_s \sum_{t = 0}^\infty \gamma^t p(s_t = s \vert \pi_\text{old}) \bar{A}(s) - \sum_s \sum_{t = 0}^\infty \gamma^t p(s_t = s \vert \tilde{\pi}) \bar{A}(s) \\ = \sum_{t = 0}^\infty \gamma^t \left( \mathbb{E}_{s_t \sim \pi_\text{old} } \left[ \bar{A}(s_t) \right] - \mathbb{E}_{s_t \sim \tilde{\pi}} \left[ \bar{A}(s_t) \right] \right) \\ \ \ \ \ \leq \sum_{t = 0}^\infty \gamma^t \left\vert \mathbb{E}_{s_t \sim \pi_\text{old} } \left[ \bar{A}(s_t) \right] - \mathbb{E}_{s_t \sim \tilde{\pi}} \left[ \bar{A}(s_t) \right] \right\vert \end{array}\]여기서 \(\pi_\text{old}\)와 \(\tilde{\pi}\)는 \(\alpha = D_\text{TV}^\text{max}(\pi_\text{old}, \tilde{\pi})\)로 연관된 정책 짝이므로 다음과 같이 쓸 수 있다:
\[\begin{array}{l} L_{\pi_\text{old}}(\tilde{\pi}) - \eta(\tilde{\pi}) \\ \ \ \ \ \leq \sum_{t = 0}^\infty \gamma^t 4\alpha \left( 1 - (1 - \alpha)^t \right) \max_{s, a} \left\vert A_{\pi_\text{old}} (s, a) \right\vert \\ \ \ \ \ \ \ \ \ = \sum_{t = 0}^\infty 4\alpha \left( \gamma^t - (\gamma - \gamma \alpha)^t \right) \epsilon \\ \ \ \ \ \ \ \ \ = 4\alpha \left( \frac{1}{1 - \gamma} - \frac{1}{1 - \gamma + \gamma\alpha} \right) \epsilon \\ \ \ \ \ \ \ \ \ = 4\alpha \left( \frac{1}{1 - \gamma} - \frac{1}{1 - \gamma(1 - \alpha)} \right) \epsilon \\ \ \ \ \ \ \ \ \ = 4\alpha \cdot \frac{\gamma \alpha}{(1 - \gamma)(1 - \gamma(1 - \alpha))} \cdot \epsilon \\ \ \ \ \ \ \ \ \ \ \ \ \ \leq 4\alpha \cdot \frac{\gamma \alpha}{(1 - \gamma)^2} \cdot \epsilon \\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ = \frac{4\epsilon \gamma}{(1 - \gamma)^2} \cdot \alpha^2. \end{array}\]여기서 Pinsker’s Inequality를 통해서 다음을 유도할 수 있다:
\[\begin{array}{l} \alpha^2 = \max_s D_\text{TV}^2 \left( \pi_\text{old}(\cdot \vert s) \Vert \tilde{\pi}(\cdot \vert s) \right) \\ \ \ \ \ \leq \max_s \frac{1}{2} D_\text{KL}\left( \pi_\text{old}(\cdot \vert s) \Vert \tilde{\pi}(\cdot \vert s) \right) \\ \ \ \ \ \ \ \ \ \leq \max_s D_\text{KL} \left( \pi_\text{old}(\cdot \vert s) \Vert \tilde{\pi}(\cdot \vert s) \right) = D_\text{KL}^\text{max}(\pi_\text{old}, \tilde{\pi}). \end{array}\]따라서:
\[\begin{array}{l} L_{\pi_\text{old}}(\tilde{\pi}) - \eta(\tilde{\pi}) \leq CD_\text{KL}^\text{max} (\pi_\text{old}, \tilde{\pi}) \\ \ \ \ \ \Longrightarrow \eta(\tilde{\pi}) \geq L_{\pi_\text{old}}(\tilde{\pi}) - CD_\text{KL}^\text{max}(\pi_\text{old}, \tilde{\pi}). \ \ \ \ \text{Q.E.D.} \end{array}\]위의 정리를 통해서 우리는 Minorization-maximization
(MM) 알고리즘을 획득하여 단조롭게
(Monotonically) 정책을 개선할 수 있다. 이는 아래의 최적화 과정을 통해서 수행된다:
이 최적화 문제의 목적 함수는 Surrogate 함수
라고 부른다. 좌우지간 이 최적화 과정을 통해서 단조롭게 정책을 개선하여 Expected Return \(\eta\)가 감소되지 않는 것을 보장하며 반복 알고리즘을 다음과 같이 수행할 수 있다:
- Expected Return \(\eta\)가 감소되지 않는 것을 보장하는 정책 반복 알고리즘
- 정책 \(\pi_0\) 초기화
- 각 단계 \(i = 0, 1, 2, \cdots\)에 대해서 수렴할때까지 반복:
- 모든 이득 함수 값들 \(A_{\pi_i}(s, a)\)을 계산한다.
- 다음과 같은 최적화 문제를 푼다:
위의 알고리즘을 통해 Surrogate 함수를 최대화하는 정책을 계속 선택하면 그 정책에 의한 Expected Return 역시 최대화가 되게끔 계속 정책을 개선할 수 있게 된다.
제한된 최적화 문제
우리는 강화 학습에 인공 신경망 모델을 활용하여 정책망(Policy Network)을 훈련시키는 방식으로 적용을 할 것이다. 따라서 정책은 매개변수 \(\theta\)로 매개변수화되어 \(\pi_\theta\)라고 쓰게 된다. 이에따라 Surrogate 함수는 다음과 같이 쓰여지게 된다:
\[L_{\theta_\text{old}}(\theta) - CD_\text{KL}^\text{max}(\theta_\text{old}, \theta).\]만약 우리가 Penalty 상수 \(C\)를 위의 정리에서 제안한 수치를 활용한다면 최적화 단계에 따른 Step Size가 매우 작을 것이다. 이는 훈련의 진행을 매우 더디게 만드는 원인이 된다. 따라서 더 큰 Step Size를 취하여 좀 더 거친 방법으로 훈련을 진행해야 할 것이다. 이를 위한 최적화 문제는 다음과 같이 수정될 수 있다:
\[\begin{array}{l} \text{maximize} \ L_{\theta_\text{old}}(\theta) \\ \text{subject to} \ D_\text{KL}^\text{max}(\theta_\text{old}, \theta) \leq \delta. \end{array}\]즉 \(\pi_{\theta_\text{old}}\)와 \(\pi_\theta\) 사이의 KL Divergence 영역을 특정 \(\delta\)값으로 제한하여 좀 더 큰 Step Size로 거칠게 훈련을 진행할 수 있게 된다. 여기서 물론 \(\delta\)를 적절히 잘 설정하는 것이 중요할 것이고 잘 선택된 \(\delta\) 영역을 Trust Region이라고 말한다. 이 때문에 이 알고리즘을 우리가 TRPO라고 부르는 것이다.
좌우지간 이러한 Trust Region이라는 제한조건을 두고 최적화 문제를 풀어가는 것은 제한조건의 수가 증가할수록 상당히 실용적이지 못하다. 이 말을 좀 더 풀어서 설명하면 \(D_\text{KL}^\text{max}\)를 계산하는 과정에서 모든 가능한 상태 \(s\)를 고려하고 그 중 최대값을 찾아야하는 어려움이 있을 수 있다. 또한 추가적으로 최대값을 고르는 과정에서는 Monte Carlo
시뮬레이션이 불가능하다.
따라서 좀 더 효율적인 방법을 통해서 해당 최적화 작업을 진행하게 된다. 정책을 통해서 샘플링된 상태들에 대해서 KL Divergence의 평균을 최적화하는 방식이다:
\[\begin{array}{rl} \bar{D}_\text{KL}^\pi(\theta_1, \theta_2) & = \sum_s p(s \vert \pi) D_\text{KL}\left( \pi_{\theta_1}(\cdot \vert s) \Vert \pi_{\theta_2}(\cdot \vert s) \right) \\ & = \mathbb{E}_{s \sim \pi} \left[ D_\text{KL} \left( \pi_{\theta_1}(\cdot \vert s) \Vert \pi_{\theta_2}(\cdot \vert s) \right) \right]. \end{array}\]여기서:
\[p(s \vert \pi) = \sum_{t = 0}^\infty p(s_t = s \vert \pi)\]이다. 따라서 이를 통한 최적화 문제는 다음과 같이 기술된다:
\[\begin{array}{rl} \text{maximize}_\theta & L_{\theta_\text{old}}(\theta) \\ \text{subject to} & \bar{D}_\text{KL}^{\pi_{\theta_\text{old}}}(\theta_\text{old}, \theta) \leq \delta. \end{array}\]이 최적화 문제는 KL Divergence의 최대값에 대한 제한조건이 걸린 기존의 최적화 문제와 성능이 매우 비슷한 수준이라고 알려져 있다. 결과는 실험을 통해서 확인할 수 있다고 한다.
한편 \(L_{\theta_\text{old}}(\theta)\)를 다시 쓰면 다음과 같다:
\[L_{\theta_\text{old}}(\theta) = \eta(\pi_{\theta_\text{old}}) + \sum_s \rho_{\pi_\text{old}}(s) \sum_a \pi_\theta (a \vert s) A_{\theta_\text{old}}(s, a).\]여기서 \(\eta(\pi_{\theta_\text{old}})\)의 경우 \(\theta\)와는 관계없는 부분이기 때문에 최종적인 최적화 문제의 형태는 다음과 같다:
\[\begin{array}{rl} \text{maximize}_\theta & \sum_s \rho_{\pi_\text{old}}(s) \sum_a \pi_\theta (a \vert s) A_{\theta_\text{old}}(s, a) \\ \text{subject to} & \bar{D}_\text{KL}^{\pi_{\theta_\text{old}}}(\theta_\text{old}, \theta) \leq \delta. \end{array}\]또한 이는 목적 함수의 형태로 다음과 같이 표현될 수 있다:
\[J = \sum_a \pi_\theta (a \vert s) A_{\theta_\text{old}}(s, a) - \frac{c}{2} \bar{D}_\text{KL}^{\pi_{\theta_\text{old}}}(\theta_\text{old}, \theta).\]참고 자료
수정 사항
- 2023.02.09
- 최초 게제
- 2023.02.10
- MM 알고리즘 정리
- 2023.02.20
- 제한된 최적화 문제 내용 정리