在确立了人工神经元的基本结构后,让我们关注赋予它学习能力的要素:它的参数。这些是网络中在训练过程中被修改的可调整部分。一个基本神经元中,两种主要的参数类型是权重和偏置。权重:调节输入影响可以将权重理解为表示输入与神经元之间连接的强度或重要性。连接到神经元的每个输入都有一个关联的权重($w$)。当输入信号($x$)到达时,它会乘以其对应的权重。绝对值较大的权重表示输入对神经元的输出有更强的作用(如果为正则为兴奋性,如果为负则为抑制性)。相反,接近零的权重表示输入影响很小。设想一个具有三个输入 $x_1$、$x_2$ 和 $x_3$ 的神经元。每个输入都将有自己的权重:$w_1$、$w_2$ 和 $w_3$。神经元计算的第一步涉及计算其输入的加权和:$w_1 x_1 + w_2 x_2 + w_3 x_3$。这些权重不是固定的;它们会用一些值(通常是小的随机数)进行初始化,然后根据网络产生的误差,在网络的训练阶段进行迭代调整。这种调整过程就是网络学习如何针对特定任务,对相关输入给予更多关注,而对不相关输入给予更少关注的方式。digraph NeuronInputs { rankdir=LR; node [shape=circle, style=filled, fillcolor="#a5d8ff", width=0.6, fontname="helvetica"]; edge [arrowhead=vee, fontname="helvetica"]; subgraph cluster_inputs { label = "输入"; style=filled; color="#e9ecef"; bgcolor="#f8f9fa"; rank=same; fontname="helvetica"; x1 [label="x₁", fontname="helvetica"]; x2 [label="x₂", fontname="helvetica"]; x3 [label="...", shape=none, margin=0, fontname="helvetica"]; } subgraph cluster_neuron { label = "神经元"; style=filled; color="#e9ecef"; bgcolor="#f8f9fa"; fontname="helvetica"; z [label="Σ", shape=circle, fillcolor="#ffe066", width=0.7, fontname="helvetica"]; // 求和点 b [label="+ b", shape=plaintext, fontsize=11, fontname="helvetica"]; // 偏置指示 } x1 -> z [taillabel="w₁", labelfontsize=10, labelangle=60, labeldistance=1.5, fontname="helvetica"]; x2 -> z [taillabel="w₂", labelfontsize=10, labelangle=-60, labeldistance=1.5, fontname="helvetica"]; x3 -> z [style=dotted]; // 表示更多输入和权重 z -> b [style=invis]; // 将偏置放置在求和附近 {rank=min; x1; x2; x3;} {rank=max; z; b;} }输入($x_1, x_2, ...$)乘以它们的权重($w_1, w_2, ...$)并求和($\Sigma$)。偏置($b$)随后被加到这个和中。偏置:调整激活阈值计算输入的加权和后,另一个参数会起作用:偏置($b$)。偏置项被加到加权和中:$w_1 x_1 + w_2 x_2 + w_3 x_3 + b$。偏置有什么作用?可以将其视为调整神经元固有的激活倾向。它为和提供了一个常数偏移,独立于输入。正偏置使神经元更容易输出高值(更容易激活),而负偏置则使其更难。如果没有偏置项,神经元的加权和将不得不纯粹依靠输入和权重来达到一定水平。偏置通过有效地移动激活函数的工作点,使网络更具适应性。可以想象它设定了一个活动基线水平。和权重一样,偏置是一个可学习的参数。每个神经元通常有自己的偏置值(尽管有时在特定架构中偏置会被省略或以不同方式处理)。它在训练期间与权重一起调整,以帮助网络更好地拟合数据。线性组合:$z$综上所述,在应用激活函数之前执行的计算是输入、权重和偏置的线性组合。这个值通常用 $z$ 表示,代表了神经元的原始激活潜力:$$ z = (w_1 x_1 + w_2 x_2 + \dots + w_n x_n) + b $$对于一个有 $n$ 个输入的神经元,这可以用求和符号更紧凑地表示:$$ z = \sum_{i=1}^{n} (w_i x_i) + b $$对于熟悉线性代数的人来说,这可以用向量符号更有效地表示。如果 $\mathbf{w}$ 是权重向量 $[w_1, w_2, \dots, w_n]$,$\mathbf{x}$ 是输入向量 $[x_1, x_2, \dots, x_n]$,那么计算就变为点积加上偏置:$$ z = \mathbf{w} \cdot \mathbf{x} + b $$这个值 $z$ 有时被称为logit、预激活或网络输入。它代表了神经元在经过非线性激活函数(我们将在下文讨论)之前的聚合输入信号。参数的重要性权重和偏置是存储神经网络中学习所得知识的核心构成。当我们谈论“训练”一个网络时,我们实质上是指为所有神经元中的所有权重和偏置寻找最佳值集合。这个优化过程旨在最小化网络预测与训练数据中实际目标值之间的差异。网络通常从这些参数的随机初始值开始。随后,通过反向传播和梯度下降等算法(在第四章中介绍),它根据产生的误差迭代调整权重和偏置。正向误差可能导致增加某些权重或偏置的调整,而负向误差则可能减少它们,引导网络获得更好的表现。现代深度学习模型中这些参数的庞大数量(通常是数百万或数十亿)使得它们能够捕捉数据中极其复杂的模式和关系。理解权重和偏置各自的作用,是理解这些网络如何运作和学习的根本。下一步是了解计算值 $z$ 如何通过激活函数进行变换,以引入非线性并产生神经元的最终输出信号。