diff --git a/source/partI/chapter3/finite_markov_decision_process.rst b/source/partI/chapter3/finite_markov_decision_process.rst index 433dd9d..1ea9b90 100644 --- a/source/partI/chapter3/finite_markov_decision_process.rst +++ b/source/partI/chapter3/finite_markov_decision_process.rst @@ -17,6 +17,7 @@ MDP是强化学习问题的数学理想化形式,可以对其进行精确的 在本章中,我们将介绍这种矛盾关系,并讨论它所暗示的一些权衡和挑战。 第17章介绍了在MDP之外进行强化学习的一些方法。 + 3.1 个体环境接口 ^^^^^^^^^^^^^^^^^^ ​ @@ -197,6 +198,7 @@ MDP框架是从相互作用的目标导向学习的问题中抽象出来的。 它应该有 :math:`s, a, s^\prime, r` 和 :math:`p(s^\prime,r|s,a)` 的列, 以及 :math:`p(s^\prime,r|s,a)>0` 的每个4元组的行。 + 3.2 目标和奖励 ^^^^^^^^^^^^^^ @@ -223,6 +225,7 @@ MDP框架是从相互作用的目标导向学习的问题中抽象出来的。 如果实现这些类型的子目标得到奖励,那么个体可能会找到一种方法来实现它们而不实现真正的目标。 例如,即使以失去游戏为代价,它也可能找到一种方法来获取对手的棋子。奖励信号是你与机器人沟通的 *方式*,而不是您希望 *如何* 实现 [6]_。 + 3.3 回报和情节 ^^^^^^^^^^^^^^^^ @@ -364,6 +367,7 @@ MDP框架是从相互作用的目标导向学习的问题中抽象出来的。 我们在本书的剩余部分中使用这些约定来简化符号,并表达情节和持续任务之间的近乎相似。 (之后,在第10章中,我们将介绍一个持续未衰减的形式。) + 3.5 策略和价值函数 ^^^^^^^^^^^^^^^^^^^^^^ @@ -395,9 +399,6 @@ MDP框架是从相互作用的目标导向学习的问题中抽象出来的。 其中 :math:`\mathbb{E}[\dot]` 表示个体遵循策略 :math:`\pi` 的随机变量的期望值, :math:`t` 是任意的时间步长。 请注意,如果有终止状态的话,其值一直为0。我们称函数 :math:`v_\pi` 是 *策略* :math:`\pi` *的状态—价值函数*。 - -同样,我们在政策⇡下定义采取行动a的价值,表示为q⇡(s,a),作为从s开始的预期收益,采取行动a,然后遵循政策⇡: - 同样,我们定义在策略 :math:`\pi`,状态 :math:`s` 下采取动作 :math:`a` 的价值, 表示为 :math:`q_\pi(s,a)`,作为从 :math:`s` 开始的,采取行动` a :math:`, 此后遵循策略 :math:`\pi` 的预期回报: @@ -475,7 +476,7 @@ MDP框架是从相互作用的目标导向学习的问题中抽象出来的。 从状态 :math:`B`,所有动作都会获得 :math:`+5` 的奖励,并将个体转到 :math:`B^\prime` 。 .. figure:: images/figure-3.2.png - :alt: figure-3.5 + :alt: figure-3.2 **图3.2** 网格世界的例子:等概率随机随机策略的特殊奖励动态(左)和状态值函数(右)。 @@ -500,8 +501,59 @@ MDP框架是从相互作用的目标导向学习的问题中抽象出来的。 **练习3.16** 现在考虑在情节任务,例如走迷宫中给所有的奖励增加一个常量 :math:`c`。 这是否会有什么影响,还是会像以上那些连续任务那样保持不变?是或者否,为什么? 举个例子。 -**示例3.6:高尔夫** +**示例3.6:高尔夫** 为了将打高尔夫球作为强化学习任务,我们将每次击球的惩罚(负回报)计算为 :math:`-1` ,直到我们将球打入洞中。 +状态是高尔夫球的位置。一个状态的值是从该位置到该洞的击球数量的负数。我们的动作是我们如何瞄准和摆球,当然还有我们选择的球杆。 +让我们把前者视为给定的,只考虑球杆的选择,我们假设是推杆或打出去。 +图3.3的上半部分显示了总是使用推杆的策略的可能的状态值函数 :math:`v_{putt}(s)` 。 +最终 *入洞* 作为终结状态值为 :math:`0` 。 +从绿色区域(球道的尽头)的任何地方,我们假设我们可以做一个推杆;这些地方状态值为 :math:`-1`。 +离开绿色区域,我们不能通过推杆入洞,值越大。 +如果我们可以通过推杆达到绿色区域状态,那么该状态必须具有比绿色区域小的值,即 :math:`-2`。 +为了简单起见,让我们假设我们可以非常精确和准确地推杆,但范围有限。 +这给了我们图中标有 :math:`-2` 的尖锐轮廓线;该线和绿色区域之间的所有位置都需要打两杆才能完成入洞。 +类似地,:math:`-2` 轮廓线的投放范围内的任何位置必须具有 :math:`-3` 的值,依此类推,可以获得图中所示的所有轮廓线。 +推杆不会让我们脱离沙地陷阱,所以它们的值为 :math:`-\infty` 。 +总的说,通过推杆,我们需要六杆从球座入洞。 + +.. figure:: images/figure-3.3.png + :width: 400px + :alt: figure-3.3 + + **图3.3:** 高尔夫球示例:用于推杆(上面)的状态价值函数和使用击打的最佳动作价值函数(下图)。 + +.. figure:: images/q_pi_backup_diagram.png + :align: right + :width: 200px + + :math:`q_\pi` 的备份图 + +**练习3.17** 动作价值,即 :math:`q_\pi` 的贝尔曼方程是什么? +必须根据状态—动作对 :math:`(s,a)` 的可能后继的动作价值 :math:`q_\pi(s^\prime,a^\prime)` +给出动作值 :math:`q_\pi(s,a)`。 +提示:对应于该方程的备用图在右图中给出。显示与(3.14)类似的方程序列,但用于动作价值。 + +**练习3.18** 状态的值取决于在该状态下可能的动作的值以及当前策略下每个动作的可能性。 +我们可以根据状态的小的备份图来考虑这一点,并考虑到每个可能的操作: + +.. figure:: images/exercise-3.18.png + :alt: exercise-3.18 + +根据给定 :math:`S_t=s` 的预期叶节点 :math:`q_\pi(s,a)` 的值, +给出对根节点 :math:`v_\pi(s)` 的值的对应于该直觉和图表的方程。 +这个方程式应该包含一个符合策略 :math:`\pi` 条件的预期。 +然后给出第二个等式,其中期望值以 :math:`\pi(a|s)` 方式明确地写出,使得等式中不出现预期值符号。 + +**练习3.19** 动作值 :math:`q_\pi(s,a)` 取决于预期的下一个奖励和剩余奖励的预期总和。 +再次,我们可以通过一个小的备份图来考虑这一点,这一个根源于一个动作(状态—动作对),并分支到可能的下一个状态: + +.. figure:: images/exercise-3.19.png + :alt: exercise-3.19 +给定 :math:`St = s` 和 :math:`A_t= a`, +根据预期的下一个奖励 :math:`R_{t+1}` 和预期的下一个状态值 :math:`v_\pi(S_{t+1})`, +给出与这个直觉和图表对应的方程式的动作值 :math:`q_\pi(s,a)`。 +这个方程式应该包括期望值,但 *不包括* 一个符合策略的条件。 +然后给出第二个方程,用(3.2)定义的 :math:`p(s^\prime,r|s,a)` 明确地写出期望值,使得方程式中不会出现预期值符号。 .. [1] 我们使用术语个体,环境和动作,而不是工程师术语控制器,受控系统(或工厂)和控制信号,因为它们对更广泛的受众有意义。 diff --git a/source/partI/chapter3/images/exercise-3.18.png b/source/partI/chapter3/images/exercise-3.18.png new file mode 100644 index 0000000..5157e6f Binary files /dev/null and b/source/partI/chapter3/images/exercise-3.18.png differ diff --git a/source/partI/chapter3/images/exercise-3.19.png b/source/partI/chapter3/images/exercise-3.19.png new file mode 100644 index 0000000..911f1d6 Binary files /dev/null and b/source/partI/chapter3/images/exercise-3.19.png differ diff --git a/source/partI/chapter3/images/exercise3.11.png b/source/partI/chapter3/images/exercise3.11.png deleted file mode 100644 index 785b1fb..0000000 Binary files a/source/partI/chapter3/images/exercise3.11.png and /dev/null differ diff --git a/source/partI/chapter3/images/exercise3.12.png b/source/partI/chapter3/images/exercise3.12.png deleted file mode 100644 index f1cf808..0000000 Binary files a/source/partI/chapter3/images/exercise3.12.png and /dev/null differ diff --git a/source/partI/chapter3/images/figure-3.3.png b/source/partI/chapter3/images/figure-3.3.png new file mode 100644 index 0000000..a7547c0 Binary files /dev/null and b/source/partI/chapter3/images/figure-3.3.png differ diff --git a/source/partI/chapter3/images/q_pi_backup_diagram.png b/source/partI/chapter3/images/q_pi_backup_diagram.png new file mode 100644 index 0000000..eda71bd Binary files /dev/null and b/source/partI/chapter3/images/q_pi_backup_diagram.png differ