9 动态规划之策略迭代算法
在本篇中,我们将深入探讨强化学习中的策略迭代算法,这是动态规划的一种重要方法。在上一篇中,我们介绍了值迭代算法,并了解了如何通过计算状态值来优化策略。而在这一篇中,我们将重点关注如何通过“策略迭代”来直接改善策略。
策略与价值
在强化学习中,策略(Policy)是智能体在每个状态下所采取的行动的概率分布。策略可以是“确定性”的,即在某一状态下采取唯一的行动,也可以是“随机”的,即在某一状态下以一定概率随机选择行动。在策略迭代中,我们将交替进行策略评估和策略改进。
- 策略评估:给定一个策略,计算其在当前策略下每个状态的值。
- 策略改进:在评估基础上,通过选择最优的动作来改进该策略。
算法步骤
策略迭代算法的基本步骤如下:
- 初始化策略:随机选择一个初始策略。
- 策略评估:计算当前策略下每个状态的价值函数$V^\pi(s)$,直到收敛。
- 策略改进:通过选择使得价值函数最大的行动来改进策略,即
$$
\pi_{\text{new}}(s) = \arg\max_a Q(s, a)
$$
其中 $Q(s, a)$ 为动作价值函数。 - 重复步骤 2 和 3,直到策略不再改变。
案例:格子世界
假设我们有一个简单的格子世界,智能体在一个 $4 \times 4$ 的方格中行动。智能体的目标是从起始点(左上角)到达终点(右下角),在过程中获得奖励。我们设定在每个动作上都有一个$s$的奖励和一个小的惩罚。
环境设定
- 状态 $S$: 四个位置的格子(共16个状态)
- 动作 $A$: 上、下、左、右(4个动作)
- 奖励: 到达终点的奖励 +1,其它状态-0.01
算法实现
下面是策略迭代算法的简单代码实现:
1 | import numpy as np |
结果分析
运行上述代码后,我们可以得到智能体的最终策略和对应的状态值。智能体将会通过策略迭代找到从起始点到达终点的最佳路径。
总结
策略迭代算法通过交替进行策略评估和策略改进,可以有效地找到最优策略。相较于值迭代,策略迭代在许多情况下收敛更快,因为它在每一步都在不断优化 “所有状态”的策略。
在接下来的章节中,我们将继续探讨蒙特卡罗方法的基本原理,进一步丰富我们的强化学习知识体系。通过不同方法的对比与结合,帮助我们更深入地理解强化学习的核心思想。
9 动态规划之策略迭代算法