all_lessons/数学的逻辑/38第 39 课 / 共 44 课

第十一部分 · 从一个神经元到现代 AI

神经元与深度网络:从一个神经元到万能逼近

上一课的支持向量机,是这套数学拼出的一件精巧器物——但它归根到底还是"一条会拐弯的分界线"。从一条线,到能写诗、能下棋、能生成图像的庞然大物,中间那道坎究竟是什么?这一部分我们就来跨过它。第一步,把一个神经元彻底拆开:你会发现它身上没有一块零件是新的,全是前面学过的老朋友;然后我们看它撞上一堵连它都翻不过的墙,再看它怎么靠"堆叠"翻过去。

线性回顾
上一课:支持向量机(第 37 课)把几何的间隔、凸优化的对偶、核技巧拧成一股,在无穷多条分界线里选出最稳的那一条。
留下的问题:可它再聪明,本质上仍是一个线性模型(顶多靠核函数在背后弯一下)。真实世界的函数千奇百怪——图像到标签、声音到文字——凭什么用一条(哪怕会拐弯的)线就能表达?怎样才能超越单个线性模型,去逼近任意复杂的函数?
本课新增:答案小得出奇——一个神经元,再加上一个动作:堆叠。我们会看到:单个神经元(其实就是逻辑回归的近亲)连最简单的 XOR 都学不会;但把神经元堆成一层、掺进非线性,就能把纠缠的数据"掰弯"到线性可分;而万能逼近定理更保证:足够宽的网络能逼近任何连续函数。
本课路线
(1) 解剖一个神经元:z = w·x + ba = σ(z),每块零件标出它来自第几课。(2) 一堵墙:单个神经元(以及任何无核线性模型)学不会 XOR。(3) 翻墙:把神经元堆成层 + 非线性,把输入空间折弯,让纠缠的点变得线性可分。(4) 万能逼近定理:一个足够宽的隐藏层能逼近任意连续函数。(5) 三个新问题——它凭什么不只是背题?几百万参数怎么训得动?全连接忽略了数据结构怎么办?——它们就是这一部分接下来的路线图。

解剖一个神经元

整座深度学习的大厦,最小的砖只有一种,叫神经元。它做的事可以一字不差地拆成几步——而这几步,没有一步是这门课没教过的。我们一块一块拆,每拆一块就点名它的出处。

第一步——加权求和。神经元收到一组输入 x = (x₁, …, xₙ)(就是空间里的一个点、一个样本),给每个分量配一个权重 w,再加一个偏置 b

z = w · x + b (读作"权重向量 w 与输入 x 的内积,加上偏置 b")

这一步你太熟了。w · x第 20 课内积(点积)——它衡量 xw 方向上投影多长;而"把一组数按权重线性组合",正是第 11 课里"矩阵就是线性变换"的最小单元。一个神经元的前半截,就是一次线性变换。它和逻辑回归(第 35 课)、和 SVM(第 37 课)的 w · x + b同一个式子——你早就见过它三次了。

第二步——非线性("掰弯")。光有线性是不够的(下一节你就会亲眼看到它有多不够)。所以把 z 送进一个非线性函数 σ(读作"西格玛",即激活函数):

a = σ(z) (σ 把直线"掰弯",给神经元表达复杂形状的能力)

常见的两种 σsigmoid σ(z) = 1/(1 + e−z) 把任意实数压进 0 到 1(你在第 35 课逻辑回归里见过它,可以读成"概率");ReLU σ(z) = max(0, z) 更简单粗暴——负的压成 0,正的原样通过,是今天大模型里的主力。不管用哪个,关键是它不是直线一个神经元 = 一次线性变换 + 一次掰弯。就这么简单。

直觉
把神经元想成一个"带阈值的投票器":先按权重把各路输入的证据加起来(内积),够不够、偏多少由偏置调(+b),最后过一道非线性的闸门,输出一个"激活"的强度。整门课攒下的两块基石——内积非线性——在这一颗小小的单元里第一次合体。

一堵墙:单个神经元学不会 XOR

既然一个神经元就是"线性变换 + 掰弯",它到底能干多少?先看它不能干什么——这堵墙很矮,却谁也翻不过去。考虑最经典的 XOR(异或):两个输入,相同则输出 0,不同则输出 1。四个点摆在平面上:

(0,0)→0, (1,1)→0 (同类,标 0); (0,1)→1, (1,0)→1 (异类,标 1)

你想用一个神经元把这四个点按标签分开。可一个神经元的判决边界是 w · x + b = 0——一条直线第 20 课)。现在你亲手试试:把 0 类那两个点 (0,0)(1,1) 放一边,1 类那两个点 (0,1)(1,0) 放另一边——无论怎么画这条直线都做不到。因为两类点是对角交叉摆放的:任何一条直线切下去,总会把一个 0 和一个 1 分到同一侧。

这就是 XOR 的著名难题:它不是线性可分的。而这堵墙拦住的不止是单个神经元——任何线性模型都在此撞墙:逻辑回归(第 35 课)画的也是一条直线;不带核的 SVM(第 37 课)找的还是一条直线,间隔再大也切不开对角交叉的四个点。历史上这堵墙一度让人以为神经网络是死路(上世纪的"AI 寒冬")。结论很硬:一次线性变换 + 一次掰弯,表达力就到此为止。要翻墙,得换个招。

翻墙:把神经元堆成层

翻墙的办法朴素得惊人:不要只用一个神经元,用一层。让好几个神经元各自看同一组输入、各画一条自己的线、各掰一次弯,再把它们的输出喂给下一层的神经元去组合。这就是多层感知机(MLP),也叫全连接网络。

为什么加一层就能翻过 XOR 那堵墙?关键在于非线性把输入空间"折弯"了。拿 XOR 来说:安排两个隐藏神经元,一个大致识别"至少有一个输入是 1",另一个识别"两个输入都是 1"。经过它们各自的掰弯之后,原本对角交叉、纠缠在一起的四个点,被映射到了一个新的坐标空间;在这个新空间里,那四个点的位置被重新摆过,变得可以用一条直线切开了。最后一层神经元只要在新空间里画那条现成的直线,就赢了。隐藏层干的活,就是把"线性不可分"的数据,掰弯成"线性可分"。

为什么非线性是不可省的关键?回想第 11 课早就警告过的一件事:线性变换套线性变换,结果还是线性变换(两个矩阵相乘还是一个矩阵)。所以如果每层都只做 w · x + b不掰弯,那么堆一百层,整个网络照样只等价于一次线性变换——还是一条直线,还是翻不过 XOR。正是每层之间那一下 σ,把"复合多层"从原地打转变成了真正的层层深入:

a(1) = σ(W(1)x + b(1)), a(2) = σ(W(2)a(1) + b(2)), …

读作"第一层把输入 x 做线性变换再掰弯,得到 a(1);第二层把上一层的输出 a(1) 当成自己的输入,再做一次线性变换加掰弯"。上一层的输出当下一层的输入 = 函数的复合;而每一次复合之间的那道非线性,就是让边界从"直"变"弯"、让表达力层层放大的那把钥匙。

万能逼近定理

堆叠能翻过 XOR,那它的上限在哪?这里有一个漂亮到近乎不讲道理的答案,叫万能逼近定理(universal approximation theorem)

一个带足够多隐藏单元的单隐层网络,能把任意连续函数逼近到任意精度。

换句话说:不管你想拟合的目标曲线(或曲面)有多曲折,只要它是连续的,就一定存在一组权重,让一个够宽(隐藏神经元够多)的网络与它处处相差不到你指定的任何小误差。这就是从"一条会拐弯的线"到"能表达任何形状"的那块跳板。

直觉:用一堆"台阶"拼出任意曲线
为什么足够多的神经元就能逼近任意形状?想象每个 sigmoid 神经元都是一级平滑的"台阶":在某个位置从低跳到高。把很多级高矮不一、位置错开的台阶叠加起来,就能拼出一条上上下下、任意起伏的曲线——台阶越密,拼出的曲线就越贴合目标。下面的部件正是把这个"用台阶拼曲线"的过程画给你看:加神经元 = 加台阶 = 逼得更准

还有一句要紧的补充:宽度能办到的事,深度往往办得更省。万能逼近只要求"够宽"(单层、够多神经元)就够,但要达到同样的表达力,一个又浅又胖的网络可能需要天文数字的神经元,而一个更深(多叠几层)的网络用少得多的参数就够了——深度让复杂函数能被"分层复用、逐级搭建",这正是"深度学习"里"深度"二字的分量。

万能逼近:加神经元,逼近任意曲线
灰色是要拟合的目标曲线 f(x) = 0.6·sin(3x) + 0.3·sin(7x);彩色是网络的拟合 ĝ(x) = ∑ cᵢ·σ(s·(x − tᵢ))——把 N 级 sigmoid"台阶"叠起来。拖动滑块增加隐藏神经元数 NN 小时拟合是一条粗糙的阶梯(表达力不足、欠拟合),N 大时曲线越贴越紧——这就是万能逼近。
隐藏神经元数 N
4
拟合误差 MSE
参数量(约)

三个新问题

万能逼近像是发了一张"能拟合任何东西"的通行证。可正是这张通行证,逼出了这一部分接下来要回答的三个问题——它们就是路线图。

问题一:既然它能拟合任何数据,凭什么不只是把训练集背下来?如果一个网络强到能穿过每一个训练点,那它完全可能连数据里的噪声都一起背熟,然后在没见过的新数据上一塌糊涂。可现实里训练好的网络偏偏能在新数据上工作——这是怎么做到的?这是整个机器学习最深的问题,交给下一课:第 39 课·泛化

问题二:几百万个参数,到底怎么训得动?好消息是——工具你早已备齐。要减小损失,需要知道每个参数该往哪挪,这是第 25 课梯度;网络深了、损失是层层复合的函数,硬求导会爆炸,而第 26 课反向传播(链式法则 + 计算图)让一次反向遍历就拿到所有参数的梯度;拿到梯度后,按第 27 课梯度下降朝负梯度挪一小步。训练一个庞然大物,本质上只是把这套动作在亿万参数上重复亿万次——没有新魔法。

问题三:全连接网络忽略了数据本身的结构。MLP 把输入当成一长串互不相干的数——可一张图片里,相邻的像素是高度相关的,"边"和"角"是局部的模式,把它拉平成一条向量就把这份结构白白扔了。怎样让网络顺着数据的结构去搭?这把钥匙叫卷积,留给第 40 课

常见误解

一句话带走
一个神经元 = 一次内积 + 一次掰弯——和逻辑回归、SVM 是同一个式子,单独看它连 XOR 都学不会。真正的质变来自堆叠:把神经元叠成层、层与层之间掺进非线性,就能把纠缠的数据折弯到线性可分;而万能逼近定理保证,足够宽的网络能逼近任何连续函数,深度则让这件事更省参数。从"一条会拐弯的线"到"能表达任何形状",跨过的就是这一步。
下一步
万能逼近说,网络强到能拟合任何数据——可这也意味着,它完全能把训练集里的噪声一并背下来。那它凭什么还能在没见过的新数据上工作?这是整个机器学习最深、也最要命的问题。→ 第 39 课《为什么学得会:泛化、偏差-方差与正则化》。