From a0b22c209c49f63c01c858f5c9562750509640bd Mon Sep 17 00:00:00 2001 From: wizardforcel <562826179@qq.com> Date: Tue, 29 Dec 2020 22:09:53 +0800 Subject: [PATCH] 2020-12-29 22:09:53 --- new/handson-rl-py/04.md | 10 +++++----- new/handson-rl-py/05.md | 2 +- new/handson-rl-py/11.md | 2 +- new/handson-rl-py/13.md | 2 +- new/handson-rl-py/14.md | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/new/handson-rl-py/04.md b/new/handson-rl-py/04.md index e952b944..d8cdc91c 100644 --- a/new/handson-rl-py/04.md +++ b/new/handson-rl-py/04.md @@ -188,11 +188,11 @@ print("Approximate value of pi is {}" .format(calculate_pi(points_inside_circle, # 首次访问蒙特卡洛 -如我们所见,在蒙特卡洛方法中,我们通过取平均收益来近似值函数。 但是在首次访问 MC 方法中,我们仅在剧集中首次访问状态时才对返回值进行平均。 例如,假设一个智能体正在玩蛇和梯子游戏,那么如果该智能体被蛇咬伤,它很有可能会返回到该状态。 当智能体重新访问状态时,我们不考虑平均回报。 我们仅在智能体首次访问该州时才考虑平均回报。 +如我们所见,在蒙特卡洛方法中,我们通过取平均收益来近似值函数。 但是在首次访问 MC 方法中,我们仅在剧集中首次访问状态时才对返回值进行平均。 例如,假设一个智能体正在玩蛇和梯子游戏,那么如果该智能体被蛇咬伤,它很有可能会返回到该状态。 当智能体重新访问状态时,我们不考虑平均回报。 我们仅在智能体首次访问该状态时才考虑平均回报。 # 每次访问蒙特卡洛 -在蒙特卡洛的每次访问中,我们平均将剧集中每次访问州的收益均值化。 考虑相同的蛇和梯子游戏示例:如果智能体在蛇咬之后返回到相同的状态,尽管智能体正在重新访问状态,但我们可以将其视为平均收益。 在这种情况下,我们平均每次智能体访问该州时的回报。 +在蒙特卡洛的每次访问中,我们平均将剧集中每次访问状态的收益均值化。 考虑相同的蛇和梯子游戏示例:如果智能体在蛇咬之后返回到相同的状态,尽管智能体正在重新访问状态,但我们可以将其视为平均收益。 在这种情况下,我们平均每次智能体访问该状态时的回报。 # 让我们使用蒙特卡洛玩二十一点 @@ -499,11 +499,11 @@ plot_blackjack(value, axes[0], axes[1]) 我们如何估计作用值? 还记得我们在第 3 章,“马尔可夫决策过程和动态规划”中学习的`Q`函数吗? 表示为`Q(s, a)`的`Q`函数用于确定特定状态下的动作有多好。 它基本上指定了状态-动作对。 -但是,这里出现了探索的问题。如果我们还没有处于状态状态值,我们如何知道状态状态值? 如果我们不采取所有可能的措施探索所有州,我们可能会错过丰厚的回报。 +但是,这里出现了探索的问题。如果我们还没有处于状态状态值,我们如何知道状态状态值? 如果我们不采取所有可能的措施探索所有状态,我们可能会错过丰厚的回报。 假设在二十一点游戏中,我们处于纸牌总数为 20 的状态。如果我们仅尝试**拿牌**动作,我们将获得负数奖励,我们将得到负的奖励。但是,如果我们尝试**停牌**动作,我们将获得积极的回报,这实际上是最好的状态。因此,每次进入此特定状态 ,我们站立而不是受到打击。 为了让我们知道哪个是最佳操作,我们必须探索每种状态下的所有可能操作以找到最佳值。 我们应该怎么做? -让我介绍一个名为**探索起始的蒙特卡洛**,这意味着对于每个剧集,我们都将随机状态作为初始状态开始并执行操作。 因此,如果我们有大量的剧集,我们可能会以所有可能的动作覆盖所有州。 它也称为 **MC-ES** 算法。 +让我介绍一个名为**探索起始的蒙特卡洛**,这意味着对于每个剧集,我们都将随机状态作为初始状态开始并执行操作。 因此,如果我们有大量的剧集,我们可能会以所有可能的动作覆盖所有状态。 它也称为 **MC-ES** 算法。 MC-ES 算法非常简单,如下所示: @@ -595,7 +595,7 @@ def epsilon_greedy_policy(state, epsilon): 3. 我们选择行为策略。 行为策略不是贪婪的,它可以选择任何状态-行为对。 4. 然后,我们开始我们的剧集,并根据我们的行为策略在`s`状态下执行动作`a`,并存储奖励。 我们重复此操作直到剧集结束。 -5. 现在,对于剧集中的每个州,我们执行以下操作: +5. 现在,对于剧集中的每个状态,我们执行以下操作: 1. 我们将计算回报`G`。 我们知道回报是折扣奖励的总和: `G = 折扣因子 * G + 奖励`。 2. 然后我们将`C(s, a)`更新为`C(s, a) + C(s, a) + w`。 3. 我们更新`Q(s, a)`: diff --git a/new/handson-rl-py/05.md b/new/handson-rl-py/05.md index 77a8bdc0..c1c7f9a2 100644 --- a/new/handson-rl-py/05.md +++ b/new/handson-rl-py/05.md @@ -105,7 +105,7 @@ V(s) = -0.0315 前面的公式与 TD 预测更新规则相似,只是有一点点差异。 我们将逐步详细介绍这一点。 Q 学习涉及的步骤如下: 1. 首先,我们将`Q`函数初始化为一些任意值 -2. 我们使用`ε`贪婪策略(`ε > 0`)从某个州采取了一项行动,并将其移至新的州 +2. 我们使用`ε`贪婪策略(`ε > 0`)从某个状态采取了一项行动,并将其移至新的状态 3. 我们通过遵循更新规则来更新先前状态的`Q`值: ![](img/00123.jpeg) diff --git a/new/handson-rl-py/11.md b/new/handson-rl-py/11.md index cd8fe7d5..865b7027 100644 --- a/new/handson-rl-py/11.md +++ b/new/handson-rl-py/11.md @@ -564,7 +564,7 @@ for i in range(no_of_episodes): ![](img/00345.jpeg) -![](img/00346.jpeg)使用访问频率`ρ[π]`而不是`ρ[π']`,也就是说,由于策略的变化,我们忽略了状态访问频率的变化。 简而言之,我们假设新旧策略的州访问频率均相同。 当我们计算`L[π]`的梯度时,相对于某些参数`θ`而言,这也会提高`η`,我们不确定要采取多少步骤。 +![](img/00346.jpeg)使用访问频率`ρ[π]`而不是`ρ[π']`,也就是说,由于策略的变化,我们忽略了状态访问频率的变化。 简而言之,我们假设新旧策略的状态访问频率均相同。 当我们计算`L[π]`的梯度时,相对于某些参数`θ`而言,这也会提高`η`,我们不确定要采取多少步骤。 Kakade 和 Langford 提出了一种新的策略更新方法,称为保守策略迭代,如下所示: diff --git a/new/handson-rl-py/13.md b/new/handson-rl-py/13.md index 54cd456b..ab15aba1 100644 --- a/new/handson-rl-py/13.md +++ b/new/handson-rl-py/13.md @@ -161,7 +161,7 @@ MAXQ 值函数分解是 HRL 中最常用的算法之一。 让我们看看 MAXQ # 逆强化学习 -那么,我们在 RL 中做了什么? 我们试图找到具有奖励函数的最优策略。 逆强化学习只是强化学习的逆,也就是说,给出了最优策略,我们需要找到奖励函数。 但是为什么反强化学习会有所帮助? 设计奖励函数不是一项简单的任务,而较差的奖励函数会导致智能体的不良行为。 我们并不总是知道适当的奖励函数,但我们知道正确的策略,即在每个州采取正确的行动。 因此,这种最佳策略由人类专家提供给智能体,智能体尝试学习奖励函数。 例如,考虑一个学习在真实环境中行走的智能体; 很难为将要执行的所有动作设计奖励函数。 取而代之的是,我们可以将人类专家的演示(最佳策略)提供给智能体,智能体将尝试学习奖励函数。 +那么,我们在 RL 中做了什么? 我们试图找到具有奖励函数的最优策略。 逆强化学习只是强化学习的逆,也就是说,给出了最优策略,我们需要找到奖励函数。 但是为什么反强化学习会有所帮助? 设计奖励函数不是一项简单的任务,而较差的奖励函数会导致智能体的不良行为。 我们并不总是知道适当的奖励函数,但我们知道正确的策略,即在每个状态采取正确的行动。 因此,这种最佳策略由人类专家提供给智能体,智能体尝试学习奖励函数。 例如,考虑一个学习在真实环境中行走的智能体; 很难为将要执行的所有动作设计奖励函数。 取而代之的是,我们可以将人类专家的演示(最佳策略)提供给智能体,智能体将尝试学习奖励函数。 RL 周围有各种改进和进步。 现在,您已经阅读完本书,可以开始探索强化学习的各种进步,并开始尝试各种项目。 学习和加强! diff --git a/new/handson-rl-py/14.md b/new/handson-rl-py/14.md index 1aad8ec4..85f67b71 100644 --- a/new/handson-rl-py/14.md +++ b/new/handson-rl-py/14.md @@ -40,7 +40,7 @@ 1. 当环境模型未知时,在 RL 中使用蒙特卡洛算法。 2. 请参阅“使用蒙特卡洛估计`pi`的值”部分。 3. 在蒙特卡洛预测中,我们通过取均值回报而不是期望回报来近似值函数。 -4. 在蒙特卡洛的每次访问中,我们平均将剧集中每次访问州的收益均值化。 但是在首次访问 MC 方法中,我们仅在剧集中首次访问状态时才对返回值进行平均。 +4. 在蒙特卡洛的每次访问中,我们平均将剧集中每次访问状态的收益均值化。 但是在首次访问 MC 方法中,我们仅在剧集中首次访问状态时才对返回值进行平均。 5. 请参阅“蒙特卡洛控制”部分。 6. 请参阅“策略上的蒙特卡洛控制”和“策略外的蒙特卡洛控制”部分 -- GitLab