Advantage Actor Critic (A2C) 설명

TL;DR

Advantage Actor Critic (A2C)는 정책 기반(Actor)과 가치 기반(Critic) 방법을 결합한 하이브리드 강화 학습 아키텍처로, Reinforce와 같은 순수 정책 그라디언트 방법에서 발생하는 높은 분산을 감소시킵니다. 이 결합은 가치 함수를 사용해 행동에 대한 즉각적인 피드백을 제공함으로써 전체 에피소드 몬테카를로 반환에 의존하는 대신 학습을 안정화하고 샘플 효율성을 향상시킵니다.

Reinforce에서의 분산 문제

Reinforce와 같은 순수 정책 기반 방법은 몬테카를로 샘플링에 의존하기 때문에 정책 그라디언트 추정에서 큰 분산을 겪습니다. Reinforce에서는 에이전트가 전체 궤적을 수집하고 할인된 반환을 사용해 해당 궤적에서 수행된 모든 행동의 확률을 증가하거나 감소시킵니다.

이 접근법은 실제 반환을 사용하므로 편향이 없지만 매우 불안정합니다. 환경과 정책의 확률성 때문에 동일한 시작 상태라도 에피소드마다 크게 다른 반환을 초래할 수 있습니다. 이러한 분산을 완화하기 위해 실무자는 많은 수의 궤적을 사용해야 하며, 이는 샘플 효율성을 크게 감소시키고 학습 속도를 늦춥니다.

Actor-Critic 아키텍처

Actor-Critic 방법은 두 개의 별도 함수 근사화를 결합함으로써 분산 문제를 해결합니다:

  • The Actor: 정책 함수 $\pi_{\theta}(s, a)$ 로 에이전트의 행동을 제어합니다.
  • The Critic: 가치 함수 $(\hat{q})_{w}(s, a)$ 로 수행된 행동의 품질을 측정합니다.

Actor-Critic 훈련 과정

훈련 중에 Actor와 Critic은 지속적인 피드백 루프를 통해 함께 최적화됩니다:

  1. Action Selection: Actor는 현재 상태 $S_t$를 받아 행동 $A_t$를 출력합니다.
  2. Value Estimation: Critic은 $S_t$와 $A_t$를 받아 Q-값(그 상태에서 해당 행동을 취했을 때의 가치)을 계산합니다.
  3. Environment Interaction: 행동 $A_t$가 수행되어 새로운 상태 $S_{t+1}$와 보상 $R_{t+1}$을 얻습니다.
  4. Policy Update: Actor는 Critic이 제공한 Q-값을 기반으로 정책 파라미터를 업데이트합니다.
  5. Value Update: Critic은 자신의 가치 파라미터를 업데이트하여 향후 피드백을 개선합니다.

Advantage Actor Critic (A2C)

Advantage Actor Critic (A2C)는 표준 행동-가치 함수를 Advantage 함수로 교체함으로써 학습을 더욱 안정화합니다.

행동의 절대 값을 측정하는 대신, Advantage 함수는 특정 행동이 해당 상태의 평균 가치보다 얼마나 더 좋은지를 계산합니다. 이는 상태-행동 쌍에서 상태의 평균 가치를 빼는 방식입니다:

$$\text{Advantage} = Q(s, a) - V(s)$$

TD 오류를 통한 구현

진정한 Advantage 함수를 구현하려면 일반적으로 두 개의 별도 가치 함수($Q(s, a)$와 $V(s)$)가 필요합니다. 이를 단순화하기 위해 A2C는 Temporal Difference (TD) 오류를 Advantage 함수의 신뢰할 수 있는 추정치로 사용합니다.

계산된 Advantage $A(s, a)$가 양수이면, 그 방향으로 그라디언트를 밀어 행동의 확률을 증가시킵니다. $A(s, a)$가 음수이면—즉, 해당 상태에서 평균보다 행동이 더 나쁘게 수행된 경우—그라디언트를 반대 방향으로 밀어줍니다.

로봇공학에서의 실용적 적용

Hugging Face는 Stable-Baselines3 라이브러리를 PyBullet 로봇 시뮬레이션 내에서 사용한 A2C 적용 사례를 보여줍니다. 이를 통해 이족 보행기나 거미 로봇과 같은 복잡한 연속 제어 환경에서 에이전트를 훈련시킬 수 있습니다.

Sources