[RL Notes] 策略和价值函数

1. 策略

  在 MDP 的每个时刻,智能体要在当前状态下选择要执行的动作,智能体根据状态选择动作的方式称为策略。更严格地,策略(policy)是从状态到选择每个动作的概率之间的映射。

  从一个状态映射到一个动作的策略称为确定性策略(deterministic policy)记做

\begin{equation}
\pi(s) = a \tag{1}
\end{equation}

其中 $\pi$ 表示策略,它将一个状态 $s$ 映射到一个动作 $a$。在确定性策略中,多个状态可以映射到同一个动作,但一个状态不能映射到多个动作;此外也允许一些动作没有被任何状态映射,这些动作在任何状态下都不会被选择。

  更一般地,随机性策略(stochastic policy)给出了在给定状态下选择各个动作的概率值,使用

\begin{equation}
\pi(a|s) \tag{2}
\end{equation}

表示策略 $\pi$ 在状态 $s$ 下选择动作 $a$ 的概率。$\pi(a|s)$ 是一个概率,满足 $\sum\limits_{a \in \mathcal A(s)}\pi(a|s) = 1$ 和 $\pi(a|s) \geq 0$。

  需要注意的是,策略只依赖于当前状态,式 $(1)$ 和式 $(2)$ 都体现了这一点。举例来说,如果一个策略是选择与上一个动作不同的动作,则这不是一个合法的策略,因为它依赖于上一个动作。策略只依赖于当前状态的要求不是对智能体的限制,而是对状态的要求——当前状态应包含智能体选择动作所需的全部信息。如果将上一个动作作为当前状态的一部分,前述策略就是合法的。

2. 价值函数

  为了评价智能体在使用策略 $\pi$ 时,在状态 $s$ 有多好,定义策略 $\pi$ 的状态价值函数(state-value function)$v_\pi(s)$ 为策略 $\pi$ 在状态 $s$ 下回报的期望

\begin{equation}
v_\pi(s) \doteq \mathbb{E}_\pi[G_t|S_t = s] \tag{3}
\end{equation}

其中 $\mathbb{E}_\pi[\cdot]$ 表示在给定策略 $\pi$ 时随机变量的期望值。状态价值函数表示了智能体从状态 $s$ 开始所能期望获得的未来收益。

  为了评价智能体在使用策略 $\pi$ 时,在状态 $s$ 下选择的动作 $a$ 有多好,定义策略 $\pi$ 的动作价值函数(action-value function)$q_\pi(s, a)$ 为策略 $\pi$ 在状态 $s$ 下执行动作 $a$ 之后回报的期望值

\begin{equation}
q_\pi(s, a) \doteq \mathbb{E}[G_t|S_t = s, A_t = a] \tag{4}
\end{equation}

  价值函数使用期望对未来的收益进行预测,一方面不必等待未来的收益实际发生就可以获知当前状态的好坏,另一方面通过期望汇总了未来各种可能的收益情况。使用价值函数可以很方便地评价不同策略的好坏。

  举例来说,在象棋游戏中,定义赢得游戏得 $1$ 分,其他动作得 $0$ 分,状态是棋盘上棋子的位置。仅从 $1$ 分和 $0$ 分这两个数值并不能知道智能体在游戏过程中到底下得怎么样,而通过价值函数则可以获得更多洞察。在这个例子中,策略 $\pi$ 的状态价值函数 $v_\pi(s)$ 为策略 $\pi$ 在状态 $s$ 下获胜的概率,即 $v_\pi(s) = \Pr(获胜)$;策略 $\pi$ 的动作价值函数 $q_\pi(s, a)$ 为策略 $\pi$ 在状态 $s$ 下选择动作 $a$ 获胜的概率。智能体依据策略 $\pi$ 走了一步棋后,进入状态 $s’$,假设 $v_\pi(s) = 0.34$,$v_\pi(s’) = 0.31$,此时 $s’$ 的价值低于 $s$ 的价值,说明在策略 $\pi$ 下获胜的概率下降了。