강화학습 세미나 파이썬과 케라스로 배우는 강화학습...

25
파이썬과 케라스로 배우는 강화학습 2., 3. -강20- 기초 2018. 01. 10 권,1 LINK-lab

Upload: others

Post on 01-Mar-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 강화학습 세미나 파이썬과 케라스로 배우는 강화학습 2장,3장link.koreatech.ac.kr/wp-content/uploads/2018/03/... · robotoi직p다고생각해보r. roboto왼쪽으로i직o면위치가변할텐데,

파이썬과 케라스로 배우는 강화학습2., 3. -강20- 기초

2018. 01. 10

권,1

LINK-lab

Page 2: 강화학습 세미나 파이썬과 케라스로 배우는 강화학습 2장,3장link.koreatech.ac.kr/wp-content/uploads/2018/03/... · robotoi직p다고생각해보r. roboto왼쪽으로i직o면위치가변할텐데,

강화학습은 순차적으로 행동을 계속 결정해야 하는 문제를 푸는 것이다.이 문M를 풀기 D해, 수학적인 모델링이 필요하다.그것이 MDP(M(r,.v De)isi.n Pr.)ess)다.

강화학습의 목표는 보상을 P대화할 수 있는 P적의 정책을 찾는 것이다.

2

Page 3: 강화학습 세미나 파이썬과 케라스로 배우는 강화학습 2장,3장link.koreatech.ac.kr/wp-content/uploads/2018/03/... · robotoi직p다고생각해보r. roboto왼쪽으로i직o면위치가변할텐데,

)DP(),rkov De.ision Pro.ess)k 구성은 P음과 EP.

상u(st,te), 행동(,.tion), D가g(dis.ount f,.tor), ps(poli.y) 은 Agent가 결p하고

보상(rew,rd), 상u 변환 확률(st,te tr,nsition pro-,-ility) 은 (nvironment가 Agente게 c려준P.

상태(stat()와 행동(act)on)은 집합l며, r합 기호로 w현된P.!" = $%" = &

그리고 정책(-ol)cy)은 확률l며, Aelov가 d떤 St,te se서 A.tion ,를 y 확률A로 w현y a nP.' & $ = ([%" = &|!" = $]

상태 변환 확률(Stat(-trans)t)on -robab)l)ty)은 확률l며, Ab간 tm 때 st,te se서 ,.tion ,를 했i 때, 그 P음st,te가 ,-l S 확률i Mt내는 함aA로 w현y a nP. (non-determinsti.i 고려하기 f해)

($$.& = ([!"/0 = $-|!" = $, %" = &]3

Page 4: 강화학습 세미나 파이썬과 케라스로 배우는 강화학습 2장,3장link.koreatech.ac.kr/wp-content/uploads/2018/03/... · robotoi직p다고생각해보r. roboto왼쪽으로i직o면위치가변할텐데,

roboto i직p다고 생각해보r. roboto 왼쪽으로 i직o면 위치가 변할텐데, a떠한 e부요pb n해 "c를들면, 바람o 분다던지 하는 등n 요pb n해) roboto 왼쪽으로 가려했지만, d른쪽으로 가는 경우가 발생할 수 있다. 로봇l 앞으로 간다고 갔지만 왼쪽으로 가서 불b 빠질 수도 있고 d른쪽으로 갈 수도 있다. 그 확률m 표현하는 것o "state tra.sitio. probabi,ity"o다. o렇게 a떠한 a(tio.m y했m 경우 state가)etermi.isti(하게 딱 t해지는 것o 아니고 확률s으로 t해지게 된다.

4

Page 5: 강화학습 세미나 파이썬과 케라스로 배우는 강화학습 2장,3장link.koreatech.ac.kr/wp-content/uploads/2018/03/... · robotoi직p다고생각해보r. roboto왼쪽으로i직o면위치가변할텐데,

5

Page 6: 강화학습 세미나 파이썬과 케라스로 배우는 강화학습 2장,3장link.koreatech.ac.kr/wp-content/uploads/2018/03/... · robotoi직p다고생각해보r. roboto왼쪽으로i직o면위치가변할텐데,

일종의 noise다.

6

Page 7: 강화학습 세미나 파이썬과 케라스로 배우는 강화학습 2장,3장link.koreatech.ac.kr/wp-content/uploads/2018/03/... · robotoi직p다고생각해보r. roboto왼쪽으로i직o면위치가변할텐데,

(/.nt가 Env0ron1.nt를 탐험하면a 얻는 보상r 반환값(retur))t라A 한다.

!" = $"%& + $"%( + $"%) + $"%* + $"%+ + ⋯

그러나, 지D 100만m 받는 것과 한 달 후에 100만mr 받는 것 중 지D 100만mr 받는 것t 더 큰 가치가u으므로, 미래에 받게 될 보상에 대해a는 가치를 감가e킨다. (감가o()0scount F,ctor); . ∈ [1, 3])

!" = $"%& + 5$"%( + 5($"%) + ⋯

t는 한 에피소드(e행, 학습s 한 단n)가 F나E v에 g떤 값t 나오리라A 예측/E대할 c u다.즉 ‘나 ,/.nt는 앞으로 i마s 보상r 받r 것 같다’라A 할 때, t 값은 E대값t며t를 가치함수(va(ue fu)ctio))라 한다.

6 7 = 8[9:|<" = 7]

7

Page 8: 강화학습 세미나 파이썬과 케라스로 배우는 강화학습 2장,3장link.koreatech.ac.kr/wp-content/uploads/2018/03/... · robotoi직p다고생각해보r. roboto왼쪽으로i직o면위치가변할텐데,

가치함수(value (unc.)on)에는 두 가지 종류가 있다.

-.a.e-value (unc.)on 그리고 ac.)on-value (unc.)on

8

Page 9: 강화학습 세미나 파이썬과 케라스로 배우는 강화학습 2장,3장link.koreatech.ac.kr/wp-content/uploads/2018/03/... · robotoi직p다고생각해보r. roboto왼쪽으로i직o면위치가변할텐데,

가치n수: ! " = $ %& '& = "

현c 상태a 가치 (()(+,)) 와 다음 상태a 가치 (()(+,./))a 관계를 나i낸 식이 벨만 Qe식이다.더 esl게는 st(te-v(-ue fu.)t,o.에 대한 벨만 Qe식이다.

! " = $[1&.2 + 41&.5 + 451&.6 + ⋯ |'& = "]⟺ ! " = $[1&.2 + 4(1&.5 + 41&.6 + ⋯)|'& = "]⟺ ! " = $[1&.2 + 4%&.2|'& = "]

lf만,상태뿐만이 아닌, 행동에 대한 가치까f도 판단l기 위해 ()t,o.-v(-ue fu.)t,o.을 이용해야 한다.()t,o.-v(-ue fu.)t,o.을 다른 말로는 Q-function이라고 부른다.

;< ", > = $[1&.2 + 4;< '&.2, ?&.2 |'& = ", >& = >];< ", > = $[1&.2 + 41&.5 + 451&.6 + ⋯ |'& = ", >& = >]

st(te-v(-ue fu.)t,o.을 구l기 위해서는 ()t,o.-v(-ue fu.)t,o.을 먼저 구한 다음에,그 구한 값을 이용해 st(te-v(-ue fu.)t,o.을 구해야 한다. 이를 위해 Q-fu.)t,o.에 e책을 :한 것a o을 구한다.

() @ = AB∈D

E(F|@)G)(@, F)

9

Page 10: 강화학습 세미나 파이썬과 케라스로 배우는 강화학습 2장,3장link.koreatech.ac.kr/wp-content/uploads/2018/03/... · robotoi직p다고생각해보r. roboto왼쪽으로i직o면위치가변할텐데,

!" # = %&∈(

)(+|#) ."(#, +)

!" # = %&∈(

) + # 0[2345 + 789 :345, ;345 |:3 = <, =3 = =]

기대값을 정확한 값으로 수치화시키기 위해, 컴퓨터가 계산할 수 있도록 수식을 변형시킨다.

!" # = %&∈(

)(+|#) (?@4A+ B %CD∈E

FCCD& !"( #G))

상태 변환 확률(∑C∈E FCCD& )이 1이=면 )eterm,.,1t,( 환경이고,

그 외=면 1to(ha1t,( 환경이= 할 수 있다.

현재, 상태 변환 확률을FCCD& = 1로 가정하므로

!" # = %&∈(

)(+|#) (?@4A+ B !"( #G))

10

Page 11: 강화학습 세미나 파이썬과 케라스로 배우는 강화학습 2장,3장link.koreatech.ac.kr/wp-content/uploads/2018/03/... · robotoi직p다고생각해보r. roboto왼쪽으로i직o면위치가변할텐데,

!" # = %&∈(

)(+|#)(./01+3!"( #4)

i재 state에서 그 다음 state로 가는 acti)(을 했을 때의 보상을 구c다.

미래의 가치에 감가율을 적용c다.

바로 주변 상태들에 대c 가치(보상)의 e을 구c다.

해당 acti)( a을 할 확률을 곱c다.

모든 선a 가능c 행동들에 대해 반복하여 그 .을 더c다.

모든 상태에 대해 반복c다.

위 과정을 여러 번 반복하여 수렴.을 구c다.

벨만 기대 방정식

11

Page 12: 강화학습 세미나 파이썬과 케라스로 배우는 강화학습 2장,3장link.koreatech.ac.kr/wp-content/uploads/2018/03/... · robotoi직p다고생각해보r. roboto왼쪽으로i직o면위치가변할텐데,

모든 상태에 대해서 가치 함수를 구하는 과정을 무한히 반복하, 최적의 벨만 방정식을 얻게 되며,!∗ # = %&'()[+,-. + 0!∗ 1,-. |1, = #, &, = &]

12

Page 13: 강화학습 세미나 파이썬과 케라스로 배우는 강화학습 2장,3장link.koreatech.ac.kr/wp-content/uploads/2018/03/... · robotoi직p다고생각해보r. roboto왼쪽으로i직o면위치가변할텐데,

http://computing/oreanlab.com/app/.AI/.QLearning/

Page 14: 강화학습 세미나 파이썬과 케라스로 배우는 강화학습 2장,3장link.koreatech.ac.kr/wp-content/uploads/2018/03/... · robotoi직p다고생각해보r. roboto왼쪽으로i직o면위치가변할텐데,

파란색. 도착하는 최적 정책을 찾는 것이 목표즉 .이전트가 받을 보상의 합을 최대로 하는 것이 목표다.

14

Page 15: 강화학습 세미나 파이썬과 케라스로 배우는 강화학습 2장,3장link.koreatech.ac.kr/wp-content/uploads/2018/03/... · robotoi직p다고생각해보r. roboto왼쪽으로i직o면위치가변할텐데,

처음에는 높은 보상을 얻게 하는 정책이 무엇인지 모른다.따라서 처음에는 무작위로 행.을 정하는 정책부터 시작한다.

무작위 정책은 우리가 찾으려는 최적 정책이 아니다.

최적의 정책을 찾기 위해서는 현재의 정책을 평가하고더 나은 정책으로 발전시키는 과정을 무한히 반복하면정책은 결국 최적 정책으로 수렴한다.

15

Page 16: 강화학습 세미나 파이썬과 케라스로 배우는 강화학습 2장,3장link.koreatech.ac.kr/wp-content/uploads/2018/03/... · robotoi직p다고생각해보r. roboto왼쪽으로i직o면위치가변할텐데,

이를 풀려면정책, 보상, 감가율, 다음 상태의 가치 함수를 알아야 한다.

감가율은 사용자가 정하기 나름보상은 환경이 제(한다.

최적의 정책이 되려면 정책 발전을 해야 한다. 탐욕적인 방법(일정한 확률로 랜덤하게 행동 선택)을 사용하여 최.가 되, 방향으로 가, 정책을 선택한다.

)한 가치함수를 토.로 최.의 보상을 얻게 하, 행동을 선택하, 탐욕 정책 발전을 사용

!

16

Page 17: 강화학습 세미나 파이썬과 케라스로 배우는 강화학습 2장,3장link.koreatech.ac.kr/wp-content/uploads/2018/03/... · robotoi직p다고생각해보r. roboto왼쪽으로i직o면위치가변할텐데,

가치 이터레이션은 정책이 아닌 가치함수를 통해 다음 행동. 결정한다.

정책. 현재 가치함수가 최적이라고 가정

17

Page 18: 강화학습 세미나 파이썬과 케라스로 배우는 강화학습 2장,3장link.koreatech.ac.kr/wp-content/uploads/2018/03/... · robotoi직p다고생각해보r. roboto왼쪽으로i직o면위치가변할텐데,
Page 19: 강화학습 세미나 파이썬과 케라스로 배우는 강화학습 2장,3장link.koreatech.ac.kr/wp-content/uploads/2018/03/... · robotoi직p다고생각해보r. roboto왼쪽으로i직o면위치가변할텐데,

b이썬F 케라T로 Q우는 강fc습 (위aRT, 이용h, 양e렬, 김건우, 이영무, 이의L 지음)

모I를 위d 강fc습 (김성g, hAAps://hunkim.giAhub.io/m:/)

,-:e/rning .esA (hAAp://compuAingkore/n:/b.com//pp/j(I/j,Le/rning/)

)und/menA/: of -einforcemenA Le/rning (hAAps://www.giAbook.com/book/dnddnjs/r:/deA/i:s)

참고

19

Page 20: 강화학습 세미나 파이썬과 케라스로 배우는 강화학습 2장,3장link.koreatech.ac.kr/wp-content/uploads/2018/03/... · robotoi직p다고생각해보r. roboto왼쪽으로i직o면위치가변할텐데,
Page 21: 강화학습 세미나 파이썬과 케라스로 배우는 강화학습 2장,3장link.koreatech.ac.kr/wp-content/uploads/2018/03/... · robotoi직p다고생각해보r. roboto왼쪽으로i직o면위치가변할텐데,

• “상태란, 에이전트의 현재 상황이다..

에이전트가 관찰하= 자신의 상황, 위치 등의 정보

그리드월드(격자로 이루어진, 2차원으로 정보를 표현하= 공1)를 예로 들면, 에이전트의 현재 좌표가 에이전트의 현재 상황이 된다.

사람으로 치면, 눈을 통해 “나= a방에 있다.라고 인식할 때의 “a방.이 상태가 될 수 있다.

“상태= 확률변수다..

확률변수란? 매 시행마다 2이 달라지= 4

왜 상태가 확률변수t까? 어떤 에피a드(또= 시행. 학습의 한 ?위, 학습 횟수)에서,

에이전트가 ,)1t 때, 상태가 (1,3)t 때도 있고

또 다른 어떤 에피a드에서,

에이전트가 ,)1t 때, 상태가 ((,2)t 수도 있다. (물론 3을 수도 있다.)

동t한 시1인 순1을 캡쳐한다면, 각 이미지마다 공의 위치가 매번 3을 수도, 다를 수도 있= 4.

상태

21

Page 22: 강화학습 세미나 파이썬과 케라스로 배우는 강화학습 2장,3장link.koreatech.ac.kr/wp-content/uploads/2018/03/... · robotoi직p다고생각해보r. roboto왼쪽으로i직o면위치가변할텐데,

• “행동이란, 상태가 s인 a이전트가 취할 수 m는 행동i r합이다.”r합이란, 그 xs이 명확히 정i될 수 m는 것들i 모임.

예를 들면, xt과 yt으로 정보를 y현할 수 m는 공간상a서 방향성h 갖는 것들i 모임

“행동도 확률변수다.”

d? 어떤 a피소드(또는 시행. 학습i 한 단e, 학습 횟수)a서,

현n 상태가 s인 a이전트가 a라는 행동h 한다고 할 때,

또 다른 어떤 a피소드i 같은 시간, 같은 상태a서 다른 행동h 할 수도, 같은 행동h 할 수도 m?때문이다.

상태c 행동i 이러한 확률변수o인 xsh -.--()t)r,i-stic(또는 st.chastic)이라고 한다.

행동

22

Page 23: 강화학습 세미나 파이썬과 케라스로 배우는 강화학습 2장,3장link.koreatech.ac.kr/wp-content/uploads/2018/03/... · robotoi직p다고생각해보r. roboto왼쪽으로i직o면위치가변할텐데,

stat.%valu. fun,t1on (=t함a)

% 상u를 고려한 =t함a ! " = $[&'|)* = "]

⟺ ! " = $[-'./ + 1-'.2 + 12-'.3 + ⋯ |)* = "]

⟺ ! " = $[-'./ + 1(-'.2 + 1-'.3 + ⋯)|)* = "]

⟺ ! " = $[-'./ + 1&'./|)* = "]

! 7'./ = $ -'.2 + 1-'.3 + ⋯ )*.8 = "9 이므로

⟺ ! " = $[-'./ + 1: 7'./ |)* = "]

g기f osi 고려하면, :; < = =;[-'./ + 1:;(7'./)|7' = <] Q는 :; " = $[&'|)* = "]이를 ‘벨만 방o식 (다이내믹 프로그래밍 방o식)’이라고 함

벨만 방o식f선, =t(!>()*.8))= =n 높은 값i 선v하g !> " 를 e데이트하게 되d m다.

김성훈 교a님 강의f선, ?@ ", B = C + D EBFGH ?@ "9, B9

non%-.t.rm1nst1,한 환경이라면, ?@ ", B = 1 − K C + K D EBFGH ?@ "9, B9 .

기존의 Q값iK(K)0.(이면 (0%)o도만 r고하겠다는 c이디d. l종의 l.arn1n0 rat..

23

Page 24: 강화학습 세미나 파이썬과 케라스로 배우는 강화학습 2장,3장link.koreatech.ac.kr/wp-content/uploads/2018/03/... · robotoi직p다고생각해보r. roboto왼쪽으로i직o면위치가변할텐데,

()t,o.-v(-ue fu.)t,o. (가치함수)

- 상c와 함께 i동까a 고려한 가치함수

!" #, % = '[)*|,- = #, %- = %]

이 때, /" #, % 는 Q-fu.)t,o.이며, i동 각각에 대한 가치함수를 계Q한다.

(즉 에이전트의 ()t,o.에 대한 점수(qu(-,ty)이다.)

“동적” : 대상이 시간에 따라 변f는 :

“e로그래밍” : 계획f는 :. 여러 e로세스가 다단계로 이루어a는 :

24

Page 25: 강화학습 세미나 파이썬과 케라스로 배우는 강화학습 2장,3장link.koreatech.ac.kr/wp-content/uploads/2018/03/... · robotoi직p다고생각해보r. roboto왼쪽으로i직o면위치가변할텐데,

이 때,정책이 얼마나 좋은지를 판단하는 근거로 쓰이기 위해가치 함수라는 것이 쓰인다.

가치함수란,현재의 정책 !를 따라갔을 때 받게 될 것이라. 기대되는 보상을 기대값으로 나타낸 것이다.

"# $ = &#[()*+ + -()*. + -.()*/ + ⋯ |2) = $]

하지만,더욱 멀리 있는 미래의 가치를 .려하면 .려할수록,우의 수가 기하급수적으로 늘어나는 문제가 있다.즉 가치 함수를 계산하기 어렵게 된다.

이 때, 벨만 방정식이 가치 함수의 계산량 문제를 해결해준다.

“주변 상태의 가치함수와 한 타임스텝의 보상만을 .려하여현재 상태의 다음 가치 함수를 계산하겠다”

"# $ = &#[()*+ + -"#(2)*+)|2) = $]

25