提交 85eb32a3 编写于 作者: W wizardforcel

2021-01-12 14:29:24

上级 b6308a4f
......@@ -156,9 +156,9 @@ ML 包含许多算法和主题。 虽然构成 ML 模型的所有此类算法都
# 监督学习
在这种 ML 形式中,该算法具有大量训练样本,其中包含有关将用于确定输出特征的所有参数或*特征*的信息。 此输出功能可以是连续的值范围或离散的标签集合。 基于此,监督式机器学习算法分为两部分:
在这种 ML 形式中,该算法具有大量训练样本,其中包含有关将用于确定输出特征的所有参数或*特征*的信息。 此输出特征可以是连续的值范围或离散的标签集合。 基于此,监督式机器学习算法分为两部分:
* **分类**:在输出功能中产生离散标签的算法,例如*正常**异常*或一组新闻类别
* **分类**:在输出特征中产生离散标签的算法,例如*正常**异常*或一组新闻类别
* **回归**:例如,当输出特征具有真实值时,政党在选举中可能获得的选票数,或预测达到其熔点的材料的温度
大多数 ML 爱好者在开始学习机器学习时,由于其直观的简单性,往往倾向于首先熟悉监督学习。 它具有一些最简单的算法,无需深入的数学知识即可轻松理解,甚至可以从学生在学校最后几年学到的数学知识中得出。 一些最著名的监督学习算法是线性回归,逻辑回归,支持向量机和 K 最近邻。
......@@ -291,7 +291,7 @@ ML 上下文中的差异涉及数据中存在的信息。 因此,高方差是
考虑一种情况,在这种情况下,会向分析公司的员工提供公司的账单数据,并要求其经理使用该数据构建机器学习系统,从而可以优化公司的整体财务预算。 现在,此数据的格式不能直接提供给 ML 模型,因为 ML 模型期望数据以数字向量的形式出现。
尽管数据可能状况良好,但是员工仍必须执行*某些操作*才能将数据转换为有利的形式。 考虑到数据已经被弄乱了,他们仍然需要确定他将要包含在最终数据集中的哪些特征。 实际上,任何可测量的都可以成为此处的功能。 这就是优秀的领域知识来的地方。 这些知识可以帮助员工选择具有*高预测能力*的功能。 听起来似乎很轻巧,但它需要很多技巧,而且绝对是一项艰巨的任务。 这是**特征工程**的经典示例。
尽管数据可能状况良好,但是员工仍必须执行*某些操作*才能将数据转换为有利的形式。 考虑到数据已经被弄乱了,他们仍然需要确定他将要包含在最终数据集中的哪些特征。 实际上,任何可测量的都可以成为此处的特征。 这就是优秀的领域知识来的地方。 这些知识可以帮助员工选择具有*高预测能力*的特征。 听起来似乎很轻巧,但它需要很多技巧,而且绝对是一项艰巨的任务。 这是**特征工程**的经典示例。
有时,我们采用多种技术来帮助我们从给定的数据集中自动提取最有意义的特征。 当数据的维数很高且特征难以解释时,此功能特别有用。 这被称为**特征选择**。 特征选择不仅有助于开发具有最相关特征的数据的 ML 模型,而且还有助于增强模型的预测表现并减少其计算时间。
......
......@@ -71,7 +71,7 @@
![](img/fd99fc73-d225-45bc-9dcb-8ae25e9d5647.png)
在这里,`i`意味着我们总共具有`i`输入功能。 可以将以下规则分解为:
在这里,`i`意味着我们总共具有`i`个输入特征。 可以将以下规则分解为:
* 我们分别处理特征,然后将其乘以权重
* 针对所有单个输入特征完成此过程后,我们将所有加权输入进行求和并求和,最后加上偏差项。
......@@ -80,7 +80,7 @@
我们刚刚研究的元素是 Frank Rosenblatt 在 1960 年代提出的。 基于某个阈值为输入的加权总和分配 0 或 1 的想法也称为**阶跃函数**。 文献中有许多这样的规则,这些规则称为更新规则。
我们研究的神经元是能够学习线性功能**线性神经元**。 它们不适合学习本质上是非线性的表示。 实际上,馈送神经网络的几乎所有输入实际上都是非线性的。 在下一部分中,我们将介绍另一种能够捕获数据中可能存在的非线性的神经元。
我们研究的神经元是能够学习线性函数**线性神经元**。 它们不适合学习本质上是非线性的表示。 实际上,馈送神经网络的几乎所有输入实际上都是非线性的。 在下一部分中,我们将介绍另一种能够捕获数据中可能存在的非线性的神经元。
某些人可能想知道这种 NN 模型是否称为 **MLP****多层感知器**)。 好吧,是的。 实际上,罗森布拉特(Rosenblatt)早在 1960 年代就曾提出过这种建议。 那么什么是神经网络? 我们将在短期内了解答案。
......@@ -94,7 +94,7 @@
在神经网络的训练过程中,可能会出现这样的情况,即偏差和权重值的微小变化可能会以剧烈的方式影响神经网络的输出。 理想情况下,这不应发生。 偏差或权重值的微小变化都应该仅导致输出的微小变化。 使用阶跃函数时,权重和偏差项的变化会在很大程度上影响输出,因此需要阶跃函数以外的其他东西。
神经元的运作背后是一种功能。 在线性神经元的情况下,我们看到其操作是基于阶跃函数的。 我们有一堆能够捕获非线性的函数。 Sigmoid 功能就是这样的功能,使用该功能的神经元通常被称为 Sigmoid 神经元。 与阶跃函数不同,对于 Sigmoid 神经元,将使用以下规则生成输出:
神经元的运作背后是一种函数。 在线性神经元的情况下,我们看到其操作是基于阶跃函数的。 我们有一堆能够捕获非线性的函数。 Sigmoid 函数就是这样的函数,使用该函数的神经元通常被称为 Sigmoid 神经元。 与阶跃函数不同,对于 Sigmoid 神经元,将使用以下规则生成输出:
![](img/c07baaa1-6d33-4e1b-b759-e81faa535390.png)
......@@ -114,7 +114,7 @@
* ReLU
* 泄漏的 ReLU
在文献中,这些功能以及我们刚刚研究的两个功能都称为激活函数。 目前,ReLU 及其变体是迄今为止最成功的激活函数。
在文献中,这些函数以及我们刚刚研究的两个函数都称为激活函数。 目前,ReLU 及其变体是迄今为止最成功的激活函数。
我们仍然剩下一些与人工神经网络有关的基本知识。 让我们总结一下到目前为止所学到的内容:
......@@ -145,7 +145,7 @@
* 我们有 10 个实例(包含`x1``x2``y`属性)被分为两个类别,0 和 1。
* 给定`x1``x2`,我们的(神经网络)任务是预测`y`,这实际上使这成为分类任务。
当我们说神经网络预测某事时,是指应该学习最能近似某个功能的输入数据的底层表示(我们看到了一段时间前的特征映射看起来像)。
当我们说神经网络预测某事时,是指应该学习最能近似某个函数的输入数据的底层表示(我们看到了一段时间前的特征映射看起来像)。
现在,让我们看看如何将这些数据作为神经网络的输入。 由于我们的数据具有两个预测变量(或两个输入向量),因此神经网络的输入层必须包含两个神经元。 我们将使用以下神经网络架构来完成此分类任务:
......@@ -214,9 +214,9 @@ Sigmoid 激活函数输出的值范围为 0-1,但是我们正在处理二分
我们将使用这两种技术来优化神经网络的学习过程。 但是,我们要优化什么呢? 我们将如何最小化或最大化? 我们需要一种特定类型的成本,我们将尝试将其最小化。
我们将根据功能定义成本。 在为 NN 模型定义成本函数之前,我们必须确定成本函数的参数。 在我们的案例中,权重和偏差是 NN 试图学习以提供给我们准确结果的函数的参数(请参阅本节之前的信息框)。 此外,我们将必须计算网络在训练过程的每个步骤中所造成的损失量。
我们将根据函数定义成本。 在为 NN 模型定义成本函数之前,我们必须确定成本函数的参数。 在我们的案例中,权重和偏差是 NN 试图学习以提供给我们准确结果的函数的参数(请参阅本节之前的信息框)。 此外,我们将必须计算网络在训练过程的每个步骤中所造成的损失量。
对于二元分类问题,称为**交叉熵**损失函数的损失函数(对于二元分类问题,称为二元交叉交叉熵损失函数)被广泛使用,我们将使用它。 那么,此功能是什么样的呢?
对于二元分类问题,称为**交叉熵**损失函数的损失函数(对于二元分类问题,称为二元交叉交叉熵损失函数)被广泛使用,我们将使用它。 那么,此函数是什么样的呢?
![](img/6d3375fb-d8cf-49aa-ba7e-26efe4d6b342.png)
......@@ -232,7 +232,7 @@ Sigmoid 激活函数输出的值范围为 0-1,但是我们正在处理二分
![](img/bc0b7b74-497f-4bae-8f14-a5661a0c48af.png)
功能可能看起来有些混乱,因此请放慢速度并确保您了解它。
函数可能看起来有些混乱,因此请放慢速度并确保您了解它。
我们最终可以朝优化过程迈进。 大致而言,梯度下降正在尝试执行以下操作:
......@@ -257,7 +257,7 @@ Here, we are taking the partial derivative of *J(w,b)* with respect to the weigh
![](img/0505bb51-e6be-440d-86e5-3774b8532cbe.png)
这些权重和偏差的新分配基本上称为*反向传播*,并且它是与*梯度下降*结合完成的。 在计算了权重和偏差的新值之后,重复整个前向传播过程,直到 NN 模型得到很好的概括。 请注意,这些规则仅适用于一个实例,前提是该实例仅具有一项功能。 在包含多个功能的多个实例上执行此操作可能很困难,因此,我们将跳过该部分,但是,有兴趣看到此功能的完整版本的人员可以参考 Andrew Ng 的在线讲座。
这些权重和偏差的新分配基本上称为*反向传播*,并且它是与*梯度下降*结合完成的。 在计算了权重和偏差的新值之后,重复整个前向传播过程,直到 NN 模型得到很好的概括。 请注意,这些规则仅适用于一个实例,前提是该实例仅具有一项特征。 在包含多个特征的多个实例上执行此操作可能很困难,因此,我们将跳过该部分,但是,有兴趣看到此功能的完整版本的人员可以参考 Andrew Ng 的在线讲座。
我们已经介绍了标准神经网络的必要基本单元,这并不容易。 我们先定义神经元,然后以反向传播(反向传播的讨厌术语)结束。 我们已经奠定了深度神经网络的基础。 读者可能想知道这是否是我们刚刚研究的深度神经网络。 正如 **Andriy Burkov** 所说(摘自他的书《百页机器学习书》):
......@@ -361,7 +361,7 @@ CNN 的核心是一个称为卷积的操作(在计算机视觉和图像处理
* `h -> (t)`
* `a -> (t + 1)`
这些索引称为时间步长(图中的上标表示 RNN 的展开)。 循环层利用在先前时间步长给出的输入以及在当前时间步长上操作时的功能。 让我们一步一步地了解此循环层如何产生输出。
这些索引称为时间步长(图中的上标表示 RNN 的展开)。 循环层利用在先前时间步长给出的输入以及在当前时间步长上操作时的特征。 让我们一步一步地了解此循环层如何产生输出。
# 将字母输入网络
......
......@@ -126,7 +126,7 @@ def loadImageFile(fileimage):
```
前面的`loadImageFile`函数采用单个参数,该参数是包含图像的文件的名称。 在下载的文件文件夹中,我们有两个可用的此类文件:`train-images-idx3-ubyte``t10k-images-idx3-ubyte`。 先前功能的输出是`numpy`图像数组。 我们可以将结果存储在 Python 变量中,如下所示:
前面的`loadImageFile`函数采用单个参数,该参数是包含图像的文件的名称。 在下载的文件文件夹中,我们有两个可用的此类文件:`train-images-idx3-ubyte``t10k-images-idx3-ubyte`。 先前函数的输出是`numpy`图像数组。 我们可以将结果存储在 Python 变量中,如下所示:
```py
test_images = loadImageFile("t10k-images-idx3-ubyte")
......@@ -255,7 +255,7 @@ pip3 install keras
# 复用我们的函数来加载图像和标签文件
还记得我们在探索数据集期间创建的`loadImageFile``loadLabelFile`函数吗? 我们将再次需要它们,因此将这些相同的功能复制到此笔记本中。
还记得我们在探索数据集期间创建的`loadImageFile``loadLabelFile`函数吗? 我们将再次需要它们,因此将这些相同的函数复制到此笔记本中。
它们一起为每个函数生成两个代码单元:
......@@ -432,7 +432,7 @@ model.compile(loss=keras.losses.categorical_crossentropy,
metrics=['accuracy'])
```
在我们的模型中(我们在前面的代码块中进行了编译),我们将分类交叉熵设置为`loss`函数; 所使用的优化程序功能`Adam`优化程序,评估指标是`accuracy`
在我们的模型中(我们在前面的代码块中进行了编译),我们将分类交叉熵设置为`loss`函数; 所使用的优化程序函数`Adam`优化程序,评估指标是`accuracy`
然后,我们使用 Keras 模型对象的`fit()`方法训练神经网络:
......@@ -581,7 +581,7 @@ def index():
return "Oops, nothing here!"
```
我们将在下一节介绍转换图像功能
我们将在下一节介绍转换图像函数
# 转换图像的函数
......
......@@ -151,7 +151,7 @@ model.add(tf.layers.dense({units: 1, activation: sigmoid}));
前面的示例创建了一个具有以下内容的简单神经网络:
* 两层(请记住,在计算总层数时我们不考虑输入层)。 网络采用具有四个功能的输入(`inputShape`参数有助于指定该功能)。
* 两层(请记住,在计算总层数时我们不考虑输入层)。 网络采用具有四个特征的输入(`inputShape`参数有助于指定该特征)。
* 第一层包含四个神经元(因此`units: 4`)。 第二层(输出层)只有一个神经元。
* `relu`激活函数用于第一层,`sigmoid`激活函数用于输出层。
......@@ -370,7 +370,7 @@ model.summary();
# 训练 TF.js 模型
现在,我们将编写一个`async`函数。 这样做的原因是,不会使调用我们函数的客户端 JavaScript 陷入等待结果的状态。 在我们的程序中,需要花费一些时间才能完成的功能`train_data()`函数。 此函数执行模型的训练:
现在,我们将编写一个`async`函数。 这样做的原因是,不会使调用我们函数的客户端 JavaScript 陷入等待结果的状态。 在我们的程序中,需要花费一些时间才能完成的函数`train_data()`函数。 此函数执行模型的训练:
```py
async function train_data(){
......@@ -398,7 +398,7 @@ var doTrain = async function (req, res, next) {
}
```
`doTrain`中间件调用`train_data()`函数并等待其结果。 `train_data()`函数返回`Promise`,以便继续执行而不会冻结。 `next()`函数在`train_data()`函数完成后立即运行,并且仅将程序的执行传递给中间件旁边*链接*功能,如下所示:
`doTrain`中间件调用`train_data()`函数并等待其结果。 `train_data()`函数返回`Promise`,以便继续执行而不会冻结。 `next()`函数在`train_data()`函数完成后立即运行,并且仅将程序的执行传递给中间件旁边*链接*函数,如下所示:
```py
app.use(doTrain).post('/train', function(req, res) {
......@@ -520,7 +520,7 @@ app.use(express.static('./public')).get('/', function (req, res) {
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
```
2. 在为开发用于调用我们使用 TF.js 创建的 API 的客户端设置一个简单的 UI 之后,我们准备定义从客户端部署它们的功能。 请注意,`"/train"``"/predict"` API 都将由`POST`请求调用:
2. 在为开发用于调用我们使用 TF.js 创建的 API 的客户端设置一个简单的 UI 之后,我们准备定义从客户端部署它们的函数。 请注意,`"/train"``"/predict"` API 都将由`POST`请求调用:
```py
<script>
......
......@@ -20,7 +20,7 @@
绝对不会! 但是,借助 API 的强大功能,您将能够轻松地将图像识别模块集成到 Web 应用中。 现在让我们更详细地讨论 API 的概念。
API 是可以集成到应用中以执行某些任务的一组功能(尽管从技术上讲,API 可以仅包含一个功能)。 通常,作为开发人员,我们希望将喜欢的网站中的特定工具集成到自己的应用中。 例如,Twitter 提供了一个 API,用于检索与某个关键字匹配的推文。 我们可以使用此 API 来收集数据,对其进行分析,并最终得出有关数据的有趣见解。
API 是可以集成到应用中以执行某些任务的一组函数(尽管从技术上讲,API 可以仅包含一个函数)。 通常,作为开发人员,我们希望将喜欢的网站中的特定工具集成到自己的应用中。 例如,Twitter 提供了一个 API,用于检索与某个关键字匹配的推文。 我们可以使用此 API 来收集数据,对其进行分析,并最终得出有关数据的有趣见解。
Facebook,Google,Stack Overflow 和 LinkedIn 等公司提供用于某些任务的 API,作为开发人员,值得一试。 API 实际上类似于网站。 当我们单击网站上的某些内容时,我们将被重定向到另一个页面/部分。 在大多数情况下,我们将网页作为输出。 但是,API 通常不会产生美观的网页作为其输出。 应该从代码内部使用 API​​,并且 API 的输出通常采用某些流行的数据交换格式,例如 JSON 或 XML。 然后,针对使用 API​​的应用相应地处理输出。 API 使您可以通过提供一套工具或生态系统来完成想要执行的任务,而不必担心细节。
......
......@@ -462,8 +462,8 @@ https://alexa.amazon.co.jp/api/skill/link/XXXXXXXXXXXXXX
有了适合 Lambda 函数的配置,我们现在可以创建 Lambda 函数本身。 为此,在 AWS 控制台中,导航至[这里](https://console.aws.amazon.com/lambda/home?region=us-east-1)并执行以下步骤:
1. 单击“创建功能”。
2.功能名称设置为`homeAutomation`
1. 单击“创建函数”。
2.函数名称设置为`homeAutomation`
3. 选择`Python 3.6`运行系统。
4. 从执行角色中现有角色的下拉列表中选择`lambda_home_automation`角色。
5. 点击`Create function`
......@@ -532,7 +532,7 @@ https://alexa.amazon.co.jp/api/skill/link/XXXXXXXXXXXXXX
单击`lambda_function.py`开始编辑文件并执行以下步骤:
1. 导入必要的模块。 为了使该功能正常工作,我们需要一些通用库的支持,如以下代码所示:
1. 导入必要的模块。 为了使该函数正常工作,我们需要一些通用库的支持,如以下代码所示:
```py
import boto3
......@@ -600,7 +600,7 @@ def add_payload_endpoint(self, **kwargs):
self.payload_endpoints.append(self.create_payload_endpoint(**kwargs))
```
3. 现在定义上一步中创建的三个处理器方法。 上一步中声明的方法取决于它们自己的内部方法。 这些主要是辅助函数,与本章的重点无关,因此我们将把这些留给您实现该功能,您可以通过研究 AWS Lambda 函数的响应主体文档和 Alexa 技能来创建这些功能。 。 可以[在本章的代码存储库中](http://tiny.cc/HOPDLW_CH7_lfpy)`lambda_function.py`文件的 65 和 102 行之间找到示例实现。
3. 现在定义上一步中创建的三个处理器方法。 上一步中声明的方法取决于它们自己的内部方法。 这些主要是辅助函数,与本章的重点无关,因此我们将把这些留给您实现该函数,您可以通过研究 AWS Lambda 函数的响应主体文档和 Alexa 技能来创建这些函数。 可以[在本章的代码存储库中](http://tiny.cc/HOPDLW_CH7_lfpy)`lambda_function.py`文件的 65 和 102 行之间找到示例实现。
4. 接下来,我们将设置方法以从`AlexaResponse`类生成最终响应。 最终,我们创建了将所有不同部分(上下文,事件,有效负载,端点和 cookie)同化为单个对象的方法,可以与 Alexa 技能进行交互:
```py
......@@ -803,10 +803,10 @@ def set_device_state(endpoint_id, state, value):
![](img/72352241-b56d-4536-b083-daebba4c21cf.png)
6. 向下滚动并单击“创建”。
7. 返回 Lambda 功能仪表板后,在右上方,从下拉列表中选择`directoryDiscover`测试。
7. 返回 Lambda 函数仪表板后,在右上方,从下拉列表中选择`directoryDiscover`测试。
8. 单击“测试”。
完成后,测试将显示响应状态和 Lambda 函数的响应。 您可以在 Lambda 功能仪表板顶部的页面上看到结果,该结果类似于以下屏幕截图:
完成后,测试将显示响应状态和 Lambda 函数的响应。 您可以在 Lambda 函数仪表板顶部的页面上看到结果,该结果类似于以下屏幕截图:
![](img/ff23d8a3-8380-4e37-949f-efd3614544ca.png)
......
......@@ -543,7 +543,7 @@ def create_model(features):
model = create_model(input/255.0)
```
最后,我们使用先前的功能创建模型。 除以`255`可对数据集进行归一化,从而在`0``1`之间的图像数组中呈现值。
最后,我们使用先前的函数创建模型。 除以`255`可对数据集进行归一化,从而在`0``1`之间的图像数组中呈现值。
# 训练 CNTK 模型
......
......@@ -45,9 +45,9 @@
想象一下,正在一家公司的 DL 工程师,该公司正计划建立一个推荐系统,以根据用户提供的标准从产品列表中推荐产品。 您的老板要求您基于此开发**概念证明****PoC**)。 那么,我们应该怎么做呢? 如前所述,让我们首先定义问题陈述。
向最终推荐系统提供输入的主要实体是用户。 根据用户的首选项(现在称为输入功能首选项),系统将提供最符合其首选项的产品列表。 因此,长话短说,问题陈述可以写为:
向最终推荐系统提供输入的主要实体是用户。 根据用户的首选项(现在称为输入特征首选项),系统将提供最符合其首选项的产品列表。 因此,长话短说,问题陈述可以写为:
“给定一组输入功能(用户偏好),我们的任务是建议产品列表。”
“给定一组输入特征(用户偏好),我们的任务是建议产品列表。”
现在我们有一个定义明确的问题说明,接下来继续进行,并在下一节中建立后续步骤。
......@@ -76,11 +76,11 @@
让我们对原始问题陈述进行一些增强,然后再继续进行。 这是原始的问题陈述:
“给定一组输入功能(用户偏好),我们的任务是建议产品列表。”
“给定一组输入特征(用户偏好),我们的任务是建议产品列表。”
如果推荐不合格产品,用户将不会喜欢我们的系统。 因此,我们将对问题陈述进行一些修改,如下所示:
“给定一组输入功能(用户首选项),我们的任务是建议可能要购买的最佳产品清单。”
“给定一组输入特征(用户首选项),我们的任务是建议可能要购买的最佳产品清单。”
为了让我们的系统针对给定的标准推荐最佳产品列表,首先需要知道产品的平均等级。 除了平均评分之外,获取有关特定产品的以下信息(名称除外)将非常有用:
......@@ -243,7 +243,7 @@ def cleanText(line):
return re.sub(r"[^A-Za-z0-9^,!.\/'+-=]", " ", line)
```
使用前面的功能,我们从文本中删除了停用词和所有少于三个字符的词。 我们已过滤掉标点符号,仅保留了文本中的相关字符。
使用前面的函数,我们从文本中删除了停用词和所有少于三个字符的词。 我们已过滤掉标点符号,仅保留了文本中的相关字符。
# 提取所需的数据
......@@ -257,7 +257,7 @@ data = df[['ProductId', 'UserId', 'Score', 'Text']]
# 应用文字清理
现在,我们将应用文本过滤和停用词删除功能来清理数据集中的文本:
现在,我们将应用文本过滤和停用词删除函数来清理数据集中的文本:
```py
%%time
......
......@@ -255,7 +255,7 @@ model.compile(loss = 'binary_crossentropy', optimizer = 'adam', metrics = ['accu
model._make_predict_function()
```
3. 我们将使用数据清理功能在客户端应用的传入查询中去除数字和其他无用的文本:
3. 我们将使用数据清理函数在客户端应用的传入查询中去除数字和其他无用的文本:
```py
def remove_digits(s: str) -> str:
......@@ -447,7 +447,7 @@ def loginView(request):
return HttpResponse(template.render(context, request))
```
前面的功能首先检查用户数据库中是否存在传递给用户名和密码的用户名和密码。 因此,将来,我们将需要一个用户模型来将用户存储在数据库文件`db.sqlite3`中,该文件是在项目创建步骤中创建的。
前面的函数首先检查用户数据库中是否存在传递给用户名和密码的用户名和密码。 因此,将来,我们将需要一个用户模型来将用户存储在数据库文件`db.sqlite3`中,该文件是在项目创建步骤中创建的。
然后,该函数将调用认证检查模型 API,以验证用户登录是否正常。 验证按以下代码进行:
......
......@@ -93,12 +93,12 @@ Auto ML 是一种批量预测方法,无需人工干预。 因此,数据通
在在线学习中,机器学习模型一次只针对一个实例进行训练,而不是针对一批数据进行训练(这也称为批量学习)。 为了能够欣赏在线学习的使用,了解批量学习的弊端很重要:
* 在生产中,我们需要随着时间的推移在新数据上对 ML 模型进行重新训练。 批量学习迫使我们这样做,但这是有代价的。 代价不仅在于计算资源,还在于从头开始重新训练模型的事实。 从头开始训练模型在生产环境中并不总是有用的。
* 数据的功能和标签会随时间变化。 批量学习不允许我们训练可以支持动态功能和标签的 ML 模型。
* 数据的特征和标签会随时间变化。 批量学习不允许我们训练可以支持动态特征和标签的 ML 模型。
这正是我们需要使用在线学习的地方,这使我们能够执行以下操作:
* 一次仅使用一个实例训练 ML 模型。 因此,我们将不需要大量数据来训练 ML 模型。 可以使用可用的数据立即对其进行训练。
* 使用动态功能和标签训练 ML 模型。
* 使用动态特征和标签训练 ML 模型。
在线学习还有其他几个名称,但是它们都具有相同的作用:
......
......@@ -35,7 +35,7 @@ NLP 是机器学习和深度学习应用中最受欢迎的也是最令人兴奋
# 语料库
在学习 NLP 时,您经常会遇到**语料库**。 用外行的术语来说,语料库是任何一位作者或文学体裁的著作的集合。 在 NLP 的研究中,对语料库的词典定义进行了一些修改,可以表示为书面文本文档的集合,以便可以通过任何选择的度量将它们全部归类。 这些指标可能是作者,出版者,类型,写作类型,时间范围以及与书面文本相关的其他功能
在学习 NLP 时,您经常会遇到**语料库**。 用外行的术语来说,语料库是任何一位作者或文学体裁的著作的集合。 在 NLP 的研究中,对语料库的词典定义进行了一些修改,可以表示为书面文本文档的集合,以便可以通过任何选择的度量将它们全部归类。 这些指标可能是作者,出版者,类型,写作类型,时间范围以及与书面文本相关的其他特征
例如,莎士比亚作品集或任何论坛上针对任何给定主题的话题都可以被视为语料库。
......@@ -337,7 +337,7 @@ function checkOrderStatus(){
agent.handleRequest(intentMap);
```
现在,单击“部署”以部署此功能。 您将在屏幕的右下角收到有关部署状态的通知。 等待部署并完成构建。
现在,单击“部署”以部署此函数。 您将在屏幕的右下角收到有关部署状态的通知。 等待部署并完成构建。
# 第 7 步 – 向机器人添加个性
......@@ -645,7 +645,7 @@ $(document).ready(function(){
前面的代码块在用户讲话时创建一个临时笔录,当说出更多单词时,该笔录会不断更新。 当用户停止讲话时,临时笔录将附加到最终笔录中,并传递给处理与 Dialogflow 交互的功能。 从 Dialogflow 智能体收到响应后,将为来自用户的下一个语音输入重置最终笔录。
请注意,我们已将用户语音的最终识别成绩单发送给名为`goDialogFlow()`的函数。 让我们定义这个功能
请注意,我们已将用户语音的最终识别成绩单发送给名为`goDialogFlow()`的函数。 让我们定义这个函数
# 步骤 3 – 调用 Dialogflow 智能体
......
......@@ -189,7 +189,7 @@ CNN 的图像过滤和处理方法包括执行多种操作,所有这些操作
在训练过程中,每层输入的分布会随着上一层的权重因子的变化而变化,从而导致训练变慢。 这是因为它要求较低的学习率和权重因子选择。 谢尔盖·艾菲(Sergey Ioffe)和克里斯汀·塞格迪(Christian Szegedy)在题为《批量归一化:通过减少内部协方差漂移加速深度网络训练》的论文中称这种现象**内部协方差漂移**。 有关详细信息,请参阅[这里](https://arxiv.org/abs/1502.03167)
批量归一化通过从当前输入中减去上一层的批量平均值并将其除以批量标准差来解决协方差移位的问题。 然后将此新输入乘以当前权重系数,再乘以偏置项以形成输出。 下图显示了带有和不带有批量规范化的神经网络的中间输出功能
批量归一化通过从当前输入中减去上一层的批量平均值并将其除以批量标准差来解决协方差移位的问题。 然后将此新输入乘以当前权重系数,再乘以偏置项以形成输出。 下图显示了带有和不带有批量规范化的神经网络的中间输出特征
![](img/9f7bea49-6361-4095-b359-0cea59b897c5.png)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册