[강화학습 메모] A3C (Asynchronous A2C, 2016)

Joonas' Note

[강화학습 메모] A3C (Asynchronous A2C, 2016) 본문

AI

[강화학습 메모] A3C (Asynchronous A2C, 2016)

2023. 3. 10. 19:08 joonas 읽는데 2분
  • A3C (Asynchronous A2C, 2016)
  • 배경
  • A3C의 종류
  • 알고리즘
  • (1) Multi-step loss function
  • (2) Entrophy loss function
  • 참고

A3C (Asynchronous A2C, 2016)

  1. 샘플 사이의 상관 관계를 비동기 업데이트로 해결
  2. 리플레이 메모리를 사용하지 않음
  3. on-policy

개념적으로는 A2C 를 여러개 두고, 각 에이전트마다 아래와 같이 gradient를 계산해서, 그걸 글로벌 네트워크에 반영하는 방식이다.

Q(1)(st,at)(yilogpi)gradient(1)Q(2)(st,at)(yilogpi)gradient(2)

배경

  • A2C는 샘플 간 상관 관계에 문제가 있었다
    • 시간의 흐름에 따라, 샘플을 수집했기 때문
    • 또한 샘플에 따라 정책(π)이 업데이트 되고, 업데이트 된 정책에서 샘플을 뽑기 때문에, 샘플이 동일한 분포를 가지지 못함.
    ⇒ 한 정책에서 여러 개의 독립적인 에피소드를 발
  • DQN은 리플레이 메모리가 필요했고, 실시간 학습(Temporal Difference)이 불가능하다.

A3C의 종류

  • 그래디언트 병렬화
  • 워커가 그래디언트 계산
  • 데이터 병렬화
  • 글로벌 신경망이 그래디언트 계산(워커는 샘플을 글로벌 신경망에 넘겨줌)

알고리즘

글로벌 신경망의 critic: ϕ

액터 신경망의 파라미터: θ


이거를 여러 개의 에이전트에 복사 ϕW,θw

워커가 3개 있다고 가정.


1번째 워커

θw를 따르는 정책 πθw으로 시간 끝까지 샘플(xi,ui,r(xi,ui),xi+1)을 뽑는다

워커의 n-스텝 시간차 타깃 y 계산

워커의 n-스텝 어드벤티지 Aϕw(xi,ui) 계산

워커 신경망의 그래디언트 계산

i=1[(yw,iVϕw(xi))ϕwVϕw(xi)]

워커 액터 신경망의 그래디언트 계산

θwi[log(πθw(uixi))Aϕw(xi,ui)]

4의 값을 활용하여 글로벌 신경망 업데이트

ϕαcritici=1[(yw,iVϕw(xi))ϕwVϕw(xi)]

글로벌 신경망 파라미터를 다시 워커로

데이터 병렬화는 워커에서 했던 계산들을 글로벌 신경망에서 하면 됨.

(1) Multi-step loss function

Agent가 여러개인데, 글로벌 네트워크는 하나이므로 나머지 Agent가 기다리는 상황이 생긴다.

나머지 agent는 n개의 스텝을 진행하면서, n개의 loss를 쌓고 있는다.

(2) Entrophy loss function

위 식에서 Q(st,at) 에 갑자기 뭘 곱했는데, 그게 엔트로피 식이었다.

pilogpi

참고

https://github.com/rlcode/reinforcement-learning-kr