让我们将这些部分组合起来,展示一个基本的前馈神经网络 (neural network)。我们已经讨论了单个神经元、它们的参数 (parameter)(权重 (weight)和偏置 (bias))、激活函数 (activation function),以及它们如何组织成层。现在,设想我们想构建一个简单的网络,例如,基于两个输入特征来预测一个单一的输出值。
考虑一个具有以下结构的网络:
- 一个输入层,包含2个神经元,对应我们的两个输入特征(x1,x2)。这一层不执行计算;它只是将输入值向前传递。
- 一个隐藏层,包含3个神经元(h1,h2,h3)。每个隐藏神经元都接收来自输入层所有神经元的输入。
- 一个输出层,包含1个神经元(o1)。这个神经元接收来自隐藏层所有神经元的输入,并产生最终预测值(y^)。
这被称为“前馈”网络,因为信息严格地沿一个方向流动:从输入层到隐藏层再到输出层,没有回环。
信息传播方式如下:
-
输入到隐藏层:
- 每个输入特征(x1,x2)都连接到每个隐藏神经元(h1,h2,h3)。
- 对于第一个隐藏神经元(h1),输入信号与相应的权重相乘(例如,从 x1→h1 的 w11,从 x2→h1 的 w21)。
- 计算加权和(zh1):zh1=(x1×w11)+(x2×w21)+bh1,其中 bh1 是神经元 h1 的偏置。
- 将激活函数 f(如ReLU或Sigmoid)应用于此和,得到神经元的输出:ah1=f(zh1)。
- 类似的计算(z=∑(weight×input)+bias,随后是 a=f(z))独立地对其他隐藏神经元(h2,h3)进行,每个都使用自己的一组权重和偏置。
-
隐藏到输出层:
- 隐藏层神经元的输出(ah1,ah2,ah3)成为输出层的输入。
- 每个隐藏神经元输出都连接到输出神经元(o1)。
- 对于输出神经元(o1),使用隐藏层激活值和一组新权重(例如,从 ah1→o1 的 wh1,o1 等)以及它自己的偏置(bo1)来计算加权和(zo1):zo1=(ah1×wh1,o1)+(ah2×wh2,o1)+(ah3×wh3,o1)+bo1。
- 将最终激活函数 g(可能与隐藏层的激活函数不同,取决于任务)应用于此和,以获得网络的预测值:y^=ao1=g(zo1)。
整个过程,从输入初始值 x1,x2 到获得最终输出 y^,称为前向传播,我们将在后续内容中进行详细讲解。
下面的图表呈现了这种简单的网络结构。
一个简单的前馈神经网络,包含2个输入神经元、1个由3个神经元组成的隐藏层和1个输出神经元。箭头表示前向传播过程中信息流的方向。每个连接代表一个权重,隐藏层和输出层中的每个神经元都有一个相关的偏置(未明确画出)。
"本示例体现了基本架构。网络可以有更多的层(使其“更深”)和每层更多的神经元,但加权和、激活函数以及分层连接的基本原理保持不变。层的具体数量、神经元的数量以及激活函数的选择,都是解决问题时需要作出的设计考量。在后续章节中,我们将学习如何高效地执行这些计算,以及网络如何找到其权重和偏置的合适值。"