1. machine learning ¶
머신 러닝의 세가지 분류
- Supervised learning
- Unsupervised learning
- 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를 늘리는게 다가 아니다!
- 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.1. 순서 ¶
- 일단 cartpole 실행을 해보자! - cartpole_init.py
- random action(왼쪽, 오른쪽)을 하는 cartpole - cartpole_random.py
- q-network(q-learning의 NN버전) - cartpole_qnetwork.py
- DQN - cartpole_dqn.py
- 2015에 Deep Mind에서 발표한 DQN - cartpole_dqn2015.py
1.7. Reference ¶
- 발표 슬라이드: slide
- 실습코드: github
- DeepMind의 DQN 논문: Playing Atari with Deep Reinforcement Learning
- Tensorflow tutorial: DQN
1.8. Furthermore ¶
- David Silver의 강의
- Gitbook: Fundamental of Reinforcement Learning. 한글로 되어 있다!
- 레퍼런스 모음: Machine%20Learning