构建神经网络 可以学习非线性关系, 从下面熟悉的模型结构开始: 线性模型,形式为 $y'= b + w_1x_1 + w_2x_2 + w_3x_3$。
我们可以将该等式可视化,如下所示,其中 $x_1$, $x_2$ 和 $x_3$ 是三个输入节点(蓝色),$y'$ 是输出节点 (绿色)。
练习 1
在上面的模型中,weight 和 bias 值是随机 初始化。请执行以下任务,以便熟悉 并探索线性模型。您可以 暂时忽略激活函数下拉列表;我们将讨论 讨论主题。
点击广告网络上方的“播放”(▶️) 按钮,以便计算 输入值 $x_1 = 1.00$、$x_2 = 2.00$ 以及 $x_3 = 3.00$。
点击 输入层,并将 2.00 之间的值 到 2.50。请注意,输出节点的值会发生变化。选择输出 节点(显示为绿色),并查看计算面板,了解输出结果 值。
点击输出节点(绿色),查看权重($w_1$、$w_2$、$w_3$)和 偏差 ($b$) 参数值。降低以下项的权重值: $w_3$(同样,请注意输出节点的值和下面的计算结果 已更改)。然后,提高偏差值。了解这些变化 对模型输出的影响。
向网络添加层
请注意,如果您调整了网络的权重和偏差值, 练习 1,这没有改变总体数学 输入和输出之间的关系。我们的模型仍然是一个线性模型。
但是,如果我们在输入层之间的这个网络中添加另一个层, 和输出层呢?在神经网络术语中, 输入层和输出层称为 隐藏层和节点 称为 神经元。
隐藏层中每个神经元值的计算方式与 线性模型的输出:取每项输入的乘积之和 (上一网络层中的神经元)和一个唯一的权重参数, 以及偏差。同样,下一层(此处为输出层)中的神经元 使用隐藏层的神经元值作为输入来计算。
这个新的隐藏层允许模型使用另一个输入数据 一组参数。这能否帮助我们的模型学习非线性关系?
练习 2
我们向模型中添加了一个包含四个神经元的隐藏层。
点击广告网络上方的“播放”(▶️) 按钮,以便计算 输入值的四个隐藏层节点和输出节点 $x_1 = 1.00$、$x_2 = 2.00$、$x_3 = 3.00$。
然后探索该模型,并使用它回答以下问题。
尝试修改模型参数,并观察对 隐藏层节点值和输出值(您可以查看 计算面板,了解这些值是如何 )。
此模型可以学习非线性规律吗?
如果您点击隐藏层中的每个节点, 您会发现所有过程都是线性的 (包含乘法和加法运算)。
如果您随后点击输出节点并查看计算结果, 您可以看到,这种计算也是线性的。直线式 对线性计算输出执行的计算结果为 也是线性的,这意味着该模型无法学习非线性规律。