机器学习中的归纳偏置
带着偏见看世界,否则你根本没有看待世界的方式。
本文主要参考整理自知乎问题:如何理解Inductive bias?
No-Free-Lunch(NLF)定理指出学习是不可能的,除非有先验知识。通常情况下,我们会猜测某个问题的解属于所有可能的目标函数的一个较小的类别中,比如对于下图中的一些点,我们很自然地会假设目标函数是一个线性函数,这种基于先验知识对目标的判断就是Inductive Bias归纳偏置。也就是说,归纳偏置所做的事情,就是将无限可能的目标函数约束在一个有限的假设类别中,这样,模型的学习才成为可能。
如果给出更加宽松的模型假设类别,也就是说使用更弱的归纳偏置,那我们可能得到的模型的范围就更大,就更有可能得到想要的模型。而损失由近似损失和估计损失组成,这样做虽然减少了近似损失,但会增大估计损失,模型将更难学习,也更容易过拟合。
归纳偏置这个直译名可能不能很好地帮助理解,不妨拆解开来看:归纳(Induction) 是自然科学中常用的两大方法之一(归纳与演绎, induction and deduction),指的是从一些例子中寻找共性、泛化,形成一个比较通用的规则的过程;偏置(Bias) 是指我们对模型的偏好,从所有可能的模型中,选出我们假设目标函数会属于的那一个小类。
因此,归纳偏置可以理解为,从现实生活中观察到的现象中归纳出一定的规则(heuristics),然后对模型做一定的约束,从而可以起到“模型选择”的作用,即从假设空间中选择出更符合现实规则的模型。其实,贝叶斯学习中的“先验(Prior)”这个叫法,可能比“归纳偏置”更直观一些。
归纳偏置在机器学习中几乎无处不可见。老生常谈的“奥卡姆剃刀”原理,即希望学习到的模型复杂度更低,就是一种归纳偏置。另外,还可以看见一些更强的一些假设:KNN中假设特征空间中相邻的样本倾向于属于同一类,SVM中假设好的分类器应该最大化类别边界距离,等等。
在深度学习方面也是一样。以神经网络为例,各式各样的网络结构/组件/机制往往就来源于归纳偏置。在卷积神经网络中,我们假设特征具有局部性(Locality)的特性,即当我们把相邻的一些特征放在一起,会更容易得到“解”;在循环神经网络中,我们假设每一时刻的计算依赖于历史计算结果;还有注意力机制,也是基于从人的直觉、生活经验归纳得到的规则。
-
CNN的inductive bias是局部性(locality)和空间不变性(spatial invariance),即空间相近的像素的联系较为密切而远的则相对疏远。空间不变性体现在卷积核权重共享,即一种模式在图像的任意位置都会被同样地检测到。比如一只猫不管在图像的中间还是左下角,都会被CNN判断出图像中有一只猫。
-
RNN的inductive bias是序列性(sequentiality)和时间不变性(time invariance),即序列顺序上的timesteps有联系,和时间变换的不变性(rnn权重共享)。
Ref
https://www.zhihu.com/question/264264203
https://blog.csdn.net/jayloncheng/article/details/80300724