6. 우선 경험 리플레이
(Prioritized Experience Replay)
•경험 리플레이는 강화학습에서 널리 사용 (뉴럴넷 활용)
•우선 경험 리플레이는 가장 놀라운 경험에 집중
•척도(예: TD Error)에 따라 샘플의 우선도 계산
P(i) =
pα
i
∑k
pα
k
7. Ape-X 특징
•액터(Actor, CPU)는 리플레이와 우선도를 공유 메모리에 추가
•단일 러너(Learner, GPU)는 이 메모리에서 샘플링하여 학습
•개별 환경을 가진 다양한 액터가 경험을 생성
•서로 다른 epsilon 값으로 e-greedy 정책을 사용
ϵi = ϵ1+ i
N − 1 α
8. Ape-X 특징 (2)
•액터의 메모리는 주기적으로 최신 네트웍 모수로 갱신
•원칙적으로 액터/러너 둘 다 분산 가능하지만, 실험결과 수백개의
액터가 CPU에서 동작하고, 단일 러너가 GPU에 있는 것이 가장 유
용한 경험을 샘플링 함
9. Ape-X DQN
•개선된 DQN 사용
•Double Q-Learning, Multistep-Bootstrap targets,
Dueling-Network
•Q-러닝 계열은 Off-Policy이기에, 데이터 생성 정책은 자유
•실재로는 행위 정책의 선택이 탐험과 함수 근사의 질에 영향
•각 액터는 다른 정책을 실행, 가장 효율적인 경험을 선택하는 우선
화(Prioritized) 기재에 따라 다양한 전략에서 경험 생성
13. 논문의 구현
•TensorFlow + Tesla P100
•액터당 139 FPS (학습과정이 없어 빠른 듯)
•360개 액터(90 대?): 139 x 360 = 50K FPS
•4프레임 스킵을 고려하면 초당 12.5K개 전이(스텝)
•공유 메모리는 인메모리 KV 스토리지
•순환 버퍼에서 우선도 샘플링
14. 논문의 구현
•공유된 리플레이 버퍼는 200만 전이
•학습율 0.00025/4, 감쇄 0.95의 RMSProp Optimizer
•Actor
•전이 100개씩 버퍼링 후 50개 단위 보내짐 (100/(139/4) =
약 2.8 초당 1번)
•매 400 프레임 (약 2.8초)당 러너의 패러미터 복사
15. 논문의 구현
•Learner
•50,000 전이 이상이 되면 학습시작
•512개 전이의 16 배치까지 비동기로 사전 추출
•초당 배치 19개 분 업데이트 계산(512x19=9,728 전이)
•초당 평균 이 9.7K 전이를 위한 경사 업데이트
•타겟 네트웍을 2,500 배치에 한 번씩 갱신 (2500/19 = 131
초, 약 2분에 1번)
16. (mini) 배치가 512 !
•강화학습은 탐험과 이용의 아슬아슬한 타협
•큰 배치는 학습이 빠를 수 있으나, 현재 데이터에 오버피팅 되기 쉽다
•이를 막기 위해 분산 SGD, 중요도 샘플링, 우선 경험 리플레이 방법
을 테스트
•제거(Ablation) 분석에서 우선 경험 리플레이가 가장 효과적
22. 논문 구현과 차이점
•Prioritized DQN으로 구현
•KV 스토리지 대신 ZeroMQ
•Publish-Subscribe 패턴으로 모델 배포
•러너, 버퍼, 액터 개별 프로세스 구현
•Send, Sample, Prefetch를 위한 스레드 없음
•실험 대상: Atari 57 Games -> Pong
23. 논문 구현과 차이점
•액터별 초당 약 60 전이
•16개 액터 (테스크 노드 4 대)
•공유된 리플레이 버퍼는 50만 전이
•학습율 0.00025 / 4의 Adam Optimizer
•Actor
•전이 100 개씩 버퍼링 후 보내짐 (약 2초당 1번)
•약 10초당 한 번 러너의 패러미터 복사
24. 논문 구현과 차이점
•Learner
•1만 전이 이상이 되면 학습시작
•초당 256 배치 약 4개 분 업데이트 계산(1024 전이)
•타겟 네트웍을 200 배치에 한 번씩 갱신 (약 1분에 1번)