机器学习正在退化成“高级记忆术”

🔑 关键词:机器学习,深度学习,因果推断,可解释性,模型过拟合

📖 摘要:从个人调参经历出发,讨论当前机器学习范式过于依赖数据记忆,缺乏真正的因果理解,对比经典的统计学习与人类学习方式,提出需要回归因果关系与结构化认知。

一、从一次Kaggle翻车说起

图片

去年秋天,我在一个医疗预测的比赛里花了三周调一个LightGBM模型。 验证集AUC到了0.89,排名前5%。 当时我沾沾自喜,朋友问“模型学到了什么?”我指着特征重要性说“年龄、呼吸频率这些”。 但他追问“为什么这些特征和死亡预测相关?”我愣住了。 我去翻训练数据,发现医院的数据集中重症患者本身的年龄就偏大,这根本不是因果,只是相关性。 后来换了个地区的数据,同一套特征完全失灵。 那一刻我意识到,我训练的不是一个“学习者”,而是一个“复读机”——它把训练集里的模式背得滚瓜烂熟,但换个环境就原形毕露。

类似的事情在工业界太常见了。 很多团队汇报模型效果时,都喜欢强调“在测试集上准确率99%”,但上线后崩溃。 为什么?因为测试集和训练集来自同一个分布,模型只需要记住分布内的规律就够了。 真正的“学习”应该像孩子一样,见过一只黑猫,下次看到白猫也能认出来——那是概念层面的抽象,而不是像素级的匹配。 但今天的深度学习,做得更多的其实是后者。

图片

二、因果,才是学习的门槛

判断一个模型是否真的“学会”了,我有个朴素的标准:它能不能回答“为什么”? 比如预测房价,线性回归告诉我“面积每增加一平米,价格增加5000元”,这个我能理解,也能质疑。 但一个深度神经网络给出一堆特征权重,我根本不知道它是怎么权衡的。 如果模型把“附近有垃圾站”和“房价低”关联起来,它可能只是在重复数据的偏见,而不是理解垃圾站带来的环境影响。

图片

统计学家Pearl一直在强调因果革命,他认为数据只能反映相关,而因果需要人为假设。 现在的机器学习圈子里,几乎没人讨论因果,大家都在拼命堆数据和算力。 前几天我读了一篇关于因果推理的论文,作者用手写逻辑规则去约束神经网络的预测,效果出奇地好,而且还能迁移到新任务。 这让我想起上学时老师说的:学数学要学证明过程,而不是背结论。 我们现在的机器学习,只教模型背结论。

三、经典方法并没有那么过时

图片

很多人觉得线性回归和逻辑回归都是老古董,只能做简单问题。 但我这几年在工业应用里发现,真正能稳定运行、出了问题能解释的系统,往往还是基于这些老方法。 它们的好处是透明,你能直接看到每个变量的系数和置信区间,可以跟业务方讨论。 而深度学习模型,就像一个黑箱,出了问题只能猜。 我并不是说深度学习没有用,而是在很多场景下,我们为了微小的性能提升,放弃了巨大的可解释性。

更讽刺的是,一些所谓的“深度学习优化技巧”,比如正则化、dropout,本质上都是在控制模型不要“背得”太死。 早期我训练神经网络时,经常看到训练集loss接近0,但验证集loss在上升——这就是典型的过拟合。 后来我学会了一堆调参技巧,但每次都要心里默念“这可能只是运气好”。 模型给出的预测我再也不敢拍胸脯保证,因为我不知道它会不会在一个我从未见过的数据点上突然疯掉。

图片

四、也许我们需要“重新学习”学习

我不打算否定深度学习的所有成果。 图像识别、语音合成这些领域,它确实带来了突破。 但这些突破更像是对人类感知能力的拙劣模仿——我们看一张图,大脑会自动分解出物体、轮廓、关系,而CNN只是学了一堆滤波器。 方向如果错了,再多的参数也是南辕北辙。

图片

我理想的机器学习,应该更像是一种“结构化认知”:模型不仅要知道特征和结果之间的关系,还要知道这个关系在什么条件下成立,为什么成立。 因果图、神经符号系统、贝叶斯推理,这些方向都值得投入。 至少,别让我们在调参的时候,感觉自己像个算命先生,看着指标念咒语。

深夜又一次等模型训练结束,看着loss曲线像心跳一样起伏,我忽然想起小时候学骑自行车,摔倒了很多次才学会保持平衡。 那才是真正的学习——身体记住了那种感觉,而不是背下了一套规则。 机器学习什么时候也能这样呢?

🏷️ 标签: