Python社区  »  机器学习算法

独家 | 一文读懂统计学与机器学习的本质区别(附案例)

数据派THU • 1 周前 • 27 次点击  

翻译:李海明

校对:丁亚楠

本文4000字,建议阅读10+分钟

本文为你讲解了统计学与机器学习的本质区别。


两者之间并不一样。如果机器学习仅仅是统计学基础上的锦上添花,那么其结构只能像沙堡一样脆弱。


老实说,我已经厌倦了在社交媒体和我的大学里听到这种争论,而且两方通常都会用一些模糊的描述来解释这个问题。其实大家都对这样做感到内疚。希望在本文的最后,你可以对这些模糊的术语有一个更为全面的了解。



论点


与人们的普遍认识相反,机器学习实际上已经有数十年的历史了。受模型计算需求和早期算力限制的影响,这一领域之前并未兴起。然而,得力于近年来信息爆炸所带来的海量数据优势,机器学习正方兴未艾。


想想看,如果机器学习和统计学彼此相同的话,那么大学里的统计专业为什么没有关闭或是改名叫“机器学习”呢?因为他们确实不一样!


我们常常听到与这一问题有关的一些模糊陈述:


“机器学习与统计学之间的区别在于其目的不同。机器学习旨在进行精确预测。而统计学模型则用于推断变量之间的关系。”


从技术角度看,这一陈述是正确的,然而却并非令人满意且明确的答案。可以肯定的是,目的确实是机器学习与统计学之间的主要区别,但关于机器学习的精确预测与统计学的关系推断这一论断则没有什么意义,除非你精通这些概念。


首先,我们需要区分统计学与统计模型。统计学是关于数据的数学研究。没有数据,统计学则无用武之地。统计模型则是一种数据模型,可用于推断数据中的关系或创建具有预测功能的模型。通常情况下,两者相辅相成。


所以,我们需要讨论两个问题:首先,统计学与机器学习之间的区别;其次,统计建模与机器学习之间区别。更明确地说,可用统计模型进行预测,然而预测精度并非它的专长。


同样,机器学习模型提供了不同程度的可解释性,从具有高度可解释性的lasso回归到我们一无所知的神经网络,通常它们会牺牲可解释性以获得预测能力。


从某种意义上讲,对大多数人来说这已经是一个很好的答案了。然而,在某些情况下,这种解释会令人们对机器学习和统计学之间的区别存在误解。先来看一个线性回归的例子。


统计模型 vs 机器学习 ——线性回归



在我看来,统计建模与机器学习所用方法非常相似,因此人们认为两者是一致的。这一观点可以理解,但并不正确。


最明显的同样也是最易造成误解的例子就是线性回归了。线性回归是一种统计学方法,我们可以训练一个基于平方误差最小的线性回归器,并输出与统计线性回归模型相同的结果。


可以看到,一方面我们对模型进行“训练”,这需要一个数据子集。另外,直到我们用非训练数据对模型测试前,我们并不知道这个模型的性能。在这种情况下,机器学习的目的在于获得基于测试数据集的模型最佳性能。


对于统计模型,我们假设数据是一个基于高斯分布且有随机噪声的线性回归函数,并且要在其中找到一条均方误差最小的线,但不需要训练和测试数据集。在许多情况下特别是研究中(比如下面将提到的传感器研究),统计模型的重点在于刻画数据与结果变量之间的关系,而不是对未来的数据进行预测。该过程被称为统计推断过程,而非预测过程。不过,我们仍然可以使用这一模型来进行预测,而且这可能是你的主要目的。对该模型的评估并不涉及测试数据集,而是对模型参数进行重要性和鲁棒性评估。


有监督的机器学习的目的是构建一个可重复预测的模型。实际上我们只关心这个模型能不能用,而不是去解释它的机制。因此我个人建议必须对模型进行测试,从而确定预测结果的可行性。机器学习是以结果为导向的,更像是只以成败论英雄。统计模型虽然也适合预测,但更关注于发现变量间的关系以及这一关系的重要性。


举例来说,作为一名环境科学家,我主要研究传感器数据。我试图证明某个传感器能够对某种特定的刺激进行响应(比如气体浓度),然后我会使用统计模型来确定信号的响应是否具有统计显著性。我会试图去弄清楚刺激和响应之间的关系并对其可重复性进行验证,也因此我可以准确地表征传感器响应并根据响应数据做出推断。比如我所测试的响应是否是线性的,是否是由气体浓度而非随机噪声导致的响应,等等。


另一方面,我可以用一个有20个不同传感器的阵列来预测新传感器的响应情况。对于不太了解传感器的人可能听上去有点奇怪,不过这目前属于环境科学的一个关键领域。使用20个不同的变量和一个模型则可以预测新传感器的输出情况,而且我不需要进行特别的解释性工作。由于化学动力学和物理变量与气体浓度之间的非线性关系,这一模型更像是一张神经网。我特别希望这一模型能够具有实际意义,而且我会非常乐意其具有精准预测的功能。


如果我试图证明数据变量间的关系具有统计学意义,我会使用统计模型。这是因为我更关注变量间关系,而非预测。虽然预测很重要,但由于机器学习算法缺少解释性,因此很难证明数据间的关系(实际上这也正是当前学术界的一个关键问题,即使用一个人们并不真正理解的算法,而且得到一个似是而非的推论。)



可以清楚地看到,两种方法殊途同归。机器学习算法的评价准确性可通过测试数据集来验证。对于统计模型来说,基于置信区间的回归参数分析,重要性测试以及其他测试可以用于评价该模型的有效性。由于使用这些方法所得到的结果是一致的,因此他们认为他们完全相同也是可以理解的。


统计学 VS 机器学习——线性回归案例


个人认为这一误解可以很好地包含在这看似诙谐的比较统计数据和机器学习的10年挑战当中。



然而,仅仅因为运用了同样的概率理论就把它们合二为一是没有道理的。比如,如果我们认为机器学习是基于优化的统计,那么我们也可以这样说:


  • 物理只是优美化了的数学

  • 动物学只是美化了的集邮

  • 建筑学只是美化了的沙堡结构


以上这些陈述(尤其是最后一个)都很荒谬,而且都来自于将有相似概念的术语合并这一概念(建筑学举例中使用了双关语)。实际上,物理建立在数学基础之上,是数学的一种应用,从而理解现实中存在的物理现象。物理也包括了统计学的各个方面,且现代统计学形式的框架结构主要来自含有以Zermelo-Frankel集合理论和测度理论组合而成的概率空间。由于来自同一起源和同一思想,它们有很多共同之处,并且从逻辑角度看还可以得到相同的结论。同样,建筑学和沙堡结构很可能也是如此——由于我不是建筑学家,所以无法给出有见地的解释——但显然他们是不同的。


为了了解这一争论的影响范围,《Nature Methods》杂志上发表了一篇论文,概述了统计学和机器学习的不同。这个想法看起来可笑,但是却证明了在这一层次探讨的必要性。


Points of Significance: Statistics versus machine learning

Statistics draws population inferences from a sample, and machine learning finds generalizable predictive patterns. Two…

www.nature.com


在继续之前,我想快速澄清一下另外常见的机器学习与统计学之间的误解,即:AI并不等同于机器学习,数据科学并不等同于统计学。这些都是没有什么争议的问题,所以只简要说明一下。


数据科学本质上是一种应用于数据的计算和统计方法,既可以是小数据集,也可以是大数据集。这还包括探索性数据分析,即检查并可视化数据,从而有助于科学家更好的理解数据并进行推断。数据科学还包括数据整理和数据预测,由于涉及编码、建立数据库和网络服务器之间的连接,因此数据科学在某种程度上还涉及计算机科学。


你并不需要用一台电脑就可以研究统计学,但是当你研究数据科学时则必须要有一台电脑。因此,显然数据科学与统计学并不相同。


同理,机器学习并不等同于人工智能。事实上,机器学习是AI的子集,当我们教授(“训练“)一台机器时,可以根据以前的数据对某些类型的数据进行概括性推断。


机器学习建立在统计学基础上


在讨论统计学和机器学习的区别之前,我们先来讨论一下相同之处。在前几节中也有涉及到这方面的内容。


显然,机器学习建立在统计学的框架之上。这是因为机器学习涉及数据,而数据则必须使用统计学框架进行描述。然而,被扩展为大量粒子热力学的统计力学同样也建立在统计学框架之上。压强的概念实际上也是一个统计量,温度也是如此。如果你觉得很可笑,没关系,但事实如此。这就是为什么你不能描述一个分子的温度或压力。温度实际上是分子间碰撞产生平均能量的表现。对于足够多的分子,比如房子或户外环境来说,描述其温度才具有实际意义。


你会承认热力学和统计学是一样的吗?不会的,实际上热力学是用统计学来帮助我们理解功和热相互作用产生的输运现象。


事实上,除统计学外,热力学的建立还以很多其他学科为基础。同理,机器学习(ML)的建立也要以数学和计算机科学等领域为基础,比如:


  • ML理论源于数学和统计学

  • ML算法源于优化、接矩阵代数、微积分

  • ML的实现要依靠计算机科学和工程概念(如内核技巧、特性哈希)


当我们用Python编程,引入sklearn库并开始使用算法时,很多概念都被抽象了,所以很难看到它们的区别。因此,这种抽象导致了对机器学习内涵的不了解。


统计学习理论——机器学习的统计学基础


统计学与机器学习的主要区别在于统计学完全基于概率空间。你可以从集合理论中得到完整的统计学内容。集合理论主要探讨如何对数组进行分类,也就是集合的概念。

在该集合上进行测量,并确保测量值的总和为1,我们称其为一个概率空间。


统计学只建立在集合和测度这两个基本假设之上。这就是为什么当我们用非常严格的数学定义指定了一个概率空间时,实际上我们指定了三件事:


  • 一个概率空间,可表示为(Ω, F, P),其由三部分组成

  • 样本空间Ω,所有可能的结果;

  • 事件集合F,每个事件都是一组包含零或更多结果的集合;

  • 事件的概率分配P,即从事件到概率的函数。


机器学习基于统计学习理论,而统计学习理论也建立在概率空间这一公理上。统计学习理论兴起于1960年,是对传统统计学的扩展。


机器学习也有集中分类,这里我只关注监督学习,因为它最容易解释清楚(尽管它隐藏在数学中,仍然有些深奥)


由监督学习的统计学习理论可知,现有一个数据集合,表示为S = {(xᵢ, yᵢ)}。可认为有n个数据点,每个数据点都可以用被称为特征的值进行描述。这些特征由x提供,且通过某映射函数可得到y值。


也就是说数据是已知的,我们的目标在于找到那个可以映射x和y值的函数。我们称所有可能的函数集合为假设空间。


为了找到这个函数,我们需要让算法通过“学习”去解决该问题,可由损失函数提供。所以,对于每个假设(建议函数),我们需要查看其对所有数据期望风险值来评估这一函数的性能。


期望风险本质上是损失函数的总和乘以数据的概率分布,如果我们知道映射函数的联合概率分布,则会非常轻松地找到最佳函数。然而,这个分布通常是不知道的。因此,最佳的方法是猜测最佳函数,然后根据经验判断损失函数的优劣。我们将其称之为经验风险。


接下来我们可以对比不同的函数,并寻找能带来最小期望风险的假设,即这一假设可以给出全部数据假设的最小值(下确界)。


然而,算法为了使损失函数最小,会有使数据过拟合的趋势。这就是为什么通过训练数据学习后,函数可通过测试数据得到验证,但测试数据并不包括训练数据的内容。


上述机器学习定义中我们引入了过拟合问题,并证明了在进行机器学习时需要使用训练集和测试集。而该方法并未遵循统计学固有的特征,因为我们没有试图令经验风险最小化。


选择经验风险最小化的学习算法可称为经验风险最小化过程。


举例


以线性回归为例。传统意义上我们会尝试最小化数据误差,从而找到一个可用于描述数据的函数。在这种情况下,我们通常使用均方误差。我们对其进行平方,这样正负误差便不会相互抵消。接下来我们可以用封闭的方法求解回归系数。


正因为如此,如果我们取损失函数为均方误差,并按统计学习理论进行经验风险的最小化过程,最终得到的结果会与传统线性回归分析相同。


这是因为两种情况是等价的,同理,如果用同样的方法对相同的数据进行最大似然估计,那么结果也是一样的。最大似然估计是一种实现同一目标的不同方法,然而没有人会争辩并且认为其与线性回归是一样的。当然,进行最简单的案例应用显然无助于区分这些方法。


另外需要指出的关键是,传统的统计学方法中没有训练集和测试集的概念,但可以使用一系列指标来帮助我们检查模型的执行情况。所以,虽然评估的程序不同,但使用两种方法都可以得到统计上鲁棒的结果。


还有一点,考虑到经典统计学中的解空间是封闭的,则可求得最优解。它没有检验任何其他假设,并收敛于一个解。然而,机器学习方法则尝试了大量不同的模型并收敛至最终的假设,这与回归算法的结果是一致的。


如果我们使用不同的损失函数,结果可能是不收敛的。比如,当我们使用铰链损失函数(使用标准梯度下降法是不可微的,所以需要使用像近端梯度下降法这样的技术)时,结果很可能会不同。


最后,可以通过模型偏置进行对比。可令机器学习算法测试线性模型,多项式模型,指数模型等等,来看这些假设是否更适合已给定先验损失函数的数据。这类似于增加相关的假设空间。在经典统计学中,我们会选择一个模型并评估其精度,但不能令其自动选择100个不同模型中的最优模型进行计算。显然,受初始算法选择的影响,偏差一定存在。因此,找到数据集中求得最优解的任意函数本身是一个NP-hard问题。


哪种方法更好?


其实这是个很蠢的问题。从关系角度看,没有统计学,机器学习是不存在的。然而,在当前人类所经历的这个信息爆炸的时代中,面对海量数据的涌入,机器学习倒是颇为有用。


比较机器学习和统计模型确实有些困难。这主要取决于你的目的是什么。如果你想构建一种可以精确预测房价的算法,或是使用数据确定某人是否可能感染某种疾病的话,机器学习可能是更好的选择。如果你想证明变量间的关系或用数据进行推断,那么统计模型则会成为更好的选择。



如果你没有较好的统计学基础的话,也不影响你研究或使用机器学习,这是因为机器学习库已经将专业内容进行了提炼,使用起来简单易懂。不过你还是需要多多少少知道一些统计学的基础知识,以防止模型的过拟合或得到某种似是而非的推论。


在哪里能够深入学习?


如果你有兴趣深入研究统计学习理论,这里有很多统计相关的大学课程和书籍,以下是我推荐的一些课程:


9.520/6.860, Fall 2018

The course covers foundations and recent advances of machine learning from the point of view of statistical learning…

www.mit.edu


如果你对更深入地研究概率空间感兴趣,那么我要给你一个忠告,它在数学上很重要,而且通常只在研究生统计学课程中涉及。这里有一些关于这个话题不错的资料:


http://users.jyu.fi/~miparvia/Opetus/Stokastiikka/introduction-probability.pdf

https://people.smp.uq.edu.au/DirkKroese/asitp.pdf


感谢阅读!


原文标题:
The Actual Difference Between Statistics and Machine Learning

原文链接:

https://towardsdatascience.com/the-actual-difference-between-statistics-and-machine-learning-64b49f07ea3



编辑:王菁

校对:洪舒越

译者简介


李海明  中国科学院大学在读研究生,铁人三项业余运动员,热爱音乐、艺术、生活。喜欢结交各路神仙~一起坐驰神游,一起南辕北辙。

翻译组招募信息

工作内容:需要一颗细致的心,将选取好的外文文章翻译成流畅的中文。如果你是数据科学/统计学/计算机类的留学生,或在海外从事相关工作,或对自己外语水平有信心的朋友欢迎加入翻译小组。

你能得到:定期的翻译培训提高志愿者的翻译水平,提高对于数据科学前沿的认知,海外的朋友可以和国内技术应用发展保持联系,THU数据派产学研的背景为志愿者带来好的发展机遇。

其他福利:来自于名企的数据科学工作者,北大清华以及海外等名校学生他们都将成为你在翻译小组的伙伴。


点击文末“阅读原文”加入数据派团队~

转载须知

如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:datapi),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。

发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。


点击“阅读原文”拥抱组织

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/32890
 
27 次点击  
分享到微博