欢迎大家扫码关注微信公众号「图灵的猫」,除了有更多AI、算法、Python相关文章分享,还有免费的SSR节点和外网学习资料。其他平台(微信/知乎/B站)也是同名「图灵的猫」,不要迷路哦~

在机器学习中,我们经常使用一个模型来描述生成观察数据的过程。例如,我们可以使用一个随机森林模型来分类客户是否会取消订阅服务(称为流失建模),或者我们可以用线性模型根据公司的广告支出来预测公司的收入(这是一个线性回归的例子)。每个模型都包含自己的一组参数,这些参数最终定义了模型本身。

我们可以把线性模型写成 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),也就是上图中的蓝色曲线。

计算最大似然估计

现在我们对最大似然估计有了直观的理解,我们可以继续学习如何计算参数值了。我们找到的参数值被称为最大似然估计(maximum likelihood estimates,MLE)。

我们同样将用一个例子来演示这个过程。假设这次有三个数据点,我们假设它们是从一个被高斯分布充分描述的过程生成的。这些点是 9、9.5 和 11。那么如何用最大似然估计逼近这个高斯分布的参数 μ 和 σ 呢?

我们要计算的是同时观察到所有这些数据的概率,也就是所有观测数据点的联合概率分布。因此,我们需要计算一些可能很难算出来的条件概率。我们将在这里做出第一个假设,假设每个数据点都是独立于其他数据点生成的。这个假设能让计算更容易些。如果事件(即生成数据的过程)是独立的,那么观察所有数据的总概率就是单独观察到每个数据点的概率的乘积(即边缘概率的乘积)。

从高斯分布中生成的单个数据点 x 的(边缘)概率是:

在表达式 P(x; μ, σ) 中的分号是为了强调在分号后的符号都是概率分布的参数。所以千万不要把这个与条件概率相混淆。条件概率一般会用竖线来表达,比如说 P(A| B)。

在我们的例子中,同时观察到这三个数据点的总(联合)概率是:

我们只要找出能够让上述表达式最大化的μ、σ值就可以了。

如果你在数学课上学过微积分,那么你可能会意识到有一种技巧可以帮助我们找到函数的最大值(和最小值)。我们所要做的就是求出函数的导数,把导函数设为零然后重新变换方程,使其参数成为方程的未知数。然后就这样,我们将得到参数的 MLE 值。我将串讲一下这些步骤,但我假设读者知道如何对常用函数进行微分。

对数似然函数

上述的总概率表达式实际上是很难微分,所以它几乎总是通过对表达式取自然对数进行简化。这完全没问题,因为自然对数是一个单调递增的函数。这意味着,如果 x 轴上的值增加,y 轴上的值也会增加(见下图)。这一点很重要,因为它确保了概率的最大对数值出现在与原始概率函数相同的点上。因此,我们可以用更简单的对数概率来代替原来的概率。

原函数的单调性,左边是 y = x,右边是(自然)对数函数 y = ln(x)。

这是一个非单调函数的例子,因为从左至右 f(x) 会上升,然后下降,然后又上升。

取初始表达式的对数能得到:

我们可以用对数的运算法则再一次简化这个表达式,得到:

这个表达式可以通过求导得到最大值。在这个例子中,我们要找到平均值 μ。为此我们对函数求 μ 的偏导数,得到:

最后,设置等式的左边为零,然后以μ为未知数整理式子,可以得到:

这样我们就得到了 μ 的最大似然估计。我们可以用同样的方法得到 σ 的最大似然估计,这留给有兴趣的读者自己练习。

最大似然估计小结

最大似然估计总是能精确地得到解吗?

简单来说,不能。更有可能的是,在真实的场景中,对数似然函数的导数仍然是难以解析的(也就是说,很难甚至不可能人工对函数求微分)。因此,一般采用期望最大化(EM)算法等迭代方法为参数估计找到数值解,但总体思路还是一样的。

为什么叫「最大似然(最大可能性)」,而不是「最大概率」呢?

好吧,这只是统计学家们卖弄学问(但也是有充分的理由)。大多数人倾向于混用「概率」和「似然度」这两个名词,但统计学家和概率理论家都会区分这两个概念。通过观察这个等式,我们可以更好地明确这种混淆的原因。

这两个表达式是相等的!所以这是什么意思?我们先来定义 P(data; μ, σ) 它的意思是「在模型参数μ、σ条件下,观察到数据 data 的概率」。值得注意的是,我们可以将其推广到任意数量的参数和任何分布。

另一方面,L(μ, σ; data) 的意思是「我们在观察到一组数据 data 之后,参数 μ、σ 取特定的值的似然度。」

上面的公式表示,给定参数后数据的概率等于给定数据后参数的似然度。但是,尽管这两个值是相等的,但是似然度和概率从根本上是提出了两个不同的问题——一个是关于数据的,另一个是关于参数值的。这就是为什么这种方法被称为最大似然法(极大可能性),而不是最大概率。

什么时候最小二乘参数估计和最大似然估计结果相同?

最小二乘法是另一种常用的机器学习模型参数估计方法。结果表明,当模型向上述例子中一样被假设为高斯分布时,MLE 的估计等价于最小二乘法。

直觉上,我们可以通过理解两种方法的目的来解释这两种方法之间的联系。对于最小二乘参数估计,我们想要找到最小化数据点和回归线之间距离平方之和的直线(见下图)。在最大似然估计中,我们想要最大化数据同时出现的总概率。当待求分布被假设为高斯分布时,最大概率会在数据点接近平均值时找到。由于高斯分布是对称的,这等价于最小化数据点与平均值之间的距离。

机器学习中的数学(二):参数估计与似然函数(MLE)相关推荐

  1. 机器学习中的数学(二)--梯度下降法

    写在前面 <机器学习中的数学>系列主要列举了在机器学习中用到的较多的数学知识,包括微积分,线性代数,概率统计,信息论以及凸优化等等.本系列重在描述基本概念,并不在应用的方面的做深入的探讨, ...

  2. 机器学习中的数学原理——二分类问题

    今天是2022年的最后一天,提前祝大家新年快乐!这个专栏主要是用来分享一下我在机器学习中的学习笔记及一些感悟,也希望对你的学习有帮助哦!感兴趣的小伙伴欢迎私信或者评论区留言!这一篇就更新一下<白 ...

  3. 机器学习中的数学原理——对数似然函数

    这个专栏主要是用来分享一下我在 机器学习中的 学习笔记及一些感悟,也希望对你的学习有帮助哦!感兴趣的小伙伴欢迎 私信或者评论区留言!这一篇就更新一下< 白话机器学习中的数学--对数似然函数> ...

  4. 机器学习中的数学——距离定义(二十):相对熵(Relative Entropy)/KL散度(Kullback-Leibler Divergence)

    分类目录:<机器学习中的数学>总目录 相关文章: · 距离定义:基础知识 · 距离定义(一):欧几里得距离(Euclidean Distance) · 距离定义(二):曼哈顿距离(Manh ...

  5. 机器学习中的数学——常用概率分布(二):范畴分布(Multinoulli分布)

    分类目录:<机器学习中的数学>总目录 相关文章: · 常用概率分布(一):伯努利分布(Bernoulli分布) · 常用概率分布(二):范畴分布(Multinoulli分布) · 常用概率 ...

  6. 机器学习中的数学——点估计(二):矩估计

    分类目录:<机器学习中的数学>总目录 相关文章: · 点估计(一):基础知识 · 点估计(二):矩估计 · 点估计(三):极大似然估计/最大似然估计(Maximum Likelihood ...

  7. 机器学习中的数学原理——似然函数

    这个专栏主要是用来分享一下我在 机器学习中的 学习笔记及一些 感悟,也希望对你的学习有帮助哦!感兴趣的小伙伴欢迎 私信或者 评论区留言!这一篇就更新一下< 白话机器学习中的数学--似然函数> ...

  8. 机器学习中的数学——距离定义(二十九):点间互信息(Pointwise Mutual Information, PMI)

    分类目录:<机器学习中的数学>总目录 相关文章: · 距离定义:基础知识 · 距离定义(一):欧几里得距离(Euclidean Distance) · 距离定义(二):曼哈顿距离(Manh ...

  9. 机器学习中的数学——距离定义(二):曼哈顿距离(Manhattan Distance)

    分类目录:<机器学习中的数学>总目录 相关文章: · 距离定义:基础知识 · 距离定义(一):欧几里得距离(Euclidean Distance) · 距离定义(二):曼哈顿距离(Manh ...

  10. 机器学习中的数学——常用概率分布(十二):逻辑斯谛分布(Logistic 分布)

    分类目录:<机器学习中的数学>总目录 相关文章: · 常用概率分布(一):伯努利分布(Bernoulli分布) · 常用概率分布(二):范畴分布(Multinoulli分布) · 常用概率 ...

最新文章

  1. 使用FFT来计算IFFT
  2. python set集合
  3. 基本HTTP协议流程是什么?
  4. linux虚拟机时间不准的问题
  5. Halcon中visualize_object_model_3d算子详解
  6. 拖拽的方式使用qbuttongroup_【无机纳米材料科研制图——Photoshop 0402】PS使用选框工具修改图片/图层...
  7. thinkphp5与thinkphp3.X对比
  8. Get Intellisense for .axml files in Visual Studio
  9. 将软件代码从Delphi 7迁移升级到Delphi 10.4.1等现代化新版本的注意事项
  10. VAssistX的卸载方法
  11. 我们,让9300万人办事少跑一趟
  12. 千呼万唤始出来的京东HR面(2023暑期实习)
  13. STM32F103C8T6详细引脚表
  14. 微信升级外链管理规范,「砍一刀帮我加速」要被禁止了
  15. Oracle 的 表空间(Tablespace)、用户(User)、模式(Schema)
  16. 安卓点击图片跳转界面_详解拳头注册 + 安卓LOL试玩教程
  17. 【心情分享】联系博主
  18. Use After Free
  19. vue3中使用swiper7
  20. “利润定乾坤”的商业模式陷阱将令你的企业自掘坟墓

热门文章

  1. 软件体系架构课后作业04
  2. 前两篇转载别人的精彩文章,自己也总结一下python split的用法吧!
  3. 文件大小转换(b,kb,M,GB/TB)
  4. [译] 第二天:AngularJS - 认识AngularJS
  5. HDU3595_GG and MM
  6. 各种前端开发工具 - 你用过几种?
  7. 人工智能与深度学习概念(3)——目标分类-CNN
  8. unbuntu 18.04 LTS 版 安装Samba服务器
  9. 关于在Mac上安装模拟器的坑比~~~~~
  10. 关于口令强度等级的设计