Más contenido relacionado La actualidad más candente (20) Similar a 분산 강화학습 논문(DeepMind IMPALA) 구현 (7) 분산 강화학습 논문(DeepMind IMPALA) 구현3. 정책(Policy) 기반 RL
•학습 및 표현이 더 간단하다
•가치(Value)는 어떤 동작을 해야하는지 지시해주지 않는다
•가치보다 정책기반이 더 강한 수렴 보장
•대표적으로 Actor-Critic 방법이 있음
5. 논문 소개
•“IMPALA: Scalable Distributed Deep-RL with Importance
Weighted Actor-Learner Architectures”
•DeepMind, 2018
•빠른 학습을 위한 액터-러너 구성 분산(~수천 대) 강화 학습
•Off-Policy PG를 위해 중요도 샘플링 이용 V-trace 제안
•DMLab-30, Atari-57 등 Multi-Task에서 우수한 결과
6. 비슷한 연구
•“Distributed Prioritized Experience Replay” (Ape-X)
•Google, 2018 (D. Silver)
•IMPALA와 비슷한 시기에 발표
•우선 경험 리플레이 방법으로 정책 지연 대응
•구현 발표 - https://www.slideshare.net/ssuser163469/
distributed-prioritized-experience-replay
9. 경험과 모수의 공유
•IMPALA에서 각 액터는 경험을 러너 중 하나로 보냄
•러너는 액터들이 보낸 경험에서 학습
•각 액터는 모든 러너에게서 가중치를 병렬로 얻고 병합
•가중치는 러너 머신간 분산
•러너들간 가중치 경사 공유
12. Ape-X와 IMPALA 차이점
Ape-X IMPALA
러너 단일 러너 멀티 러너 가능
데이터 병렬화 중앙 집중 러너별 독립
경험 선별 Prioritization NA
정책 지연 대응 NA V-Trace
경사 병렬화 NA 러너들 간 공유
가중치 단일 가중치를 액터가 받음 복수 가중치를 액터가 병합
액터 전송 데이터 경험 + 우선도 경험 + 로짓 + LSTM상태
16. V-trace target
vs ≜ V(xs) +
s+n−1
∑
t=s
γt−s
(
t−1
∏
i=s
ci)δtV
≜ ρt(rt + γV(xt+1) − V(xt))
TD
17. V-trace target
vs ≜ V(xs) +
s+n−1
∑
t=s
γt−s
(
t−1
∏
i=s
ci)δtV
≜ min( ¯ρ,
π(at |xt)
μ(at |xt)
)
≜ ρt(rt + γV(xt+1) − V(xt))
절단 IS
갱신의 고정점(Fixed Point)을 정의
18. V-trace target
vs ≜ V(xs) +
s+n−1
∑
t=s
γt−s
(
t−1
∏
i=s
ci)δtV
≜ min(¯c,
π(ai |xi)
μ(ai |xi)
)
절단 IS
분산 감소에 이용
21. Policy Gradient - Off Policy
∇J(π) = 𝔼as∼μ(⋅|xs)[
π¯ρ(as |xs)
μ(as |xs)
∇log π¯ρ(as |xs)qs |xs]
22. Policy Gradient - Off Policy
∇J(π) = 𝔼as∼μ(⋅|xs)[
π¯ρ(as |xs)
μ(as |xs)
∇log π¯ρ(as |xs)qs |xs]
Importance Sampling
≜ ρ
25. + ρs ∇wlog πw(a|xs)(rs + γvs+1 − Vθ(xs))
− ∇w ∑
a
πw(a|xs)log πw(a|xs)
(vs − Vθ(xs))∇θVθ(xs)
Policy Gradient Loss
≃ Advantage
V-trace Actor-Critic Update
= qs
정책 모수 갱신
26. + ρs ∇wlog πw(a|xs)(rs + γvs+1 − Vθ(xs))
− ∇w ∑
a
πw(a|xs)log πw(a|xs)
(vs − Vθ(xs))∇θVθ(xs)
Baseline Loss
V-trace Actor-Critic Update
가치 모수 갱신
27. + ρs ∇wlog πw(a|xs)(rs + γvs+1 − Vθ(xs))
−∇w ∑
a
πw(a|xs)log πw(a|xs)
(vs − Vθ(xs))∇θVθ(xs)
Entropy Loss
V-trace Actor-Critic Update
탐험 유도
28. 직관
•절단 중요도 샘플링(Truncated IS)으로 Policy-Lag 보완
•Off-Policy Policy Gradient 구현
•두 중요도 샘플링 값의 절단 임계치로 튜닝
•rho bar 는 수렴하는 가치함수의 기준에
•c bar 는 수렴하는 속도에 영향
31. 재구현 초모수
•Unroll 수 : 5
•경사 Clipping 크기 : 0.1
•미니배치 크기 : 128
•RMSProp: LR = 0.0001, EPS = 1e-5
•각 액터는 약 6초에 한 번씩 버퍼(100 경험) 전송
•러너는 약 10초에 한 번 모델 배포
32. 재구현 스펙
•PyTorch, AWS + Terraform
•단일 러너 - AWS p2.xlarge (Tesla K80)
•16 액터 - AWS m5.xlarge 4대
•ZeroMQ로 네트워킹
•Publish-Subscribe 패턴으로 모델 배포
•실험 대상: Atari 57 Games -> Pong
34. 구현 팁
•갱신할 모수가 아닌 것에서 나온 값은 계산 그래프에서 떼어낼 것
•적절한 Entropy Loss로 Exploration을 촉진
•액터 환경별로 서로 다른 Random Seed를 줄 것
35. 배포 문제
•다양한 샘플이 필요 -> 많은 테스크 노드
•하나씩 설치하고 관리하기는 힘듦
•AWS + Terraform 👏
39. 실패 원인?
•계산 그래프에서 중복 역전파로 Gradient Explosion 가능성
•DeepMind 코드의 이해 부족
•논문에 구현관련 설명이 부족
•시간이 더 있다면… 😥
40. 소감
•재구현은 논문 이해를 위한 좋은 방법
•분산 강화학습 추천
•IMPALA vs Ape-X?
•IMPALA는 이론적 장점, Ape-X는 구현 측면 장점
•둘의 우위는 앞으로 두고 보아야…