Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ML + 주식 phase 2

5,739 views

Published on

Machine Learning + 주식 2탄
(강화학습+주식)

Published in: Technology
  • Hello! Get Your Professional Job-Winning Resume Here - Check our website! https://vk.cc/818RFv
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

ML + 주식 phase 2

  1. 1. 주식 삽질기 phase 2 (+강화학습) 신호철
  2. 2. - 지도학습 - 정답을 알고 있는 데이터를 이용해 학습 - 비지도학습 - 정답없이 주어진 데이터로 학습 - 강화학습 - 행동의 결과로 나타나는 보상을 통해 학습 머신러닝
  3. 3. Agent가 문제 정의를 하기 위한 구성요소 - 상태(state) - 현재 에이전트의 정보. - 에이전트가 상태를 통해 상황을 판단해서 행동을 결정하기에 충분한 정보를 제공. - 행동(action) - 에이전트가 어떠한 상태에서 취할 수 있는 행동(사기, 팔기, …) - 보상(reward) - 자신이 했던 행동들을 평가할 수 있는 단서. - environment
  4. 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. 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. 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))
  7. 7. Discounted reward - … where 0 <gamma < 1
  8. 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. 9. Learning incrementally - … 위의 기존 Q를 그대로 받아 들이는 방식과는 달리 learning rate를 도입함. - … - tensorflow의 learning rate와 동일한 개념. - 기존의 Q를 모두 받아 들이는 방식과는 다르게, learning rate 만큼만 받아 들임.
  10. 10. Q Network - 기존 Q-Table 방식으로 커버할 수 없는 수많은 + 복잡한 경우가 존재하는 케이 스는? - Q-Table 대신 Neural Network을 사용 - State를 입력으로 하고, 가능한 Action들을 출력으로 주도록 network을 구성
  11. 11. training Q Network - 예측한 Q와 optimal Q와의 차이가 최소가 되도록.
  12. 12. Q-Learning Algorithm
  13. 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. 14. 주식 데이터에 적용 - pandas, sqlite3, sklearn을 사용해서 전처리 - https://github.com/dspshin/DQN_examples/blob/master/stock.ipynb - 소스코드 - https://github.com/dspshin/DQN_examples
  15. 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. 16. 실행결과 - 삼성전자에 대한 결과. - default profit : 기간 초에 사고 기간말에 팔았을 때의 이익 - train based profit : train data에 대해 dqn에 따라 사고 판 이익 - test based profit : test data에 대해 dqn에 따라 사고 판 이익
  17. 17. To do list - 다른 종목들에 대한 테스트 - 입력인자를 더 추가 - Network을 다르게 구성
  18. 18. The End
  19. 19. 참고자료 - ML+주식 1차 https://docs.google.com/presentation/d/1GqpoxDd-AiBJ_FkhqUC8J-7iOijDZqJv7DVucRNFnlk - http://hunkim.github.io/ml/ -

×