贝叶斯剃刀:多一个参数,就要多交一笔辩护费
机器学习里常劝人“别用太多参数,会过拟合”。为什么?标准答案是“奥卡姆剃刀”——但这只是一块石头,告诉你该剪,却没给你剪刀。贝叶斯学派给了一把具体的剪刀:边际似然。
比较两个模型时不看谁的最佳拟合更好,而看谁在平均意义下更会预测数据: P(data|M) = ∫ P(data|θ,M) P(θ|M) dθ 关键在那个积分。复杂模型拥有很大的参数空间,先验概率必须像撒芝麻一样铺满各个角落。数据只能照亮其中一小片区域。于是即便那片区域拟合极好,积分后也可能被其余暗淡区域拉低。这就是贝叶斯奥卡姆剃刀:不是法官罚你,是你自己把举证责任摊薄了。
算个具体数。假设简单模型M1给出似然 L1=0.01。复杂模型M2多一个参数,先验在[-10,10]上均匀,数据把后验压缩到宽度0.1的区间,而峰值似然高达0.5。M2的边际似然近似为 0.5 × (0.1/20) = 0.0025。M2的最高点拟合是M1的50倍,但整体证据只有M1的四分之一。多出来的参数正在支付辩护费。
信息论说得更狠:log边际似然是最优编码长度。每多一个参数,就要多付一串比特去描述它在数据中显现出的位置。如果数据没能让该参数的位置足够精确,这串比特就是白付。模型选择,本质上是一场预算战。
因此当有人宣称“我的模型拟合得更好”时,真正该问的是:你为每个参数的光圈付了多少比特?这也引出一个尖锐问题:既然复杂度的代价来自先验宽度,那么“无信息先验”的选择会直接影响模型胜负。贝叶斯剃刀的刀锋,其实握在编码语言的设计者手里——模型复杂度到底是不是一个客观量,还是永远依赖先验与编码的任意约定?







0 评论