이번 시리즈에서는 강화학습 알고리즘의 일종인 A2C 알고리즘에 대해 알아보겠습니다.
배경
저번에 소개했던 REINFORCE 알고리즘은 정책을 업데이트하기 위해서 에피소드가 끝날 때까지 기다려야 하고, 그래디언트의 분산이 매우 크다는 단점이 있었습니다.
이 두 가지 단점을 개선한 알고리즘이 어드밴티지 액터-크리틱(A2C, advantage actor-critic)입니다.
Actor-Critic
강화학습에서는 에이전트의 행동 확률을 직접적으로 학습하는 방법을 REINFORCE 또는 policy gradient라고 부릅니다. 위에서 언급하였듯이 Actor-Critic은 위의 두 알고리즘의 단점을 개선한 알고리즘이라고 소개하였습니다. 여기서 Actor-Critic 알고리즘의 핵심은 가치함수를 같이 써서 안정성을 높이는 것입니다.
Actor-Critic 알고리즘은 Actor 네트워크와 Critic 네트워크라는 두 개의 네트워크를 사용합니다. Actor는 상태가 주어졌을 때 행동을 결정하고, Critic은 상태의 가치를 평가합니다.
Actor-Critic의 수식은 아래와 같습니다.
사실상 앞서 설명드렸던 정책 그래디언트 알고리즘과 수식은 그렇게 다르지 않습니다. 하지만 여기선 Q에 θ가 아닌 가중치 w로 되어 있음을 확인할 수 있습니다. 즉, θ로 파라미터화된 정책 네트워크 π_θ와 w로 파라미터화된 벨류 네트워크 Q_w 이렇게 2개의 neural net을 학습하게 됩니다.
행동가치는 상태변수 St에서 행동 at를 선택하고 그로부터 정책 π에 의해서 행동이 가해졌을 대 기대할 수 있는 미래의 반환값으로서, 정책이 실현되는 시간스텝 t에서의 기댓값이기 때문에 목적함수의 그래디언트를 계산할 때 에피소드가 끝날 때까지 기다릴 필요가 없습니다.
A2C 알고리즘
Actor-Critic의 Actor의 기대출력으로 Advantage를 사용하면 Advantage Actor-Critic, A2C 가 됩니다.
먼저 Actor-Critic 알고리즘의 목적함수의 그래디언트 수식을 보시면 Q(s, a)에서 상수나 행동 at의 함수가 아닌 bt를 빼도 결국 기댓값은 변하지 않습니다.
여기서 bt를 베이스라인(baseline)이라고 합니다. 베이스라인을 도입하는 이유는 목적함수 그래디언트의 분산을 줄이기 위함입니다. 일반적으로는 상태가치 함수 V(st)를 베이스라인으로 사용합니다. 상태가치함수는 at의 함수가 아니기 때문에 조건을 만족하여 사용할 수 있습니다.
여기서 A(s,a) = Q(s, a) - V(s)를 어드밴티지(advantage) 함수라고 합니다. 상태가치는 상태변수 st에서 모든 행동 at에 대한 행동가치의 평균입니다. 그러므로 A(s, a)는 상태변수 St에서 선택된 행동 at가 평균에 비해 얼마나 좋은지를 평가하는 척도로 이해할 수 있습니다.
이제 목적함수 그래디언트는 행동가치가 아니라 어드밴티지에 비례합니다. 그리고 어드밴티지의 정의상 그 값이 행동가치보다 작으므로 그래디언트의 분산이 작아질 것으로 기대할 수 있습니다.
'황민규 > 강화학습 예제' 카테고리의 다른 글
Dynamic Programming (0) | 2023.04.11 |
---|---|
A2C 알고리즘[#1] (0) | 2023.03.28 |
강화학습 미로찾기 구현[#2] (0) | 2023.03.21 |
강화학습 미로찾기 구현(#1) (0) | 2023.03.07 |