1. machine learning

머신 러닝의 세가지 분류
  1. Supervised learning
  2. Unsupervised learning
  3. Reinforcement learning

1.1. supervised learning

  • 학습을 시킬 때 input으로 feature(입력값)와 label(원하는 결과값)을 함께 전달
  • Learning from difference between prediction and label
  • e.g. mnist, classification

1.2. unsupervised learning

  • input: feature만 입력, 보통 projection등으로 feature의 차원을 축소시킨다.
  • Cluster by distance between inputs
  • Human can't predict the outcome
  • e.g. clustering

1.3. reinforcement learning

  • 일종의 unsupervised learning
  • input : environment, reward, output : action
  • Learn from try
    • Model free: 게임의 규칙을 알려주지 않음
  • e.g. game play, stock trading

1.4. reinforcement learning

  • Q learning
  • Q learning + Neural Network
  • DQN : Deep Q Learning
    • hidden layer를 늘리는게 다가 아니다!

1.5. Basic knowledge

  • MDP : Markov Decision Process
  • Bellman equation
  • Dynamic programming
  • Value, Polish
  • Value function, Polish function
  • Value iteration, Polish iteration

1.6. 실습

  • gym(https://gym.openai.com): Reinforcement learning을 위한 고전 게임들을 python으로 포팅한 toolkit. 직접 구현한 것도 있고 atari는 포팅함. github(https://github.com/openai/gym)에 코드가 공개되어 있다.
    • 오늘 실습할 cartpole(https://gym.openai.com/envs/CartPole-v0)
  • 필요한 라이브러리: numpy, gym, tensorflow 필요
      $ pip install gym
      $ pip install tensorflow 
    

1.6.1. 순서

  1. 일단 cartpole 실행을 해보자! - cartpole_init.py(https://github.com/Rabierre/cartpole/blob/master/cartpole_init.py)
  2. random action(왼쪽, 오른쪽)을 하는 cartpole - cartpole_random.py(https://github.com/Rabierre/cartpole/blob/master/cartpole_random.py)
  3. q-network(q-learning의 NN버전) - cartpole_qnetwork.py(https://github.com/Rabierre/cartpole/blob/master/cartpole_qnetwork.py)
  4. DQN - cartpole_dqn.py(https://github.com/Rabierre/cartpole/blob/master/cartpole_dqn.py)
  5. 2015에 Deep Mind에서 발표한 DQN - cartpole_dqn2015.py(https://github.com/Rabierre/cartpole/blob/master/cartpole_dqn2015.py)

1.7. Reference

  • 발표 슬라이드: slide(https://slides.com/rabierre/playing_a_game_with_rl)
  • 실습코드: github(https://github.com/Rabierre/cartpole)
  • DeepMind의 DQN 논문: Playing Atari with Deep Reinforcement Learning(https://arxiv.org/abs/1312.5602)
  • Tensorflow tutorial: DQN(https://github.com/golbin/TensorFlow-Tutorials/tree/master/10%20-%20DQN)

1.8. Furthermore

1.9. 후기 및 기타의견

Retrieved from http://wiki.zeropage.org/wiki.php/데블스캠프2017/강화학습으로컴퓨터에게고전게임플레이시키기
last modified 2021-02-07 05:29:18