SlideShare a Scribd company logo
주식 삽질기
phase 2 (+강화학습)
신호철
- 지도학습
- 정답을 알고 있는 데이터를 이용해 학습
- 비지도학습
- 정답없이 주어진 데이터로 학습
- 강화학습
- 행동의 결과로 나타나는 보상을 통해 학습
머신러닝
Agent가 문제 정의를 하기 위한 구성요소
- 상태(state)
- 현재 에이전트의 정보.
- 에이전트가 상태를 통해 상황을 판단해서 행동을 결정하기에 충분한 정보를 제공.
- 행동(action)
- 에이전트가 어떠한 상태에서 취할 수 있는 행동(사기, 팔기, …)
- 보상(reward)
- 자신이 했던 행동들을 평가할 수 있는 단서.
- environment
Q Learning
- Q function : state-action value function
- Q(state, action) → reward(quality)
- ex.
- Q(state1, LEFT) = 0
- Q(state1, RIGHT) = 0.5
- Q(state1, UP) = 0.2
- Q(state1, DOWN) = 0.1
- 위와 같은 경우 state1의 경우에는 RIGHT일 때 기대값이 가장 크므로, RIGHT action을 취하면
된다는 것을 알 수 있음.
(dummy) Q-Learning algorithm
1. 모든 s,a에 대해 Q(s,a)=0로 초기화
2. observe current state s
3. 액션 a를 선택하고 실행
4. reward(r)을 받음
5. observe the new state s’ : s’로 이동
6. update Q(s,a)
a. Q(s,a) ← r + max Q(s’,a’)
7. s ← s’
8. 3으로 계속 반복.
Exploit vs Exploration : decaying E-greedy
for i in range(1000):
e = 0.1 / (i+1)
if random(1)<e:
action = random
else:
action = argmax(Q(s,a))
Discounted reward
- …
where 0 <gamma < 1
Deterministic vs Stochastic
- Deterministic
- the output of the model is fully determined by the parameter values and the initial conditions
- 항상 정해진 입력에 대해서 동일한 출력이 나오는 환경을 의미.
- frozen lake 게임에서 is_slippery가 False인 경우로 생각하면 됨.
- Stochastic :
- the same set of parameter values and initial conditions will lead to an ensemble of different outputs.
- frozen lake에서 is_slippery가 True인 경우와 유사함.
- 동일한 입력에 대해서 항상 동일한 결과가 나오지 않는 환경.
Learning incrementally
- …
위의 기존 Q를 그대로 받아 들이는 방식과는 달리 learning rate를 도입함.
- …
- tensorflow의 learning rate와 동일한 개념.
- 기존의 Q를 모두 받아 들이는 방식과는 다르게, learning rate 만큼만 받아 들임.
Q Network
- 기존 Q-Table 방식으로 커버할 수 없는 수많은 + 복잡한 경우가 존재하는 케이
스는?
- Q-Table 대신 Neural Network을 사용
- State를 입력으로 하고, 가능한 Action들을 출력으로 주도록 network을 구성
training Q Network
- 예측한 Q와 optimal Q와의 차이가 최소가 되도록.
Q-Learning Algorithm
DQN
- 그러나 앞의 Q-Learning만으로는 잘 동작하지 않음.
- Correlations between samples
- Non-stationary targets
- 이 문제는 deepmind에서 해결.
- DQN papaer : https://www.nature.com/nature/journal/v518/n7540/full/nature14236.html
- HOW ?
- go deep
- experience replay : buffer에 저장해 놓고 있다가 random하게 샘플링해서 minibatch.
- separate target network & copy network.
주식 데이터에 적용
- pandas, sqlite3, sklearn을 사용해서 전처리
- https://github.com/dspshin/DQN_examples/blob/master/stock.ipynb
- 소스코드
- https://github.com/dspshin/DQN_examples
소스코드 간단 해설
- 기반은 cartpole example
- https://github.com/dspshin/DQN_examples/blob/master/cart_pole_dqn2015.py
- gym을 stock과 관련된 동작을 하도록 재정의
- gym.reset(), gym.step()을 재정의
- 로직의 간단화를 위해, 주식 거래 단위는 1개로 고정.
- 추후 보다 현실적으로 변경 필요.
- action은 3가지 - 매도, 매수, 아무것도 안하기
- state의 구성요소
- ['ratio', 'amount', 'ends', 'foreigner', 'insti', 'person', 'program', 'credit']
- https://github.com/dspshin/DQN_examples/blob/master/my_gym/gym.py
- dqn network 변경
실행결과
- 삼성전자에 대한 결과.
- default profit : 기간 초에 사고 기간말에 팔았을 때의 이익
- train based profit : train data에 대해 dqn에 따라 사고 판 이익
- test based profit : test data에 대해 dqn에 따라 사고 판 이익
To do list
- 다른 종목들에 대한 테스트
- 입력인자를 더 추가
- Network을 다르게 구성
The End
참고자료
- ML+주식 1차 https://docs.google.com/presentation/d/1GqpoxDd-AiBJ_FkhqUC8J-7iOijDZqJv7DVucRNFnlk
- http://hunkim.github.io/ml/
-

More Related Content

What's hot

Wavelet matrix implementation
Wavelet matrix implementationWavelet matrix implementation
Wavelet matrix implementationMITSUNARI Shigeo
 
[NDC2017] 딥러닝으로 게임 콘텐츠 제작하기 - VAE를 이용한 콘텐츠 생성 기법 연구 사례
[NDC2017] 딥러닝으로 게임 콘텐츠 제작하기 - VAE를 이용한 콘텐츠 생성 기법 연구 사례[NDC2017] 딥러닝으로 게임 콘텐츠 제작하기 - VAE를 이용한 콘텐츠 생성 기법 연구 사례
[NDC2017] 딥러닝으로 게임 콘텐츠 제작하기 - VAE를 이용한 콘텐츠 생성 기법 연구 사례
Hwanhee Kim
 
강화학습의 개요
강화학습의 개요강화학습의 개요
강화학습의 개요
Dongmin Lee
 
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기
NAVER D2
 
온라인 게임 처음부터 끝까지 동적언어로 만들기
온라인 게임 처음부터 끝까지 동적언어로 만들기온라인 게임 처음부터 끝까지 동적언어로 만들기
온라인 게임 처음부터 끝까지 동적언어로 만들기Seungjae Lee
 
정수론적 알고리즘 - Sogang ICPC Team, 2020 Winter
정수론적 알고리즘 - Sogang ICPC Team, 2020 Winter정수론적 알고리즘 - Sogang ICPC Team, 2020 Winter
정수론적 알고리즘 - Sogang ICPC Team, 2020 Winter
Suhyun Park
 
빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술
YEONG-CHEON YOU
 
강화 학습 기초 Reinforcement Learning an introduction
강화 학습 기초 Reinforcement Learning an introduction강화 학습 기초 Reinforcement Learning an introduction
강화 학습 기초 Reinforcement Learning an introduction
Taehoon Kim
 
유니티3D에서 2D 이미지 다루기
유니티3D에서 2D 이미지 다루기유니티3D에서 2D 이미지 다루기
유니티3D에서 2D 이미지 다루기
Jungsoo Park
 
자습해도 모르겠던 딥러닝, 머리속에 인스톨 시켜드립니다.
자습해도 모르겠던 딥러닝, 머리속에 인스톨 시켜드립니다.자습해도 모르겠던 딥러닝, 머리속에 인스톨 시켜드립니다.
자습해도 모르겠던 딥러닝, 머리속에 인스톨 시켜드립니다.
Yongho Ha
 
게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU
YEONG-CHEON YOU
 
머신러닝 해외 취업 준비: 닳고 닳은 이력서와 고통스러웠던 면접을 돌아보며 SNU 2018
머신러닝 해외 취업 준비: 닳고 닳은 이력서와 고통스러웠던 면접을 돌아보며 SNU 2018머신러닝 해외 취업 준비: 닳고 닳은 이력서와 고통스러웠던 면접을 돌아보며 SNU 2018
머신러닝 해외 취업 준비: 닳고 닳은 이력서와 고통스러웠던 면접을 돌아보며 SNU 2018
Taehoon Kim
 
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이 왜 이리 힘드나요? (Lock-free에서 Transactional Memory까지)
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이  왜 이리 힘드나요?  (Lock-free에서 Transactional Memory까지)Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이  왜 이리 힘드나요?  (Lock-free에서 Transactional Memory까지)
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이 왜 이리 힘드나요? (Lock-free에서 Transactional Memory까지)
내훈 정
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
devCAT Studio, NEXON
 
論文紹介:The wavelet matrix
論文紹介:The wavelet matrix論文紹介:The wavelet matrix
論文紹介:The wavelet matrix
Yuki Igarashi
 
메이플2 하우징시스템 역기획서
메이플2 하우징시스템 역기획서메이플2 하우징시스템 역기획서
메이플2 하우징시스템 역기획서
Eui hwan Hyeon
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현
noerror
 
인공지능 방법론 - 딥러닝 이해하기
인공지능 방법론 - 딥러닝 이해하기인공지능 방법론 - 딥러닝 이해하기
인공지능 방법론 - 딥러닝 이해하기
Byoung-Hee Kim
 
[1113 박민수]a star_알고리즘
[1113 박민수]a star_알고리즘[1113 박민수]a star_알고리즘
[1113 박민수]a star_알고리즘
MoonLightMS
 
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
영욱 오
 

What's hot (20)

Wavelet matrix implementation
Wavelet matrix implementationWavelet matrix implementation
Wavelet matrix implementation
 
[NDC2017] 딥러닝으로 게임 콘텐츠 제작하기 - VAE를 이용한 콘텐츠 생성 기법 연구 사례
[NDC2017] 딥러닝으로 게임 콘텐츠 제작하기 - VAE를 이용한 콘텐츠 생성 기법 연구 사례[NDC2017] 딥러닝으로 게임 콘텐츠 제작하기 - VAE를 이용한 콘텐츠 생성 기법 연구 사례
[NDC2017] 딥러닝으로 게임 콘텐츠 제작하기 - VAE를 이용한 콘텐츠 생성 기법 연구 사례
 
강화학습의 개요
강화학습의 개요강화학습의 개요
강화학습의 개요
 
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기
 
온라인 게임 처음부터 끝까지 동적언어로 만들기
온라인 게임 처음부터 끝까지 동적언어로 만들기온라인 게임 처음부터 끝까지 동적언어로 만들기
온라인 게임 처음부터 끝까지 동적언어로 만들기
 
정수론적 알고리즘 - Sogang ICPC Team, 2020 Winter
정수론적 알고리즘 - Sogang ICPC Team, 2020 Winter정수론적 알고리즘 - Sogang ICPC Team, 2020 Winter
정수론적 알고리즘 - Sogang ICPC Team, 2020 Winter
 
빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술
 
강화 학습 기초 Reinforcement Learning an introduction
강화 학습 기초 Reinforcement Learning an introduction강화 학습 기초 Reinforcement Learning an introduction
강화 학습 기초 Reinforcement Learning an introduction
 
유니티3D에서 2D 이미지 다루기
유니티3D에서 2D 이미지 다루기유니티3D에서 2D 이미지 다루기
유니티3D에서 2D 이미지 다루기
 
자습해도 모르겠던 딥러닝, 머리속에 인스톨 시켜드립니다.
자습해도 모르겠던 딥러닝, 머리속에 인스톨 시켜드립니다.자습해도 모르겠던 딥러닝, 머리속에 인스톨 시켜드립니다.
자습해도 모르겠던 딥러닝, 머리속에 인스톨 시켜드립니다.
 
게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU
 
머신러닝 해외 취업 준비: 닳고 닳은 이력서와 고통스러웠던 면접을 돌아보며 SNU 2018
머신러닝 해외 취업 준비: 닳고 닳은 이력서와 고통스러웠던 면접을 돌아보며 SNU 2018머신러닝 해외 취업 준비: 닳고 닳은 이력서와 고통스러웠던 면접을 돌아보며 SNU 2018
머신러닝 해외 취업 준비: 닳고 닳은 이력서와 고통스러웠던 면접을 돌아보며 SNU 2018
 
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이 왜 이리 힘드나요? (Lock-free에서 Transactional Memory까지)
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이  왜 이리 힘드나요?  (Lock-free에서 Transactional Memory까지)Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이  왜 이리 힘드나요?  (Lock-free에서 Transactional Memory까지)
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이 왜 이리 힘드나요? (Lock-free에서 Transactional Memory까지)
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
 
論文紹介:The wavelet matrix
論文紹介:The wavelet matrix論文紹介:The wavelet matrix
論文紹介:The wavelet matrix
 
메이플2 하우징시스템 역기획서
메이플2 하우징시스템 역기획서메이플2 하우징시스템 역기획서
메이플2 하우징시스템 역기획서
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현
 
인공지능 방법론 - 딥러닝 이해하기
인공지능 방법론 - 딥러닝 이해하기인공지능 방법론 - 딥러닝 이해하기
인공지능 방법론 - 딥러닝 이해하기
 
[1113 박민수]a star_알고리즘
[1113 박민수]a star_알고리즘[1113 박민수]a star_알고리즘
[1113 박민수]a star_알고리즘
 
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
 

Similar to ML + 주식 phase 2

Reinforcement learning v0.5
Reinforcement learning v0.5Reinforcement learning v0.5
Reinforcement learning v0.5
SANG WON PARK
 
강화학습 해부학 교실: Rainbow 이론부터 구현까지 (2nd dlcat in Daejeon)
강화학습 해부학 교실: Rainbow 이론부터 구현까지 (2nd dlcat in Daejeon)강화학습 해부학 교실: Rainbow 이론부터 구현까지 (2nd dlcat in Daejeon)
강화학습 해부학 교실: Rainbow 이론부터 구현까지 (2nd dlcat in Daejeon)
Kyunghwan Kim
 
Rl
RlRl
Dqn break
Dqn breakDqn break
Dqn break
Juntae Kim
 
Forward-Forward Algorithm
Forward-Forward AlgorithmForward-Forward Algorithm
Forward-Forward Algorithm
Dong Heon Cho
 
Reinforcement learning basic
Reinforcement learning basicReinforcement learning basic
Reinforcement learning basic
Jicheol Woo
 
[머가]Chap11 강화학습
[머가]Chap11 강화학습[머가]Chap11 강화학습
[머가]Chap11 강화학습
종현 최
 
Reinforcement learning
Reinforcement learningReinforcement learning
Reinforcement learning
Tae Young Lee
 
CS294-112 Lecture 13
CS294-112 Lecture 13CS294-112 Lecture 13
CS294-112 Lecture 13
Gyubin Son
 
Q Learning과 CNN을 이용한 Object Localization
Q Learning과 CNN을 이용한 Object LocalizationQ Learning과 CNN을 이용한 Object Localization
Q Learning과 CNN을 이용한 Object Localization
홍배 김
 
Imagination-Augmented Agents for Deep Reinforcement Learning
Imagination-Augmented Agents for Deep Reinforcement LearningImagination-Augmented Agents for Deep Reinforcement Learning
Imagination-Augmented Agents for Deep Reinforcement Learning
성재 최
 
Policy gradient
Policy gradientPolicy gradient
Policy gradient
태영 정
 
강화학습 기초부터 DQN까지 (Reinforcement Learning from Basics to DQN)
강화학습 기초부터 DQN까지 (Reinforcement Learning from Basics to DQN)강화학습 기초부터 DQN까지 (Reinforcement Learning from Basics to DQN)
강화학습 기초부터 DQN까지 (Reinforcement Learning from Basics to DQN)
Curt Park
 
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
Taehoon Kim
 
Rl from scratch part7
Rl from scratch part7Rl from scratch part7
Rl from scratch part7
Shinwoo Park
 
Automl
AutomlAutoml
Automl
승우 이
 
AUTOML
AUTOMLAUTOML
AUTOML
승우 이
 

Similar to ML + 주식 phase 2 (17)

Reinforcement learning v0.5
Reinforcement learning v0.5Reinforcement learning v0.5
Reinforcement learning v0.5
 
강화학습 해부학 교실: Rainbow 이론부터 구현까지 (2nd dlcat in Daejeon)
강화학습 해부학 교실: Rainbow 이론부터 구현까지 (2nd dlcat in Daejeon)강화학습 해부학 교실: Rainbow 이론부터 구현까지 (2nd dlcat in Daejeon)
강화학습 해부학 교실: Rainbow 이론부터 구현까지 (2nd dlcat in Daejeon)
 
Rl
RlRl
Rl
 
Dqn break
Dqn breakDqn break
Dqn break
 
Forward-Forward Algorithm
Forward-Forward AlgorithmForward-Forward Algorithm
Forward-Forward Algorithm
 
Reinforcement learning basic
Reinforcement learning basicReinforcement learning basic
Reinforcement learning basic
 
[머가]Chap11 강화학습
[머가]Chap11 강화학습[머가]Chap11 강화학습
[머가]Chap11 강화학습
 
Reinforcement learning
Reinforcement learningReinforcement learning
Reinforcement learning
 
CS294-112 Lecture 13
CS294-112 Lecture 13CS294-112 Lecture 13
CS294-112 Lecture 13
 
Q Learning과 CNN을 이용한 Object Localization
Q Learning과 CNN을 이용한 Object LocalizationQ Learning과 CNN을 이용한 Object Localization
Q Learning과 CNN을 이용한 Object Localization
 
Imagination-Augmented Agents for Deep Reinforcement Learning
Imagination-Augmented Agents for Deep Reinforcement LearningImagination-Augmented Agents for Deep Reinforcement Learning
Imagination-Augmented Agents for Deep Reinforcement Learning
 
Policy gradient
Policy gradientPolicy gradient
Policy gradient
 
강화학습 기초부터 DQN까지 (Reinforcement Learning from Basics to DQN)
강화학습 기초부터 DQN까지 (Reinforcement Learning from Basics to DQN)강화학습 기초부터 DQN까지 (Reinforcement Learning from Basics to DQN)
강화학습 기초부터 DQN까지 (Reinforcement Learning from Basics to DQN)
 
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
 
Rl from scratch part7
Rl from scratch part7Rl from scratch part7
Rl from scratch part7
 
Automl
AutomlAutoml
Automl
 
AUTOML
AUTOMLAUTOML
AUTOML
 

More from HoChul Shin

Commerce chatbot - 실습
Commerce chatbot - 실습Commerce chatbot - 실습
Commerce chatbot - 실습
HoChul Shin
 
Commerce chatbot - dialog manager
Commerce chatbot - dialog managerCommerce chatbot - dialog manager
Commerce chatbot - dialog manager
HoChul Shin
 
Commerce chatbot - 11번가 대화형 커머스 챗봇 적용 사례
Commerce chatbot - 11번가 대화형 커머스 챗봇 적용 사례Commerce chatbot - 11번가 대화형 커머스 챗봇 적용 사례
Commerce chatbot - 11번가 대화형 커머스 챗봇 적용 사례
HoChul Shin
 
부동산 텔레그램봇 사내공유 @Tech
부동산 텔레그램봇 사내공유 @Tech부동산 텔레그램봇 사내공유 @Tech
부동산 텔레그램봇 사내공유 @Tech
HoChul Shin
 
부동산 텔레그램 봇
부동산 텔레그램 봇부동산 텔레그램 봇
부동산 텔레그램 봇
HoChul Shin
 
Node.js DBMS short summary
Node.js DBMS short summaryNode.js DBMS short summary
Node.js DBMS short summary
HoChul Shin
 
Python3 brief summary
Python3 brief summaryPython3 brief summary
Python3 brief summary
HoChul Shin
 
Lua vs python
Lua vs pythonLua vs python
Lua vs python
HoChul Shin
 

More from HoChul Shin (8)

Commerce chatbot - 실습
Commerce chatbot - 실습Commerce chatbot - 실습
Commerce chatbot - 실습
 
Commerce chatbot - dialog manager
Commerce chatbot - dialog managerCommerce chatbot - dialog manager
Commerce chatbot - dialog manager
 
Commerce chatbot - 11번가 대화형 커머스 챗봇 적용 사례
Commerce chatbot - 11번가 대화형 커머스 챗봇 적용 사례Commerce chatbot - 11번가 대화형 커머스 챗봇 적용 사례
Commerce chatbot - 11번가 대화형 커머스 챗봇 적용 사례
 
부동산 텔레그램봇 사내공유 @Tech
부동산 텔레그램봇 사내공유 @Tech부동산 텔레그램봇 사내공유 @Tech
부동산 텔레그램봇 사내공유 @Tech
 
부동산 텔레그램 봇
부동산 텔레그램 봇부동산 텔레그램 봇
부동산 텔레그램 봇
 
Node.js DBMS short summary
Node.js DBMS short summaryNode.js DBMS short summary
Node.js DBMS short summary
 
Python3 brief summary
Python3 brief summaryPython3 brief summary
Python3 brief summary
 
Lua vs python
Lua vs pythonLua vs python
Lua vs python
 

ML + 주식 phase 2

  • 1. 주식 삽질기 phase 2 (+강화학습) 신호철
  • 2. - 지도학습 - 정답을 알고 있는 데이터를 이용해 학습 - 비지도학습 - 정답없이 주어진 데이터로 학습 - 강화학습 - 행동의 결과로 나타나는 보상을 통해 학습 머신러닝
  • 3. Agent가 문제 정의를 하기 위한 구성요소 - 상태(state) - 현재 에이전트의 정보. - 에이전트가 상태를 통해 상황을 판단해서 행동을 결정하기에 충분한 정보를 제공. - 행동(action) - 에이전트가 어떠한 상태에서 취할 수 있는 행동(사기, 팔기, …) - 보상(reward) - 자신이 했던 행동들을 평가할 수 있는 단서. - environment
  • 4. Q Learning - Q function : state-action value function - Q(state, action) → reward(quality) - ex. - Q(state1, LEFT) = 0 - Q(state1, RIGHT) = 0.5 - Q(state1, UP) = 0.2 - Q(state1, DOWN) = 0.1 - 위와 같은 경우 state1의 경우에는 RIGHT일 때 기대값이 가장 크므로, RIGHT action을 취하면 된다는 것을 알 수 있음.
  • 5. (dummy) Q-Learning algorithm 1. 모든 s,a에 대해 Q(s,a)=0로 초기화 2. observe current state s 3. 액션 a를 선택하고 실행 4. reward(r)을 받음 5. observe the new state s’ : s’로 이동 6. update Q(s,a) a. Q(s,a) ← r + max Q(s’,a’) 7. s ← s’ 8. 3으로 계속 반복.
  • 6. Exploit vs Exploration : decaying E-greedy for i in range(1000): e = 0.1 / (i+1) if random(1)<e: action = random else: action = argmax(Q(s,a))
  • 8. Deterministic vs Stochastic - Deterministic - the output of the model is fully determined by the parameter values and the initial conditions - 항상 정해진 입력에 대해서 동일한 출력이 나오는 환경을 의미. - frozen lake 게임에서 is_slippery가 False인 경우로 생각하면 됨. - Stochastic : - the same set of parameter values and initial conditions will lead to an ensemble of different outputs. - frozen lake에서 is_slippery가 True인 경우와 유사함. - 동일한 입력에 대해서 항상 동일한 결과가 나오지 않는 환경.
  • 9. Learning incrementally - … 위의 기존 Q를 그대로 받아 들이는 방식과는 달리 learning rate를 도입함. - … - tensorflow의 learning rate와 동일한 개념. - 기존의 Q를 모두 받아 들이는 방식과는 다르게, learning rate 만큼만 받아 들임.
  • 10. Q Network - 기존 Q-Table 방식으로 커버할 수 없는 수많은 + 복잡한 경우가 존재하는 케이 스는? - Q-Table 대신 Neural Network을 사용 - State를 입력으로 하고, 가능한 Action들을 출력으로 주도록 network을 구성
  • 11. training Q Network - 예측한 Q와 optimal Q와의 차이가 최소가 되도록.
  • 13. DQN - 그러나 앞의 Q-Learning만으로는 잘 동작하지 않음. - Correlations between samples - Non-stationary targets - 이 문제는 deepmind에서 해결. - DQN papaer : https://www.nature.com/nature/journal/v518/n7540/full/nature14236.html - HOW ? - go deep - experience replay : buffer에 저장해 놓고 있다가 random하게 샘플링해서 minibatch. - separate target network & copy network.
  • 14. 주식 데이터에 적용 - pandas, sqlite3, sklearn을 사용해서 전처리 - https://github.com/dspshin/DQN_examples/blob/master/stock.ipynb - 소스코드 - https://github.com/dspshin/DQN_examples
  • 15. 소스코드 간단 해설 - 기반은 cartpole example - https://github.com/dspshin/DQN_examples/blob/master/cart_pole_dqn2015.py - gym을 stock과 관련된 동작을 하도록 재정의 - gym.reset(), gym.step()을 재정의 - 로직의 간단화를 위해, 주식 거래 단위는 1개로 고정. - 추후 보다 현실적으로 변경 필요. - action은 3가지 - 매도, 매수, 아무것도 안하기 - state의 구성요소 - ['ratio', 'amount', 'ends', 'foreigner', 'insti', 'person', 'program', 'credit'] - https://github.com/dspshin/DQN_examples/blob/master/my_gym/gym.py - dqn network 변경
  • 16. 실행결과 - 삼성전자에 대한 결과. - default profit : 기간 초에 사고 기간말에 팔았을 때의 이익 - train based profit : train data에 대해 dqn에 따라 사고 판 이익 - test based profit : test data에 대해 dqn에 따라 사고 판 이익
  • 17. To do list - 다른 종목들에 대한 테스트 - 입력인자를 더 추가 - Network을 다르게 구성
  • 19. 참고자료 - ML+주식 1차 https://docs.google.com/presentation/d/1GqpoxDd-AiBJ_FkhqUC8J-7iOijDZqJv7DVucRNFnlk - http://hunkim.github.io/ml/ -