강화학습(Reinfrocement Learning)의 기본 개념

 1. 강화학습이란


적절히 보상(Reward) 체계를 활용하여 에이전트(Agent)가 긍정적인 행동(Action)을 할 수 있도록 행동을 제어하는 정책(Policy)을 찾아내는 최적화 기법이다.


강화학습의 작동 방식은 다음과 같다.

에이전트가 정책(Policy)에 따라서 어떤 환경(Environment)에서 특정 행동(Action)을 한다.

이때 환경의 상태(State)가 바뀌고 이에 따른 보상(Reward)를 받는다.


이러한 절차를 거치게 되면 환경이 점차 긍정적으로 바뀔 것이고 그에따른 보상도 커질것이다.

최종적으로는 최적의 정책을 찾는 것이 목표이다.



2. 확률과 확률 과정


2.1 확률

확률은 시행이 적을경우 무작위적(random)이지만 시행을 무수히 늘릴 경우 하나의 확률로 수렴하게 된다.


2.2 조건부 확률(Conditional probability)

조건부 확률이란 특정 조건에서 발생하는 확률을 말하며 다음과 같이 표현한다.

$A$사건이 발생했을때 $B$사건이 발생할 확률을 $P(B|A)$라고 표시한다.


2.3 확률 과정(Stochastic process)

확률 과정이란 확률(Stochastic)이라는 개념과 과정(Process)의 개념이 합쳐진 것이다.

확률은 적은 시행에서는 무작위적이지만 무수한 시행을 거치게 되면 일종의 규칙성을 가지고 있다.

과정은 시간과 연관된 개념으로 확률 과정이란 시간의 흐름에 따라 확률적으로 움직이는 상태를 말한다.

확률 과정을 수학적으로 표현하면 다음과 같다.

$$\left\{ \mathbf{X}_t \right\}$$

위에서 $\mathbf{X}$는 랜덤 변수, $t$는 시간을 의미한다.

즉 시간의 흐름에 따라 발생하는 랜덤변수의 집합으로 확률 과정을 표현할 수 있다.



3. 마르코프 연쇄(Markov chain)


3.1 마르코프 속성(Markov property)

마르코프 속성은 확률 과정의 특수한 형태로서 과거의 기록과 독립적이라는 특징이 있다.

즉, 과거의 모든 일을 무시하고 현재 상황만을 가지고 미래를 예측하는 것이다.

이를 조건부 확률로 나타내면 다음과 같다.

$$\mathbf{P} \left[ \mathbf{S}_{t+1} | \mathbf{S}_{t} \right] = \mathbf{P} \left[ \mathbf{S}_{t+1} | \mathbf{S}_1, \cdots, \mathbf{S}_t \right]$$

이는 시간 $t$인 $S_t$상태일때, $t+1$에서 상태가 $S_t$일 확률을 의미한다.


3.2 마르코프 연쇄(Markov chain)

마르코프 연쇄는 마르코프 속성을 지닌 시스템의 시간에 따른 변화를 나타낸다.

이때 상태 공간이 이산적(discrete) 일 때 마르코프 연쇄, 연속적(continuous)일 때 마르코프 과정 이라 한다.

마르코프 연쇄는 두 가지 요소로 구성된다.

상태 집합(S : Set of States)과 상태 전이 매트릭스(P : State Transiton Matrix)이다.

상태 전이 매트릭스는 각 상태별 확률을 행렬 형태로 정리한 것이다.

$$\mathbf{P}_{ss'} = \mathbf{P} \left[ \mathbf{S}_{t+1} = s' | \mathbf{S}_t = s \right]$$


날씨 예측 시스템을 예시로 들면 다음과 같다.

오늘 날씨에 대한 내일 날씨의 예측 확률이다.

$$\mathbf{P} = \begin{pmatrix} 0.6 & 0.4 \\ 0.7 & 0.3 \end{pmatrix}$$
만약 여기서 3일 뒤의 날씨를 알고 싶다면 단순 행렬 연산을 이용하여 다음과 같이 계산할 수 있다.
$$\begin{matrix} \mathbf{P}' &=& \mathbf{P} \mathbf{P} \mathbf{P} \\ &=& \begin{pmatrix} 0.6 & 0.4 \\ 0.7 & 0.3 \end{pmatrix} \begin{pmatrix} 0.6 & 0.4 \\ 0.7 & 0.3 \end{pmatrix} \begin{pmatrix} 0.6 & 0.4 \\ 0.7 & 0.3 \end{pmatrix} \\ &=& \begin{pmatrix} 0.444 & 0.556 \\ 0.417 & 0.583 \end{pmatrix} \end{matrix}$$
따라서 오늘과 3일 뒤 모두 맑을 확률은 44.4%이다.

마르코프 연쇄는 다음과 같이 두가지 형태로 표현할 수 있다.
시작점(S) 부터 종점(F) 까지 라우터(R)을 거쳐 길을 찾아가는 상황이다.



4. 마르코프 보상 과정(MRP : Markov Reward Process)

마르코프 보상 과정은 마르코프 연쇄에 보상과 시간에 따른 보상의 감가율을 의미하는 감마($\gamma$)가 추가된 개념이다.
따라서 마르코프 보상 과정은 상태집합(S), 상태 전이 매트리스(P), 보상함수(R) 그리고 감가율($\gamma$)로 이루어져 있다.

4.1 보상함수
여기서 보상함수와 감가율은 다음과 같이 수식으로 나타낼 수 있다.
$$R_s = E \left[ R_{t+1} | S_t = s \right] \\ \gamma \in \left[ 0, 1 \right]$$
이때 보상함수 $R$은 확률의 기댓값(E : expectation)의 형태인데
시간 $t$에서 상태가 $s$일때 시간 $t+1$에서 받을 수 있는 보상의 기댓값이다.
기댓값이란 이산확률 분포에서는 다음과 같이 값과 그 값의 확률의 합으로 나타낼 수 있다.
$$E(X) = \sum xf(x)$$
반면 연속확률 분포에서는 다음과 같이 적분값으로 계산한다.
$$E(X) = \int_{-\infty}^\infty xf(x)\ dx$$
우리가 구성할 상태는 이산적이므로 이산확률 분포의 기댓값을 이용한다.
즉, 특정 상태에서 다음상태로의 보상과 그 다음상태로 가는 확률의 곱을 합산한것과 같다.
만약 다음 그림과 같은 상황에서 보상함수 $R_{s1}$은
$$R_{s1} = p1r1 + p2r2$$
이다.

4.2 감가율($\gamma$)
감가율은 시간의 흐름에 따른 가치의 변화율을 말한다.
예를 들어 1년 감가율이 0.8 이면 5년 뒤의 감가율은 $0.8^5 = 0.32768$이 된다.
즉, 원래 가치의 약 33%가 된다.

4.3 반환값(G : return)
이때 반환값의 개념을 이용하여 보상을 재정의 할 수 있다.
반환값은 시간 $t$에서 계산한 감가율을 고려한 누적 보상의 합이다.
즉,
$$G_t = R_{t+1} + \gamma R_{t+2} + \cdots  = \sum_{k = 0}^\infty \gamma^k R_{t+k+1}$$
반환값은 모든 경우의 수를 고려하여 계산하는 것이 아닌 특정 경로를 택하여 계산한다.

4.4 상태 가치 함수($v$ : State Value Function)
반환값을 전체 환경과 확률을 고려하여 계산하면 다음과 같다.
즉, $S_t = s$일때 각 경로의 반환값의 기댓값을 구해보면 다음과 같다.
$$\begin{matrix} v(s) &=& E \left[ G_t | S_t = s \right] \\ &=& E \left[ R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \cdots | S_t = s \right] \\ &=& E \left[ R_{t+1} + \gamma G_{t+1} | S_t = s \right] \\ &=& E \left[ R_{t+1} + \gamma v(S_{t+1}) | S_t = s \right] \end{matrix}$$
이를 상태가치함수라 정의한다.
이때 마지막 식이 성립하는 이유는 그 윗식의 $G$가 모든 경우의 수에 대한 기댓값을 구하면
이는 확률을 고려하여 계산한 $v$와 같게 되기 때문이다.
위 식을 프로그래밍하기 용이하도록 형태를 변형하면 다음과 같다.
$$\begin{matrix} v(s) &=& E \left[ R_{t+1} + \gamma v(S_{t+1}) | S_t = s \right] \\ &=& R_{t+1} + \gamma E \left[ v(S_{t+1}) | S_t = s \right] \\ &=& R_{t+1} + \gamma \sum P_{ss'} v(s') \end{matrix}$$
위 식을 벨만 방정식(Bellman equation) 이라고 한다.

Comments