立即注册找回密码

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

手机动态码快速登录

手机号快速注册登录

搜索

图文播报

查看: 366|回复: 5

[分享] 为什么做机器学习的很少使用假设检验?

[复制链接]
发表于 2025-2-16 20:58 | 显示全部楼层 |阅读模式

登陆有奖并可浏览互动!

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录 手机动态码快速登录

×
帮朋友做一些医学的数据分析,感觉有两个问题.
1.发现他们假设检验检验用的挺多,感觉机器学习论文里面做假设检验的很少,请问为什么?

2.另外发现很多医学论文用LR的显著性检验来查找危险因素,为什么可以这么做呢,LR模型的表达能力并不很强,显著性低不一定是自变量和因变量联系不强的原因吧,没有可能是LR模型本身的原因吗?
不知道问题表达清楚没有…
原文地址:https://www.zhihu.com/question/55420602
楼主热帖
回复

使用道具 举报

发表于 2025-2-16 20:58 | 显示全部楼层
因为做不出来。。。当然有对机器学习模型搞假设检验的,不存在某些答案里所谓的“机器学习重预测,所以不需要假设检验”的说法。但这个领域非常之难搞,目前似乎还不存在像是boosting之于表格数据,神经网络之于图像处理,FDR/FWER Control之于多重检验那样的杀手级模型。
实际上传统统计模型的一般假设检验问题都不好搞。比如说一个已知协方差的多元正态模型, 然后你想检验是不是在某个奇形怪状的集合里,也就是 vs , 这都是一个很难搞的问题。至于检验一些更复杂的机器学习模型,那就更麻烦了。
所以针对机器学习的假设检验目前也确实是一个很有趣而且比较有热点的方向。一个比较热门而且也比较有趣的方向叫做黑盒模型检验(Blackbox Learner Testing),也就是如何在你完全不知道这个模型长什么样子(或者只知道大概)的情况下做检验。
首先明确一个问题,机器学习要检验什么呢?最直接的想法当然就是检验某些特征是否有效。具体来说,我们的input是,假设的一个子集。那么一个很直观的想法就是我们怎么检验特征是否有被模型提取到。举个例子,比如说你想训练一个模型根据医学图像来诊断肺癌,那么你当然就很想知道模型是否真的有提取到肿瘤那块的特征,而非只是提取到了一些毫不相关的其他特征(比如因为肺癌发病率很低,所以模型直接把所有图片判成健康来最优化损失函数)。
而上面这个问题是可以被转化成数学/统计的语言的。一般来讲假设有一个模型,那么机器学习的目的是最小化理论误差:

那么如果我们想要检验是否有作为特征被提取到,从直觉上来讲,就是说我可以把这块挖掉(或者说设为0)也不会影响模型收敛到最优的那个学习器。这件事情翻译成数学的行话就是说我把变成,其中部分被设为0。这个时候最优的学习器就成了:

如果是无关紧要的特征,这就意味着哪怕我们挖掉也绝对不会对学习器的效果造成影响。相反,如果是某些重要的特征,那么挖掉一定会导致我们训练出一个误差更大的学习器。这件事情翻译成数学的行话就是:

你看我们的零假设就出来了。当然相应地我们也可以得到备择假设:

于是对机器学习搞假设检验的框架就出来了。那么接下来的一个问题就是我们要怎么样把这个假设检验算出来。这个算的方法一般是遵从Wald Test的框架。什么是Wald Test呢,Wald Test大概的意思是我们想要检验某个参数,但是原有模型的概率算起来比较复杂。那怎么办呢,我们可以从样本中构造一个统计量,使得收敛到正态分布(或者某些其他性质比较好的分布),这样的话在样本量比较大的情况下,我们就可以用正态分布的性质进行检验了(典型例子就是对二项分布参数的检验)。
这个想法同样可以被应用到黑盒学习器的检测中来。在实际任务中一般是算不出来的(样本有限)。但是我们可以得到经验风险最小化(empirical risk minimization)的估计。用Wald Test的思路来看,我们可以在统计量上做一些文章。这大概也是这个领域一些方法的基本思路。
比如说我们可以给模型额外加一些假设(正所谓只要假设加得好,没有定理证不了),然后就可以得到(的变换)在零假设成立的条件下依概率收敛到真实的,并且还具有某些比较好的极限分布。
当然,极限分布存在和依概率收敛可能还不够,毕竟个样本收敛是收敛,个样本收敛也是收敛。所以最好我们还可以保证收敛速度。如果我们再加一些乱七八糟的假设,也许就可以保证收敛到极限分布的速度大概在(是某个正数)这个量级。当然这个速度可能不是太好,比如它可能是这个量级(相当于所需样本量随着数据维数的上升而指数上升)。这个时候我们就可以再加一些假设,比如说什么数据分布在某个 维的黎曼流形附近之类的,然后也许我们就可以把收敛速度加强到量级。于是你就可以宣布你得到了一个针对黑盒模型的,收敛速度很快,性质很好的假设检验方法。恭喜你,你已经可以对机器学习模型做假设检验了!
然后先在你也明白这个问题难搞的原因了。上面我们在加了一堆鬼知道成不成立的假设之后终于得到了一个能用的检验方法。事实上这个领域有不少文章都是这个路数。那这个时候就很尴尬了,毕竟实际应用中鬼知道像什么黎曼流形这样的假设是不是成立的。这也是尽管市面上有一堆黑盒模型的假设检验,最终能用的检验却依然有限的原因。
所以总结来讲,机器学习确实可以做假设检验,而且对机器学习做假设检验的模型还不少。但这个问题实际上非常困难,以至于目前的检验模型都需要一些过强的假设,所以最后的结果是尽管有检验手段,但是却很少人真的会在机器学习中用这些检验。
回复 支持 反对

使用道具 举报

发表于 2025-2-16 20:59 | 显示全部楼层
假设检验属于Inference。inferential modeling 和predictive modeling是两回事。和learning更差远了。
ML出身容易把predictive modeling和inferential modeling等价,i.e. 最好的predictive model就是最好的inferential model。
可这两真不是一回事。虽然工具上可能有交集,但用法上差别非常大。往往ML方法得出的结论都是错的,比如data-driven会导致严重p-value fishing(i.e. 你总能找到显著项,然而实际上它压根没有用)这个问题叫“可复现性问题”。很多拿ML quant会fail也跟这个愿意有关系。
话说医学上几乎都是小样本。举个例子,医学上每一个采样,可能都来源于病人(比如癌症病人)。那么每一个sample可能就价值5000刀以上,binary data给你50个samples,你ML能给什么样的结论?无非就是把一堆feature丢进去而已?那你哪儿来的数据做validation和test?
在小样本下做inference得到稳定而保守的结论这就是biostatistics解决的问题。比如overdispersion,怎么得到robust variance,如何解决missing data,如何解决correlated data。如何做defensive analysis。这些都有一整套工具。
建议读读biostat的书。

<hr/>这题下面有些答案解释不够合理。统计学之所以要求那么多理论就是希望得到严谨的结论,医学数据需要统计就是需要得到严谨的实验结论。machine learning现在被统计抗拒,就是因为很多时候瞎做predictive modeling你没法相信你的结论。
Q:医学都假设数据服从正态分布?ML才是王道?
生物、医学问题往往感兴趣的是某个predictor和response是否有关。然而搞ML的人不知道的是,在estimating equation的理论框架下,我们甚至不需要指定特定的分布形式(比如是否是normal,poisson or binomal),GLM回归出来的系数都是unbiased. 甚至有heteroskedasticity时候也okay.
很多人更不知道的是,在large sample theory的保证下,我们只需要知道n>50,就可以得到系数的variance的consistent estimate(Huber-White/sandwich/robust variance estimator)。
面对correlated data,只需要first momentum specification正确,就能保证回归的系数无偏。而efficiency of estimators只需要近似地拟合second momentum就有接近BLUE的性能。
做Machine Learning压根不会了解是这些理论才让人有信心拿自己的结论去跟人吹nb。

Q:做统计的不做out of sample test是否合理?
同上,小样本下没法做这事。另外,统计处理小样本时候是要求先了解数据采集过程,了解predictor,同时禁止看数据做data-driven。一次回归直接得到的结论才是最可信的。
回复 支持 反对

使用道具 举报

发表于 2025-2-16 21:00 | 显示全部楼层
机器(统计)学习中主要涉及了两种假设检验:

  • 针对特定数据集上的特定模型(如逻辑回归),分析不同变量的显著性
  • 在多个数据集上对比多个分类器的性能,分析不同模型表现的差异
<hr/>1. 先讨论第一类检验(特定数据集上变量的显著性)。在社科类文章中的数据分析(如回归)是工具,目的是从数据中归纳结论。而在计算机领域,目的是设计新的模型,而不是分析数据,一般不会专门对实验数据下结论。换句话说:社科类研究中数据分析是工具,而机器学习的目的往往是模型而不是数据本身
因为这个原因,我们发现在社科类文章中往往是“对特定数据集上的一个回归模型的变量做显著性分析,来证明某个变量是否对模型有意义”。比如一个数据集有性别、年龄、收入三个变量,分析这几个变量对于患糖尿病的影响。在这种情况下,做统计检验无可厚非。
当然,这样做也有风险和偶然性。比如我常说的一个例子:Freedman在1989年做过的模拟实验 [1]中发现,即使数据全是由噪音构成,在适当的处理后,也能发现数据中显著的相关性:6个特征显著且对回归所做的F-test的p值远小于0.05,即回归存在统计学意义。更多例子可以看:微调:有哪些相关性不等于因果性的例子?
除此之外,我们也认为广义线性模型的数据挖掘能力有限,对于复杂的非线性数据可能无法很好的拟合。所以社科类文章中的很多结论也不完全正确,但受限于数据,往往这就是当下的最优解。正因为如此,也有不少研究者在呼吁弱化p值的重要性。
而在机器学习中,一个变量是否重要,往往是通过“特征选择”和“特征重要性排序”来体现的。比如大部分决策树模型和集成树模型都可以提供一个变量重要性排序,可以等同视为统计检验。从实际效果上看,往往更好。
但为什么大部分社科类研究必须要用广义线性回归模型呢?主要是为了可解释性,来说明不同变量对最终结果的“贡献”,因此另一个附加价值就是统计检验。而机器学习因为其黑箱性导致了不大适合用于数据分析,也就不存在统计检验。值得注意的,虽然没有统计检验,但受益于机器学习中各种复杂模型的有效性,预测结果往往更准确,而且也可以得到很多有价值的分析结果。但用于学术研究的话,往往人们无法信任纯粹的对比和变量重要性排序,因此社科类中很多研究还是基于各种线性回归。
2. 再讨论第二类情况(对比多个模型在多个数据集上的表现)。其实这是机器学习,尤其是传统机器学习方向的一个趋势,越来越多的论文要求提供统计检验。我最近的一篇论文的审稿意见就有这么一条:“必须做统计检验”。


当然,这个要求有时并不合理,在特定领域也没有必要,原因如下:

  • 需要一定数量的数据集(样本量),一般来说大于10个,甚至15个数据集比较好。但这样显然是不现实的,很多领域(如机器视觉)的数据集非常大。如果是深度学习在多个大数据集上运行的开销过大,大部分情况并不现实。
  • 当数据集已经非常大且具有代表性时,没有必要做统计检验。举个简单的例子,如果有世界上百分之99人的图片,并用其预测剩下百分之1的人性别。那么在99%数据上表现足够好的模型应该就是最好的,不必多此一举。说到底,这个可能是统计学和机器学习的差异,前者更严谨后者更有效,难分优劣。
  • 不可否认,很多人其实是做过统计检验的,因为不显著于是又删掉了。换句话说,回避统计检验一定程度上也造成了灌水现象...
但话说回来,在传统机器学习领域,尤其是大量使用UCI上数据集的研究(如很多无监督学习),其实是可以做统计检验的,因为数据集都不大且数量众多。而在机器学习模型上做统计检验的重要性在2006年就有一篇JMLR论文讨论过[3],结合我的一些经验可以简单归纳为:
首先结论如下,在对比两个算法多个数据集上的表现时:
- 如果样本配对(paired)且符合正态分布,优先使用配对t检测(paired t test)。
- 如果样本不符合正态分布,但符合配对,使用Wilcoxon Signed Ranks test。
- 如果样本既不符合正态分布,也不符合配对,甚至样本量都不一样大,可以尝试Mann Whitney U test。值得注意的是,MW是用来处理独立测量(independent measures)数据,要分情况讨论,后文会深入分析。

在对比多个算法多个数据集上的表现时:
- 如果样本符合ANOVA(repeated measure)的假设(如正态、等方差),优先使用ANOVA。
- 如果样本不符合ANOVA的假设,使用Friedman test配合Nemenyi test做post-hoc。
- 如果样本量不一样,或因为特定原因不能使用Friedman-Nemenyi,可以尝试Kruskal Wallis配合Dunn's test。值得注意的是,这种方法是用来处理独立测量数据,要分情况讨论。
更详细的如何用统计检验对比机器学习模型,请参考:微调:常用的机器学习算法比较?
<hr/>[1] Freedman, L.S. and Pee, D., 1989. Return to a note on screening regression equations. The American Statistician, 43(4), pp.279-282.
[2] 15 Insane Things That Correlate With Each Other
[3] Demšar, J., 2006. Statistical comparisons of classifiers over multiple data sets. Journal of Machine learning research, 7(Jan), pp.1-30.
回复 支持 反对

使用道具 举报

发表于 2025-2-16 21:00 | 显示全部楼层
感觉很多回答没击中要害。
原因简单,ml用了假设检验大多数paper就跪了啊。
假设检验应用的核心思想是我们得出的含有信息量的结论有多少是由随机造成的,可以类比overfitting。
举个简单的例子,大家最关心的prediction accuracy,几乎所有ml paper的结论是,我们的方法最好。然后多少paper调参调几个月终于调出state of the art,但注意,这里acc是在某个特殊的dataset,特殊的dataset splitting(比如10-fold CV),特殊的初始化(random seed),等等特殊的神秘条件下得出的。那么我要问,到底是什么原因导致你的performance比别人好呢?是你的方法本身,比如dl里某种网络结构?还是前面的那些“特殊”?如果是后者,这其实是很严重的overfit,或者说false positive。如何排除FP?比如你可以10-CV做一万次,初始化一万次,所有随机因素都一万次,得出acc的分布,其他方法也这么做,然后看是不是你的acc分布显著地比别人高,这就用到假设检验了,最简单的rank sum就行。实际我没见过ml paper有这么做的,我深刻怀疑,如果这么做,没几个“大新闻”了。这也部分解释了为啥很多工作重复性这么差,因为你没有用那个“特殊”呗。
当然我也理解,很多paper卖的是idea,看着好玩就行,至于真的效果,就看用的人给不给力了。但从科学的角度讲,你说你好,你得充分地证明吧,无论经验上还是理论上,否则逗读者呢?
当然假设检验也不一定真“有用”,比如首先假设检验本身也有model,假设检验用的不对,P value也不可信,比如上面的acc分布直接拿student t就不对了。其次,stats喜欢p,cs喜欢score rank,我觉得没谁更好更坏,殊途同归罢了。比如我要寻找某个signal,建了个Bayes model,费了半天劲算了posterior,然后最大才0.2,从假设检验的角度讲,这就跪了啊,signal太弱了,FDR一堆鬼啊。但实际上,如果rank posterior,top xxx确实会有有趣的signal,我个人会倾向选择rank,然后做后续分析加以验证,因为我找到了我想要的,因为all models are wrong,选个不那么烂的,对自己好一点吧。
回复 支持 反对

使用道具 举报

发表于 2025-2-16 21:01 | 显示全部楼层
感觉这个问题下的回答有点两极化了,一说是认为机器学习领域做不来假设检验,一说是认为机器学习研究过程本身就在做假设检验… 我个人认为,传统数理统计中的假设检验之所以没法或者很少被直接迁移到机器学习领域中,有一个很重要的原因就是现在的机器学习模型,比如各种 NN,的参数空间(space of parameters/weights)太大了。要做假设检验,首先要提出假设吧,然后再根据样本点的存在规律去接受或者拒绝该假设。但是在机器学习模型中,比如 CNN,不管模型的 macroarchitecture 还是 microarchitecture 做出改变,整个参数空间其实就已经变了,所谓的优化过程,不过是在假设该参数空间包含了客观真实的 function 的前提下去寻找最优解的过程。谁敢说自己的网络构架就是最接近理想的模型构架呢?如果对一个问题,或者对一堆 样本点,连一个公认可信的假设都提不出来,又要怎么做假设检验呢?
我认为研究假设检验的目的,在于对被测模型的可信度/不确定度进行一个定量描述,与此沾点边的,还有 confidence interval/prediction interval/uncertainty analysis,所以我打算从神经网络的不确定性分析角度抛砖引玉一下。
<hr/>机器学习(其实题主想问的应该就是神经网络吧)里研究假设检验或者说模型不确定性(uncertainty)的并不是没有,但是在热门的几个 CV 领域内(分类、识别、分割等)的文章的确很少涉及这一方面的内容,要解释这个原因应该先从目前神经网络不确定分析方法及各自的短板讲起。
长的可以看 Gal 的 Uncertainty in Deep Learning, 2016 这篇博士论文,短的可以看 Comprehensive Review of Neural Network-Based Prediction Intervals and New Advances 这篇期刊文章,我简要复述一下里面的主要思想。
神经网络不确定检验目前主要就四种方法:Delta(差异法?不知道这么翻译是否恰当)、Bayesian、MVE(mean-variance estimation,基于最大似然估计)和 Bootstrap。
Delta Method 假设存在一个理想化的回归模型,其对应的一组参数为 ,而我们优化的模型参数为 之间的差异就是模型不确定性的主要来源。当我们训练出的模型足够好时,也就是 足够接近时,真实值和模型预测值之间的差异可以用 的泰勒级数来表示,其系数就是 NN output 关于 中各个参数的一阶导数。既然要求的是不确定性,光知道模型的点估计(point estimation)是没用的,我们要的是真实值和模型预测值之间的差异的方差。很好理解,既然均值/点估计用的是一阶导数,那么方差肯定涉及的就是 Jacobian,所以问题就来了,对于大型的 NN,求 Jacobian 并不现实,所以 Delta Method 顶多只能用于分析少数几个变量的回归问题,例如天气预测、金融分析等,对于图像方面的应用,计算开销超出了目前硬件所能承受的范围。
Bayesian Method,其实就是已知 NN 模型参数和训练样本点之间的先验概率,去最大化关于模型参数 后验概率的问题。在最大化的过程中(或者最小化 negative log likelihood 的过程中)需要计算 Hessian matrix,所以限制 Bayesian Method 的瓶颈与 Delta Method 的类似,也是目前的硬件不足以应付复杂模型 Hessian 的计算。Bayesian Method 强就强在它有非常可靠的数学根据,同时可以提供比其他三种方法更好的泛化能力,目前神经网络不确定性研究很大一部分都是基于 Bayesian 理论,而且相当一部分研究者都在研究 NN 和 Gaussian process 之间的联系。
Beyond Backpropagation: Uncertainty Propagation
MVE Method 比较简单,也是现阶段可操作性比较强的 NN uncertainty 计算方法之一。它的目标是在 NN 输出的均值(点估计)的基础上去估计一个置信区间(prediction interval),如果模型预测值落在这个区间内则认为这个置信区间是有效的。显然,区间的大小(width)间接反映了模型估计的不确定程度,而所有有效的区间数占样本点总数的比例则反映了所估计的置信区间的可靠性。MVE Method 通常会在原始 NN 模型结构的基础上新建一个新的 NN 模型(例如只改变最后几层 FC 层),这个新的模型的 cost function 就是 ,其中 W 就是所有置信区间的平均 width,R 是有效置信区间所占比例, 是一个惩罚权重。MVE 最坏的情况也就是训练两个 NN,对于大部分应用应该都可以接受。Nix 有一篇 Learning Local Error Bars for Nonlinear Regression, 1995 里面提到了一种 3-phase 训练法,我用在 CNN 训练上,的确可以得到不错的不确定性分析结果。
Bootstrap 听名字就知道是四种方法里面最为简单粗暴的一种,它的思想与 Delta Method 类似,也认为模型的不确定性在于优化参数 与理想参数 间的差异,因此上来就直接训练 K 个 NN,由于初始化的不同和训练过程中的一些不可知因素,这 K 个 NN 通常会收敛于不同的 local optima,因此对于相同的观察点通常会得到略有差异的 K 个预测值,这些预测值之间的方差就直接代表了模型的不确定性。显然,K 越大 Bootstrap Method 就越可靠,所以可以理解为 Bootstrap 是一种有点类似 的方法,让你在 ImageNet 上训练100、1000、10000个 NN,显然不现实嘛。
所以题主的问题可以简单几句话概括一下,为什么目前的神经网络研究很少涉及不确定性分析?因为视觉任务相关的神经网络结构过于复杂,参数数量巨大,传统统计学中的分析方法在现有硬件水平的条件下无法承担不确定性分析所需的计算开销。此外,还有一点很重要的原因,可靠性分析要“可靠”,通常都需要知道统计量的先验分布,对于一维、二维数据,这个分布可以通过大量样本得出,但是对于 CNN 这种模型,谁也不知道参数到底满足一个怎样的分布,所以假设检验中的很多前提条件,对于大型 NN 来说都是过于 restrictive 了。
另外说一个有意思的内容,在分类任务中,最后 softmax 层计算了各个类别的归一化分数,有点类似各个类别的概率分布对不对?比如一张图像被分到 dog 类的 softmax 分数是0.9,另一张是0.5,看起来似乎第一张的不确定性要更低一些,也就是 NN 对第一张的预测似乎要更可靠一些?其实不对,softmax 的分数跟分类的不确定性/置信程度基本没有关系。
<hr/>@Jay Wang 提到机器学习不缺数据所以不需要假设检验,我是不太赞成的。工业领域哪怕算法性能再强,可靠性分析都是不可缺少的步骤。比如我比较熟悉的图像 AWB 方面,目前还没有哪家敢全用 ML,都得有一套传统方法作为 fallback,就是因为用户总能找到一些不在训练集中的样本来考验 NN 的泛化能力,所以这种时候有一个不确定性检验模块是无比重要的:某一张图像 NN 吃不准自己估计得到底对不对,那么直接 fallback 给传统算法呗。


  • Nix et al., Learning Local Error Bars for Nonlinear Regression, 1995
  • Dybowski et al., Confidence Intervals and Prediction Intervals for Feed-Forward Neural Networks, 2011
  • Khosravi et al., Comprehensive Review of Neural Network-Based Prediction Intervals and New Advances, 2011
  • Pearce et al., High-Quality Prediction Intervals for Deep Learning A Distribution-Free, Ensembled Approach, 2018
  • Gal, Uncertainty in Deep Learning, 2016
  • Why is softmax output not a good uncertainty measure for Deep Learning models?
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册 微信登录 手机动态码快速登录

本版积分规则

关闭

官方推荐 上一条 /3 下一条

快速回复 返回列表 客服中心 搜索 官方QQ群 洽谈合作
快速回复返回顶部 返回列表