概率论是机器学习和深度学习的基础知识。许多形式分析都以概率的形式进行讨论。而这些讨论或多或少都离不开最大似然估计,因为它是参数估计的基础之一,是建立模型的基石。在这篇文章中,我们详细讨论了机器学习中概率论的基石,从最大似然估计到贝叶斯推理,希望能为读者的预习和复习提供极好的参考资源。什么是参数?在机器学习中,我们经常使用一个模型来描述生成观察数据的过程。例如,我们可以使用随机森林模型对客户是否会取消服务进行分类(称为流失建模),或者我们可以使用线性模型根据广告支出预测公司的收入(这是线性回归的一个例子))。每个模型都包含自己的一组参数,这些参数最终定义了模型本身。我们可以将线性模型写成y=mx+c的形式。在广告的预测收入示例中,x可以代表广告支出,y代表产生的收入。m和c是该模型的参数。这些参数的不同取值会在坐标平面上给出不同的直线(见下图)。三个具有不同参数值的线性模型参数由此定义了模型的蓝图。仅当参数被选择为特定值时,才会给出描述给定现象的模型实例。最大似然估计的直观解释最大似然估计是一种确定模型参数值的方法。确定参数值的过程是找到使模型产生真实观测数据的可能性最大化的参数集。上面的定义听起来可能还是有点模糊,那么让我们通过一个例子来帮助理解。假设我们从一个过程中观察到10个数据点。例如,每个数据点可以表示学生回答特定考试问题所用的时间长度(以秒为单位)。这10个数据点如下图所示:我们观察到的10个(假设的)数据点我们首先决定哪个模型最能描述生成数据的过程,这一点至关重要。至少,我们应该对使用哪种模型有一个体面的想法。这种判断通常来自该领域的一些专家,但我们不会在这里讨论这个问题。对于这些数据,我们假设数据生成过程可以用高斯分布(正态分布)充分描述。目测以上数值,高斯分布是合理的,因为10个点大部分集中在中间,左右两边的点很少。(由于我们只使用了10个数据点,所以做出如此仓促的决定是不明智的,但考虑到我生成的这些数据点具有一定的分布函数,让我们凑合一下吧)。回想一下,高斯分布有两个参数:均值μ和标准差σ。这些参数的不同值会对应不同的曲线(就像上面的直线)。我们想知道“哪条曲线最有可能产生我们观察到的数据点”?(见下图)。使用最大似然估计,我们找到最适合数据的μ、σ的值。10个数据点和可以从中得出这些数据的高斯分布。f_1是均值为10,方差为2.25(方差等于标准差的平方)的正态分布,也可以表示为f_1~N(10,2.25)。其他曲线为f_2~N(10,9)、f_3~N(10,0.25)、f_4~N(8,2.25)。最大似然的目标是找到最有可能产生已知观测数据分布的参数值。我生成的10个数据的真实分布是f_1~N(10,2.25),也就是上图中的蓝色曲线。计算最大似然估计现在我们对最大似然估计有了直观的了解,我们可以继续学习如何计算参数值。我们找到的参数值称为最大似然估计(MLE)。我们还将通过示例演示此过程。假设这次有三个数据点,我们假设它们是从高斯分布很好描述的过程中生成的。点数分别为9、9.5、11。那么如何用最大似然估计来逼近这个高斯分布的参数μ和σ呢?我们要计算的是同时观察到所有这些数据的概率,即所有观察到的数据点的联合概率分布。因此,我们需要计算一些可能难以计算的条件概率。我们将在这里做出第一个假设,假设每个数据点都是独立于其他数据点生成的。这个假设使计算更容易。如果事件(即生成数据的过程)是独立的,则观察所有数据的总概率是单独观察每个数据点的概率的乘积(即边际概率的乘积)。由高斯分布产生的单个数据点x的(边际)概率为:表达式P(x;μ,σ)中的分号是为了强调分号后面的符号是概率分布的参数。所以永远不要将它与条件概率混淆。条件概率一般用竖线表示,如P(A|B)。在我们的例子中,同时观察这三个数据点的总(联合)概率是:我们只需要找到使上述表达式最大化的μ和σ的值。如果你在数学课上学过微积分,那么你可能知道一个技巧可以帮助我们找到函数的最大值(和最小值)。我们所要做的就是找到函数的导数,将导数设置为零,然后重新变换方程,使参数为方程的未知数。就这样,我们将获得参数的MLE值。我将逐步介绍这些步骤,但我假设读者知道如何区分常见功能。对数似然函数上面的全概率表达式其实很难区分,所以几乎都是通过对表达式取自然对数来简化的。这很好,因为自然对数是单调递增的函数。这意味着如果x轴上的值增加,y轴上的值也会增加(见下图)。这很重要,因为它确保概率的最大对数值出现在与原始概率函数相同的点。因此,我们可以用更简单的对数概率代替原来的概率。原函数的单调性,左边是y=x,右边是(自然)对数函数y=ln(x)。这是一个非单调函数的例子,因为f(x)从左到右增加,然后减少,然后再次增加。对初始表达式取对数可以得到:我们可以用对数算法再次简化这个表达式,得到:这个表达式可以求得最大值。在这个例子中,我们想要找到平均值μ。为此,我们对函数求μ的偏导数,得到:最后令方程左边为零,再以μ为未知数组织公式,可得:这样,我们得到μ的最大似然估计。我们可以用同样的方法得到σ的最大似然估计,留给有兴趣的读者作为练习。最大似然估计总结1.最大似然估计是否总能给出精确解?简而言之,不。更有可能的是,在现实场景中,对数似然函数的导数在分析上仍然难以处理(即,很难甚至不可能手动微分函数)。因此,期望最大化(EM)算法等迭代方法通常用于寻找参数估计的数值解,但总体思路保持不变。2、为什么叫“最大似然(MaximumLikelihood)”而不是“最大概率”?好吧,这只是统计学家的迂腐(但有充分的理由)。大多数人倾向于互换使用术语“概率”和“可能性”,但统计学家和概率理论家对这两个概念进行了区分。通过查看这个等式,我们可以更好地弄清造成这种混淆的原因。这两个表达式是等同的!那么这是什么意思?我们先定义P(data;μ,σ),意思是“给定模型参数μ,σ观察数据data的概率”。值得注意的是,我们可以将其推广到任意数量的参数和任意分布。另一方面,L(μ,σ;data)表示“在我们观察一组数据数据后,参数μ和σ取特定值的可能性”。上式的意思是,参数给定后,数据的概率等于参数给定数据的似然。但即使这两个值相等,似然和概率从根本上提出了两个不同的问题——一个关于数据,一个关于参数值。这就是为什么该方法被称为最大似然(maximumlikelihood),而不是最大概率。3.最小二乘参数估计和最大似然估计什么时候相同?最小二乘法是另一种常用的机器学习模型参数估计方法。事实证明,当模型假设为如上例所示的高斯分布时,MLE估计等同于最小二乘法。直观上,我们可以通过理解这两种方法的目的来解释这两种方法之间的联系。对于最小二乘参数估计,我们希望找到使数据点与回归线之间的距离平方和最小的直线(见下图)。在最大似然估计中,我们希望最大化数据同时出现的总概率。当所讨论的分布假定为高斯分布时,当数据点接近均值时会找到最大概率。由于高斯分布是对称的,这相当于最小化数据点与均值之间的距离。关于具有随机高斯噪声的回归线部分讨论了机器学习和统计模型中参数估计的最大似然法。下面我们讨论贝叶斯推理的参数估计,并解释该方法如何推广到最大似然以及两者等价的条件。阅读本文需要了解一些基本的概率论,例如边际概率和条件概率。此外,了解高斯分布是有帮助的,但不是必需的。贝叶斯定理在介绍贝叶斯推理之前,有必要了解一下贝叶斯定理。贝叶斯定理的意义在于使我们能够利用现有的知识或信念(通常称为先验)来帮助计算相关事件的概率。例如,如果你想知道在炎热和晴朗的天气出售冰淇淋的概率,贝叶斯定理可以使用其他类型天气下可能出售的冰淇淋数量的先验知识。1.数学定义贝叶斯定理的数学定义如下:其中A、B为事件,P(A|B)为事件B发生时事件A发生的条件概率,P(B|A)为事件A发生的条件概率。相同的。P(A)和P(B)分别是事件A和事件B的边际概率。2.该示例假设一副牌有52张牌,其中26张是红色的,26张是黑色的。那么当牌为红色时,牌上出现数字4的概率是多少?假设事件A是数字4的牌,事件B是红色的牌。因此,我们需要计算的概率是P(A|B)=P(4|red)。接下来,我们使用贝叶斯定理来计算这个概率值:P(B|A)=P(red|4)=1/2P(A)=P(4)=4/52=1/13P(B)=P(red)=1/2那么根据贝叶斯定理:P(4|red)=P(red|4)·P(4)/P(red)=1/13。3.为什么贝叶斯定理可以结合先验信念?仅通过查看数学公式很难理解这一点。我们将再次借用冰淇淋和天气的例子。假设A是卖冰淇淋的事件,B是天气事件。我们的问题是“给定天气类型,卖冰激凌的概率是多少?”用数学符号表示为P(A=冰淇淋销售|B=天气类型)。贝叶斯定理右边的P(A)称为先验概率。在我们的例子中,P(A=icecreamsale)是销售冰淇淋的边际概率(天气是任何类型)。一般来说,这个概率是已知的,所以称为先验概率。例如,我查看数据得知100人中有30人购买了冰淇淋,因此P(A=冰淇淋销售)=30/100=0.3,这是在不知道任何有关天气的信息之前。注意:先验知识本身并不完全客观,它可能有主观成分,甚至是完全的猜测。而这也会对最终的条件概率计算产生影响,这个我会在后面说明。贝叶斯推理1.定义首先,(统计)推理是从数据中推导出人口分布或概率分布的性质的过程。最大似然法也是如此,例如可以从一系列观察到的数据点确定的均值的最大似然估计。因此,贝叶斯推理只不过是使用贝叶斯定理从数据中推导出人口分布或概率分布的性质的过程。2.使用贝叶斯定理处理数据分布。上面的例子使用了离散概率。有时可能需要使用连续概率分布。也就是说,卖冰激凌的概率可能不只是0.3,也可能是0.25或0.4等任何可能的值,每个概率对应一个先验信念,因此是一个函数f(x),如下图所示下图。这种分布称为先验分布。上图中的两条分布曲线都可以用作上述示例的先验分布,其中均在x=0.3处达到峰值。在x≠0.3时,f≠0,这意味着我们不能完全确定0.3是销售冰淇淋的真实概率。蓝线表示先验概率的值更有可能在0-0.5之间,而黄线表示先验概率可能有0-1之间的任意值。相对而言,黄线代表的先验分布比蓝线“更不确定”。在处理模型时,大多需要用到概率分布的形式。贝叶斯定理的模型形式模型形式的贝叶斯定理将使用不同的数学符号。我们将用Θ替换事件A。Θ是我们感兴趣的事件,代表参数集。因此,如果要估计高斯分布的参数值,那么Θ表示均值μ和标准差σ,用数学形式表示为Θ={μ,σ}。我们将事件B替换为数据或y={y1,y2,…,yn},它表示观察到的数据集。其中P(Θ)是先验分布,代表我们认为的参数值分布,类似于上述示例中销售冰淇淋的概率分布。等式左边的P(Θ|data)称为后验分布,表示利用观测数据计算等式右边后参数值的分布。而P(data|Θ)类似于似然分布。因此我们可以使用P(data|Θ)更新先验信念来计算参数的后验分布。等等,为什么P(data)被忽略了?因为我们只对参数的分布感兴趣,而P(data)对此没有任何参考价值。而P(data)真正重要的是它是一个归一化常数,它保证了计算后验分布之和等于1。在某些情况下,我们不关心归一化,所以贝叶斯定理可以是写成这样的形式:其中∝表示一个表达式,其符号的左侧与符号的右侧成正比。贝叶斯推理示例现在让我们展示一个贝叶斯推理示例。此示例计算氢键长度。你不需要知道什么是氢键,我只是举个例子。我使用上图是因为它有助于拆分密集的文本,并且与我们将要展示的示例有某种关联。别着急,贝叶斯推理不看上图也能理解。假设氢键为3.2?—4.0?。此信息将构成我的先验知识。就概率分布而言,我将其形式化为均值μ=3.6?和标准差σ=0.2?的高斯分布(见下图)。氢键长度的先验分布我们现在选择一些数据(从平均3?和标准差0.4?的高斯分布中随机生成的5个数据点),代表测量的氢键长度(图3中的黄色点)。我们可以从这些数据点推导出似然分布,下图中用黄线表示。请注意,这5个数据点的最大似然估计小于3?(约2.8?)。氢键长度的先验分布(蓝线)和来自5个数据点的似然分布(黄线)。现在我们有两个高斯分布。由于忽略了归一化常数,因此已经可以计算非归一化后验分布。高斯分布的一般定义如下:我们需要将上面的两个分布相乘,得到下图中粉色线所示的后验分布。蓝色分布和黄色分布的乘积产生粉红色后验分布。现在我们有了氢键长度的后验分布,从中可以推断出统计特性。例如,我们可以使用分布的预期值来估计密钥长度,或计算方差以量化结果的不确定性。后验分布最常见的统计计算是众数,它用于估计感兴趣参数的真实值。在此示例中,后验分布是高斯分布,因此均值等于众数(和中值),氢键长度的MAP估计值位于分布的峰值处,约为3.2?。结论1.为什么我经常使用高斯分布?您会注意到,在我所有涉及分布的示例中,我都使用高斯分布。原因之一是它使数学更容易。但是对于贝叶斯推理实例,它需要计算2个分布的乘积。另外,因为高斯分布有一个特殊的性质,可以很容易地计算分布的乘积。对于高斯似然函数,高斯分布与其自身共轭,因此如果我将高斯似然函数与高斯先验分布相乘,我将得到高斯后验函数。事实上,后验和先验都来自同一个分布族(均为高斯分布),这意味着它们可以称为共轭分布。在这种情况下,先验分布称为共轭先验。在许多推理情况下,选择可能性和先验使得所得分布是共轭的,因为它使数学更容易。数据科学中的一个例子是LatentDirichletAllocation(LDA),它是一种无监督学习算法,可以在多个文本文档(语料库)中发现主题。2.当我们获取新数据时会发生什么?贝叶斯推理的最大优势之一是它不需要大量数据即可使用。事实上,贝叶斯框架允许您在拥有数据时实时迭代更新您的信念。它是这样工作的:你对什么有先验信念(比如参数值),然后你会收到一些数据。您可以像我们上面所做的那样,通过计算后验分布来更新您的信念。然后,更多的数据进来了。因此我们的后验变成了新的先验。我们可以通过从新数据中获得的可能性来更新新的先验,并再次获得新的后验。这个循环可以无限期地继续下去,所以你可以不断更新你的信念。卡尔曼滤波器(及其变体)就是一个很好的例子。它在许多情况下都有使用,也许最著名的是数据科学,因为它适用于自动驾驶汽车。在攻读数学蛋白质晶体学博士学位期间,我使用了一种称为无迹卡尔曼滤波器的变体,并为实现它们的开源软件包做出了贡献。3.使用先验作为正则化我们在上面的氢键长度示例中生成的数据表明2.8?是最佳估计值。但是,如果我们的估计仅基于数据,则存在过度拟合的风险。如果数据收集过程出错,这是一个严重的问题。我们可以在贝叶斯框架中使用先验来解决这个问题。在我们的例子中,使用以3.6?为中心的高斯先验会产生后验分布,该分布给出氢键长度的MAP估计值为3.2?。这表明我们的先验在估计参数值时可以充当正则化器。先验和似然的权重取决于两个分布之间的相对不确定性。我们可以在下图中看到这一点。颜色同上,蓝色代表先验分布,黄色代表似然分布,粉色代表后验分布。在左图中,我们看到蓝线不像黄线那样拉伸。因此,后验概率比似然概率更类似于先验概率。右图中的情况正好相反。所以如果我们愿意增加参数的正则化,我们可以选择收缩与似然相关的先验分布。4.MAP估计什么时候等于最大似然估计?当先验分布均匀时,MAP估计等于MLE。下图是一个均匀分布的例子。均匀分布我们可以看到,均匀分布对x轴(水平线)上的每个值赋予相同的权重。直观地,它表征了对最可能值缺乏任何先验知识。在这种情况下,所有权重都分配给似然函数,因此当我们将先验乘以似然时,得到的后验与似然非常相似。因此,最大似然法可以看作是一种特殊的MAP。【本文为栏目组织《机器之心》微信公众号《机器之心(id:almosthuman2014)》原文翻译】点击此处查看作者更多好文
