강화학습 강좌를 정리한다.
RL 개념
환경(세상, Environment)에서 행동하는 액터(Actor)는 환경속에서의 상태가 변경됨. 매순간마다 잘했다 못했다는 보상(Reward)을 줌.
- 1997년 Tom Mitchell 나온 이야기이다.
- 2013, 2015년에 부활함: 벽돌깨기 게임에서 사용
옛날 게임에 적용해서 학습해 보니 reinforcement learning이 사람보다 더 잘하더라~~~. 알파고가 deep-reinforcement-learning 사용한다.
- 빌딩 에너지 관리
- 로보틱스
- 투자
- E-commerce 추천
- 광고 ads
Q = r + Q 수학 기본을 사용한다. Tensorflow/Python으로 실습가능
OpenAI GYM Games
Agent가 움직이고, 상태와 보상을 받는다. gym 환경을 별도 제공한다.
gym 코드
Q Learning
RL의 핵심이다.
입력
- 내가 있는 상태
- 이런 행동을 할려고 합니다.
Q(s, a) => s-state, a-action
출력
- Q가 결과를 내줌
Optimal Policy = 파이*별표
Q가 있다고 가정했지만 Q를 어떻게 학습할 것인가가 중요 사항임.
==> r + maxQ(s1, a1)
r: reward
max: argmax
Q
s: state
a: action
Q값이 학습을 통해서 다음과 같이 생긴다.
전체 Q 알고리즘 정리하면
- 그림처럼 Q(s,a) 테이블을 만들고 0으로 초기화 한다.
- state s 상태를 가져온다.
- 끝날때까지 무한 반복하면서 action을 취하고 reward를 받으면서 S -> S1(prime)으로 이동한다.
- Q 학습이 진행된다.
r: 현재의 reward 값
maxQ(s1,a1): 다음에 얻을 수 있는 최고의 reward 값
Tensorflow 구현 코드
- Q table초기화: np.zeros
- env.reset() 현재의 상태값
- while not done 돌며 끝날때 까지 Q Learning(학습) 수행
Exploit vs Exploration
Exploit: 현재 있는 값을 이용한다.
Exploration: 모헙을 해본다.
예) 평일에는 가던곳을 하고 주말에는 안가보던 곳을 모험해 본다.
E-greedy: exploration의 정도
Discounted future reward: 감마(0.9) 를 곱하여 미래의 reward를 줄여서 계산한다.
Tensorflow code
참조
'Deep Learning > NN by Sung Kim' 카테고리의 다른 글
[Reinforcement Learning] Q Network (0) | 2018.07.13 |
---|---|
[RNN] Basic & Training 하기 (0) | 2018.07.11 |
[RNN] Recurrent Neural Network 개념 (0) | 2018.07.11 |
[CNN] Class, tf.layers, Ensemble (0) | 2018.07.11 |
[CNN] MNIST 99% 도전 (0) | 2018.07.11 |