Actor-Critic과 PPO까지 오면서, policy gradient를 계산할 때 advantage function 를 쓰면 variance가 크게 줄어든다는 것을 보았다. 그런데 정작 advantage를 어떻게 추정하느냐는 깊게 다루지 않고 넘어갔다. 사실 이 추정 방식이 학습의 안정성과 속도를 좌우하며, TRPO·PPO를 비롯한 현대 policy gradient 알고리즘이 거의 예외 없이 사용하는 표준 기법이 바로 generalized advantage estimation (GAE)이다.
GAE는 09번 글에서 critic의 target으로 잠깐 등장했던 MC, TD(0), TD()를 advantage 추정이라는 하나의 관점에서 bias-variance trade-off로 통합한다.
참고: High-Dimensional Continuous Control Using Generalized Advantage Estimation (Schulman et al., 2016)
Advantage 추정의 bias-variance 딜레마
Policy gradient는 다음과 같은 일반형을 갖는다.
여기서 가중치 자리에는 return , action-value , advantage 등 여러 값이 들어갈 수 있다. 이 중 advantage가 variance를 가장 낮춰준다는 것은 앞선 글에서 보았다. 문제는 true advantage를 모른다는 점이고, 따라서 우리는 그것을 추정해야 한다.
TD residual: advantage의 한 조각
학습된 value function 가 있다고 하자. 한 step의 TD residual을 다음과 같이 정의한다.
09번 글에서 보았듯, 만약 가 정확하다면() 는 advantage의 unbiased estimate이다.
즉 는 “한 step만 실제로 굴려보고 나머지는 의 추정으로 때운” advantage 추정치다.
-step 추정량: 어디까지 실제로 굴려볼 것인가
하나만 쓰지 않고, 여러 step을 실제 보상으로 채운 뒤 나머지를 로 메울 수도 있다. 개의 TD residual을 더한 -step advantage estimator는 다음과 같이 정리된다.
이 식에서 를 키울수록 실제 보상 을 더 많이 쓰고 에 덜 의존한다. 양 극단을 보자.
-
:
- 한 step만 실제로 보고 곧장 에 의존한다. 가 틀리면 그 오차가 그대로 들어오므로 bias가 크지만, 무작위성이 한 step 분량뿐이라 variance는 작다.
-
:
- 에피소드 끝까지 실제 보상을 모두 쓴 Monte-Carlo 추정이다. 하나만 baseline으로 빼므로 bias는 거의 없지만, 먼 미래의 운까지 전부 누적되어 variance가 매우 크다.
결국 는 “미래를 얼마나 실제로 굴려보고, 어디서부터 value 추정에 맡길 것인가”를 정하는 손잡이다. 가 작으면 추정기(critic)를 믿는 쪽, 크면 실제 sample을 믿는 쪽이다. 어느 한쪽 를 고르는 대신, 모든 를 부드럽게 섞자는 것이 GAE의 발상이다.
Generalized Advantage Estimation
GAE는 위의 -step 추정량들을 로 지수 가중 평균한 것이다.
이 합을 정리하면, 놀랍도록 간단한 형태로 떨어진다.
즉 GAE는 TD residual들을 로 할인하며 더한 값이다. 09번 글에서 critic의 target으로 등장했던 TD()가, 여기서는 advantage 추정의 형태로 다시 나타난 것이다.
가 양 극단을 잇는다
는 앞서 본 bias-variance 손잡이를 연속적으로 조절한다.
-
:
- 한 step TD. low variance, high bias (에 강하게 의존).
-
:
- Monte-Carlo advantage. high variance, low bias.
-
: 두 극단을 부드럽게 보간한다. 실제로는 부근이 자주 쓰인다.
핵심 직관: 는 “value function 추정을 얼마나 신뢰할 것인가”를 조절한다. 가 정확하다고 믿으면 를 낮춰 한 step만 보고 곧장 에 맡기고( 한 항), 를 못 믿으면 를 높여 실제 보상을 더 길게 누적한다. 학습 초반에는 가 엉성하니 를 다소 높게, 가 정교해질수록 낮춰도 좋다.
와 는 다른 일을 한다
식에서 와 가 항상 로 함께 곱해져 나오지만, 둘의 역할은 분명히 다르다.
- (discount): 미래 보상의 가치를 깎는 비율로, 추정하려는 목적함수 자체를 정의한다. 를 낮추면 먼 미래를 무시하는 근시안적 value를 추정하게 되어 bias가 생긴다.
- (GAE parameter): 목적함수는 그대로 둔 채, 그 advantage를 추정하는 방식에서 bias-variance만 조절한다.
즉 는 “무엇을 풀 것인가”, 는 “어떻게 추정할 것인가”를 정한다.
구현: 뒤에서부터 한 번에
GAE의 무한 합은 실제로는 trajectory 끝에서부터 거꾸로 내려오며 한 줄로 계산된다.
한 번의 backward pass로 전체 trajectory의 advantage를 구할 수 있어 계산이 매우 가볍다. 이렇게 얻은 는 그대로 policy gradient의 가중치로, 는 value function의 회귀 target으로 쓰인다.
PPO와의 연결, 그리고 정리
이제 PPO의 그림이 완성된다. PPO의 clipped objective에 들어가는 advantage 는 추상적인 기호가 아니라, 바로 이 GAE로 계산된 다. 실제 PPO 구현은 매 iteration마다
- 현재 policy로 trajectory를 모으고,
- critic 로 각 step의 를 구한 뒤,
- backward recursion으로 GAE advantage 를 계산하고,
- 그 로 clipped policy update와 value regression을 함께 수행한다.
정리하면, GAE는 09번 글에서 본 MC/TD/TD()를 advantage 추정이라는 단일 관점으로 묶어, 하나로 bias와 variance를 매끄럽게 조절하게 해주는 도구다. 추가 계산 비용이 거의 없으면서도 학습 안정성을 크게 끌어올리기 때문에, 오늘날 대부분의 on-policy actor-critic 알고리즘이 기본값으로 채택하고 있다.