神经网络从生物大脑处理信息的方式中获得很大启发。虽然最终目的并非完全复制大脑,但了解大脑的基本计算单元——神经元,为构建人工学习系统提供了一个有益的起点。生物学启发生物神经元是一种特化细胞,设计用于信息处理与传输。从宏观层面看,其工作方式如下:接收信号: 树突作用如同输入线,通过称为突触的连接接收来自其他神经元的电化学信号。整合信号: 细胞体(或称胞体)整合这些传入信号。每个传入信号的强度可能不同(受突触影响)。产生输出: 如果胞体内的组合信号强度超过特定阈值,神经元便会“发放”信号,沿其轴突发送电脉冲。传输信号: 轴突作用如同输出线,将脉冲从细胞体传出。在其末端,轴突分支并与其他神经元的树突形成突触,将信号传递下去。digraph G { rankdir=LR; node [shape=plaintext, fontsize=10]; edge [arrowhead=vee, arrowsize=0.7]; subgraph cluster_neuron { label = "生物神经元(简化版)"; bgcolor="#e9ecef"; style=rounded; inputs [label="输入\n(来自其他神经元)"]; dendrites [label="树突\n(接收)"]; soma [label="胞体\n(整合与阈值)", shape=ellipse, style=filled, fillcolor="#a5d8ff"]; axon [label="轴突\n(传输)"]; outputs [label="输出\n(到其他神经元)"]; inputs -> dendrites [label="突触", fontsize=8]; dendrites -> soma; soma -> axon [label=" 发放\n阈值", fontsize=8]; axon -> outputs [label="突触", fontsize=8]; } }生物神经元中信息流的简化视图。这种接收加权输入、整合并根据阈值产生输出的生物过程,为人工神经元提供了核心类比。人工神经元:数学模型人工神经元(其早期形式有时被称为感知器)是一个数学函数,被构想为生物神经元的简化模型。它接收多个输入信号,进行处理,并产生单个输出信号。其主要组成部分如下:输入($x_1, x_2, ..., x_n$): 这些是输入到神经元的数值。它们可以是图像中的像素值、数据集中的特征(如年龄或收入),或来自前一层神经元的输出。权重($w_1, w_2, ..., w_n$): 每个输入 $x_i$ 都与一个权重 $w_i$ 相关联。权重表示该特定输入连接的强度或重要性。更大的绝对权重意味着相应的输入对神经元的输出有更大的影响。这些权重是网络在训练过程中“学习”的主要参数。偏置($b$): 这是一个额外的、可学习的参数,与神经元本身相关联,不连接到任何特定输入。偏置作用如同一个偏移量,使得神经元更容易或更难被激活(产生非零输出)。可以将其想象成调整激活阈值。如果没有偏置,神经元的加权和必须通过原点,从而限制了其灵活性。求和函数: 神经元计算其输入的加权和,并加上偏置。这通常表示为 $z$: $$ z = (w_1 x_1 + w_2 x_2 + \dots + w_n x_n) + b = \left( \sum_{i=1}^{n} w_i x_i \right) + b $$ 此计算结果 $z$ 表示输入的线性组合。激活函数($f$): 求和结果 $z$ 随后通过一个激活函数 $f$。此函数为模型引入非线性,使神经网络能够学习数据中复杂的关联,这是简单线性模型无法做到的。神经元的最终输出(通常表示为 $a$)是: $$ a = f(z) = f\left( \left( \sum_{i=1}^{n} w_i x_i \right) + b \right) $$ 我们将在本章后续部分介绍 Sigmoid、Tanh 和 ReLU 等具体激活函数。现在,只需理解其作用是将线性求和 $z$ 转换为神经元的最终输出 $a$。digraph G { rankdir=LR; node [shape=circle, style=filled, fillcolor="#ced4da", fixedsize=true, width=0.5, height=0.5, label=""]; edge [arrowhead=vee, arrowsize=0.7]; subgraph cluster_inputs { label="输入"; style=dotted; x1 [label="x₁", shape=plaintext, fontsize=12]; x2 [label="x₂", shape=plaintext, fontsize=12]; xn [label="x...", shape=plaintext, fontsize=12]; // Using dots for "n" } subgraph cluster_neuron { label="人工神经元"; bgcolor="#e9ecef"; style=rounded; sum_node [label="Σ", shape=circle, style=filled, fillcolor="#a5d8ff", fixedsize=true, width=0.6, height=0.6]; act_node [label="f(z)", shape=circle, style=filled, fillcolor="#74c0fc", fixedsize=true, width=0.6, height=0.6]; bias_label [label="偏置 (b)", shape=plaintext, fontsize=10]; bias_node [shape=point, width=0.01, height=0.01]; // Invisible node for bias arrow origin bias_label -> bias_node [style=invis]; // Position label bias_node -> sum_node [arrowhead=vee, arrowsize=0.7]; sum_node -> act_node [label=" z ", fontsize=10]; } output_a [label="a = f(z)", shape=plaintext, fontsize=12]; x1 -> sum_node [label=" w₁", fontsize=10]; x2 -> sum_node [label=" w₂", fontsize=10]; xn -> sum_node [label=" w...", fontsize=10]; // Using dots for "n" act_node -> output_a; }单个人工神经元的结构。输入($x_i$)与权重($w_i$)相乘,并与偏置($b$)一起求和以产生 $z$,然后通过激活函数 $f$ 生成输出 $a$。与生物对应物相比,尽管其高度简化,但这个人工神经元模型捕捉了整合加权输入并根据结果产生输出的主要思想。它是一个基本的计算单元。通过将许多此类单元分层连接,我们可以构建强大的神经网络,能够学习复杂的模式,这也是本课程其余部分的主题。