아카이브/강화학습(2019)

강화학습 공부 - (1) 마르코프 결정 프로세스

Johnny Yoon 2019. 7. 29. 21:39
728x90
반응형

 

서론

MDP 강화학습의 환경을 공식적으로 설명하는 것이다.

모든 환경이 관찰 가능하다고 가정한다.

거의 모든 강화학습의 문제들이 MDP 표현될 있다.

 

마르코프 구성요소

  • 현재를 기준으로 미래는 과거와 무관하다

상태 S_t

$P[S_{t+1} | S_t] = P[S_{t+1} | S1, … S_t]$

 

상태 $S_{t+1}$ 오직 상태 S_t 의해서만 결정된다.

이것이 상태 S_1에서 S_t까지 (히스토리) 모두 반영한다고 가정한다.

따라서 현재의 상태가 다음(미래)상태를 결정하는데 충분하다고 본다.

 

상태 전환 확률 마르코프 상태 s 제일 높은 확률을 가진 다음 상태 s' 결정하는 확률이다.

$P_{ss'} = P[S_t+1 = s' | S_t = s]$

 

상태 전환 행렬은 현재 상태에서 다음 상태로 모든 확률을 표현하는 행렬이다.

만약 내가 다음 행렬에서 [0, 1] 서있다면, [0,0], [0,2], [1,1] 확률은 0.05, 0.2, 0.4 되는것이다. 모든 상태전환 행렬의 원소들의 합은 1 되어야 한다.

0.05

0

0.2

0.03

0.4

0.1

0.07

0.05

0.1

 

마르코프 프로세스

마르코프 프로세스란 마르코프 속성들을 가진 상태들의 메모리가 없는 랜덤 프로세스(시퀀스)이다.

마르코프 프로세스는 (마르코프 체인이라고도 ) 다음 원소들을 가지는 튜플이다.

  • S - 유한한 수의 상태들의 집합
  • P - 상태 전환 확률 행렬

 

마르코프 보상 프로세스

마르코프 보상 프로세스는 마르코프 체인에 (value)들이 있는 것이다.

마르코프 보상 프로세스는 다음의 원소들을 가진 튜플이다 (S, P, R, $\gamma$)

  • S - 유한한 수의 상태들의 집합
  • P - 상태 전환 확률 행렬
  • R - 어떠한 상태에 도달했을 받는 보상 $R_s = E[R{_t+1} | S_t = s]$
    • 수식은 리뭐드 $R_s$ 상태 t에서 시점 t+1 받을 있다는 뜻이다.
  • $\gamma$ - 감가율, 0에서 1사이의

 

리턴

리턴(목적) $G_t$ 시점 t 받을 감가율이 반영된 보상을 의미한다.

$G_t = R_{t+1} + \gamma R_{t+2} + … = \sum_{k=0}^{\infty} \gamma^k R_{t+k+1}$

 

감가율을 적용하면, 미래의 보상과 현재의 보상을 비교할 있게 된다.

 

 

가치함수

가치함수 v(s) 상태 s 장기적인 가치이다.

상태가치함수 v(s) 상태 s에서 시작할때 예상되는 보상(리턴) 의미한다.

$v(s) = E[G_t | S_t = s]$

 

 

벨만방정식

가치함수는 부분으로 나눠질 있다:

  • 즉각적 보상 R_t+1
  • 미래의 성공상태에서 받을 감가율이 적용된 보상

$v(s) = E[G_t | S_t = s]$

$\quad\quad= E[R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + … | S_t = s]$

$\quad\quad= E[R_{t+1} + \gamma (R_{t+2} + \gamma R_{t+3} + … )| S_t = s]$

$\quad\quad= E[R_{t+1} + \gamma G_{t+1} | S_t = s]$

$\quad\quad= E[R_{t+1} + \gamma v(S_{t+1}) | S_t = s]$

 

위의 수식은 보상을 두가지로 나누는 수식이다. 먼저 현재의 받을 보상을 분리시키고,

나머지 수식은 감가율을 적용한 목적 보상으로 통합될 있다.

 

 

벨만방정식 행렬 수식

$v = R + \gamma P v$

위는 아래와 같은 행렬 수식으로 표현될 있다.

$[v(1) … v(n)] = [R_1 … R_n] + \gamma [P_11 .. P_nn] [v(1) ... v(n)]$

 

 

벨만방정식 풀이

벨만 방정식은 선형 함수이다.

$v = R + \gamma P v$

$(1 - \gamma P) v = R$

$V = (1 - \gamma P)^-1 R$

 

위의 행렬 방정식을 푸는데는 $O(n^3)$ 시간이 걸린다.

따라서 마르코프 프로세스에는 좋은 해답이 아니다.

 

 

마르코프 결정 프로세스

MDP 마르코프 보상 프로세스에 결정을 더한것이다. 이는 마르코프 상태들의 집합인 환경을 표현하는 것이다.

마르코프 결정 프로세스는 다음의 원소들을 가진 튜플이다. <S, A, P, R, $\gamma$>

  • S - 유한한 수의 상태들의 집합
  • A - 유한한 수의 액션들의 집합
  • $P^a_{ss'}$ - 상태 전환 확률 행렬  $P^a_{ss'} = E[S_{t+1} = s' | S_t = s, A_t = a]$
    • 상태전환확률은 이제 현재 상태에서 에이전트가 취하는 행동도 고려가 된다.
  • R - 어떠한 상태에 도달했을 받는 보상 $R^a_s = E[R_{t+1} | S_t = s, A_t = a]$
  • $\gamma$ - 감가율, 0에서 1사이의

 

 

정책

정책 $\pi$  상태가 주어졌을 때의 액션들의 분산이다.

$\pi(a|s) = P[A_t = a | S_t = s]$

정책은 에이전트가 취할 있는 가능한 모든 행위를 정의한다.

MDP 정책은 현재 시점만을 고려한다. (시간과 무관하다.)

 

다음과 같은 MDP M policy $\pi$ 주어졌다:

M = <S, A, P, R, $\gamma$>, $\pi$

상태 시퀀스 S_1, S_2, … 마르코프 프로세스 <S, $P^{\pi}$> 이다.

상태 보상 시퀀스 S_1, R_2, S_2, R_3 … 마르코프 보상 프로세스이다.

<S, $P^{\pi}$, $R^{\pi}$, $\gamma$>

 

위의 보상 프로세스에서 상태전환 수식과 보상수식은 다음과 같다:

$P^{\pi}_{s, s'} = \sum_{a \in A} \pi (a | s) P^a_{s, s'}$

$R^{\pi}_s = \sum_{a \in A} \pi (a | s) R^a_s$

 

 

상태가치함수

MDP 상태가치함수 $v_{\pi}(s)$ 상태 s에서 시작해 정책 $\pi$ 따라갈 받을 있는 리턴을 정의 한다.

$v_{\pi}(s) = E_{\pi}[G_t | S_t = s]$

 

 

행동가치함수

행동가치함수 q_{\pi} 상태 s에서 시작해, 정책 \pi 따라 행동 a 취하면 얻어지는 리턴을 정의한다.

$q_{\pi}(s, a) = E_{\pi} [G_t | S_t = s, A_t = a]$

 

 

벨만 기대 방정식

상태 가치 함수는 즉각적인 보상과 성공 상태의 감가율이 적용된 보상으로 나뉠 있다.

$v_{\pi}(s) = E_{\pi} [R_{t+1} + \gamma v_{\pi} (S_t + 1) | S_t = s]$

 

행동 가치 함수 역시 비슷하게 나뉠 있다.

$q_{\pi} (s, a) = E_{\pi}[R_{t+1} + \gamma q_{\pi} (S_{t+1}, A_{t+1}) | S_t = s, A_t = a]$

 

벨만 기대 방정식의 상태 가치 함수는 현재 상태에서 얻을 있는 모든 보상의 평균값이고,

행동가치함수는 행동을 선택했을 얻을 있는 보상.

어떠한 행동을 선택했을 내가 어떤 상태로 놓일지는 환경이 결정한다.

따라서 확률까지 고려된 행동가치함수의 리턴을 고려한다.

 

위의 상태가치함수와 행동가치함수는 최적의 답을 찾기 전까지 항상 쌍으로 반복된다.

v → q  q ...

 

 

최적 가치 함수

최적상태가치함수 $v_{*}(s)$ 모든 정책들 사이의 최대 가치함수를 정의한다.

$v_{*}(s) = \max_{\pi} v_{\pi}(s)$

 

최적행동가치함수 $q_* (s, a)$ 모든 정책들 사이의 최대 행동-가치 함수를 정의한다.

$q_*(s, a) = \max_{\pi} q)_{\pi} (s, a)$

 

최적행동가치함수를 찾았다면, 강화학습은 끝난것이다.

 

 

최적 정책

최적 정책이란 MDP내에서 제일 행동할 있는 정책을 고르는 것이다.

정책, 상태와 행동의 관계에서 가장 좋은 (보상을 많이 주는 ) 고르는 것이 되겠다.

 

먼저 최적의 정책을 찾으려면, 정책을 비교하는 방법을 알아야 한다.

$\pi >= \pi' if v_{\pi}(s) >= v_{\pi'}(s), \forall s$

위의 수식을 설명하면 이렇다.

정책 $\pi$ 다른 정책 $\pi'$보다 낫다고 정의되려면,

$\pi$ 가치함수의 값이 $\pi'$ 가치함수의 값보다 커야한다.

 

 

최적 정책 법칙

  • 모든 MDP에서는, 다른 모든 정책보다 나은 최적 정책 $\pi_*$ 존재한다.
  • 또한 여러개의 최적 정책이 존재할 있다. (마지막에 같은 보상으로 같은 상태에 도달한다)
  • 모든 최적 정책들은 같은 최적 가치 함수의 값을 이루게 된다. $v_{\pi_{*}}(s) = v_*(s)$
  • 모든 최적 정책들은 같은 최적 행동-가치 함수를 이루게 된다. $q_{\pi_{*}}(s, a) = v_*(s, a)$

 

최적 정책을 찾는

최적 정책은 최대의 $q_*(s, a)$ 찾는것에 의해 찾아질 있다.

$\pi_*(a|s) = \begin{cases} 1,&\mbox{if}\quad a == argmax\quad q_*(s, a) \\ 0,&otherwise \end{cases}$

 

먼저 $q_*$ 찾기 위해 수식을 풀고, 가장 좋은 $q_*$ 주는 행동을 찾는 것이다.

따라서, 모든  MDP에는 결론이 되는 최적 정책이 존재하고, $q_*(s, a)$ 풀었다면, 우리는 그것을 찾은것이다.

 

 

벨만 최적 방정식 for v (상태 가치 함수)

우리가 $q_*$ 구한다면 끝이지만, 어떻게 $q_*$까지 도달할 있을까?

벨만 최적 방정식은 우리가 $q_*$ 해를 있게 해준다.

이전에 언급했던 벨만 기대 방정식 형재 상태에서 얻을 있는 모든 보상의 평균값이었다면, 벨만 최적 방정식, 모든 보상들 최적의 보상 고르는 수식이 된다.

$v_*(s) = \max_{a} q_*(s, a)$

 

 

벨만 최적 방정식 for q (행동 가치 함수)

어떤 행동이 최적의 보상을 주는지를 결정하는 방정식이다.

어떤 행동을 취한 (환경의 개입에 의해) 도달할 있는 상태는 각각 최적 가치 함수를 가지고 있다.

행동의 결과는 환경이 제어하기 때문에, 최적값을 바로 뽑아낼 수는 없다.

현재 행동의 보상과, 따라서 행동을 취한 도달할   있는 모든 상태의 가치함수들의 평균이 방정식이 된다.

$q_*(s, a) = R^{a}_{s} + \gamma \sum_{s' \in S} P^{a}_{ss'} v_*{s'}$

 

역시 벨만기대방정식때와 같이 최적의 해를 찾기 전까지 쌍으로 반복된다.

 

 

벨만 최적 방정식을 푸는 방법

  • 벨만 최적 방정식은 비선형 함수이다.
  • 보통은 닫힌 형태의 답이 존재하지 않는다.
  • 반복이 답을 구하게 된다.
    • 가치 반복
    • 정책 반복
    • 큐러닝
    • Sarsa

참고자료

위 자료는 아래 유튜브의 강의 내용을 정리한 것입니다.

https://www.youtube.com/watch?v=2pWv7GOvuf0&list=PL7-jPKtc4r78-wCZcQn5IqyuWhBZ8fOxT&index=1

728x90
반응형