reinforce learning · • deep deterministic policy(이하 dpg)를 기반으로 합니다. •...

28
Reinforce Learning -DDPG (Deep Deterministic Policy Gradient) 2018.11.19 1

Upload: others

Post on 12-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Reinforce Learning · • Deep Deterministic Policy(이하 DPG)를 기반으로 합니다. • Actor-Critic approach와 DQN의 성공적이었던 부분을 합칩니다. • Replay

Reinforce Learning

-DDPG (Deep Deterministic Policy Gradient)

2018.11.19

1

Page 2: Reinforce Learning · • Deep Deterministic Policy(이하 DPG)를 기반으로 합니다. • Actor-Critic approach와 DQN의 성공적이었던 부분을 합칩니다. • Replay

Policy Gradient

2

Page 3: Reinforce Learning · • Deep Deterministic Policy(이하 DPG)를 기반으로 합니다. • Actor-Critic approach와 DQN의 성공적이었던 부분을 합칩니다. • Replay

History

• Value Funciton approach

• 정통적인 강화학습에서 사용되는 방식

• state에서 value function이 최대화 되는 action을 선택함

• value function이 변하면 다른 action을 하게 됨

• 이는 deterministic policy를 찾기에는 유용하나 stochastic하지 못함

• Policy Search

• https://icml.cc/2015/tutorials/PolicySearch.pdf

• high-dimensional space 문제를 해결하기 위해서는 value function은 유용하지 않고 Model-based learning은 비용이 크다.

• Randomized Policy들을 성능측정을 하고 policy를 구성하는 parameter 들의 변화량에 주목한다.

• gradient-descent algorithms 방식을 사용해서 Expected return 을 최대화하는 방향으로 policy를 update 한다.

3

Page 4: Reinforce Learning · • Deep Deterministic Policy(이하 DPG)를 기반으로 합니다. • Actor-Critic approach와 DQN의 성공적이었던 부분을 합칩니다. • Replay

History

4

Page 5: Reinforce Learning · • Deep Deterministic Policy(이하 DPG)를 기반으로 합니다. • Actor-Critic approach와 DQN의 성공적이었던 부분을 합칩니다. • Replay

History

• finite different (FD) gradient : supervised learning의 regression으로 approximate 하는 방법

• Likelihood Ratio Gradient : performance measure J(θ) 를 trajectory에 대해서 gradient로 편미분하고 Monte-Carlo simulation를 사용하여 학습

• A vanilla policy gradient algorithm: 기본적인 방법을 수렴할때까지 반복하면서 파라미터의 변화에 따라 policy를 업데이트 하는 방법

• Natural policy gradient : steepest descent method 을 사용하는 방법

5

Page 6: Reinforce Learning · • Deep Deterministic Policy(이하 DPG)를 기반으로 합니다. • Actor-Critic approach와 DQN의 성공적이었던 부분을 합칩니다. • Replay

History

• Natural policy gradient

6

Page 7: Reinforce Learning · • Deep Deterministic Policy(이하 DPG)를 기반으로 합니다. • Actor-Critic approach와 DQN의 성공적이었던 부분을 합칩니다. • Replay

History

• Natural policy gradient

7

Page 8: Reinforce Learning · • Deep Deterministic Policy(이하 DPG)를 기반으로 합니다. • Actor-Critic approach와 DQN의 성공적이었던 부분을 합칩니다. • Replay

History

• Natural policy gradient

8

Page 9: Reinforce Learning · • Deep Deterministic Policy(이하 DPG)를 기반으로 합니다. • Actor-Critic approach와 DQN의 성공적이었던 부분을 합칩니다. • Replay

DDPG motive

• action space가 discrete space가 아닌 continuous space에 적용할 수 있다.

• one dimension에 action space는 +1/0/-1 와 같이 3가지 경우를 가짐

• 그런데, one dimension이더라도 실수값의 제어변수를 가지는 정밀 제어를 해야 하는 경우는 continuous action space를 고려해야함

• high dimension 일 경우 더욱 더 어려워짐

9

Page 10: Reinforce Learning · • Deep Deterministic Policy(이하 DPG)를 기반으로 합니다. • Actor-Critic approach와 DQN의 성공적이었던 부분을 합칩니다. • Replay

DDPG 특징

• neural network actor 및 critic을 채용하여 state space와 action space가 모두 큰 dimension 또는 continuous space일 때 사용 가능하도록 한다.

• neural network function approximator를 사용하게 되면 생길 수 있는 문제가 존재함으로 이를 위해 DQN의 replay buffer를 사용한다. (학습에 사용되는 sample은 iid(independently and identically distributed) 특징을 가져야 한다.)

• action value network와 target network를 별도로 분리하여 ‘soft’ target update가 되도록 한다.

• 값들의 절대값의 order of magnitude문제에 의한 학습 성능 저하를 막기위해 사용하는 batch normalization도 적용

• noise process로 Ornstein-Uhlenbeck process를 사용

10

Page 11: Reinforce Learning · • Deep Deterministic Policy(이하 DPG)를 기반으로 합니다. • Actor-Critic approach와 DQN의 성공적이었던 부분을 합칩니다. • Replay

DDPG

• Model-free, Off-policy, Actor-critic algorithm을 제안합니다.

• Deep Deterministic Policy(이하 DPG)를 기반으로 합니다.

• Actor-Critic approach와 DQN의 성공적이었던 부분을 합칩니다.

• Replay buffer : 샘플들 사이의 상관관계를 줄여줍니다.

• target Q Network : Update 동안 target을 안정적으로 만듭니다.

11

Page 12: Reinforce Learning · • Deep Deterministic Policy(이하 DPG)를 기반으로 합니다. • Actor-Critic approach와 DQN의 성공적이었던 부분을 합칩니다. • Replay

DDPG

12

Page 13: Reinforce Learning · • Deep Deterministic Policy(이하 DPG)를 기반으로 합니다. • Actor-Critic approach와 DQN의 성공적이었던 부분을 합칩니다. • Replay

Google Colab

• Google Colaboratory 서비스 개요

• Google Drive + Jupyter Notebook 을 온라인상에서 사용할 수 있음

• 무료로 GPU 사용시 최대 12시간 가능함

• Github 연동 지원도 가능함

• https://colab.research.google.com/

• 컴퓨터 사양(2018년11월)

• Ubuntu 18.04.1 LTS

• Intel(R) Xeon(R) CPU @ 2.30GHz

• MemTotal: 13335212 kB

• overlay 359G 7.6G 333G 3% /

• Tesla K80

13

Page 14: Reinforce Learning · • Deep Deterministic Policy(이하 DPG)를 기반으로 합니다. • Actor-Critic approach와 DQN의 성공적이었던 부분을 합칩니다. • Replay

Google Colab

• 유닉스 명령어를 사용 가능

• OS 확인 : !cat /etc/issue.net

• CPU : !cat /proc/cpuinfo

• Memory : !cat /proc/meminfo • Disk : !df -h • GPU : !nvidia-smi

• 디렉토리 이동

• !ls

• !pwd • !mkdir test

• !cd test

14

Page 15: Reinforce Learning · • Deep Deterministic Policy(이하 DPG)를 기반으로 합니다. • Actor-Critic approach와 DQN의 성공적이었던 부분을 합칩니다. • Replay

Google Colab

• GPU 런타임 설정 방법

• 매뉴 - 런타임 - 런타임 유형 변경

15

Page 16: Reinforce Learning · • Deep Deterministic Policy(이하 DPG)를 기반으로 합니다. • Actor-Critic approach와 DQN의 성공적이었던 부분을 합칩니다. • Replay

Google Colab

• Anaconda 설치

• gym Atari

16

# Anaconda ! wget https://repo.continuum.io/archive/Anaconda2-5.1.0-Linux-x86_64.sh ! bash Anaconda2-5.1.0-Linux-x86_64.sh -b -p ./anaconda

# 설치 !pip install gym !pip install gym[atari]

# 실행 import gym from IPython import display import matplotlib.pyplot as plt %matplotlib inline

env = gym.make('Breakout-v0') env.reset() for _ in range(100): plt.imshow(env.render(mode='rgb_array')) display.display(plt.gcf()) display.clear_output(wait=True) action = env.action_space.sample() env.step(action)

Page 17: Reinforce Learning · • Deep Deterministic Policy(이하 DPG)를 기반으로 합니다. • Actor-Critic approach와 DQN의 성공적이었던 부분을 합칩니다. • Replay

Google Colab

• 로컬 파일 서버에 업로드 방법

• 기타 참조

• https://zzsza.github.io/data/2018/08/30/google-colab/

• https://medium.com/lean-in-women-in-tech-india/google-colab-the-beginners-guide-5ad3b417dfa

17

from google.colab import files uploaded = files.upload()

Page 18: Reinforce Learning · • Deep Deterministic Policy(이하 DPG)를 기반으로 합니다. • Actor-Critic approach와 DQN의 성공적이었던 부분을 합칩니다. • Replay

DDPG using Gym in Colab

• https://colab.research.google.com/drive/1ld75VDjf1PUzuNxu40SQjrJzNh8H0NoQ#scrollTo=w17dfCUsfmGu

18

env = gym.make('MountainCarContinuous-v0') # get size of state and action from environment state_size = env.observation_space.shape[0] action_size = env.action_space.shape[0]

# make DDPG agent agent = DDPGAgent(state_size, action_size)

global_step = 0 scores, episodes = [], []

Page 19: Reinforce Learning · • Deep Deterministic Policy(이하 DPG)를 기반으로 합니다. • Actor-Critic approach와 DQN의 성공적이었던 부분을 합칩니다. • Replay

DDPG using Gym in Colab

• 700회 학습결과 및 테스트

19

episode: 0 score: -8.371174799146806 max reward: 4.999999999609565 step: 999 epsilon: 0.9900596848432421

episode: 1 score: 90.5272650517126 max reward: 104.99984818275153 step: 1786 epsilon: 0.9822984568086969

episode: 2 score: -11.28603246024843 max reward: 4.9999999999879075 step: 2785 epsilon: 0.9725341005700187

episode: 3 score: 94.89343968194471 max reward: 104.98698229054327 step: 3285 epsilon: 0.9676835423153713

episode: 4 score: 93.26190108246193 max reward: 104.9742659595789 step: 4197 epsilon: 0.9588983458713962

episode: 5 score: -5.7029302167704055 max reward: 4.9999999991767075 step: 5196 epsilon: 0.9493665941101394

episode: 6 score: 90.12011257631444 max reward: 104.99011232949374 step: 5793 epsilon: 0.9437157318962366

episode: 692 score: 91.8410112257535 max reward: 104.94409084654005 step: 81671 epsilon: 0.44188125644539256

episode: 693 score: 92.37985638904023 max reward: 104.96223943637878 step: 81749 epsilon: 0.4415367217286977

episode: 694 score: 93.52133747663113 max reward: 104.92400146299666 step: 81822 epsilon: 0.4412145159302307

episode: 695 score: 94.48712338345054 max reward: 104.95728166683335 step: 81897 epsilon: 0.440883727450525

episode: 696 score: 92.8520968499666 max reward: 104.84666182269301 step: 81967 epsilon: 0.44057521529060123

episode: 697 score: 92.11524475918063 max reward: 104.88514849056743 step: 82038 epsilon: 0.4402625163455106

episode: 698 score: 91.55446539722669 max reward: 104.86451396094189 step: 82106 epsilon: 0.43996323810413773

episode: 699 score: 92.3701299458314 max reward: 104.7883493497782 step: 82172 epsilon: 0.4396729567189754

Page 20: Reinforce Learning · • Deep Deterministic Policy(이하 DPG)를 기반으로 합니다. • Actor-Critic approach와 DQN의 성공적이었던 부분을 합칩니다. • Replay

DDPG using Gym in Colab

• 700회 학습결과 및 테스트

20

Page 21: Reinforce Learning · • Deep Deterministic Policy(이하 DPG)를 기반으로 합니다. • Actor-Critic approach와 DQN의 성공적이었던 부분을 합칩니다. • Replay

DDPG using Gym in Colab

• MountainCarContinuous-v0

21

Page 22: Reinforce Learning · • Deep Deterministic Policy(이하 DPG)를 기반으로 합니다. • Actor-Critic approach와 DQN의 성공적이었던 부분을 합칩니다. • Replay

DDPG using Gym in Colab

• MountainCarContinuous-v0

• https://github.com/openai/gym/blob/master/gym/envs/classic_control/continuous_mountain_car.py

• env.step() 함수

• input

• action

• output • state = position, velocity

• reward

• done

22

Page 24: Reinforce Learning · • Deep Deterministic Policy(이하 DPG)를 기반으로 합니다. • Actor-Critic approach와 DQN의 성공적이었던 부분을 합칩니다. • Replay

Collecting Real data

• python MTS

24

Page 25: Reinforce Learning · • Deep Deterministic Policy(이하 DPG)를 기반으로 합니다. • Actor-Critic approach와 DQN의 성공적이었던 부분을 합칩니다. • Replay

RealData on Machine Trading System

• Mysql

• 과거 데이터를 저장

• 백테스팅 기능

• Realtime analytics

• 실시간으로 데이터 처리

• 실시간 거래 알고리즘 수행

• 실시간 텔레그램 메세지 전송

25

Page 26: Reinforce Learning · • Deep Deterministic Policy(이하 DPG)를 기반으로 합니다. • Actor-Critic approach와 DQN의 성공적이었던 부분을 합칩니다. • Replay

RealData on Machine Trading System

• Mysql

• 과거 데이터를 저장

26

Page 27: Reinforce Learning · • Deep Deterministic Policy(이하 DPG)를 기반으로 합니다. • Actor-Critic approach와 DQN의 성공적이었던 부분을 합칩니다. • Replay

RealData on Machine Trading System

• Mysql

• 백테스팅 기능

27

Page 28: Reinforce Learning · • Deep Deterministic Policy(이하 DPG)를 기반으로 합니다. • Actor-Critic approach와 DQN의 성공적이었던 부분을 합칩니다. • Replay

RealData on Machine Trading System

• 실시간 데이터 처리

28