当前位置: 华文星空 > 体育

如何理解Inductive bias?

2017-12-18体育

Inductive 是归纳,bias是偏,就是指在建模/训练时从数据中所归纳的assumption/假设有偏(也很难避免,你总得信一个),在泛化/测试时,由于测试数据与建模/训练时预设的assumption不一致,导致出现的问题,比如:CNN的平移不变性和局部性就是Inductive bias,它们是图像处理的特点吗,太是了!正因为这个原因,CNN在处理全局特征不够完美(不讨论CNN通过多层卷积或者空洞卷积也能提取全局特征),于是Vision Transformer的self attention才能大行其道,可见,Assumption是双刃剑,最擅长的优点,可能也是挥之不去的弱点;ViT的Inductive Bias就比较少,没有locality,效果也非常好,就是算力消耗多;Swin Transformer说你ViT的确牛,但是CNN里还有些好东西的,也没必要都扔掉,又捡了点回来,滑动窗口就是locality的体现,一些合适的Inductive Bias能减少很多计算量,还是有价值的,可见,分寸很重要。不过在算力即正义的年代,大厂是有实力少一点Inductive Bias的,用算力弥补了,富则炮火覆盖。

以前NLP里常见的朴素贝叶斯,假设每个词之间都是独立的,这也是一种可能导致bias的先验认知/assumption,而且还是比较强的assumption;强化学习里的马尔可夫决策MDP等等都是inductive bias,总之:inductive bias是测试时新的数据与训练时的assumption/先验不一致,是难以完全避免的模型「缺陷」(除非所有测试数据百分百和训练数据源于同一分布),不管如何提升训练技巧都改变不了的。RNN假设当前的输入和之前的输入有关系,那么和之后的有关系吗?于是后来有了双向LSTM和BERT。

所以inductive bias是我们选择一种assumption,而放弃其他assumption的代价,甘蔗没有两头甜 于是我们倾向于选择表达能力强的模型,比如神经网络,universal approximation定理说明,哪怕最简单的只有一个隐藏层的多层感知机MLP,也能逼近任何分布,但这并不意味着inductive bias就减小了,这里还要考虑模型复杂度的成本,奥卡姆剃刀告诉我们:要选择所有能解释现在现有数据的模型中,复杂度最低的模型,不然容易过拟合,不过这是另一个话题了。

另外围棋的核心不是CNN,而是RL,CNN只是感知棋盘,不是决策。