이 글은 서강대 가상융합 전문대학원(구 메타버스 전문대학원) 강화학습 자료를 기반으로 작성되었습니다.
배우와 평론가의 만남: Actor-Critic (A2C)과 GAE
앞선 장에서 우리는 정책 그래디언트(Policy Gradient)가 이론적으로는 매우 아름답지만, 실제 현실 세계에서는 얼마나 위태로운 학습 방식인지를 확인했다. 기대값의 관점에서 보면 정책 그래디언트는 분명 정답을 향해 나아가는 올바른 나침반이다. 하지만 문제는 우리가 가진 샘플의 수가 유한하다는 데 있다. 샘플이 부족한 상황에서 계산된 그래디언트는 마치 고장 난 나침반처럼 심하게 흔들리며, 학습은 "조금 좋아졌다가 갑자기 망가지는" 롤러코스터를 반복하게 된다. Reward-to-go나 Baseline 같은 기법들을 응급 처치처럼 붙여보았지만, 이는 근본적인 해결책이 되지 못했다.
이러한 한계에 부딪혔을 때, 우리는 자연스럽게 하나의 근원적인 질문에 도달하게 된다. "과연 정책(Policy) 혼자서 모든 짐을 짊어지고 학습하는 것이 최선인가?". 바로 이 지점에서 Actor-Critic(배우와 평론가) 구조가 등장한다. 이름에서 알 수 있듯이, 이제 강화학습은 더 이상 하나의 주체가 모든 것을 해결하려 하지 않는다. 역할은 철저히 분담된다. 무대 위에서 직접 행동을 선택하고 연기를 펼치는 '배우(Actor)'와, 그 연기가 얼마나 훌륭했는지를 냉철하게 평가하는 '평론가(Critic)'로 나뉘는 것이다.
이 단순한 은유는 이후의 모든 강화학습 구조를 관통하는 핵심 철학이 된다. 배우는 직접 정책을 학습하지만, 그 정책이 잘된 것인지 아닌지를 판단하는 기준은 평론가가 제공하는 가치 함수(Value Function)에 의존한다. 정보의 흐름은 직관적이다. 어떤 상태가 주어지면 배우는 행동을 선택하고, 평론가는 그 상태의 가치를 추정한다. 환경으로부터 보상이 돌아오면 평론가는 자신의 평가가 맞았는지 확인하며 스스로를 학습시키고, 배우는 평론가가 제공한 피드백을 바탕으로 자신의 연기(정책)를 조정한다. 여기서 중요한 점은 평론가 또한 처음부터 완벽한 정답을 알고 있는 신적인 존재가 아니라는 사실이다. 평론가 역시 배우와 함께 성장하며 학습해 나가는 동료이다.
Actor-Critic 구조의 핵심은 어드밴티지(Advantage)라는 개념의 도입이다. 이전에는 단순히 총점 $(G_t)$이 높으면 좋은 행동이라고 판단했다. 하지만 총점은 환경의 운이나 상황에 따라 너무 크게 요동친다. 그래서 우리는 "평균적인 기준점"을 마련하고, 그보다 얼마나 더 잘했는지를 따지기 시작했다. 이를 수식으로 정리하면
$$A(s,a) = Q(s,a) - V(s)$$
가 된다. 즉, 어드밴티지는 "내가 한 행동$Q$이 이 상황에서 평균적으로 기대되는 성과 $V$보다 얼마나 더 훌륭한가?"를 수학적으로 압축한 값이다.
이제 학습은 '절대 점수'가 아니라 '상대적 놀라움'에 민감해진다. 원래 기대치가 높았던 상태라면 웬만큼 잘해서는 칭찬받기 어렵고, 반대로 기대치가 낮았던 위기 상황에서 좋은 성과를 낸다면 큰 보상을 받게 된다. 이러한 상대평가 방식은 학습 신호의 변동성을 줄여주어, 결과적으로 학습의 분산을 크게 낮추는 효과를 가져온다.
문제는 이 '어드밴티지'를 정확히 계산하는 것이 불가능하다는 점이다. 우리는 진짜 $Q$값도, 진짜 $V$값도 모른다. 따라서 우리는 이를 추정해야 하는데, 여기서 강화학습 설계의 묘미가 드러난다.가장 단순한 방법은 끝까지 가보는 것이다(Monte Carlo). 에피소드가 끝날 때까지 기다렸다가 얻은 총점을 사용하는 방식인데, 이는 편향(Bias)은 없지만 분산(Variance)이 너무 크다. 반대로 딱 한 발자국만 가보고 나머지는 평론가의 예측을 믿는 방식(TD)은 분산은 낮지만, 평론가가 틀릴 경우 편향이 커진다. "너무 짧은 시야(TD)"와 "너무 먼 시야(MC)" 사이에서, 우리는 n-step return이라는 절충안을 찾는다. $n$만큼만 실제 보상을 확인하고, 그 이후는 평론가의 예측을 믿는 것이다. 하지만 적절한 $n$을 고르는 것은 매우 어렵다. 여기서 GAE(Generalized Advantage Estimation)라는 우아한 해결책이 등장한다. GAE는 하나의 $n$을 고르는 대신, 모든 길이의 n-step 정보들을 지수적으로 가중 평균하여 사용한다. 여기서 $\lambda$(람다)라는 단 하나의 파라미터가 등장하는데, 이는 "평론가의 예측을 얼마나 길게까지 신뢰할 것인가"를 조절하는 다이얼 역할을 한다. $\lambda$ 가 1이면 MC에 가까워지고, 0이면 TD에 가까워진다. 실무적으로는 0.95 정도의 값이 '황금 밸런스'로 통용되며, 이는 편향과 분산 사이에서 가장 무난한 타협점을 제공한다.
이 모든 이론적 논의는 A2C(Advantage Actor-Critic)라는 하나의 알고리즘으로 통합된다. A2C의 가장 큰 특징은 동기화(Synchronous)와 병렬 처리다.상상해보자. 하나의 에이전트가 혼자 게임을 배우는 것이 아니라, 똑같은 정책을 공유하는 16명의 에이전트(Worker)가 서로 다른 게임 환경에서 동시에 플레이한다. 이때 각 에이전트가 현재의 정책을 따라 환경과 상호작용하며 일련의 상태, 행동, 보상 데이터를 수집하는 과정을 '롤아웃(Roll-out)'이라고 한다. A2C에서는 모든 에이전트가 약속된 시간(스텝 수 T)만큼 동시에 롤아웃을 수행하고 멈춘다. 이들은 각자 경험을 쌓지만, 학습은 다 같이 모여서 진행한다. 모든 에이전트가 정해진 시간만큼 플레이하고 멈추면, 그들이 모은 데이터를 한 데 모아 하나의 큰 배치(Batch)로 만든다. 그리고 이 데이터를 이용해 배우와 평론가를 동시에 업데이트한다.
이러한 동기화된 병렬 구조는 강력한 장점을 가진다. 서로 다른 환경에서 수집된 다양한 경험이 섞이면서 데이터의 상관관계가 줄어들고, GPU 같은 병렬 연산 장치를 매우 효율적으로 사용할 수 있게 된다. 배우는 어드밴티지를 통해 어떤 행동을 더 자주 해야 할지 배우고, 평론가는 자신의 예측이 얼마나 틀렸는지를 수정하며 함께 성장한다.
A2C가 질서 정연한 군대라면, A3C는 자유분방한 스타트업과 같다. A3C의 핵심은 '동기화의 제거'에 있다. 여러 명의 워커(Worker)들이 각자 독립적으로 환경에서 플레이하고, 자신이 데이터를 모으는 즉시 중앙의 전역 네트워크(Global Network)를 업데이트해버린다. 남들을 기다리지 않는다. 어떤 워커는 최신 버전의 정책을 쓰고, 어떤 워커는 조금 전 버전의 정책을 쓰기도 한다.
이러한 비동기 방식은 계산 자원을 쉴 새 없이 돌릴 수 있다는 장점이 있고, 서로 다른 시점의 정책이 뒤섞이며 자연스럽게 노이즈가 발생해 탐험(Exploration)을 촉진하는 효과도 있다. 하지만 오늘날에는 GPU 성능이 비약적으로 발전하면서, 구현이 복잡한 A3C보다는 안정적이고 배치 처리에 유리한 A2C가 더 표준적인 선택으로 자리 잡았다.
이론이 아무리 완벽해도 구현의 디테일이 부족하면 강화학습은 실패한다. A2C의 안정성을 지키기 위해 몇 가지 중요한 안전장치들이 추가된다.
첫째는 엔트로피 정규화(Entropy Regularization)다. 배우가 학습 초기부터 "이게 정답이야!"라고 너무 빨리 확신해버리면, 더 좋은 전략을 찾을 기회를 놓치게 된다(조기 수렴). 이를 막기 위해 손실 함수에 엔트로피 항을 추가하여, 에이전트가 다양한 행동을 시도하는 것 자체에 가산점을 준다. 이는 마치 호기심 많은 아이처럼 이것저것 찔러보도록 유도하는 것과 같다.
둘째는 그래디언트 클리핑(Gradient Clipping)이다. 정책 그래디언트는 가끔씩 감당할 수 없을 정도로 큰 값을 내뱉어 학습을 망가뜨리곤 한다. 이때 그래디언트의 크기가 일정 수준(예: 0.5)을 넘지 못하도록 강제로 잘라버림으로써, 파라미터가 급격하게 변하는 것을 방지한다.
셋째는 종료 조건의 구분이다. 게임이 자연스럽게 끝난 것(Terminated)과 시간 제한으로 억지로 끝난 것(Truncated)은 다르다. 전자는 미래가 없으니 가치를 0으로 두지만, 후자는 실제로는 미래가 있었으므로 가치를 추정해서 이어 붙여야 한다. 이 사소해 보이는 처리를 잘못하면 가치 추정에 편향이 생겨 학습 전체가 무너질 수 있다.
결국 이 장에서 우리가 확인한 Actor-Critic과 A2C는 단순한 트릭의 모음이 아니다. 이는 정책 기반 강화학습이 태생적으로 안고 있던 높은 분산, 지연된 평가, 불안정한 업데이트라는 문제를 구조적으로 해결해 온 치열한 고민의 산물이다.
A2C는 완벽하지 않을 수 있다. 오프 폴리시(Off-policy) 알고리즘에 비해 샘플 효율이 떨어질 수 있고, 하이퍼파라미터에 민감할 수도 있다. 하지만 구조가 투명하고 이해하기 쉬우며, 안정적인 성능을 보여주기 때문에 새로운 알고리즘을 연구하거나 문제를 처음 접할 때 가장 먼저 시도해보는 표준적인 기준점(Baseline)으로 굳건히 자리 잡았다.
이제 우리는 "정책과 가치를 결합하여 안정적으로 학습하는 법"을 알게 되었다. 이 단단한 기초 위에서, 다음 장에서는 "정책을 얼마나 더 조심스럽게, 그리고 효율적으로 업데이트할 것인가"에 대한 질문을 던지며 PPO와 같은 더욱 진보된 알고리즘의 세계로 나아가게 될 것이다. 강화학습은 이처럼 끊임없이 스스로의 한계를 의심하고 개선하며, 조금씩 더 똑똑한 기계를 향해 나아가는 여정이다.
'Reinforcement learning' 카테고리의 다른 글
| [강화학습 정복하기] 11강: 게임을 넘어 현실로-인간과 소통하고 미래를 설계하는 지능 (0) | 2025.12.22 |
|---|---|
| [강화학습 정복하기] 10강: PPO 완벽 해부: 가장 강력하고 안정적인 표준 알고리즘 (2) | 2025.12.22 |
| [강화학습 정복하기] 8강: 가치에서 정책으로-REINFORCE 알고리즘과 정책 그래디언트 (0) | 2025.12.22 |
| [강화학습 정복하기] 7강: DQN 성능 높이기-Dueling DQN 구조와 학습 안정화 팁 (0) | 2025.12.22 |
| [강화학습 정복하기] 6강: DQN의 탄생-딥러닝이 강화학습을 만났을 때 (Replay Buffer & Target Network) (0) | 2025.12.22 |