math - 谁能告诉我为什么我们总是在机器学习中使用高斯分布?

标签 math machine-learning bayesian gaussian

例如,我们总是假设数据或信号误差是高斯分布?为什么?

最佳答案

你将从有数学头脑的人那里得到的答案是“因为中心极限定理”。这表达了这样的想法:当您从几乎任何分布*中取出一堆随机数并将它们加在一起时,您将得到近似正态分布的东西。加在一起的数字越多,其正态分布就越明显。

我可以在 Matlab/Octave 中演示这一点。如果我生成 1 到 10 之间的 1000 个随机数并绘制直方图,我会得到这样的结果

enter image description here

如果我不是生成单个随机数,而是生成 12 个随机数并将它们加在一起,执行此操作 1000 次并绘制直方图,我会得到如下结果:

enter image description here

我在顶部绘制了具有相同均值和方差的正态分布,因此您可以了解匹配的接近程度。您可以看到我用来生成这些图的代码 at this gist .

在典型的机器学习问题中,您会遇到来自许多不同来源的错误(例如测量错误、数据输入错误、分类错误、数据损坏...),并且认为以下情况并非完全不合理:所有这些错误的综合影响大约是正常的(当然,您应该始终检查!)

对该问题的更务实的回答包括:

  • 因为它使数学变得更简单。正态分布的概率密度函数是二次指数。取对数(就像你经常做的那样,因为你想最大化对数似然)得到一个二次方。对它进行微分(找到最大值)会得到一组线性方程,很容易通过分析求解。

  • 很简单 - 整个分布由两个数字描述:均值和方差。

  • 大多数将阅读您的代码/论文/报告的人都对此很熟悉。

这通常是一个很好的起点。如果您发现分布假设导致性能不佳,那么也许您可以尝试不同的分布。但您可能应该首先考虑其他方法来提高模型的性能。

*技术点 - 它需要具有有限方差。

关于math - 谁能告诉我为什么我们总是在机器学习中使用高斯分布?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12616406/

相关文章:

bayesian - PyMC3 PK 建模。模型无法解析用于创建数据集的参数

algorithm - 如何计算线性同余生成器的第k小数

math - 英特尔MKL与AMD Math Core库

python-3.x - 如何使随机森林分类器更快?

algorithm - 一元评级系统的贝叶斯平均等价物

machine-learning - 如何逐步训练朴素贝叶斯分类器?

javascript - 它添加了第二个 } 并且不会在级别上添加 1

algorithm - 给定三个接收器的位置和它们接收信号的时间(到达时间延迟),如何定位信号?

machine-learning - 朴素贝叶斯分类中的未知词

python - 值错误: Cannot create a tensor proto whose content is larger than 2GB