A3C (Asynchronous Advantage Actor-Critic)

Seulgi Kim·2023년 7월 18일
0

reinforce learning

목록 보기
14/14

A2C의 장단점

장점

  1. 에피소드가 끝날 때까지 기다리지 않아도 된다.
  2. Advantage 함수를 도입해 그래디언트 분산을 줄였다.

단점

정책과 가치함수를 학습시킬 때 사용되는 샘플(batch)가 시간적으로 상관되어 있다.
샘플간의 높의 상관관계는 그래디언트를 편향시키고 학습을 불안정하게 만들 수 있다.

A3C (Asynchronous Advantage Actor-Critic) 알고리즘

A2C의 데이터의 상관관계

A2C의 목적함수 그래디언트는 다음과 같다.

θJ(θ)=t=0T(Extpθ(xt),utπθ(utxt)[θlogπθ(utxt)Aπθ(xt,ut)])\begin{aligned} \nabla_\theta J(\theta) = \sum\limits_{t=0}^T ({\mathbb E}_{x_t \sim p_\theta(x_t), u_t \sim \pi_\theta(u_t|x_t)} [\nabla_\theta \log \pi_\theta (u_t|x_t) A^{\pi_\theta}(x_t, u_t)]) \end{aligned}

한 개의 에피소드만 고려하면 다음과 같이 쓸 수 있다.

θJ(θ)t=0T(θlogπθ(utxt)Aπθ(xt,ut))\begin{aligned} \nabla_\theta J(\theta) \approx \sum\limits_{t=0}^T (\nabla_\theta \log \pi_\theta (u_t|x_t) A^{\pi_\theta} (x_t, u_t)) \end{aligned}

배치 경사 상승법(batch gradient ascent)으로 액터 신경망 파라미터 θ\theta를 업데이트할 수 있다.

θθ+αt=0T(θlogπθ(utxt)Aπθ(xt,ut))\begin{aligned} \theta \leftarrow \theta + \alpha \sum\limits_{t=0}^T (\nabla_\theta \log \pi_\theta (u_t|x_t) A^{\pi_\theta}(x_t, u_t)) \end{aligned}

일반적인 미니배치로 업데이트 하려면 무작위로 배치의 데이터를 섞은 후 미니배치와 미니배치 사이에 액터 신경망 파라미터 θ\theta를 업데이트 해줘야 한다.

미니배치의 크기가 1인 확률적 경사 하강법 (Stochastic Gradient Descent; SGD)의 기본 가정은 학습 데이터가 독립적이고 동일한 분포를 가진 샘플이어야 한다는 것이다.

A2C 알고리즘은 배치를 통해 정책 πθ\pi_\theta가 업데이트 되고, 업데이트된 새로운 정책으로 일정 시간스텝 NN 동안 수집한 샘플로 정책을 다시 업데이트 하는 과정을 겪는다.

즉, A2C 알고리즘은 에이전트가 환경과 상호작용하면서 순차적으로 데이터를 얻기 때문에 데이터가 독립적이라고 말할 수 없다.

또한, 업데이트 된 정책으로 얻어진 데이터는 이전 데이터와는 다른 확률분포를 가질 것이기 때문에 동일한 분포를 가진 샘플이라고도 할 수 없다.

  • off-policy 방법의 예시 중 하나인 심층 Q 네트워크 (DQN) 에서는 데이터를 바로 학습에 사용하지 않고 리플레이 버퍼 (replay buffer) 에 저장해 두고 버퍼에서 데이터를 무작위로 꺼내서 학습에 이용한다. 이러한 방법은 미니배치가 순차적인 데이터로 구성되지 않으므로 데이터 사이의 상관관계를 줄일 수 있다. 또한 버퍼가 차면 오래된 데이터를 먼저 제거하는 방식으로 최근의 정책으로 발생시킨 데이터 위주로 학습이 진행될 수 있도록 하였다. on-policy 방법인 A2C 알고리즘은 이러한 리플레이 버퍼를 사용할 수 없다.

A3C의 데이터 상관관계 감소법

A2C 알고리즘에서 샘플의 상관관계를 깨는 방법은 독립적인 여러 개의 에피소드를 이용하는 것이다.

다중 에이전트를 병렬적으로 운용하여 동일한 정책 πθ\pi_\theta로 독립적인 환경과 각각 상호작용하면서 데이터를 수집하면 각각의 에이전트가 서로 다른 상태와 보상, 상태천이 등을 경험하기 때문에 학습 데이터의 연관성을 깰 수 있다.

다중 에이전트를 운용하는 방식에는 다음과 같이 두 가지 방법이 있다.

동기적 액터-크리틱

여러 개의 에이전트가 수집한 데이터를 동일한 시간에 모두 모아 한꺼번에 에이전트의 정책과 가치함수를 업데이트 하는 방법이다.

모든 에이전트가 동일한 정책을 가지고 데이터를 만들고 정책을 동시에 업데이트한다.

비동기적 액터-크리틱

글로벌 신경망과 워커(worker)라고 불리는 여러개의 에이전트가 존재하며, 글로벌 신경망과 워커들은 각자의 액터 신경망과 크리틱 신경망을 갖는다.

워커마다 각자의 시간에 비동기적으로 수집한 정보를 글로벌 신경망에 전달하여 글로벌 신경망을 업데이트하고 업데이트 된 신경망 파라미터를 해당 워커에 복사한다.

그래디언트 병렬화 (gradient parallelism)

워커가 수집한 NN개의 샘플로 워커 자신의 그래디언트를 계산하고 그 결과를 글로벌 신경망에 전달하는 방법이다.

이는 그래디언트의 계산을 워커에게 맡김으로써 글로벌 신경망의 계산량을 줄여, 워커의 수를 확장하기에 용이하다.

데이터 병렬화 (data parallelism)

워커가 NN개의 샘플을 글로벌 신경망에 전달하여 글로벌 신경망이 자신의 신경망을 업데이트하고, 업데이트 된 신경망을 워커에 복사하는 방법이다.

이 방법은 그래디언트 계산과 신경망 업데이트는 글로벌 신경망이 전담하고 워커는 데이터 수집만 수행한다.

n-스텝 가치 추정

A2C의 1-스텝 가치 추정

목적함수의 그래디언트를 계산할 때 어드밴티지를 편향 없이 작은 분산값을 갖도록 추정하는 것이 중요하다.

A2C 알고리즘에서는 다음과 같이 1-스텝 관계식을 이용해 가치함수와 어드밴티지 함수를 추정한다.

Vϕ(xt)r(xt,ut)+γVϕ(xt+1)Aϕ(xt,ut)r(xt,ut)+γVϕ(xt+1)Vϕ(xt)\begin{aligned} V_\phi (x_t) &\approx r(x_t, u_t) + \gamma V_\phi (x_{t+1}) \\ A_\phi (x_t, u_t) &\approx r(x_t, u_t) + \gamma V_\phi(x_{t+1}) - V_\phi (x_t) \end{aligned}

이러한 1-스텝 가치 추정 방법을 상태가치의 추정 정확도에 따라 어드밴티지 추정값에 큰 편향이 있을 수 있다.

반면, 무한 구간에서 어드밴티지 함수를 추정하면, 어드밴티지 추정값에 편향은 없지만 큰 분산을 갖게 된다.

A3C의 n-스텝 가치 추정

A3C에서는 어드밴티지 함수의 편향과 분산을 적절히 조절하기 위하여 n-스텝 가치함수 추정을 도입했다.

Vϕ(xt)k=tn+t1(γktr(xk,uk))+γnVϕ(xt+n)Aϕ(xt,ut)k=tt+n1(γktr(xk,uk))+γnVϕ(xt+n)Vϕ(xt)\begin{aligned} V_\phi (x_t) &\approx \sum\limits_{k=t}^{n+t-1} (\gamma^{k-t} r(x_k, u_k) ) + \gamma^{n} V_\phi (x_{t+n}) \\ A_\phi (x_t, u_t) &\approx \sum\limits_{k=t}^{t+n-1}(\gamma^{k-t} r(x_k, u_k)) + \gamma^n V_\phi (x_{t+n}) - V_\phi (x_t) \end{aligned}

nn이 크면 어드밴티지 추정값의 분산은 커지고 편향이 작아지는 반면, n이 작으면 분산은 작아지고 편향을 커질 수 있다.


출처. 수학으로 풀어보는 강화학습 원리와 알고리즘

1개의 댓글

comment-user-thumbnail
2023년 7월 18일

글이 잘 정리되어 있네요. 감사합니다.

답글 달기