既然我们了解了人工神经元的组成部分,包括权重、偏置和激活函数,那么现在来看看这些单元是如何组织起来以构建一个功能性神经网络的。单个神经元是强大的计算单元,但正是它们集体排列成层以及层之间的连接,才使网络能够从数据中学习复杂的模式。分层架构神经网络通常按层组织。每层包含一个或多个神经元。我们通常区分三种类型的层:输入层: 这是网络的入口点。它不执行应用权重和激活函数意义上的任何计算(或者可以认为它具有恒等激活函数)。相反,它只是保存输入到网络的初始数据。输入层中的神经元数量直接对应于输入数据中的特征数量。例如,如果您根据面积(平方英尺)和卧室数量预测房价,您的输入层将有两个神经元。隐藏层: 隐藏层位于输入层和输出层之间,是大部分计算发生的地方。隐藏层中的神经元从前一层(可以是输入层或另一个隐藏层)的所有神经元接收输入,计算它们的加权和加上偏置($z$),并应用激活函数($a = f(z)$)。一个隐藏层的输出($a$)随后作为下一层的输入。一个网络可以有零个、一个或多个隐藏层。具有多个隐藏层的网络通常被称为“深度”神经网络。这些中间层使网络能够逐步学习更复杂的表示以及输入特征的组合。选择隐藏层的数量以及每层中神经元的数量是网络设计的一个重要部分。输出层: 这是网络的最后一层,产生最终结果。输出层的结构在很大程度上取决于网络设计的具体任务:回归: 用于预测连续值(如房价),输出层通常只有一个神经元,通常带有线性激活函数(或不带激活函数)。二分类: 用于将输入分类到两个类别之一(例如,垃圾邮件或非垃圾邮件),输出层通常有一个带有 Sigmoid 激活函数的神经元,输出介于 0 和 1 之间的概率。多分类: 用于将输入分类到多个类别之一(例如,数字识别 0-9),输出层通常每个类别有一个神经元,通常使用 Softmax 激活函数。Softmax 确保输出表示的概率在所有类别中总和为 1。层间连接在我们最初讨论的标准前馈网络中,层通常是全连接的(或密集连接的)。这意味着一个层中的每个神经元将其输出信号发送到后续层中的每个神经元。这些连接中的每一个都具有一个相关的权重,表示连接的强度。一个简单的网络通常包含以下层:输入层($L_0$),包含 $n_0$ 个神经元(特征)。隐藏层($L_1$),包含 $n_1$ 个神经元。输出层($L_2$),包含 $n_2$ 个神经元。在一个全连接设置中:$L_1$ 中的每个 $n_1$ 神经元从 $L_0$ 中的所有 $n_0$ 神经元接收输入。这需要 $n_0 \times n_1$ 个连接 $L_0$ 到 $L_1$ 的权重。$L_1$ 中的每个神经元也有其自身的偏置项。$L_2$ 中的每个 $n_2$ 神经元从 $L_1$ 中的所有 $n_1$ 神经元接收输入。这需要 $n_1 \times n_2$ 个连接 $L_1$ 到 $L_2$ 的权重。$L_2$ 中的每个神经元也有其自身的偏置项。下图展示了一个简单的全连接前馈网络,包含一个输入层(3个神经元)、一个隐藏层(4个神经元)和一个输出层(2个神经元)。digraph G { rankdir=LR; splines=line; node [shape=circle, style=filled, margin=0.1, width=0.3, height=0.3, label=""]; subgraph cluster_0 { label = "输入层"; style=dashed; color="#adb5bd"; // 灰色 i1 [fillcolor="#a5d8ff"]; // 蓝色 i2 [fillcolor="#a5d8ff"]; i3 [fillcolor="#a5d8ff"]; } subgraph cluster_1 { label = "隐藏层"; style=dashed; color="#adb5bd"; // 灰色 h1 [fillcolor="#b2f2bb"]; // 绿色 h2 [fillcolor="#b2f2bb"]; h3 [fillcolor="#b2f2bb"]; h4 [fillcolor="#b2f2bb"]; } subgraph cluster_2 { label = "输出层"; style=dashed; color="#adb5bd"; // 灰色 o1 [fillcolor="#ffc9c9"]; // 红色 o2 [fillcolor="#ffc9c9"]; } edge [color="#868e96", arrowhead=vee, arrowsize=0.7]; // 灰色连接器 {i1, i2, i3} -> {h1, h2, h3, h4}; {h1, h2, h3, h4} -> {o1, o2}; }一个简单的前馈神经网络架构。输入节点(蓝色)将数据传递给隐藏层节点(绿色),隐藏层节点处理数据并将其结果传递给输出节点(红色)。一个层中的每个节点都连接到下一层中的每个节点。这种分层和连接的结构确定了数据在网络中流动的路径。当我们将数据输入到输入层时,它向前传播通过隐藏层,在每个步骤中经历转换(通过权重和偏置进行线性组合,然后是非线性激活),直到到达输出层,输出层产生最终预测。这个过程被称为前向传播,是第 3 章的主题。