提交 9d22ab18 编写于 作者: W wizardforcel

2021-01-16 18:19:28

上级 ba688b35
......@@ -252,15 +252,15 @@ for epoch in range(epochs):
图 1.11:Seq2seq 网络
动编码器是一种特殊的编码器-解码器网络,属于无监督学习类别。 自动编码器尝试从未标记的数据中学习,将目标值设置为等于输入值。 例如,如果输入的图像尺寸为 100 x 100,则输入向量的尺寸为 10,000。 因此,输出大小也将为 10,000,但隐藏层的大小可能为 500。简而言之,您尝试将输入转换为较小尺寸的隐藏状态表示,从而从隐藏状态重新生成相同的输入 。
编码器是一种特殊的编码器-解码器网络,属于无监督学习类别。 自编码器尝试从未标记的数据中学习,将目标值设置为等于输入值。 例如,如果输入的图像尺寸为 100 x 100,则输入向量的尺寸为 10,000。 因此,输出大小也将为 10,000,但隐藏层的大小可能为 500。简而言之,您尝试将输入转换为较小尺寸的隐藏状态表示,从而从隐藏状态重新生成相同的输入 。
如果您能够训练一个可以做到这一点的神经网络,那么 voilà,您将找到一个很好的压缩算法,可以将高维输入以一个数量级的幅度传输到低维向量 获得。
如今,自编码器被用于不同的情况和行业。 当我们讨论语义分割时,您将在第 4 章,“计算机视觉”中看到类似的架构。
如今,自编码器被用于不同的情况和行业。 当我们讨论语义分割时,您将在第 4 章,“计算机视觉”中看到类似的架构。
![Encoders and decoders](img/B09475_01_12.jpg)
图 1.12:自编码器的结构
图 1.12:自编码器的结构
#### 循环神经网络
......
......@@ -308,11 +308,11 @@ running_loss += loss.item()
#### LinkNet
LinkNet 利用自动编码器的思想,该思想曾经是一种数据压缩技术。 自动编码器的架构有两个部分:编码器和解码器。 编码器将输入编码到低维空间,而解码器从低维空间解码/重新创建输入。 自动编码器被广泛用于减小压缩的尺寸等。
LinkNet 利用自编码器的思想,该思想曾经是一种数据压缩技术。 自编码器的架构有两个部分:编码器和解码器。 编码器将输入编码到低维空间,而解码器从低维空间解码/重新创建输入。 自编码器被广泛用于减小压缩的尺寸等。
![LinkNet](img/B09475_04_10.jpg)
图 4.7:自编码器
图 4.7:自编码器
LinkNet 由一个初始块,一个最终块,一个带有四个卷积模块的编码器块以及一个带有四个解卷积模块的解码器组成。 初始块使用跨步卷积和最大池化层对输入图像进行两次下采样。 然后,编码器模块中的每个卷积模块都会以大步卷积对输入进行一次下采样。 然后将编码后的输出传递到解码器块,该解码器块会在每个反卷积块中使用步进反卷积对输入进行上采样; 反卷积将在以下部分中说明。
......
......@@ -18,7 +18,7 @@
数据处理是序列数据(尤其是自然语言)的主要挑战之一。 PyTorch 提供了一些实用程序包来处理该问题。 我们将使用预处理后的数据来简化实施,但是我们将遍历实用程序包以了解它们的工作原理。 与这些实用程序包一起,我们将使用`torchtext`,它消除了处理输入数据时将面临的许多困难。
尽管本章全都是关于顺序数据的,但我们将专注于顺序数据的一个子集,这是自然语言。 特定于自然语言的一些研究人员认为,我们使用 LSTM 或 GRU 处理输入的方式不是应该如何处理自然语言。 自然语言在单词之间保持树状的层次关系,我们应该加以利用。 **堆栈增强型解析器-解释器神经网络****SPINN**)[2]是来自 Stanford NLP 组的一种此类实现。 这种处理树状结构序列数据的特殊类型的网络是*循环神经网络*(与循环神经网络不同)。 在本章的最后一部分中,我们将详细介绍 SPINN。
尽管本章全都是关于顺序数据的,但我们将专注于顺序数据的一个子集,这是自然语言。 特定于自然语言的一些研究人员认为,我们使用 LSTM 或 GRU 处理输入的方式不是应该如何处理自然语言。 自然语言在单词之间保持树状的层次关系,我们应该加以利用。 **栈式增强型解析器-解释器神经网络****SPINN**)[2]是来自 Stanford NLP 组的一种此类实现。 这种处理树状结构序列数据的特殊类型的网络是*递归神经网络*(与循环神经网络不同)。 在本章的最后一部分中,我们将详细介绍 SPINN。
## 问题
......@@ -96,7 +96,7 @@ array([[O., 0., 0., 1., 0., 0., 0., 0., 0., 0.],
使用自然语言(或由离散的单个单元组成的任何序列)的标准方法是将每个单词转换为一个热编码向量,并将其用于网络的后期。 这种方法的明显缺点是,随着词汇量的增加,输入层的大小也会增加。
词嵌入是减少阵列或张量维数的数十年历史的想法。 **潜在 Dirichlet 分配****LDA**)和**潜在语义分析****LSA**)是我们用来进行嵌入的两个此类示例。 但是,在 Facebook 研究科学家 Tomas Mikolov 和他的团队于 2013 年实施 word2vec 之后,就开始将嵌入视为前提。
词嵌入是减少阵列或张量维数的数十年历史的想法。 **潜在迪利克雷分配****LDA**)和**潜在语义分析****LSA**)是我们用来进行嵌入的两个此类示例。 但是,在 Facebook 研究科学家 Tomas Mikolov 和他的团队于 2013 年实施 word2vec 之后,就开始将嵌入视为前提。
Word2vec 是一种无监督的学习算法,在这种算法中,网络未经训练就进行嵌入。 这意味着您可以在一个英语数据集上训练 word2vec 模型,并使用它为另一模型生成嵌入。
......@@ -150,7 +150,7 @@ inputs.vocab.load_vectors('glove.6B.300d')
图 5.3:RNN 单元流程图
已经尝试了不同的布线机制来设计 RNN 单元以获得最有效的输出。 在本节中,我们将使用最基本的一层,它由两个全连接层和一个 softmax 层组成。 但是在现实世界中,人们将 LSTM 或 GRU 用作 RNN 单元,事实证明,这在许多用例中都可以提供最新的结果。 我们将在下一部分中看到它们。 实际上,已经进行了大量比较以找到所有顺序任务的最佳架构,例如 *LSTM:《搜索空间漫游》* [3]。
已经尝试了不同的布线机制来设计 RNN 单元以获得最有效的输出。 在本节中,我们将使用最基本的一层,它由两个全连接层和一个 softmax 层组成。 但是在现实世界中,人们将 LSTM 或 GRU 用作 RNN 单元,事实证明,这在许多用例中都可以提供最新的结果。 我们将在下一部分中看到它们。 实际上,已经进行了大量比较以找到所有顺序任务的最佳架构,例如《LSTM:搜索空间漫游》[3]。
我们开发了一个简单的 RNN,如以下代码所示。 没有复杂的门控机制,也没有架构模式。 这是理所当然的。
......@@ -352,7 +352,7 @@ criterion = nn.CrossEntropyLoss()
opt = optim.Adam(model.parameters(), lr=lr)
```
尽管 PyTorch 会为用户进行反向传播,并且反向传播在概念上始终是相同的,但顺序网络的反向传播与我们在普通网络中看到的反向传播并不完全相似。 在这里,我们通过时间(**BPTT**)进行**反向传播。 为了了解 BPTT 的工作原理,我们必须假设 RNN 是相似 RNN 单元的长重复单元,而不是将相同的输入视为通过同一 RNN 单元传递。**
尽管 PyTorch 会为用户进行反向传播,并且反向传播在概念上始终是相同的,但顺序网络的反向传播与我们在普通网络中看到的反向传播并不完全相似。 在这里,我们进行**时间上的反向传播****BPTT**)。 为了了解 BPTT 的工作原理,我们必须假设 RNN 是相似 RNN 单元的长重复单元,而不是将相同的输入视为通过同一 RNN 单元传递。
如果我们在句子中有五个单词,则我们有五个 RNN 单元,但是所有单元的权重都相同,并且当我们更新一个 RNN 单元的权重时,我们将更新所有 RNN 单元的权重。 现在,如果将输入分为五个时间步,每个单词位于每个时间步,则我们应该能够轻松描绘每个单词如何通过每个 RNN 单元。 在进行反向传播时,我们将遍历每个 RNN 单元,并在每个时间步长累积梯度。 更新一个 RNN 单元的权重也会更新其他 RNN 单元的权重。 由于所有五个单元都具有渐变,并且每次更新都会更新所有五个单元的权重,因此我们最终将每个单元的权重更新了五次。 无需进行五次更新,而是将梯度累加在一起并更新一次。 这是 BPTT。
......@@ -366,7 +366,7 @@ opt = optim.Adam(model.parameters(), lr=lr)
图 5.6:LSTM 单元
LSTM 网络由 Sepp Hochreiter 于 1991 年引入,并于 1997 年发布。LSTM 网络在循环单元中建立了多个门,其中正常的`RNNCell`具有`Linear`层,该层通过`softmax`层相互作用以生成输出和 另一个`Linear`层会生成隐藏状态。 有关 LSTM 的详细说明,请参见原始论文或克里斯托弗·奥拉(Christopher Olah)的博客,标题为*了解 LSTM 网络* [4]。
LSTM 网络由 Sepp Hochreiter 于 1991 年引入,并于 1997 年发布。LSTM 网络在循环单元中建立了多个门,其中正常的`RNNCell`具有`Linear`层,该层通过`softmax`层相互作用以生成输出和 另一个`Linear`层会生成隐藏状态。 有关 LSTM 的详细说明,请参见原始论文或克里斯托弗·奥拉(Christopher Olah)的博客,标题为《了解 LSTM 网络》[4]。
LSTM 主要由遗忘门,更新门和单元状态组成,这使得 LSTM 与常规 RNN 单元不同。 该架构经过精心设计,可以执行特定任务。 遗忘门使用输入向量和先前状态的隐藏状态来确定例如应忘记的内容,更新门使用当前输入和先前的隐藏状态来确定应添加到信息存储库中的内容。
......@@ -475,9 +475,9 @@ RNN 实现通常是单向的,这就是到目前为止我们已经实现的。
注意背后的想法是,当我们阅读句子时,我们专注于句子的重要部分。 例如,将一个句子从一种语言翻译成另一种语言,我们将更专注于上下文信息,而不是构成句子的文章或其他单词。
一旦概念清晰,在 PyTorch 中获得关注就很简单。 注意可以有效地用于许多应用中,包括语音处理; 翻译,以前自编码器是首选实现; CNN 到 RNN,用于图像字幕; 和别的。
一旦概念清晰,在 PyTorch 中获得关注就很简单。 注意可以有效地用于许多应用中,包括语音处理; 翻译,以前自编码器是首选实现; CNN 到 RNN,用于图像字幕; 和别的。
实际上,*就是您所需要的全部* [5]是该论文的作者仅通过关注并删除所有其他复杂的网络架构(如 LSTM)就能够获得 SOTA 结果的方法。
实际上,《注意力就是您所需要的全部》[5]是该论文的作者仅通过关注并删除所有其他复杂的网络架构(如 LSTM)就能够获得 SOTA 结果的方法。
### 循环神经网络
......
# 第 6 章。生成网络
生成网络得到了加州理工学院理工学院本科物理学教授理查德·费曼(Richard Feynman)和诺贝尔奖获得者的名言的支持:*“我无法创造,我无法理解。”* 生成网络是拥有可以理解世界并在其中存储知识的系统的最有前途的方法之一。 顾名思义,生成网络学习真实数据分布的模式,并尝试生成看起来像来自此真实数据分布的样本的新样本。
生成网络得到了加州理工学院理工学院本科物理学教授理查德·费曼(Richard Feynman)和诺贝尔奖获得者的名言的支持:“我无法创造,就无法理解”。 生成网络是拥有可以理解世界并在其中存储知识的系统的最有前途的方法之一。 顾名思义,生成网络学习真实数据分布的模式,并尝试生成看起来像来自此真实数据分布的样本的新样本。
生成模型是无监督学习的子类别,因为它们通过尝试生成样本来学习基本模式。 他们通过推送低维潜向量和参数向量来了解生成图像所需的重要特征,从而实现了这一目的。 网络在生成图像时获得的知识本质上是关于系统和环境的知识。 从某种意义上说,我们通过要求网络做某事来欺骗网络,但是网络必须在不了解自己正在学习的情况下学习我们的需求。
......@@ -18,7 +18,7 @@
图 6.1:生成模型应用示例,例如超分辨率和图像修复
来源:*具有上下文注意的生成图像修复*,余佳辉等人和*使用生成对抗网络*的照片级逼真的单图像超分辨率,Christian Ledig 等人
来源:《具有上下文注意的生成图像修复》,余佳辉等人;《使用生成对抗网络的照片级逼真的单图像超分辨率》,Christian Ledig 等人
GAN 的创建者 Ian Goodfellow 描述了几类生成网络:
......@@ -31,7 +31,7 @@ GAN 的创建者 Ian Goodfellow 描述了几类生成网络:
* 自回归模型
*
自回归模型是从先前的值推断当前值的模型,正如我们在第 5 章,“序列数据处理”中使用 RNN 所讨论的那样。 **可变自动编码器****VAE**)是自动编码器的一种变体,由编码器和解码器组成,其中编码器将输入编码为低维潜在空间向量, 解码器解码潜向量以生成类似于输入的输出。
自回归模型是从先前的值推断当前值的模型,正如我们在第 5 章,“序列数据处理”中使用 RNN 所讨论的那样。 **变分自编码器****VAE**)是自编码器的一种变体,由编码器和解码器组成,其中编码器将输入编码为低维潜在空间向量, 解码器解码潜向量以生成类似于输入的输出。
整个研究界都同意,GAN 是人工智能世界中的下一个重要事物之一。 GAN 具有生成网络和对抗网络,并且两者相互竞争以生成高质量的输出图像。 GAN 和自回归模型都基于不同的原理工作,但是每种方法都有其自身的优缺点。 在本章中,我们将使用这两种方法开发一个基本示例。
......@@ -55,7 +55,7 @@ GAN 的创建者 Ian Goodfellow 描述了几类生成网络:
图 6.4:从 PixelCNN 生成的图像
资料来源:*使用 PixelCNN 解码器*,Aäronvan den Oord 和其他人进行的条件图像生成
资料来源:《使用 PixelCNN 解码器的条件图像生成》,Aäronvan den Oord 和其他人
PixelCNN 由 DeepMind 引入,并且是 DeepMind 引入的三种自回归模型之一。 在首次引入 PixelCNN 之后,已经进行了多次迭代以提高速度和效率,但是我们将学习基本的 PixelCNN,这是构建 WaveNet 所需要的。
......@@ -211,7 +211,7 @@ WaveNet 的基本构件是膨胀卷积,它取代了 RNN 的功能来获取上
图 6.8:没有卷积卷积的 WaveNet 架构
来源: *WaveNet:原始音频的生成模型*,Aaron van den Oord 等
来源: 《WaveNet:原始音频的生成模型》,Aaron van den Oord 等
“图 6.8”显示了 WaveNet 在进行新值预测时如何提取有关上下文的信息。 输入以蓝色(图片的底部)给出,它是原始音频样本。 例如,一个 16 kHz 的音频样本具有一秒钟音频的 16,000 个数据点,如果与自然语言的序列长度(每个单词将是一个数据点)相比,这是巨大的。 这些长序列是为什么 RNN 对原始音频样本不太有效的一个很好的原因。
......@@ -221,7 +221,7 @@ LSTM 网络可以记住上下文信息的实际序列长度为 50 到 100。上
图 6.9:膨胀卷积
来源: *WaveNet:原始音频的生成模型*,Aaron van den Oord 等
来源: 《WaveNet:原始音频的生成模型》,Aaron van den Oord 等
到目前为止,应该很明显,要达到 LSTM 网络的上下文保持能力为 50 到 100 的实际限制,该网络需要 98 层,这在计算上是昂贵的。 这是我们使用膨胀卷积的地方。 使用膨胀卷积,我们将为每个层都有一个膨胀因子,并且以指数方式增加该膨胀因子将以对数形式减少任何特定上下文窗口宽度所需的层数。
......@@ -268,9 +268,9 @@ WaveNet 的完整架构建立在膨胀卷积网络和卷积后门控激活的基
图 6.12:WaveNet 架构
来源: *WaveNet:原始音频的生成模型*,Aaron van den Oord 等
来源: 《WaveNet:原始音频的生成模型》,Aaron van den Oord 等
*中提供的 WaveNet 的结构图图 6.12* 显示了所有这些小组件以及它们如何连接在一起。 跳过连接之后的部分在程序中称为密集层,尽管它不是上一章介绍的密集层。 通常,密集层表示全连接层,以将非线性引入网络并获得所有数据的概览。 但是 WaveNet 的作者发现,正常的致密层可以由一串 ReLU 代替,并且 1x1 卷积可以通过最后的 softmax 层实现更高的精度,该层可以展开为 256 个单位(巨大扇出的 8 位µ律量化) 音频)。
“图 6.12”中提供的 WaveNet 的结构图显示了所有这些小组件以及它们如何连接在一起。 跳过连接之后的部分在程序中称为密集层,尽管它不是上一章介绍的密集层。 通常,密集层表示全连接层,以将非线性引入网络并获得所有数据的概览。 但是 WaveNet 的作者发现,正常的致密层可以由一串 ReLU 代替,并且 1x1 卷积可以通过最后的 softmax 层实现更高的精度,该层可以展开为 256 个单位(巨大扇出的 8 位µ律量化) 音频)。
```py
class WaveNetModule(torch.nn.Module):
......@@ -324,7 +324,7 @@ def forward(self, x, skip_size):
return x, skip
```
`ResidualStack`使用层数和堆栈数来创建膨胀因子。 通常,每个层具有 *2 ^ l* 作为膨胀因子,其中`l`是层数。 从`1`*2 ^ l* 开始,每个堆栈都具有相同数量的层和相同样式的膨胀因子列表。
`ResidualStack`使用层数和堆栈数来创建膨胀因子。 通常,每个层具有`2 ^ l`作为膨胀因子,其中`l`是层数。 从`1``2 ^ l`开始,每个堆栈都具有相同数量的层和相同样式的膨胀因子列表。
方法`stack_res_block`使用我们前面介绍的`ResidualBlock`为每个堆栈和每个层中的每个节点创建一个残差块。 该程序引入了一个新的 PyTorch API,称为`torch.nn.DataParallel`。 如果有多个 GPU,则`DataParallel` API 会引入​​并行性。 将模型制作为数据并行模型可以使 PyTorch 知道用户可以使用更多 GPU,并且 PyTorch 从那里获取了它,而没有给用户带来任何障碍。 PyTorch 将数据划分为尽可能多的 GPU,并在每个 GPU 中并行执行模型。
......@@ -352,7 +352,7 @@ return torch.stack(skip_connections)
## GAN
在许多深度学习研究人员看来,GAN 是过去十年的主要发明之一。 它们在本质上不同于其他生成网络,尤其是在训练方式上。 Ian Goodfellow 撰写的第一篇有关对抗网络生成数据的论文于 2014 年发表。 GAN 被认为是一种无监督学习算法,其中有监督学习算法学习使用标记数据`y`来推理函数 *y'= f(x)*
在许多深度学习研究人员看来,GAN 是过去十年的主要发明之一。 它们在本质上不同于其他生成网络,尤其是在训练方式上。 Ian Goodfellow 撰写的第一篇有关对抗网络生成数据的论文于 2014 年发表。 GAN 被认为是一种无监督学习算法,其中有监督学习算法学习使用标记数据`y`来推理函数`y' = f(x)`
这种监督学习算法本质上是区分性的,这意味着它学会对条件概率分布函数进行建模,在此条件函数中,它说明了某事物的概率被赋予了另一事物的状态。 例如,如果购买房屋的价格为 100,000 美元,那么房屋位置的概率是多少? GAN 从随机分布生成输出,因此随机输入的变化使输出不同。
......@@ -539,7 +539,7 @@ loss = nn.BCELoss()
图 6.18:实践中的 CycleGAN
资料来源:*使用周期一致的对抗性网络*的不成对图像翻译,朱俊彦等
资料来源:《使用周期一致的对抗性网络的不成对图像翻译》,朱俊彦等
CycleGAN 是 GAN 类型的智能变体之一。 在同一架构中,两个 GAN 之间巧妙设计的循环流可教导两个不同分布之间的映射。 先前的方法需要来自不同分布的成对图像,以便网络学习映射。 对于示例,如果目标是建立一个可以将黑白图像转换为彩色图像的网络,则数据集在训练集中需要将同一图像的黑白和彩色版本作为一对。 尽管很难,但在一定程度上这是可能的。 但是,如果要使冬天拍摄的图像看起来像夏天拍摄的图像,则训练集中的这对图像必须是在冬天和夏天拍摄的具有相同对象和相同帧的完全相同的图像。 这是完全不可能的,而那正是 CycleGAN 可以提供帮助的地方。
......
......@@ -780,8 +780,8 @@ output = he s a talented young writer . <EOS>
* 问题→答案
* 用预训练的单词嵌入(例如 word2vec 或 GloVe)替换嵌入
* 尝试使用更多的层,更多的隐藏单元和更多的句子。 比较训练时间和结果。
* 如果您使用翻译对,其中成对具有两个相同的词组(`I am test \t I am test`),则可以将其用作自编码器。 尝试这个:
* 训练为自编码器
* 如果您使用翻译对,其中成对具有两个相同的词组(`I am test \t I am test`),则可以将其用作自编码器。 尝试这个:
* 训练为自编码器
* 仅保存编码器网络
* 从那里训练新的解码器进行翻译
......
......@@ -99,15 +99,15 @@ Brett Sperry 首先使用术语**实时策略**(**RTS**)作为宣传其游
如果这些组件在接收来自给定游戏环境的信号时被学习代理上的传感器感知和处理,则可以成功应用强化学习算法。 传感器感知到的信号可以进行处理,以形成当前的环境状态,根据状态信息预测动作,并接收反馈,即在所采取动作的好坏之间进行奖励。 这将更新状态-动作对值,即根据收到的反馈加强其学习。
此外,可以使用深度自编码器将较高维度的状态和操作空间编码为紧凑的较低维度。 这将状态和动作空间的特征尺寸减小为重要特征。
此外,可以使用深度自编码器将较高维度的状态和操作空间编码为紧凑的较低维度。 这将状态和动作空间的特征尺寸减小为重要特征。
# 深度自编码器
# 深度自编码器
**深度自编码器**是一种由两个对称神经网络组成的深度神经网络,如下图所示,它能够将输入数据转换为尺寸也较小的更紧凑的表示形式。 编码器网络首先将输入编码为紧凑的压缩表示形式,然后解码器网络将该表示形式解码回以输出原始输入。 如下图所示,中间层连接了两个神经网络(编码器和解码器),其中包含输入数据的紧凑压缩表示形式:
**深度自编码器**是一种由两个对称神经网络组成的深度神经网络,如下图所示,它能够将输入数据转换为尺寸也较小的更紧凑的表示形式。 编码器网络首先将输入编码为紧凑的压缩表示形式,然后解码器网络将该表示形式解码回以输出原始输入。 如下图所示,中间层连接了两个神经网络(编码器和解码器),其中包含输入数据的紧凑压缩表示形式:
![](img/29ee99cf-f820-4ee5-961e-9f762dec4114.png)
编码器的架构
自编码器的架构
此处,`X`表示输入和输出层中的节点数,它等于输入数据的特征(维度)数,而`N`表示节点数 在中间层中,它等于紧凑压缩表示形式所需的特征(尺寸)数。
......@@ -121,24 +121,24 @@ Brett Sperry 首先使用术语**实时策略**(**RTS**)作为宣传其游
![](img/2402276b-314f-4e45-bbd0-bfc839297449.png)
训练深度的自编码器后,无需解码器网络。 因此,我们的目标是训练网络,使解码器网络的输出与编码器网络的输入之间的损耗最小。 结果,中间层学会了创建更好的输入表示形式。 因此,我们可以为输入特征向量检索特征向量的更好,紧凑和低维的表示形式。
训练深度的自编码器后,无需解码器网络。 因此,我们的目标是训练网络,使解码器网络的输出与编码器网络的输入之间的损耗最小。 结果,中间层学会了创建更好的输入表示形式。 因此,我们可以为输入特征向量检索特征向量的更好,紧凑和低维的表示形式。
# 强化学习如何更好?
以前,通过基于案例的在线计划,专家提供的人的踪迹是学习过程中最重要的组成部分。 这些由专家提供,以创建解决方案列表。 这样就创建了案例库并消耗了大量空间。 而且,它还带有一个缺点,即它们没有捕获所有可能的痕迹,也就是说,特别是在连续的状态动作空间的情况下,状态和动作的组合。
但是,通过强化学习,不需要存储这些迹线,而且,高维和连续状态动作空间可以处理深度神经网络,该网络将其作为输入并输出最佳动作。 此外,如果状态作用空间很大,并且需要减小尺寸以进一步减少计算时间,那么使用如前所示的深层自编码器会将输入数据转换为紧凑的低维向量。
但是,通过强化学习,不需要存储这些迹线,而且,高维和连续状态动作空间可以处理深度神经网络,该网络将其作为输入并输出最佳动作。 此外,如果状态作用空间很大,并且需要减小尺寸以进一步减少计算时间,那么使用如前所示的深层自编码器会将输入数据转换为紧凑的低维向量。
强化学习中的奖励功能必须与每个状态相关联,以使从开始状态开始的动作通过一系列中间状态导致达到目标状态,从而使预期的奖励总和最大化,从而导致 最佳路径。
基本的强化学习算法,例如 Q 学习和 SARSA 算法(在第 5 章, *Q-Learning 和深度 Q 网络*中进行了解释)在收敛时间和比率方面表现更好 与早期的在线案例学习相比。
此外,在深度强化学习领域中正在进行大量研究,该研究集中于使用图像进行代理感知以在更复杂的领域中更好地工作。 以前的自动编码器方法有助于将非常复杂的域转换为更简单的域。 此外,学习奖励功能和自动编码器的其他变体,尤其是去噪堆叠式自动编码器,将进一步改善结果。
此外,在深度强化学习领域中正在进行大量研究,该研究集中于使用图像进行代理感知以在更复杂的领域中更好地工作。 以前的自编码器方法有助于将非常复杂的域转换为更简单的域。 此外,学习奖励功能和自编码器的其他变体,尤其是去噪堆叠式自编码器,将进一步改善结果。
此外,使用异步或分布式多主体强化学习方法(在第 6 章,*异步方法*中讨论),其中学习代理与自己的环境副本并行工作将进一步减少 收敛时间更好的结果。
# 概要
在本章中,我们讨论了真正的战略游戏以及 AI 社区的研究人员为何试图解决它们。 我们还介绍了实际策略游戏的复杂性和属性以及不同的传统 AI 方法,例如基于案例的推理和基于在线案例的计划以解决它们及其缺点。 我们讨论了强化学习成为该问题的最佳人选的原因,以及强化学习如何成功解决与早期传统 AI 方法失败有关的实时战略游戏相关的复杂性和问题。 我们还了解了深层自编码器,以及如何使用它们来减少输入数据的维数并获得更好的输入表示。
在本章中,我们讨论了真正的战略游戏以及 AI 社区的研究人员为何试图解决它们。 我们还介绍了实际策略游戏的复杂性和属性以及不同的传统 AI 方法,例如基于案例的推理和基于在线案例的计划以解决它们及其缺点。 我们讨论了强化学习成为该问题的最佳人选的原因,以及强化学习如何成功解决与早期传统 AI 方法失败有关的实时战略游戏相关的复杂性和问题。 我们还了解了深层自编码器,以及如何使用它们来减少输入数据的维数并获得更好的输入表示。
在下一章中,我们将介绍使深度强化学习成为众人关注的最著名的话题,并使之成为 AI 算法的旗手,即 Alpha Go。
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册