ai theory
강화학습 기초 (14) - Actor와 Critic은 무엇을 나눠서 배울까
Junyoung Park · 2024-06-14 · 5 min
들어가며...
REINFORCE는 Policy를 직접 학습하는 가장 단순한 방법이었다.
하지만 를 알려면 Episode 끝까지 기다려야 한다. 같은 Action의 Return도 이후에 일어난 우연에 따라 크게 달라져 Update가 흔들린다.
Actor-Critic은 일을 둘로 나눈다.
- Actor: 어떤 Action을 선택할지 나타내는 Policy를 학습한다.
- Critic: 현재 State나 Action이 얼마나 좋은지 평가한다.
Actor는 Critic의 평가를 받아 Policy를 고치고, Critic은 실제 Reward를 받아 자신의 평가를 고친다. 두 함수가 같은 경험에서 함께 학습하는 구조다.
Return을 그대로 쓰면 비교 기준이 없다
State 에서 Action 를 골라 Return 을 얻었다고 하자. 은 좋은 결과일까?
- 이 State에서 보통 를 얻는다면 매우 좋다.
- 보통 을 얻는다면 오히려 나쁘다.
Return의 절대값만으로는 판단하기 어렵다. 현재 State에서 기대하던 평균을 빼면 “평소보다 얼마나 좋았는가”가 된다.
는 Advantage function이다.
- : 이 State의 평균보다 좋은 Action
- : 평균보다 나쁜 Action
- : 기대한 정도의 Action
예를 들어,
이면,
이다. Actor는 A의 확률을 올리고 B의 확률을 내리면 된다.
Baseline을 빼도 평균 방향은 바뀌지 않는다
Policy Gradient에 State만의 함수 를 빼도 Gradient의 기대값은 바뀌지 않는다.
이유는 Action probability의 합이 이기 때문이다.
Baseline은 평균 Update 방향을 바꾸지 않으면서 불필요한 흔들림을 줄인다. 가장 자연스러운 Baseline이 다.
Critic은 무엇을 학습할까
Critic을 Parameter 를 가진 State value 함수로 두자.
Critic은 TD Target으로 학습할 수 있다.
TD error는,
이다.
이 값은 “실제로 한 Step을 지나 보니 기대보다 좋았는가”를 나타낸다. 그래서 를 Advantage의 한 Step 추정값으로 사용할 수 있다.
숫자로 TD error를 읽어보기
다음 경험을 얻었다고 하자.
TD error는,
이다.
현재 State에서 정도를 기대했는데, Reward 을 받고도 다음 State에 의 미래가 남았다. 실제 한 Step의 결과가 기대보다 좋았다는 뜻이다.
반대로 이면 선택한 Action이 기대보다 나빴다고 본다.
Actor Update
Actor는 TD error를 Return 대신 사용한다.
- 이면 선택한 Action의 확률을 높인다.
- 이면 선택한 Action의 확률을 낮춘다.
- 가 에 가까우면 Policy를 거의 움직이지 않는다.
REINFORCE가 Episode 전체 Return을 기다렸다면 Actor-Critic은 한 Step마다 Update할 수 있다.
Critic Update
Critic은 TD error가 줄어들도록 Value Parameter를 Update한다.
Linear function이라면,
이고 Neural Network라면 Backpropagation으로 Gradient를 계산한다.
Actor와 Critic의 Learning rate는 보통 따로 둔다. Critic이 너무 느리면 Actor가 부정확한 평가를 따라가고, 너무 빠르게 흔들리면 Actor에게 불안정한 Signal을 준다.
전체 흐름을 한 Step으로 보면
- Actor가 를 Sample한다.
- 환경이 과 을 돌려준다.
- Critic이 를 계산한다.
- Critic은 로 Value를 고친다.
- Actor는 같은 로 선택한 Action의 확률을 고친다.
- 에서 반복한다.
Actor는 방향을 정하고 Critic은 그 방향이 예상보다 좋았는지를 빠르게 알려주는 역할을 한다.
Bias와 Variance의 교환
Monte Carlo Return 는 실제 Episode 결과를 사용하므로 Bootstrapping Bias는 없지만 Variance가 크다.
한 Step TD error는 Critic의 추정을 사용해 Variance를 줄이지만, Critic이 틀리면 Bias가 생긴다.
| Advantage 추정 | 실제 Reward를 보는 길이 | 성향 |
|---|---|---|
| REINFORCE | Episode 끝까지 | 낮은 Bootstrap Bias, 높은 Variance |
| 1-step | 한 Step | 더 큰 Bias 가능, 낮은 Variance |
| n-step Advantage | n Step | 두 사이를 조절 |
여러 길이의 TD error를 섞는 GAE, Generalized Advantage Estimation도 같은 생각에서 나온다.
가 작으면 짧은 TD error를 더 믿고, 에 가까우면 긴 미래를 더 반영한다.
Actor-Critic도 불안정할 수 있다
Actor가 바뀌면 Critic이 평가해야 할 Policy도 바뀐다. Critic이 바뀌면 Actor가 받는 Advantage도 바뀐다. 두 학습기가 서로의 Target을 움직이는 셈이다.
큰 Policy update는 아직 모은 경험과 현재 Policy를 빠르게 다르게 만들어 학습을 망칠 수 있다. 다음 글의 PPO는 Old policy와 New policy의 확률 비율을 보고 한 번에 너무 멀리 움직이지 않도록 제한한다.
이번 글에서 기억할 것
Actor는 Action distribution을 학습하고, Critic은 기대 Value를 학습하며, TD error가 두 Update를 연결한다.
- Advantage는 로 “평균보다 얼마나 좋은가”를 나타낸다.
- State-dependent baseline을 빼면 평균 Gradient는 유지되고 Variance를 줄일 수 있다.
- 를 Advantage의 한 Step 추정으로 사용한다.
- Actor는 Action probability를, Critic은 Value prediction을 고친다.
- n-step과 GAE로 Bias와 Variance를 조절할 수 있다.