벨만 방정식(Bellman Equation)
MDP 로 정의된 모델에서 누적 보상을 최대화 하기 위해서는 각 상태에서 최선의 행동을 선택하는 최적의 정책을 찾아야하며 이러한 최적의 정책은 즉각적인 현재 보상이 아닌 미래에 대한 평가를 나타내는 가치를 기준으로 행동을 선택해야 합니다. 따라서 가치를 계산하는 것은 강화 학습에서 중요한 문제이며 벨만 방정식을 통해 가치를 계산하는 방법을 알아보겠습니다.
벨만 방정식은 최적화 문제에서 가치 함수에 대해 이산 시간 $t$ 와 $t+1$ 간에 재귀적인 관계를 나타냅니다. 이러한 벨만 방정식은 벨만 기대 방정식과 벨만 최적 방정식으로 나누어집니다.
벨만 기대 방정식(Bellman Expectation Equation)
정책 $\pi$ 을 따르는 상태 가치 함수를 $v_\pi(s_t)$ 를 벨만 방정식의 형태로 풀어보면 다음과 같습니다.
$\begin{aligned}
v_\pi(s) &\doteq \mathbb{E}_\pi[G_t|S_t=s] \\
&= \mathbb{E}_\pi[r_{t+1}+\gamma r_{t+2}+\gamma^2r_{t+3}+\cdots|S_t=s] \\
&= \mathbb{E}_\pi[r_{t+1}+\gamma(r_{t+2}+\gamma r_{t+3}+\cdots)|S_t=s] \\
&= \mathbb{E}_\pi[r_{t+1}+\gamma G_{t+1}|S_t=s] \\
&= \mathbb{E}_\pi[r_{t+1}+\gamma v_{\pi}(S_{t+1})|S_t=s] \\
\end{aligned}$
행동 가치 함수 $q_{\pi(s,a)}$ 또한 비슷한 형태로 전개할 수 있습니다.
$\begin{aligned}
q_\pi(s, a) &\doteq \mathbb{E}_\pi[G_t|S_t=s, A_t=a] \\
&= \mathbb{E}_\pi[r_{t+1}+\gamma r_{t+2}+\gamma^2r_{t+3}+\cdots|S_t=s, A_t=a] \\
&= \mathbb{E}_\pi[r_{t+1}+\gamma(r_{t+2}+\gamma r_{t+3}+\cdots)|S_t=s, A_t=a] \\
&= \mathbb{E}_\pi[r_{t+1}+\gamma G_{t+1}|S_t=s, A_t=a] \\
&= \mathbb{E}_\pi[r_{t+1}+\gamma q_{\pi}(S_{t+1}, A_{t+1})|S_t=s, A_t=a] \\
\end{aligned}$
가치 함수에 대해 기댓값 연산자를 포함하는 벨만 기대 방정식은 다음과 같습니다.
$v_{\pi}(s) \doteq \mathbb{E}_{\pi}[ r_{t+1} + \gamma v_{\pi}(S_{t+1}) | S_t=s ]$
$q_{\pi}(s,a) \doteq \mathbb{E}_{\pi}[ r_{t+1} + \gamma q_{\pi}(S_{t+1}, A_{t+1}) | S_t=s, A_t=a ]$
또한 MDP 모델을 확실히 아는 상황에서는 계산하기 위한 형태의 식으로 변형할 수 있습니다.
먼저 상태 가치를 행동 가치와의 관계로도 풀어낼 수 있습니다.
상태 $s$ 의 가치 $v_\pi(s)$ 는 취할 수 있는 행동에 대한 행동 가치 $q_{\pi}(s,a)$ 들의 합으로 구할 수 있습니다. 또한 정책을 고려하기 때문에 행동을 취할 확률을 곱하여 다음과 같이 나타낼 수 있습니다.
$v_{\pi}(s) = \displaystyle \sum_{a \in A} \pi(a|s) q_{\pi}(s,a)$
반대로 행동 가치 $q_{\pi}(s,a)$ 를 기준으로 풀어낼 수 있습니다.
상태 $s$ 에서 취한 행동에 대한 보상과 다음 상태의 가치로 나타낼 수 있습니다. 여기서는 다음 상태에 대한 전이 확률을 고려해야하며 다음과 같이 나타낼 수 있습니다.
$q_{\pi}(s,a) = \displaystyle \sum_{s' \in S} P_{ss'}^a \left[ r + \gamma v_{\pi}(s') \right] $
조금 더 뒤의 관계를 나타낼 수 있습니다.
위에서 얻은 식을 이용해서 순차적으로 전개하면 최종적으로 다음 형태가 됩니다.
$v_{\pi}(s) = \displaystyle \sum_{a \in A} \pi(a|s) \displaystyle \sum_{s' \in S} P_{ss'}^a \left[ r + \gamma v_{\pi}(s') \right]$
동일한 방식으로 행동 가치 함수도 다음 형태의 식을 얻을 수 있습니다.
$q_{\pi}(s,a) = \displaystyle \sum_{s' \in S} P_{ss'}^a \left[ r + \gamma \displaystyle \sum_{a' \in A} \pi(s'|a') q_{\pi}(s',a') \right]$
벨만 최적 방정식(Bellman Optimality Equation)
벨만 기대 방정식이 $v_{\pi}(s)$ 와 $q_{\pi}(s,a)$ 에 대한 수식이라면 벨만 최적 방정식은 $v_*(s)$ 와 $q_*(s,a)$ 에 대한 수식입니다. 다시 말하면 $v_\pi(s)$ 와 $q_\pi(s,a)$ 는 정책 $\pi$ 을 따르는 가치 함수이지만 $v_*(s)$ 와 $q_*(s,a)$ 는 최적 정책 $\pi_*$ 를 따르는 가치 함수인 것이고 최적 정책을 통해 계산된 가치 함수는 최적 가치 함수(optimal value function)인 것입니다.
최적 가치 함수는 다음과 같이 나타낼 수 있습니다.
$v_*(s) \doteq {\underset {\pi} {\text{max}} } \, v_{\pi}(s)$
$q_*(s,a) \doteq {\underset {\pi} {\text{max}} } \, q_{\pi}(s,a)$
많은 정책 중 최고의 정책을 따르는 가치 함수가 바로 최적 가치 함수라는 것입니다.
벨만 기대 방정식과는 무슨 차이가 있을까요?
벨만 기대 방정식에서는 정책 $\pi$ 를 따르기 때문에 취할 수 있는 행동들에 대해 기댓값을 계산한 것입니다. 하지만 벨만 최적 방정식은 최적 정책 $\pi_*$ 를 따르기 때문에 최적의 행동만을 고려하여 계산합니다.
따라서 상태 가치 함수와 행동 가치 함수의 관계는 다음이 성립하게 됩니다.
$\begin{aligned}
v_*(s) & = {\underset {a \in \mathcal{A}(s)} {\text{max}} } \, q_{\pi_*}(s,a) \\
& = {\underset {a} {\text{max}} } \, \mathbb{E}_{\pi_*}[G_t | S_t=s, A_t=a] \\
& = {\underset {a} {\text{max}} } \, \mathbb{E}_{\pi_*}[R_{t+1} + \gamma G_{t+1} | S_t=s, A_t=a] \\
& = {\underset {a} {\text {max}} } \, \mathbb{E}[R_{t+1} + \gamma v_*(S_{t+1})| S_t=s, A_t=a] \\
& = {\underset {a} {\text {max}} } \displaystyle \sum_{s',r} p(s',r|s,a)[r + \gamma v_*(s')]
\end{aligned}$
최적 정책을 따르는 상태의 가치는 그 상태에서 최선의 선택으로 얻는 기댓값과 같다는 것입니다.
행동 가치 함수에 대한 벨만 최적 방정식은 다음과 같습니다.
$\begin{aligned}
q_*(s,a) & = \mathbb{E} \left[ R_{t+1} + \gamma {\underset {a'} {\text{max}} } \, q_*(S_{t+1},a') | S_t=s A_t=a \right] \\
& = \displaystyle \sum_{s',r} p(s',r|s,a) \left[ r + \gamma {\underset {a'} {\text{max}} } \, q_*(s',a') \right]
\end{aligned}$
마치며
벨만 방정식은 MDP 로 정의된 환경에서 가치를 계산하기 위한 것으로 가치 함수 $v_{\pi}$ 의 정의에서 유도했습니다. 이러한 벨만 방정식을 이용하면 $t$ 와 $t+1$ 의 시점에서 바로 계산할 수 있으며 이를 무한히 반복하면 기댓값에 수렴하는 것입니다.
또한 벨만 방정식은 벨만 기대 방정식과 벨만 최적 방정식으로 나누어집니다. 정책 $\pi$ 에 대한 가치 함수 $v_{\pi}$ 를 계산할 때는 벨만 기대 방정식을 이용하고 이는 정책 $\pi$ 를 평가하는 것과 같습니다. 최적 정책 $\pi_*$ 에 대한 최적 가치 함수 $v_*$ 를 계산할 때는 벨만 최적 방정식을 사용합니다.
'머신러닝 > 강화학습' 카테고리의 다른 글
Model-Free Prediction (0) | 2020.11.09 |
---|---|
OpenAI Gym (0) | 2020.11.09 |
동적 프로그래밍(Dynamic Programming) (0) | 2020.11.06 |
마르코프 결정 프로세스(Markov Decision Process) (0) | 2020.11.04 |
강화 학습(Reinforcement Learning) (0) | 2020.11.04 |