什么是归纳偏置(inductive-bias)
给你三个点 (1,1)、(2,2)、(3,3),问 x=4 时 y 是几。你脱口而出 4。但 y=x 和 y=x+(x-1)(x-2)(x-3) 在这三个点上完全重合,后者在 x=4 给出的是 10。数据本身没法把它排除掉,是你心里那条「优先选简单的」规则替你排除的。这条规则就是归纳偏置。
一、为什么没有它就学不动
训练集是有限的,能穿过这些点的函数有无穷多个。模型要做的不是记住训练点,而是预测没见过的点,这一步在逻辑上根本不成立------光凭数据无法唯一确定一个函数。归纳偏置就是补上这个缺口的额外假设,它规定了模型在无穷多个候选解里偏向哪一类。
把归纳偏置抽干净,学习就退化成死记硬背:训练点全对,训练点之外两眼一抹黑。No Free Lunch 定理说的就是这件事------脱离对问题结构的先验假设,没有哪个算法天生比另一个强。所谓「更好的模型」,永远是相对某一类问题而言、偏置押对了的模型。
二、它藏在模型结构里
归纳偏置不是一个你手动设的超参,大部分时候它焊死在网络结构里。卷积网络假设图像的局部像素相关、物体平移后还是同一个物体,于是用局部感受野加权值共享把这两条假设变成了硬约束。这个偏置押得很准,所以 CNN 在图像上用很少的数据就能学好。
换个偏置就是换一套对世界的假设。RNN 假设数据有先后顺序,GNN 假设样本之间是图结构且对节点置换不变,线性回归假设特征和输出是线性关系,L1/L2 正则假设权重应该稀疏或者小------也就是模型应该简单。Transformer 是个反例:它刻意把结构假设做得很弱,几乎不预设局部性或顺序,代价是要靠海量数据和位置编码把这些先验重新喂回去。
常见模型内含的归纳偏置:
| 模型/结构 | 隐含的假设 |
|---|---|
| 卷积网络 CNN | 局部性、平移不变性 |
| 循环网络 RNN | 时序、顺序性 |
| 图神经网络 GNN | 关系结构、置换不变性 |
| 线性回归 | 特征与输出线性相关 |
| L1/L2正则 | 权重应稀疏/应小,即模型应简单 |
| Transformer | 结构假设很弱,靠位置编码补先验 |
三、强偏置和弱偏置,押的是不同的赌
强归纳偏置像 CNN,把假设写进结构,省数据、收敛快,但假设错了就是系统性的错,再多数据也掰不回来。弱归纳偏置像Transformer,几乎不替你做假设,灵活、上限高,但需要的数据量和算力是另一个量级。
这就是为什么小数据集上 CNN 常常打得过 ViT,而数据一旦堆到足够大,ViT 反超------不是 ViT 更聪明,是它的弱偏置在大数据下不再是负担,反而避免了 CNN 那些押错的地方。选强还是选弱,本质是赌「我有多少数据」和「我对问题结构有多少把握」。
四、设计模型就是在挑偏置
一旦想清楚归纳偏置是什么,很多模型设计的决策就有了统一的解释:它们都是在调模型对数据结构的先验假设。视觉骨干选 CNN 还是 ViT,是在选「要不要把局部性写死」。序列建模里挑哪种位置编码 ------ 一维的、还是带二维空间结构的 ------ 是在选「告诉模型序列/空间长什么样」。把全注意力和某种线性注意力混着用,是在「灵活但贵」和「便宜但有结构假设」之间调配比例。
没有放之四海皆准的偏置,只有跟你这批数据的真实结构对不对得上的偏置。对上了,少量样本就能泛化;对不上,模型从一开始就带着系统性偏差,喂再多数据也只是把错误学得更稳。模型设计的大半功夫,花在替问题挑一个押得对的归纳偏置上。