在下面的互动练习中,您将进一步探索 神经网络。首先,您将看到参数和超参数如何变化 会影响网络的预测。然后,您将利用学到的知识来 来拟合非线性数据。
练习 1
以下 widget 会设置具有以下配置的神经网络:
- 包含 3 个神经元的输入层,分别包含值
0.00
、0.00
和0.00
- 包含 4 个神经元的隐藏层
- 包含 1 个神经元的输出层
- ReLU 激活函数应用于 所有隐藏层节点和
查看广告联盟的初始设置(注意:请勿点击 ▶️ 或 >| 按钮),然后完成该微件下方的任务。
任务 1
神经网络模型的三个输入特征的值
0.00
。点击网络中的每个节点,
值。在点击“播放”(▶️) 按钮之前,请先回答以下问题:
现在,点击网络上方的播放 (▶️) 按钮,然后观察所有隐藏层 和输出节点值进行填充。以上答案正确吗?
点击此处查看说明
您获得的确切输出值因 和偏差参数会随机初始化。不过,由于每个神经元 的权重值是 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 个节点的新隐藏层,如下所示:
- 点击文本 1 个隐藏层左侧的 + 按钮,添加新层 隐藏层。
- 点击新隐藏层上方的 + 按钮两次可再添加 2 个节点 传递给层。
以上答案正确吗?
点击此处查看说明
只有输出节点会发生变化。因为这种神经网络的推理 为“前馈”(计算从开始到结束),加上 只会影响新层的节点, 而不是其前面的层。
任务 3
点击网络第一个隐藏层中的第二个节点(从顶部开始) 图表。在对网络配置进行任何更改之前,请先回答 以下问题:
现在,点击权重 w12(显示在
第一个输入节点 x1),将其值更改为 5.00
,然后按 Enter 键。
观察图表的更新。
您的答案正确吗?验证答案时要小心:如果节点 值没有变化,这是否意味着基础计算没有变化?
点击此处查看说明
在第一个隐藏层中,唯一受影响的节点是第二个节点( )。第一个 隐藏层未包含 w12 作为参数,因此它们 。第二个隐藏层中的所有节点都会受到影响, 取决于第一个节点中第二个节点的值 隐藏层。同样,输出节点值也会受到影响, 则取决于第二个隐藏层中节点的值。
您是否认为答案是“无”因为这个 Deployment 中的 网络在您更改权值时发生了变化?请注意,底层的 的计算可能会在不改变节点值的情况下 (例如,ReLU(0) 和 ReLU(-5) 产生的输出均为 0。 不要仅仅假设网络受到的影响 查看节点值请务必查看计算结果
练习 2
在特征交叉练习中, 请参阅“分类数据”模块 您手动构建了特征组合来拟合非线性数据。 现在,看看你能否构建一个 如何在训练期间拟合非线性数据。
您的任务:配置一个能够将橙点与白点分开的神经网络 下图中的蓝点,两者的损失都小于 0.2 训练数据和测试数据。
说明:
在下面的互动式 widget 中:
- 使用一些超参数进行实验,从而修改神经网络超参数
以下配置设置之一:
- 通过点击 + 和 - 按钮来添加或移除隐藏层: (位于网络图中隐藏层标题的左侧)。
- 点击 + 和 - 在隐藏层中添加或移除神经元 按钮。
- 通过从学习速率中选择新值来更改学习速率 下拉菜单。
- 更改激活函数,方法是从 激活下拉菜单。
- 点击图表上方的播放 (▶️) 按钮可训练神经网络 使用指定的参数训练该模型。
- 观察与训练数据拟合的模型的可视化效果 以及 测试损失和 训练损失值,位于 输出部分。
- 如果模型在测试和训练数据上的损失达不到 0.2, 点击“重置”,然后以不同的一组配置重复执行第 1-3 步 设置。重复此过程,直至达到您期望的结果。
点击此处即可查看我们的解决方案
我们通过以下方式使测试损失和训练损失均低于 0.2:
- 添加了 1 个包含 3 个神经元的隐藏层。
- 将学习速率设为 0.01。
- 选择 ReLU 的激活函数。