跳到主要内容

2.1 一个神经元:加权求和 + 开关

造一个垃圾邮件报警器​

假设你要写一个程序,判断一封邮件是不是垃圾邮件。最朴素的做法是打分:

  • 正文里出现「中奖」?+8 分;
  • 发件人是陌生地址?+3 分;
  • 邮件里带着你的真名?−5 分;
  • ……

把所有线索的分数加起来,再设一道门槛:总分超过门槛就报警,否则放行。

恭喜,你刚刚发明了神经元。它干的就是这三步:

  1. 每条输入线索乘一个权重(这条线索多重要、是加分还是减分);
  2. 加一个偏置(相当于把门槛内置进来);
  3. 过一个「开关」——激活函数,决定最终输出什么。

写成式子(本节唯一的公式):

输出=激活函数(w×输入+b)\text{输出} = \text{激活函数}(w \times \text{输入} + b)

神经网络不管多大,拆到最后全是这种小单元——GPT 也不例外。所以值得先把一个神经元玩透:

🎮 动手实验
一个神经元的全部人生
它只会三步:输入乘权重 w → 加偏置 b → 过激活函数。调下面三样东西,看右图这条「输入 → 输出」曲线怎么变。
输入 x1.00× w + b0.50激活函数0.50输出 y0.50
-4-4-2-2002244折角y(输出)随 x(输入)的变化
激活函数:
📐 ReLU:z ≤ 0 时输出一律为 0(神经元「关闭」),z > 0 时原样放行(「开启」)。移动 w 和 b,折角的位置和坡度都归你管。
💡 要点:没有激活函数时,神经元只能画直线;换上 ReLU,直线上多了一个折角(w 和 b 决定折在哪、坡多陡)。别小看这个折角——下一节你会看到,亿万个折角拼起来能逼近任何曲线。

按这个顺序玩​

实验 ①:先拆掉开关。 激活函数选「无(线性)」,随便拖动 w 和 b。你会发现:无论怎么调,右图永远是一条直线——w 管倾斜、b 管上下平移,仅此而已。

实验 ②:换上 ReLU。 直线突然多了一个折角(红圈标出的位置):折角左边一律输出 0(神经元「关着」),右边才放行。拖 w 和 b 感受一下——坡度归 w 管,折角的位置由 w 和 b 共同决定。一个会开关的直线,就是ReLU 神经元的全部本事。

实验 ③:换 Sigmoid。 输出被平滑地压进 0 到 1 之间,像一个渐变的调光开关,适合表示「概率」或「程度」。

为什么开关不可或缺​

你可能会问:折角看起来也没多厉害,不装开关行不行?

不行——而且这是神经网络最要害的一条道理。0.2 节说过,一层网络的核心运算是「矩阵 × 向量」,而矩阵连乘的结果还是一个矩阵:没有激活函数,叠一万层网络,等价于一层;直线叠直线,还是直线,永远画不出第 0 章那条弯曲的损失曲线,更别提「上文 → 下一个词」这种复杂到没边的规律。

激活函数就是那把「折角钳」:它给每个神经元一次弯折的机会。下一节你会看到,把亿万个折角拼起来,能弯出任何形状。

这个类比在哪里不准确?

「神经元」这个名字来自对大脑的模仿,但类比非常浅:生物神经元有复杂的电化学动力学、脉冲时序和上万个突触,人工神经元只是一次乘加运算加一个开关。现代深度学习早就不追求「仿生」了——把它当成一个纯粹的数学零件来理解,反而更准确。

小结​

本节要点
  • 神经元只做三步:乘权重 → 加偏置 → 过激活函数。
  • 没有激活函数,叠多少层都等价于一条直线(矩阵连乘还是矩阵)。
  • ReLU 给直线一个「折角」:位置和坡度由 w、b 决定——折角是神经网络一切弯曲能力的最小单位。
📝 动手自测0/3
1. 把网络里所有激活函数都去掉(换成「无」),叠 100 层的效果等价于什么?
2. 实验里选 ReLU 时,右图那个「折角」的位置由什么决定?
3. 下面哪个说法最准确地描述激活函数的作用?

延伸阅读​