데이터사이언스/강화학습

강화학습 - (9) 벨만방정식

_금융덕후_ 2020. 9. 14. 21:26
728x90
반응형

강화학습

벨만방정식 (Bellman Equation)

 

현실에서 우리는 피드백을 받지 않고도 많은 것을 배울 수 있다.

처음 자전거를 타고 있다고 가정해 보자.

자전거를 타다가 넘어진 뒤 바위에 부딛쳐 무릎을 다쳤다면,

이 경험은 우리 머리속에 기억이 될 것이다.

다시 자전거를 타다가 비슷한 경험을 하게 된다면,

우리는 머리속으로 바위 근처에 갔을 때 밸런스를 유지하지 못하면,

바위에 부딛쳐 무릎을 다치게 된다는 것을 알 수 있을 것이다.

 

이처럼 강화학습에서도 미래의 보상을 전부 경험하지 않더라도,

현재의 상태에서 예측을 통해 미래의 상태를 가늠해 볼 수 있다.

벨만 방정식은 이처럼 현재 상태와 미래의 성공확률에 대한 연결을 수식화 해준다.

 

상태 가치 벨만방정식 (State-value Bellman Equation)

상태 가치 벨만방정식은 현재의 상태와 뒤이어질 상태들의 모든 가치들 정의한다.

여기서 $G_t$는 감가율이 적용된 모든 미래의 예측되는 보상임을 기억하자.

 

$v_{\pi}(s) \dot{=} \mathbb{E}_{\pi}[G_t | S_t = s]$

 

위 수식을 조금 풀어서 써보면 다음과 같이 풀어낼 수 있다.

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

$= \sum_{a}\pi(a|s) \sum_{s'} \sum_{r}p(s',r|s,a)\left[r+\gamma \mathbb{E}_{\pi}[G_{t+1}|S_{t+1}=s']\right]$

 

먼저 윗 수식에서 $R_{t+1}$과 $\gamma G_{t+1}$, 그리고 기댓값을 분리해서 생각해보자.

먼저 기댓값은 현재 상태에서 정책을 따라 행동했을 때 얻을 수 있는 각각의 행동에 ($\pi(a|s)$),

각 행동이 일어날 확률 ($p(s',r | s,a)$)을 곱해준 것과 같다.

이는 현재 기대되는 결과에, 그 결과가 일어날 확률로 가중치를 준 것과 같다.

 

$R_{t+1}$은 현재 행동을 선택했을 때 즉각적으로 일어나는 결과, 즉 보상 $r$이 된다.

 

그리고 $\gamma G_{t+1}$은 더 미래에 일어날 일들에 대한 결과이다.

이는 또다시 기댓값으로 풀어지게 되는데, 미래에 일어날 모든 일의 평균치와 같은 것이다.

위 수식의 기댓값은 재귀적으로 끝날때까지 계속 이어질 수 있다.

 

또한 이 기댓값은 다음 상태인 $s'$의 상태가치함수가 된다.

따라서 아래 수식의 기댓값을 가치함수로 변환하면, 다음과 같이 다시 써볼 수 있다.

$= \sum_{a}\pi(a|s) \sum_{s'} \sum_{r}p(s',r|s,a)\left[r+\gamma v_{\pi}(s') \right]$

 

반응형

 

행동 가치 벨만방정식 (Action-value Bellman Equation)

행동가치함수는 현재 상태 $s$에서 정책 $\pi$를 따라 행동 $a$를 선택했을 때의 가치를 정의한다.

 

$q_{\pi}(s,a) \dot{=} \mathbb{E}_{\pi}[G_t | S_t = s, A_t = a]$

 

위 수식은 다음과 같이 풀어낼 수 있다.

$= \sum_{s'} \sum_{r}p(s',r|s,a)\left[r+\gamma \sum_{a'} \pi(a' | s') \mathbb{E}_{\pi}[G_{t+1}|S_{t+1}=s', A_{t+1}=a']\right]$

 

행동가치함수는 상태가치함수와는 다르게 행동을 선택하는 $\sum_{a}\pi(a|s)$항이 존재하지 않는다.

그 이유는 행동가치함수는 이미 현재 상태와 함께 행동을 입력으로 주입받기 때문이다 ($q_{\pi}(s, a)$).

다음상태에서 역시 상태와 행동을 같이 입력을 받기 때문에,

상태가치함수와는 다르게, 결과 $G_t$를 풀어낸 항 안쪽을 보면 다음상태들($s'$)과 다음행동($a'$)이

함께 정책 $\pi$와 함께 summation 되고 있는 것을 볼 수 있다.

 

위 상태가치함수 수식안의 기댓값은 역시 다음과 같이 다시 써볼 수 있다.

$= \sum_{s'} \sum_{r}p(s',r|s,a)\left[r+\gamma \sum_{a'} \pi(a' | s') q_{\pi}(s', a')\right]$

 

왜 벨만방정식인가?

예제)

위와 같은 그리드월드가 있다고 가정해보자.

에이전트는 균등하게 랜덤한 행동을 선택하는 정책 $\pi$를 따른다.

그리고 에이전트가 상태 B에 도달하면 5의 보상을 받고 나머지 상태들은 0의 보상을 받는다.

에이전트가 벽에 부딛치면 에이전트는 해당 상태에 머무르게 되고, 이 또한 상태에 따라 보상을 받는다.

감가율 $\gamma$가 0.7이라고 가정했을 떄, 각 상태 A, B, C, D의 상태가치함수는 다음과 같이 정의될 수 있다.

$V_{\pi}(A) = \frac{1}{4}(5+0.7 V_{\pi}(B)) + \frac{1}{4}(0.7 V_{\pi}(C)) + \frac{1}{2}(+0.7 V_{\pi}(A))$

$V_{\pi}(B) = \frac{1}{2}(5+0.7 V_{\pi}(B)) + \frac{1}{4}(0.7 V_{\pi}(A)) + \frac{1}{4}(+0.7 V_{\pi}(D))$

$V_{\pi}(C) = \frac{1}{4}(5+0.7 V_{\pi}(A)) + \frac{1}{4}(0.7 V_{\pi}(D)) + \frac{1}{2}(+0.7 V_{\pi}(C))$

$V_{\pi}(D) = \frac{1}{4}(5+0.7 V_{\pi}(B)) + \frac{1}{4}(0.7 V_{\pi}(C)) + \frac{1}{2}(+0.7 V_{\pi}(D))$

 

위 문제는 기본적인 선형대수의 연립방정 문제로 풀어낼 수 있다.

$V_{\pi}(A) = 4.2$

$V_{\pi}(B) = 6.1$

$V_{\pi}(C) = 2.2$

$V_{\pi}(D) = 4.2$


728x90
반응형