블로그 이미지
윤영식
Application Architecter, Full Stacker, KnowHow Dispenser and Bike Rider

Publication

Statistics Graph

Recent Comment

강화학습 강좌를 정리한다.





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







참조


- 김성훈교수님의 강화학습 강좌

- 김성훈교수님의 Q Learning 강좌

- OpenAI GYM 설명

- 강화학습 이해하기

'AI Deep Learning > NN by Sung Kim' 카테고리의 다른 글

[Reinforcement Learning] Q Network  (0) 2018.07.13
[Reinforcement Learning] 강화학습  (0) 2018.07.12
[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
posted by peter yun 윤영식