提交 3d7d3714 编写于 作者: W wizardforcel

2021-01-24 15:21:07

上级 95c22b06
......@@ -29,7 +29,7 @@
为此,您需要遵循的步骤如下:
1. 了解问题的原因,原因和方式。
2. 分析手头的数据,以确定我们模型的一些关键参数,例如要执行的学习任务的类型,必要的准备工作以及绩效指标的定义。
2. 分析手头的数据,以确定我们模型的一些关键参数,例如要执行的学习任务的类型,必要的准备工作以及表现指标的定义。
3. 执行数据准备,以减少将偏差引入模型的可能性。
## 银行的深度学习
......
......@@ -380,7 +380,7 @@ model = model.to(device)
## 训练 CNN
在定义训练过程之前,我们需要计算性能指标以说明模型的性能(希望!)如何随时间增加。 在我们的二分类任务中,准确率是我们用来衡量绩效的简单指标。 对于我们的多分类任务,我们将再次使用准确率,但是计算准确率的过程稍微复杂些,因为我们现在必须确定模型预测的六个类别中的哪个类别以及六个类别中的哪个类别是正确的类别。
在定义训练过程之前,我们需要计算性能指标以说明模型的性能(希望!)如何随时间增加。 在我们的二分类任务中,准确率是我们用来衡量表现的简单指标。 对于我们的多分类任务,我们将再次使用准确率,但是计算准确率的过程稍微复杂些,因为我们现在必须确定模型预测的六个类别中的哪个类别以及六个类别中的哪个类别是正确的类别。
首先,我们定义一个称为`multi_accuracy`的函数来计算:
......
......@@ -147,7 +147,7 @@ Q 值可以更新如下:
新的 Q 值是两个部分的总和。 第一部分是`(1 - 学习率) * 旧 Q 值`,它是多少旧值将被记住。 学习率为 0 时,不会学习任何新内容,学习率为 1 时,所有旧值都将被忘记。
第二部分是**学习率*(即时行动奖励+最优未来价值的折算估计)**,其中学习值是即时奖励加上最优未来价值的折算估计。 未来奖励的重要性由折扣系数决定。
第二部分是**学习率*(即时行动奖励+最优未来值的折算估计)**,其中学习值是即时奖励加上最优未来值的折算估计。 未来奖励的重要性由折扣系数决定。
通过深度 Q 学习,我们可以使用深度神经网络来预测动作的 Q 值,并使用深度神经网络来选择动作,而不是使用 Q 表查找给定状态下具有最大可能 Q 值的动作。 给定动作的最大 Q 值。
......@@ -314,7 +314,7 @@ if not self.explore_limit:
# 工作原理
在本秘籍中,我们完成了 DQN 类,并添加了所有必需的功能来训练 DQN。 在构造器中,我们初始化了探索的初始状态,观察空间和动作空间,然后定义了一个存储单元来保存 DQN 的经验。 我们创建了称为`policy_net``target_net`的软骨模型的两个实例。 我们需要两个网络,因为在训练的每个步骤中,Q 网络的值都会移动,并且如果我们使用不断变化的目标值来调整我们的网络,则该网络可能会由于陷入此变化的目标与估计的 Q 值之间的反馈回路而变得不稳定。 网络值。 如果发生这种情况,值估计将失去控制。 因此,我们使用了两个网络并将`target_net`保持在`eval`模式。 然后,我们使用`MSELoss()`作为损失函数以及`Adam`优化器来更新权重。
在本秘籍中,我们完成了 DQN 类,并添加了所有必需的功能来训练 DQN。 在构造器中,我们初始化了探索的初始状态,观察空间和动作空间,然后定义了一个存储单元来保存 DQN 的经验。 我们创建了称为`policy_net``target_net`的软骨模型的两个实例。 我们需要两个网络,因为在训练的每个步骤中,Q 网络的值都会移动,并且如果我们使用不断变化的目标值来调整我们的网络,则该网络可能会由于陷入此变化的目标与估计的 Q 值之间的反馈回路而变得不稳定。 网络值。 如果发生这种情况,值估计将失去控制。 因此,我们使用了两个网络并将`target_net`保持在`eval`模式。 然后,我们使用`MSELoss()`作为损失函数以及`Adam`优化器来更新权重。
`load_memory()`方法中,我们从环境中存储了状态,操作,奖励,下一个状态和终端,以用于训练网络。 我们使用的下一个方法是`predict_action`。 在此方法中,我们使用`np.random.rand()`选择了`random_number`,这为我们提供了`[0,1)`的值。 如果此`random_number`小于当前的`exploration_rate`,则我们选择一个随机动作,该动作由`exploration_rate`控制。 这就是我们合并探索的方式。 但是,如果`random_number`大于`exploration_rate`,则`target_net`会预测`q_values`并选择具有最大 Q 值的动作。
......
......@@ -112,7 +112,7 @@ PixelCNN 中使用了遮罩卷积,以防止在训练网络时信息从将来
图 6.6:左侧是遮罩,右侧是 PixelCNN 中的上下文
由于 PixelCNN 不使用池化层和反卷积层,因此随着流的进行,通道大小应保持恒定。 遮罩 A 专门负责阻止网络从当前像素学习值,而遮罩 B 将通道大小保持为三(RGB),并通过允许当前像素值取决于来允许网络具有更大的灵活性。 本身的价值
由于 PixelCNN 不使用池化层和反卷积层,因此随着流的进行,通道大小应保持恒定。 遮罩 A 专门负责阻止网络从当前像素学习值,而遮罩 B 将通道大小保持为三(RGB),并通过允许当前像素值取决于本身的值来允许网络具有更大的灵活性
![Masked convolution](img/B09475_06_08.jpg)
......
......@@ -122,7 +122,7 @@ MDP 定义有五件事:
* 沿着墙壁走
* 找到通往门的最短路径
为了使我们能够数学地预测在特定状态下要采取的行动,我们需要一个函数。 让我们定义一个函数,该函数将设为当前状态,并输出一个数字,该数字表示该状态的价值。例如,如果您要越过河流,那么靠近桥梁的位置将比目标位置更有价值。 远离它。 此函数称为值函数,也用`V`表示。
为了使我们能够数学地预测在特定状态下要采取的行动,我们需要一个函数。 让我们定义一个函数,该函数将设为当前状态,并输出一个数字,该数字表示该状态的值。例如,如果您要越过河流,那么靠近桥梁的位置的值将比远离目标位置更大。 此函数称为值函数,也用`V`表示。
我们可以使用另一个函数来帮助我们度量事物:一个函数,该函数为我们提供由所有可以采取的行动所导致的所有未来状态的值。
......@@ -183,7 +183,7 @@ MDP 定义有五件事:
这里要注意的一件事是,我们将使用相同的 ε 贪婪策略在“步骤 6”中选择动作,并在“步骤 8”中更新相同的策略。 这种算法称为策略上算法。 从某种意义上讲,这是很好的,因为在我们观察和更新同一策略时,将更快地学习该策略。 它收敛非常快。 它也有一些缺点,即所学习的策略和用于决策的策略彼此紧密地联系在一起。 如果我们想要一个更具探索性的策略,以便在“步骤 6”中选择观察结果,并在“步骤 8”中更新更优化的策略,该怎么办? 这样的算法被称为非策略算法。
Q 学习是一种非策略算法,因此,在 Q 学习中,我们将有两个策略。 我们用来推断动作的策略将是 ε 贪婪策略,并且我们将其称为策略网络。 我们将使用更新步骤更新的网络将是我们的目标网络。 那只能由一个贪婪的策略来控制,这意味着我们将始终选择`ε`等于零的最大值。 我们不会对此策略采取随机措施。 我们这样做是为了使我们更快地朝着更高的值前进。 我们将通过不时复制策略网的权重(例如每隔一集一次)来更新目标网的权重。
Q 学习是一种非策略算法,因此,在 Q 学习中,我们将有两个策略。 我们用来推断动作的策略将是 ε 贪婪策略,并且我们将其称为策略网络。 我们将使用更新步骤更新的网络将是我们的目标网络。 那只能由一个贪婪的策略来控制,这意味着我们将始终选择`ε`等于零的最大值。 我们不会对此策略采取随机措施。 我们这样做是为了使我们更快地朝着更高的值前进。 我们将通过不时复制策略网的权重(例如每隔一集一次)来更新目标网的权重。
其背后的想法是不追逐一个移动的目标。 让我们举个例子:假设您想训练一头驴走路。 如果您坐在驴上并在其嘴前悬挂胡萝卜,驴可能会向前走,胡萝卜仍与驴保持相同的距离。 但是,与普遍的看法相反,这并不那么有效。 胡萝卜可能会随机反弹,并可能使驴远离其路径。 取而代之的是,通过从驴上下来并站在要驴来的地方使驴和胡萝卜脱钩,这似乎是一个更好的选择。 它提供了一个更稳定的学习环境。
......
......@@ -56,7 +56,7 @@ DDP 材料如下:
[`torch.distributed.rpc`](https://pytorch.org/docs/master/rpc.html)程序包具有四个主要支柱:
* [RPC](https://pytorch.org/docs/master/rpc.html#rpc) 支持在远程工作者上运行给定功能。
* [RRef](https://pytorch.org/docs/master/rpc.html#rref) 帮助管理远程对象的生存期。 参考计数协议在 [RRef 注释](https://pytorch.org/docs/master/rpc/rref.html#remote-reference-protocol)中提供。
* [RRef](https://pytorch.org/docs/master/rpc.html#rref) 帮助管理远程对象的生存期。 引用计数协议在 [RRef 注释](https://pytorch.org/docs/master/rpc/rref.html#remote-reference-protocol)中提供。
* [分布式自动微分](https://pytorch.org/docs/master/rpc.html#distributed-autograd-framework)将自动微分引擎扩展到机器范围之外。 有关更多详细信息,请参考[分布式 Autograd 设计](https://pytorch.org/docs/master/rpc/distributed_autograd.html#distributed-autograd-design)
* [分布式优化器](https://pytorch.org/docs/master/rpc.html#module-torch.distributed.optim),它使用分布式 Autograd 引擎计算的梯度自动与所有参与的工作人员联系以更新参数。
......
......@@ -105,7 +105,7 @@ class Observer:
```
agent 的代码稍微复杂一点,我们将其分成多个部分。 在此示例中,智能体既充当训练者又充当主角色,以便它向多个分布式观察者发送命令以运行情节,并且还记录本地的所有动作和奖励,这些动作和奖赏将在每个情节之后的训练阶段使用。 下面的代码显示了`Agent`构造器,其中大多数行都在初始化各种组件。 最后的循环在其他工作者上远程初始化观察者,并在本地将`RRefs`保留给这些观察者。 智能体稍后将使用那些观察者`RRefs`发送命令。 应用无需担心`RRefs`的寿命。 每个`RRef`的所有者维护一个参考计数图以跟踪其生命周期,并保证只要该`RRef`的任何活动用户都不会删除远程数据对象。 有关详细信息,请参考`RRef` [设计文档](https://pytorch.org/docs/master/notes/rref.html)
agent 的代码稍微复杂一点,我们将其分成多个部分。 在此示例中,智能体既充当训练者又充当主角色,以便它向多个分布式观察者发送命令以运行情节,并且还记录本地的所有动作和奖励,这些动作和奖赏将在每个情节之后的训练阶段使用。 下面的代码显示了`Agent`构造器,其中大多数行都在初始化各种组件。 最后的循环在其他工作者上远程初始化观察者,并在本地将`RRefs`保留给这些观察者。 智能体稍后将使用那些观察者`RRefs`发送命令。 应用无需担心`RRefs`的寿命。 每个`RRef`的所有者维护一个引用计数图以跟踪其生命周期,并保证只要该`RRef`的任何活动用户都不会删除远程数据对象。 有关详细信息,请参考`RRef` [设计文档](https://pytorch.org/docs/master/notes/rref.html)
```py
import gym
......
......@@ -728,7 +728,7 @@ V(s) = E[all future rewards discounted | S(t)=s]
# 强化学习的 Q 学习方法
Q 学习是尝试学习在特定状态下向智能体提供的特定操作的值`Q(s, a)`。 考虑一个表,其中行数代表状态数,而列数代表动作数。 这称为 Q 表。 因此,我们必须学习值,以找出对于给定状态下的智能体而言,哪种行动最合适。
Q 学习是尝试学习在特定状态下向智能体提供的特定操作的值`Q(s, a)`。 考虑一个表,其中行数代表状态数,而列数代表动作数。 这称为 Q 表。 因此,我们必须学习值,以找出对于给定状态下的智能体而言,哪种行动最合适。
Q 学习涉及的步骤:
......@@ -750,7 +750,7 @@ Q 学习涉及的步骤:
7. 运行多个剧集来训练智能体
为简化起见,我们可以说,给定状态`s`和动作`a`的 Q 值由当前奖励`r`以及新状态在其所有操作中的折扣(`γ`)最大`Q`最大值。 与当前奖励相比,折扣因子延迟了来自未来的奖励。 例如,今天的 100 奖励在将来的价值将超过 100。 同样,将来的 100 奖励必须今天价值不到 100。 因此,我们将折扣未来的奖励。 连续重复此更新过程会导致 Q 表值收敛到给定状态下给定操作的预期未来奖励的准确度量。
为简化起见,我们可以说,给定状态`s`和动作`a`的 Q 值由当前奖励`r`以及新状态在其所有操作中的折扣(`γ`)最大`Q`最大值。 与当前奖励相比,折扣因子延迟了来自未来的奖励。 例如,今天的 100 奖励在将来值将超过 100。 同样,将来的 100 奖励的当前值必须不到 100。 因此,我们将折扣未来的奖励。 连续重复此更新过程会导致 Q 表值收敛到给定状态下给定操作的预期未来奖励的准确度量。
当状态空间和动作空间的数量增加时,很难维护 Q 表。 在现实世界中,状态空间无限大。 因此,需要另一种无需 Q 表即可生成`Q(s, a)`方法。 一种解决方案是用功能替换 Q 表。 该函数将状态作为向量形式的输入,并输出给定​​状态下所有动作的 Q 值向量。 该函数逼近器可以由神经网络表示,以预测 Q 值。 因此,当状态和动作空间变大时,我们可以添加更多的层并适合于深度神经网络,以更好地预测 Q 值,这对于 Q 表来说似乎是不可能的。 这样就产生了 Q 网络,如果使用了更深层的神经网络(例如卷积神经网络),那么它会导致**深度 Q 网络****DQN**)。
......@@ -763,7 +763,7 @@ A3C 算法由 Google DeepMind 和 MILA 的联合团队于 2016 年 6 月发布
我们将在此处重点讨论,但是我们将在第 6 章,“异步方法”中进行更深入的探讨。 让我们从名称开始,即**异步优势演员评论家****A3C**)算法,然后将其解压缩以获得该算法的基本概述:
* **异步**:在 DQN 中,您还记得我们将神经网络与我们的智能体一起使用来预测动作。 这意味着只有一个智能体,并且它正在与一个环境交互。 A3C 所做的是创建智能体环境的多个副本,以使智能体更有效地学习。 A3C 具有一个全球网络和多个工作人员智能体,其中每个智能体都有其自己的一组网络参数,并且每个参数都与其环境副本同时进行交互,而无需与另一个智能体的环境进行交互。 它比单个智能体更好的原因是每个智能体的经验独立于其他智能体的经验。 因此,所有工人智能体的总体经验导致了各种各样的训练。
* **演员评论家**:演员评论家结合了值迭代和策略迭代的优势。 因此,网络将为给定状态 s 估计值函数`V(s)`和策略`π(s)`。 函数逼近器神经网络的顶部将有两个单独的全连接层,分别输出状态的值和状态策略。 智能体使用值,该值充当批评者来更新策略,即,智能角色。
* **演员评论家**:演员评论家结合了值迭代和策略迭代的优势。 因此,网络将为给定状态 s 估计值函数`V(s)`和策略`π(s)`。 函数逼近器神经网络的顶部将有两个单独的全连接层,分别输出状态的值和状态策略。 智能体使用值,该值充当批评者来更新策略,即,智能角色。
* **优势**:策略梯度使用折扣收益告诉智能体该行动是好是坏。 用优势代替它不仅可以量化操作的好坏状态,而且可以更好地鼓励和劝阻操作(我们将在第 4 章,“策略梯度”中进行讨论)。
# TensorFlow 和 OpenAI Gym 简介
......
......@@ -183,7 +183,7 @@ Q 学习涉及的步骤如下:
# ε 贪婪方法
ε 贪婪是探索-利用困境的一种广泛使用的解决方案。 探索就是通过实验和研究来搜索和探索新的选择以产生新的价值,而探索则是通过重复这些选择并提高其价值来完善现有的选择。
ε 贪婪是探索-利用困境的一种广泛使用的解决方案。 探索就是通过实验和研究来搜索和探索新的选择以产生新的值,而探索则是通过重复这些选择并提高其值来完善现有的选择。
ε 贪婪方法非常易于理解且易于实现:
......
......@@ -365,7 +365,7 @@ MDP 试图通过将网格划分为状态,动作,模型/转换模型和奖励
# 策略迭代
通过迭代策略并更新策略本身(而不是值)直到策略收敛到最优值以获得最优效用的过程称为**策略迭代**。 策略迭代的过程如下:
通过迭代策略并更新策略本身(而不是值)直到策略收敛到最优值以获得最优效用的过程称为**策略迭代**。 策略迭代的过程如下:
* 从随机策略`π[0]`开始
* 对于迭代步骤`t`中给定的`π[t]`策略,请使用以下公式计算`U[t] = U[t]^π`
......@@ -596,7 +596,7 @@ After learning completion printing the utilities for each states below from stat
# 总结
在本章中,我们介绍了网格世界类型的环境的详细信息,并了解了马尔可夫决策过程的基础,即状态,动作,奖励,转移模型和策略。 此外,我们利用这些信息通过值迭代和策略迭代方法来计算效用和最优策略。
在本章中,我们介绍了网格世界类型的环境的详细信息,并了解了马尔可夫决策过程的基础,即状态,动作,奖励,转移模型和策略。 此外,我们利用这些信息通过值迭代和策略迭代方法来计算效用和最优策略。
除此之外,我们对部分可观察的马尔可夫决策过程是什么样子以及解决它们的挑战有了基本的了解。 最后,我们从 OpenAI Gym 获取了我们最喜欢的 gridworld 环境,即 FrozenLake-v0,并实现了一种值迭代方法,以使我们的智能体学会在该环境中导航。
......
# 策略梯度
到目前为止,我们已经看到了如何使用基于值的方法从值函数中派生隐式策略。 在这里,智能体将尝试直接学习策略。 做法是相似的,任何有经验的智能体都会在目睹之后更改策略。
到目前为止,我们已经看到了如何使用基于值的方法从值函数中派生隐式策略。 在这里,智能体将尝试直接学习策略。 做法是相似的,任何有经验的智能体都会在目睹之后更改策略。
价值迭代,策略迭代和 Q 学习属于通过动态编程解决的基于价值的方法,而策略优化方法则涉及策略梯度和该知识与策略迭代的结合,从而产生了行动者批判算法。
值迭代,策略迭代和 Q 学习属于通过动态编程解决的基于值的方法,而策略优化方法则涉及策略梯度和该知识与策略迭代的结合,从而产生了行动者批判算法。
根据动态编程方法,存在一组自洽方程,可以满足`Q``V`值。 策略优化是不同的,策略学习直接进行,而不是从值函数中得出:
![](img/783c3d44-900b-4334-a5e6-b4a2a297a1a8.png)
因此,基于值的方法学习了值函数,我们得出了一个隐式策略,但是使用基于策略的方法,就不会学习任何值函数,而直接学习了该策略。 由于我们同时学习了值函数和策略,而行为者批评方法更为先进,而网络学习值函数则充当了作为参与者的策略网络的批评者。 在本章中,我们将深入研究基于策略的方法。
因此,基于值的方法学习了值函数,我们得出了一个隐式策略,但是使用基于策略的方法,就不会学习任何值函数,而直接学习了该策略。 由于我们同时学习了值函数和策略,而行为者批评方法更为先进,而网络学习值函数则充当了作为参与者的策略网络的批评者。 在本章中,我们将深入研究基于策略的方法。
我们将在本章介绍以下主题:
......@@ -39,7 +39,7 @@
# 为什么要采用策略优化方法?
在本节中,我们将介绍策略优化方法相对于基于值的方法的优缺点。 优点如下:
在本节中,我们将介绍策略优化方法相对于基于值的方法的优缺点。 优点如下:
* 它们提供了更好的融合。
* 在高维/连续状态动作空间的情况下,它们非常有效。 如果动作空间很大,则基于值的方法中的`max`函数将在计算上昂贵。 因此,基于策略的方法通过更改参数来直接更改策略,而不是在每个步骤中求解`max`函数。
......@@ -54,7 +54,7 @@
# 为什么采用随机策略?
让我们看两个例子,这些例子将解释基于值方法将随机策略与接近确定性策略相结合的重要性。
让我们看两个例子,这些例子将解释基于值方法将随机策略与接近确定性策略相结合的重要性。
# 示例 1-石头,剪刀,布
......@@ -81,7 +81,7 @@
* 基于值的强化学习将使用近似值函数`Q(s, a) = f(φ(s, a), w)`
* 基于策略的强化学习将使用参数化策略`π[θ](s, a) = g(φ(s, a), θ)`
在此,`w`是值函数的参数,`θ`是策略的参数。 众所周知,灰色方块具有相同的特征,即在北部和南部都有墙。 因此,由于相同的特征,这导致状态混淆。 结果,基于值的强化学习方法学习了如下确定性策略:
在此,`w`是值函数的参数,`θ`是策略的参数。 众所周知,灰色方块具有相同的特征,即在北部和南部都有墙。 因此,由于相同的特征,这导致状态混淆。 结果,基于值的强化学习方法学习了如下确定性策略:
* 要么在两个灰色阴影状态下向西移动
* 或在两个灰色阴影状态下向东移动
......@@ -95,7 +95,7 @@
结果,它将以更少的步骤达到目标状态,因为西方和东方都将具有相同的发生概率。 因此,与基于值的强化学习方法相比,不同的灰色阴影状态可能会随机发生不同的动作,从而导致目标状态更快。 因此,基于策略的强化学习可以学习最佳的随机策略。
因此,从前面的示例中,我们已经知道,每当发生状态别名时,随机策略都可以执行得更好。 因此,只要存在状态混叠的情况(即环境的表示),就会部分观察状态(例如,您处于部分可观察的马尔可夫决策过程中)或函数逼近器使用状态的特征,这会限制环境的整体视角,使用基于随机策略的基于策略的方法要比基于值的方法要好。
因此,从前面的示例中,我们已经知道,每当发生状态别名时,随机策略都可以执行得更好。 因此,只要存在状态混叠的情况(即环境的表示),就会部分观察状态(例如,您处于部分可观察的马尔可夫决策过程中)或函数逼近器使用状态的特征,这会限制环境的整体视角,使用基于随机策略的基于策略的方法要比基于值的方法要好。
# 策略目标函数
......@@ -308,7 +308,7 @@ end for
Output : final
```
因此,我们可以看到参与者评论家既具有基于值的优化又具有基于策略的优化。 因此,在采用蒙特卡洛策略梯度法的情况下,策略改进会贪婪地进行。 但是在演员批评家中,演员通过按照批评家的方向采取措施来更新策略参数,以便制定更好的策略。
因此,我们可以看到参与者评论家既具有基于值的优化又具有基于策略的优化。 因此,在采用蒙特卡洛策略梯度法的情况下,策略改进会贪婪地进行。 但是在演员批评家中,演员通过按照批评家的方向采取措施来更新策略参数,以便制定更好的策略。
# 使用基线减少方差
......
# Q 学习和深度 Q 网络
在第 3 章,“马尔可夫决策过程”中,我们讨论了遵循马尔可夫性质的环境转移模型以及延迟的奖励和价值的概念( 或工具)功能。 好,在本章中,我们将研究马尔可夫决策过程,了解 Q 学习,以及一种称为深度 Q 网络的改进方法,用于在不同环境中进行泛化。
在第 3 章,“马尔可夫决策过程”中,我们讨论了遵循马尔可夫性质的环境转移模型以及延迟的奖励和值的概念(或工具)功能。 好,在本章中,我们将研究马尔可夫决策过程,了解 Q 学习,以及一种称为深度 Q 网络的改进方法,用于在不同环境中进行泛化。
我们将在本章介绍以下主题:
......@@ -89,7 +89,7 @@ Repeat forever:
![](img/d82f0db8-7eb5-4425-b229-a08877c1ba7d.png)
时间差异学习是一种用于学习值和策略迭代方法中的值函数以及 Q 学习中的 Q 函数的方法。
时间差异学习是一种用于学习值和策略迭代方法中的值函数以及 Q 学习中的 Q 函数的方法。
如果我们希望我们的 AI 智能体始终选择最大化折扣未来奖励的行动,那么我们需要某种时间差异学习。 为此,我们需要定义一个函数 Q,该函数表示当我们在状态`s`上执行动作`a`时最大的未来折扣。 因此,Q 函数表示给定状态下的动作质量。 使用它,我们可以通过仅了解当前状态和操作来估计最终得分,而在此之后无需进行任何操作。 因此,目标将是对具有最高 Q 值的状态采取该措施。 因此,我们必须通过称为 Q 学习的过程来学习此 Q 函数。
......@@ -405,7 +405,7 @@ end
# 双 DQN
使用**双重 DQN(DDQN)**的原因是常规 DQN 高估了在给定状态下可能采取的措施的 Q 值。 在常规 DQN 中,所有动作之间的高估都不相等。 因此,问题仍然存在:否则,所有行动之间的均等估计就不会成为问题。 结果,某些次优的行为获得了更高的值,因此学习最佳策略的时间增加了。 这导致我们对常规 DQN 架构进行了少量修改,并导致了所谓的 DDQN,即双深度 Q 网络。
使用**双重 DQN(DDQN)**的原因是常规 DQN 高估了在给定状态下可能采取的措施的 Q 值。 在常规 DQN 中,所有动作之间的高估都不相等。 因此,问题仍然存在:否则,所有行动之间的均等估计就不会成为问题。 结果,某些次优的行为获得了更高的值,因此学习最佳策略的时间增加了。 这导致我们对常规 DQN 架构进行了少量修改,并导致了所谓的 DDQN,即双深度 Q 网络。
在 DDQN 中,我们不是在训练过程中计算目标 Q 值时取最大 Q 值,而是使用主要网络选择操作,并使用目标网络为该操作生成目标 Q 值。 这使动作脱钩。 从目标 Q 网络中进行选择,生成目标 Q 值,从而减少高估,并有助于更快地进行训练。 DDQN 中的目标 Q 值通过以下公式更新:
......@@ -423,7 +423,7 @@ end
![](img/f31160d6-e246-41db-84d5-91fc9bd2495c.png)
决斗 DQN 具有独立的网络来计算值和优势函数,然后将它们组合回以获取 Q 函数的值。 将值和优势的计算脱钩的原因在于,对于给定状态下的每个动作,智能体不必照顾不必要的值函数。 因此,将这些计算去耦会导致鲁棒的状态动作 Q 值。
决斗 DQN 具有独立的网络来计算值和优势函数,然后将它们组合回以获取 Q 函数的值。 将值和优势的计算脱钩的原因在于,对于给定状态下的每个动作,智能体不必照顾不必要的值函数。 因此,将这些计算去耦会导致鲁棒的状态动作 Q 值。
# 用于 OpenAI Gym 山地车问题的深度 Q 网络
......@@ -1307,7 +1307,7 @@ Episode 1003 with Reward : 1.0 at epsilon 0.0008856 in steps 232
那么,蒙特卡罗树搜索与 minimax 的方法有何不同?它如何在高度复杂的围棋游戏中进行提前计划,围棋有大量潜在的反制动作? MCTS 建立了一个看起来像游戏树的统计树,但是游戏树或 minimax 具有游戏位置,即有向图的节点中的游戏状态,在 MCTS 中,有向图的节点是该游戏的状态数量,告诉我们成功模拟的次数(即在游戏结束时导致获胜的动作)相对于游戏状态经过的模拟总数的数量。 因此,仿真次数越多,越多的节点有机会成为仿真的一部分,从而导致收敛。 因此,每个节点的值取决于仿真次数。
收敛后,此统计树将指导 AI 智能体在每个级别上寻找最佳可能节点,并继续进行直至达到目标。 最初,统计树用于扩展,以便通过多次仿真为可能的游戏状态添加更多节点。 收集足够数量的节点后,同时开始选择更好的节点,如果节点成功实现了问题目标,则每次仿真它们的值都会增加,从而提高了实用性。
收敛后,此统计树将指导 AI 智能体在每个级别上寻找最佳可能节点,并继续进行直至达到目标。 最初,统计树用于扩展,以便通过多次仿真为可能的游戏状态添加更多节点。 收集足够数量的节点后,同时开始选择更好的节点,如果节点成功实现了问题目标,则每次仿真它们的值都会增加,从而提高了实用性。
在选择策略中,MCTS 还通过在现有的,有希望的节点与可能更有希望的未探索节点之间保持平衡来纳入探索与利用的权衡。 因此,仿真次数越多,统计树越大,则节点值收敛得越准确,最优决策就越好。
......
......@@ -208,7 +208,7 @@ repeat until :
# 异步优势演员评论家
在异步优势参与者批评者的架构中,每个学习智能体都包含一个参与者批评者,该学习器结合了基于值和基于策略的方法的优点。 参与者网络将状态作为输入,并预测该状态的最佳动作,而评论家网络将状态和动作作为输入,并输出动作分数以量化该状态的动作效果。 参与者网络使用策略梯度更新其权重参数,而评论家网络使用`TD(0)`来更新其权重参数,换言之,两个时间步长之间的值估计之差,如第 4 章“策略梯度”中所述。
在异步优势参与者批评者的架构中,每个学习智能体都包含一个参与者批评者,该学习器结合了基于值和基于策略的方法的优点。 参与者网络将状态作为输入,并预测该状态的最佳动作,而评论家网络将状态和动作作为输入,并输出动作分数以量化该状态的动作效果。 参与者网络使用策略梯度更新其权重参数,而评论家网络使用`TD(0)`来更新其权重参数,换言之,两个时间步长之间的值估计之差,如第 4 章“策略梯度”中所述。
在第 4 章和“策略梯度”中,我们研究了如何通过从策略梯度的预期未来收益中减去基线函数来更新策略梯度,从而在不影响预期收益的情况下减少方差的情况。 梯度。 预期的未来奖励和基线函数之间的差称为**优势函数**; 它不仅告诉我们状态的好坏,而且还告诉我们该动作的预期好坏。
......
......@@ -50,7 +50,7 @@
投资组合管理,甚至任何设计的交易算法所需的算法,都应可在不同市场上扩展。 传统算法曾经失败,因为无法在不同的市场上扩展,因为市场受资产类型和资产总数等因素支配,这些因素因市场而异。 这是因为资产的模式和行为因市场而异,并且传统算法没有得到概括。 此处的机器学习具有跨不同垂直方向(即不同金融市场)进行泛化的优势。
此外,如前所述,强化学习在金融投资组合管理中的应用在人工智能界的研究人员中很重要。 在本章中,我们将讨论一个关于[《针对金融投资组合管理问题的深度强化学习框架》](https://arxiv.org/pdf/1706.10059.pdf)的最新论文,该论文由西交利物浦大学的研究者发布。我们将介绍他们采取的方法及其相对于当前在线投资组合管理方法的绩效,如下所示:
此外,如前所述,强化学习在金融投资组合管理中的应用在人工智能界的研究人员中很重要。 在本章中,我们将讨论一个关于[《针对金融投资组合管理问题的深度强化学习框架》](https://arxiv.org/pdf/1706.10059.pdf)的最新论文,该论文由西交利物浦大学的研究者发布。我们将介绍他们采取的方法及其相对于当前在线投资组合管理方法的表现,如下所示:
* 介绍
* 问题定义
......@@ -139,7 +139,7 @@ EIIE 通过**在线随机批量学习**(**OSBL**)进行训练,其中强化
* `n``t`之前的输入周期数(此处`n = 50`
* `f = 3`是特征数量
由于`n = 50`,即输入周期数为 50,每个周期为 30 分钟,因此总时间`= 30 * 50 min = 1500 min = 25 h`。 时间段`t`上资产`i`的特征是其在时间段`t`中的收盘价,最高价和最低价。 价格矩阵不直接输入到神经网络。 价格变化决定了投资组合管理的绩效。 输入张量中的所有价格将由最新收盘价标准化,如下所示:
由于`n = 50`,即输入周期数为 50,每个周期为 30 分钟,因此总时间`= 30 * 50 min = 1500 min = 25 h`。 时间段`t`上资产`i`的特征是其在时间段`t`中的收盘价,最高价和最低价。 价格矩阵不直接输入到神经网络。 价格变化决定了投资组合管理的表现。 输入张量中的所有价格将由最新收盘价标准化,如下所示:
![](img/b2285ad8-4c43-4620-8916-314b84516b08.png)
......@@ -233,6 +233,6 @@ PVM 是按时间步长顺序(即时间顺序)收集投资组合向量的集
# 总结
在本章中,我们研究了最近发布的在金融组合管理中使用深度强化学习的方法之一。 我们查看了金融投资组合管理中的问题陈述,投资组合经理的目标,并将问题陈述映射到强化学习任务。 我们还了解了用于基准化绩效的不同财务指标以及不同的现有在线投资组合管理方法。 使用深度强化学习使财务组合自动化的研究主题是 AI 社区中要解决的最具挑战性的任务之一。 因此,除了本章介绍的方法外,还要尝试研究算法交易中的其他传统机器学习方法。
在本章中,我们研究了最近发布的在金融组合管理中使用深度强化学习的方法之一。 我们查看了金融投资组合管理中的问题陈述,投资组合经理的目标,并将问题陈述映射到强化学习任务。 我们还了解了用于基准化表现的不同财务指标以及不同的现有在线投资组合管理方法。 使用深度强化学习使财务组合自动化的研究主题是 AI 社区中要解决的最具挑战性的任务之一。 因此,除了本章介绍的方法外,还要尝试研究算法交易中的其他传统机器学习方法。
在下一章中,我们将研究强化学习在机器人技术中的使用,当前的挑战及其提出的解决方案。
\ No newline at end of file
......@@ -73,7 +73,7 @@
在蔡等人的这项研究中。 此外,我们考虑了在展示广告的情况下进行机器竞标,因为实时竞标是一项极富挑战性的任务,因为在在线展示广告的情况下,只要它由用户访问生成,广告印象的竞标就会立即开始。 在考虑了剩余预算,未来相关广告展示的可用性,出价结果和收到的反馈之后,为每次广告出价计算最佳出价,这些都可以帮助广告客户优化出价策略,从而更好地进行分配。
在这里,研究人员试图获得最佳出价功能,该功能可以最大化广告活动的关键绩效指标,这些指标主要是总点击次数或总收入。 但是,这种方法主要在静态出价的情况下起作用,在这种情况下,出价发生在广告商为每个展示支付固定的平均费率的情况下。 在实时出价的情况下,它在展示级别是动态的,这意味着在一个平台中,根据生成的展示的需求,出价值会有所不同。
在这里,研究人员试图获得最佳出价功能,该功能可以最大化广告活动的关键表现指标,这些指标主要是总点击次数或总收入。 但是,这种方法主要在静态出价的情况下起作用,在这种情况下,出价发生在广告商为每个展示支付固定的平均费率的情况下。 在实时出价的情况下,它在展示级别是动态的,这意味着在一个平台中,根据生成的展示的需求,出价值会有所不同。
本研究试图通过使用强化学习框架来解决实时竞标挑战,并将其作为顺序决策来解决,其中:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册