最近在研究一些概率论的东西,今天说一说似然函数。

常说的概率是指给定参数后,预测即将发生的事件的可能性。拿硬币这个例子来说,我们已知一枚均匀硬币的正反面概率分别是0.5,要预测抛两次硬币,硬币都朝上的概率:

H代表Head,表示头朝上

p(HH | pH = 0.5) = 0.5*0.5 = 0.25.

这种写法其实有点误导,后面的这个p其实是作为参数存在的,而不是一个随机变量,因此不能算作是条件概率,更靠谱的写法应该是 p(HH;p=0.5)。

而似然概率正好与这个过程相反,我们关注的量不再是事件的发生概率,而是已知发生了某些事件,我们希望知道参数应该是多少。

现在我们已经抛了两次硬币,并且知道了结果是两次头朝上,这时候,我希望知道这枚硬币抛出去正面朝上的概率为0.5的概率是多少?正面朝上的概率为0.8的概率是多少?

如果我们希望知道正面朝上概率为0.5的概率,这个东西就叫做似然函数,可以说成是对某一个参数的猜想(p=0.5)的概率,这样表示成(条件)概率就是

L(pH=0.5|HH) = P(HH|pH=0.5) = (另一种写法)P(HH;pH=0.5).

为什么可以写成这样?我觉得可以这样来想:

似然函数本身也是一种概率,我们可以把L(pH=0.5|HH)写成P(pH=0.5|HH); 而根据贝叶斯公式,P(pH=0.5|HH) = P(pH=0.5,HH)/P(HH);既然HH是已经发生的事件,理所当然P(HH) = 1,所以:

P(pH=0.5|HH) = P(pH=0.5,HH) = P(HH;pH=0.5).

右边的这个计算我们很熟悉了,就是已知头朝上概率为0.5,求抛两次都是H的概率,即0.5*0.5=0.25。

所以,我们可以safely得到:

L(pH=0.5|HH) = P(HH|pH=0.5) = 0.25.

这个0.25的意思是,在已知抛出两个正面的情况下,pH = 0.5的概率等于0.25。

再算一下

L(pH=0.6|HH) = P(HH|pH=0.6) = 0.36.

把pH从0~1的取值所得到的似然函数的曲线画出来得到这样一张图:

可以发现,pH = 1的概率是最大的。

即L(pH = 1|HH) = 1。

那么最大似然概率的问题也就好理解了。

最大似然概率,就是在已知观测的数据的前提下,找到使得似然概率最大的参数值。

这就不难理解,在data mining领域,许多求参数的方法最终都归结为最大化似然概率的问题。

回到这个硬币的例子上来,在观测到HH的情况下,pH = 1是最合理的;

最大似然估计的直观解释

最大似然估计是一种确定模型参数值的方法。确定参数值的过程,是找到能最大化模型产生真实观察数据可能性的那一组参数。

上述的定义可能听起来还是有点模糊,那么让我们通过一个例子来帮助理解。

假设我们从某个过程中观察了 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 的估计等价于最小二乘法。

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

关于机器学习中的似然函数的理解相关推荐

  1. 机器学习中的Inductive bias理解

    CNN的inductive bias应该是locality和spatial invariance,即空间相近的grid elements有联系而远的没有,和空间不变性(kernel权重共享) RNN的 ...

  2. 机器学习中对核函数的理解

    http://mp.weixin.qq.com/s?__biz=MzIxNDIwMTk2OQ==&mid=2649077019&idx=1&sn=e0c4a6c502e3668 ...

  3. 深入剖析机器学习中的统计思想

    https://www.toutiao.com/a6649503554182578696/ 2019-01-23 09:58:23 现在机器学习中大家达成了一个共识: 如果你在用一个机器学习方法,而不 ...

  4. 机器学习基础__02__L1L2范数在机器学习中应用

    目录 1. 范数概念 2. 为什么L1有稀疏性?L2则没有 3. 应用 1. 范数概念 范数是衡量某个向量空间(或矩阵)中的每个向量以长度或大小. 范数的一般化定义:对实数p>=1, 范数定义如 ...

  5. 透彻理解机器学习中极大似然估计MLE的原理(附3D可视化代码)

    文章目录 相关资料 一.什么是概率,什么是似然 二.极大似然估计 Maximum Likelihood Estimation (MLE) 的含义 2.1 机器学习中的极大化似然函数 2.2 极大似然估 ...

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

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

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

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

  8. 找对象的过程中,我竟然理解了什么是机器学习!

    最近开始了有关机器学习方面知识的学习,自己啃书本的时候一些概念枯燥无味,所以借着做笔记的机会来简单理解其中的一些概念,如有谬误,还望指出.? 什么是人工智能? 我看过很多博客解释什么是人工智能,我觉得 ...

  9. 机器学习中的数学基础(2)——理解基、线性组合与向量空间

    https://www.toutiao.com/a6668922466275951118/ 这是<机器学习中的数学基础>系列的第2篇. 铺垫 在介绍各种"高大上"的名词 ...

最新文章

  1. Centos6.8 Mysql 设置自动备份与定期删除备份文件 自测部署安装
  2. WiFi万能钥匙发布iOS4.0新增骚扰电话拦截功能
  3. HarmonyOS之常用布局PositionLayout的使用
  4. 继承演练 c# 1613706361
  5. Web前端基础---JQuery的页面加载+选择器+电子时钟案例
  6. 全球地区资料json 含中英文 经纬度_2020年Brain Bee北京、天津、河北赛区地区赛参赛说明...
  7. Eclipse修改项目编码
  8. nginx 实现负载均衡
  9. [原创]java WEB学习笔记18:java EE 中的MVC 设计模式(理论)
  10. 调研报告|在线语音识别改进之 RNN-T 训练
  11. eclipse中git的author和commiter的修改
  12. 百度前员工因内网发布“女优一览表”被辞退,自诉原因:想转岗鉴黄师.........
  13. Uipath 对Excel中重复的行进行筛选解决方案以及DefaultVaule方法的使用
  14. HTML5期末大作业:轮滑运动体育类人物介绍主题网站设计(12页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计
  15. linux如何查看tlb大小,TLB缓存是个神马鬼,如何查看TLB miss?
  16. 怎么写安卓手机脚本_干货!最火短视频脚本 分镜头教程合集40份
  17. 腾讯WXG客户端开发(已OC)
  18. ava.net.ConnectException: Connection refused: connect
  19. Linux 6.2:华为代码加速核心功能 715 倍!
  20. 关于input自动过滤特殊字符的简单方法

热门文章

  1. gmsv源代码c语言,stone_server 整理过的石器时代2.0 server gmsv+saac - 下载 - 搜珍网
  2. 聆听函数的声音:Mathematica的声音函数试验
  3. Linux下一切皆文件? -- 理解文件标识符fd
  4. Java:扑克牌发牌程序(除大小王)
  5. CAD如何标注文字?说一个快速标注途径
  6. python读取xlsx文件pandas_Python使用pandas读取xlsx文件,python
  7. 智能家居照明系统设计
  8. 13份疯狂的创意简历
  9. Va_list Va_start va_arg Va_end 的用法
  10. 在应用程序级别以外使用注册为 allowDefinition='MachineToApplication' 的节是错误的解决办法