提升回归模型可信度:4种神经网络不确定性估计方法对比与代码实现

回归任务在实际应用中随处可见——天气预报、自动驾驶、医疗诊断、经济预测、能耗分析,但大部分回归模型只给出一个预测值,对这个值到底有多靠谱却只字不提。这在某些应用场景下会造成很多问题,比如用模型预测患者血压,假设输出是120/80这样的正常值,表面看没问题。但如果模型其实对这个预测很不确定呢?这时候光看数值就不够了。

神经网络有几种方法可以在给出预测的同时估计不确定性。

回归中的不确定性问题

分类任务里,每个类别都有对应的预测分数,经过softmax之后就是概率值,可以直接当作置信度来看——概率高说明模型比较有把握。

回归就没这么简单了。用MSE(均方误差)训练回归模型时,模型对那些难拟合的样本会倾向于预测平均值。比如说训练集里有几个输入特征几乎一样、但目标值差异很大的样本,模型为了降低MSE,会把预测往它们的均值靠拢。

这就带来一个问题:当预测值接近训练集的整体均值时,很难判断模型是真的有把握,还是纯粹为了优化损失函数在"混日子"。而如果预测值偏离均值较远,可能说明模型比较确信——因为预测错了的话MSE惩罚会更重。

假设目标值在-1到1之间,训练集均值接近0。模型预测0.1时,不好说它是有信心还是在敷衍;但预测0.8时,大部分情况说明它确实掌握了某些模式,当然这个现象也不是在所有情况下都成立。

这里涉及两类不确定性的概念:

任意不确定性(Aleatoric uncertainty)来自数据本身的随机性和噪声,比如测量误差、自然界的随机过程。这种不确定性没法通过增加数据来消除,它就是客观存在的。

认知不确定性(Epistemic uncertainty)源于知识或数据的缺乏。弄日三级片训练数据太少或者测试样本落在从没见过的区域,模型就会产生这类不确定性。但是这种不确定性是可以通过改进模型结构、收集更多样化的数据来降低的。

前面提到的那个例子主要说的就是任意不确定性。但即便预测0.8,如果是在数据稀疏的区域,模型也可能因为认知不确定性而不靠谱。

 

https://avoid.overfit.cn/post/41e53439b74b45e1baa7db86c2a8b024

posted @ 2025-11-05 19:42  deephub  阅读(9)  评论(0)    收藏  举报