神经网络:节点和隐藏层

构建神经网络 可以学习非线性关系, 从下面熟悉的模型结构开始: 线性模型,形式为 $y'= b + w_1x_1 + w_2x_2 + w_3x_3$。

我们可以将该等式可视化,如下所示,其中 $x_1$, $x_2$ 和 $x_3$ 是三个输入节点(蓝色),$y'$ 是输出节点 (绿色)。

练习 1

在上面的模型中,weightbias 值是随机 初始化。请执行以下任务,以便熟悉 并探索线性模型。您可以 暂时忽略激活函数下拉列表;我们将讨论 讨论主题。

  1. 点击广告网络上方的“播放”(▶️) 按钮,以便计算 输入值 $x_1 = 1.00$、$x_2 = 2.00$ 以及 $x_3 = 3.00$。

  2. 点击 输入层,并将 2.00 之间的值 到 2.50。请注意,输出节点的值会发生变化。选择输出 节点(显示为绿色),并查看计算面板,了解输出结果 值。

  3. 点击输出节点(绿色),查看权重($w_1$、$w_2$、$w_3$)和 偏差 ($b$) 参数值。降低以下项的权重值: $w_3$(同样,请注意输出节点的值和下面的计算结果 已更改)。然后,提高偏差值。了解这些变化 对模型输出的影响。

向网络添加层

请注意,如果您调整了网络的权重和偏差值, 练习 1,这没有改变总体数学 输入和输出之间的关系。我们的模型仍然是一个线性模型。

但是,如果我们在输入层之间的这个网络中添加另一个层, 和输出层呢?在神经网络术语中, 输入层和输出层称为 隐藏层和节点 称为 神经元

隐藏层中每个神经元值的计算方式与 线性模型的输出:取每项输入的乘积之和 (上一网络层中的神经元)和一个唯一的权重参数, 以及偏差。同样,下一层(此处为输出层)中的神经元 使用隐藏层的神经元值作为输入来计算。

这个新的隐藏层允许模型使用另一个输入数据 一组参数。这能否帮助我们的模型学习非线性关系?

练习 2

我们向模型中添加了一个包含四个神经元的隐藏层。

点击广告网络上方的“播放”(▶️) 按钮,以便计算 输入值的四个隐藏层节点和输出节点 $x_1 = 1.00$、$x_2 = 2.00$、$x_3 = 3.00$。

然后探索该模型,并使用它回答以下问题。

多少 parameters(权重和偏差)负责提供 网络模型有哪些差异?
4
练习 1 中的原始模型中, 四个参数:w11、w21、 w31 和 b.由于此模型包含 因此还有更多的参数。
12
请注意,参数总数同时包含这两个参数 计算隐藏层中的节点值, 输入值,以及用于计算输出值的参数 提取特征。
16
请注意,参数总数既包括权重, 和偏差参数。
21
有 4 个参数用于计算 隐藏层 - 3 个权重(每个输入值一个)和一个 偏差 - 总和为 16 个参数。然后,系统会使用 5 个参数 计算输出值:4 个权重( 隐藏层)和偏差。这个神经网络共有 21 个 参数。

尝试修改模型参数,并观察对 隐藏层节点值和输出值(您可以查看 计算面板,了解这些值是如何 )。

此模型可以学习非线性规律吗?

点击隐藏层中的每个节点和输出节点, 并查看下面的计算。您发现了什么 所有这些计算呢?

如果您点击隐藏层中的每个节点, 您会发现所有过程都是线性的 (包含乘法和加法运算)。

如果您随后点击输出节点并查看计算结果, 您可以看到,这种计算也是线性的。直线式 对线性计算输出执行的计算结果为 也是线性的,这意味着该模型无法学习非线性规律。