深度学习领域中的inductive bias(归纳偏置)理解

参考:

知乎《如何理解Inductive bias?

博客《Vision Transformer 演化史: CoAtNet: Marrying Convolution and Attention for All Data Sizes - 使用Depthwise Conv 来结合CNN 与Transformer

归纳偏置在机器学习中是一种很微妙的概念:在机器学习中,很多学习算法经常会对学习的问题做一些假设,这些假设就称为归纳偏置(Inductive Bias)。归纳偏置这个译名可能不能很好地帮助理解,不妨拆解开来看:归纳(Induction)是自然科学中常用的两大方法之一(归纳与演绎, induction and deduction),指的是从一些例子中寻找共性、泛化,形成一个比较通用的规则的过程;偏置(Bias)是指我们对模型的偏好。

因此,归纳偏置可以理解为,从现实生活中观察到的现象中归纳出一定的规则(heuristics),然后对模型做一定的约束,从而可以起到“模型选择”的作用,即从假设空间中选择出更符合现实规则的模型。其实,贝叶斯学习中的“先验(Prior)”这个叫法,可能比“归纳偏置”更直观一些。

归纳偏置在机器学习中几乎无处不可见。老生常谈的“奥卡姆剃刀”原理,即希望学习到的模型复杂度更低,就是一种归纳偏置。另外,还可以看见一些更强的一些假设:KNN中假设特征空间中相邻的样本倾向于属于同一类;SVM中假设好的分类器应该最大化类别边界距离;等等。

在深度学习方面也是一样。以神经网络为例,各式各样的网络结构/组件/机制往往就来源于归纳偏置。在卷积神经网络中,我们假设特征具有局部性(Locality)的特性,即当我们把相邻的一些特征放在一起,会更容易得到“解”;在循环神经网络中,我们假设每一时刻的计算依赖于历史计算结果;还有注意力机制,也是基于从人的直觉、生活经验归纳得到的规则。

在自然语言处理领域赫赫有名的word2vec,以及一些基于共现窗口的词嵌入方法,都是基于分布式假设:A word’s meaning is given by the words that frequently appear close-by. 这当然也可以看作是一种归纳偏置;一些自然语言理解的模型中加入解析树,也可以类似地理解。都是为了选择“更好”的模型

 通俗地来讲:

Inductive Bias 这个词可以分成两个部份来看:Induction (归纳、推理),指的是在资料中寻找共同性、寻找一个通用的规则。Bias (偏见、误差) 指的是对规则的偏好。

在日常生活中的Inductive Bias,以台风路径预报为例子可为:观察云向、气压、卫星图等资料来归纳出明台风最有可能的路径为何,但每个不同国家的气象局对于每个因素都会有不同的偏好,进而使得每个国家预报出来的路径都不相同。

对于深度学习CNN 来说,透过kernel 可以使CNN 有归纳出locality、spatial invariance 的特性,也就是局部特征提取,和空间不变性(特征不管在图的哪个地方都是同个特征)。而对于找出来的不同特征,会再给它们权重来选择重要及不重要的特征。因此Inductive Bias 可以简单的说是找特征的能力。

猜你喜欢

转载自blog.csdn.net/qq_23981335/article/details/122561402