3월달 "강화학습의 이론과 실제" 로 강의했던 강의자료 배포합니다.
1.Dynamic Programming
2.Policy iteration
3.Value iteration
4.Monte Carlo method
5.Temporal-Difference Learning
6.Sarsa
7.Q-learning
8.딥러닝 프레임워크 케라스 소개 및 슈퍼마리오 환경 구축
9.DQN을 이용한 인공지능 슈퍼마리오 만들기
이 흐름으로 강의를 했는데
브레이크아웃 설명은 양혁렬 (Hyuk Ryeol Yang)님의 코드를 참고 하였고
8번,9번은 새로운 환경이 나왔으니 무시해도 좋겠습니다.
이 환경에 대한 자료는 주말까지 작성하고 업로드 할 예정입니다.
2. 강화학습의 이론과 실습을 병행
인공지능 슈퍼마리오를 스스로 만들기 위한
거의 모든 것이 담겨있습니다.
3. 소개
정원석 연구원
City University of New York -Baruch College
Data Science 전공
ConnexionAI 연구원
Freelancer Data Scientist
모두의연구소 강화학습 연구원
Github:
https://github.com/wonseokjung
Facebook:
https://www.facebook.com/ws.jung.798
Blog:
https://wonseokjung.github.io/
4. 1. Dynamic Programming
a. Policy iteration
b. Value iteration
2. Monte Carlo method
3. Temporal-Difference Learning
a. Sarsa
b. Q-learning
4. 딥러닝 프레임워크 케라스 소개 및 슈퍼마리오 환경 구축
5. DQN을 이용한 인공지능 슈퍼마리오 만들기
순서
5. 1. Dynamic Programming
a. Policy iteration
b. Value iteration
2. Monte Carlo method
3. Temporal-Difference Learning
a. Sarsa
b. Q-learning
4. 슈퍼마리오 환경 구축 및 딥러닝 프레임워크 케라스 소개
5. DQN을 이용한 인공지능 슈퍼마리오 만들기
Model-free
Model-based
Deeplearning
+
RL
실습
6. 1. Dynamic Programming
a. Policy iteration
b. Value iteration
2. Monte Carlo method
3. Temporal-Difference Learning
a. Sarsa
b. Q-learning
4. 슈퍼마리오 환경 구축 및 딥러닝 프레임워크 케라스 소개
5. DQN을 이용한 인공지능 슈퍼마리오 만들기
Grid world
실습
32. 5 x 5 Grid world에서 Dynamic Programming
Grid World Environment
33. 5 x 5 Grid world
State : 그리드의 좌표
Action : 상, 하 , 좌, 우
Reward : 함정 = -1, 목표 = 1
Transition Probability : 1
Discount factor : 0.9
Reward
+ 1
Reward
-1
현재 state
Action
Grid World Environment
다음 state
다음 state
39. Policy iteration
1.Policy를 따라 state-value를 계산하자!
Policy Evaluation
2. 더 좋은 Policy를 찾자!
Policy Improvement
최적의 Policy를
찾기위한 두가지
과정
40. Policy iteration- Policy Evaluation
Update Rule을 사용하여 Evaluation을 한다.
Value update
Policy Transition
Probability
Reward Next State
estimated value
41. 1. 모든 state를 V(s) = 0 으로 초기화 시킨다.
2. 각 state를 Update Rule을 사용하여 V(s)를 업데이트 한다.
Policy iteration- Policy Evaluation
3. 업데이트하며 V(s)의 변화량이 매우 작을때 업데이트를 멈춘다.
Policy를 따라 state-value를 계산하자!
58. Monte Carlo method는 Dynamic programing처럼
모든 정보를 알고 시작 하는 것이 아닌
실제로 경험을 하며 환경과 상호작용을 한다.
Monte Carlo
59. 실제로 경험을 하며 배우는 방법이 좋은 점은 environment의
정보가 없어도 실제로 경험을 하며 optimal behavior을 이루기
땨때문
Monte Carlo
60. Monte Carlo
Monte Carlo는 episode-by-episode로 업데이트 한다
에피소드의 마지막 스테이트 terminal state 까지
가서 업데이트 한다.
Monte Carlo는 경험을 하며 return 된 sample을 이용하여
state-action value를 평균하여 업데이트한다.
66. Temporal-Difference Learning
현재 state에서 action을 선택하며 받을 Reward 과 다음 State에 discount factor가 적용된
state value를 estimate하며 update한다.
Monte Carolo에서의 Gt를 알아야 업데이트 가능 :
67. TD의 장점
1. Monte Carlo의 강점인 환경의 모델을 알지 못해도 사용가능
2. Dynamic programming에서 처럼 On-line 학습이다.
3. 끝까지 기다리지 않아도, 중간중간 update가 가능하기에 episode가
많이 길거나 혹은 continue한 model에서 사용하기 좋다.
92. 1. 환경을 불러온다.
2. agent를 생성한다.
3. score, episode, global_step 를 정해준다.
4. 정해준 에피소드만큼 학습을 시작
- 목숨 다섯개가 주어진다.
- 환경의 초기값을 가져온다.
- 처음 일정구간동안 바가 action을 임의로 선택할수
있게 한다.
- 위의 환경 초기값을 이미지 전처리 해준다.
- 전처리해준 이미지로 네개의 히스토리를 만든다.
Main-1
93. * 게임이 끝날때까지 계속 돌게하는 while문을 만든
다.
-render의 유무를 확인한다. (render을 유무에 따
라 학습 속도가 달라진다.
- 글로벌 스탭을 하나씩 늘려준다.
- 스탭을 하나씩 늘려준다.
- 네개의 state( history )를 이용하여 action을
선택한다.
Main-2
94. Main-3
- 선택한 action으로 환경과 상호작용하며 환경에서 다음 스테이
트, reward, done, info의 값을 받는다.
- 받은 다음 스테이트를 다시 전처리 해준다.
- history 에서 앞의 세개와 방금 받아온 state를 합쳐서
next_history로 선언
- q_max의 평균을 계산하기 위해서 현재의 model 로 부터 나온 Q
값의 max를 agent.avg_q_max에 더한다.
- 만약 dead인 경우 dead를 True로 바꾸고, start_life를 하나
줄여준다.
95. Main-4
- 일정시간마다 target model을 update한다.
- 만약에 죽으면 dead = false로 바꾸고 아니면
next history 값을 history가 받는다.
- 만약에 done이면 에피소드의 학습정보를 기록
하여 출력한다.
- 일정 에피소드마다 모델을 저장한다.
100. Import-2
b. 이미지 전처리
* input으로 들어오는 이미지 크기 조절
* RGB를 Gray로 만드는 라이브러리
* replay memory만드는
c.Tensorflow
* tensorflow backend
* tensorflow
d. 기타
* numpy
* random
* gym
* os
102. DQN-1
• - render 의 유무
• - model의 load 유무
• - state 사이즈
• - action 사이즈
• - epsilon값
• - epsilon의 시작점과 끝점 ( decay를 위
해 )
• - epsilon의 decay step 정의
•
초기화
103. DQN-2
• - 리플레이 메모리에서 뽑을 배치사이즈 정의
• - 학습을 시작할 기준 정의
• - 정답 모델로 업데이트 주기 정의
• - discount factor
• - 리플레이메모리 최대크기 정의
• - 스타트할때 action을 임의로 정해주는 설정
• - Deeplearning model
• - Target model
• - update target model
•
초기화
128. 슈퍼마리오에서의 환경
State : 화면
Action : 상, 하 , 좌, 우,점프,달리기, action의 조합
Reward : 앞으로 전진할때 Reward +1, 뒤로가면 -1
Transition Probability : 1
Discount factor : 0.9
State
Action
도착지인 깃발에 가까이 갈수록 높은 reward를 받는다.
133. 강화학습(reinforcement learning) 기초 설명 및 Unity ml-agent를 이용하여 만든 환경에 강화학습 알고리즘 적용
---
Github:
https://github.com/wonseokjung
Facebook:
https://www.facebook.com/ws.jung.798
Blog:
https://wonseokjung.github.io/성공!!
138. References:
* Reinforcement Learning: An Introduction Richard S. Sutton and Andrew G. Barto Second Edition, in progress MIT Press, Cambridge,
MA, 2017
* https://github.com/rlcode/reinforcement-learning-kr