神经网络几何直观:在二维平面上画曲线

一条主线:线性层把输入"平放"成高维里的一个仿射平面;ReLU 按 把这些平面切开、折起来;分类边界则是输出层超平面在输入空间中的原像。 全文只回答一个问题:为什么两层的线性分类器画不出曲线,而 ReLU 网络能?


主线串讲

先把整条线顺着走一遍。

起点是一个二维平面。 把它映射进十六维空间,像并不是一个十六维的体,而是十六维里的一个二维仿射平面。十六个神经元各自算一个线性函数,输出确实是十六维向量,但它被约束在这个二维平面里,信息量没有增加。

ReLU 在 处下刀。 这十六个条件在 空间里是十六个超平面,拉回输入平面就是十六条直线,把输入平面切成许多块。因为用的是 ReLU,每块内部的映射都是线性的,每块映到十六维里就是一个平面片。

这些平面片拼起来不再是平面。 它们一般不再落在线性层给出的那个二维仿射平面里,而是在十六维中弯折,用上了其它方向;但整个像仍然由二维参数 生成,参数维数还是 2(这里说的是像的内在自由度,不是权重个数,见 2.4 与附录 B)。所以原来的二维平面经过映射,在十六维里变成了一个分片线性的二维曲面。

多层复合就是反复折。 每一层把上一层的分片线性曲面再折一次,分片数量随层数增长,这就是深网络理论上能逼近复杂函数的几何原因。

分类任务是最后一步。 网络最终输出的决策边界,看上去是输入平面上的一条曲线,通常还是弯的,不是直线。它不是某一条切分线,而是由许多块上的线性片段拼出来的折线/曲线。我们在二维空间里看到的这条曲线,本质上是输出层超平面 在输入平面上的原像——是取原像,不是投影。


0. 结论速览

先给结论,后文再逐条拆开:

环节 几何动作 关键量
线性层 把 平放成 里的一个二维仿射平面 像的维数 ≤ 2,与 无关
ReLU 按 切分输入平面,把各片折出原平面 切分线有 16 条,最多切出有限块
多层复合 每层把上一层的分片曲面再折一次 分片数随深度/宽度增长
输出层 在 空间里选一个超平面 决策面
分类边界 该超平面的原像 二维输入 → 曲线;一维输入 → 离散点

一句话:网络不是"在二维平面上画曲线",而是"把数据抬到高维、在高维用一个平面分开、再把平面拉回来看它长什么样"。


1. 基本设定

输入 (先看 ,再看 )。第一层线性部分:

激活函数逐分量作用,以 ReLU 为例:

输出层线性组合:

分类边界定义为 在输入空间中的解集。

注意层级: 是定义在输入上的复合函数 ,边界是它在输入空间的零水平集,不是 空间里的那个平面本身。这是全文最容易出错的一处。


2. 线性层:把输入"平放"进高维

2.1 设定

以二维输入、十六维隐藏层为例(,)。记 的两列为 ,则

2.2 结论

线性层把二维输入映成十六维空间里的一个二维仿射平面:过点 ,方向由 张成。

  • 十六维是陪域,不是像的维数。
  • 像的维数最多是 2(只要 不共线就是恰好 2),远没有填满十六维。
  • 十六个神经元各自算一个线性函数 ,输出确实是十六维向量,但它被约束在这个二维仿射子空间里。

2.3 三个必须分清的量

量 值 含义
输入自由度 2 两个参数决定了整个像
像的(仿射)维数 2 平面,不是十六维体
嵌入空间维数 16 平面"住"在十六维里
权重个数 参数个数 ≠ 像的维数

2.4 一句话

线性层只是把二维信息换了个坐标表示,嵌进高维;信息量没增加,像的内在自由度仍是 2。

术语提醒:原文说"参数维数仍是 2",这里"2"指的是输入自由度 / 像的内在维数;若按"参数个数"算,光 就有 32 个。两种说法别混用,见附录 B。


3. 激活函数:把平面折起来

3.1 切分发生在哪

每个 是一个条件。在 空间里, 是十六维中的一个超平面;把它拉回输入平面,

是一条直线。十六个神经元给出十六条直线,把输入平面切成许多块(最多 块,一般远少于这个上界)。

3.2 每块上是什么

在每个块内部,每个 的符号固定,ReLU 要么原样保留、要么压成 0。所以映射在这一块上是线性的,整块被映到十六维里的一个平面片。

3.3 整体像是什么

所有平面片拼起来,是十六维空间里的一个分片线性的二维曲面。

它一般不再落在线性层给出的那个二维仿射平面里,而是"离开"了那个平面,在十六维中弯折,用上了其它方向——这正是 ReLU 真正贡献的东西。

3.4 三个维数要分清

  • 输入自由度:仍是 2,整个像由 生成。
  • 嵌入空间维数:16,曲面嵌在十六维里。
  • 像的本质维数:还是 2,不是"变成了十六维对象"。

一句话:ReLU 没有增加维数,它只是让像离开原来那个平面,从而获得"弯"的能力。


4. 多层复合:折的次数累加

4.1 纯线性:白搭

如果每层只有线性,复合还是线性:

多层等于一层,深度毫无意义。

4.2 夹上 ReLU:不再线性

每一层把上一层的分片线性曲面再折一次,分片数量随层数增长。这就是深网络能逼近复杂函数的几何原因。

4.3 宽度与深度各管什么

维度 作用 几何图像
宽度(每层神经元数) 提供更多超平面去切分输入空间 决定折的面数(一次能切几刀)
深度(层数) 反复切分,使分片更精细 决定折的次数(切完再切)

5. 分类边界:超平面的原像

5.1 准确链条(四步)

  1. 输入 经前几层映到中间表示 。
  2. 输出层对 做线性组合:。
  3. 决策条件 —— 这是十六维 空间里的一个超平面。
  4. 把这个超平面拉回输入空间(取原像),得到输入空间中的曲线/折线,这才是我们看到的分类边界。

5.2 三个对象,三张面孔

对象 是什么 拉回输入空间后
十六维 空间的超平面 直线( 对 是线性映射,原像平直)
十六维 空间的超平面 折线/曲线( 非线性,原像弯折)
分类边界 输出层超平面在输入空间上的原像 由许多块上的线性片段拼成,通常弯,不是某一条切分线

两句话记住区别:

  • 是"刀",负责切分输入空间;
  • 是"标准",负责在切好的块里挑出边界那一片。

5.3 用词:原像/拉回,不是投影

前向映射是 ,边界是

的解集。这是沿前向映射反向取原像,不是把高维对象"投影"下来。投影会丢信息且有明确公式;取原像只是"所有满足条件的输入",没有降维公式。

5.4 逻辑顺序:不是"先找曲线"

不是"先在二维找一条曲线,再设计网络去实现它",而是:

  1. 给定数据;
  2. 网络前向把数据映到高维;
  3. 输出层在高维学一个超平面把两类分开;
  4. 超平面拉回输入空间,就是分类边界曲线。

前几层提供"曲线族",输出层从中选一条。训练同时调两者。


6. 最小例子:一维输入映到二维

6.1 设定

输入 ,第一层映到二维:

ReLU:

输出:

6.2 切分点与三段

两个点把输入直线分成三段:

区间 的表达式

每段内 是 的线性函数,所以 在每段内也是 的线性函数。分类边界 在每段内最多是一个点。

6.3 代一组权重看看

取 、,即 :

区间 零点
无
✅
无

结果:边界只有一个点 ,左侧判正类、右侧判负类。三段、两个折点,却只产出一个边界点——这正是"每段最多一个零点"的直接体现。

这个例子还说明:折点()不一定是边界点。折点来自隐藏层,边界点来自输出层,两者是不同的东西。

6.4 整体边界是什么

把所有段内满足 的点收集起来,得到输入直线上若干个离散点。这些点把输入直线分成若干区间,每个区间内预测同一类。

  • 分类边界是输入直线上的若干个点,不是"线段组成的曲线"。
  • 画出输入直线,看到的是红段、黄段交替;分界处是那些点。

6.5 与二维输入对比

输入维数 分类边界的维数 形状
二维 1 曲线/折线
一维 0 离散点

共同逻辑:高维超平面拉回输入空间,维数降一。


7. 七个常见误区

容易说错 准确说法
"超平面把二维仿射平面弯折" 超平面在十六维 空间;拉回输入平面是直线,作用是切分输入平面;弯折发生在映射之后,像在十六维里弯
"引入其它维度,变成高维对象" 像离开原二维仿射平面、在十六维中弯折,但内在自由度仍是 2
"分类边界是某条超平面" 边界是输出层超平面在输入空间中的原像,是分片线性折线/曲线
"投影到低维" 是拉回/取原像,方向与前向映射相反,且没有降维公式
"十六维被填满了" 线性层像的维数最多 2;十六维是陪域,不是像的维数
"一维输入的边界是曲线" 一维输入的边界是点;那些"段"是分类结果的分段,不是边界本身
"折点就是决策边界" 折点由隐藏层切分决定,边界点由输出层超平面决定,两者位置一般不同(见 6.3)

8. 与万能逼近定理的关系

有关系,但不是同一个定理。

经典万能逼近 分片线性分析
代表人物 Cybenko(1989)、Hornik(1991) Telgarsky、Montúfar、Pascanu 等
结论 单隐藏层、足够宽、非线性激活,可一致逼近紧集上任意连续函数 ReLU 网络是分片线性函数;分片数随宽度、深度增长
说的是 存在性、稠密性 表达能力、深度的效率优势
不管的是 不直接数分片 不直接讲稠密性

联系:分片线性函数能逼近连续函数,所以前面"折、分片数增长"的图像,就是万能逼近定理在 ReLU 网络上的几何直觉版本。

区别:经典定理只保证"存在一套权重",不说需要多少片;分片分析能算出"要多少片",但不直接给稠密性结论。两者互补——一个说"能逼近",一个说"要多大代价"。


9. 一句话总结

线性层把输入平放进高维(仿射平面);ReLU 按 的直线切分输入空间,把像折成高维里的分片线性曲面;多层复合让分片数增长;分类边界是输出层超平面在输入空间上的原像——二维输入得曲线,一维输入得离散点。曲线族由前几层决定,具体曲线由输出层超平面决定,训练同时调两者。


附录 A 全流程速查

步骤 数学 几何 常见误读
① 线性层 平放成 维里的二维仿射平面 以为填满了 维
② 切分 输入平面上的直线(共 条) 以为在 维里切输入
③ 激活 各片绕折痕折出原平面 以为维数变高了
④ 输出 空间里的超平面 把它当分类边界
⑤ 拉回 输入空间的曲线/点 说成"投影"

维数账本(、):

输入平面        2 维   ← 真正的自变量空间
线性层像        2 维   (仿射平面,嵌在 16 维里)
ReLU 后的像     2 维   (分片线性曲面,仍嵌在 16 维里)
输出层超平面   15 维   (16 维空间中的一张平面)
拉回输入       1 维   (曲线/折线)← 分类边界

附录 B 符号表与术语说明

符号 含义 维数
输入 (例中 2 或 1)
第一层权重、偏置 、
线性层输出(激活前) (例中 16)
隐藏层表示(激活后)
输出层权重、偏置 、1
网络输出(logit) 1
第 个折痕 输入空间中一条直线
分类边界 输入空间中余维 1 的集合

两处术语需要留意

  1. "参数维数" 原文指"像由几个自由度生成",即 2。若严格按"参数个数"算, 有 32 个、加上 共 48 个。本文统一改称"输入自由度"或"像的内在维数"以避免歧义。
  2. "超平面" 在 维空间中指余维 1 的仿射子空间(维数 )。严格说 是过原点的超平面, 是不过原点的仿射超平面。日常混用无碍,但讨论"是否过原点"时不能含糊。

附录 C 下一步:用秩把"维数最多是 2"讲严格

本文反复用到一句"像的维数最多是 2",直觉上够了,严格证明只差一个概念:

  • 是 矩阵,它的像就是列空间,维数等于秩。
  • 秩不超过列数 ,所以二维输入永远只能张出至多二维的像,与 无关。
  • 秩-零化度定理进一步给出:,于是"压缩掉的自由度"也有了定量说法。

再往前一步,就是基与维数:为什么 的维数是 3、为什么换基后矩阵变而映射不变()。这三件事接上,本文所有"维数"的说法都能落到定理上。


整理自关于"二维输入 → 高维隐藏层 → ReLU → 分类边界"以及"一维输入映到二维"的讨论。保留原有推导链条与例子,统一了编号、术语与公式排版;补充了结论速览、全流程速查、符号表、6.3 的数值验算,以及"折点 ≠ 边界点"这一容易被忽略的区分。