SlideShare ist ein Scribd-Unternehmen logo
1 von 42
Downloaden Sie, um offline zu lesen
분산 강화학습 논문
(DeepMind IMPALA)

구현
김정주 (haje01@gmail.com)
소개
정책(Policy) 기반 RL
•학습 및 표현이 더 간단하다

•가치(Value)는 어떤 동작을 해야하는지 지시해주지 않는다

•가치보다 정책기반이 더 강한 수렴 보장

•대표적으로 Actor-Critic 방법이 있음
Off-Policy Actor-Critic?
•Actor-Critic은 기본적으로 On-Policy

•DQN처럼 Replay Buffer를 사용할 수 없음

•대신 멀티 환경(Agent) 방식 사용

•A3C
논문 소개
•“IMPALA: Scalable Distributed Deep-RL with Importance
Weighted Actor-Learner Architectures”

•DeepMind, 2018

•빠른 학습을 위한 액터-러너 구성 분산(~수천 대) 강화 학습

•Off-Policy PG를 위해 중요도 샘플링 이용 V-trace 제안

•DMLab-30, Atari-57 등 Multi-Task에서 우수한 결과
비슷한 연구
•“Distributed Prioritized Experience Replay” (Ape-X)

•Google, 2018 (D. Silver)

•IMPALA와 비슷한 시기에 발표

•우선 경험 리플레이 방법으로 정책 지연 대응

•구현 발표 - https://www.slideshare.net/ssuser163469/
distributed-prioritized-experience-replay
데이터 병렬화
경사 병렬화
경험과 모수의 공유
•IMPALA에서 각 액터는 경험을 러너 중 하나로 보냄

•러너는 액터들이 보낸 경험에서 학습

•각 액터는 모든 러너에게서 가중치를 병렬로 얻고 병합

•가중치는 러너 머신간 분산

•러너들간 가중치 경사 공유
Single/Multi-Learner
Ape-X와 IMPALA의 공통점
•Off-Policy

•Multi-Actor

•경사가 아닌 경험을 공유 (지연 시간에 덜 민감)
Ape-X와 IMPALA 차이점
Ape-X IMPALA
러너 단일 러너 멀티 러너 가능
데이터 병렬화 중앙 집중 러너별 독립
경험 선별 Prioritization NA
정책 지연 대응 NA V-Trace
경사 병렬화 NA 러너들 간 공유
가중치 단일 가중치를 액터가 받음 복수 가중치를 액터가 병합
액터 전송 데이터 경험 + 우선도 경험 + 로짓 + LSTM상태
IMPALA 성능
DeepMind Lab-30 과제에서 점수와 소요 시간(처리량)
수식
V-trace target
vs ≜ V(xs) +
s+n−1
∑
t=s
γt−s
(
t−1
∏
i=s
ci)δtV
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
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)을 정의
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
분산 감소에 이용
Policy Gradient - On Policy
∇J(μ) = 𝔼as∼μ(⋅|xs)[∇log μ(as |xs)qs |xs]
∇J(μ) = 𝔼as∼μ(⋅|xs)[∇log μ(as |xs)qs |xs]
Policy Gradient - On Policy
≜ rs + γvs+1 ≃ Qμ
(xs, as)
Policy Gradient - Off Policy
∇J(π) = 𝔼as∼μ(⋅|xs)[
π¯ρ(as |xs)
μ(as |xs)
∇log π¯ρ(as |xs)qs |xs]
Policy Gradient - Off Policy
∇J(π) = 𝔼as∼μ(⋅|xs)[
π¯ρ(as |xs)
μ(as |xs)
∇log π¯ρ(as |xs)qs |xs]
Importance Sampling
≜ ρ
기저있는 Actor-Critic Update
Δθ = α∇θlog πθ(s, a)(Q(s, a) − V(s))
V-trace Actor-Critic Update
+ ρs ∇wlog πw(a|xs)(rs + γvs+1 − Vθ(xs))
− ∇w ∑
a
πw(a|xs)log πw(a|xs)
(vs − Vθ(xs))∇θVθ(xs)
+ ρ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
정책 모수 갱신
+ ρ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
가치 모수 갱신
+ ρ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
탐험 유도
직관
•절단 중요도 샘플링(Truncated IS)으로 Policy-Lag 보완

•Off-Policy Policy Gradient 구현

•두 중요도 샘플링 값의 절단 임계치로 튜닝

•rho bar 는 수렴하는 가치함수의 기준에

•c bar 는 수렴하는 속도에 영향
재구현
https://github.com/haje01/impala
논문의 구현 초모수
재구현 초모수
•Unroll 수 : 5

•경사 Clipping 크기 : 0.1

•미니배치 크기 : 128

•RMSProp: LR = 0.0001, EPS = 1e-5

•각 액터는 약 6초에 한 번씩 버퍼(100 경험) 전송

•러너는 약 10초에 한 번 모델 배포
재구현 스펙
•PyTorch, AWS + Terraform

•단일 러너 - AWS p2.xlarge (Tesla K80)

•16 액터 - AWS m5.xlarge 4대

•ZeroMQ로 네트워킹

•Publish-Subscribe 패턴으로 모델 배포

•실험 대상: Atari 57 Games -> Pong
재구현 구조도 (단일 러너)
구현 팁
•갱신할 모수가 아닌 것에서 나온 값은 계산 그래프에서 떼어낼 것

•적절한 Entropy Loss로 Exploration을 촉진

•액터 환경별로 서로 다른 Random Seed를 줄 것
배포 문제
•다양한 샘플이 필요 -> 많은 테스크 노드

•하나씩 설치하고 관리하기는 힘듦

•AWS + Terraform 👏
Terraform을 통한 배포
$ terraform init
$ terraform apply
배포 결과
실험 결과… 수렴 실패 😱
실패 원인?
•계산 그래프에서 중복 역전파로 Gradient Explosion 가능성

•DeepMind 코드의 이해 부족

•논문에 구현관련 설명이 부족

•시간이 더 있다면… 😥
소감
•재구현은 논문 이해를 위한 좋은 방법

•분산 강화학습 추천

•IMPALA vs Ape-X?

•IMPALA는 이론적 장점, Ape-X는 구현 측면 장점

•둘의 우위는 앞으로 두고 보아야…
감사합니다.
참고
•https://arxiv.org/abs/1802.01561

•http://proceedings.mlr.press/v32/silver14.pdf

•https://github.com/deepmind/scalable_agent

•https://github.com/Shmuma/ptan

•https://github.com/kimhc6028/policy-gradient-
importance-sampling/blob/master/
importance_sampling.py

Weitere ähnliche Inhalte

Was ist angesagt?

강화학습의 흐름도 Part 1
강화학습의 흐름도 Part 1강화학습의 흐름도 Part 1
강화학습의 흐름도 Part 1Dongmin Lee
 
Introduction of Deep Reinforcement Learning
Introduction of Deep Reinforcement LearningIntroduction of Deep Reinforcement Learning
Introduction of Deep Reinforcement LearningNAVER Engineering
 
오토인코더의 모든 것
오토인코더의 모든 것오토인코더의 모든 것
오토인코더의 모든 것NAVER Engineering
 
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016Taehoon Kim
 
강화학습 알고리즘의 흐름도 Part 2
강화학습 알고리즘의 흐름도 Part 2강화학습 알고리즘의 흐름도 Part 2
강화학습 알고리즘의 흐름도 Part 2Dongmin Lee
 
Proximal Policy Optimization (Reinforcement Learning)
Proximal Policy Optimization (Reinforcement Learning)Proximal Policy Optimization (Reinforcement Learning)
Proximal Policy Optimization (Reinforcement Learning)Thom Lane
 
Intro to Deep Reinforcement Learning
Intro to Deep Reinforcement LearningIntro to Deep Reinforcement Learning
Intro to Deep Reinforcement LearningKhaled Saleh
 
pycon2018 "RL Adventure : DQN 부터 Rainbow DQN까지"
pycon2018 "RL Adventure : DQN 부터 Rainbow DQN까지"pycon2018 "RL Adventure : DQN 부터 Rainbow DQN까지"
pycon2018 "RL Adventure : DQN 부터 Rainbow DQN까지"YeChan(Paul) Kim
 
파이썬으로 나만의 강화학습 환경 만들기
파이썬으로 나만의 강화학습 환경 만들기파이썬으로 나만의 강화학습 환경 만들기
파이썬으로 나만의 강화학습 환경 만들기정주 김
 
Artificial Neural Networks (ANNs) - XOR - Step-By-Step
Artificial Neural Networks (ANNs) - XOR - Step-By-StepArtificial Neural Networks (ANNs) - XOR - Step-By-Step
Artificial Neural Networks (ANNs) - XOR - Step-By-StepAhmed Gad
 
Chapter 15 Representation learning - 1
Chapter 15 Representation learning - 1Chapter 15 Representation learning - 1
Chapter 15 Representation learning - 1KyeongUkJang
 
Igc2016 Technical Artist가 뭐하는 사람이에요?
Igc2016 Technical Artist가 뭐하는 사람이에요?Igc2016 Technical Artist가 뭐하는 사람이에요?
Igc2016 Technical Artist가 뭐하는 사람이에요?SangYun Yi
 
Deep reinforcement learning from scratch
Deep reinforcement learning from scratchDeep reinforcement learning from scratch
Deep reinforcement learning from scratchJie-Han Chen
 
강화학습 기초_2(Deep sarsa, Deep Q-learning, DQN)
강화학습 기초_2(Deep sarsa, Deep Q-learning, DQN)강화학습 기초_2(Deep sarsa, Deep Q-learning, DQN)
강화학습 기초_2(Deep sarsa, Deep Q-learning, DQN)Euijin Jeong
 
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016Taehoon Kim
 
게임제작개론 : #6 게임 시스템 구조에 대한 이해
게임제작개론 : #6 게임 시스템 구조에 대한 이해게임제작개론 : #6 게임 시스템 구조에 대한 이해
게임제작개론 : #6 게임 시스템 구조에 대한 이해Seungmo Koo
 
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016Taehoon Kim
 
딥러닝 - 역사와 이론적 기초
딥러닝 - 역사와 이론적 기초딥러닝 - 역사와 이론적 기초
딥러닝 - 역사와 이론적 기초Hyungsoo Ryoo
 
[RLKorea] <하스스톤> 강화학습 환경 개발기
[RLKorea] <하스스톤> 강화학습 환경 개발기[RLKorea] <하스스톤> 강화학습 환경 개발기
[RLKorea] <하스스톤> 강화학습 환경 개발기Chris Ohk
 

Was ist angesagt? (20)

강화학습의 흐름도 Part 1
강화학습의 흐름도 Part 1강화학습의 흐름도 Part 1
강화학습의 흐름도 Part 1
 
Introduction of Deep Reinforcement Learning
Introduction of Deep Reinforcement LearningIntroduction of Deep Reinforcement Learning
Introduction of Deep Reinforcement Learning
 
오토인코더의 모든 것
오토인코더의 모든 것오토인코더의 모든 것
오토인코더의 모든 것
 
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
 
강화학습 알고리즘의 흐름도 Part 2
강화학습 알고리즘의 흐름도 Part 2강화학습 알고리즘의 흐름도 Part 2
강화학습 알고리즘의 흐름도 Part 2
 
Proximal Policy Optimization (Reinforcement Learning)
Proximal Policy Optimization (Reinforcement Learning)Proximal Policy Optimization (Reinforcement Learning)
Proximal Policy Optimization (Reinforcement Learning)
 
Intro to Deep Reinforcement Learning
Intro to Deep Reinforcement LearningIntro to Deep Reinforcement Learning
Intro to Deep Reinforcement Learning
 
pycon2018 "RL Adventure : DQN 부터 Rainbow DQN까지"
pycon2018 "RL Adventure : DQN 부터 Rainbow DQN까지"pycon2018 "RL Adventure : DQN 부터 Rainbow DQN까지"
pycon2018 "RL Adventure : DQN 부터 Rainbow DQN까지"
 
파이썬으로 나만의 강화학습 환경 만들기
파이썬으로 나만의 강화학습 환경 만들기파이썬으로 나만의 강화학습 환경 만들기
파이썬으로 나만의 강화학습 환경 만들기
 
Artificial Neural Networks (ANNs) - XOR - Step-By-Step
Artificial Neural Networks (ANNs) - XOR - Step-By-StepArtificial Neural Networks (ANNs) - XOR - Step-By-Step
Artificial Neural Networks (ANNs) - XOR - Step-By-Step
 
Chapter 15 Representation learning - 1
Chapter 15 Representation learning - 1Chapter 15 Representation learning - 1
Chapter 15 Representation learning - 1
 
Igc2016 Technical Artist가 뭐하는 사람이에요?
Igc2016 Technical Artist가 뭐하는 사람이에요?Igc2016 Technical Artist가 뭐하는 사람이에요?
Igc2016 Technical Artist가 뭐하는 사람이에요?
 
Deep reinforcement learning from scratch
Deep reinforcement learning from scratchDeep reinforcement learning from scratch
Deep reinforcement learning from scratch
 
강화학습 기초_2(Deep sarsa, Deep Q-learning, DQN)
강화학습 기초_2(Deep sarsa, Deep Q-learning, DQN)강화학습 기초_2(Deep sarsa, Deep Q-learning, DQN)
강화학습 기초_2(Deep sarsa, Deep Q-learning, DQN)
 
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
 
게임제작개론 : #6 게임 시스템 구조에 대한 이해
게임제작개론 : #6 게임 시스템 구조에 대한 이해게임제작개론 : #6 게임 시스템 구조에 대한 이해
게임제작개론 : #6 게임 시스템 구조에 대한 이해
 
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
 
たのしい関数型
たのしい関数型たのしい関数型
たのしい関数型
 
딥러닝 - 역사와 이론적 기초
딥러닝 - 역사와 이론적 기초딥러닝 - 역사와 이론적 기초
딥러닝 - 역사와 이론적 기초
 
[RLKorea] <하스스톤> 강화학습 환경 개발기
[RLKorea] <하스스톤> 강화학습 환경 개발기[RLKorea] <하스스톤> 강화학습 환경 개발기
[RLKorea] <하스스톤> 강화학습 환경 개발기
 

Ähnlich wie 분산 강화학습 논문(DeepMind IMPALA) 구현

Policy Gradient 부터 Actor-Critic 까지
Policy Gradient 부터 Actor-Critic 까지Policy Gradient 부터 Actor-Critic 까지
Policy Gradient 부터 Actor-Critic 까지Curt Park
 
AlphaGo 알고리즘 요약
AlphaGo 알고리즘 요약AlphaGo 알고리즘 요약
AlphaGo 알고리즘 요약Jooyoul Lee
 
Introduction toDQN
Introduction toDQNIntroduction toDQN
Introduction toDQNCurt Park
 
CS294-112 Lecture 06
CS294-112 Lecture 06CS294-112 Lecture 06
CS294-112 Lecture 06Gyubin Son
 
2014.07.26 KSUG와 지앤선이 함께하는 테크니컬 세미나 - 나의 첫번째 자바8 람다식 (정대원)
2014.07.26 KSUG와 지앤선이 함께하는 테크니컬 세미나 - 나의 첫번째 자바8 람다식 (정대원)2014.07.26 KSUG와 지앤선이 함께하는 테크니컬 세미나 - 나의 첫번째 자바8 람다식 (정대원)
2014.07.26 KSUG와 지앤선이 함께하는 테크니컬 세미나 - 나의 첫번째 자바8 람다식 (정대원)JiandSon
 
Control as Inference.pptx
Control as Inference.pptxControl as Inference.pptx
Control as Inference.pptxssuserbd1647
 
알파고의 알고리즘
알파고의 알고리즘알파고의 알고리즘
알파고의 알고리즘SeokWon Kim
 

Ähnlich wie 분산 강화학습 논문(DeepMind IMPALA) 구현 (7)

Policy Gradient 부터 Actor-Critic 까지
Policy Gradient 부터 Actor-Critic 까지Policy Gradient 부터 Actor-Critic 까지
Policy Gradient 부터 Actor-Critic 까지
 
AlphaGo 알고리즘 요약
AlphaGo 알고리즘 요약AlphaGo 알고리즘 요약
AlphaGo 알고리즘 요약
 
Introduction toDQN
Introduction toDQNIntroduction toDQN
Introduction toDQN
 
CS294-112 Lecture 06
CS294-112 Lecture 06CS294-112 Lecture 06
CS294-112 Lecture 06
 
2014.07.26 KSUG와 지앤선이 함께하는 테크니컬 세미나 - 나의 첫번째 자바8 람다식 (정대원)
2014.07.26 KSUG와 지앤선이 함께하는 테크니컬 세미나 - 나의 첫번째 자바8 람다식 (정대원)2014.07.26 KSUG와 지앤선이 함께하는 테크니컬 세미나 - 나의 첫번째 자바8 람다식 (정대원)
2014.07.26 KSUG와 지앤선이 함께하는 테크니컬 세미나 - 나의 첫번째 자바8 람다식 (정대원)
 
Control as Inference.pptx
Control as Inference.pptxControl as Inference.pptx
Control as Inference.pptx
 
알파고의 알고리즘
알파고의 알고리즘알파고의 알고리즘
알파고의 알고리즘
 

Mehr von 정주 김

SageMaker RL 맛보기
SageMaker RL 맛보기SageMaker RL 맛보기
SageMaker RL 맛보기정주 김
 
소프트웨어 2.0을 활용한 게임 어뷰징 검출
소프트웨어 2.0을 활용한 게임 어뷰징 검출소프트웨어 2.0을 활용한 게임 어뷰징 검출
소프트웨어 2.0을 활용한 게임 어뷰징 검출정주 김
 
NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출
NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출 NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출
NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출 정주 김
 
Theano 와 Caffe 실습
Theano 와 Caffe 실습 Theano 와 Caffe 실습
Theano 와 Caffe 실습 정주 김
 
파이썬 TDD 101
파이썬 TDD 101파이썬 TDD 101
파이썬 TDD 101정주 김
 
WzDat과 Pandas를 통한 로그 데이터 분석
WzDat과 Pandas를 통한 로그 데이터 분석WzDat과 Pandas를 통한 로그 데이터 분석
WzDat과 Pandas를 통한 로그 데이터 분석정주 김
 
Interactive fiction
Interactive fictionInteractive fiction
Interactive fiction정주 김
 
Deploying flask with nginx & uWSGI
Deploying flask with nginx & uWSGIDeploying flask with nginx & uWSGI
Deploying flask with nginx & uWSGI정주 김
 

Mehr von 정주 김 (9)

SageMaker RL 맛보기
SageMaker RL 맛보기SageMaker RL 맛보기
SageMaker RL 맛보기
 
소프트웨어 2.0을 활용한 게임 어뷰징 검출
소프트웨어 2.0을 활용한 게임 어뷰징 검출소프트웨어 2.0을 활용한 게임 어뷰징 검출
소프트웨어 2.0을 활용한 게임 어뷰징 검출
 
NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출
NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출 NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출
NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출
 
Theano 와 Caffe 실습
Theano 와 Caffe 실습 Theano 와 Caffe 실습
Theano 와 Caffe 실습
 
파이썬 TDD 101
파이썬 TDD 101파이썬 TDD 101
파이썬 TDD 101
 
WzDat과 Pandas를 통한 로그 데이터 분석
WzDat과 Pandas를 통한 로그 데이터 분석WzDat과 Pandas를 통한 로그 데이터 분석
WzDat과 Pandas를 통한 로그 데이터 분석
 
Interactive fiction
Interactive fictionInteractive fiction
Interactive fiction
 
Deploying flask with nginx & uWSGI
Deploying flask with nginx & uWSGIDeploying flask with nginx & uWSGI
Deploying flask with nginx & uWSGI
 
Logging 101
Logging 101Logging 101
Logging 101
 

분산 강화학습 논문(DeepMind IMPALA) 구현