流形假设 Manifold Hypothesis
# 流形假设
什么是流形¶
流形(Manifold)是一个局部看起来像欧氏空间的拓扑空间。具体地: - 球面是一个2维流形:在球面上任意取一小块区域,都可以近似看作平面 - DNA双螺旋是一个1维流形:局部看就是一条曲线 - 更形式化地说,n维流形在每点的邻域都存在与\(\mathbb{R}^n\)的同胚映射
流形假设的基本理念¶
流形假设(Manifold Hypothesis)认为:高维数据虽然形式上位于高维空间\(\mathbb{R}^d\)中,但实际上存在于一个维数远小于d的流形\(M\)上或其近邻。形式化地说,存在一个低维流形\(M \subset \mathbb{R}^d\),使得实际观测到的数据点\(x \in \mathbb{R}^d\)要么位于\(M\)上,要么与\(M\)的距离很小。
数据的连续性¶
以手写数字为例: 1. 考虑写一个数字"2"的过程,我们可以: - 连续地改变笔画的粗细 - 平滑地调整倾斜角度 - 渐变地修改大小 2. 这种连续变化意味着: - 对于任意两种合理的"2"的写法\(x_1\)和\(x_2\) - 存在一条连续路径\(\gamma(t), t \in [0,1]\) - 使得\(\gamma(0) = x_1\),\(\gamma(1) = x_2\) - 路径上的每一点都是一个合理的"2"
MNIST数据集中的流形结构¶
以MNIST手写数字识别为具体案例: 1. 每张28×28像素的图像形式上是\(\mathbb{R}^{784}\)空间中的一个点 2. 但任意784维向量并不都对应有意义的手写数字图像 3. 所有合理的手写数字"2"可以用少量参数\(\theta \in \mathbb{R}^k (k \ll 784)\)来描述: - 笔画的粗细 - 字体的倾斜度 - 整体大小 - 局部形变程度
这表明所有有效的手写数字"2"实际上位于一个低维流形\(M_2 \subset \mathbb{R}^{784}\)上,其维数可能仅为10-20维。正是这种内在的低维结构,使得神经网络能够通过逐层非线性变换有效地学习数据表示,而不是在784维空间中盲目搜索。
矩阵变换的几何本质¶
每个矩阵运算本质上都是一种空间变形。想象一个简单的例子:当我们用一个2×2矩阵去乘以平面上的点时,可能会: - 旋转这个空间 - 拉伸或压缩某些方向 - 将空间投影到特定方向
这就是为什么矩阵\(W\)能够将向量\(x\)从一个空间变换到另一个空间:\(y = Wx\)。
Transformer中的空间变换链¶
基于这种理解,让我们重新审视Transformer的核心操作:
- 线性变换:QKV的几何视角
- 当我们计算\(Q = XW_q\)时,是将输入空间中的点投射到一个"提问"的视角
- 而\(K = XW_k\)则是从"回答"的角度看待同样的数据
-
\(V = XW_v\)准备了实际要传递的信息
-
非线性组合:注意力机制
- \(QK^T\)首先在空间中测量距离
- softmax(\(QK^T/\sqrt{d}\))通过非线性变换将相似度转化为权重
-
这些权重与\(V\)进行非线性组合,产生新的表示
-
残差连接:构建空间捷径
- \(y = x + F(x)\)建立了原始空间和变换空间之间的直接通道
- 原始信息可以无损传递,变换后的信息作为"修正项"
-
这种设计让网络可以专注于学习有用的特征增量
-
激活函数:增强表达能力
- 激活函数(如ReLU)引入额外的非线性变换
- 通过选择性地"激活"某些维度
- 使得网络能够逐层构建更丰富的特征表示
何凯明的残差设计¶
何凯明提出残差网络时,发现了一个反直觉的现象:更深的网络在训练集上的表现反而更差。这说明问题不在于过拟合,而在于优化难度。残差连接的设计让网络学习\(H(x) = F(x) + x\),而不是直接学习目标映射\(H(x)\)。
为什么残差连接有效?¶
从流形角度看,原始输入\(x\)到目标输出\(H(x)\)的变换路径可能很复杂。残差设计的妙处在于: 1. 如果某层不需要做任何改变,只要让\(F(x)=0\)即可 2. \(F(x)\)可以被看作对恒等映射的局部扰动 3. 每层网络只需关注如何对上一层的结果做必要的调整