[[Tableofcontents]]
= machine learning =
 1. Supervised learning
 1. Unsupervised learning
 1. Reinforcement learning
== supervised learning ==
 * 학습을 시킬 때 label에 정답이 있는 것
 * Need input, target
 * Learning from difference between prediction and target
 * e.g. mnist, classification
== unsupervised learning ==
 * label 이 미리 정해져 있지 않은 것
 * Need input
 * Cluster by distance between inputs
 * Can't predict outcome
 * e.g. clustering
== reinforcement learning ==
 * 일종의 unsupervised learning
 * input : environment, reward, output : action
 * Learn from try
 * Model free
 * e.g. game play, stock trading
== reinforcement learning ==
 * Q learning
 * + Neural Network
 * DQN : Deep Q Learning
== Basic knowledge ==
 * MDP : Markov Decision Process
 * Bellman equation
 * Dynamic programming
 * Value, Polish
 * Value function, Polish function
 * Value iteration, Polish iteration

== 실습 ==
 * [https://gym.openai.com gym]: Reinforcement learning을 위한 고전 게임들을 python으로 포팅한 toolkit. 직접 구현한 것도 있고 atari는 포팅함.
  * 오늘 실습할 [https://gym.openai.com/envs/CartPole-v0 cartpole]
  * [https://github.com/openai/gym in github]
 * 필요한 라이브러리: numpy, gym, tensorflow 필요
 {{{
  $ pip install gym
  $ pip install tensorflow 
}}}
 1. cartpole 실행을 해보자! - cartpole_init.py
 1. random action(왼쪽, 오른쪽)을 하는 cartpole - cartpole_random.py
 1. q-network(q-learning의 NN버전) - cartpole.py 
 1. DQN - cartpole_dqn.py
 1. 2015에 Deep Mind에서 발표한 DQN - cartpole_dqn2015.py
== Reference ==
 * 발표 슬라이드: [https://slides.com/rabierre/playing_a_game_with_rl slide]
 * 코드: [https://github.com/Rabierre/cartpole github]
 * 논문: [https://arxiv.org/abs/1312.5602 Playing Atari with Deep Reinforcement Learning]
== Furthermore ==
 * [https://en.wikipedia.org/wiki/David_Silver_(programmer) David Silver]의 강의 
  * [http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching.html 강의노트]
  * [https://www.youtube.com/watch?v=2pWv7GOvuf0 강의 영상]
 * Gitbook: [https://www.gitbook.com/book/dnddnjs/rl/details Fundamental of Reinforcement Learning] 
== 하고싶은 말 ==