神经元结构
一个只会「加权投票」的小开关,凭什么是智能的起点?
你是怎么猜水果的
卷一我们备齐了工具:向量给世界拍数字照片,点积量「像不像」,矩阵做空间变换,梯度指出下坡方向。 从这一课起,我们用这些零件亲手设计一套小装置——一台专门用来「做判断」的小机器。它叫什么、是什么来头,先按下不表,我们从它要解决的问题入手。
这一篇自始至终只做一件事:造一台「猜水果」的机器,从最简单的一个小装置起步,一路加零件、串成一张大网。 先来看,这台装置要做的判断长什么样。
先玩个游戏。桌上摆着四种水果——🍎 苹果、🍉 西瓜、🍋 柠檬、🍇 葡萄。我从里面挑了一个藏起来,只把它的四条线索报给你(每条都用 0~1 之间的一个数打分,这就是后面要说的「输入特征」):
- 尺寸大小(小 ↔ 大)= 0.5,中等个头
- 颜色(偏绿 ↔ 偏红)= 0.9,相当红
- 酸甜度(酸 ↔ 甜)= 0.7,挺甜
- 水分(干 ↔ 多汁)= 0.55,水分一般
拿这组线索挨个比一比:西瓜该很大、葡萄该很小,可线索说「中等大」,俩都先排除;柠檬偏绿、很酸,线索却是「又红又甜」,也对不上。四种里只剩 🍎 苹果最贴合。 所以问你:它是不是苹果?你几乎是脱口而出「是」。但仔细想想,你脑子里其实做了一次加权打分—— 「又红又甜」最像苹果,所以颜色和酸甜度的分量重;大小和水分嘛,参考一下就好,分量轻。那就凭直觉给四条线索各设一个权重——重要的给大、次要的给小(具体数值先别纠结,随手定就行,后面会让机器自己学出来)。然后把这四项加权求和,别的都不管:
代入这组线索:0.4×0.5 + 2.8×0.9 + 1.6×0.7 + 0.4×0.55 = 4.06
得到 4.06。可马上卡住了:4.06 算高吗?到底多少分才算苹果?光有分数、没有一条「门槛线」,根本没法下结论。那就再随手算一个明显不是苹果的——一个又小、又绿、又酸的青果子(大小 0.3、红 0.15、甜 0.2、水分 0.5):
苹果 4.06、青果子 1.06,门槛大概落在中间的 2.4 附近。但把这个门槛单独挂在公式外面、每次都要记着「和 2.4 比一下」,太别扭。 更顺手的办法:把门槛也塞进公式——给总分直接减去 2.4,判断规则就统一成最干净的一句「大于 0 就是苹果」:
苹果:4.06 − 2.4 = +1.66 > 0,是 | 青果子:1.06 − 2.4 = −1.34 < 0,不是
这个被减掉的常数 −2.4,就叫偏置(bias,记作 b)——本质是一道可调的门槛:调它,就是在挪动「多少分才算苹果」的那条线。 于是判断规则统一成了「加权求和 + 偏置,再看正负」。而那几个权重和这个偏置,全都可以从数据里学出来,不需要你手工拍板。
把这套装置精确地画出来
把刚才的猜法精确化——四条线索是输入 , 四个分量各配一个权重 ,再加上刚才推出来的那个偏置 (就是那道可调门槛,这里 ):
z 就是「加权总分」。但分数可能是 5.2、也可能是 −3,不好直接当答案。最后把 z 送进一个函数 , 把它压成 0 到 1 之间的数,解释成「是苹果的概率」:
y 越接近 1,越确信「是苹果」;越接近 0,越确信「不是」。到这里,整套装置就齐全了。
现在退一步看看我们造出了什么:几个输入 → 各乘一个权重 → 加权求和 → 加上偏置 → 用 σ 压成概率。 是时候揭晓了——这套你亲手设计的小装置,就是大名鼎鼎的「神经元」(neuron),深度学习里最小的那个零件。
名字听着玄乎,灵感其实来自大脑:一个生物神经元从上游收集许多信号,攒够了就「激发」、把信号传给下游—— 我们这套装置做的正是同一件事:把各路输入加权汇总,再决定要不要「激发」。而且它根本不是什么新发明: 那个 正是第 2 课的点积;把一排这样的装置并起来、权重摞成一张表,整层就是第 4 课的 Wx + b。只是你早就学过的运算换了个名字。
光看公式还不够过瘾——下面这台就是上图那一个神经元,活的。四个旋钮就是四条线索, 拧动它们,看右边的「苹果概率」怎么实时变化。试着把「颜色」和「酸甜度」拉满,再把它们归零,感受一下权重大的输入说话更响:
和 全是可学习的参数——以后模型在训练时会不断微调它们, 让预测越来越准,直到在一大堆「已知答案」的水果上,它说「是苹果」的那些,确实大多是苹果。
局限:一个神经元只能画一条直线
刚才那台机器很好用,但它有个藏得很深的硬伤:单个神经元只能做出最「平直」的切分——一条笔直的线、一张平展的面,绝不会拐弯。 这话听着突兀,我们从一个特征开始、一维一维往上加,把它讲清楚。
先回到它的判断规则。装置说「是苹果」,当且仅当加权总分 ; 说「不是」,则是 。所以真正把两类分开的,是中间不偏不倚的那道边界——也就是 的地方。
这道边界长什么样?我们从一个特征、到两个、再到更多,一维一维搭上去,最好懂。
先只留一个特征——就看个头大小 。神经元的输出 是个一元函数, 画在平面坐标系里(横轴个头、纵轴输出 )就是一条直线。判断规则还是 算苹果, 于是分界就是这条直线穿过「水面 」的那一个点。拖一拖感受下:
再添一个特征(把颜色也算上)。输入变成 ,输出 升级成二元函数, 它的图像也从一条线长成一张平面(横面是两个特征、高度是 )。这就是「线性」的真身——它是平的。这一次判定分界不再是一个点,而是平面与水面相交的一条线。把它写出来:
、 都只出现一次方——没有平方、没有相乘——这正是中学的二元一次方程,图像铁定是一条直线。 我们调 让平面倾斜转向、调 让它整体升降,那道「浮出水面」的分界随之移动——但平面永远是平的、分界永远是直的,你掰不弯它。下面这张可以拖着转:
可拖拽旋转 · 滚轮缩放
也许你会想:不是还有个激活函数 σ 吗?让它来弯一下?可惜救不了。σ 是单调的, 恰好等于 0.5 的位置,就是 的位置——还是那条直线。σ 只把输出的数值从「分数」压成「概率」,并不改变分界的形状。
再加下去,规律就一目了然了。神经元的输出 始终是一张「平的」图像:一个特征 → 直线,两个特征 → 平面, 个特征 → 维「超平面」。 判定分界也跟着一级级升维:点 → 直线 → 平面 → 维超平面。名字越来越唬人,本质却始终如一——平的,一点都不弯。
所以单个神经元的全部本事,就是用一条直线(或一张平面)把空间切成两半。 两类数据只要能被一条直线分开(叫线性可分),它就学得会;可一旦两类数据交错排列,直线就彻底没辙了。
为了把这种「没辙」看得最清楚,我们退回最简单的一个特征——还是看个头大小 。 一个合格的苹果,个头要适中:太小(没长开、像山楂)不行,太大(大得不正常,多半不是苹果)也不行,「好」恰好卡在中间一段。 把一批样本按个头大小摆到一根轴上,就是这样:
症结说白了:单个神经元做的判断永远是 ,它只有一个分界点。 能切「比某个头大」或「比某个头小」,却怎么也切不出「在某两段之间」。 一个特征尚且如此,升到两个特征,同样的窘境有个更出名的版本——异或(XOR):
设想一个更刁钻的判断:只有当两个条件恰好一个成立时,才算「是」。 比如「要么大但不甜,要么甜但不大,才是我要找的那种果子;又大又甜、或者又小又酸都不算」——这就是异或(XOR)逻辑。
把四种情形画在平面上:(0,0)→否,(1,0)→是,(0,1)→是,(1,1)→否。 你会发现,没有任何一条直线能把「是」和「否」分开—— 「是」的两个点在一条对角线上,「否」的两个点在另一条对角线上。 单个神经元面对这种交错排列,完全束手无策。
多个神经元,串成网络
回到猜水果。刚才那台机器只会判断「是不是苹果」——可世界上不止苹果。 如何实现一个能识别多种不同水果的机器呢,办法很自然:给每一种水果都配一个神经元,让它们并排站成一层。 每个神经元都看同样的四条线索,各算各的「像不像我这种水果」的分数。
于是四个神经元吐出四个分数。可分数有高有低、还可能是负的,怎么变成「概率分布」? 答案是再接一步 softmax(下一课、以及第 11 课会专门讲):它把四个分数挤成一组加起来正好等于 100% 的概率。 下面就是升级后的机器——同样四个旋钮,输出变成了四种水果的概率分布:
这「一排神经元」就是一层。再把多层串起来——前一层的输出当作后一层的输入——就是深度神经网络。 有了隐藏层,网络才能像上一站说的那样,把多条直线组合出弯曲、复杂的决策边界。
神经元的数量和层数加起来,决定了网络能拟合多复杂的函数。 GPT-3 的隐藏层维度是 12288、有 96 层——但每个神经元做的, 还是你刚才在旋钮台上看到的那个简单公式。
总结
神经元把你「猜水果」的加权判断数学化:z = w·x + b,再经激活函数输出概率。 单个神经元只能画一条直线;给每种水果配一个神经元、再用 softmax 得到概率分布,就是一层; 把许多层串起来,涌现出来的是拟合世界任意复杂规律的能力。
这一课你亲手发现了
- 神经元:z = w·x + b,再经激活函数 σ(z) 输出;w 和 b 可从数据中学出来。
- 权重 w:控制每个输入的影响力(颜色/酸甜分量重);偏置 b 控制激发门槛。
- 单层极限:一个神经元只能学出直线边界,无法解决 XOR 类「交错」问题。
- 多神经元 + softmax:每种水果一个神经元,输出一个加起来等于 1 的概率分布。
- 深度:多层串联,每层学出「前一层特征的特征」,能拟合任意复杂函数。
学习小测验
做完这一课,来检测一下核心知识点。选出你的答案后点击「提交」,即可看到正确选项与讲解。
激活函数
那个把总分压成概率的 σ 到底是什么?如果它是直线,叠再多层都还是一条直线——「弯折」从哪里来?