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\)不利。如果该政策对其他状态也不利,那么选择具有最大行动值的行动仍然会产生更好的策略吗?此外,是否总是存在最优策略?最优政策是什么样的?我们将在本章中回答所有这些问题。