[RL] 2. Bellman equation

2024. 4. 23. 14:36RL

환경(상태 전이, 보상)와 에이전트 정책이 결정적이라면, 수익 공식인 $G_t = R_t + \gamma R_{t+1} + \gamma^2 R_{t+2} + \cdots$로 상태 가치 함수를 쉽게 구할 수 있다.

하지만 결정적이지 않다면, 위 방식으로 구할 수 없다.

 

벨만 방정식은 환경 및 에이전트 정책이 확률적일 때 상태 가치 함수를 구하는데 사용되는 유용한 식이다.

벨만 방정식 유도

$$\begin{matrix}G_t &=& R_t + \gamma R_{t+1} + \gamma^2 R_{t+2} + \cdots \\ &=& R_t + \gamma (R_{t+1} + \gamma R_{t+2} + \cdots) \\ &=& G_t = R_t + \gamma G_{t+1} \end{matrix}$$

 

$$\begin{matrix} v_\pi(s) &=& \mathbb E_\pi [G_t|S_t=s] \\ &=& \mathbb E_\pi [R_t + \gamma G_{t+1}|S_t=s] \\ &=& \mathbb E_\pi [R_t|S_t=s] + \gamma \mathbb E_\pi [G_{t+1}|S_t=s] \end{matrix}$$

 

$$\mathbb E_\pi[R_t|S_t=s] = \sum_{a} \pi(a|s)R_s^a$$

 

$$\begin{matrix} \mathbb E_\pi[G_{t+1}|S_t=s] &=& \sum_{a} \pi(a|s) \sum_{s^\prime} P_{ss^\prime}^a \mathbb E_\pi[G_{t+1}|S_{t+1}=s^\prime] \\ &=& \sum_{a} \pi(a|s) \sum_{s^\prime}P_{ss^\prime}^av_\pi(s^\prime) \end{matrix}$$

 

$$\begin{matrix} v_\pi(s) &=& \mathbb E_\pi [R_t|S_t=s] + \gamma \mathbb E_\pi [G_{t+1}|S_t=s] \\ &=& \sum_{a} \pi(a|s)R_s^a +  \gamma \sum_{a} \pi(a|s) \sum_{s^\prime}P_{ss^\prime}^av_\pi(s^\prime) \\ &=& \sum_{a} \pi(a|s)\left(R_{s}^a + \gamma \sum_{s^\prime} P_{ss^\prime}^a v_\pi(s^\prime)\right) \end{matrix}$$

 

$v_\pi(s) = \sum_{a} \pi(a|s)\left(R_{s}^a + \gamma \sum_{s^\prime} P_{ss^\prime}^a v_\pi(s^\prime)\right)$이 바로 벨만 방정식이다.

벨만 방정식 의의

벨만 방정식은 "현재 상태 $s$의 상태 가치 함수와 다음 상태 $s^\prime$의 상태 가치 함수의 관계"를 나타내는 식이다.

그렇기 때문에, 벨만 방정식을 이용해 상태 가치 함수를 연립 방정식으로 구할 수 있다.

이는 이전 방식(=수익 공식)의 두 가지 한계점을 해결했다.

1. 유한한 연립 방정식으로 수익 수식의 무한 굴레를 벗어났다.

2. 환경 및 에이전트 정책이 확률적이어도 구할 수 있다.

행동 가치 함수(action-value function, Q function)

행동 가치 함수는 상태 가치 함수에 행동 조건을 추가한 함수다.

다시 말해, 행동 가치 함수인 $q_\pi(s,a)$는 상태 $S_t$와 행동 $A_t$가 각각 $s$, $a$고 에이전트 정책이 $\pi$일 때, 에이전트가 얻을 기대 수익을 의미한다.

이를 수식으로 표현하면 다음과 같다.

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

 

여기서, $q_\pi(s, a)$의 $a$는 정책 $\pi$와 무관하다는 점을 주의해야 한다. 즉, $A_{t+1}$부터 정책 $\pi$에 따른다.

이 점이 바로 상태 가치 함수와 행동 가치 함수의 유일한 차이점이다.

상태 가치 함수와 행동 가치 함수의 관계를 수식으로 표현하면 다음과 같다.

$$v_\pi(s) = \sum_a \pi(a|s)q_\pi(s,a)$$

 

추가로, 최적 정책의 행동 가치 함수를 최적 상태 가치 함수(optimal action-value function) 이라 하고, $q_*(s, a)$로 표기한다.

행동 가치 함수의 벨만 방정식 유도

$$\begin{matrix} q_\pi(s,a) &=& \mathbb E_\pi [G_t|S_t=s, A_t=a] \\ &=& \mathbb E_\pi [R_t + \gamma G_{t+1}|S_t=s, A_t=a] \\ &=& \mathbb E_\pi [R_t|S_t=s, A_t=a] + \gamma \mathbb E_\pi [G_{t+1}|S_t=s, A_t=a]\end{matrix}$$

 

$$\mathbb E_\pi [R_t|S_t=s, A_t=a] = R_s^a$$

 

$$\begin{matrix} \mathbb E_\pi [G_{t+1}|S_t=s, A_t=a] &=& \sum_{s^\prime} P_{ss^\prime}^a \mathbb E_\pi[G_{t+1}|S_{t+1}=s^\prime] \\ &=& \sum_{s^\prime} P_{ss^\prime}^a v_\pi(s^\prime) \\ &=& \sum_{s^\prime} P_{ss^\prime}^a \sum_{a^\prime} \pi(a^\prime|s^\prime) q_\pi(s^\prime, a^\prime) \end{matrix}$$

 

$$\begin{matrix} q_\pi(s,a) &=& \mathbb E_\pi [R_t|S_t=s, A_t=a] + \gamma \mathbb E_\pi [G_{t+1}|S_t=s, A_t=a] \\  &=& R_s^a + \gamma \sum_{s^\prime} P_{ss^\prime}^a \sum_{a^\prime} \pi(a^\prime|s^\prime) q_\pi(s^\prime, a^\prime) \end{matrix}$$

 

$q_\pi(s, a)=R_s^a + \sum_{s^\prime} P_{ss^\prime}^a \sum_{a^\prime} \pi(a^\prime|s^\prime) q_\pi(s^\prime, a^\prime)$가 행동 가치 함수의 벨만 방정식이다.

최적 벨만 방정식

벨만 방정식은 어떤 정책 $\pi$에 대해 성립하는 방정식이다.

이번에는 최적 정책 $\pi_*$에 대해서만 성립하는 벨만 최적 방정식(bellman optimality equation)에 대해 살펴보자.

상태 가치 함수의 최적 벨만 방정식

벨만 방정식에 최적 상태 가치 함수를 대입하면 다음과 같이 표현할 수 있다.

$$v_*(s) = \sum_{a} \pi_*(a|s)\left(R_{s}^a + \gamma \sum_{s^\prime} P_{ss^\prime}^a v_*(s^\prime)\right)$$

 

여기서 최적 정책 $\pi_*$는 $R_{s}^a + \gamma \sum_{s^\prime} P_{ss^\prime}^a v_*(s^\prime)$이 가장 큰 행동을 선택한다. 다시 말해, 값이 가장 큰 행동을 100% 확률로 선택한다.

왜냐하면, 최적 정책은 모든 상태에서 상태 가치 함수가 최대인 정책이기 때문이다.

이를 반영하면 수식은 다음과 같이 바뀐다.

$$v_*(s) = \underset{a}{\max} \left(R_{s}^a + \gamma \sum_{s^\prime} P_{ss^\prime}^a v_*(s^\prime)\right)$$

행동 가치 함수의 최적 벨만 방정식

벨만 방정식에 최적 행동 가치 함수를 대입하면 다음과 같이 표현할 수 있다.

$$q_*(s, a) = R_s^a + \gamma \sum_{s^\prime} P_{ss^\prime}^a \sum_{a^\prime} \pi_*(a^\prime|s^\prime) q_*(s^\prime, a^\prime)$$

 

여기서 최적 정책 $\pi_*$는 $q_*(s^\prime, a^\prime)$이 가장 큰 행동을 선택한다. 다시 말해, 값이 가장 큰 행동을 100% 확률로 선택한다.

$q_*(s^\prime, a^\prime)$이 가장 큰 행동을 선택하면 $v_*(s^\prime)$이 가장 커지기 때문이다. ($v_\pi(s^\prime) = \sum_a^\prime \pi(a^\prime|s^\prime)q_\pi(s^\prime,a^\prime)$)

이를 반영하면 수식은 다음과 같이 바뀐다.

$$q_*(s, a) = R_s^a + \gamma \sum_{s^\prime} P_{ss^\prime}^a \underset{a^\prime}{\max} q_*(s^\prime, a^\prime)$$

 

최적 정책을 최적 행동 가치 함수로 표현하면 다음과 같다.

$$\mu_*(s) = \underset{a}{\text{argmax}} q_*(s, a)$$

최적 벨만 방정식 의의

최적 벨만 방정식은 "현재 상태 $s$의 최적 상태 가치 함수와 다음 상태 $s^\prime$의 최적 상태 가치 함수의 관계"를 나타내는 식이다.

그렇기 때문에, 최적 벨만 방정식을 이용해 최적 상태 가치 함수 $v_*(s)$를 연립 방정식으로 구할 수 있다.

 

그리고, 다음과 같이 최적 상태 가치 함수로 최적 행동 가치 함수를 구할 수 있다.

$$\begin{matrix} q_\pi(s,a) &=& R_s^a + \gamma \sum_{s^\prime} P_{ss^\prime}^a \sum_{a^\prime} \pi(a^\prime|s^\prime) q_\pi(s^\prime, a^\prime) \\ &=& R_s^a + \gamma \sum_{s^\prime} P_{ss^\prime}^a v_\pi(s^\prime) \end{matrix}$$

$$\text{so, }q_*(s,a) = R_s^a + \gamma \sum_{s^\prime} P_{ss^\prime}^a v_*(s^\prime)$$

그럼, 다음과 같이 최적 상태 가치 함수로 최적 정책을 바로 구할 수 있다.

$$\begin{matrix} \mu_*(s) &=& \underset{a}{\text{argmax }} q_*(s, a) \\ &=& \underset{a}{\text{argmax }}R_s^a + \gamma \sum_{s^\prime} P_{ss^\prime}^a v_*(s^\prime) \end{matrix}$$

즉, 모든 정책을 찾을 필요가 없어졌다.

정리

1. 모든 정책을 찾아 수익 수식 $G_t = R_t + \gamma R_{t+1} + \gamma^2 R_{t+2} + \cdots$으로 각 정책의 상태 가치 함수를 구하고, 이를 비교해 최적 정책을 찾는다.

 

2. 모든 정책을 찾은 후, 벨만 방정식$v_\pi(s) = \sum_{a} \pi(a|s)\left(R_{s}^a + \gamma \sum_{s^\prime} P_{ss^\prime}^a v_\pi(s^\prime)\right)$을 사용해 각 정책의 상태 가치 함수를 연립 방정식으로 구하고, 이를 비교해 최적 정책을 찾는다.

이전 방식(=수익 수식)에서 두 가지 부분을 개선했다.

1. 유한한 연립 방정식으로 수익 수식의 무한 굴레를 벗어났다.

2. 환경 및 에이전트 정책이 확률적이어도 구할 수 있다.

 

3. 최적 벨만 방정식 $v_*(s) = \underset{a}{\max} \left(R_{s}^a + \gamma \sum_{s^\prime} P_{ss^\prime}^a v_*(s^\prime)\right)$을 사용해 최적 상태 가치 함수를 연립 방정식으로 구하고, $\mu_*(s) = \underset{a}{\text{argmax }}R_s^a + \gamma \sum_{s^\prime} P_{ss^\prime}^a v_*(s^\prime)$으로 최적 정책을 찾는다.

벨만 방정식과 다르게 모든 정책을 찾는 수고를 들일 필요가 없어졌다.

'RL' 카테고리의 다른 글

[RL] 6. DQN(Deep Q Network)  (0) 2024.04.28
[RL] 5. Temporal Difference: SARSA, Q-learning  (0) 2024.04.26
[RL] 4. Monte Carlo method  (0) 2024.04.24
[RL] 3. DP: policy iteration, value iteration  (0) 2024.04.23
[RL] 1. Markov Decision Chain  (0) 2024.04.20