Skip to content

Commit

Permalink
docs:6.1 TD预测(二) 例 6.1 开车回家
Browse files Browse the repository at this point in the history
  • Loading branch information
qiwihui committed Apr 13, 2019
1 parent 8dce73c commit 78b8f8f
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 1 deletion.
2 changes: 1 addition & 1 deletion source/partI/chapter3/finite_markov_decision_process.rst
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ MDP是强化学习问题的数学理想化形式,可以对其进行精确的

3.1 个体环境接口
^^^^^^^^^^^^^^^^^^

MDP旨在直接构建从交互中学习以实现目标的问题。
学习者和决策者被称为 *个体(agent)*。它与之交互的东西,包括个体之外的所有东西,被称为 *环境*。
这些交互持续不断,个体选择动作同时环境响应那些动作并向个体呈现新情况 [1]_。
Expand Down
Binary file added source/partI/chapter6/images/figure-6.1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
62 changes: 62 additions & 0 deletions source/partI/chapter6/temporal_difference_learning.rst
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,64 @@ TD目标是估计原因有两个:它在(6.4)中对预期值进行采样,
:math:`V_t` 表示在TD误差(6.5)和TD更新(6.2)中在时间 :math:`t` 使用的状态值列表。
重做上面的推导以确定必须添加到TD误差总和的额外量,以便等于蒙特卡罗误差。

**例 6.1 开车回家** 每天下班回家后,你都会尝试预测回家需要多长时间。
当你离开办公室时,你会记下时间,星期几,天气以及其他可能相关的内容。
这个星期五你正好在6点钟离开,你估计要回家需要30分钟。当你到达你的车是6:05,你注意到开始下雨了。
在雨中交通通常较慢,所以你需要花费35分钟,或者总共40分钟。十五分钟后,你及时完成了旅程的高速公路部分。
当你驶出高速进入第二部分道路时,你将总旅行时间的估计值减少到35分钟。
不幸的是,此时你被困在一辆慢卡车后面,而且道路太窄而无法通过。
你最终不得不跟随卡车,直到6:40你转到住的小街。三分钟后你就回家了。因此,状态,时间和预测的顺序如下:

======================= ==================== ================= ===============
状态 经过时间(分钟) 预测到的时间 预计总时间
======================= ==================== ================= ===============
周五6点离开办公室 0 30 30
到达车,下雨 5 35 40
驶出高速公路 20 15 35
第二条路,在卡车后面 30 10 40
进入家的街道 40 3 43
到家 43 0 43
======================= ==================== ================= ===============

这个例子中的奖励是旅程每一段的经过时间 [1]_。我们不打折(:math:`\gamma=1`),因此每个状态的回报是从该状态开始的实际时间。
每个状态的价值是 *预期的* 时间。第二列数字给出了遇到的每个状态的当前估计值。

查看蒙特卡罗方法操作的一种简单方法是绘制序列上预测的总时间(最后一列),如图6.1(左)所示。
红色箭头表示常量 :math:`\alpha` MC方法(6.1)推荐的预测变化,其中 :math:`\alpha=1`。
这些正是每个状态的估计值(预测的行走时间)与实际返回(实际时间)之间的误差。
例如,当你离开高速公路时,你认为回家仅需15分钟,但实际上需要23分钟。
公式6.1适用于此点,并确定驶出公路后的估计时间的增量。
误差 :math:`G_t - V(S_t)` 此时为8分钟。假设步长参数 :math:`\alpha` 为 :math:`1/2`。
然后,由于这种经验,退出高速公路后的预计时间将向上修改四分钟。
在这种情况下,这可能是一个太大的变化;卡车可能只是一个不幸的中断。
无论如何,只有在你到家之后才能进行变更。只有在这一点上你才知道任何实际的回报。

.. figure:: images/figure-6.1.png

**图6.1** 通过蒙特卡罗方法(左)和TD方法(右)在开车回家示例中推荐的变化。

在学习开始之前,是否有必要等到最终结果已知?
假设在另一天你再次估计离开你的办公室时需要30分钟才能开车回家,但是你会陷入大规模的交通堵塞之中。
离开办公室后二十五分钟,你仍然在高速公路上等待。你现在估计还需要25分钟才能回家,共计50分钟。
当你在车流中等待时,你已经知道你最初估计的30分钟过于乐观了。
你必须等到回家才增加对初始状态的估计吗?根据蒙特卡罗的方法,你必须,因为你还不知道真正的回报。

另一方面,根据TD方法,你可以立即学习,将初始估计值从30分钟转移到50分。
事实上,每个估计值都会转移到紧随其后的估计值。
回到驾驶的第一天,图6.1(右)显示了TD规则(6.2)推荐的预测变化
(如果 :math:`\alpha=1`,这些是规则所做的更改)。
每个误差与预测随时间的变化成比例,即与预测的 *时序差分* 成比例。

除了在车流中等待你做点什么之外,还有几个计算原因可以解释为什么根据你当前的预测学习是有利的,
而不是等到你知道实际回报时才终止。我们将在下一节简要讨论其中的一些内容。

*练习6.2* 这是一个练习,以帮助你发展直觉,了解为什么TD方法通常比蒙特卡罗方法更有效。
考虑开车回家示例以及如何通过TD和蒙特卡罗方法解决它。你能想象一个TD更新平均比蒙特卡罗更新更好的情景吗?
举一个示例场景 - 过去经验和当前状态的描述 - 你期望TD更新更好。这里有一个提示:假设你有很多下班开车回家的经验。
然后你搬到一个新的建筑物和一个新的停车场(但你仍然在同一个地方进入高速公路)。现在你开始学习新建筑的预测。
在这种情况下,你能看出为什么TD更新可能会好得多,至少初始是这样吗?在原始场景中发生同样的事情可能吗?


6.2 TD预测方法的优势
---------------------

Expand Down Expand Up @@ -164,3 +222,7 @@ TD目标是估计原因有两个:它在(6.4)中对预期值进行采样,
书目和历史评论
---------------


.. [1]
如果这是一个控制问题,目的是最大限度地缩短旅行时间,那么我们当然会将奖励作为经过时间的 ** 影响。
但是因为我们只关注预测(策略评估),所以我们可以通过使用正数来保持简单。

0 comments on commit 78b8f8f

Please sign in to comment.