From 76ac64c81efd23657e7659566f3dd45bb5dac3e5 Mon Sep 17 00:00:00 2001 From: wizardforcel <562826179@qq.com> Date: Mon, 18 Jan 2021 21:56:23 +0800 Subject: [PATCH] 2021-01-18 21:56:23 --- new/handson-1shot-learn-py/2.md | 2 +- new/rl-tf/00.md | 8 ++-- new/rl-tf/01.md | 82 ++++++++++++++++----------------- 3 files changed, 46 insertions(+), 46 deletions(-) diff --git a/new/handson-1shot-learn-py/2.md b/new/handson-1shot-learn-py/2.md index d0979b52..7562bb6f 100644 --- a/new/handson-1shot-learn-py/2.md +++ b/new/handson-1shot-learn-py/2.md @@ -30,7 +30,7 @@ 简而言之,参数化机器学习算法试图学习数据及其标签的联合概率分布。 我们学习的参数是联合概率分布给出的方程; 例如,众所周知,逻辑回归可以看作是一层神经网络。 因此,考虑到一个单层神经网络,它实际学习的是方程的权重和偏差,以便使`P(Y | X)`适应`Y`(标签)。 -Logistic 回归是**判别式分类器**的一种形式,在判别式分类器中,我们仅关注`P(Y | X)`,即,我们尝试对`Y`(标签)的概率分布做出假设,并尝试以某种方式将我们的`X`(输入)映射到它。 因此,本质上,我们尝试在逻辑回归中进行以下操作: +逻辑回归是**判别式分类器**的一种形式,在判别式分类器中,我们仅关注`P(Y | X)`,即,我们尝试对`Y`(标签)的概率分布做出假设,并尝试以某种方式将我们的`X`(输入)映射到它。 因此,本质上,我们尝试在逻辑回归中进行以下操作: ![](img/010cceaa-cf25-4883-a25d-5800e070dc87.png) diff --git a/new/rl-tf/00.md b/new/rl-tf/00.md index 71adaf8e..ff92b562 100644 --- a/new/rl-tf/00.md +++ b/new/rl-tf/00.md @@ -16,7 +16,7 @@ * Python 和 TensorFlow * 线性代数是神经网络的前提 -* 安装包:Python,TensorFlow 和 OpenAI 体育馆(在第 1 章,“深度学习–架构和框架”和第 2 章中显示) 使用 OpenAI Gym* 的特工 +* 安装包:Python,TensorFlow 和 OpenAI 体育馆(在第 1 章,“深度学习–架构和框架”和第 2 章中显示) # 下载示例代码文件 @@ -31,9 +31,9 @@ 下载文件后,请确保使用以下最新版本解压缩或解压缩文件夹: -* Windows 的 WinRAR / 7-Zip -* Mac 版 Zipeg / iZip / UnRarX -* 适用于 Linux 的 7-Zip / PeaZip +* Windows 的 WinRAR/7-Zip +* Mac 版 Zipeg/iZip/UnRarX +* 适用于 Linux 的 7-Zip/PeaZip 本书的代码包也托管在 [GitHub](https://github.com/PacktPublishing/Reinforcement-Learning-with-TensorFlow) 上。 如果代码有更新,它将在现有的 GitHub 存储库中进行更新。 diff --git a/new/rl-tf/01.md b/new/rl-tf/01.md index 00b3c45b..5c99091d 100644 --- a/new/rl-tf/01.md +++ b/new/rl-tf/01.md @@ -78,9 +78,9 @@ 上图设置了神经网络的基本方法,即如果我们在第一层中有输入,而在第二层中有输出,则它看起来像。 让我们尝试解释一下。 这里: -* X1,X2 和 X3 是输入要素变量,即此处的输入维为 3(考虑到没有偏差变量)。 +* `X1`,`X2`和`X3`是输入要素变量,即此处的输入维为 3(考虑到没有偏差变量)。 -* W1,W2 和 W3 是与特征变量关联的相应权重。 当我们谈论神经网络的训练时,我们的意思是说权重的训练。 因此,这些构成了我们小型神经网络的参数。 +* `W1`,`W2`和`W3`是与特征变量关联的相应权重。 当我们谈论神经网络的训练时,我们的意思是说权重的训练。 因此,这些构成了我们小型神经网络的参数。 * 输出层中的功能是应用于从前一层接收的信息的聚合上的激活函数。 此函数创建一个与实际输出相对应的表示状态。 从输入层到输出层的一系列过程导致预测输出,称为正向传播。 @@ -88,7 +88,7 @@ * 只有在我们将权重的值(从输出层到输入层)更改为可以使误差函数最小的方向时,才会使误差最小。 这个过程称为反向传播,因为我们正朝相反的方向发展。 -现在,牢记这些基础知识,让我们进一步使用 Logistic 回归作为神经网络对神经网络进行神秘化,并尝试创建具有一个隐藏层的神经网络。 +现在,牢记这些基础知识,让我们进一步使用逻辑回归作为神经网络对神经网络进行神秘化,并尝试创建具有一个隐藏层的神经网络。 # 深度学习的激活函数 @@ -102,7 +102,7 @@ ![](img/9241aa68-606b-4192-b3cc-ccb29f4ef110.png) -请查看下图的 Sigmoid函数观察结果。 该函数的范围是 0 到 1。观察函数的曲线,我们看到`x`值介于-3 和 3 之间时,梯度非常高,但超出此范围则变得平坦。 因此,可以说这些点附近的`x`的微小变化将使 Sigmoid函数的值产生较大的变化。 因此,功能目标是将 Sigmoid功能的值推向极限。 +请查看下图的 Sigmoid函数观察结果。 该函数的范围是 0 到 1。观察函数的曲线,我们看到`x`值介于 -3 和 3 之间时,梯度非常高,但超出此范围则变得平坦。 因此,可以说这些点附近的`x`的微小变化将使 Sigmoid函数的值产生较大的变化。 因此,功能目标是将 Sigmoid功能的值推向极限。 因此,它被用于分类问题: @@ -112,17 +112,17 @@ ![](img/d8011c52-5574-4521-a42d-e18893417c8d.png) -乙状结肠得到广泛使用,但其缺点是该函数趋于+3 和-3 平坦。 因此,无论何时函数落在该区域中,梯度都趋于接近零,并且我们的神经网络学习停止。 +乙状结肠得到广泛使用,但其缺点是该函数趋于 +3 和 -3 平坦。 因此,无论何时函数落在该区域中,梯度都趋于接近零,并且我们的神经网络学习停止。 由于 Sigmoid函数输出的值从 0 到 1,即全为正,因此它在原点周围是非对称的,并且所有输出信号都是正的,即具有相同的符号。 为了解决这个问题,已将 Sigmoid函数缩放为 tanh 函数,我们将在下面进行研究。 而且,由于梯度导致的值很小,因此很容易遇到梯度消失的问题(我们将在本章稍后讨论)。 # tanh 功能 -Tanh 是围绕原点对称的连续函数。 它的范围是-1 至 1。tanh 函数表示如下: +Tanh 是围绕原点对称的连续函数。 它的范围是 -1 至 1。tanh 函数表示如下: ![](img/8aee5967-4c25-4643-b7c8-42fa21c6fa21.png) -因此,输出信号将同时为正和负,从而增加了原点周围信号的隔离。 如前所述,它是连续的,也是非线性的,并且在所有点上都是可微的。 在下图中,我们可以在 tanh 函数的图中观察这些属性。 尽管是对称的,但它变得平坦,超过-2 和 2: +因此,输出信号将同时为正和负,从而增加了原点周围信号的隔离。 如前所述,它是连续的,也是非线性的,并且在所有点上都是可微的。 在下图中,我们可以在 tanh 函数的图中观察这些属性。 尽管是对称的,但它变得平坦,超过 -2 和 2: ![](img/93d7dc16-99f6-48f9-b12f-39bb21a534d6.png) @@ -164,7 +164,7 @@ ReLU 功能相对于其他激活函数的主要优势在于,它不会同时激 ![](img/b6cdb514-2155-4640-a257-7b5a91ad8668.png) -ReLU 的导数图,对于 x <=0 and f'(x) = 1 for x> 0 显示 f'(x)= 0 +ReLU 的导数图,对于`x <= 0`,`f'(x) = 1`,对于`x > 0`,`f'(x) = 0` 查看前面的 ReLU 的前面的梯度图,我们可以看到该图的负侧显示了一个恒定的零。 因此,落入该区域的激活将具有零梯度,因此权重将不会更新。 这将导致节点/神经元不活动,因为它们将不会学习。 为了解决这个问题,我们提供了泄漏的 ReLU,将其修改为: @@ -188,9 +188,9 @@ ReLU 的导数图,对于 x <=0 and f'(x) = 1 for x> 0 显示 f'(x)= 0 # 逻辑回归作为神经网络 -Logistic 回归是一种分类器算法。 在这里,我们尝试预测输出类别的概率。 具有最高概率的类别将成为预测输出。 使用交叉熵计算实际输出和预测输出之间的误差,并通过反向传播将其最小化。 检查下图,了解二进制逻辑回归和多类逻辑回归。 区别基于问题陈述。 如果输出类的唯一数量为两个,则称为**二分类**;如果输出类的唯一数量为两个以上,则称为多类分类。 如果没有隐藏层,我们将 Sigmoid 函数用于二分类,并获得用于二进制逻辑回归的架构。 类似地,如果没有隐藏层,并且我们使用 softmax 函数进行多类分类,则可以得到多类逻辑回归的架构。 +逻辑回归是一种分类器算法。 在这里,我们尝试预测输出类别的概率。 具有最高概率的类别将成为预测输出。 使用交叉熵计算实际输出和预测输出之间的误差,并通过反向传播将其最小化。 检查下图,了解二进制逻辑回归和多类逻辑回归。 区别基于问题陈述。 如果输出类的唯一数量为两个,则称为**二分类**;如果输出类的唯一数量为两个以上,则称为多类分类。 如果没有隐藏层,我们将 Sigmoid 函数用于二分类,并获得用于二进制逻辑回归的架构。 类似地,如果没有隐藏层,并且我们使用 softmax 函数进行多类分类,则可以得到多类逻辑回归的架构。 -现在出现一个问题,为什么不使用 Sigmoid 函数进行多类 Logistic 回归? +现在出现一个问题,为什么不使用 Sigmoid 函数进行多类逻辑回归? 对于任何神经网络的所有预测输出层而言,答案都是正确的,即预测输出应遵循概率分布。 正常来说,输出具有`N`个类别。 对于具有例如`d`维的输入数据,这将导致`N`个概率。 因此,此一个输入数据的`N`概率之和应为 1,并且这些概率中的每一个应在 0 到 1 之间(含 0 和 1)。 @@ -204,7 +204,7 @@ Logistic 回归是一种分类器算法。 在这里,我们尝试预测输出 如果分布中所有值的概率在 0 到 1 之间(含 0 和 1)且所有这些概率的总和必须为 1,则该概率分布有效。 -逻辑回归可以在很小的神经网络中查看。 让我们尝试逐步实现二进制 logistic 回归,如下所示: +逻辑回归可以在很小的神经网络中查看。 让我们尝试逐步实现二进制逻辑回归,如下所示: ![](img/6ed20793-896a-4ad7-a4ce-0c8bb73a334c.png) @@ -212,9 +212,9 @@ Logistic 回归是一种分类器算法。 在这里,我们尝试预测输出 假设数据的格式为![](img/2a696620-78be-4764-81a7-796d17cc3e0f.png),其中: -* ![](img/b96e05e4-1ee4-4e3c-93da-14f7530246bb.png)和![](img/bb96a6c5-1f64-4fff-9ad7-487e22a513d2.png)(类数= 2,因为它是二分类) +* ![](img/b96e05e4-1ee4-4e3c-93da-14f7530246bb.png)和![](img/bb96a6c5-1f64-4fff-9ad7-487e22a513d2.png)(类数为 2,因为它是二分类) -* ![](img/b6b4eb94-afc8-4e5d-9fff-19e8fa5f384b.png)是'n'维,即![](img/95734265-d69f-4487-a73e-6ddc1d135ead.png)(请参见上图) +* ![](img/b6b4eb94-afc8-4e5d-9fff-19e8fa5f384b.png)是`n`维,即![](img/95734265-d69f-4487-a73e-6ddc1d135ead.png)(请参见上图) * 训练示例的数量是`m`。 因此,训练集如下所示: @@ -226,7 +226,7 @@ Logistic 回归是一种分类器算法。 在这里,我们尝试预测输出 * 因此,![](img/c233847f-4846-4b12-902d-78a9d3800b45.png)是大小为`n * m`的矩阵,即特征数*训练示例数。 - * ![](img/fc47da79-6303-41a3-9b0d-90f0fbb2b525.png)是 m 个输出的向量,其中每个![](img/5fa83ce4-add3-4c72-a5c9-273354011eb5.png)。 + * ![](img/fc47da79-6303-41a3-9b0d-90f0fbb2b525.png)是`m`个输出的向量,其中每个![](img/5fa83ce4-add3-4c72-a5c9-273354011eb5.png)。 * 参数:权重![](img/8879d006-5caf-42d8-a4bb-733f18c32e90.png)和偏差![](img/9ff62907-da72-4bf9-b4a6-143a0e22b3f3.png),![](img/c72dc1a7-6a58-4da3-ba4f-1ad4d5628d09.png),其中![](img/8919a196-f23c-4f57-b388-ba944cf1ed5a.png)和![](img/39c10f16-d8db-413c-8312-51eef5e7b5ae.png)是标量值。 @@ -317,7 +317,7 @@ Logistic 回归是一种分类器算法。 在这里,我们尝试预测输出 2. 循环遍历多个时期`e`'(每次完整的数据集将分批通过) 3. 将`J`(成本函数)和`b`(偏差)初始化为 0,对于`W1`和`W2`,您可以使用随机法线 或 **xavier 初始化**(在下一节中说明) -在此,a 是![](img/ceaa75dc-4585-4b36-a8c3-dd2b68020dda.png),dw1 是![](img/ccc57303-c425-40a9-85af-ed1626be0b3a.png),dw2 是![](img/c8121c4a-ce14-482f-9c4e-3293422533ea.png),db 是![](img/4fa1d5c5-b308-49e6-8139-0aeee60ba588.png)。 每个迭代都包含一个循环遍历 m 个示例的循环。 +在此,a 是![](img/ceaa75dc-4585-4b36-a8c3-dd2b68020dda.png),`dw1`是![](img/ccc57303-c425-40a9-85af-ed1626be0b3a.png),`dw2`是![](img/c8121c4a-ce14-482f-9c4e-3293422533ea.png),`db`是![](img/4fa1d5c5-b308-49e6-8139-0aeee60ba588.png)。 每个迭代都包含一个循环遍历`m`个示例的循环。 这里给出了相同的伪代码: @@ -376,7 +376,7 @@ Xavier 初始化是神经网络中权重的初始化,是遵循高斯分布的 * 对聚合信号进行激活以创建更深层的内部表示,这些表示又是相应隐藏节点的值 -参考上图,我们有三个输入功能![](img/08e07c6f-3487-48cf-9da0-ac1d5b589468.png)和![](img/45d82003-1dd4-4384-8964-96bab8e65d9c.png)。 显示值为 1 的节点被视为偏置单元。 除输出外,每一层通常都有一个偏置单元。 偏差单位可以看作是一个拦截项,在左右激活函数中起着重要作用。 请记住,隐藏层和其中的节点的数量是我们一开始定义的超参数。 在这里,我们将![](img/b27e3bd1-340c-4576-8805-b25a426e35b0.png)和![](img/dc417ad4-d548-4176-b05e-e4193e26620d.png)的隐藏层数定义为 1,将隐藏节点的数数定义为 3。 因此,可以说我们有三个输入单元,三个隐藏单元和三个输出单元(![](img/e0f0f3bb-5953-45d2-8a1a-cd0303871581.png)和![](img/7ccfb224-70cf-4cf8-b027-7d1eebdb7c8e.png),因为我们要预测的类别是三类)。 这将为我们提供与层关联的权重和偏差的形状。 例如,第 0 层具有 3 个单位,第 1 层具有 3 个单位。与第 i 层相关联的权重矩阵和偏差向量的形状如下: +参考上图,我们有三个输入功能![](img/08e07c6f-3487-48cf-9da0-ac1d5b589468.png)和![](img/45d82003-1dd4-4384-8964-96bab8e65d9c.png)。 显示值为 1 的节点被视为偏置单元。 除输出外,每一层通常都有一个偏置单元。 偏差单位可以看作是一个拦截项,在左右激活函数中起着重要作用。 请记住,隐藏层和其中的节点的数量是我们一开始定义的超参数。 在这里,我们将![](img/b27e3bd1-340c-4576-8805-b25a426e35b0.png)和![](img/dc417ad4-d548-4176-b05e-e4193e26620d.png)的隐藏层数定义为 1,将隐藏节点的数数定义为 3。 因此,可以说我们有三个输入单元,三个隐藏单元和三个输出单元(![](img/e0f0f3bb-5953-45d2-8a1a-cd0303871581.png)和![](img/7ccfb224-70cf-4cf8-b027-7d1eebdb7c8e.png),因为我们要预测的类别是三类)。 这将为我们提供与层关联的权重和偏差的形状。 例如,第 0 层具有 3 个单位,第 1 层具有 3 个单位。与第`i`层相关联的权重矩阵和偏差向量的形状如下: ![](img/491169f7-46c4-469b-93cd-1cb8f4f01162.png) @@ -394,9 +394,9 @@ Xavier 初始化是神经网络中权重的初始化,是遵循高斯分布的 现在,让我们了解以下符号: -* ![](img/f132a689-d9e1-4520-92ec-02d904fa66f7.png):此处,是指将第 i 层中的节点`a`连接到第 i + 1 层中的节点`d`的权重值 +* ![](img/f132a689-d9e1-4520-92ec-02d904fa66f7.png):此处,是指将第`i`层中的节点`a`连接到第`i + 1`层中的节点`d`的权重值 -* ![](img/55e5bde4-f740-483e-be5c-ce23434dc99d.png):此处,它是指将第 i 层中的偏置单元节点连接到第 i + 1 层中的节点`d`的偏置值。 +* ![](img/55e5bde4-f740-483e-be5c-ce23434dc99d.png):此处,它是指将第`i`层中的偏置单元节点连接到第`i + 1`层中的节点`d`的偏置值。 因此,可以通过以下方式计算隐藏层中的节点: @@ -406,7 +406,7 @@ Xavier 初始化是神经网络中权重的初始化,是遵循高斯分布的 ![](img/de1a8626-a125-4147-947e-5a9d005835c8.png) -其中,f 函数是指激活函数。 记住逻辑回归,其中我们分别使用 Sigmoid 和 softmax a 激活函数进行二进制和多类逻辑回归。 +其中,`f`函数是指激活函数。 记住逻辑回归,其中我们分别使用 Sigmoid 和 softmax a 激活函数进行二进制和多类逻辑回归。 类似地,我们可以这样计算输出单位: @@ -460,7 +460,7 @@ Xavier 初始化是神经网络中权重的初始化,是遵循高斯分布的 为了回想起更远的地方,将需要更深的神经网络。 取而代之的是,我们将使用一个汇总过去的模型,并将该信息以及新信息提供给分类器。 -因此,在循环神经网络中的任何时间步长 t 处,都会发生以下计算: +因此,在循环神经网络中的任何时间步长`t`处,都会发生以下计算: * ![](img/574a41ce-1848-4111-ba71-d166d62d5cff.png)。 @@ -468,7 +468,7 @@ Xavier 初始化是神经网络中权重的初始化,是遵循高斯分布的 * ![](img/69bdd200-19d8-4e66-9dbf-0b5c45dfa1bb.png)是激活函数![](img/83763684-e7c3-408a-9d7c-c71e58f2b0f2.png)。 -* ![](img/fdae7818-ad9f-4625-a517-9866ab64c7ba.png)指这两个信息的串联。 假设您的输入![](img/fabc1019-14de-464c-9815-31932fc61bd7.png)的形状为![](img/34f9ecdb-a661-464e-827f-d4d3aa3bc4f1.png),即`n`样本/行和 d 尺寸/列,![](img/b826d8a7-d3e8-4bff-bff0-8ee306dfb0fe.png)为![](img/ce5ea938-0957-4fb1-b749-eb5c1dabcd29.png)。 然后,您的串联将得到形状为![](img/98b88230-cb0a-4e47-9196-c1f6a5c25a3b.png)的矩阵。 +* ![](img/fdae7818-ad9f-4625-a517-9866ab64c7ba.png)指这两个信息的串联。 假设您的输入![](img/fabc1019-14de-464c-9815-31932fc61bd7.png)的形状为![](img/34f9ecdb-a661-464e-827f-d4d3aa3bc4f1.png),即`n`样本/行和`d`尺寸/列,![](img/b826d8a7-d3e8-4bff-bff0-8ee306dfb0fe.png)为![](img/ce5ea938-0957-4fb1-b749-eb5c1dabcd29.png)。 然后,您的串联将得到形状为![](img/98b88230-cb0a-4e47-9196-c1f6a5c25a3b.png)的矩阵。 由于任何隐藏状态的形状![](img/20e7cfcf-b30c-419a-ba4d-bb31f4b96b69.png)为![](img/e7f61b8f-a80f-4d5f-8cfc-1c0049c53242.png)。 因此,![](img/65a08623-041f-4397-a296-b078efbc3f3b.png)的形状为![](img/ef7f053d-6159-4883-bbee-3f0e14aa6ba5.png),![](img/8e1789e6-fb9a-4271-b25a-94503434bd89.png)的形状为![](img/fd5a1cce-23c4-4115-b507-ee0d26a248ca.png)。 @@ -482,7 +482,7 @@ Xavier 初始化是神经网络中权重的初始化,是遵循高斯分布的 ![](img/4ce9988c-11a9-4daa-885e-d1a5db1ee0fd.png) -在给定的时间步长 t 中,这些操作构成 RNN 信元单元。 让我们在时间步 t 可视化 RNN 单元,如下所示: +在给定的时间步长`t`中,这些操作构成 RNN 信元单元。 让我们在时间步`t`可视化 RNN 单元,如下所示: ![](img/93dd25ec-59c7-4c71-82b3-ce6a8f7fe21d.png) @@ -490,7 +490,7 @@ Xavier 初始化是神经网络中权重的初始化,是遵循高斯分布的 ![](img/db611e16-6507-40be-a626-26d9096b2a64.png) -因此,包含“ m”个示例的整个数据集的成本函数为(其中 k 表示![](img/ad927756-fb6d-46c2-a5de-e600a915427a.png)示例): +因此,包含`m`个示例的整个数据集的成本函数为(其中`k`表示![](img/ad927756-fb6d-46c2-a5de-e600a915427a.png)示例): ![](img/bfc6e3b7-5070-40ed-8b99-c4e9eaa28e96.png) @@ -544,13 +544,13 @@ CNN 在计算机视觉和自然语言处理领域具有广泛的应用。 就行 ![](img/f6a21dcf-aeb2-40bf-86fd-e7201d42287e.png) -它可以表示为具有宽度,高度的平板,并且由于具有 RGB 通道,因此其深度为 3。 现在,拍摄此图像的小片段,例如`2×2`,并在其上运行一个微型神经网络,其输出深度为`k`。 这将导致形状为`1×1×k`的图形表示。 现在,在不改变权重的情况下在整个图像上水平和垂直滑动此神经网络,将生成另一幅宽度,高度和深度为 k 的图像(也就是说,现在有 k 个通道)。 +它可以表示为具有宽度,高度的平板,并且由于具有 RGB 通道,因此其深度为 3。 现在,拍摄此图像的小片段,例如`2×2`,并在其上运行一个微型神经网络,其输出深度为`k`。 这将导致形状为`1×1×k`的图形表示。 现在,在不改变权重的情况下在整个图像上水平和垂直滑动此神经网络,将生成另一幅宽度,高度和深度为`k`的图像(也就是说,现在有`k`个通道)。 这种整合任务统称为卷积。 通常,ReLU 在以下神经网络中用作激活函数: ![](img/858a5158-bd38-4ab1-86da-57bdd947e8ed.png) -在这里,我们将 3 个特征图(即 RGB 通道)映射到 k 个特征图 +在这里,我们将 3 个特征图(即 RGB 通道)映射到`k`个特征图 斑块在图像上的滑动运动称为步幅,而每次移动的像素数(水平或垂直)都称为**步幅**。 如果补丁没有超出图像空间,则将其视为**有效填充**。 另一方面,如果色块超出图像空间以映射色块大小,则在该空间之外的色块像素将填充零。 这称为**相同填充**。 @@ -570,11 +570,11 @@ CNN 架构由一系列这些卷积层组成。 如果这些卷积层中的跨步 ![](img/8bad0a66-b329-41a9-966b-e3f7fac7dee8.png) -LeNet-5 的架构,来自 LeCunn 等人的基于梯度的学习应用于文档识别(http://yann.lecun.com/exdb/publis/pdf/lecun-98.pdf) +LeNet-5 的架构,来自 LeCunn 等人的[《用于文档识别的基于梯度的学习》](http://yann.lecun.com/exdb/publis/pdf/lecun-98.pdf) LeNet-5 是一个七级卷积神经网络,由 Yann LeCunn,Yoshua Bengio,Leon Bottou 和 Patrick Haffner 于 1998 年组成的团队发布,对数字进行了分类,银行将其用于识别支票上的手写数字。 这些层按以下顺序排序: -* 输入图片| 卷积层 1(ReLU)| 池化 1 |卷积层 2(ReLU)|池化 2 |全连接(ReLU)1 | 全连接 2 | 输出量 +* 输入图片 -> 卷积层 1(ReLU) -> 池化 1 -> 卷积层 2(ReLU) -> 池化 2 -> 全连接(ReLU)1 -> 全连接 2 -> 输出 * LeNet-5 取得了令人瞩目的结果,但是处理高分辨率图像的能力需要更多的卷积层,例如在 AlexNet,VGG-Net 和 Inception 模型中。 # AlexNet 模型 @@ -585,9 +585,9 @@ AlexNet 是 LeNet 的一种改进,由 SuperVision 小组设计,该小组由 ![](img/d75582a1-ff11-41b9-8162-3c52f80b141f.png) -Hinton 等人从 ImageNet 分类到深度卷积神经网络的 AlexNet 架构。 (https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf) +Hinton 等人[《用于 ImageNet 分类的深度卷积神经网络的 AlexNet 架构》](https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf)。 -卷积层 1 | 最大池层 1 | 归一化层 1 | 卷积层 2 | 最大池层 2 |归一化层 2 |卷积层 3 |卷积层 4 | 卷积层 5 | 最大池层 3 |全连接 6 |全连接 7 |全连接 8 | 输出量 +卷积层 1 -> 最大池层 1 -> 归一化层 1 -> 卷积层 2 -> 最大池层 2 -> 归一化层 2 -> 卷积层 3 -> 卷积层 4 -> 卷积层 5 -> 最大池层 3 -> 全连接 6 -> 全连接 7 -> 全连接 8 -> 输出 # VGG-Net 模型 @@ -601,9 +601,9 @@ Inception 由 Google 团队于 2014 年创建。其主要思想是创建更广 ![](img/8237a854-ea25-4837-a615-d71b2af70c96.png) -Szegedy 等人从卷积开始深入研究(https://arxiv.org/pdf/1409.4842.pdf) +[Szegedy 等人的《从卷积开始深入研究》](https://arxiv.org/pdf/1409.4842.pdf) -它为单个输入应用多个卷积层,并输出每个卷积的堆叠输出。 使用的卷积大小主要为 1x1、3x3 和 5x5。 这种架构允许您从相同大小的输入中提取多级功能。 早期版本也称为 GoogLeNet,该版本在 2014 年赢得了 ImageNet 挑战。 +它为单个输入应用多个卷积层,并输出每个卷积的堆叠输出。 使用的卷积大小主要为`1x1`、`3x3`和`5x5`。 这种架构允许您从相同大小的输入中提取多级功能。 早期版本也称为 GoogLeNet,该版本在 2014 年赢得了 ImageNet 挑战。 # 深度学习的局限性 @@ -669,7 +669,7 @@ Szegedy 等人从卷积开始深入研究(https://arxiv.org/pdf/1409.4842.pdf * **状态**:代理感知的环境感知或配置。 状态空间可以是有限的或无限的。 * **奖励**:座席采取任何措施后收到的反馈。 代理的目标是最大化整体奖励,即立即和将来的奖励。 奖励是预先定义的。 因此,必须正确创建它们才能有效实现目标。 * **操作**:代理在给定环境中能够执行的任何操作。 动作空间可以是有限的或无限的。 -* **SAR 三元组**:(状态,动作,奖励)称为 SAR 三元组,表示为(s,a,r)。 +* **SAR 三元组**:(状态,动作,奖励)称为 SAR 三元组,表示为`(s, a, r)`。 * **剧集**:代表整个任务的一次完整运行。 让我们推断下图所示的约定: @@ -691,13 +691,13 @@ Szegedy 等人从卷积开始深入研究(https://arxiv.org/pdf/1409.4842.pdf 代理商应该能够考虑立即和未来的回报。 因此,还会为每个遇到的状态分配一个值,该值也反映了此将来的信息。 这称为值函数。 延迟奖励的概念来了,目前,现在采取的行动将导致未来的潜在奖励。 -V(s),即状态的值定义为,从该状态到后续状态直到代理到达目标状态之前,所有将来在该状态下将要收到的奖励的期望值。 基本上,值函数告诉我们处于这种状态有多好。 值越高,状态越好。 +`V(s)`,即状态的值定义为,从该状态到后续状态直到代理到达目标状态之前,所有将来在该状态下将要收到的奖励的期望值。 基本上,值函数告诉我们处于这种状态有多好。 值越高,状态越好。 -分配给每个(s,a,s')三元组的奖励是固定的。 状态值不是这种情况。 它会随着情节中的每个动作以及不同情节而变化。 +分配给每个`(s, a, s')`三元组的奖励是固定的。 状态值不是这种情况。 它会随着情节中的每个动作以及不同情节而变化。 我们想到一个解决方案,而不是值函数,为什么我们不存储每个可能状态的知识呢? -答案很简单:这既耗时又昂贵,而且成本成倍增长。 因此,最好存储当前状态的知识,即 V(s): +答案很简单:这既耗时又昂贵,而且成本成倍增长。 因此,最好存储当前状态的知识,即`V(s)`: ```py V(s) = E[all future rewards discounted | S(t)=s] @@ -723,7 +723,7 @@ Q 学习涉及的步骤: 2. 观察当前状态`s` -3. 通过 epsilon greedy 或任何其他动作选择策略选择一个动作`a`,然后采取该动作 +3. 通过 ε 贪婪或任何其他动作选择策略选择一个动作`a`,然后采取该动作 4. 结果,收到了`a`的奖励`r`,并且感知到了新状态`s'`。 @@ -748,8 +748,8 @@ A3C 算法由 Google DeepMind 和 MILA 的联合团队于 2016 年 6 月发布 我们将在此处重点讨论,但是我们将在第 6 章,“异步方法”中进行更深入的探讨。 让我们从名称开始,即**异步优势演员评论家**(**A3C**)算法,然后将其解压缩以获得该算法的基本概述: * **异步**:在 DQN 中,您还记得我们将神经网络与我们的代理一起使用来预测动作。 这意味着只有一个代理,并且它正在与一个环境交互。 A3C 所做的是创建代理环境的多个副本,以使代理更有效地学习。 A3C 具有一个全球网络和多个工作人员代理,其中每个代理都有其自己的一组网络参数,并且每个参数都与其环境副本同时进行交互,而无需与另一个代理的环境进行交互。 它比单个代理更好的原因是每个代理的经验独立于其他代理的经验。 因此,所有工人代理人的总体经验导致了各种各样的训练。 -* **演员评论家**:Actor-critic 结合了价值迭代和策略迭代的优势。 因此,网络将为给定状态 s 估计值函数 V(s)和策略π(s)。 函数逼近器神经网络的顶部将有两个单独的全连接层,分别输出状态的值和状态策略。 代理使用值,该值充当批评者来更新策略,即,智能角色。 -* **优势**:策略梯度使用折现收益告诉代理该行动是好是坏。 用 Advantage 代替它不仅可以量化操作的好坏状态,而且可以更好地鼓励和劝阻操作(我们将在第 4 章,“策略梯度”中进行讨论)。 +* **演员评论家**:演员评论家结合了价值迭代和策略迭代的优势。 因此,网络将为给定状态 s 估计值函数`V(s)`和策略`π(s)`。 函数逼近器神经网络的顶部将有两个单独的全连接层,分别输出状态的值和状态策略。 代理使用值,该值充当批评者来更新策略,即,智能角色。 +* **优势**:策略梯度使用折现收益告诉代理该行动是好是坏。 用优势代替它不仅可以量化操作的好坏状态,而且可以更好地鼓励和劝阻操作(我们将在第 4 章,“策略梯度”中进行讨论)。 # TensorFlow 和 OpenAI Gym 简介 @@ -984,7 +984,7 @@ OpenAI Gym 由两部分组成: # 戴维·西尔弗 -David Silver 博士的 h 指数为 30,是 Google DeepMind 强化学习研究团队的负责人,也是 AlphaGo 的首席研究员。 David 共同创立了 Elixir Studios,然后在艾伯塔大学获得了强化学习博士学位,在那里他共同介绍了第一个大师级 9x9 Go 程序中使用的算法。 此后,他成为伦敦大学学院的讲师。 在 2013 年加入全职之前,他曾为 DeepMind 担任顾问。David 领导了 AlphaGo 项目,该项目成为在 Go 游戏中击败顶级职业玩家的第一个程序。 +David Silver 博士的 H 指数为 30,是 Google DeepMind 强化学习研究团队的负责人,也是 AlphaGo 的首席研究员。 David 共同创立了 Elixir Studios,然后在艾伯塔大学获得了强化学习博士学位,在那里他共同介绍了第一个大师级`9x9`围棋程序中使用的算法。 此后,他成为伦敦大学学院的讲师。 在 2013 年加入全职之前,他曾为 DeepMind 担任顾问。David 领导了 AlphaGo 项目,该项目成为在围棋游戏中击败顶级职业玩家的第一个程序。 # 彼得阿比尔 @@ -992,7 +992,7 @@ Pieter Abbeel 是加州大学伯克利分校的教授,也是 OpenAI 的研究 # Google DeepMind -Google DeepMind 是一家英国人工智能公司,成立于 2010 年 9 月,并于 2014 年被 Google 收购。它们是深度强化学习和神经图灵机领域的行业领导者。 当 AlphaGo 计划击败了第 9 dan Go 选手 Lee Sedol 时,他们在 2016 年发布了新闻。 Google DeepMind 已将重点转移到两个大领域:能源和医疗保健。 +Google DeepMind 是一家英国人工智能公司,成立于 2010 年 9 月,并于 2014 年被 Google 收购。它们是深度强化学习和神经图灵机领域的行业领导者。 当 AlphaGo 计划击败了 9 段围棋选手 Lee Sedol 时,他们在 2016 年发布了新闻。 Google DeepMind 已将重点转移到两个大领域:能源和医疗保健。 以下是其一些项目: @@ -1002,7 +1002,7 @@ Google DeepMind 是一家英国人工智能公司,成立于 2010 年 9 月, # AlphaGo 程序 -正如 Google DeepMind 先前所述,AlphaGo 是一种计算机程序,它首先击败了 Lee Sedol,然后击败了当时在 Go 中排名世界第一的 Ke Jie。 在 2017 年的改进版本中,AlphaGo 零发布,击败了 AlphaGo 100 场比赛至 0 局。 +正如 Google DeepMind 先前所述,AlphaGo 是一种计算机程序,它首先击败了 Lee Sedol,然后击败了当时在围棋中排名世界第一的 Ke Jie。 在 2017 年的改进版本中,AlphaGo 零发布,击败了 AlphaGo 100 场比赛至 0 局。 # 天秤座 -- GitLab