본문 바로가기
IT/[딥러닝]

[자습일지] 강화학습 기초

by Coffee With Me 2020. 8. 26.

출처 : http://blog.quantylab.com/rl.html

 

강화학습은 머신러닝의 한 종류로 어떠한 환경에서 어떠한 행동을 했을 때 그것이 잘 된 행동인지 잘못된 행동인지를 나중에 판단하고 보상(또는 벌칙)을 줌으로써 반복을 통해 스스로 학습하게 하는 분야이다.

 

마르코프 가정

상태가 연속적인 시간에 따라 이어질 때 어떠한 시간점의 상태는 그 시점 바로 이전의 상태에만 영향을 받는다는 가정이다. 

좌변, 어떠한 시점 t에서의 상태 S(t)는 최초 상태 S(1)에서 바로 이전 상태 S(t-1)까지의 영향을 받는다는 뜻이다. 이는 현실적이나 실제로 계산하기에는 매우 어렵다. 그래서 우변, 상태 S(t)는 바로 이전 상태인 S(t-1)에 가장 큰 영향을 받고 S(t-1)는 그 이전 상태의 영향을 받기에 연쇄적으로 모든 이전 상태가 반영된다고 가정하는 것이다.

 

마르코프 과정

마르코프 과정은 마르코프 가정을 만족하는 연속적인 일련의 상태이다. 마르코프 과정은 일련의 상태 S(1), S(2), ···, S(t)와 상태 전이 확률(state transition probability)로 구성된다.

 

상태 전이 확률 P는 어떠한 상태가 i일 때 그 다음 상태가 j가 될 확률을 의미한다. 여기서 P(A|B)는 조건부 확률로 B일 때 A일 확률을 의미한다. 

 

마르코프 의사 결정 과정

마르코프 의사 결정 과정(Markov decision process, MDP)은 마르코프 과정을 기반으로한 의사 결정 모델이다.

MDP = (S, A, P, R, γ)  S 상태 집합(state), A 행동 집합(action), P 상태전이 확률(state transition probability), R 보상함수(reward), γ 할인요인(discount factor)로 구성되어 있다.

 

S 상태 집합 : MDP에서 가질 수 있는 모든 상태의 집합

A 행동 집합 : 에이전트가 할 수 잇는 모든 행동 집합

P 상태전이확률 : 에이전트가 어떤 상태s에서 행동 a를 취했을 때 상태 s'으로 변할 확률

R 보상 함수 : 상태 s에서 행동 a를 했을 때의 보상의 기댓값

γ 할인 요인 : 과거의 행동을 얼마나 반영할지를 정하는 값으로 0~1 사이의 값. ex) 과거 5번의 행동에 대한 보상을 1씩 받았을 때, 할인요인 γ가 1이면 <1,1,1,1,1>이고 γ가 0.9이면<0.9, 0.821, 0.729, 0.6561>이다. 즉, 먼 과거에 대한 보상일수록 깎아서 반영한다.

 

정책 π : 에이전트가 어떤 상태 s에서 수행할 행동 a를 정하는 것.

π는 총 보상을 최대화하는 방향으로 갱신된다.

 

 

V 상태 가치 함수

현재 상태 s에서 정책 π를 따랐을 때의 가치 Vπ(s

정책 π에 의해 행동들이 결정 >> 결정된 행동에 의해 상태들이 정해짐 >> 상태 가치 함수는 현재 상태 s에서 정책 π를따랐을 때의 가치를 반환한다.

에이전트가 어떠한 행동을 수행하면서 상태가 시간에 따라 변한다. 이때 보상을 받게 되고 시간에 따라 할인된 보상을 더해서 얻는 가치이다. 즉, 시간 경과에 따른 가치 변화도 포함.

 

Q 상태 행동 가치 함수

어떠한 상태 s에서 행동 a를 수행했을 때의 가치 Qπ(s,a)

 

벨만 기대 방정식

상태 가치 함수와 상태 행동 가치 함수를 기댓값 E로 표현. 두 함수를 벨만 방정식을 통하면 재귀적으로 풀어낼 수 있다.

 

벨만 최적 방정식

최적의 상태 가치와 최적의 상태-행동 가치를 다음과 같이 표현할 수 있다. 최적 가치라는 의미는 가장 큰 보상을 받을 수 있는 정책을 따랐을 때 얻을 가치를 뜻한다.

V*(s) = maxVπ(s) = maxR + γ∑P·Vπ(s'

Q*(s,a) = maxQπ(s,a) = R + γ∑P·Vπ(s'

 

Model-based

MDP 마르코프의사결정과정에서 상태 전이 확률P와 보상 함수R를 정할 수 있는 경우

상태, 행동 공간이 적고 미리 상태 전이 확률과 보상 함수를 알고 있는 경우에 해당한다.

 

Model-free

MDP 모델 없이 하는 강화학습을 Model-free라고 한다. 현실의 대부분 문제들은 MDP로 풀기 어렵기 때문에 대부분 Model-free에 해당한다.

 

예측(prediction)과 제어(control)

MDP 모델을 미리 알 수 없기 때문에 상태 가치 함수의 값을 예측한다. 그리고 점점 더 그 예측이 정확해지게 제어한다. 이러한 예측과 제어를 반복해 나가는 것이 강화학습이라 할 수 있다.

 

부트스트랩(bootstrap)

부트스트랩은 다음 상태에 대한 가치를 함숫값으로 현재 상태의 가치 함숫값을 예측하는 방식이다. 강화학습에서 종료 상태까지의 상태 전이가 진행된 것을 에피소드 라고 하는데, 부트스르탭을 사용하면 에피소드가 진행되는 동안에 상태 가치 함수를 업데이트할 수 있다.

 

On-policy

On-policy는 행동을 결정하는 정책과 학습할 정책이 같은 강화학습을 의미한다. On-policy 강화학습은 경험을 실컷 쌓아도 정책이 업데이트되면 이 경험을 학습에 사용할 수 없다. 

 

Off-policy

Off-policy는 행동하는 정책과 학습하는 정책이 다른 강화학습 방법이다. 정책이 업데이트되어도 이 경험을 학습에 사용할 수 있기 때문에 데이터 효율 관점에서 On-policy 보다 좋다.

 

이용(exploitation)

현재 알고 있는 가장 최적의 행동을 선택하는 것이다. 선택한 행동이 최적의 행동은 아닐 수 있기 때문에 탐욕적으로 행동을 선택한다고도 한다.

 

탐험(exploration)

경험을 쌓기 위해 아무 행동이나 선택해 보는 것을 의미한다. 탐욕적 행동만을 선택하면 최적에 도달하지 못할 수 있다. 이런 문제를 해결하기 위해 간혹 탐험을 하는 것이다.

 

 

출처 : 파이썬과 케라스를 이용한 딥러닝 강화학습 주식투자 - 퀀티랩 지음