본문으로 바로가기

Policies and Value Functions

가치 함수(value function)란 주어진 상태(state) 또는 상태에 따른 행동(action)이 에이전트(agent)에게 있어 얼마나 좋은지 추측(estimate)하는 함수로, 정확하게는 에이전트가 앞으로 얼마나 보상을 받을지 (expected return)를 표현하는 함수이다.

이 보상들은 행동에 의해 받는 것이며, 특정한 방법으로 행동을 결정하는데 이를 정책(policy)라 한다. 어떤 상태가 입력으로 주어지면 행동을 선택할 확률을 반환하는 함수이다. 이를 $\pi$라 표현하며, $t$ 시점일 때 상태 $s$에서 행동 $a$를 할 확률은 $\pi(a|s)$이라할 수 있다.

상태 가치 함수 (state-value function)

어떤 정책 $\pi$에 따라 행동할 때, 어떤 상태 $s$에 대한 가치를 $v_\pi(s)$라 정의한다. 수식적으로는 상태 $s$에서 부터 정책 $\pi$에 따라 쭈욱 행동할 때 expected return을 말한다.

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

어떤 정책 $\pi$에 따라 행동할 때, 어떤 상태 $s$에서 어떤 행동 $a$를 할 때의 가치를 $q_\pi(s,a)$라 정의한다. 상태 가치 함수와 유사하지만, 행동을 해서 얻을 expected return 값을 나타낸다.

여기서 $\mathbb{E}_\pi[\cdot]$은 정책 $\pi$에 따를 때 에이전트가 얻을 것으로 기대되는 값을 표현한 것이다. 왜냐하면 보상은 dynamic $p$에 따라 확률에 의해 보상을 받기 때문에, 확실히 어떤 값을 받을 것이라 할 수 없다. 그래서 이를 expected value로 표현한다.

벨만 방정식 (Bellman Equation)

이전의 expected return 관계식을 활용해서 가치함수간의 관계식을 구할 수 있다.

가치 함수 또한 현재 상태로부터 expected return값으로 정의 되어 있기 때문에, 동일한 관계식을 그대로 사용할 수 있다.

그렇다면 이 기댓값은 어떻게 구할 수 있을까? 주사위를 예를 들면 이해하기 쉽다. 주사위를 여러 번 던진다고 할 때 평균적으로 얼마정도 나올지는 다음과 같이 확률과 같이 곱하면 알 수 있다.

$$(\frac{1}{6} \times 1) + (\frac{1}{6} \times 2) + (\frac{1}{6} \times 3) + (\frac{1}{6} \times 4) + (\frac{1}{6} \times 5) + (\frac{1}{6} \times 6) = 3.5 $$

이를 일반적으로 어떤 f(x)의 기댓값을 구한다면 다음과 같이 표현할 수 있다.

$$ \mathbb{E}[f(x)]= \sum_i p(i)f(i)$$

가치 함수 기댓값도 이 확률을 곱해주면 구할 수 있을 것이다. 여기서 들어가 있는 확률은 정책과 역학(dynamics)이다. 이들을 곱해서 다 더한다면 기대값을 구할 수 있다. 이해를 위해, 어떤 상태 $s0$에서 할 수 있는 행동이 두 가지($a0$, $a1$)가 있으며, 보상도 $1$과 $-1$ 두가지밖에 없다고 하자. 그리고 각 연결된 선은 행동할 확률(정책), 보상과 다음 상태로 갈 확률(dynamic)을 의미한다. 이 때, $s0$의 가치 함수는 얼마일까? (이 때, $\mathbb{E}[G_{t+1}|S_{t+1}=s0] = 0$, $\mathbb{E}[G_{t+1}|S_{t+1}=s1] = 0$ 그리고 $\gamma=1$이라고 가정한다.)

  • 행동 $a0$를 해서 $s1$에 도달했을 때, $r=1$을 받을 $r + \gamma G_{t+1}$ 기대값은

$$
(0.3 \times 1) + (0.7 \times 0) = 1.0
$$

  • 행동 $a0$를 해서 $s2$에 도달했을 때, $r=1$을 받을 $r + \gamma G_{t+1}$ 기댓값은

$$
(0.3 \times 1) + (0.3 \times 0) = 0.9
$$

이렇게 다음 상태에 따라 받을 것이라 기대되는 값의 합은 다음과 같이 구할 수 있다.

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

  • 행동 $a0$를 해서 $s1$에 도달했을 때, $r=-1$을 받을 $r + \gamma G_{t+1}$ 기댓값은

$$
(0.7 \times -1) + (0.7 \times 0) = -0.7
$$

  • 행동 $a0$를 해서 $s2$에 도달했을 때, $r=-1$을 받을 $r + \gamma G_{t+1}$ 기댓값은

$$
(0.7 \times -1) + (0.3 \times 0) = -0.7
$$

위와 마찬가지로 보상에 따라 받을 것이라 기대되는 값까지 고려하게 되면 다음과 같이 수식으로 표현할 수 있다.

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

현재까지 수식을 보면, 행동 $a0$에 의해서 받게될 보상의 기댓값으로 볼 수 있다. 마찬가지로 $a1$일 때도 동일하게 구하여, 이 $a0$, $a1$의 기댓값을 더하면 $s0$에서 받게될 보상의 합이 된다. 이 둘을 더하는 것을 일반적으로 수식에 더하게 되면

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

그리고 $v_\pi(s') = \mathbb{E}\pi\left [ G{t+1} | S_{t+1}=s''\right ]$이기 때문에, 정리하면 $v$에 대한 벨만 방정식이 된다.

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

책에서는 이러한 방정식을 다음과 같은 다이어그램으로 표현하며, backup diagram이라 부른다. (backup이라 부르는 이유는 강화학습에서 핵심인 backup operation이나 업데이트의 기초를 형성하는 관계를 그린 다이어그램이기 때문이라고 한다)

이러한 방식으로 상태 가치함수와 행동 가치함수 간의 관계식을 표현할 수 있다.

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

$$ q_\pi(s, a) = \sum_{s',r'}p(s',r|s,a)(r + v_\pi(s'))$$

다음 시간에는

강화학습의 핵심이라 할 수 있는 정책, 가치함수, 벨만 방정식에 대해서 공부했다. 다음 시간에는 최적의 정책, 최적의 가치함수는 어떤 것인지에 대해서 다룰 예정이다. 매일 매일 공부하고 바로 써야하다보니 오타나 잘못된 생각, 이상한 문맥 등을 정리하기가 어려워서 좀 아쉽다. 만약 내가 끝까지 다하게 된다면, 꼭 다시 돌아와서 정리하면 좋을 거 같다.