提交 228c2269 编写于 作者: W wizardforcel

2021-01-17 20:28:25

上级 6156f1d5
...@@ -465,7 +465,7 @@ with tqdm(total=100000, file=sys.stdout) as pbar: ...@@ -465,7 +465,7 @@ with tqdm(total=100000, file=sys.stdout) as pbar:
在此阶段,机器人(`meta_net`)学习如何使用数据向人类学习。 在元训练阶段之后,机器人可以通过将其学习到的先验知识与执行新技能的人员的一个视频相结合来获得新技能。 此方法包括两个阶段: 在此阶段,机器人(`meta_net`)学习如何使用数据向人类学习。 在元训练阶段之后,机器人可以通过将其学习到的先验知识与执行新技能的人员的一个视频相结合来获得新技能。 此方法包括两个阶段:
* 在元训练阶段,目标是使用人类和机器人的演示数据获取先验政策`φ` * 在元训练阶段,目标是使用人类和机器人的演示数据获取先验策略`φ`
* 使用学到的知识,然后快速学习如何仅用几个数据点来模仿新任务 * 使用学到的知识,然后快速学习如何仅用几个数据点来模仿新任务
一旦运行了上面的代码,您将获得以下输出: 一旦运行了上面的代码,您将获得以下输出:
......
...@@ -112,7 +112,7 @@ MDP 定义有五件事: ...@@ -112,7 +112,7 @@ MDP 定义有五件事:
既然我们已经学习了如何使用 MDP 来指定问题,那么代理需要制定解决方案。 此策略也可以称为策略。 既然我们已经学习了如何使用 MDP 来指定问题,那么代理需要制定解决方案。 此策略也可以称为策略。
### 政策和价值功能 ### 策略和价值功能
策略定义学习代理在给定时间的行为方式。 保单用希腊字母 Pi 表示。 该策略不能用公式定义; 它更多是基于直觉的概念。 策略定义学习代理在给定时间的行为方式。 保单用希腊字母 Pi 表示。 该策略不能用公式定义; 它更多是基于直觉的概念。
...@@ -132,9 +132,9 @@ MDP 定义有五件事: ...@@ -132,9 +132,9 @@ MDP 定义有五件事:
让我们举个例子。 让我们考虑通用状态`S0`。 现在我们需要预测在`a1``a2``a3`之间要采取什么行动才能获得最大的回报(累积折扣奖励)。 我们将此函数命名为`Q`。 我们的函数`Q`,将预测每个操作的预期收益(值(`V`))。 此`Q`函数也称为动作值函数,因为它考虑了状态和动作,并预测了它们各自的组合的预期收益。 让我们举个例子。 让我们考虑通用状态`S0`。 现在我们需要预测在`a1``a2``a3`之间要采取什么行动才能获得最大的回报(累积折扣奖励)。 我们将此函数命名为`Q`。 我们的函数`Q`,将预测每个操作的预期收益(值(`V`))。 此`Q`函数也称为动作值函数,因为它考虑了状态和动作,并预测了它们各自的组合的预期收益。
我们通常会选择最大值。 因此,这些最高限额将指导代理商到最后,这将是我们的政策。 请注意,我大部分时间都在说。 通常,在选择非最大动作值对时,我们会保持很小的随机机会。 我们这样做是为了提高模型的可探索性。 该随机探索机会的百分比称为 epsilon,该策略称为 epsilon-greedy 策略。 这是人们用来解决强化学习问题的最常见政策。 如果我们一直都只选择最大值,而不进行任何探索,则该策略简称为贪婪策略。 我们将在实施过程中同时使用这两种策略。 我们通常会选择最大值。 因此,这些最高限额将指导代理商到最后,这将是我们的策略。 请注意,我大部分时间都在说。 通常,在选择非最大动作值对时,我们会保持很小的随机机会。 我们这样做是为了提高模型的可探索性。 该随机探索机会的百分比称为 epsilon,该策略称为 epsilon-greedy 策略。 这是人们用来解决强化学习问题的最常见策略。 如果我们一直都只选择最大值,而不进行任何探索,则该策略简称为贪婪策略。 我们将在实施过程中同时使用这两种策略。
但是起初,我们可能不知道最佳作用值函数。 因此,由此产生的政策也将不是最佳政策。 我们将需要遍历动作值函数,并找到提供最佳回报的函数。 一旦找到它,我们将获得最优的`Q`。 最佳`Q`也称为 *Q ** 。 因此,我们将能够找到最优的 Pi,也称为 Pi * 但是起初,我们可能不知道最佳作用值函数。 因此,由此产生的策略也将不是最佳策略。 我们将需要遍历动作值函数,并找到提供最佳回报的函数。 一旦找到它,我们将获得最优的`Q`。 最佳`Q`也称为 *Q ** 。 因此,我们将能够找到最优的 Pi,也称为 Pi *
`Q`功能是代理必须学习的功能。 我们将使用神经网络来学习此功能,因为神经网络也是通用函数逼近器。 一旦有了行动价值功能,座席就可以了解问题的最佳策略,我们就可以完成目标。 `Q`功能是代理必须学习的功能。 我们将使用神经网络来学习此功能,因为神经网络也是通用函数逼近器。 一旦有了行动价值功能,座席就可以了解问题的最佳策略,我们就可以完成目标。
...@@ -148,7 +148,7 @@ MDP 定义有五件事: ...@@ -148,7 +148,7 @@ MDP 定义有五件事:
![Bellman equation](img/B09475_07_005.jpg) ![Bellman equation](img/B09475_07_005.jpg)
简而言之,Bellman 等式指出,每个点的收益等于下一时间步长的估计报酬加上随后状态的折现报酬。 可以肯定地说,某些政策的任何价值函数都遵循 Bellman 方程。 简而言之,Bellman 等式指出,每个点的收益等于下一时间步长的估计报酬加上随后状态的折现报酬。 可以肯定地说,某些策略的任何价值函数都遵循 Bellman 方程。
#### 寻找最佳 Q 函数 #### 寻找最佳 Q 函数
...@@ -184,7 +184,7 @@ MDP 定义有五件事: ...@@ -184,7 +184,7 @@ MDP 定义有五件事:
这里要注意的一件事是,我们将使用相同的 epsilon-greedy 策略在“步骤 6”中选择动作,并在“步骤 8”中更新相同的策略。 这种算法称为策略上算法。 从某种意义上讲,这是很好的,因为在我们观察和更新同一策略时,将更快地学习该策略。 它收敛非常快。 它也有一些缺点,即所学习的策略和用于决策的策略彼此紧密地联系在一起。 如果我们想要一个更具探索性的策略,以便在“步骤 6”中选择观察结果,并在“步骤 8”中更新更优化的策略,该怎么办? 这样的算法被称为非策略算法。 这里要注意的一件事是,我们将使用相同的 epsilon-greedy 策略在“步骤 6”中选择动作,并在“步骤 8”中更新相同的策略。 这种算法称为策略上算法。 从某种意义上讲,这是很好的,因为在我们观察和更新同一策略时,将更快地学习该策略。 它收敛非常快。 它也有一些缺点,即所学习的策略和用于决策的策略彼此紧密地联系在一起。 如果我们想要一个更具探索性的策略,以便在“步骤 6”中选择观察结果,并在“步骤 8”中更新更优化的策略,该怎么办? 这样的算法被称为非策略算法。
Q 学习是一种非策略算法,因此,在 Q 学习中,我们将有两个策略。 我们用来推断动作的策略将是 epsilon-greedy 策略,并且我们将其称为策略网络。 我们将使用更新步骤更新的网络将是我们的目标网络。 那只能由一个贪婪的策略来控制,这意味着我们将始终选择 epsilon 等于零的最大值。 我们不会对此政策采取随机措施。 我们这样做是为了使我们更快地朝着更高的价值前进。 我们将通过不时复制策略网的权重(例如每隔一集一次)来更新目标网的权重。 Q 学习是一种非策略算法,因此,在 Q 学习中,我们将有两个策略。 我们用来推断动作的策略将是 epsilon-greedy 策略,并且我们将其称为策略网络。 我们将使用更新步骤更新的网络将是我们的目标网络。 那只能由一个贪婪的策略来控制,这意味着我们将始终选择 epsilon 等于零的最大值。 我们不会对此策略采取随机措施。 我们这样做是为了使我们更快地朝着更高的价值前进。 我们将通过不时复制策略网的权重(例如每隔一集一次)来更新目标网的权重。
其背后的想法是不追逐一个移动的目标。 让我们举个例子:假设您想训练一头驴走路。 如果您坐在驴上并在其嘴前悬挂胡萝卜,驴可能会向前走,胡萝卜仍与驴保持相同的距离。 但是,与普遍的看法相反,这并不那么有效。 胡萝卜可能会随机反弹,并可能使驴远离其路径。 取而代之的是,通过从驴上下来并站在要驴来的地方使驴和胡萝卜脱钩,这似乎是一个更好的选择。 它提供了一个更稳定的学习环境。 其背后的想法是不追逐一个移动的目标。 让我们举个例子:假设您想训练一头驴走路。 如果您坐在驴上并在其嘴前悬挂胡萝卜,驴可能会向前走,胡萝卜仍与驴保持相同的距离。 但是,与普遍的看法相反,这并不那么有效。 胡萝卜可能会随机反弹,并可能使驴远离其路径。 取而代之的是,通过从驴上下来并站在要驴来的地方使驴和胡萝卜脱钩,这似乎是一个更好的选择。 它提供了一个更稳定的学习环境。
......
...@@ -101,9 +101,9 @@ class ReplayMemory(object): ...@@ -101,9 +101,9 @@ class ReplayMemory(object):
我们的环境是确定性的,因此为简单起见,此处介绍的所有方程式也都确定性地制定。 在强化学习文献中,它们还将包含对环境中随机转变的期望。 我们的环境是确定性的,因此为简单起见,此处介绍的所有方程式也都确定性地制定。 在强化学习文献中,它们还将包含对环境中随机转变的期望。
我们的目标是制定一种政策,尝试最大化折现的累积奖励\(R_ {t_0} = \ sum_ {t = t_0} ^ {\ infty} \ gamma ^ {t-t_0} r_t \),其中\ (R_ {t_0} \)也称为*返回*。 折扣\(\ gamma \)应该是\(0 \)\(1 \)之间的常数,以确保总和收敛。 这使得来自不确定的遥远未来的回报对我们的代理商而言不如可以对其充满信心的近期回报重要。 我们的目标是制定一种策略,尝试最大化折现的累积奖励\(R_ {t_0} = \ sum_ {t = t_0} ^ {\ infty} \ gamma ^ {t-t_0} r_t \),其中\ (R_ {t_0} \)也称为*返回*。 折扣\(\ gamma \)应该是\(0 \)\(1 \)之间的常数,以确保总和收敛。 这使得来自不确定的遥远未来的回报对我们的代理商而言不如可以对其充满信心的近期回报重要。
Q 学习的主要思想是,如果我们有一个函数\(Q ^ *:State \ times Action \ rightarrow \ mathbb {R} \),这可以告诉我们,如果我们取一个 在给定状态下采取行动,那么我们就可以轻松地制定出使我们的回报最大化的政策 Q 学习的主要思想是,如果我们有一个函数\(Q ^ *:State \ times Action \ rightarrow \ mathbb {R} \),这可以告诉我们,如果我们取一个 在给定状态下采取行动,那么我们就可以轻松地制定出使我们的回报最大化的策略
\[\pi^*(s) = \arg\!\max_a \ Q^*(s, a)\] \[\pi^*(s) = \arg\!\max_a \ Q^*(s, a)\]
...@@ -282,7 +282,7 @@ def plot_durations(): ...@@ -282,7 +282,7 @@ def plot_durations():
最后,是训练模型的代码。 最后,是训练模型的代码。
在这里,您可以找到执行优化步骤的`optimize_model`函数。 它首先对一批进行采样,将所有张量连接为一个张量,计算\(Q(s_t,a_t)\)\(V(s_ {t + 1})= \ max_a Q(s_ {t + 1}, a)\),并将其合并为我们的损失。 根据定义,如果\(s \)为终端状态,则设置\(V(s)= 0 \)。 我们还使用目标网络来计算\(V(s_ {t + 1})\),以提高稳定性。 目标网络的权重大部分时间保持冻结状态,但经常更新以政策网络的权重。 通常这是一组固定的步骤,但是为了简单起见,我们将使用情节。 在这里,您可以找到执行优化步骤的`optimize_model`函数。 它首先对一批进行采样,将所有张量连接为一个张量,计算\(Q(s_t,a_t)\)\(V(s_ {t + 1})= \ max_a Q(s_ {t + 1}, a)\),并将其合并为我们的损失。 根据定义,如果\(s \)为终端状态,则设置\(V(s)= 0 \)。 我们还使用目标网络来计算\(V(s_ {t + 1})\),以提高稳定性。 目标网络的权重大部分时间保持冻结状态,但经常更新以策略网络的权重。 通常这是一组固定的步骤,但是为了简单起见,我们将使用情节。
```py ```py
def optimize_model(): def optimize_model():
......
...@@ -191,7 +191,7 @@ TORCH_LIBRARY_IMPL(myops, Autocast, m) { ...@@ -191,7 +191,7 @@ TORCH_LIBRARY_IMPL(myops, Autocast, m) {
``` ```
如果`tensor`为 CUDA 和`float32`,则`cached_cast(kHalf, tensor)``tensor`强制转换为`float16`,否则,`tensor`保持不变(参见[资格政策](https://pytorch.org/docs/stable/amp.html#op-eligibility)对于本地自动播报的操作)。 这样可以确保网络是否在`float16``float32` CUDA 张量的任何混合形式上调用`mymatmul``mymatmul``float16`中运行。 同时,使用非 CUDA,整数类型或`float64`输入的对`mymatmul`的调用不受影响。 建议使用`cached_cast`在您自己的自动广播包装程序中遵循本机资格策略,但不是必需的。 例如,如果要对所有输入类型强制执行`float16`,则可以使用`return mymatmul(self.half(), other.half());`而不是使用`cached_cast` 如果`tensor`为 CUDA 和`float32`,则`cached_cast(kHalf, tensor)``tensor`强制转换为`float16`,否则,`tensor`保持不变(参见[资格策略](https://pytorch.org/docs/stable/amp.html#op-eligibility)对于本地自动播报的操作)。 这样可以确保网络是否在`float16``float32` CUDA 张量的任何混合形式上调用`mymatmul``mymatmul``float16`中运行。 同时,使用非 CUDA,整数类型或`float64`输入的对`mymatmul`的调用不受影响。 建议使用`cached_cast`在您自己的自动广播包装程序中遵循本机资格策略,但不是必需的。 例如,如果要对所有输入类型强制执行`float16`,则可以使用`return mymatmul(self.half(), other.half());`而不是使用`cached_cast`
请注意,就像我们的 autograd 内核一样,我们在重新分配之前从分配中排除`Autocast`键。 请注意,就像我们的 autograd 内核一样,我们在重新分配之前从分配中排除`Autocast`键。
......
...@@ -704,7 +704,7 @@ V(s) = E[all future rewards discounted | S(t)=s] ...@@ -704,7 +704,7 @@ V(s) = E[all future rewards discounted | S(t)=s]
关于值函数的更多详细信息将在第 3 章,“马尔可夫决策过程和部分可观察的 MDP”中进行介绍。 关于值函数的更多详细信息将在第 3 章,“马尔可夫决策过程和部分可观察的 MDP”中进行介绍。
# 最优政策模型 # 最优策略模型
策略被定义为指导代理在不同状态下进行操作选择的模型。 策略被表示为![](img/c48aecd5-2a66-4a73-89aa-1de763a4c651.png)。 ![](img/5f314fc5-890d-43ff-8d6d-6fa185064b3c.png)本质上是在特定状态下某种动作的概率: 策略被定义为指导代理在不同状态下进行操作选择的模型。 策略被表示为![](img/c48aecd5-2a66-4a73-89aa-1de763a4c651.png)。 ![](img/5f314fc5-890d-43ff-8d6d-6fa185064b3c.png)本质上是在特定状态下某种动作的概率:
...@@ -1015,6 +1015,6 @@ Libratus 是由卡内基梅隆大学的 Tuomas Sandholm 教授带领的团队设 ...@@ -1015,6 +1015,6 @@ Libratus 是由卡内基梅隆大学的 Tuomas Sandholm 教授带领的团队设
在本章中,我们涵盖了构建模块,例如包括逻辑回归的浅层和深度神经网络,单隐藏层神经网络,RNN,LSTM,CNN 及其其他变体。 针对这些主题,我们还介绍了多个激活函数,正向和反向传播的工作方式以及与深度神经网络训练相关的问题,例如消失和梯度爆炸。 在本章中,我们涵盖了构建模块,例如包括逻辑回归的浅层和深度神经网络,单隐藏层神经网络,RNN,LSTM,CNN 及其其他变体。 针对这些主题,我们还介绍了多个激活函数,正向和反向传播的工作方式以及与深度神经网络训练相关的问题,例如消失和梯度爆炸。
然后,我们涵盖了强化学习中非常基本的术语,我们将在接下来的章节中对其进行详细探讨。 这些是最优标准,即价值函数和政策。 我们还了解了一些强化学习算法,例如 Q 学习和 A3C 算法。 然后,我们在 TensorFlow 框架中介绍了一些基本计算,这是 OpenAI Gym 的简介,还讨论了强化学习领域的一些有影响力的先驱者和研究突破。 然后,我们涵盖了强化学习中非常基本的术语,我们将在接下来的章节中对其进行详细探讨。 这些是最优标准,即价值函数和策略。 我们还了解了一些强化学习算法,例如 Q 学习和 A3C 算法。 然后,我们在 TensorFlow 框架中介绍了一些基本计算,这是 OpenAI Gym 的简介,还讨论了强化学习领域的一些有影响力的先驱者和研究突破。
在下一章中,我们将对几个 OpenAI Gym 框架环境实现基本的强化学习算法,并更好地理解 OpenAI Gym。 在下一章中,我们将对几个 OpenAI Gym 框架环境实现基本的强化学习算法,并更好地理解 OpenAI Gym。
\ No newline at end of file
# 马尔可夫决策过程 # 马尔可夫决策过程
**马尔可夫** **决策过程**(通常称为 **MDP**)是一种加强学习的方法,可用于在网格世界环境中进行决策。 Gridworld 环境由网格形式的状态组成,例如 OpenAI Gym 的 FrozenLake-v0 环境中的状态,我们在上一章中试图进行研究和解决。 **马尔可夫决策过程**(通常称为 **MDP**)是一种加强学习的方法,可用于在网格世界环境中进行决策。 Gridworld 环境由网格形式的状态组成,例如 OpenAI Gym 的 FrozenLake-v0 环境中的状态,我们在上一章中试图进行研究和解决。
MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励来捕获网格形式的世界。 MDP 的解决方案称为策略,目标是为该 MDP 任务找到最佳策略。 MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励来捕获网格形式的世界。 MDP 的解决方案称为策略,目标是为该 MDP 任务找到最佳策略。
...@@ -19,8 +19,8 @@ MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励 ...@@ -19,8 +19,8 @@ MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励
如前所述,MDP 是网格世界环境中的强化学习方法,其中包含状态,动作和奖励集,遵循马尔可夫属性以获得最佳策略。 MDP 被定义为以下各项的集合: 如前所述,MDP 是网格世界环境中的强化学习方法,其中包含状态,动作和奖励集,遵循马尔可夫属性以获得最佳策略。 MDP 被定义为以下各项的集合:
* **状态**:S * **状态**:S
* **作**:A(s),A * **作**:A(s),A
* **转模型**:T(s,a,s')〜P(s'| s,a) * **转模型**:T(s,a,s')〜P(s'| s,a)
* **奖励**:R(s),R(s,a),R(s,a,s') * **奖励**:R(s),R(s,a),R(s,a,s')
* **策略**:![](img/ea08bda0-236b-4417-bbf3-48c6ceb4f985.png) ![](img/b8c1412b-ace7-48e4-bfd3-010b5e5d680f.png)是最佳策略 * **策略**:![](img/ea08bda0-236b-4417-bbf3-48c6ceb4f985.png) ![](img/b8c1412b-ace7-48e4-bfd3-010b5e5d680f.png)是最佳策略
...@@ -30,7 +30,7 @@ MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励 ...@@ -30,7 +30,7 @@ MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励
# 马尔可夫财产 # 马尔可夫财产
简而言之,根据**马尔可夫属性**,为了了解不久的将来的信息(例如,在时间 *t + 1* ),当前信息在时间`t`很重要。 简而言之,根据**马尔可夫属性**,为了了解不久的将来的信息(例如,在时间`t + 1`),当前信息在时间`t`很重要。
给定序列![](img/f450c939-685d-43f3-83b6-af42be2bb421.png),马尔可夫一阶说![](img/349504e1-61b2-451f-b85b-7f8937962dfb.png),即![](img/a1588718-a0ed-4ab7-a11a-9895f8491f64.png)仅取决于![](img/920e2c9e-87b2-4b04-a896-e4fb18297d29.png)。 因此,![](img/86055c73-c5e3-49cb-872f-98eccd8a9b07.png)将仅取决于![](img/606ca955-be45-4198-b8b3-fb2955777371.png)。 马尔可夫的第二阶表示![](img/6583c5db-7653-4282-aba5-73a95b23c786.png),即![](img/a1588718-a0ed-4ab7-a11a-9895f8491f64.png)仅取决于![](img/920e2c9e-87b2-4b04-a896-e4fb18297d29.png)和![](img/b76f9e59-3067-4778-98f5-2f9b5db8191e.png) 给定序列![](img/f450c939-685d-43f3-83b6-af42be2bb421.png),马尔可夫一阶说![](img/349504e1-61b2-451f-b85b-7f8937962dfb.png),即![](img/a1588718-a0ed-4ab7-a11a-9895f8491f64.png)仅取决于![](img/920e2c9e-87b2-4b04-a896-e4fb18297d29.png)。 因此,![](img/86055c73-c5e3-49cb-872f-98eccd8a9b07.png)将仅取决于![](img/606ca955-be45-4198-b8b3-fb2955777371.png)。 马尔可夫的第二阶表示![](img/6583c5db-7653-4282-aba5-73a95b23c786.png),即![](img/a1588718-a0ed-4ab7-a11a-9895f8491f64.png)仅取决于![](img/920e2c9e-87b2-4b04-a896-e4fb18297d29.png)和![](img/b76f9e59-3067-4778-98f5-2f9b5db8191e.png)
...@@ -38,7 +38,7 @@ MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励 ...@@ -38,7 +38,7 @@ MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励
# S 状态集 # S 状态集
**S 状态集**是构成环境的一组不同状态,表示为`s`。 状态是从环境获得的数据的特征表示。 因此,来自代理传感器的任何输入都可以在状态形成中发挥重要作用。 状态空间可以是离散的也可以是连续的。 从开始状态开始,必须以最优化的路径达到目标状态,而不会在不良状态下结束(例如下图所示的红色状态)。 **`S`状态集**是构成环境的一组不同状态,表示为`s`。 状态是从环境获得的数据的特征表示。 因此,来自代理传感器的任何输入都可以在状态形成中发挥重要作用。 状态空间可以是离散的也可以是连续的。 从开始状态开始,必须以最优化的路径达到目标状态,而不会在不良状态下结束(例如下图所示的红色状态)。
考虑以下网格世界,它具有 12 个离散状态,其中绿色网格是目标状态,红色是要避免的状态,黑色是一面碰到墙壁就会反弹的墙壁: 考虑以下网格世界,它具有 12 个离散状态,其中绿色网格是目标状态,红色是要避免的状态,黑色是一面碰到墙壁就会反弹的墙壁:
...@@ -50,15 +50,15 @@ MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励 ...@@ -50,15 +50,15 @@ MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励
**动作**是代理可以在特定状态下执行或执行的操作。 换句话说,动作是允许代理在给定环境中执行的一组操作。 像状态一样,动作也可以是离散的或连续的。 **动作**是代理可以在特定状态下执行或执行的操作。 换句话说,动作是允许代理在给定环境中执行的一组操作。 像状态一样,动作也可以是离散的或连续的。
考虑以下具有 12 个离散状态和 4 个离散动作(**UP****DOWN,RIGHT****LEFT**)的 gridworld 示例: 考虑以下具有 12 个离散状态和 4 个离散动作(`UP``DOWN``RIGHT``LEFT`)的 gridworld 示例:
![](img/0afe050d-5e8b-4dbf-82c0-be526f469140.png) ![](img/0afe050d-5e8b-4dbf-82c0-be526f469140.png)
前面的示例将动作空间显示为离散的设置空间,即 *a ![](img/3a5dea0e-c6ae-4ffb-868c-87b03fb08f4c.png) A* ,其中 *A = {上,下,右和左}* 。 也可以将其视为状态的函数,即 *a = A(s)*,其中根据状态函数来确定可能采取的行动。 前面的示例将动作空间显示为离散的设置空间,即`a ∈ A`,其中`A = {UP, DOWN, LEFT, RIGHT}`。 也可以将其视为状态的函数,即`a = A(s)`,其中根据状态函数来确定可能采取的行动。
# 过渡模型 # 过渡模型
过渡模型 *T(s,a,s')*是三个变量的函数,它们是当前状态(`s`),作用(`a`) 以及新状态(*的*),并定义了在环境中玩游戏的规则。 它给出了 *P(s'| s,a)*的概率,也就是说,假设代理采取了行动*,则该状态降落到新的 *s'*状态的概率。* 在给定状态下为*秒* 过渡模型`T(s, a, s')`是三个变量的函数,它们是当前状态(`s`),动作(`a`) 以及新状态(`s'`),并定义了在环境中玩游戏的规则。 它给出了`P(s' | s, a)`的概率,也就是说,假设代理采取了行动`a`,在给定状态`s`下降落到新的`s'`状态的概率
过渡模型在随机世界中起着至关重要的作用,与确定性世界的情况不同,在确定性世界中,除了确定的着陆状态之外,任何着陆状态的概率都为零。 过渡模型在随机世界中起着至关重要的作用,与确定性世界的情况不同,在确定性世界中,除了确定的着陆状态之外,任何着陆状态的概率都为零。
...@@ -66,20 +66,20 @@ MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励 ...@@ -66,20 +66,20 @@ MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励
![](img/86a85406-eeaf-450f-b93b-b11d8d1f3283.png) ![](img/86a85406-eeaf-450f-b93b-b11d8d1f3283.png)
由于动作 *a ![](img/04266671-8d5b-41d5-bc53-f0f0b07b29b2.png)*`A`其中 *A = {上,下,右和左}* 由于动作`a ∈ A`,其中`A = {UP, DOWN, LEFT, RIGHT}`
这两种情况的行为取决于某些因素: 这两种情况的行为取决于某些因素:
* **确定的环境**:在确定的环境中,如果您采取某种行动,例如说*向上*,则您肯定会以概率 1 执行该行动。 * **确定的环境**:在确定的环境中,如果您采取某种行动,例如说`UP`,则您肯定会以概率 1 执行该行动。
* **随机环境**:在随机环境中,如果您执行相同的操作(例如说 *UP* ),则有一定的概率说 0.8 可以实际执行给定的操作,而有 0.1 的概率可以执行 垂直于给定动作*向上*的动作(*左**右*)。 在此,对于 s 状态和 *UP* 动作转换模型, *T(s',UP,s)= P(s'| s,UP)= 0.8* * **随机环境**:在随机环境中,如果您执行相同的操作(例如说`UP`),则有一定的概率说 0.8 可以实际执行给定的操作,而有 0.1 的概率可以执行 垂直于给定动作`UP`的动作(`LEFT``RIGHT`)。 在此,对于 s 状态和`UP`动作转换模型,`T(s', UP, s) = P(s' | s, UP) = 0.8`
由于 *T(s,a,s')〜P(s'| s,a)*,因此新状态的概率仅取决于当前状态和操作,而与过去状态无关。 因此,过渡模型遵循一阶马尔可夫性质。 由于`T(s, a, s') ~ P(s' | s, a)`,因此新状态的概率仅取决于当前状态和操作,而与过去状态无关。 因此,过渡模型遵循一阶马尔可夫性质。
我们也可以说我们的宇宙也是一个随机环境,因为宇宙是由处于不同状态的原子组成的,这些原子由位置和速度定义。 每个原子执行的动作都会改变其状态,并导致宇宙发生变化。 我们也可以说我们的宇宙也是一个随机环境,因为宇宙是由处于不同状态的原子组成的,这些原子由位置和速度定义。 每个原子执行的动作都会改变其状态,并导致宇宙发生变化。
# 奖赏 # 奖赏
状态的**奖励**量化了进入状态的有用性。 有三种不同的形式来表示奖励,即 *R(s)**R(s,a)**R(s,a,s')* ,但它们都是等效的。 状态的**奖励**量化了进入状态的有用性。 有三种不同的形式来表示奖励,即`R(s)``R(s, a)``R(s, a, s')`,但它们都是等效的。
对于特定环境,领域知识在不同状态的奖励分配中起着重要作用,因为奖励中的细微变化对于找到 MDP 问题的最佳解决方案确实很重要。 对于特定环境,领域知识在不同状态的奖励分配中起着重要作用,因为奖励中的细微变化对于找到 MDP 问题的最佳解决方案确实很重要。
...@@ -90,7 +90,7 @@ MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励 ...@@ -90,7 +90,7 @@ MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励
延迟的报酬形成了远见规划的想法。 因此,该概念被用于计算不同状态的预期奖励。 我们将在后面的部分中对此进行讨论。 延迟的报酬形成了远见规划的想法。 因此,该概念被用于计算不同状态的预期奖励。 我们将在后面的部分中对此进行讨论。
# 政策 # 策略
到现在为止,我们已经解决了造成 MDP 问题的块,即状态,动作,过渡模型和奖励,现在是解决方案。 该策略是解决 MDP 问题的方法。 到现在为止,我们已经解决了造成 MDP 问题的块,即状态,动作,过渡模型和奖励,现在是解决方案。 该策略是解决 MDP 问题的方法。
...@@ -100,7 +100,7 @@ MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励 ...@@ -100,7 +100,7 @@ MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励
![](img/8b92a7d2-aa9e-465a-88d3-7880d412516e.png)被称为最佳策略,它使预期收益最大化。 在采取的所有策略中,最优策略是一种优化的策略,用于最大化一生中已收到或预期收到的奖励金额。 对于 MDP,生命周期没有尽头,您必须确定结束时间。 ![](img/8b92a7d2-aa9e-465a-88d3-7880d412516e.png)被称为最佳策略,它使预期收益最大化。 在采取的所有策略中,最优策略是一种优化的策略,用于最大化一生中已收到或预期收到的奖励金额。 对于 MDP,生命周期没有尽头,您必须确定结束时间。
因此,该政策不过是一个指南,它告诉您针对给定状态应采取的行动。 它不是计划,而是通过返回针对每个状态要采取的行动来揭示环境的基础计划。 因此,该策略不过是一个指南,它告诉您针对给定状态应采取的行动。 它不是计划,而是通过返回针对每个状态要采取的行动来揭示环境的基础计划。
# 奖励顺序-假设 # 奖励顺序-假设
...@@ -112,7 +112,7 @@ MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励 ...@@ -112,7 +112,7 @@ MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励
![](img/b8a7da56-da61-4a36-a9ff-098fc89c0451.png) ![](img/b8a7da56-da61-4a36-a9ff-098fc89c0451.png)
策略功能未考虑剩余时间。 如果是有限期的话,那么政策应该是 策略功能未考虑剩余时间。 如果是有限期的话,那么策略应该是
![](img/4eecac99-2630-4813-9c1f-df9712f7780b.png) ![](img/4eecac99-2630-4813-9c1f-df9712f7780b.png)
...@@ -185,7 +185,7 @@ MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励 ...@@ -185,7 +185,7 @@ MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励
其中![](img/74b40efa-128c-4241-b58d-ee317862e8d7.png)表示从状态序列获得的报酬的期望值,代理观察其是否遵循![](img/64edc6e8-2ff9-4cf7-89db-494345407621.png)策略。 因此,![](img/04d5cea0-7a4c-44bf-bbae-df26ebdc587a.png)输出具有最高预期奖励的![](img/151114d7-cb43-46c6-84d5-11a15df2050e.png)策略。 其中![](img/74b40efa-128c-4241-b58d-ee317862e8d7.png)表示从状态序列获得的报酬的期望值,代理观察其是否遵循![](img/64edc6e8-2ff9-4cf7-89db-494345407621.png)策略。 因此,![](img/04d5cea0-7a4c-44bf-bbae-df26ebdc587a.png)输出具有最高预期奖励的![](img/151114d7-cb43-46c6-84d5-11a15df2050e.png)策略。
同样,我们也可以计算状态为的策略**效用,也就是说,如果我们处于*的*状态,则给定![](img/97497aa9-7dfa-470c-9a95-40fa91cc8588.png)策略,则, *的*状态的![](img/f7c447e9-5546-4220-9ec5-32ed98ba141b.png)政策,即![](img/9c937080-8ae6-47a7-919b-4778f5046829.png)将是从该状态开始的预期收益** 同样,我们也可以计算状态为的策略效用,也就是说,如果我们处于`s`状态,则给定![](img/97497aa9-7dfa-470c-9a95-40fa91cc8588.png)策略,则, `s`状态的![](img/f7c447e9-5546-4220-9ec5-32ed98ba141b.png)策略,即![](img/9c937080-8ae6-47a7-919b-4778f5046829.png)将是从该状态开始的预期收益
![](img/c99b8ca1-0cfb-419a-bc57-c9de97773b37.png) ![](img/c99b8ca1-0cfb-419a-bc57-c9de97773b37.png)
...@@ -197,13 +197,13 @@ MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励 ...@@ -197,13 +197,13 @@ MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励
其中, *T(s,a,s')*是转移概率,即 *P(s'| s,a)**U(s')[ 在对**状态采取*动作后,是新着陆状态的实用程序。 其中, *T(s,a,s')*是转移概率,即 *P(s'| s,a)**U(s')[ 在对**状态采取*动作后,是新着陆状态的实用程序。
![](img/c7961616-4973-4920-969e-2ac20e4661b1.png)指的是针对特定行动采取的所有可能的新状态结果的总和,然后无论哪个行动给出了![](img/bde26e3c-33c6-446d-90be-164102224f37.png)的最大值,该最大值被认为是最优政策的一部分,因此, 状态由以下 **Bellman 方程**给出, ![](img/c7961616-4973-4920-969e-2ac20e4661b1.png)指的是针对特定行动采取的所有可能的新状态结果的总和,然后无论哪个行动给出了![](img/bde26e3c-33c6-446d-90be-164102224f37.png)的最大值,该最大值被认为是最优策略的一部分,因此, 状态由以下 **Bellman 方程**给出,
![](img/0ef93e7c-5cc5-45ab-8baf-db2a07bd9e29.png) ![](img/0ef93e7c-5cc5-45ab-8baf-db2a07bd9e29.png)
其中,![](img/adb4cb12-b671-4248-8b74-0dc2b334b995.png)是即时奖励,![](img/c41ab863-e019-4bc7-ad8d-7530f9e0190b.png)是来自未来的奖励,也就是说,如果采取行动 a,代理可以从给定的 s 状态到达的 s 状态的贴现效用。 其中,![](img/adb4cb12-b671-4248-8b74-0dc2b334b995.png)是即时奖励,![](img/c41ab863-e019-4bc7-ad8d-7530f9e0190b.png)是来自未来的奖励,也就是说,如果采取行动 a,代理可以从给定的 s 状态到达的 s 状态的贴现效用。
# 解决 Bellman 方程以找到政策 # 解决 Bellman 方程以找到策略
假设在给定的环境中我们有`n`个状态,如果我们看到 Bellman 方程, 假设在给定的环境中我们有`n`个状态,如果我们看到 Bellman 方程,
...@@ -578,7 +578,7 @@ After learning completion printing the utilities for each states below from stat ...@@ -578,7 +578,7 @@ After learning completion printing the utilities for each states below from stat
最大值为 *u [s_new = 15] =* *1.0* ,因此,采取的措施为 *RIGHT**s_new = 15* 最大值为 *u [s_new = 15] =* *1.0* ,因此,采取的措施为 *RIGHT**s_new = 15*
因此,我们的政策包含 *DOWN**DOWN**RIGHT**DOWN**RIGHT**RIGHT* 通过避开空穴状态(5、7、11、12)从 *s = 0(开始状态)*到达 *s = 15(目标状态)* 因此,我们的策略包含 *DOWN**DOWN**RIGHT**DOWN**RIGHT**RIGHT* 通过避开空穴状态(5、7、11、12)从 *s = 0(开始状态)*到达 *s = 15(目标状态)*
# 概要 # 概要
......
# 政策梯度 # 策略梯度
到目前为止,我们已经看到了如何使用基于价值的方法从价值函数中派生隐式策略。 在这里,代理将尝试直接学习策略。 做法是相似的,任何有经验的代理人都会在目睹之后更改政策 到目前为止,我们已经看到了如何使用基于价值的方法从价值函数中派生隐式策略。 在这里,代理将尝试直接学习策略。 做法是相似的,任何有经验的代理人都会在目睹之后更改策略
价值迭代,策略迭代和 Q 学习属于通过动态编程解决的基于价值的方法,而策略优化方法则涉及策略梯度和该知识与策略迭代的结合,从而产生了行动者批判算法。 价值迭代,策略迭代和 Q 学习属于通过动态编程解决的基于价值的方法,而策略优化方法则涉及策略梯度和该知识与策略迭代的结合,从而产生了行动者批判算法。
...@@ -8,20 +8,20 @@ ...@@ -8,20 +8,20 @@
![](img/783c3d44-900b-4334-a5e6-b4a2a297a1a8.png) ![](img/783c3d44-900b-4334-a5e6-b4a2a297a1a8.png)
因此,基于价值的方法学习了价值函数,我们得出了一个隐式策略,但是使用基于策略的方法,就不会学习任何价值函数,而直接学习了该策略。 由于我们同时学习了价值功能和政策,而行为者批评方法更为先进,而网络学习价值功能则充当了作为参与者的政策网络的批评者。 在本章中,我们将深入研究基于策略的方法。 因此,基于价值的方法学习了价值函数,我们得出了一个隐式策略,但是使用基于策略的方法,就不会学习任何价值函数,而直接学习了该策略。 由于我们同时学习了价值功能和策略,而行为者批评方法更为先进,而网络学习价值功能则充当了作为参与者的策略网络的批评者。 在本章中,我们将深入研究基于策略的方法。
我们将在本章介绍以下主题: 我们将在本章介绍以下主题:
* 政策优化方法 * 策略优化方法
* 为什么要采用政策优化方法? * 为什么要采用策略优化方法?
* 政策目标功能 * 策略目标功能
* 时差规则 * 时差规则
* 政策梯度 * 策略梯度
* 使用策略梯度的 Agent 学习 Pong * 使用策略梯度的 Agent 学习 Pong
# 政策优化方法 # 策略优化方法
策略优化方法的目标是找到随机策略![](img/e183d447-5314-4850-9e50-21a8888bf8c6.png),它是针对给定状态的操作分布,该状态使期望的奖励总和最大化。 它旨在直接找到该政策。 基本概述是创建一个神经网络(即策略网络),该网络处理一些状态信息并输出代理可能采取的行动的分布。 策略优化方法的目标是找到随机策略![](img/e183d447-5314-4850-9e50-21a8888bf8c6.png),它是针对给定状态的操作分布,该状态使期望的奖励总和最大化。 它旨在直接找到该策略。 基本概述是创建一个神经网络(即策略网络),该网络处理一些状态信息并输出代理可能采取的行动的分布。
策略优化的两个主要组成部分是: 策略优化的两个主要组成部分是:
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
因此,由于随机策略,我们有一个平滑的优化问题,可以应用梯度下降来获得良好的局部最优,从而导致最优策略。 因此,由于随机策略,我们有一个平滑的优化问题,可以应用梯度下降来获得良好的局部最优,从而导致最优策略。
# 为什么要采用政策优化方法? # 为什么要采用策略优化方法?
在本节中,我们将介绍策略优化方法相对于基于价值的方法的优缺点。 优点如下: 在本节中,我们将介绍策略优化方法相对于基于价值的方法的优缺点。 优点如下:
...@@ -48,11 +48,11 @@ ...@@ -48,11 +48,11 @@
与基于策略的方法相关的缺点如下: 与基于策略的方法相关的缺点如下:
* 收敛到局部而不是全局最优 * 收敛到局部而不是全局最优
* 政策评估效率低下且差异很大 * 策略评估效率低下且差异很大
我们将在本章后面讨论解决这些缺点的方法。 现在,让我们集中讨论对随机策略的需求。 我们将在本章后面讨论解决这些缺点的方法。 现在,让我们集中讨论对随机策略的需求。
# 为什么采用随机政策 # 为什么采用随机策略
让我们看两个例子,这些例子将解释基于价值方法将随机策略与接近确定性策略相结合的重要性。 让我们看两个例子,这些例子将解释基于价值方法将随机策略与接近确定性策略相结合的重要性。
...@@ -97,7 +97,7 @@ ...@@ -97,7 +97,7 @@
因此,从前面的示例中,我们已经知道,每当发生状态别名时,随机策略都可以执行得更好。 因此,只要存在状态混叠的情况(即环境的表示),就会部分观察状态(例如,您处于部分可观察的马尔可夫决策过程中)或函数逼近器使用状态的特征,这会限制 从环境的整体角度来看,使用基于随机策略的基于策略的方法要比基于价值的方法要好。 因此,从前面的示例中,我们已经知道,每当发生状态别名时,随机策略都可以执行得更好。 因此,只要存在状态混叠的情况(即环境的表示),就会部分观察状态(例如,您处于部分可观察的马尔可夫决策过程中)或函数逼近器使用状态的特征,这会限制 从环境的整体角度来看,使用基于随机策略的基于策略的方法要比基于价值的方法要好。
# 政策目标功能 # 策略目标功能
现在让我们讨论如何优化策略。 在策略方法中,我们的主要目标是具有参数向量![](img/7f80ae4c-023b-41eb-afe0-4adc03aeaa6f.png)的给定策略![](img/fba31d95-dfc8-484d-89a8-3f18a2a052a1.png)找到参数向量的最佳值。 为了测量哪个最好,我们针对参数向量![](img/1d265c8a-58fb-47ad-a899-332ce8ed4b57.png)的不同值测量![](img/f7d09ac3-d177-4d26-be11-40d62ddd2498.png)策略![](img/7eff98de-883b-4dc2-91b2-bcf5345e6d21.png)的质量。 现在让我们讨论如何优化策略。 在策略方法中,我们的主要目标是具有参数向量![](img/7f80ae4c-023b-41eb-afe0-4adc03aeaa6f.png)的给定策略![](img/fba31d95-dfc8-484d-89a8-3f18a2a052a1.png)找到参数向量的最佳值。 为了测量哪个最好,我们针对参数向量![](img/1d265c8a-58fb-47ad-a899-332ce8ed4b57.png)的不同值测量![](img/f7d09ac3-d177-4d26-be11-40d62ddd2498.png)策略![](img/7eff98de-883b-4dc2-91b2-bcf5345e6d21.png)的质量。
...@@ -119,7 +119,7 @@ ...@@ -119,7 +119,7 @@
到目前为止,我们知道基于策略的强化学习是一个优化问题,目标是找到使![](img/29b8bcc8-8899-4036-915c-da44b0572d00.png)最大化的![](img/ebff45ff-12c2-44e0-bda5-21cde9d251b6.png)。 同样,在这里,我们将使用基于梯度的方法进行优化。 使用基于梯度的优化的原因是要获得更高的效率,因为与无梯度方法相比,梯度指向了更高效率的方向。 到目前为止,我们知道基于策略的强化学习是一个优化问题,目标是找到使![](img/29b8bcc8-8899-4036-915c-da44b0572d00.png)最大化的![](img/ebff45ff-12c2-44e0-bda5-21cde9d251b6.png)。 同样,在这里,我们将使用基于梯度的方法进行优化。 使用基于梯度的优化的原因是要获得更高的效率,因为与无梯度方法相比,梯度指向了更高效率的方向。
让衡量政策质量的![](img/e692d5f7-a0f4-429d-88b9-76841097db58.png)成为我们的政策目标功能。 因此,策略梯度算法通过相对于参数![](img/ea8c20d8-5c4c-48ed-92eb-d67c4fce01c2.png)提升策略的梯度,在![](img/2db17489-4871-4766-aecf-8ceb59e3588f.png)中寻找局部最大值。 这是因为我们的目标是使![](img/8fa96eec-d05a-4d08-823a-c94a2f12d1f2.png)相对于![](img/a785ed7b-74a1-4b8c-a661-44cbe24676b7.png)最大化,因此我们进行了梯度上升,其中 让衡量策略质量的![](img/e692d5f7-a0f4-429d-88b9-76841097db58.png)成为我们的策略目标功能。 因此,策略梯度算法通过相对于参数![](img/ea8c20d8-5c4c-48ed-92eb-d67c4fce01c2.png)提升策略的梯度,在![](img/2db17489-4871-4766-aecf-8ceb59e3588f.png)中寻找局部最大值。 这是因为我们的目标是使![](img/8fa96eec-d05a-4d08-823a-c94a2f12d1f2.png)相对于![](img/a785ed7b-74a1-4b8c-a661-44cbe24676b7.png)最大化,因此我们进行了梯度上升,其中
为![](img/029690bc-9836-48b8-b4c6-2106aa3a2a32.png)的参数的增量如下: 为![](img/029690bc-9836-48b8-b4c6-2106aa3a2a32.png)的参数的增量如下:
![](img/9ff648e7-9f6f-4a44-a52f-7d749cb6e1cf.png) ![](img/9ff648e7-9f6f-4a44-a52f-7d749cb6e1cf.png)
...@@ -244,7 +244,7 @@ Episode T ...@@ -244,7 +244,7 @@ Episode T
这满足前面两个条件,并且可以合并![](img/4b1123cb-72a4-481e-81e9-6835853ffc68.png)的任何值。 这满足前面两个条件,并且可以合并![](img/4b1123cb-72a4-481e-81e9-6835853ffc68.png)的任何值。
# 政策梯度 # 策略梯度
根据策略梯度定理,对于先前指定的策略目标函数和任何可微分策略![](img/20afea81-2790-4090-9aa2-1760249c17fd.png),策略梯度如下: 根据策略梯度定理,对于先前指定的策略目标函数和任何可微分策略![](img/20afea81-2790-4090-9aa2-1760249c17fd.png),策略梯度如下:
...@@ -252,11 +252,11 @@ Episode T ...@@ -252,11 +252,11 @@ Episode T
下一节显示了使用基于蒙特卡洛策略梯度的方法更新参数的步骤。 下一节显示了使用基于蒙特卡洛策略梯度的方法更新参数的步骤。
# 蒙特卡洛政策梯度 # 蒙特卡洛策略梯度
**蒙特卡洛策略梯度**方法中,我们使用随机梯度上升方法更新参数,并按照策略梯度定理进行更新,并使用![](img/1181ceb5-bd76-4d0f-9b7c-d232ea3145ff.png)作为![](img/7b469909-8042-48f5-a02f-8b3131c036b6.png)的无偏样本。 在此,![](img/ac53328a-b0d7-4305-a938-3e4c23fc3c85.png)是从该时间步开始的累计奖励。 **蒙特卡洛策略梯度**方法中,我们使用随机梯度上升方法更新参数,并按照策略梯度定理进行更新,并使用![](img/1181ceb5-bd76-4d0f-9b7c-d232ea3145ff.png)作为![](img/7b469909-8042-48f5-a02f-8b3131c036b6.png)的无偏样本。 在此,![](img/ac53328a-b0d7-4305-a938-3e4c23fc3c85.png)是从该时间步开始的累计奖励。
蒙特卡洛政策梯度法如下: 蒙特卡洛策略梯度法如下:
```py ```py
Initialize arbitrarily Initialize arbitrarily
...@@ -306,7 +306,7 @@ end for ...@@ -306,7 +306,7 @@ end for
Output : final Output : final
``` ```
因此,我们可以看到参与者评论家既具有基于价值的优化又具有基于策略的优化。 因此,在采用蒙特卡洛政策梯度法的情况下,政策改进会贪婪地进行。 但是在演员批评家中,演员通过按照批评家的方向采取措施来更新政策参数,以便制定更好的政策 因此,我们可以看到参与者评论家既具有基于价值的优化又具有基于策略的优化。 因此,在采用蒙特卡洛策略梯度法的情况下,策略改进会贪婪地进行。 但是在演员批评家中,演员通过按照批评家的方向采取措施来更新策略参数,以便制定更好的策略
# 使用基线减少差异 # 使用基线减少差异
...@@ -328,7 +328,7 @@ Output : final ...@@ -328,7 +328,7 @@ Output : final
因此,通过使用基线函数,期望值受到方差降低的控制,而方向没有任何变化。 因此,通过使用基线函数,期望值受到方差降低的控制,而方向没有任何变化。
# 香草政策梯度 # 香草策略梯度
在常规策略梯度方法中,目标是使用策略梯度估计和更好的基线估计来更新策略。 在常规策略梯度方法中,目标是使用策略梯度估计和更好的基线估计来更新策略。
...@@ -376,7 +376,7 @@ end for ...@@ -376,7 +376,7 @@ end for
在输入 Python 代码之前,让我们放下步骤。 它们如下: 在输入 Python 代码之前,让我们放下步骤。 它们如下:
1. 初始化随机策略。 1. 初始化随机策略。
2. 对于给定的当前政策,我们将通过以下方式收集不同的样本轨迹(展示): 2. 对于给定的当前策略,我们将通过以下方式收集不同的样本轨迹(展示):
1. 运行游戏的一个情节并捕获该情节的轨迹。 1. 运行游戏的一个情节并捕获该情节的轨迹。
2. 同样,收集一批轨迹,如下所示: 2. 同样,收集一批轨迹,如下所示:
...@@ -607,6 +607,6 @@ while True: ...@@ -607,6 +607,6 @@ while True:
# 概要 # 概要
在本章中,我们介绍了强化学习中最著名的算法,策略梯度和参与者批评算法。 在制定政策梯度以加强学习中更好的基准测试方面,正在进行大量研究。 政策梯度的进一步研究包括**信任区域策略优化****TRPO**),**自然政策梯度****深度依赖策略梯度****DDPG**),这些内容不在本书的讨论范围之内。 在本章中,我们介绍了强化学习中最著名的算法,策略梯度和参与者批评算法。 在制定策略梯度以加强学习中更好的基准测试方面,正在进行大量研究。 策略梯度的进一步研究包括**信任区域策略优化****TRPO**),**自然策略梯度****深度依赖策略梯度****DDPG**),这些内容不在本书的讨论范围之内。
在下一章中,我们将研究 Q 学习的基础知识,应用深度神经网络以及更多技术。 在下一章中,我们将研究 Q 学习的基础知识,应用深度神经网络以及更多技术。
\ No newline at end of file
...@@ -93,9 +93,9 @@ Repeat forever: ...@@ -93,9 +93,9 @@ Repeat forever:
如果我们希望我们的 AI 代理始终选择最大化折扣未来奖励的行动,那么我们需要某种时间差异学习。 为此,我们需要定义一个函数 Q,该函数表示当我们在状态`s`上执行动作`a`时最大的未来折扣。 因此,Q 函数表示给定状态下的动作质量。 使用它,我们可以通过仅了解当前状态和操作来估算最终得分,而在此之后无需进行任何操作。 因此,目标将是对具有最高 Q 值的状态采取该措施。 因此,我们必须通过称为 Q 学习的过程来学习此 Q 函数。 如果我们希望我们的 AI 代理始终选择最大化折扣未来奖励的行动,那么我们需要某种时间差异学习。 为此,我们需要定义一个函数 Q,该函数表示当我们在状态`s`上执行动作`a`时最大的未来折扣。 因此,Q 函数表示给定状态下的动作质量。 使用它,我们可以通过仅了解当前状态和操作来估算最终得分,而在此之后无需进行任何操作。 因此,目标将是对具有最高 Q 值的状态采取该措施。 因此,我们必须通过称为 Q 学习的过程来学习此 Q 函数。
# 政策内和政策外学习 # 策略内和策略外学习
顾名思义,**脱离策略**学习是独立于代理行为的最优策略学习。 因此,您不需要一开始就使用特定的策略,并且即使通过随机动作开始,代理也可以学习最佳策略,最终收敛到最佳策略。 Q 学习是非政策学习的一个例子。 顾名思义,**脱离策略**学习是独立于代理行为的最优策略学习。 因此,您不需要一开始就使用特定的策略,并且即使通过随机动作开始,代理也可以学习最佳策略,最终收敛到最佳策略。 Q 学习是非策略学习的一个例子。
另一方面,**基于策略的**学习通过执行当前策略并通过探索方法对其进行更新来学习最佳策略。 因此,基于策略的学习取决于开始时的策略。 SARSA 算法是基于策略学习的示例。 另一方面,**基于策略的**学习通过执行当前策略并通过探索方法对其进行更新来学习最佳策略。 因此,基于策略的学习取决于开始时的策略。 SARSA 算法是基于策略学习的示例。
...@@ -156,7 +156,7 @@ end ...@@ -156,7 +156,7 @@ end
| **探索** | **操作** | | **探索** | **操作** |
| 除了当前的最佳动作之外,随机选择其他动作,并希望获得更好的回报。 | 选择当前的最佳操作而不尝试其他操作。 | | 除了当前的最佳动作之外,随机选择其他动作,并希望获得更好的回报。 | 选择当前的最佳操作而不尝试其他操作。 |
因此,难题是 AI 是仅根据当前最佳策略基于动作信任已获悉的 Q 值,还是应该随机尝试其他动作以希望获得更好的回报,从而改善 Q 值,因此, 得出更好的最佳政策 因此,难题是 AI 是仅根据当前最佳策略基于动作信任已获悉的 Q 值,还是应该随机尝试其他动作以希望获得更好的回报,从而改善 Q 值,因此, 得出更好的最佳策略
# OpenAI 体育馆山地车问题的 Q 学习 # OpenAI 体育馆山地车问题的 Q 学习
...@@ -612,7 +612,7 @@ def fit(self): ...@@ -612,7 +612,7 @@ def fit(self):
self.learning_counter += 1 self.learning_counter += 1
``` ```
我们已经讨论了勘探和开发难题。 **ε贪婪** **方法**是用于选择阈值ε并产生随机数的方法之一。 如果小于 epsilon,我们将遵循相同的政策;如果大于 epsilon,我们将随机探索行动,反之亦然。 在`epsilon_greedy(self,obs)`中,我们以动态方式实现了 epsilon-greedy 方法,其中在 fit(self)函数中,我们在每个学习步骤中都增加了 epsilon 的值: 我们已经讨论了勘探和开发难题。 **ε贪婪** **方法**是用于选择阈值ε并产生随机数的方法之一。 如果小于 epsilon,我们将遵循相同的策略;如果大于 epsilon,我们将随机探索行动,反之亦然。 在`epsilon_greedy(self,obs)`中,我们以动态方式实现了 epsilon-greedy 方法,其中在 fit(self)函数中,我们在每个学习步骤中都增加了 epsilon 的值:
```py ```py
def epsilon_greedy(self,obs): def epsilon_greedy(self,obs):
......
...@@ -208,7 +208,7 @@ repeat until : ...@@ -208,7 +208,7 @@ repeat until :
# 异步优势演员评论家 # 异步优势演员评论家
在异步优势参与者批评者的架构中,每个学习代理都包含一个参与者批评者,该学习器结合了基于价值和基于策略的方法的优点。 参与者网络将状态作为输入,并预测该状态的最佳动作,而评论家网络将状态和动作作为输入,并输出动作分数以量化该状态的动作效果。 参与者网络使用策略梯度更新其权重参数,而评论者网络使用 *TD(0)*来更新其权重参数,换言之,两个时间步长之间的值估计之差,如[中所述 ]第 4 章](../Text/04.html)*政策梯度* 在异步优势参与者批评者的架构中,每个学习代理都包含一个参与者批评者,该学习器结合了基于价值和基于策略的方法的优点。 参与者网络将状态作为输入,并预测该状态的最佳动作,而评论家网络将状态和动作作为输入,并输出动作分数以量化该状态的动作效果。 参与者网络使用策略梯度更新其权重参数,而评论者网络使用 *TD(0)*来更新其权重参数,换言之,两个时间步长之间的值估计之差,如[中所述 ]第 4 章](../Text/04.html)*策略梯度*
在第 4 章和“策略梯度”中,我们研究了如何通过从策略梯度的预期未来收益中减去基线函数来更新策略梯度,从而在不影响预期收益的情况下减少方差的情况。 梯度。 预期的未来奖励和基线函数之间的差称为**优势函数**; 它不仅告诉我们状态的好坏,而且还告诉我们该动作的预期好坏。 在第 4 章和“策略梯度”中,我们研究了如何通过从策略梯度的预期未来收益中减去基线函数来更新策略梯度,从而在不影响预期收益的情况下减少方差的情况。 梯度。 预期的未来奖励和基线函数之间的差称为**优势函数**; 它不仅告诉我们状态的好坏,而且还告诉我们该动作的预期好坏。
......
...@@ -122,11 +122,11 @@ AlphaGo 之前的 Go 的 AI 程序完全依赖于 Monte Carlo Tree Search。 这 ...@@ -122,11 +122,11 @@ AlphaGo 之前的 Go 的 AI 程序完全依赖于 Monte Carlo Tree Search。 这
* 减少*动作候选,即*,即广度减少(避免在游戏树中探索它们时避免出现不必要的动作) * 减少*动作候选,即*,即广度减少(避免在游戏树中探索它们时避免出现不必要的动作)
* 在时间之前减少评估功能,即深度减少(避免遍历整个游戏树来评估所采取的移动并根据当前游戏状态预测获胜状态) * 在时间之前减少评估功能,即深度减少(避免遍历整个游戏树来评估所采取的移动并根据当前游戏状态预测获胜状态)
策略网络并入当前游戏状态,并输出给定​​状态下每个可能动作的概率。 具有较高概率的动作有较高的获胜机会。 首先,使用专家玩家玩游戏的数据集,通过监督学习来训练政策网络。 输入数据包含游戏板的图像,输出将采取的措施。 来自 160000 个专家游戏的大约 3000 万个棋盘位置的训练数据集最初用于训练 AlphaGo 的政策网络。 在专家数据集上进行训练后,通过自我扮演改进了预测可能学习到的动作的模型,在自我扮演的过程中,它与自身无数次比赛,以使用策略梯度从过去的错误中学习。 因此,政策网络通过提供可能采取行动的可能性来帮助减少候选行动。 策略网络并入当前游戏状态,并输出给定​​状态下每个可能动作的概率。 具有较高概率的动作有较高的获胜机会。 首先,使用专家玩家玩游戏的数据集,通过监督学习来训练策略网络。 输入数据包含游戏板的图像,输出将采取的措施。 来自 160000 个专家游戏的大约 3000 万个棋盘位置的训练数据集最初用于训练 AlphaGo 的策略网络。 在专家数据集上进行训练后,通过自我扮演改进了预测可能学习到的动作的模型,在自我扮演的过程中,它与自身无数次比赛,以使用策略梯度从过去的错误中学习。 因此,策略网络通过提供可能采取行动的可能性来帮助减少候选行动。
价值网络提供当前状态的估计值,该值是黑人玩家在当前状态下赢得比赛的概率。 政策和价值网络的输入与当前游戏状态(具有当前石头位置的棋盘游戏的图像)相同。 策略网络的输出是获胜的概率。 因此,价值网络的作用类似于评估功能,该功能是通过 3000 万个董事会职位的监督学习集获得的。 价值网络提供当前状态的估计值,该值是黑人玩家在当前状态下赢得比赛的概率。 策略和价值网络的输入与当前游戏状态(具有当前石头位置的棋盘游戏的图像)相同。 策略网络的输出是获胜的概率。 因此,价值网络的作用类似于评估功能,该功能是通过 3000 万个董事会职位的监督学习集获得的。
因此,价值网络输出直觉(赢和输的机会),而政策网络输出反思(训练游戏知识)。 因此,AlphaGo 中直觉和反射的混合使其比任何基于搜索的方法都强大。 但是在 AlphaGo 中,这些网络可根据所开发的直觉和学习的反射来帮助更快,优化树搜索。 因此,价值网络输出直觉(赢和输的机会),而策略网络输出反思(训练游戏知识)。 因此,AlphaGo 中直觉和反射的混合使其比任何基于搜索的方法都强大。 但是在 AlphaGo 中,这些网络可根据所开发的直觉和学习的反射来帮助更快,优化树搜索。
下图是神经网络训练管道和架构: 下图是神经网络训练管道和架构:
...@@ -136,7 +136,7 @@ Silver et。的 Google DeepMind 在 AlphaGo in Nature(https://storage.googleap ...@@ -136,7 +136,7 @@ Silver et。的 Google DeepMind 在 AlphaGo in Nature(https://storage.googleap
让我们讨论前面详细显示的 AlphaGo 的神经网络架构图: 让我们讨论前面详细显示的 AlphaGo 的神经网络架构图:
* `a`:快速部署策略*ρ<sub class="calibre209">π</sub>* 和监督学习策略网络*ρ<sub class="calibre209">σ</sub>* 受过专家训练 播放包含 3000 万个董事会职位的数据集,以像人类专家一样学习预测动作。 通过学习的监督学习策略网络的权重初始化强化学习策略网络,并通过使用策略梯度来最大化策略质量,从而改进其策略*ρ<sub class="calibre209">ρ</sub>* 政策网络的早期版本。 通过使用此更新的策略网络进行自我播放,将生成一个新的数据集。 数据集包含棋盘位置的图像及其相应的最终结果,即获胜或失败。 最后,使用该自玩数据集通过回归训练值网络*ν<sub class="calibre209">θ</sub>* ,以输出获胜的概率。 * `a`:快速部署策略*ρ<sub class="calibre209">π</sub>* 和监督学习策略网络*ρ<sub class="calibre209">σ</sub>* 受过专家训练 播放包含 3000 万个董事会职位的数据集,以像人类专家一样学习预测动作。 通过学习的监督学习策略网络的权重初始化强化学习策略网络,并通过使用策略梯度来最大化策略质量,从而改进其策略*ρ<sub class="calibre209">ρ</sub>* 策略网络的早期版本。 通过使用此更新的策略网络进行自我播放,将生成一个新的数据集。 数据集包含棋盘位置的图像及其相应的最终结果,即获胜或失败。 最后,使用该自玩数据集通过回归训练值网络*ν<sub class="calibre209">θ</sub>* ,以输出获胜的概率。
* **b:**该流程的架构流程,其中策略网络将棋盘位置(游戏状态)的图像表示作为输入,并通过参数*σ*的卷积层传播(如果它 是一个有监督的学习策略网络)或*ρ*(如果它是强化学习策略网络),并针对所有可能的动作*和*返回概率分布![](img/a20e03f6-d7b8-4a24-9ed4-c0e49948b873.png)或![](img/b319e230-6055-4a7d-97eb-3b94f0b8886e.png) 输出。 价值网络还使用参数`θ`的许多卷积层,返回标量值![](img/e967cc42-4300-4276-8f1b-e362c4705662.png),该标量值表示在给定位置 *s'中获胜或失败的结果(最终结果)的概率:* * **b:**该流程的架构流程,其中策略网络将棋盘位置(游戏状态)的图像表示作为输入,并通过参数*σ*的卷积层传播(如果它 是一个有监督的学习策略网络)或*ρ*(如果它是强化学习策略网络),并针对所有可能的动作*和*返回概率分布![](img/a20e03f6-d7b8-4a24-9ed4-c0e49948b873.png)或![](img/b319e230-6055-4a7d-97eb-3b94f0b8886e.png) 输出。 价值网络还使用参数`θ`的许多卷积层,返回标量值![](img/e967cc42-4300-4276-8f1b-e362c4705662.png),该标量值表示在给定位置 *s'中获胜或失败的结果(最终结果)的概率:*
...@@ -153,7 +153,7 @@ Silver et。 等 ...@@ -153,7 +153,7 @@ Silver et。 等
* 使用学习到的快速推广策略![](img/a453b581-4415-4d30-81e6-96e93018c288.png)进行推广,直到游戏结束,并使用函数`r`计算获胜者 * 使用学习到的快速推广策略![](img/a453b581-4415-4d30-81e6-96e93018c288.png)进行推广,直到游戏结束,并使用函数`r`计算获胜者
* `d`:更新动作值`Q`,以跟踪该动作下方子树中所有评估值 r(·)和![](img/e9c40645-7e2f-403d-b976-413405948161.png)(·)的平均值。 * `d`:更新动作值`Q`,以跟踪该动作下方子树中所有评估值 r(·)和![](img/e9c40645-7e2f-403d-b976-413405948161.png)(·)的平均值。
如前所述,对一个政策网络进行了 3000 万个游戏职位的训练。 在不使用树搜索的情况下,AlphaGo 赢得了与 Pachi(Go 最强的 AI 程序)对战的 85% 的比赛,其中 Pachi 依靠基于 Monte Carlo Tree Search 的 100,000 次模拟。 价值网络接受了 3000 万个游戏位置的训练,并学习了预测获胜概率的模型。 策略网络输出充当树搜索的指南。 对于给定的游戏状态,策略网络为每个可能的移动提供了概率。 这有助于减少树搜索期间的候选动作。 如前所述,对一个策略网络进行了 3000 万个游戏职位的训练。 在不使用树搜索的情况下,AlphaGo 赢得了与 Pachi(Go 最强的 AI 程序)对战的 85% 的比赛,其中 Pachi 依靠基于 Monte Carlo Tree Search 的 100,000 次模拟。 价值网络接受了 3000 万个游戏位置的训练,并学习了预测获胜概率的模型。 策略网络输出充当树搜索的指南。 对于给定的游戏状态,策略网络为每个可能的移动提供了概率。 这有助于减少树搜索期间的候选动作。
# 能耗分析– Lee Sedol 与 AlphaGo # 能耗分析– Lee Sedol 与 AlphaGo
...@@ -186,7 +186,7 @@ Google DeepMind 已经开始使用 AlphaGo Zero 来了解蛋白质折叠,因 ...@@ -186,7 +186,7 @@ Google DeepMind 已经开始使用 AlphaGo Zero 来了解蛋白质折叠,因
* 完全从自我游戏中训练,这不是人类专家的游戏数据,而是从头开始学习一切。 较早的版本监督学习策略网络,该网络经过专家游戏训练。 * 完全从自我游戏中训练,这不是人类专家的游戏数据,而是从头开始学习一切。 较早的版本监督学习策略网络,该网络经过专家游戏训练。
* 没有手工制作的功能。 * 没有手工制作的功能。
* 用残差卷积架构替换了普通卷积架构。 * 用残差卷积架构替换了普通卷积架构。
* AlphaGo Zero 并没有将其单独的政策和价值网络,而是将它们两者合并为一个大型网络。 * AlphaGo Zero 并没有将其单独的策略和价值网络,而是将它们两者合并为一个大型网络。
* 简化了蒙特卡洛树搜索,该搜索使用此大型神经网络进行仿真。 * 简化了蒙特卡洛树搜索,该搜索使用此大型神经网络进行仿真。
网络输入包括: 网络输入包括:
......
...@@ -235,7 +235,7 @@ PVM 是按时间步长顺序(即时间顺序)收集投资组合向量的集 ...@@ -235,7 +235,7 @@ PVM 是按时间步长顺序(即时间顺序)收集投资组合向量的集
拟议框架的主要特点是: 拟议框架的主要特点是:
* 多渠道,多市场输入 * 多渠道,多市场输入
* 政策网络直接提供投资组合权重向量形式的市场行为 * 策略网络直接提供投资组合权重向量形式的市场行为
* 在此,仅使用了深度神经网络的三个变体,但也可以应用其他变体 * 在此,仅使用了深度神经网络的三个变体,但也可以应用其他变体
* 随着投资组合规模的增加可线性扩展 * 随着投资组合规模的增加可线性扩展
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
# 强化学习的演变 # 强化学习的演变
在本书中,我们涵盖了从基础到高级的强化学习领域中的大多数算法。 因此,这些章节是理解机器人领域中不同算法所面临的应用和挑战的前提。 早期强化学习算法通过首先获取状态动作值,然后从中得出策略来处理获取最佳策略的问题。 然后,策略迭代方法出现了,直接用于输出优化的策略。 勘探开发技术有助于完善现有政策,探索新措施并更新现有政策。 强化学习方法,例如 MDP(在第 3 章,*马尔可夫决策过程*中),其中需要采用过渡模型的值迭代方法称为基于**模型的学习器**。 另一方面,诸如 Q 学习(在第 5 章, *Q-Learning 和深度 Q 网络*中)的算法不需要这种过渡模型,因此也不需要任何预定义的策略。 ,他们被称为**模型免费土地脱离政策学习器** 在本书中,我们涵盖了从基础到高级的强化学习领域中的大多数算法。 因此,这些章节是理解机器人领域中不同算法所面临的应用和挑战的前提。 早期强化学习算法通过首先获取状态动作值,然后从中得出策略来处理获取最佳策略的问题。 然后,策略迭代方法出现了,直接用于输出优化的策略。 勘探开发技术有助于完善现有策略,探索新措施并更新现有策略。 强化学习方法,例如 MDP(在第 3 章,*马尔可夫决策过程*中),其中需要采用过渡模型的值迭代方法称为基于**模型的学习器**。 另一方面,诸如 Q 学习(在第 5 章, *Q-Learning 和深度 Q 网络*中)的算法不需要这种过渡模型,因此也不需要任何预定义的策略。 ,他们被称为**模型免费土地脱离策略学习器**
在深度强化学习领域,行动价值函数逼近器和策略函数逼近器在制定最先进的学习算法集方面发挥着关键作用。 策略搜索算法(例如策略梯度)旨在通过最大化期望的奖励总和来找到最佳策略,而使用行动值函数近似器(例如深度 Q 网络)的算法旨在通过最大化期望的总和来找到给定状态的行动值 奖励。 但是,在处理由高维和连续状态动作空间构成的环境时,性能上的差异在于,这最能描述机器人在其中运行的真实环境。 在这种情况下,策略搜索算法的性能会更好,因为它们在连续状态操作空间域中可以更好地工作: 在深度强化学习领域,行动价值函数逼近器和策略函数逼近器在制定最先进的学习算法集方面发挥着关键作用。 策略搜索算法(例如策略梯度)旨在通过最大化期望的奖励总和来找到最佳策略,而使用行动值函数近似器(例如深度 Q 网络)的算法旨在通过最大化期望的总和来找到给定状态的行动值 奖励。 但是,在处理由高维和连续状态动作空间构成的环境时,性能上的差异在于,这最能描述机器人在其中运行的真实环境。 在这种情况下,策略搜索算法的性能会更好,因为它们在连续状态操作空间域中可以更好地工作:
......
...@@ -130,7 +130,7 @@ Paulus 等人(2017)在[《用于抽象摘要的深度强化模型》](https: ...@@ -130,7 +130,7 @@ Paulus 等人(2017)在[《用于抽象摘要的深度强化模型》](https:
* **暴露偏差**:在训练过程中,神经网络知道直到下一个标记的地面真相序列,但在测试时并非如此。 * **暴露偏差**:在训练过程中,神经网络知道直到下一个标记的地面真相序列,但在测试时并非如此。
* **多个输出候选**(即**,即多个可能有效的摘要**):有更多方式可以安排令牌以生成多个摘要。 最大可能性目标没有考虑这种可能性。 * **多个输出候选**(即**,即多个可能有效的摘要**):有更多方式可以安排令牌以生成多个摘要。 最大可能性目标没有考虑这种可能性。
# 政策学习 # 策略学习
这里的思想是学习一种最大化度量标准而不是最小化从最大似然目标获得的损失的策略。 为此,使用了强化学习方法,其中将自关键策略梯度算法用于训练。 对于此训练,每次训练迭代都会生成两个单独的输出序列: 这里的思想是学习一种最大化度量标准而不是最小化从最大似然目标获得的损失的策略。 为此,使用了强化学习方法,其中将自关键策略梯度算法用于训练。 对于此训练,每次训练迭代都会生成两个单独的输出序列:
...@@ -170,7 +170,7 @@ Paulus 等人(2017)在[《用于抽象摘要的深度强化模型》](https: ...@@ -170,7 +170,7 @@ Paulus 等人(2017)在[《用于抽象摘要的深度强化模型》](https:
因此,混合目标的方法提供了两个好处: 因此,混合目标的方法提供了两个好处:
* 强化学习目标还鼓励在文字上相似的答案 * 强化学习目标还鼓励在文字上相似的答案
* 交叉熵通过鼓励更正确的部署轨迹来帮助政策学习 * 交叉熵通过鼓励更正确的部署轨迹来帮助策略学习
除了混合训练目标之外,还通过使用深度残差共同注意编码器建立输入的更好表示,对现有的动态共同注意注意网络进行了改进(Xiong 等人,2017 年)。 除了混合训练目标之外,还通过使用深度残差共同注意编码器建立输入的更好表示,对现有的动态共同注意注意网络进行了改进(Xiong 等人,2017 年)。
......
...@@ -8,16 +8,16 @@ ...@@ -8,16 +8,16 @@
在这里,我们将尝试介绍一些高级连续动作空间算法: 在这里,我们将尝试介绍一些高级连续动作空间算法:
* 信任区域政策优化 * 信任区域策略优化
* 确定性政策梯度 * 确定性策略梯度
# 信任区域政策优化 # 信任区域策略优化
**信任** **区域策略优化****TRPO**)是一种用于优化策略的迭代方法。 TRPO 优化了大型非线性策略。 TRPO 通过对输出策略分布施加约束来限制策略搜索空间。 为此,对策略网络参数使用 KL 散度损失函数(![](img/f32e59af-ab87-4141-bb2b-830cc1d8451b.png))来惩罚这些参数。 新策略和旧策略之间的 KL 差异约束称为信任区域约束。 由于此约束,策略分布中不会发生大规模更改,从而导致策略网络尽早收敛。 **信任** **区域策略优化****TRPO**)是一种用于优化策略的迭代方法。 TRPO 优化了大型非线性策略。 TRPO 通过对输出策略分布施加约束来限制策略搜索空间。 为此,对策略网络参数使用 KL 散度损失函数(![](img/f32e59af-ab87-4141-bb2b-830cc1d8451b.png))来惩罚这些参数。 新策略和旧策略之间的 KL 差异约束称为信任区域约束。 由于此约束,策略分布中不会发生大规模更改,从而导致策略网络尽早收敛。
TRPO 由 Schulman 等(2017)发布在名为[《信任区域策略优化》](https://arxiv.org/pdf/1502.05477.pdf)的研究出版物中。 在这里,他们提到了一些实验,这些实验证明了 TRPO 在不同任务上的强大性能,例如学习模拟机器人游泳,玩 Atari 游戏等等。 [为了详细研究 TRPO,请访问出版物的 arXiv 链接](https://arxiv.org/pdf/1502.05477.pdf) TRPO 由 Schulman 等(2017)发布在名为[《信任区域策略优化》](https://arxiv.org/pdf/1502.05477.pdf)的研究出版物中。 在这里,他们提到了一些实验,这些实验证明了 TRPO 在不同任务上的强大性能,例如学习模拟机器人游泳,玩 Atari 游戏等等。 [为了详细研究 TRPO,请访问出版物的 arXiv 链接](https://arxiv.org/pdf/1502.05477.pdf)
# 确定性政策梯度 # 确定性策略梯度
确定性策略梯度由 Silver 等人提出在名为[《确定性策略梯度算法》](http://proceedings.mlr.press/v32/silver14.pdf)的出版物中。 在连续行动空间中,用贪婪方法改进策略变得困难,并且需要全局优化。 因此,最好按以下方向在`Q`函数的梯度方向上更新策略网络参数: 确定性策略梯度由 Silver 等人提出在名为[《确定性策略梯度算法》](http://proceedings.mlr.press/v32/silver14.pdf)的出版物中。 在连续行动空间中,用贪婪方法改进策略变得困难,并且需要全局优化。 因此,最好按以下方向在`Q`函数的梯度方向上更新策略网络参数:
...@@ -27,7 +27,7 @@ TRPO 由 Schulman 等(2017)发布在名为[《信任区域策略优化》](h ...@@ -27,7 +27,7 @@ TRPO 由 Schulman 等(2017)发布在名为[《信任区域策略优化》](h
![](img/c5f5537b-51ac-414c-9dd1-d8461a257262.png) ![](img/c5f5537b-51ac-414c-9dd1-d8461a257262.png)
可以将先前的更新规则合并到策略网络中,在该策略网络中使用随机梯度上升来更新参数。 这可以通过确定性的行为者批判方法来实现,其中批评者估计动作值函数,而行为者从批评者获得其梯度以更新其参数。 如 Silver 等人在[《确定性策略梯度算法》](http://proceedings.mlr.press/v32/silver14.pdf)中所述。 在实验之后,他们能够成功得出结论,确定性的政策梯度比随机的梯度更有效率。 此外,确定性行动者批评者的表现优于随机行动者。 有关此主题的详细说明超出了本书的范围。 因此,请转到前面提到的研究出版物链接。 可以将先前的更新规则合并到策略网络中,在该策略网络中使用随机梯度上升来更新参数。 这可以通过确定性的行为者批判方法来实现,其中批评者估计动作值函数,而行为者从批评者获得其梯度以更新其参数。 如 Silver 等人在[《确定性策略梯度算法》](http://proceedings.mlr.press/v32/silver14.pdf)中所述。 在实验之后,他们能够成功得出结论,确定性的策略梯度比随机的梯度更有效率。 此外,确定性行动者批评者的表现优于随机行动者。 有关此主题的详细说明超出了本书的范围。 因此,请转到前面提到的研究出版物链接。
# NLP 顺序模型中的评分机制 # NLP 顺序模型中的评分机制
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册