본문으로 바로가기

Optimal Policies and Optimal Value Functions

강화학습 문제를 해결한다는 말은 단순히 말하자면 보상을 많이받도록 하는 정책을 찾는다는 뜻이다. 그럼 더 좋은 정책이란 무엇일까? 다시말해, 현재 정책($\pi$)이 이전 정책($\pi'$)보다 좋다는 것은 어떻게 결정할 수 있을까? finite MDP에서 가치함수를 통해 다음과 같이 말할 수 있다.

모든 상태($s \in \mathcal{S}$)에서 이전 정책의 가치보다 현재 정책의 가치가 더 높거나 같다면($v_\pi(s) \ge v_{\pi'}(s)$), 현재 정책이 이전 정책보다 좋다.($\pi \ge \pi'$)

분명 가장 좋은 정책이 최소한 하나는 있을 것이다. 이를 최적의 정책(optimal policy)이라 하며, $\pi_\ast$라 정의한다. 최적의 정책이 있다면 그에 따른 최적의 가치도 있을 것이다. 이를 다음과 같이 정의한다.

  • 최적의 상태 가치(optimal state-value function)

$$v_\ast(s) \doteq \max_{\pi} v_\pi(s)$$

  • 최적의 행동 가치(optimal action-value function)

$$q_\ast(s,a) \doteq \max_\pi q_\pi(s, a)$$

이전 시간에 가치함수간의 관계식을 세운것처럼 최적의 가치함수 간의 관계도 동일하게 성립한다.

$$q_\ast(s, a) = \mathbb{E}[R_{t+1} + \gamma v_\ast(S_{t+1}) | S_t=s, A_t=a]$$

이전 처럼 최적의 가치함수에 대한 벨만 방정식이 정의된다. 다만 다른 점은, 최적의 정책은 가치함수가 최고인 값을 선택할 것이므로, max가 들어간다는 점이다. 이러한 방정식을 벨만 최적 방정식(Bellman optimality equation)이라 부른다.

$v_\ast$에 대한 벨만 최적 방정식

$q_\ast$에 대한 벨만 최적 방정식

finite MDP에서, 위 등식은 당연히 하나의 해답을 가지고 있다. 각 상태마다 다음과 같은 등식이 있는 것이며, 상태가 n개면 n개의 등식이 존재하는 연립방정식이 된다. 환경의 dynamics $p$까지 알 고 있다면 다양한 방법을 사용해서 수학적으로 풀 수 있을 것이다.

$v_\ast$를 알고 있다면 당연히 이 높은 값을 가진 상태를 선택해 행동하면 된다. 그러려면 일단 다음 상태들을 살펴봐야 하고 이는 한 step의 차이다. 그래서 이를 one-step-ahead search라고 볼 수 있다. 다른 용어로 탐욕적(greedy)으로 행동을 선택한다고 얘기한다. 단기적으로 행동하는 것일 수 있으나 $v_\ast$에 의해 한 step 앞만 보는 것만으로 장기적인 면을 고려한 최적의 행동으로 볼 수 있다.

$q_\ast$를 알고 있다면, 더 쉬운 문제가 된다. 다음 상태에 대해 볼 필요 없이, 행동 가치가 가장 높은 것을 선택하면 되기 때문이다. 그러다보니 환경의 dynamics 또한 몰라도 가치 비교가 충분히 된다.

결국 벨만 최적 방정식은 최적의 정책을 찾도록 해주기에 강화학습 문제를 풀었다고 할 수 있지만, 이 수식을 직접적으로 푸는 것은 좋지 않다. 이는 exhaustive search(모든 경우의 수를 다 보는 탐색 방법)과 같다. 위 방법이 가능했던 것은 다음 3가지 가정이 성립되었기 때문이다.

  1. 환경의 dynamics를 정확히 알고 있다.
  2. 문제를 풀기 위해 충분한 울트라 슈퍼 컴퓨터를 가지고 있다.
  3. Markov property를 만족한다.

바둑에서 1과 3은 사실 크게 중요하지 않다. 정확하게 무슨 일이 일어날지(dynamic) 알 수 있고, Markov property도 만족하기 때문이다. 하지만 바둑 게임의 경우의 수($361!$)는 너무나 어마어마 하기 때문에 슈퍼컴퓨터로도 계산할 수가 없다. 그러니 이를 근사(approximate)할 방법이 필요하다.

다양하게 많은 방법이 있을 것이다. 그 중 하나는 heuristic serach로, 트리 형태로 일정 경우의 수까지만 본 다음 선택하는 것으로 $A^\ast$ 같은 게 이에 속한다. 다른 방법으로 $dynamic programming$이 있는데, 이 방법이 더 Bellman optimality equation 방법에 가깝다. 많은 강화학습이 이러한 방정식을 근사해서 푼 것이며, 이후 챕터에서 다룰 예정이다.