Actor-Critic 방식 완전 정복: A2C부터 SAC까지 장단점 비교와 하이퍼파라미터 튜닝 실전 가이드

Updated Feb 6, 2026

Actor-Critic이란?

Actor-Critic은 강화학습에서 정책(Policy)과 가치 함수(Value Function)를 동시에 학습하는 방법론입니다. Actor는 행동을 선택하는 정책을 담당하고, Critic은 그 행동이 얼마나 좋은지 평가하는 역할을 합니다.

Actor-Critic의 핵심은 두 네트워크가 서로 협력하며 학습한다는 점입니다. Actor는 Critic의 피드백을 받아 정책을 개선하고, Critic은 Actor의 행동 결과를 보고 가치 추정을 업데이트합니다.

기본 수식

Actor-Critic의 핵심 업데이트 식은 다음과 같습니다:

Critic 업데이트 (TD Error):
δt=rt+γV(st+1)V(st)\delta_t = r_t + \gamma V(s_{t+1}) – V(s_t)

  • δt\delta_t: TD Error (시간차 오차)
  • rtr_t: 시점 t의 보상
  • γ\gamma: 할인율 (미래 보상의 중요도)
  • V(st)V(s_t): 상태 s의 가치 함수 추정값

Actor 업데이트 (Policy Gradient):
θJ(θ)E[δtθlogπθ(atst)]\nabla_\theta J(\theta) \approx \mathbb{E}[\delta_t \nabla_\theta \log \pi_\theta(a_t|s_t)]

  • θ\theta: Actor 네트워크 파라미터
  • πθ(atst)\pi_\theta(a_t|s_t): 상태 sts_t에서 행동 ata_t를 선택할 확률
  • θ\nabla_\theta: 파라미터에 대한 그래디언트

주요 Actor-Critic 알고리즘 비교

알고리즘 특징 장점 단점
A2C Advantage Actor-Critic, 동기식 병렬 학습 안정적, 구현 간단, 재현성 좋음 샘플 효율 낮음, 학습 속도 느림
A3C 비동기식 병렬 학습 빠른 학습, 다양한 경험 수집 비동기로 인한 불안정, 재현 어려움
PPO Clipped Surrogate Objective 안정성 최고, 하이퍼파라미터 민감도 낮음 복잡한 환경에서 느림
DDPG 연속 행동 공간, Off-Policy 샘플 효율 높음, 연속 제어 강함 하이퍼파라미터 민감, 불안정
TD3 DDPG 개선 (Twin Delayed) DDPG보다 안정적, 과대평가 완화 여전히 튜닝 필요
SAC Maximum Entropy RL 탐색-활용 균형 최고, 매우 안정적 계산 비용 높음, 메모리 사용 많음

A2C (Advantage Actor-Critic)

핵심 개념

A2C는 Advantage 함수를 사용하여 행동의 상대적 가치를 평가합니다:

A(st,at)=Q(st,at)V(st)A(s_t, a_t) = Q(s_t, a_t) – V(s_t)

  • A(st,at)A(s_t, a_t): Advantage (평균 대비 얼마나 좋은 행동인가)
  • Q(st,at)Q(s_t, a_t): 행동-가치 함수
  • V(st)V(s_t): 상태-가치 함수

Stable Baselines3 구현 예시

from stable_baselines3 import A2C
from stable_baselines3.common.env_util import make_vec_env

# 환경 생성 (4개 병렬)
env = make_vec_env('CartPole-v1', n_envs=4)

# A2C 모델 생성
model = A2C(
    'MlpPolicy',
    env,
    learning_rate=7e-4,
    n_steps=5,              # 업데이트 전 수집할 스텝 수
    gamma=0.99,             # 할인율
    gae_lambda=1.0,         # GAE 파라미터
    ent_coef=0.01,          # 엔트로피 계수 (탐색)
    vf_coef=0.5,            # 가치 함수 손실 계수
    max_grad_norm=0.5,      # 그래디언트 클리핑
    verbose=1
)

# 학습
model.learn(total_timesteps=100000)

# 저장 및 로드
model.save('a2c_cartpole')
model = A2C.load('a2c_cartpole')

SAC (Soft Actor-Critic)

Maximum Entropy 강화학습

SAC는 보상 최대화와 동시에 정책 엔트로피를 최대화합니다:

J(π)=tE[rt+αH(π(st))]J(\pi) = \sum_t \mathbb{E}[r_t + \alpha \mathcal{H}(\pi(\cdot|s_t))]

  • H\mathcal{H}: 정책의 엔트로피 (확률 분포의 무작위성)
  • α\alpha: 온도 파라미터 (탐색 강도 조절)

엔트로피 항 덕분에 SAC는 자연스럽게 탐색과 활용의 균형을 맞추며, 다양한 환경에서 안정적으로 학습합니다.

Stable Baselines3 구현 예시

from stable_baselines3 import SAC

# 연속 행동 공간 환경
env = make_vec_env('Pendulum-v1', n_envs=1)

model = SAC(
    'MlpPolicy',
    env,
    learning_rate=3e-4,
    buffer_size=1000000,        # Replay Buffer 크기
    learning_starts=100,        # 학습 시작 전 랜덤 스텝
    batch_size=256,
    tau=0.005,                  # Target 네트워크 소프트 업데이트
    gamma=0.99,
    train_freq=1,               # 매 스텝 학습
    gradient_steps=1,
    ent_coef='auto',            # 자동 엔트로피 조정
    target_update_interval=1,
    verbose=1
)

model.learn(total_timesteps=50000)

하이퍼파라미터 튜닝 가이드

공통 파라미터

파라미터 역할 추천 범위 튜닝 팁
learning_rate 학습 속도 1e-5 ~ 1e-3 너무 크면 불안정, 작으면 느림. 보통 3e-4 시작
gamma 미래 보상 할인율 0.95 ~ 0.999 긴 에피소드는 0.99 이상
batch_size 배치 크기 64 ~ 512 클수록 안정적이지만 느림
buffer_size Replay Buffer (Off-Policy) 100k ~ 1M 메모리 허용 범위 내 최대

A2C 특화 파라미터

  • n_steps: 5~20 (작을수록 bias 낮고, 클수록 variance 낮음)
  • ent_coef: 0.0~0.1 (탐색 필요 시 높임)
  • gae_lambda: 0.9~1.0 (GAE 사용 시 bias-variance 트레이드오프)

SAC 특화 파라미터

  • tau: 0.001~0.01 (타겟 네트워크 업데이트 속도)
  • ent_coef: ‘auto’ 또는 0.1~0.5 (자동 조정 권장)
  • train_freq: 1 (매 스텝 학습, Off-Policy 장점)

실전 활용 시나리오

1. 로봇 제어 (연속 행동)

추천 알고리즘: SAC > TD3 > DDPG

  • 연속적인 관절 각도/토크 제어
  • 안전성과 탐색 중요
  • SAC의 엔트로피 최대화가 다양한 움직임 학습에 유리

2. 게임 AI (이산 행동)

추천 알고리즘: PPO > A2C

  • 안정성과 재현성 중요
  • 병렬 환경으로 데이터 효율 보완

3. 금융/트레이딩

추천 알고리즘: SAC

  • 연속 행동 (매수/매도 비율)
  • 리스크 관리 위해 탐색 중요
  • Off-Policy로 과거 데이터 재사용

디버깅 체크리스트

학습이 안 될 때:

  1. 보상 스케일 확인: 너무 크거나 작으면 정규화 필요
  2. 네트워크 크기: 복잡한 환경은 [256, 256] 이상
  3. 학습률 감소: 1e-4 이하로 낮춰보기
  4. 엔트로피 계수 증가: 탐색 부족 의심 시

불안정할 때:

  1. 그래디언트 클리핑 강화 (max_grad_norm=0.5)
  2. 배치 크기 증가
  3. Target 네트워크 tau 감소 (더 천천히 업데이트)

마무리

Actor-Critic 방법론은 현대 강화학습의 핵심입니다. A2C는 입문용으로 적합하고, SAC는 실무 연속 제어에서 최고 성능을 보입니다.

핵심 정리:

  • 안정성 우선: PPO > A2C
  • 샘플 효율 우선: SAC > TD3 > DDPG
  • 연속 행동: SAC 압도적 우세
  • 이산 행동: A2C/PPO 추천

하이퍼파라미터 튜닝은 환경마다 다르므로 작은 learning_rate + 큰 batch_size로 시작해 점진적으로 조정하세요. Stable Baselines3의 Zoo 예제를 참고하면 검증된 설정을 빠르게 찾을 수 있습니다.

Did you find this helpful?

☕ Buy me a coffee

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

TODAY 390 | TOTAL 2,613