[강화학습]02장 - 강화학습 기초1: MDP와 벨만 방정식

곽서연·2021년 9월 28일
1

📚 주 교재 : 파이썬과 케라스로 배우는 강화학습

위 책을 보면서 공부한 내용을 정리해보았습니다.






⭐️ Intro


MDP(Markov Decision Process)와 벨만방정식에 대해 알아보도록 합시다!




✅ MDP

▶️ 강화학습이 풀고자 하는 문제는 '순차적 행동 결정 문제'이다.

▶️ 강화학습에서는 사용자가 문제를 정의해야하는데, 잘못 정의하면 에이전트가 학습을 못 할 수도 있기때문에 문제를 정의하는 단계는 가장 중요한 단계 중 하나이다.

▶️ 순차적으로 행동을 결정하는 문제를 정의할 때 사용하는방법이 MDP이다.

▶️ 이 책에서는 그리드월드라는 예제를 보면서 MDP의 구성요소에대해 설명하고 있다.



1) 상태


<상태의 집합>
SS = {(x1x_1, y1y_1), (x2x_2, y2y_2), (x3x_3, y3y_3), (x4x_4, y4y_4), (x5x_5, y5y_5) }

▶️ S는 에이전트가 관찰 가능한 상태(자신의 상황에 대한 관찰)의 집합

▶️ 로봇과 같은 실제 세상에서의 에이전트에게 상태는 센서값이 되지만, 이 책에 나와있는 것 처럼 게임을 학습하기 위한 에이전트는 사용자가 상태를 정의해줘야한다.

▶️ 그리드월드에서 상태의 개수는 유한하다. 만약에 상태가 5개가 있다면 위에 수식처럼 표현할 수 있다.

▶️ 위 그림과 같이 그리드월드에서는 격자 상의 각 위치(좌표)가 상태가 되고, 상태는 총 25개가 있다.

▶️ 그리드 월드의 상태 집합을 나타내면 이렇게 수식으로 나타낼 수 있다.
S = {(1, 1), (2, 2), (3, 3), (4,4), (5, 5) }

▶️ 에이전트는 시간에 따라 움직이며 25개의 상태 집합 안에 있는 상태들을 탐험하게 되며, 시간 t에서의 상태 S가 (1,2)라면 St=(1,2)S_t = (1,2) 로 표현

▶️ MDP에서 상태는 시간에 따라 확률적으로 변한다.
(t = 1일 때, St=(1,3)S_t = (1,3) 일 수도 있고 St=(4,3)S_t = (4,3)일 수도 있음)




2) 행동


▶️ 행동 A는 에이전트가 상태 StS_t에서 할 수 있는 가능한 행동의 집합이다.

▶️ 그리드월드 문제에서 행동의 집합은 A={up, down, left, right}으로 표현할 수 있으며, 시간 t에 에이전트가 특정한 행동 a를 했다면 At=aA_t = a와 같이 표현할 수 있다.




3) 보상함수


▶️ 보상 R은 에이전트가 학습할 수 있는 유일한 정보이다.

▶️ 시간 t에서 상태가 s이고 행동이 a일 때, 에이전트가 받을 보상은 아래와 같은 수식으로 표현한다.

r(s, a) = EE[Rt+1R_t+_1 | St=sS_t = s, At=aA_t =a]

상태가 St=sS_t = s이고 그 상태에서의 행동이 At=aA_t =a일 때(조건문, |로 표현), 받을 보상에 대한 기댓값 E.

▶️ 기댓값 : 일종의 평균이며 어떤 정확한 값이 아니라 나오게 될 숫자에 대한 예상

▶️ 보상 또한 기댓값이어서 상태 s에서 행동 a를 했을 경우에 받을 것이라 예상되는 숫자이다.

▶️ 환경에 따라서 같은 상태에서 같은 행동을 취하더라도 다른 보상을 줄 수도 있으므로 보상함수는 기댓값으로 표현한다.

▶️ 또한 보상함수에서 중요한 것은 시점!!
수식에서도 파악할 수 있듯이 에이전트가 어떤 상태에서 행동한 것은 t시점인데(StS_t, AtA_t) 보상을 받는 것은 t+1시점(Rt+1R_t+_1)이라고 하는것

▶️ 이는 보상을 에이전트가 t시점에서 이미 알고 있는 것이 아니고, 행동을 한 후에 환경이 알려주는 것이기 때문이다. 에이전트는 환경으로부터 하나의 시간 단위가 지난 다음에 보상을 받으며, 이 단위를 타임스텝이라고 한다.




4) 상태 변환 확률


▶️ 에이전트가 행동을 취한다고 해서 모두 상태가 행동에 따라 그대로 변하는 것은 아님

▶️ 에이전트가 상태 s에서 어떤 행동 a를 했을 때, 도달하는 다음 타임 스텝의 상태를 s'라고 한다면! s'는 상태 s에서 a를 했을 때 도달 할 수 있는 다음 상태를 의미한다.

▶️ 하지만 에이전트는 s'에 도달하지 못할 수도 있고, 앞으로 가는 행동 a를 취할 때, 바람이 불 수도 있고 넘어질 수도 있다. 이처럼 상태의 변화에는 확률적 요인이 들어간다.

<상태 변환 확률을 수식으로 표현>
PssaP_{ss'}^{a} = PP[St+1S_t+_1 = s' | St=sS_t =s , At=aA_t =a]

(PP는 확률을 의미, 상태가 St=sS_t=s이고 그 상태에서의 행동이 At=aA_t=a일 때(조건문, |로 표현), 다음 시점 t+1에서 상태 s'에 도달할 확률)

▶️ 이 값 역시 에이전트가 알지 못하는 값으로서 '환경'의 일부

▶️ 상태변환확률은 환경의 모델 이라고도 한다.




5) 할인율


▶️ 에이전트는 항상 현재에 판단을 내리기 때문에 현재에 가까운 보상일수록 더 큰 가치를 가지게 정의해야 한다.

▶️ '할인율' 개념을 도입해서 우리는 이를 수학적으로 표현한다.

▶️ 할인 : 미래의 가치를 현재의 가치로 환산하는 것

▶️ 할인율 : 시간에 따라 할인하는 비율

▶️ 할인율은 γγ로 표기하며, 0과 1사이의 값이다. 시간 t로부터 k 시간이 지난 후에 보상 Rt+kR_t+_k을 받는다고 하면, 해당 보상은 γk1γ_k-_1만큼 할인된다.

<할인율을 고려한 미래보상의 현재가치>
γk1γ^{k-1}Rt+kR_t+_k

▶️ 0과 1사이의 값 γ를 k-1번 곱해줌에 따라 t+k 시점의 보상이 할인된다.

▶️ k값이 커질 수록, (현재 시점으로부터 시간이 많이 지난 보상일수록) 보상의 값은 할인율 γγ에 따라 줄어들게 된다.




6) 정책


▶️ 정책은 모든 상태에서 에이전트가 할 행동을 말한다.

▶️ 상태가 입력으로 들어오면 행동을 출력으로 내보내는 일종의 함수라고 생각해도 좋음

정책은 ππ로 표기하고 정책을 수식으로 나타내면 다음과 같다.

π(as)π(a|s) = PP[ AtA_t= a | StS_t = s]

(시간 t에 에이전트가 상태 s에 있을 때 가능한 모든 행동 중에 a를 할 확률)

▶️ 정책은 각 상태마다 어떤 행동을 할지 알려주며, 에이전트는 학습해 나가며 수많은 정책 중에서 최적 정책을 학습한다.
최적 정책은 하나의 상태s 에서 하나의 행동a 만을 선택

0개의 댓글