지난 번에 우리는 policy gradient theorem을 통해 총 return에 대한 gradient, 즉
이 부분에 대한 gradient를,
다음과 같이 표현할 수 있다는 것을 알았다. 이제부터 모든 policy gradient 알고리즘들은 이 형태의 식에서 시작한다.
오늘은 Actor-Critic 방법들에 대해서 알아볼 예정이다.
Actor-Critic
우리가 가지고 있는 문제는, 저 위의 true Q value를 모른다는 것이다. 이걸 approximation 할 수 있는 "Critic" network를 하나 만드는 것이 우리의 목표이다. 저 앞부분이 이제부터 조금씩 바뀔 건데, 저 앞부분은 약간 업데이트 기준이 되는 값이라고 생각하면 된다. 결국 Actor-Critic 방법은 저 앞부분을 최대한 잘 approximation 할 수 있도록 critic network를 따로 만드는 것이라고 생각할 수 있다.
Q Actor-Critic
처음에 얘기했던 대로, true Q value를 근사할 수 있는 neural network를 critic network를 하나 둘 것이다. 맨 위의 우리가 가지고 있던 policy gradient theorem에서 어떻게 전개되는지 같이 보자.
잘 보면 Qπθ(s,a) 가 Qϕ(s,a) 로 바뀌었음을 볼 수 있다.
그럼 이 Q network를 어떻게 훈련시킬 수 있는가? 바로 MC와 TD를 통해서 훈련시킬 수 있는 것이다.
MC update process
이렇게 critic network의 parameter를 업데이트해서, 이 critic network에서 Q value가 나오면,
이렇게 theta를 업데이트 해준다. 여기서 헷갈리면 안되는 것이, theta는 우리가 가진 policy network의 parameter이다.
그래서 critic을 업데이트해가면서, 이걸 기준으로 또 policy network를 점점 더 업데이트 해나가면서 좋은 policy를 낼 수 있는 policy network로 변해가는 과정이라고 볼 수 있다.
TD update process
1-step TD는 위의 MC처럼 episode가 끝나기를 기다리지 않는다. MC에서는 full episode를 가보고 거기서 나온 reward를 Gt 타겟으로 정하고 거기서 Q value estimate를 뺐지만, TD는 1-step reward만 보고 거기서 Q value estimate를 빼준다.
마찬가지로 이렇게 Q가 나오는 critic network가 업데이트 되면,
이렇게 policy network parameter를 업데이트 해준다. 다시,
헷갈리지 않도록 주의하자.
Advantage Actor-Critic (A2C)
그런데, Q Actor-Critic은 문제가 발생할 수도 있다. 다음과 같은 경우를 생각해보자.
Q value estimate를 action 별로 쭉 뽑아봤더니 다 비슷비슷하게 나온다. 이게 왜 문제일까?
우리가 지금 하고 있는 건 gradient update이다. 그러면 gradient update 시그널의 세기, 즉 뭐가 더 좋은 쪽인지 팍팍 보이는게 학습에 훨씬 도움이 된다. 하지만 위에거는 물론 빨간색으로 표시된 게 제일 높긴 하지만 다 거기서 거기로 보인다. 이러면 제대로된 학습이 되지 않는다.
gradient를 계산식을 다시보면,
이렇게 gradient가 있는데, gradient signal인
이 부분이 다 거기서 거기일 것이라는 뜻이다.
그래서 앞에 Q value를 그대로 쓰지말고, Q value에서 baseline 값을 빼준 Advantage 값을 쓰자! 는 것이 A2C, Advantage Actor Critic의 핵심 아이디어이다.
*Advantage에 대한 설명은 이 시리즈 part1에 수록되어있습니다. 다시 보고 오시면 좋지만 귀찮으신 분들을 위해 그 부분만 가져와보겠습니다.

part1에서 이미 policy gradient에 대한 예고를 해놓았습니다...!
약간의 표기 실수가 있어서, Advantage 부분은 내 빨간 글씨를 보면 된다. 그냥 뒤에 given action이 빠진 것이다.
A2C를 한 마디로 정리하면, A2C는 full Q value 대신에, state-value V를 학습하고 MC로 Advantage를 만든다.
Q network 대신에 critic으로 value network를 두고, episode 끝까지 가서 Gt를 계산한 후, 여기서 critic network에서 나온 value estimate을 Gt에서 빼주면 그게 우리의 Advantage가 되는 것이다. 그걸로 policy gradient를 계산한 다음, 각각의 network들을 업데이트 해주면 된다.
다음은 A2C의 구조도이다.
TD Actor-Critic
이건 또 뭐냐? 위에서는 Q network (critic) 과 policy network (actor)를 썼다면, 이제는 value network (critic) 과 policy network (actor)를 쓸 것이다. TD A2C는 full Q value 대신에, state-value V를 학습하고 1-step TD error로 Advantage를 만든다.
그래서 이것도 마찬가지고 critic을 업데이트해주고, critic을 기준으로 actor가 움직이는 형태이다. critic이 비평하는, 평가하는 이런 뜻인것을 감안하면, critic이 기준점이 되고 그에 따라 행동하는 actor라는 개념이 좀 더 직관적으로 와닿을 것이다.
우리가 가지고 있는 Advantage 값이 그 자체로 TD error이기 때문에, 따로 Q value를 학습할 필요가 없다는 것이 핵심일 것이다.
Generalized Advantage Estimation (GAE)
위에서 MC 방식과 TD 방식을 다뤘다. 이전에도 그랬듯이, 또 MC와 TD의 절충안이 등장할 때다. 바로 그것이 GAE이다.
이것도 여러 스텝의 타겟을 각각의 여러 개의 Advantage로 만들어놓고, 이 advantage들을 모두 타겟으로 이용하는 것이다.
Conclusion & Towards Distributed Training
이렇게 따로 다른 network인 critic network를 두어서, Actor (policy network) - Critic (value network) 방식으로 점차 업데이트해나가는 것이 바로 Actor-Critic 방식이다. 그리고 이것들은 비로소 policy gradient theorem을 통해서 우리가 계산 가능하게 만들어놓았기 때문에 MC와 TD 같은 방식을 적용할 수 있음을 다시 기억하자.
문제는 여전히 복잡한 문제들에 대해서는 scale-up이 제대로 되지 않는다는 것이다. 다음을 보자.
A2C와 TD-A2C 방법을 이용해도 초당 몇 천개의 transition 밖에 하지 못한다. 이는 많아 보이지만 엄청나게 큰 space를 가지고 있는 task들, Atari, MuJoCo (로봇 비스무리한 강화학습 프레임워크), Starcraft 등에 적용하기에는 여전히 무리가 있다.
그래서 지금은 하나로 훈련하던 것을, 나눠서! Distributed Training으로 scale-up을 노려볼 것이다.
여기서 파생되는 것들이 바로 A3C, IMPALA, PPO와 같은 알고리즘들이고, 우리가 맞닥뜨리는 문제점이 바로 policy lag에 관한 문제점이다.
Policy-Lag problem의 맛만 살짝 보면,
앞으로는 이렇게 Actor pool에서 여러 개의 simulator, 그리고 leaner pool에서 여러 개의 learner를 두고 distribution 해서 학습할 건데, 이게 simulator에서 simulation을 한 번 하는 동안 learner가 2번 3번 업데이트 해버리는, 속도의 차이에서 발생하는 policy가 밀리는 현상이 벌어진다.
그래서 이 policy-lag problem을 안고 가면서 importance sampling 이라던지, 이런 개념들도 나올 것이고, 이 문제를 때문에 off-policy로 처리하는 A3C 라던지, trust region guard를 쓰는 그 유명한 PPO라던지 등이 나오게 될 것이다.
Final Words
이것으로 길었다면 길었던 A (Long) Peek into Reinforcement Learning 연속 시리즈를 마치게 되었습니다. 처음에는 매우 간단하게 다루면서 한 두 개의 시리즈로 끝내려했다가, 복습하는 과정 및 하나하나 자세한 직관을 꾹꾹 담아 제 언어로 설명하려다보니 시리즈가 여기까지 오게 되었습니다..ㅎㅎ 중간중간에 보실 때 볼드체로 처리해놓은 직관이라던지, 이야기의 흐름, 어떻게 알고리즘들이 전개되고 발전하는지를 유념하면서 보시면 좋겠습니다. 제 생각에는, 크게는 앞에 핵심 개념들을 담은 부분과 value-based / policy-based 를 다루는 흐름으로 나눌 수 있을 것 같은데, 이렇게 분류하면서 보셔도 좋을 것 같습니다.
이번 시리즈는 저한테도 (다 까먹었었던) 복습의 의미 그 이상이었습니다. 수업 때는 잘 이해가 가지 않던 내용이 다시 이렇게 남에게 설명한다고 생각하니 이해가 좀 더 잘 되었던 것 같습니다. 의미가 깊었고, 앞으로도 마지막 distributed learning 부분이라던지, 제가 서문에서 크게 인상깊었다고 얘기한 AlphaGo, AlphaZero 라던지, 이런 강화학습 알고리즘들을 공부하고 다뤄보도록 하겠습니다. 글에 당연히 틀린 부분이 있을 수 있는데, 너그러이 봐주시고 언제나 지적해주시면 감사하겠습니다. ShinyJay 드림.
'Agent AI (RL)' 카테고리의 다른 글
A (Long) Peek into Reinforcement Learning -Part7 (0) | 2025.06.07 |
---|---|
A (Long) Peek into Reinforcement Learning -Part6 (0) | 2025.06.01 |
A (Long) Peek into Reinforcement Learning -Part5 (0) | 2025.05.30 |
A (Long) Peek into Reinforcement Learning -Part4 (0) | 2025.05.27 |
A (Long) Peek into Reinforcement Learning -Part 3 (0) | 2025.05.22 |