投篮左手不如右手,应该怎么练?机器学习“徐-罗奇定理”给出答案

88 阅读3分钟

最近参加一次关于“机器学习理论前沿”的专题讲座,听到了徐宗本院士分享的一段经历,其中提到他在误差建模领域的重要贡献——徐-罗奇定理

这是我第一次系统听说这个定理,但听完后,有种“原来一直在用,却不知道背后的数学真相”的感觉。

于是,想写下这篇文章,和大家一起聊聊这个被忽视的“损失函数选择之道”。

image.png

什么是最优损失函数

想象一下,你在玩一个“扔飞镖”的游戏:你要把飞镖扔到红心上;但是有风,有小狗跑过,还有人推了你一下,所以你每次扔都有点偏差。

image.png

你扔了好多次,老师在一旁看着,然后跟你说:

“你每次扔得歪的方式,其实是有规律的。”

有时候你总是往左歪,有时候你偶尔会扔得很远——这就像误差分布,也就是你“扔错的方式”。

那现在老师想训练你扔得更准,怎么办呢?

他会告诉你一个评分规则,也就是每次扔错了,要扣几分。

根据你平常是怎么扔偏的,来设计的评分方式,能让你改得最快、变得最准。

比如你总是往左歪,那评分规则就专门“扣往左的分”扣得多,让你注意别再左偏;
如果你偶尔会扔得超远,那评分规则就对“扔特别远的”扣更多分,提醒你别使劲太猛。

这套评分方式,就是最适合你的——这就是“最优损失函数”。

机器学习中的最优损失

在实际的机器学习任务中,我们经常默认选择某种损失函数:比如:做分类用 cross-entropy;做回归用 L2(均方误差);偶尔改用 MAE、Huber,为了更鲁棒而已。

image.png

传统机器学习理论假设:

损失函数是外生给定的,模型去拟合数据即可。

但现实场景往往复杂得多:

数据带噪音,错误来源五花八门(测量误差、标注偏差、系统漂移...)——这时,固定使用某种损失函数,等于在瞎子摸象

一句话理解徐-罗奇定理

在一个典型的监督学习问题中,我们有输入 x,输出 y,目标是学得一个函数 f(x) ≈ y。

如果我们知道误差项 ε = y - f(x) 的概率密度函数是 p(ε),那么我们可以使用极大似然估计来推导损失函数。也就是说,我们希望最大化所有样本的联合概率:max f ∏ p(y_i - f(x_i)),这相当于最小化负对数似然:min f -∑ log p(y_i - f(x_i))。

这个负对数似然项,就是我们最终要使用的损失函数。

这正是徐-罗奇定理的数学基础:

它把“误差的概率建模”和“损失函数的选择”统一在一个理论框架中,让我们能根据数据的误差分布去合理地设计最优损失函数。

在误差分布已知的前提下,最优的损失函数应当与该分布的负对数成正比。

小结

这个定理对我们平常人的生活也有启发,即:如果你知道自己经常是怎么出错的,那就能选出一个最适合你学习的评分规则(损失函数),这样学得又快又准。

比如你练投篮,发现左手还行,但右手一到关键时刻就偏。那就不应该一味多练,而是更关注右手的出错方式,比如是不是出手角度偏、站姿不稳,针对性地改。也就是说,给你的评分方式,应该对“右手出错”权重大一点,这样练得更快准狠!!

image.png

OK,以上便是本次分享 ~ 欢迎加我微信 atar24,一起讨论理论与实战如何结合,构建更聪明的学习系统 🤖📚