神经网络:互动练习

在下面的互动练习中,您将进一步探索 神经网络。首先,您将看到参数和超参数如何变化 会影响网络的预测。然后,您将利用学到的知识来 来拟合非线性数据。

练习 1

以下 widget 会设置具有以下配置的神经网络:

  • 包含 3 个神经元的输入层,分别包含值 0.000.000.00
  • 包含 4 个神经元的隐藏层
  • 包含 1 个神经元的输出层
  • ReLU 激活函数应用于 所有隐藏层节点和

查看广告联盟的初始设置(注意:请勿点击 ▶️>| 按钮),然后完成该微件下方的任务。

任务 1

神经网络模型的三个输入特征的值 0.00。点击网络中的每个节点, 值。在点击“播放”(▶️) 按钮之前,请先回答以下问题:

您会获得什么样的输出值 预测将生成的内容:正值、负值还是 0?
正输出值
输出为负值
输出值 0

现在,点击网络上方的播放 (▶️) 按钮,然后观察所有隐藏层 和输出节点值进行填充。以上答案正确吗?

点击此处查看说明

您获得的确切输出值因 和偏差参数会随机初始化。不过,由于每个神经元 的权重值是 0, 隐藏层节点值都将清零。例如,第一个 隐藏层节点的计算公式为:

y = ReLU(w11* 0.00 + w21* 0.00 + w31* 0.00 + b)

y = ReLU(b)

因此,每个隐藏层节点的值都等于 偏差 (b),如果 b 为负值,则值为 0;如果 b 为 0,则值为 b 本身; 积极。

然后,输出节点的值将按如下方式计算:

y = ReLU(w11* x11 + w21* x21) + w31* x31 + w41* x41 + b)

任务 2

在修改神经网络之前,请先回答以下问题:

如果再添加一个隐藏层, 在第一个隐藏层之后传递到神经网络,并为这个新的第 3 层节点赋予 3 个节点, 输入和权重/偏差参数相同,计算 是否会受到影响?
所有节点 (输入节点除外)
只有 第一个隐藏层
只有输出节点

现在,修改神经网络以添加一个包含 3 个节点的新隐藏层,如下所示:

  1. 点击文本 1 个隐藏层左侧的 + 按钮,添加新层 隐藏层。
  2. 点击新隐藏层上方的 + 按钮两次可再添加 2 个节点 传递给层。

以上答案正确吗?

点击此处查看说明

只有输出节点会发生变化。因为这种神经网络的推理 为“前馈”(计算从开始到结束),加上 只会影响新层的节点, 而不是其前面的层。

任务 3

点击网络第一个隐藏层中的第二个节点(从顶部开始) 图表。在对网络配置进行任何更改之前,请先回答 以下问题:

如果您更改 权重 w12(显示在第一个输入节点 x1 下方), 哪些其他节点的某些输入值可能会影响计算结果 值?
第二个节点 第一个隐藏层、第二个隐藏层中的所有节点, 输出节点。
集群中的所有节点 第一个隐藏层、第二个隐藏层和输出层。

现在,点击权重 w12(显示在 第一个输入节点 x1),将其值更改为 5.00,然后按 Enter 键。 观察图表的更新。

您的答案正确吗?验证答案时要小心:如果节点 值没有变化,这是否意味着基础计算没有变化?

点击此处查看说明

在第一个隐藏层中,唯一受影响的节点是第二个节点( )。第一个 隐藏层未包含 w12 作为参数,因此它们 。第二个隐藏层中的所有节点都会受到影响, 取决于第一个节点中第二个节点的值 隐藏层。同样,输出节点值也会受到影响, 则取决于第二个隐藏层中节点的值。

您是否认为答案是“无”因为这个 Deployment 中的 网络在您更改权值时发生了变化?请注意,底层的 的计算可能会在不改变节点值的情况下 (例如,ReLU(0) 和 ReLU(-5) 产生的输出均为 0。 不要仅仅假设网络受到的影响 查看节点值请务必查看计算结果

练习 2

特征交叉练习中, 请参阅“分类数据”模块 您手动构建了特征组合来拟合非线性数据。 现在,看看你能否构建一个 如何在训练期间拟合非线性数据。

您的任务:配置一个能够将橙点与白点分开的神经网络 下图中的蓝点,两者的损失都小于 0.2 训练数据和测试数据。

说明:

在下面的互动式 widget 中:

  1. 使用一些超参数进行实验,从而修改神经网络超参数 以下配置设置之一:
    • 通过点击 +- 按钮来添加或移除隐藏层: (位于网络图中隐藏层标题的左侧)。
    • 点击 +- 在隐藏层中添加或移除神经元 按钮。
    • 通过从学习速率中选择新值来更改学习速率 下拉菜单。
    • 更改激活函数,方法是从 激活下拉菜单。
  2. 点击图表上方的播放 (▶️) 按钮可训练神经网络 使用指定的参数训练该模型。
  3. 观察与训练数据拟合的模型的可视化效果 以及 测试损失训练损失值,位于 输出部分。
  4. 如果模型在测试和训练数据上的损失达不到 0.2, 点击“重置”,然后以不同的一组配置重复执行第 1-3 步 设置。重复此过程,直至达到您期望的结果。

点击此处即可查看我们的解决方案

我们通过以下方式使测试损失和训练损失均低于 0.2:

  • 添加了 1 个包含 3 个神经元的隐藏层。
  • 将学习速率设为 0.01。
  • 选择 ReLU 的激活函数。