본문 바로가기

황민규/강화학습 예제

A2C 알고리즘[#2]

이번 시리즈에서는 강화학습 알고리즘의 일종인 A2C 알고리즘에 대해 알아보겠습니다.

배경

저번에 소개했던 REINFORCE 알고리즘은 정책을 업데이트하기 위해서 에피소드가 끝날 때까지 기다려야 하고, 그래디언트의 분산이 매우 크다는 단점이 있었습니다.

이 두 가지 단점을 개선한 알고리즘이 어드밴티지 액터-크리틱(A2C, advantage actor-critic)입니다.

Actor-Critic

강화학습에서는 에이전트의 행동 확률을 직접적으로 학습하는 방법을 REINFORCE 또는 policy gradient라고 부릅니다. 위에서 언급하였듯이 Actor-Critic은 위의 두 알고리즘의 단점을 개선한 알고리즘이라고 소개하였습니다. 여기서 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를 빼도 결국 기댓값은 변하지 않습니다.

Q(s,a)에서 bt를 뺀 목적함수 그래디언트

여기서 bt를 베이스라인(baseline)이라고 합니다. 베이스라인을 도입하는 이유는 목적함수 그래디언트의 분산을 줄이기 위함입니다. 일반적으로는 상태가치 함수 V(st)를 베이스라인으로 사용합니다. 상태가치함수는 at의 함수가 아니기 때문에 조건을 만족하여 사용할 수 있습니다.

V(s)를 뺀 목적함수 그래디언트

여기서 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