跳转至

3.1-如何改进策略

3.1 例子:如何改进策略?

图3.2: 一个展示策略改进的例子。

考虑图3.2所示的策略。这里,橙色和蓝色单元格分别表示禁止区域和目标区域。这里的策略不好,因为它在状态\(s_1\)中选择了\(a_2\)(向右)。我们如何改进现有的策略,以获得更好的策略?答案在于状态值和行动值。

  • 直觉: 直觉上很清楚,如果在\(s_1\)处选择\(a_3\)(向下)而不是\(a_2\)(向下),则策略可以改进。这是因为向下移动能够使智能体避免进入禁区。
  • 数学:上述直观可以通过计算状态值和行动值来实现。

首先,我们计算给定策略的状态值。特别是,该政策的贝尔曼方程是

\[\begin{aligned} v_{\pi}(s_1) &= -1 + \gamma v_{\pi}(s_2), \\ v_{\pi}(s_2) &= 1 + \gamma v_{\pi}(s_4), \\ v_{\pi}(s_3) &= 1 + \gamma v_{\pi}(s_4), \\ v_{\pi}(s_4) &= 1 + \gamma v_{\pi}(s_4). \end{aligned}\]

\(\gamma=0.9\),可以解得

\[\begin{aligned} v_\pi(s_4)&=v_\pi(s_3)=v_\pi(s_2)=10,\\ v_\pi(s_1)&=8 \end{aligned}\]

其次,可以计算状态\(s_1\)的行动值

\[\begin{aligned} &q_{\pi}(s_1, a_1) = -1 + \gamma v_{\pi}(s_1) = 6.2, \\ &q_{\pi}(s_1, a_2) = -1 + \gamma v_{\pi}(s_2) = 8, \\ &q_{\pi}(s_1, a_3) = 0 + \gamma v_{\pi}(s_3) = 9, \\ &q_{\pi}(s_1, a_4) = -1 + \gamma v_{\pi}(s_1) = 6.2, \\ &q_{\pi}(s_1, a_5) = 0 + \gamma v_{\pi}(s_1) = 7.2. \end{aligned}\]

显而易见,行动\(a_3\)具有最大的行动值:

\[q_{\pi}(s_1, a_3) \geq q_{\pi}(s_1, a_i), \quad \text{for all } i \neq 3.\]

因此,我们可以更新策略,在\(s_1\)处选择\(a_3\)

这个例子说明,如果我们通过选择具有最大行动值的行动来更新策略,则可以获得更好的策略。这是许多强化学习算法的基本思想。

这个例子非常简单,因为给定的策略只对状态\(s_1\)不利。如果该政策对其他状态也不利,那么选择具有最大行动值的行动仍然会产生更好的策略吗?此外,是否总是存在最优策略?最优政策是什么样的?我们将在本章中回答所有这些问题。