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

2021-01-11 22:15:14

上级 66594f3c
......@@ -300,7 +300,7 @@ Keras 是 Python 的深度学习框架,可以帮助我们识别和训练几乎
Keras 不用选择单个张量库,而是以模块化的方式管理此问题,并将 Keras 与该库联系在一起。 多个后端电机可以无缝插入 Keras。 TensorFlow 后端,Theano 后端和 Microsoft **认知工具包****CNTK**)后端目前是当前的三种后端实现。 Keras 将来将能够与更多的深度学习引擎一起使用。
Keras 的构建是为了与 Python 配合使用,因此它易于使用,模块化且易于扩展。 该 API 是为人而不是机器而设计的,并且遵循减少认知负载的最​​佳实践。 所有这些独立的模块都可以组合起来,以生成新的模型,神经层,成本功能,优化器,初始化方案,激活函数和正则化系统。 有了新的类和功能,可以轻松添加新模型。 描述的是 Python 代码中的模型,而不是用于模型设置的不同文件。
Keras 的构建是为了与 Python 配合使用,因此它易于使用,模块化且易于扩展。 该 API 是为人而不是机器而设计的,并且遵循减少认知负载的最​​佳实践。 所有这些独立的模块都可以组合起来,以生成新的模型,神经层,成本函数,优化器,初始化方案,激活函数和正则化系统。 有了新的类和函数,可以轻松添加新模型。 描述的是 Python 代码中的模型,而不是用于模型设置的不同文件。
使用 Keras 的主要原因来自其指南,主要是它易于使用。 Keras 提供的优势包括广泛接受,支持广泛的制造部署,至少包含五种支持电机(TensorFlow,CNTK,Theano,MXNet 和 PlaidML),以及对各种 GPU 和分布式训练的强大支持。 易于教学和易于模型开发。 此外,Google,Microsoft,Amazon,Apple,Nvidia,Uber 等都支持 Keras。
......@@ -369,7 +369,7 @@ print('test_acc:', test_acc)
* `os`:这提供了各种依赖于操作系统的功能。
* `glob`:该模块非常适合使用 UNIX shell 参数。
* `numpy`:该库用于基本的数学功能
* `numpy`:该库用于基本的数学函数
[以下链接提供了使用 Keras 训练神经网络的必要代码](https://shorturl.at/pwGIX)
......@@ -550,7 +550,7 @@ SAVED_MODEL_PATH = KERAS_EXPORT_DIRS[-1]
* **区域**:Google Compute Engine 将在其中运行您的工作的区域。 为了执行预测任务并保存输入和输出信息以获取非常广泛的信息,所有内容都需要在同一区域中设置。
* **最大工作器数(可选)**:处理集群中用于此任务的最大预测节点数。 您可以通过这种方式为自动批量预测缩放功能设置上限。 如果不设置值,则默认为 10。
* **最大工作器数(可选)**:处理集群中用于此任务的最大预测节点数。 您可以通过这种方式为自动批量预测缩放功能设置上限。 如果不设置值,则默认为 10。
* **运行时版本(可选)**:使用的 AI 平台的版本。 包含此选项以允许您指定要与 AI Platform 模型一起使用的运行时版本。 对于已部署的模型版本,应始终忽略此值,以告知服务使用在部署模型版本时指定的相同版本。
......
......@@ -253,7 +253,7 @@ POST https://ml.googleapis.com/v1/{parent=projects/*}/models
| `labels` | 键值对映射 | 否 | 标签有助于组织 AI 平台上的各种资源。 这些标签是可以具有任意值的键值字符串。 带标签的资源易于监视和分组。 我们最多可以提供 64 个标签。 键和值最多可以包含 63 个字符。 键必须以字母开头,并且可以包含字母数字字符,下划线和破折号。 |
| `etag` | 字符串 | 是 | 该标志用于防止两个独立模型更新之间的竞争状况。 需要在各种请求和响应之间以链接的方式使用`etag`参数,以确保对模型进行顺序更新。 建议有效使用`etag`,以避免模型版本不一致。 |
除了创建模型之外,相同的请求主体对象还可用于以下功能
除了创建模型之外,相同的请求主体对象还可用于以下函数
* `delete`:删除模型
* `get`:获取有关模型的所有信息,包括版本
......
......@@ -28,7 +28,7 @@
# 分类
分类问题通常涉及将结果分类为预定义的类别。 结果称为因变量。 结果取决于一组输入变量或功能。 输入变量或特征称为自变量。 分类问题训练模型以数学方式将自变量的组合映射到因变量。 输出是集合中的值之一。 例如,当通过分类算法时,水果图像被分类为苹果或橙子。 通常,算法规定图像属于特定类别的概率。 概率最大的类别是基于训练数据的分类。
分类问题通常涉及将结果分类为预定义的类别。 结果称为因变量。 结果取决于一组输入变量或特征。 输入变量或特征称为自变量。 分类问题训练模型以数学方式将自变量的组合映射到因变量。 输出是集合中的值之一。 例如,当通过分类算法时,水果图像被分类为苹果或橙子。 通常,算法规定图像属于特定类别的概率。 概率最大的类别是基于训练数据的分类。
# 回归
......@@ -138,7 +138,7 @@ gcloud ai-platform local predict --model-dir model_storage_path/ \
图 10.1:AI 应用的高级构建块
正如我们在图中所看到的,AI 应用管道中主要包含三个区域:数据获取,数据处理(功能工程),然后是模型执行和调整。 在本章的后续部分中,我们将考虑一个用例,并了解在 GCP 上使用 AI 工具包构建可运行的应用有多么容易。
正如我们在图中所看到的,AI 应用管道中主要包含三个区域:数据获取,数据处理(特征工程),然后是模型执行和调整。 在本章的后续部分中,我们将考虑一个用例,并了解在 GCP 上使用 AI 工具包构建可运行的应用有多么容易。
# 用例概述 – 自动发票处理(AIP)
......@@ -608,7 +608,7 @@ sg.send(message)
* GCP 将启用针对特定行业和企业的 AI 工具包,以提高各种规模企业的盈利能力和创新能力。 例如,谷歌已经在帮助零售商加速其数字和多渠道收入增长。 除此之外,Google 还帮助零售商变得完全由数据驱动,并提出建议(基于数据)以提高运营效率。 这可以通过利用 GCP,Chrome Enterprise 和 Android 上的 AI 工具以及整个连接的工具箱来实现。
* GCP 上的 AI 工具包还将促进需要大量数据和计算能力以及用于构建 AI 管道的过程和接口的研究项目。 例如,谷歌正在帮助 FDA MyStudies 利用现实世界的数据进行生物学研究。 Google Cloud 正在与 FDA 合作开发 MyStudies 应用,并提供了更好,适应性更强的保护和可配置的隐私权策略。 目的是为研究组织提供自动识别和保护个人身份信息的能力。 Google Cloud 将继续投资于各种研究和研究计划,以对该平台进行总体改进,扩大支持的评估数量,并允许与下游分析和可视化工具集成。
* AutoML Tables 使您的整个数据科学家团队能够以极高的速度和规模在结构化数据上自动构建和部署 ML 模型。 它具有出色的功能工程模型训练函数。 训练开始时,AutoML 表将自动执行某些功能工程任务,例如对输入进行标准化。 数值函数被限制在范围内,以实现更好的模型可靠性,日期时间输入参数的规范化,基本文本处理清除和停止单词删除,并为因变量创建单热编码和嵌入。 AutoML 表在线性,前馈深度神经网络,梯度提升决策树,AdaNet 和各种模型架构的集合上执行并行测试,以确定适合您的数据集的最佳模型架构。 用户将能够使用 StackDriver 日志记录查看 AutoML 表结构,并能够导出测试数据。
* AutoML Tables 使您的整个数据科学家团队能够以极高的速度和规模在结构化数据上自动构建和部署 ML 模型。 它具有出色的特征工程模型训练函数。 训练开始时,AutoML 表将自动执行某些特征工程任务,例如对输入进行标准化。 数值函数被限制在范围内,以实现更好的模型可靠性,日期时间输入参数的规范化,基本文本处理清除和停止单词删除,并为因变量创建单热编码和嵌入。 AutoML 表在线性,前馈深度神经网络,梯度提升决策树,AdaNet 和各种模型架构的集合上执行并行测试,以确定适合您的数据集的最佳模型架构。 用户将能够使用 StackDriver 日志记录查看 AutoML 表结构,并能够导出测试数据。
* AI Hub 是即将加入 GCP 的另一个非常有用的功能。 AI Hub 是用于构建最复杂的 ML 管道的一站式设施。 可以使用预配置的笔记本使用一些预训练的模型来构建 AI 应用,以及轻松地训练新模型。 AI Hub 还确保以一致的方式访问相关事件数据集。 还可以在模型开发上进行协作,并利用基于通用框架(例如 TensorFlow)构建的模型。 这极大地促进了在 GCP 上训练和部署模型。
* 通过 AI 平台笔记本,可以通过受保护的,公开可用的笔记本实例 URL 轻松管理 JupyterLab 实例。 它将使您能够创建和管理与 JupyterLab 预先打包的虚拟机实例。 AI Platform Notebooks 实例将支持 PyTorch 和 TensorFlow 框架。 这些笔记本将受到 GCP 认证和授权的保护。 AI Platform Notebooks 将随附许多预装的常用软件。
* AI 平台深度学习容器是 GCP 提供一种访问预训练模型的独特方法,可以在 GCP 上高度优化和一致的环境的帮助下快速对其进行原型化和使用。 这有助于快速构建工作流,并以最小的进入障碍和成本促进实验。 这是使 AI 开发功能完全普及的巨大飞跃。
......
......@@ -32,7 +32,7 @@
# 回归
回归处理学习连续映射功能,该功能可以预测各种输入功能提供的值。 该函数可以是线性的或非线性的。 如果函数是线性的,则称为线性回归;如果函数是非线性的,则通常称为多项式回归。 当存在多个输入要素(变量)时预测值,我们称为多元回归。 回归的一个非常典型的例子是房屋预测问题。 提供房屋的各种参数,例如建筑面积,位置,房间数量等,可以使用历史数据预测房屋的准确售价。
回归处理学习连续映射函数,该函数可以预测各种输入特征提供的值。 该函数可以是线性的或非线性的。 如果函数是线性的,则称为线性回归;如果函数是非线性的,则通常称为多项式回归。 当存在多个输入要素(变量)时预测值,我们称为多元回归。 回归的一个非常典型的例子是房屋预测问题。 提供房屋的各种参数,例如建筑面积,位置,房间数量等,可以使用历史数据预测房屋的准确售价。
# 分类
......@@ -48,7 +48,7 @@
# 深度学习
尽管机器学习为计算机提供了学习决策边界的能力,但它错过了这样做的鲁棒性。 机器学习模型必须针对每个特定应用进行特别设计。 人们花费了数小时来决定选择哪些功能以实现最佳学习。 随着数据交叉折叠和数据非线性的增加,机器学习模型难以产生准确的结果。 科学家们很快意识到,需要一个更强大的工具来实现这一增长。 在 1980 年代,人工神经网络的概念得到了重生,并且凭借更快的计算能力,开发了更深版本的人工神经网络,从而为我们提供了我们一直在寻找的强大工具-深度学习!
尽管机器学习为计算机提供了学习决策边界的能力,但它错过了这样做的鲁棒性。 机器学习模型必须针对每个特定应用进行特别设计。 人们花费了数小时来决定选择哪些特征以实现最佳学习。 随着数据交叉折叠和数据非线性的增加,机器学习模型难以产生准确的结果。 科学家们很快意识到,需要一个更强大的工具来实现这一增长。 在 1980 年代,人工神经网络的概念得到了重生,并且凭借更快的计算能力,开发了更深版本的人工神经网络,从而为我们提供了我们一直在寻找的强大工具-深度学习!
# 深度学习的应用
......@@ -160,7 +160,7 @@ ANN 由两个组件构建:节点和权重。 节点扮演神经元的角色,
# Sigmoid 激活
对于所有实数输入,此功能的输出范围从零到一。 这对于从神经元生成概率分数非常重要。 该函数也是连续且非线性的,有助于保持输出的非线性。 同样,曲线的梯度在原点附近陡峭,并且随着我们开始沿`x`轴移动而饱和。 这意味着,围绕原点的输入会发生微小变化,从而导致输出发生重大变化。 此特性有助于分类任务,因为它试图使输出保持接近零或一。 以下是针对输入`x`进行 Sigmoid 激活的方程式:
对于所有实数输入,此函数的输出范围从零到一。 这对于从神经元生成概率分数非常重要。 该函数也是连续且非线性的,有助于保持输出的非线性。 同样,曲线的梯度在原点附近陡峭,并且随着我们开始沿`x`轴移动而饱和。 这意味着,围绕原点的输入会发生微小变化,从而导致输出发生重大变化。 此特性有助于分类任务,因为它试图使输出保持接近零或一。 以下是针对输入`x`进行 Sigmoid 激活的方程式:
![](img/9a4c25fc-874f-4b01-974a-9706c0615bb5.png)
......
......@@ -285,7 +285,7 @@ Scikit-learn 或 sklearn 是一个重要的 Python 库,它提供了很多机
`$ conda install scikit-learn`
2. 使 TensorFlow 的`keras`类的对象具有如下数据加载功能
2. 使 TensorFlow 的`keras`类的对象具有如下数据加载函数
```py
# making object of fashion_mnist class
......
......@@ -748,7 +748,7 @@ AE 和 RBM 都旨在最小化重构误差,但是 AE 与 RBM 在以下方面有
《无监督预训练的一种方法》首次引入自编码器作为神经网络中模块化学习。 然后《通过多层感知器进行的自动关联和奇异值分解》将它们用于降维,《自编码器,最小描述长度和亥姆霍兹 *F* 能量》将其用于线性特征学习。
自编码器随着时间的推移而发展,在过去的十年中提出了几种变体。 在 2008 年,P.Vincent 等人。 《使用降噪自编码器提取和构成稳健特征》介绍了**去噪自编码器****DAE**), 网络被迫从损坏的版本中重建输入数据,以便他们可以学习更强大的功能
自编码器随着时间的推移而发展,在过去的十年中提出了几种变体。 在 2008 年,P.Vincent 等人。 《使用降噪自编码器提取和构成稳健特征》介绍了**去噪自编码器****DAE**), 网络被迫从损坏的版本中重建输入数据,以便他们可以学习更强大的特征
I.Goodfellow 等开发了**稀疏自编码器**,它通过引入稀疏约束来扩大隐藏表示。 可以在《测量深度网络中的不变性》中找到详细信息。
......@@ -791,7 +791,7 @@ Number of fraud samples: 492
Number of normal samples: 284315
```
[这里](https://www.kaggle.com/mlg-ulb/creditcardfraud)`Data`页面中的功能可视化面板中可以看出,V1 至 V28 是高斯标准分布,而`Amount` 不是。 因此,我们需要标准化`Amount`函数,如以下代码所示:
[这里](https://www.kaggle.com/mlg-ulb/creditcardfraud)`Data`页面中的函数可视化面板中可以看出,V1 至 V28 是高斯标准分布,而`Amount` 不是。 因此,我们需要标准化`Amount`函数,如以下代码所示:
```py
>>> from sklearn.preprocessing import StandardScaler
......@@ -818,7 +818,7 @@ Number of normal samples: 284315
>>> data_train = data_train[data_train.Class == 0]
```
由于我们的方法不受监督,因此我们不需要训练目标。 因此,我们仅采用训练集中的功能,如下所示:
由于我们的方法不受监督,因此我们不需要训练目标。 因此,我们仅采用训练集中的特征,如下所示:
```py
>>> X_train = data_train.drop(['Class'], axis=1).values
......@@ -1178,7 +1178,7 @@ Area under precision-recall curve: 0.6955808468297678
# 去噪自编码器
**去噪自编码器****DAE**)是自编码器的另一种规范化版本,但是该规范化是在输入数据上添加的,而不是损失函数。 自编码器被迫从损坏的输入数据中重建原始数据,以期希望学习到更强大的功能
**去噪自编码器****DAE**)是自编码器的另一种规范化版本,但是该规范化是在输入数据上添加的,而不是损失函数。 自编码器被迫从损坏的输入数据中重建原始数据,以期希望学习到更强大的特征
对于每个输入样本,将随机选择一组特征进行更改。 建议将腐败率定为 30% 至 50%。 通常,训练样本越多,腐败率越低; 样本越少,腐败率越高。
......
......@@ -311,7 +311,7 @@ def shuffle_data(self):
self.images, self.labels = shuffle(self.images, self.labels, random_state = self.seed)
```
下一个功能将是`data`类的重要功能。 该函数将从加载的文件中生成一批数据和标签。 我们知道我们是分批训练模型的,并且我们已经声明了一个超参数`BATCH_SIZE`,它决定了一批图像的数量。 因此,该函数将继续循环遍历从文件加载的数据,并每次产生一批大小`BATCH_SIZE`。 在这里,使用`yield`代替`return`,因为`yield`保留了功能控件,并且我们创建了生成器对象,而不是一旦使用它们便被销毁的列表,从而节省了我们的内存:
下一个函数将是`data`类的重要函数。 该函数将从加载的文件中生成一批数据和标签。 我们知道我们是分批训练模型的,并且我们已经声明了一个超参数`BATCH_SIZE`,它决定了一批图像的数量。 因此,该函数将继续循环遍历从文件加载的数据,并每次产生一批大小`BATCH_SIZE`。 在这里,使用`yield`代替`return`,因为`yield`保留了函数控制,并且我们创建了生成器对象,而不是一旦使用它们便被销毁的列表,从而节省了我们的内存:
```py
def generate_batches(self):
......@@ -621,7 +621,7 @@ YOLO 中使用的损失函数可分为四个部分:
第一个特征映射集是从 VGG 16 架构的第 23 层提取的,大小为`38 x 38 x 512`(此处 512 是过滤器的深度或数量)。 第二组要素图的大小为`19 x 19 x 1,024`,适用于捕获稍大的对象。 进一步的特征映射集将尺寸减小到`10 x 10 x 512``5 x 5 x 256``3 x 3 x 256`,最后减小到`1 x 1 x 256`
为了进行预测,SSD 在提取的特征映射上使用`3 x 3 x d``d`表示过滤器的深度)卷积内核。 对于特征映射上的每个点,`3 x 3`内核输出边界框偏移量和类分数。 SSD 为功能图中的每个点分配了默认框。 `3 x 3`卷积的工作是从覆盖对象的默认边界框预测四个偏移值。 除偏移量外,它还可以预测类别的`c`类别分数。 如果我们在每个位置都有`m x n`尺寸特征映射,并且在每个位置都有`k`默认边界框,则从该层做出的预测总数将为`(c + 4) x k x m x n`。 每个位置的默认框数通常为 4 到 6。 这些默认边界框的比例和大小由网络中最低和最高要素图的比例决定。 假设我们有`m`个特征映射; 然后,默认边界框的比例(`s[k]`)由以下公式给出:
为了进行预测,SSD 在提取的特征映射上使用`3 x 3 x d``d`表示过滤器的深度)卷积内核。 对于特征映射上的每个点,`3 x 3`内核输出边界框偏移量和类分数。 SSD 为特征映射中的每个点分配了默认框。 `3 x 3`卷积的工作是从覆盖对象的默认边界框预测四个偏移值。 除偏移量外,它还可以预测类别的`c`类别分数。 如果我们在每个位置都有`m x n`尺寸特征映射,并且在每个位置都有`k`默认边界框,则从该层做出的预测总数将为`(c + 4) x k x m x n`。 每个位置的默认框数通常为 4 到 6。 这些默认边界框的比例和大小由网络中最低和最高要素图的比例决定。 假设我们有`m`个特征映射; 然后,默认边界框的比例(`s[k]`)由以下公式给出:
![](img/93c36209-1288-4964-b35e-b1a8b03d31fa.png)
......
......@@ -78,7 +78,7 @@ MobileNet 的结构由 30 层组成。 它以`3 x 3`的标准卷积作为第一
MobileNet 经过 ImageNet 数据的训练,图像的输入尺寸为`224 x 224 x 3`。根据 ImageNet 图像的输入尺寸,从卷积层出来的最终输出尺寸为`7 x 7 x 1,024`。 卷积结束后,将应用**全局平均池****GAP**)层,以使尺寸为`1 x 1 x 1,024`。 假设尺寸为`H x W x D`的特征映射,GAP 层会计算`HW`值的平均值,并使用单个平均值替换`H x W`值,因此输出尺寸始终为`1 x 1 x D`
由于 MobileNet 主要用于分类,因此结束层是全连接层。 MobileNets 中使用的激活函数是 ReLU6。 我们已经了解了 ReLU,但是 ReLU6 是什么? ReLU6 与 ReLU 功能相同,但上限限制为六个。 作者声称 ReLU6 可帮助模型更早地学习稀疏特征。 以下等式定义了 ReLU6 激活函数:
由于 MobileNet 主要用于分类,因此结束层是全连接层。 MobileNets 中使用的激活函数是 ReLU6。 我们已经了解了 ReLU,但是 ReLU6 是什么? ReLU6 与 ReLU 函数相同,但上限限制为六个。 作者声称 ReLU6 可帮助模型更早地学习稀疏特征。 以下等式定义了 ReLU6 激活函数:
![](img/9b45c6c3-fae7-4c2a-9d9c-b395303ff1e3.png)
......
......@@ -587,7 +587,7 @@ Epoch 251/300
# 用于股价预测的 GRU RNN
预测股票会使许多人感兴趣。 多年以来,已经开发出了大量使用机器学习技术预测股票价格的方法。 例如,在《Python 机器学习示例的》的“第 7 章”中,线性回归,随机森林和支持向量机被用于预测股票价格。 在像这样的传统机器学习解决方案中,功能工程可能是最费力的阶段。 这是手动创建特定于域的特征或信号的过程,这些特征或信号对于定向预测比原始输入更为重要。 典型的发明功能包括`x`天移动平均线,一段时间内的波动率和`x`天回报率。 相反,基于 RNN 的深度学习解决方案不涉及以手工为特色的手工制作,而是自己找出及时或顺序的关系。 我们将通过使用 GRU RNN 预测**道琼斯工业平均指数****DJIA**)来展示循环架构的强大功能。
预测股票会使许多人感兴趣。 多年以来,已经开发出了大量使用机器学习技术预测股票价格的方法。 例如,在《Python 机器学习示例的》的“第 7 章”中,线性回归,随机森林和支持向量机被用于预测股票价格。 在像这样的传统机器学习解决方案中,特征工程可能是最费力的阶段。 这是手动创建特定于域的特征或信号的过程,这些特征或信号对于定向预测比原始输入更为重要。 典型的发明功能包括`x`天移动平均线,一段时间内的波动率和`x`天回报率。 相反,基于 RNN 的深度学习解决方案不涉及以手工为特色的手工制作,而是自己找出及时或顺序的关系。 我们将通过使用 GRU RNN 预测**道琼斯工业平均指数****DJIA**)来展示循环架构的强大功能。
尽管我们强调了深度学习的优势,但我们并未断言深度学习方法优于传统的机器学习方法。 在机器学习中,没有一种适合所有的。
......
......@@ -254,7 +254,7 @@ ML 上下文中的差异涉及数据中存在的信息。 因此,高方差是
任何项目都首先考虑到问题,而 ML 项目也不例外。 在开始 ML 项目之前,对要使用 ML 解决的问题有清楚的了解是非常重要的。 因此,关于标准 ML 工作流程的问题表述和映射是 ML 项目中的良好起点。 但是 **ML 工作流程**是什么意思? 本节就是关于这一点的。
设计 ML 系统并使用它们来解决复杂的问题不仅需要 ML,还需要一系列技能。 很高兴知道 ML 需要不同比例的知识,例如统计,领域知识,软件工程,功能工程和基础高中数学。 为了能够设计这样的系统,某些步骤对于几乎所有 ML 工作流程都是必不可少的,并且每个步骤都需要一定的技能。 在本节中,我们将看一下这些步骤并简要讨论它们。
设计 ML 系统并使用它们来解决复杂的问题不仅需要 ML,还需要一系列技能。 很高兴知道 ML 需要不同比例的知识,例如统计,领域知识,软件工程,特征工程和基础高中数学。 为了能够设计这样的系统,某些步骤对于几乎所有 ML 工作流程都是必不可少的,并且每个步骤都需要一定的技能。 在本节中,我们将看一下这些步骤并简要讨论它们。
该工作流程的灵感来自 **CRISP-DM**,它代表**跨行业数据挖掘标准流程**,在与数据挖掘和分析有关的许多行业中得到了广泛的应用。
......
......@@ -145,7 +145,7 @@
* 我们有 10 个实例(包含`x1``x2``y`属性)被分为两个类别,0 和 1。
* 给定`x1``x2`,我们的(神经网络)任务是预测`y`,这实际上使这成为分类任务。
当我们说神经网络预测某事时,是指应该学习最能近似某个功能的输入数据的底层表示(我们看到了一段时间前的功能图看起来像)。
当我们说神经网络预测某事时,是指应该学习最能近似某个功能的输入数据的底层表示(我们看到了一段时间前的特征映射看起来像)。
现在,让我们看看如何将这些数据作为神经网络的输入。 由于我们的数据具有两个预测变量(或两个输入向量),因此神经网络的输入层必须包含两个神经元。 我们将使用以下神经网络架构来完成此分类任务:
......
......@@ -41,7 +41,7 @@ SSD 的主要功能概述如下:
* SSD 原始论文使用 VGG16 作为基础网络提取要素层,但也可以考虑使用其他网络,例如 Inception 和 ResNet。
* SSD 在基础网络之上添加了另外六个功能层,由`conv4_3``conv7``fc7`),`conv8_2``conv9_2``conv10_2``conv11_2`组成,用于对象检测。
* 一组默认框与每个要素图单元相关联,因此默认框位置相对于要素图单元是固定的。 每个默认框都会预测`c`类中每个类别的得分以及相对于地面真实情况的四个偏移,从而产生`(c + 4)k`过滤器。 这些过滤器应用于特征映射(大小为`m x n`),产生`(c + 4)kmn`输出。 下表说明了这一点。 SSD 的独特之处在于默认框适用于不同分辨率的多个功能图
* 一组默认框与每个要素图单元相关联,因此默认框位置相对于要素图单元是固定的。 每个默认框都会预测`c`类中每个类别的得分以及相对于地面真实情况的四个偏移,从而产生`(c + 4)k`过滤器。 这些过滤器应用于特征映射(大小为`m x n`),产生`(c + 4)kmn`输出。 下表说明了这一点。 SSD 的独特之处在于默认框适用于不同分辨率的多个特征映射
| **层名称** | **检测** | **过滤器输出** |
| --- | --- | --- |
......@@ -71,7 +71,7 @@ R-FCN 也基于区域提议。 与 R-CNN 的主要区别在于,R-FCN 一直等
![](img/d692d9d9-8340-4d58-a219-8002b8b93391.png)
在上图中,汽车的图像通过 ResNet-101 生成了特征映射。 请注意,我们在“第 4 章”,“基于图像的深度学习”中使用,它介绍了如何可视化**卷积神经网络****CNN**)及其功能图。 这种技术本质上是相同的。 然后,我们在特征映射内获取`k x k`内核(在此图像中,`k = 3`),并将其在图像上滑动以创建`k^2(C+1)`得分图。 如果得分图包含一个对象,则我们投票`yes`,否则,我们投票`no`。 展平不同区域之间的投票以创建 softmax 层,该层被映射到对象类别以进行检测。
在上图中,汽车的图像通过 ResNet-101 生成了特征映射。 请注意,我们在“第 4 章”,“基于图像的深度学习”中使用,它介绍了如何可视化**卷积神经网络****CNN**)及其特征映射。 这种技术本质上是相同的。 然后,我们在特征映射内获取`k x k`内核(在此图像中,`k = 3`),并将其在图像上滑动以创建`k^2(C+1)`得分图。 如果得分图包含一个对象,则我们投票`yes`,否则,我们投票`no`。 展平不同区域之间的投票以创建 softmax 层,该层被映射到对象类别以进行检测。
R-FCN 的主要功能如下所述:
......@@ -655,7 +655,7 @@ Luca Bertinetto,Jack Valmadre,Joao F. Henriques,Andrea Vedaldi 和 Philip
![](img/c5197e16-6f1d-47e0-875c-e2e789f29750.png)
在该图中,网络的输出是功能图。 通过 CNN(`f[θ]`)重复该过程两次,一次分别进行测试(`x`)和训练(`z`)。 图像,生成两个相互关联的特征映射,如下所示:
在该图中,网络的输出是特征映射。 通过 CNN(`f[θ]`)重复该过程两次,一次分别进行测试(`x`)和训练(`z`)。 图像,生成两个相互关联的特征映射,如下所示:
`g[θ](z, x) = f[θ](z) * f[θ](x)`
......
......@@ -227,7 +227,7 @@ CNN 具有许多不同的参数。 训练 CNN 模型需要许多输入图像并
* 输出大小为`{(n + 2p - f)/s +1} x {(n + 2p - f)/s + 1}`
* 参数数量为`(f[h] x f[w] + 1) x n[f]`
关键任务是选择上述参数(过滤器大小(`f`),过滤器数量(`nf`),步幅(`s`),填充 CNN 每一层的值(`p`),激活(`a`)和偏差。 下表显示了各种 CNN 参数的功能图
关键任务是选择上述参数(过滤器大小(`f`),过滤器数量(`nf`),步幅(`s`),填充 CNN 每一层的值(`p`),激活(`a`)和偏差。 下表显示了各种 CNN 参数的特征映射
![](img/15dd0fc7-8e49-434d-9395-c68e7e7b8280.png)
......
......@@ -201,7 +201,7 @@ for pair in POSE_PAIRS:
* 图像穿过前模块的不同层,最后一个模块连接到左半块。
* 左半块具有四个瓶颈回旋块-`f1``f2``f4``f8`,每个块分别具有 1、1/2、1/4 和 1/8 的分辨率。 如果查看架构图,就在堆叠的沙漏感应下,这应该很清楚。
* 每个块的最后一层–`f1``f2``f4``f8`–创建一个对应的特征映射,即`lf1``lf2``lf4``lf8`
* 功能图`lf1``lf2``lf4``lf8`连接到右半块。 该块的输出为`rf1`
* 特征映射`lf1``lf2``lf4``lf8`连接到右半块。 该块的输出为`rf1`
* 底部层也从左半块连接到`lf8`特征映射。
* 头部快连接到`rf1`。 总共有两个头部快。 每个使用`1 x 1`卷积。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册