캐나다 대학원/공부

[RL] 3. Value Functions

차가운 Jony 2020. 7. 7. 13:14

3. Value Functions

RL의 핵심은 agent가 어떤 MDP 문제를 해결하는데 가장 최적화된(i.e. return이 높은) policy를 찾는 것이다. 이를 위해서는 각각의 state에서 agent가 어떤 action을 선택할 수 있도록 수치화 된 기준을 제공할 필요가 있다. Value function은 agent가 처한 state, 혹은 해당 state에서 agent가 취한 action에 점수를 부여함으로써 action selection을 돕는다.

앞단원에서 잠시 등장했던 Q 또한 value function의 일종이다.


State-value function $V_{\pi}(s)$

어떤 action selection policy하에서 주어지는 state의 값을 의미한다. 이는 곧 agent가 해당 state로 가는 것이 얼마만큼 좋은지를 나타낸다. 수학적인 의미로는 '어떤 policy $\pi$를 따를 때 어떤 state s $\in S_{t}$의 return의 기대값'이라 할 수 있다. 이는 다음과 같이 나타낼 수 있다.

$$v_{\pi}(s) \doteq \mathbb{E}_{\pi}[G_{t} \mid S_{t} = s] = \mathbb{E}_{\pi}[R_{t+1} + \gamma G_{t+1} \mid S_{t} = s] \\ = \sum_{a} \pi(a|s) \sum_{s', r} p(s',r | s,a) \Big[r+\gamma \mathbb{E}_{\pi}[G_{t+1} | S_{t+1} =s'] \Big] \\ = \sum_{a} \pi(a|s) \sum_{s', r} p(s',r | s,a) \Big[r+\gamma v_{\pi}(s') \Big]$$

(아...티스토리 마크다운에서 수식 정렬하는법 아시는분??)

여기서 G는 앞서 설명했던 return이고, $\gamma$는 discount factor, s는 현재 state, s'은 미래 state 이다.


Action-value function $Q_{\pi}(s,a)$

state 자체에 값을 부여하는 state-value function과는 다르게, action-value function은 어떤 state에서 agent가 취할 수 있는 각각의 'action'에 값을 부여한다.
수학적으로는 '어떤 policy $\pi$ 하에 state s $\in S_{t}$에서 취할 수 있는 action a $\in A_{t}$의 return의 기대값'이며, 이는 다음과 같이 나타낼 수 있다.

$$q_{\pi}(s,a) \doteq \mathbb{E}_{\pi} \Big[ G_{t} \mid S_{t} = s, A_{t} = a \Big] \\ = \mathbb{E}_{\pi} \Big[ \sum_{k=0}^{\infty} \gamma^{k} R_{t+k+1} \mid S_{t} =s, A_{t} = a \Big]$$


Optimal policy and value functions

앞에서 RL의 목적은 optimal 한 policy를 찾는 것이라고 했었다. 어떤 MDP 문제에서는 다른 모든 policy보다 return을 많이 가져다주는 policy가 최소 하나는 존재한다. 우리는 이 policy를 optimal policy라고 부르며, $\pi_{*}$로 표시한다.

어떤 policy $\pi$가 다음을 성립하면 다른 policy $\pi'$보다 더 좋거나 같다고 할 수 있다.

$v_{\pi}(s) \geq v_{\pi'}(s)$ for all s $\in S$

위에서 설명한 state-value와 action-value 모두 어떤 optimal 한 값들이 존재한다. 즉, return을 maximize하는 value-function들이 하나 이상 존재한다. 각각의 optimal value function은 다음과 같이 정의할 수 있다.

$$v_{*}(s) = \max_{a} \sum_{s',r} p(s',r | s, a)[ r+ \gamma v_{*}(s')] \\ q_{*}(s,a) = \sum_{s',r} p(s',r|s,a)[ r+ \gamma \max_{a'} q_{*}(s,a)]$$

(수식 쓰는게 매우 귀찮으므로 짧게...)

이것들을 각각 Bellman optimality equation for $v_{*}$ (혹은 $q_{*}$) 라고 한다.

이 optimal value function들을 알면 optimal policy를 구할 수 있다.

하지만 보통은 v보단 q를 더 많이 활용한다. 왜냐하면 optimal policy를 찾는 것은 결국 optimal 한 action들의 sequence를 찾는 것이다. 하지만 v값 자체는 action에 대한 정보를 주지 않는다. v값을 가지고 action을 선택하려면 agent는 다음 state가 될 수 있는 모든 가능한 s'들에 대한 v값들을 탐색해야 한다. 그리고 나서야 그들 중 최대값을 가진 state를 택하여 action을 취할 수 있다.(즉, 한 스텝을 look-ahead 해야 한다).

하지만 q값은 optimal한 action의 정보를 바로 제공한다. q값이 있다면 이는 어떤 s에서 가능한 모든 action들의 return 기대값을 알고있다는 것이므로, 한 스텝 이후를 look-ahead 할 필요 없이 현재 state에서 가장 기대값이 높은 action을 바로 선택하면 된다.