행동하는 배우와 평가하는 비평가
앞 장의 마지막에서 우리는 에이전트 안에 두 명의 인물을 세워 보자고 했다. 한 명은 행동하는 배우이고, 다른 한 명은 그 행동을 평가하는 비평가다. 이것이 Actor-Critic의 출발점이다.
이름 그대로 Actor는 행동한다. 현재 상태를 보고 어떤 행동을 할지 결정한다. 더 정확히 말하면 Actor는 정책을 담당한다. 상태가 들어오면 행동 확률을 출력하거나, 연속 행동 문제에서는 행동 값 자체 또는 행동 분포를 출력한다.
반면 Critic은 평가한다. Critic은 직접 행동을 선택하지 않는다. 대신 현재 상태가 얼마나 좋은지, 또는 방금 선택한 행동이 기대보다 얼마나 나았는지를 추정한다. 말하자면 Actor가 무대 위에서 연기를 하고, Critic은 객석에서 이렇게 말하는 역할이다.
"지금 선택은 꽤 괜찮았어."
"그 상태에서는 원래 더 좋은 결과를 기대할 수 있었는데, 이번 선택은 아쉬웠어."
"방금 행동은 당장 보상은 작지만 다음 상태가 좋아졌으니 나쁘지 않아."강화학습에서 이 역할 분담은 매우 중요하다. Policy Gradient는 정책을 직접 업데이트한다는 장점이 있었지만, 에피소드 결과가 우연에 많이 흔들린다는 문제가 있었다. Actor-Critic은 여기에 Critic이라는 평가자를 붙여서 학습 신호를 더 안정적으로 만들려는 시도다.
쉽게 말하면, Policy Gradient가 "이번 경기에서 이겼으니 방금 했던 모든 행동을 조금 더 자주 하자"에 가깝다면, Actor-Critic은 "이겼다고 해서 모든 행동이 다 좋았던 것은 아니야. 각 순간에서 기대보다 잘했는지 따져 보자"에 가깝다.

Actor는 정책을 출력한다
Actor의 역할은 정책을 표현하는 것이다. 정책은 상태를 보고 행동을 고르는 규칙이다. 딥 강화학습에서는 Actor를 보통 신경망으로 만든다.
격자 세계에서 에이전트가 위, 아래, 왼쪽, 오른쪽 중 하나를 고른다고 해 보자. Actor는 현재 상태를 입력받아 다음과 같은 확률분포를 출력할 수 있다.
위: 0.05
아래: 0.10
왼쪽: 0.15
오른쪽: 0.70이때 Actor는 "오른쪽이 무조건 정답"이라고 말하는 것이 아니다. "지금 내 정책으로는 오른쪽을 선택할 가능성이 가장 높다"고 말하는 것이다. 실제 행동은 이 확률분포에서 뽑을 수 있다. 그래서 Actor는 탐험도 할 수 있고, 학습이 진행되면서 좋은 행동의 확률을 점점 높일 수도 있다.
연속 행동 문제에서도 Actor의 역할은 비슷하다. 로봇 팔이 관절을 몇 도 돌릴지 정해야 한다면, Actor는 각 관절 움직임의 평균과 표준편차를 출력할 수 있다. 그러면 에이전트는 그 분포에서 실제 행동을 샘플링한다. 정책 기반 방법이 연속 행동에 강하다는 장점은 Actor-Critic에서도 그대로 이어진다.
중요한 점은 Actor가 학습의 주인공이라는 것이다. 강화학습의 최종 목표는 결국 좋은 정책을 얻는 것이다. 게임에서 이기는 정책, 로봇을 안정적으로 움직이는 정책, 언어 모델이 더 선호되는 답변을 만들게 하는 정책을 얻는 것이 목표다. Actor-Critic에서 Actor는 바로 그 정책을 담고 있는 모델이다.
Critic은 기준점을 제공한다
그렇다면 Critic은 무엇을 평가할까? 가장 흔한 형태는 상태 가치 함수를 추정하는 것이다.
상태 가치 함수 (V(s))는 이렇게 읽으면 된다.
상태 s에 있을 때, 앞으로 평균적으로 얼마나 많은 보상을 기대할 수 있는가?예를 들어 미로 게임에서 어떤 칸이 목표 지점 바로 앞이라면 그 상태의 가치는 높을 것이다. 반대로 함정 근처에 몰려 있다면 가치는 낮을 것이다. Critic은 이런 상태의 좋고 나쁨을 숫자로 예측한다.
앞 장에서 baseline을 이야기했다. 시험 점수 80점이 좋은지 나쁜지는 평균 점수가 얼마인지에 따라 달라진다고 했다. 강화학습에서도 마찬가지다. 어떤 행동 이후 누적 보상 10을 얻었다고 해도, 원래 그 상태에서 2 정도를 기대하던 상황이라면 매우 잘한 것이다. 하지만 원래 30 정도는 기대할 수 있던 상황이라면 아쉬운 결과다.
Critic의 가치 추정은 바로 이 기준점 역할을 한다.
실제로 얻은 결과 - Critic이 예상한 결과이 차이를 보면 Actor가 선택한 행동이 기대보다 좋았는지, 나빴는지 판단할 수 있다. 그래서 Actor-Critic에서는 단순히 보상 자체를 보고 정책을 업데이트하지 않는다. Critic이 제공한 기준과 비교해 Actor를 조정한다.
이것은 운에 덜 휘둘리기 위한 장치다. 좋은 에피소드가 나왔다고 해서 그 안의 모든 행동을 무작정 칭찬하지 않는다. 나쁜 에피소드가 나왔다고 해서 그 안의 모든 행동을 무작정 벌하지도 않는다. 각 상태에서 "기대보다 어땠는가"를 따져 보는 것이다.
높은 분산을 줄인다는 말
Policy Gradient를 배우면 자주 만나는 표현이 있다. 분산이 높다는 말이다. 여기서 분산은 학습 신호가 얼마나 들쭉날쭉한지를 뜻한다고 보면 된다.
같은 행동을 했는데 어떤 날은 큰 보상을 받고, 어떤 날은 실패할 수 있다. 미끄러운 길에서 오른쪽으로 가는 행동을 생각해 보자. 운 좋게 균형을 잡으면 보물 상자에 도착한다. 운 나쁘게 미끄러지면 벽에 부딪힌다. 그러면 에이전트 입장에서는 혼란스럽다.
오른쪽으로 갔더니 성공했다. 오른쪽은 좋은 행동인가?
오른쪽으로 갔더니 실패했다. 오른쪽은 나쁜 행동인가?에피소드 전체 보상만 보고 정책을 업데이트하면 이런 우연에 크게 흔들린다. 한 번의 성공이 지나친 확신으로 이어질 수 있고, 한 번의 실패가 좋은 행동을 버리게 만들 수도 있다. 이것이 높은 분산의 직관이다.
Critic은 이 흔들림을 줄이기 위해 등장한다. Critic은 현재 상태에서 보통 어느 정도 결과를 기대할 수 있는지 계속 학습한다. Actor는 실제 결과를 이 기준과 비교한다. 그러면 단순한 보상보다 더 안정적인 학습 신호를 얻을 수 있다.
예를 들어 어떤 상태에서 Critic이 예상한 가치가 8이라고 하자. 그런데 실제로 얻은 누적 보상이 10이었다면, 결과는 기대보다 2만큼 좋았다. 반대로 실제 누적 보상이 6이었다면, 기대보다 2만큼 나빴다.
기대 가치: 8
실제 결과: 10
차이: +2 → 선택한 행동을 조금 더 강화
기대 가치: 8
실제 결과: 6
차이: -2 → 선택한 행동을 조금 약화이렇게 하면 "10점이면 무조건 좋다"가 아니라 "기대보다 얼마나 좋았는가"를 기준으로 학습하게 된다. Actor-Critic의 핵심 감각은 여기에 있다.
Actor 업데이트는 Critic의 평가를 사용한다
Actor-Critic에서 Actor의 업데이트는 앞 장의 Policy Gradient와 닮아 있다. 여전히 핵심은 선택한 행동의 확률을 조정하는 것이다.
앞 장에서는 정책 경사 손실을 단순하게 이렇게 보았다.
loss = - log π(a|s) × 누적 보상Actor-Critic에서는 여기에 Critic의 평가가 들어간다. 누적 보상 자체를 곱하는 대신, 실제 결과가 Critic의 예상보다 얼마나 좋았는지를 사용할 수 있다.
loss_actor = - log π(a|s) × (실제 결과 - 예상 가치)여기서 (π(a|s))는 Actor가 상태 (s)에서 행동 (a)를 선택할 확률이다. (log π(a|s))는 그 행동의 로그 확률이다. 뒤에 곱해지는 값은 "이 행동이 기대보다 좋았는가?"를 나타내는 신호다.
만약 실제 결과가 예상 가치보다 크다면, 괄호 안의 값은 양수가 된다. 그러면 Actor는 그 행동의 확률을 높이는 방향으로 업데이트된다. 반대로 실제 결과가 예상보다 나쁘다면 값이 음수가 되고, Actor는 그 행동의 확률을 낮추는 방향으로 움직인다.
이 구조를 말로 풀면 아주 간단하다.
기대보다 잘했다면:
방금 선택한 행동을 더 자주 하게 만든다.
기대보다 못했다면:
방금 선택한 행동을 덜 하게 만든다.이제 Actor는 혼자서 에피소드 전체 결과를 보고 흔들리지 않는다. Critic이라는 기준점을 옆에 두고 더 차분하게 정책을 바꾼다.
Critic도 함께 배운다
여기서 놓치기 쉬운 점이 있다. Critic은 처음부터 훌륭한 평가자가 아니다. Critic 역시 배워야 한다.
처음 학습을 시작한 Critic은 상태의 가치를 잘 모른다. 목표 지점 앞의 상태가 좋은지, 함정 근처의 상태가 나쁜지 모를 수 있다. 그래서 Critic은 에이전트가 실제로 경험한 보상을 바탕으로 자신의 가치 예측을 고친다.
Critic의 학습은 지도학습과 조금 닮아 있다. 어떤 상태 (s)에 대해 Critic이 (V(s))를 예측한다. 이후 실제로 받은 보상과 다음 상태의 가치를 이용해 목표값을 만든다. 그리고 예측값이 그 목표값에 가까워지도록 학습한다.
가장 직관적인 목표값은 다음과 같다.
목표값 = 지금 받은 보상 + 다음 상태의 예상 가치할인율 (γ)를 넣으면 이렇게 쓸 수 있다.
target = r + γ V(s')여기서 (r)은 지금 받은 보상, (s')는 다음 상태, (V(s'))는 Critic이 예측한 다음 상태의 가치다. 즉, Critic은 "지금 받은 보상에 다음 상태에서 기대되는 미래 보상을 더한 값"을 목표로 삼는다.
그리고 Critic의 손실은 보통 예측값과 목표값의 차이를 줄이는 형태로 볼 수 있다.
loss_critic = (target - V(s))²이 과정은 앞에서 배운 Bellman Equation의 직관과 닮아 있다. 현재 상태의 가치는 지금 받은 보상과 다음 상태 가치로부터 갱신된다. Actor-Critic은 정책 기반 방법처럼 보이지만, 그 안쪽에는 가치 기반 학습의 감각도 함께 들어 있다.
한 걸음만 보고도 배울 수 있다
기본적인 REINFORCE는 보통 에피소드가 끝난 뒤에야 학습 신호를 계산한다. 끝까지 가 봐야 누적 보상을 알 수 있기 때문이다. 하지만 Actor-Critic은 Critic 덕분에 더 빨리 배울 수 있다.
Critic이 다음 상태의 가치를 예측할 수 있다면, 에피소드가 끝날 때까지 기다리지 않아도 된다. 한 걸음 이동한 뒤에 바로 다음과 같은 신호를 만들 수 있다.
TD 오차 = r + γ V(s') - V(s)TD는 Temporal Difference의 약자다. 우리말로는 시간차 학습 정도로 이해하면 된다. 이름은 어렵지만 뜻은 단순하다. "기존에 예상한 현재 상태의 가치"와 "한 걸음 경험한 뒤 새로 계산한 목표" 사이의 차이다.
이 TD 오차는 Actor에게도 유용하다. TD 오차가 양수라면 실제로 가 본 결과가 Critic의 예상보다 좋았다는 뜻이다. 그러면 Actor는 방금 선택한 행동의 확률을 높인다. TD 오차가 음수라면 기대보다 나빴다는 뜻이므로, 그 행동의 확률을 낮춘다.
TD 오차가 양수다 → 기대보다 좋았다 → 행동 확률 증가
TD 오차가 음수다 → 기대보다 나빴다 → 행동 확률 감소이 점이 Actor-Critic의 큰 매력이다. 에피소드가 아주 길어도 매 순간 조금씩 배울 수 있다. 로봇이 긴 작업을 수행하거나, 게임이 오래 이어지거나, 대화가 여러 턴에 걸쳐 진행되는 상황에서는 이런 즉각적인 학습 신호가 큰 도움이 된다.
상태 가치와 행동 가치, 무엇을 Critic이 볼까
Critic이 꼭 상태 가치 (V(s))만 예측해야 하는 것은 아니다. 어떤 Actor-Critic 구조에서는 행동 가치 함수 (Q(s,a))를 추정하기도 한다.
상태 가치 (V(s))는 "이 상태 자체가 얼마나 좋은가"를 말한다. 행동 가치 (Q(s,a))는 "이 상태에서 이 행동을 했을 때 얼마나 좋은가"를 말한다. 둘은 비슷하지만 초점이 다르다.
상태 가치 Critic은 기준점을 제공하는 데 자연스럽다. Actor가 어떤 행동을 선택한 뒤, 그 결과가 그 상태의 평균 기대치보다 좋았는지 비교할 수 있다.
비교 기준: V(s)
질문: 이 상태에서 평균적으로 기대한 것보다 이번 행동이 좋았나?행동 가치 Critic은 특정 행동의 좋음을 더 직접적으로 말해 줄 수 있다.
비교 기준: Q(s, a)
질문: 이 상태에서 이 행동을 하면 장기적으로 얼마나 좋을까?다만 Actor-Critic의 핵심은 어떤 가치 함수를 쓰느냐보다 역할 분담에 있다. Actor는 정책을 개선하고, Critic은 그 정책 개선에 필요한 평가 신호를 제공한다. Critic이 상태 가치를 보든 행동 가치를 보든, 목적은 Actor가 더 안정적으로 좋은 방향을 찾도록 돕는 것이다.
같은 몸통, 두 개의 머리
딥러닝으로 Actor-Critic을 구현할 때는 두 가지 방식이 가능하다. Actor와 Critic을 완전히 별도의 신경망으로 만들 수도 있고, 하나의 신경망 앞부분을 공유한 뒤 출력 부분만 나눌 수도 있다.
후자의 구조를 흔히 "공유 몸통에 두 개의 머리"처럼 상상할 수 있다. 신경망의 앞부분은 상태에서 중요한 특징을 추출한다. 예를 들어 게임 화면이 입력이라면 벽, 적, 아이템, 캐릭터 위치 같은 정보를 파악한다. 그런 다음 두 개의 출력 머리가 붙는다.
상태 입력
→ 공통 특징 추출층
→ Actor 머리: 행동 확률 출력
→ Critic 머리: 상태 가치 출력Actor 머리는 "무엇을 할까?"에 답한다. Critic 머리는 "지금 상황은 얼마나 좋아 보이나?"에 답한다.
이 구조는 효율적이다. Actor와 Critic이 같은 상태를 보고 있으므로, 앞부분의 표현을 공유할 수 있다. 하지만 조심할 점도 있다. Actor와 Critic의 목표가 완전히 같지는 않기 때문이다. Actor는 좋은 행동 분포를 만들고 싶어 하고, Critic은 정확한 가치 예측을 하고 싶어 한다. 그래서 실제 학습에서는 Actor 손실과 Critic 손실을 적절히 섞어 전체 손실을 만든다.
전체 손실 = Actor 손실 + Critic 손실 + 탐험을 돕는 항여기서 탐험을 돕는 항은 정책이 너무 빨리 한 가지 행동으로 굳어지는 것을 막기 위해 들어가기도 한다. 확률분포가 너무 뾰족해지면 에이전트가 다른 가능성을 시험하지 않게 된다. 그래서 학습 초기에 어느 정도 다양성을 유지하도록 보너스를 줄 수 있다.
Actor와 Critic이 서로를 속일 때
Actor-Critic은 멋진 구조지만, 두 모델이 함께 배운다는 점 때문에 어려움도 있다. Actor는 Critic의 평가를 믿고 정책을 바꾼다. 그런데 Critic이 틀릴 수 있다. Critic이 어떤 상태를 과대평가하면 Actor는 그 방향으로 더 자주 행동할 수 있다. 반대로 좋은 상태를 과소평가하면 Actor가 좋은 행동을 충분히 강화하지 못할 수도 있다.
또 Actor가 바뀌면 데이터도 바뀐다. 정책이 달라지면 에이전트가 방문하는 상태가 달라지고, Critic이 학습해야 하는 분포도 바뀐다. Critic이 겨우 현재 정책에 맞춰 가치를 배웠는데, Actor가 갑자기 다른 행동을 하기 시작하면 다시 적응해야 한다.
이것은 마치 배우와 평론가가 함께 성장하는 연습실 같다. 배우가 연기 방식을 바꾸면 평론가도 새 기준으로 평가해야 한다. 평론가가 평가 기준을 잘못 잡으면 배우는 엉뚱한 방향으로 연습할 수 있다. 둘이 서로 도움을 주지만, 둘 다 완벽하지 않기 때문에 학습은 여전히 불안정할 수 있다.
그래서 Actor-Critic 계열 알고리즘에서는 학습률, 업데이트 횟수, 가치 함수의 정확도, 정책 변화의 크기 같은 요소를 매우 조심스럽게 다룬다. 다음 장과 그다음 장에서 볼 Advantage와 PPO는 바로 이 불안정을 줄이기 위해 등장하는 중요한 아이디어다.
A2C와 A3C: 여러 배우가 함께 배우기
Actor-Critic의 기본 아이디어는 여러 현대 알고리즘으로 발전했다. 그중 대표적인 이름이 A2C와 A3C다.
먼저 이름에 들어 있는 A는 Advantage를 뜻한다. Advantage는 "기대보다 얼마나 더 좋았는가"를 나타내는 값이다. 지금 장에서는 직관만 잡으면 충분하다. Actor가 정책을 업데이트할 때 단순한 보상 대신, Critic이 제공한 기준과 비교한 차이를 사용한다. 이 차이가 바로 다음 장에서 자세히 볼 Advantage의 핵심이다.
A2C는 Advantage Actor-Critic의 줄임말로 볼 수 있다. 여러 환경에서 데이터를 모으고, 그 데이터를 이용해 Actor와 Critic을 비교적 질서 있게 업데이트한다. 동기적으로 여러 경험을 모아 한 번에 학습한다고 생각하면 된다.
A3C는 Asynchronous Advantage Actor-Critic의 줄임말이다. 여기서 Asynchronous는 비동기라는 뜻이다. 여러 에이전트가 각자 환경에서 동시에 경험을 모으고, 각자의 경험을 바탕으로 공통 모델을 업데이트한다. 한 명의 플레이어가 게임을 반복하는 것보다 여러 명의 플레이어가 각자 다른 방에서 동시에 연습하는 모습에 가깝다.
이런 방식은 경험의 다양성을 늘리는 데 도움이 된다. 한 에이전트가 비슷한 상태만 반복해서 방문하면 학습이 한쪽으로 치우칠 수 있다. 여러 에이전트가 조금씩 다른 경험을 모으면 Critic도 더 넓은 상황을 보고 배울 수 있고, Actor도 더 다양한 행동 결과를 접할 수 있다.
PPO도 Actor-Critic의 가족이다
이 책에서 곧 다룰 PPO도 Actor-Critic 계열로 이해할 수 있다. PPO는 Proximal Policy Optimization의 약자다. 이름은 길지만 핵심 감각은 비교적 단순하다.
정책을 업데이트하되, 한 번에 너무 멀리 바꾸지 말자는 것이다.
Actor-Critic에서는 Actor가 Critic의 평가를 보고 정책을 바꾼다. 그런데 정책을 너무 크게 바꾸면 문제가 생긴다. 방금 모은 데이터는 예전 정책으로 행동해서 얻은 것인데, 새 정책이 갑자기 완전히 달라지면 그 데이터가 새 정책을 설명하기 어려워진다. 결과적으로 학습이 튈 수 있다.
PPO는 이런 급격한 변화를 막기 위해 정책 업데이트에 안전장치를 둔다. Actor가 좋은 방향으로 움직이되, 한 번에 너무 크게 점프하지 않도록 제한한다. 이 덕분에 PPO는 다양한 강화학습 문제에서 비교적 안정적으로 쓰일 수 있다.
나중에 LLM과 RLHF를 다룰 때도 PPO가 다시 등장한다. 언어 모델을 인간 선호에 맞게 조정할 때, 모델의 답변 스타일을 너무 급격히 바꾸면 언어 능력이 무너지거나 이상한 보상 최적화가 일어날 수 있다. 그래서 보상을 높이면서도 기존 모델에서 너무 멀어지지 않게 조정하는 아이디어가 중요해진다. 이 흐름의 바탕에도 Actor-Critic의 구조가 있다. Actor는 언어 모델의 정책이고, Critic 또는 보상 관련 모델은 그 출력이 얼마나 좋은지 평가하는 역할을 맡는다.
작은 예: 미로에서 배우와 비평가가 만나다
간단한 미로 예로 전체 흐름을 다시 보자. 에이전트는 출발점에서 목표 지점까지 가야 한다. 목표에 도착하면 큰 보상을 받고, 함정에 빠지면 나쁜 보상을 받는다.
처음 Actor는 거의 무작위로 행동한다.
위, 아래, 왼쪽, 오른쪽 중 아무거나 비슷한 확률로 선택한다.Critic도 처음에는 상태 가치를 잘 모른다.
이 칸이 좋은지 나쁜지 아직 모른다.
목표 근처인지 함정 근처인지 경험이 부족하다.에이전트가 몇 번 움직이며 경험을 쌓는다. 어떤 칸에서는 목표에 가까워졌고, 어떤 칸에서는 막다른 길에 들어섰다. Critic은 이 경험을 바탕으로 상태 가치를 조금씩 고친다.
목표에 가까운 칸 → 가치가 높아짐
함정에 가까운 칸 → 가치가 낮아짐
막다른 길의 칸 → 기대 가치가 낮아짐이제 Actor가 어떤 상태에서 오른쪽을 선택했다고 하자. 그 결과 다음 상태의 가치가 크게 좋아졌다. Critic은 "기대보다 좋았다"는 신호를 준다. Actor는 그 상태에서 오른쪽을 선택할 확률을 조금 높인다.
반대로 Actor가 아래로 갔더니 함정 근처로 이동했다고 하자. Critic은 "기대보다 나빴다"는 신호를 준다. Actor는 그 상태에서 아래를 선택할 확률을 조금 낮춘다.
이 과정이 반복되면 Actor는 점점 더 좋은 길을 선택하게 되고, Critic은 상태들의 가치를 더 정확히 평가하게 된다. 둘은 서로를 완성한다. Actor가 더 나은 경험을 만들면 Critic은 더 좋은 데이터를 얻는다. Critic이 더 정확해지면 Actor는 더 안정적인 신호로 정책을 개선한다.
Actor-Critic을 한 문장으로 정리하면
Actor-Critic은 정책 기반 방법과 가치 기반 방법의 만남이다.
가치 기반 방법은 행동이나 상태의 가치를 평가하는 데 강했다. 정책 기반 방법은 정책 자체를 직접 학습할 수 있었다. Actor-Critic은 이 둘을 합친다. Actor는 정책을 직접 학습하고, Critic은 가치 추정을 통해 그 정책 업데이트가 너무 흔들리지 않도록 돕는다.
이 구조를 코드 흐름처럼 상상하면 다음과 같다.
반복한다:
현재 상태 s를 관찰한다.
Actor가 정책 π(a|s)를 출력한다.
그 정책에서 행동 a를 선택한다.
환경에서 보상 r과 다음 상태 s'를 받는다.
Critic이 V(s)와 V(s')를 이용해 평가 신호를 만든다.
Critic은 자신의 가치 예측을 더 정확하게 고친다.
Actor는 Critic의 평가를 바탕으로 행동 확률을 조정한다.이 루프는 우리가 책의 처음부터 반복해 온 강화학습의 기본 프레임과 정확히 맞닿아 있다.
상태를 본다
→ 행동을 선택한다
→ 보상을 받는다
→ 다음 상태로 이동한다
→ 장기 보상을 높이는 전략을 배운다다만 Actor-Critic에서는 "전략을 배운다"는 부분이 두 갈래로 나뉜다. Actor는 더 나은 행동 습관을 배우고, Critic은 그 행동 습관을 평가하는 눈을 배운다.
이번 장의 핵심 정리
Actor-Critic은 Actor와 Critic의 역할을 나누어 정책 학습을 안정화하려는 구조다. Actor는 상태를 보고 행동 확률을 출력하는 정책 모델이고, Critic은 현재 상태나 행동의 가치를 추정해 Actor에게 평가 기준을 제공한다.
Policy Gradient는 좋은 결과를 만든 행동의 확률을 높이는 방식이지만, 에피소드 결과가 우연에 크게 흔들릴 수 있다. Critic은 상태 가치나 행동 가치를 추정하여 "기대보다 얼마나 좋았는가"를 알려 준다. 덕분에 Actor는 단순한 보상보다 더 안정적인 신호로 업데이트될 수 있다.
Critic은 보통 (V(s)) 같은 가치 함수를 학습한다. 한 걸음 뒤의 보상과 다음 상태 가치를 이용해 목표값을 만들고, 자신의 예측이 그 목표값에 가까워지도록 학습한다. 이때 생기는 TD 오차는 Actor 업데이트에도 유용한 신호가 된다.
A2C, A3C, PPO 같은 알고리즘은 모두 Actor-Critic의 흐름과 연결된다. 특히 PPO는 정책을 한 번에 너무 크게 바꾸지 않도록 조심스럽게 업데이트하는 방법으로, 나중에 LLM과 RLHF를 이해할 때도 중요한 발판이 된다.
이제 다음 질문이 남는다. Actor가 행동을 강화하거나 약화할 때, 정확히 무엇을 기준으로 "기대보다 좋았다"고 말할 수 있을까? 그 답이 바로 다음 장에서 다룰 Advantage다.
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.