提交 54b5d615 编写于 作者: W wizardforcel

2021-01-22 17:19:38

上级 175458a9
......@@ -50,7 +50,7 @@
![](img/Formula_01_001.jpg)
这里,![](img/Formula_01_002.png)`x`轴截距,![](img/Formula_01_003.png)是直线的斜率。
这里,`θ[0]``x`轴截距,``θ[1]``是直线的斜率。
模型可以包含数百万甚至数十亿个输入功能的(尽管当功能空间太大时,您可能会遇到硬件限制)。 模型的输入类型也可能有所不同,模型可以从图像中学习:
......@@ -80,7 +80,7 @@
## 模型如何学习?
为了学习模型,我们需要某种评估模型性能的方法。 为此,我们使用称为损失的概念。 **损失**是衡量如何根据其真实值接近模型预测的一种度量。 对于我们数据集中的给定房屋,损失的一种度量可能是真实价格(`y`)与我们的模型预测的价格(![](img/Formula_01_004.png))之间的差。 我们可以通过对数据集中所有房屋的平均损失进行评估,从而评估系统中的总损失。 但是,从理论上讲,正损失可以抵消负损失,因此,更常见的损失度量是**均方误差**
为了学习模型,我们需要某种评估模型性能的方法。 为此,我们使用称为损失的概念。 **损失**是衡量如何根据其真实值接近模型预测的一种度量。 对于我们数据集中的给定房屋,损失的一种度量可能是真实价格(`y`)与我们的模型预测的价格(`y_hat`)之间的差。 我们可以通过对数据集中所有房屋的平均损失进行评估,从而评估系统中的总损失。 但是,从理论上讲,正损失可以抵消负损失,因此,更常见的损失度量是**均方误差**
![](img/Formula_01_005.png)
......@@ -88,27 +88,27 @@
### 梯度下降
在这里,我们绘制了损失函数,因为它与房价模型![](img/Formula_01_006.png)中的单个学习参数有关。 我们注意到,当![](img/Formula_01_007.png)设置得太高时,MSE 损失就很高;而当![](img/Formula_01_008.png)设置得太低时,MSE 损失也就很高。 *最佳点*或损失最小的点位于中间位置。 为了计算该算法,我们使用梯度下降。 当我们开始训练自己的神经网络时,我们将更详细地看到这一点:
在这里,我们绘制了损失函数,因为它与房价模型`θ[1]`中的单个学习参数有关。 我们注意到,当`θ[1]`设置得太高时,MSE 损失就很高;而当`θ[1]`设置得太低时,MSE 损失也就很高。 *最佳点*或损失最小的点位于中间位置。 为了计算该算法,我们使用梯度下降。 当我们开始训练自己的神经网络时,我们将更详细地看到这一点:
![Figure 1.6 – Gradient descent ](img/B12365_01_6.jpg)
图 1.6 –梯度下降
我们首先用随机值初始化![](img/Formula_01_009.png)。 为了使损失最小化,我们需要从损失函数进一步下移,到达山谷的中部。 为此,我们首先需要知道向哪个方向移动。在我们的初始点,我们使用基本演算来计算坡度的初始坡度:
我们首先用随机值初始化`θ[1]`。 为了使损失最小化,我们需要从损失函数进一步下移,到达山谷的中部。 为此,我们首先需要知道向哪个方向移动。在我们的初始点,我们使用基本演算来计算坡度的初始坡度:
![](img/Formula_01_010.png)
在我们前面的示例中,初始点处的梯度为正。 这表明我们的![](img/Formula_01_011.png)值大于最佳值,因此我们更新了![](img/Formula_01_012.png)的值,使其低于我们先前的的值。 我们逐步迭代此过程,直到![](img/Formula_01_013.png)越来越接近 MSE 最小化的值。 这发生在梯度等于零的点。
在我们前面的示例中,初始点处的梯度为正。 这表明我们的`θ[1]`值大于最佳值,因此我们更新了`θ[1]`的值,使其低于我们先前的的值。 我们逐步迭代此过程,直到`θ[1]`越来越接近 MSE 最小化的值。 这发生在梯度等于零的点。
### 过拟合和欠拟合
考虑以下场景,其中基本线性模型无法很好地拟合到我们的数据。 我们可以看到,我们的模型(由方程![](img/Formula_01_014.png)表示)似乎不是很好的预测指标:
考虑以下场景,其中基本线性模型无法很好地拟合到我们的数据。 我们可以看到,我们的模型(由方程`y = θ[0] + θ[1] x`表示)似乎不是很好的预测指标:
![Figure 1.7 – Example of underfitting and overfitting ](img/B12365_01_7.jpg)
图 1.7 –欠拟合和过拟合的示例
当我们的模型由于缺乏功能,数据不足或模型规格不足而无法很好地拟合数据时,我们将其称为,**欠拟合**。 我们注意到我们数据的梯度越来越大,并怀疑如果使用多项式,则模型可能更合适。 例如![](img/Formula_01_015.png)。 稍后我们将看到,由于神经网络的复杂结构,欠拟合很少成为问题:
当我们的模型由于缺乏功能,数据不足或模型规格不足而无法很好地拟合数据时,我们将其称为,**欠拟合**。 我们注意到我们数据的梯度越来越大,并怀疑如果使用多项式,则模型可能更合适。 例如`y = θ[0] + θ[1] x + θ[2] x^2`。 稍后我们将看到,由于神经网络的复杂结构,欠拟合很少成为问题:
考虑以下示例。 在这里,我们使用房价模型拟合的函数不仅适用于房屋的大小(`X`),而且适用于二阶和三阶多项式`(X2, X3)`。 在这里,我们可以看到我们的新模型非常适合我们的数据点。 但是,这不一定会产生良好的模型:
......@@ -142,17 +142,17 @@
# 神经网络
在前面的示例中,我们主要讨论了![](img/Formula_01_019.png)形式的回归。 我们接触过使用多项式来拟合更复杂的方程式,例如![](img/Formula_01_020.png)。 但是,随着我们向模型中添加更多功能,何时使用原始功能的转换成为反复试验的案例。 使用**神经网络**,我们可以将更复杂的函数`y = f(x)`拟合到我们的数据中,而无需设计或转换我们现有的功能。
在前面的示例中,我们主要讨论了`y = θ[0] + θ[1] x`形式的回归。 我们接触过使用多项式来拟合更复杂的方程式,例如`y = θ[0] + θ[1] x + θ[2] x`。 但是,随着我们向模型中添加更多功能,何时使用原始功能的转换成为反复试验的案例。 使用**神经网络**,我们可以将更复杂的函数`y = f(x)`拟合到我们的数据中,而无需设计或转换我们现有的功能。
## 神经网络的结构
当我们学习![](img/Formula_01_021.png)的最优值时,该最优值将回归中的损失降到最低,这实际上与**一层神经网络**相同:
当我们学习`θ[1]`的最优值时,该最优值将回归中的损失降到最低,这实际上与**一层神经网络**相同:
![Figure 1.10 – One-layer neural network ](img/B12365_01_10.jpg)
图 1.10 –一层神经网络
在这里,我们将每个功能![](img/Formula_01_022.png)作为输入,在此通过**节点**进行说明。 我们希望学习参数![](img/Formula_01_023.png),在此图中将其表示为**连接**。 我们对![](img/Formula_01_024.png)和![](img/Formula_01_025.png)之间所有乘积的最终总和为我们提供了最终预测`y`
在这里,我们将每个功能`X[i]`作为输入,在此通过**节点**进行说明。 我们希望学习参数`θ[i]`,在此图中将其表示为**连接**。 我们对`X[i]``θ[i]`之间所有乘积的最终总和为我们提供了最终预测`y`
![](img/Formula_01_026.png)
......@@ -162,7 +162,7 @@
图 1.11 –全连接网络
每个输入节点都连接到另一层中的每个节点。 这被称为**全连接层**。 然后,将来自的全连接层的输出乘以其自身的附加权重,以便预测`y`。 因此,我们的预测不再只是![](img/Formula_01_027.png)的函数,而是现在包括针对每个参数的多个学习权重。 功能![](img/Formula_01_028.png)不再仅受![](img/Formula_01_029.png)影响。 现在,它也受到![](img/Formula_01_030.png)的影响。 参数。
每个输入节点都连接到另一层中的每个节点。 这被称为**全连接层**。 然后,将来自的全连接层的输出乘以其自身的附加权重,以便预测`y`。 因此,我们的预测不再只是`X[i]θ[i]`的函数,而是现在包括针对每个参数的多个学习权重。 功能`X[1]`不再仅受`θ[1]`影响。 现在,它也受到`θ[1,1], θ[2,1], θ[2,2], θ[2,3]`的影响。 参数。
由于全连接层中的每个节点都将`X`的所有值作为输入,因此神经网络能够学习输入特征之间的交互特征。 多个全连接层可以链接在一起,以学习更复杂的功能。 在本书中,我们将看到我们构建的所有神经网络都将使用该概念。 将不同品种的多层链接在一起,以构建更复杂的模型。 但是,在我们完全理解神经网络之前,还有另外一个关键要素要涵盖:激活函数。
......@@ -190,7 +190,7 @@ ReLU 是非常简单的非线性函数,当`x <= 0`,返回`y = 0`;当`x > 0
![](img/Formula_01_032.png)
此处,![](img/Formula_01_033.png)是网络内每个给定节点的输出。 因此,总而言之,在神经网络上执行梯度下降时我们采取的四个主要步骤如下:
此处,`o[j]`是网络内每个给定节点的输出。 因此,总而言之,在神经网络上执行梯度下降时我们采取的四个主要步骤如下:
1. 使用您的数据执行正向传播,计算网络的总损失。
2. 使用反向传播,计算每个参数相对于网络中每个节点损失的梯度。
......@@ -237,7 +237,7 @@ The cat sat on the mat -> [2,1,0,1,1,1]
The dog sat on the cat -> [2,1,1,1,1,0]
```
然后,该数字表示形式可用作特征向量为![](img/Formula_01_034.png)的机器学习模型的输入特征。
然后,该数字表示形式可用作特征向量为`X[0], X[1], ... ,X[n]`的机器学习模型的输入特征。
## 序列表示
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册