机器学习——关于极大似然估计法的一些个人思考(通俗易懂极简版)

最近在回顾机器学习的一些相关理论知识,回顾到极大似然法时,对于极大似然法中的一些公式有些迷糊了,所以本文主要想记录并分享一下个人关于极大似然估计法的一些思考,如果有误,请见谅,欢迎一起前来探讨。当然,如果这篇文章还能入得了各位“看官”的法眼,麻烦点赞、关注、收藏,支持一下!

一、须知前提

可能有一部分小伙伴的概率学等相关理论知识相对薄弱,因此,为了让大家更好的理解,在对极大似然估计法进行说明前,先对相关的须知理论知识做一个简单的说明

在理解极大似然估计法时,有两需要理解,一个是贝叶斯定理,一个是联合概率

1、贝叶斯定理

直接给出公式:

对于贝叶斯定理的公式,可能很多小伙伴不能理解是怎么得来的,其实本人也不甚了解,但是这并不影响公式的使用,所以大家不需要过度纠结这条公式是怎么来的,其实只要会用就可以,当然有兴趣的小伙伴可以自行去检索一下,相信网络上有很多相关资料。

但是,我们必须要理解公式中每个部分代表着什么,这样才能保证我们可以正常使用。

这里比较重要的是条件概率联合概率,公式中的P(x,c)就是联合概率,对于联合概率此处先不讲,但是会在下一小节重点解释,公式中的P(c|x)和P(x|c)就是条件概率,举两个例子大家感受一下:

P(好瓜|敲声=脆响)=敲声脆响的瓜是好瓜的概率

P(敲声=脆响|好瓜)=好瓜的敲声是脆响的概率

对此,我们不难发现,对于条件概率,大家可以理解为,在某一前提的情况下发生某件事的概率

至于为什么使用贝叶斯公式,其实原因很简单,因为P(c|x)在实际生活中无法求得或者求得的投入入过大不划算,比如说,如果我们要求P(好瓜|敲声=脆响)时,我们通过敲打西瓜可以知道敲声是否脆响,但是无法直接得出是不是好瓜,要想知道西瓜是否是好瓜,我们需要把西瓜切开,一两个瓜还好,要是成百上千呢?如果仅仅只是为了知道瓜是不是好瓜而将每个瓜都切开这不现实。

2、联合概率

在贝叶斯定理部分,已经给出了条件概率的形式,在概率中还有一种概率形式叫做联合概率,其形式如下:

或者是:

 对于联合概率,大家可以理解为,多个事件同时发生的概率,即“”的关系,举个简单的例子大家感受一下:

P(敲声脆响,触感硬滑)=敲声脆响触感硬滑的概率

另外,根据样本的分布是否独立,联合概率分成两种形式。

当属性/样本之间是独立分布时:

或者:

 为了让大家更好理解,我举个例子:

 P(敲声=脆响,触感=硬滑,根蒂=蜷缩)=P(敲声=脆响)*P(触感=硬滑)*P(根蒂=蜷缩)

这里需要注意的是千万千万不要写成累加的形式。为什么是累乘而不是累加,我举个例子简单解释一下,P表示求概率想必大家都知道,概率必然是小于等于1的,若采用累加的形式,当敲声要么脆响要么沉闷,触感要么硬滑要么绵软,根蒂要么蜷缩要么硬挺时:

P(敲声=脆响)=P(触感=硬滑)=P(根蒂=蜷缩)=0.5

 P(敲声=脆响,触感=硬滑,根蒂=蜷缩)=P(敲声=脆响)+P(触感=硬滑)+P(根蒂=蜷缩)=1.5>1

概率值是1.5,大于1,这显然是错误的,因此我们不难得出,采用累加的形式是错误的。

说到这里我就再多说一句,什么情况下我们可以采用累加的形式,举个例子大家感受一下:

当敲声有三个值时,即敲声可以是脆响、清响、沉闷,如果我们要求敲声不为清脆的概率,或者说敲声等于脆响或者沉闷的概率,我们可以用累加,即:

P(敲声清脆)=P(敲声=脆响U敲声=沉闷)=P(敲声=脆响)+P(敲声=沉闷)

当属性/样本之间是非独立分布时:

举个例子,x1是x2的父节点,即x2的值受x1影响,如下所示:

举个例子:

 P(敲声=脆响,触感=硬滑)=P(敲声=脆响)*P(触感=硬滑|敲声脆响)

二、极大似然估计法有啥用?

在上面一节中提到了贝叶斯定理,而极大似然法就是为了求解贝叶斯公式中的P(x|c),比如求好瓜中敲声脆响的概率P(敲声=脆响|好瓜)。讲到这里,可能有些小伙伴,有些迷糊,P(x|c)明明很清楚也很好求,为啥还要用极大似然法,原因其实很简单,下面会进行说明。

对于单一样本或者单一属性而言确实很好求,就好像求解P(敲声=脆响|好瓜),但是现实生活中我们需要求解的可能是多个属性,或者含有多个样本的样本集,即P(x1,x2,……xn|c),对于这种情况我们往往很难直接求得。

举个例子,假设对于每个属性/样本x1~xn都有0和1两个值的话,那么x1~xn的组合形式也就有2^{n}个,这样也就是说,要想使得训练集准确,训练集必须包含每一种可能性。因此,我们训练集中的训练样本数至少要有2^{n}个,而且这些训练样本还必须都不同。当n大起来或者当x1~xn的取值不仅仅只有两个值时,就会存在要么训练集中样本数量巨大导致训练过程耗时耗力的问题,要么就会存在训练集中某种组合缺失导致训练结果不准的问题,而极大似然法却恰恰可以帮助我们解决这些问题。

三、极大似然估计法

先说一下极大似然估计法估计条件概率的基本原理/策略,极大似然估计法是先假定其具有某种确定的概率分布形式,再基于训练样本对概率分布的参数进行估计(这是《西瓜书》上的原话)。

个人理解:极大似然估计法认为每一个标记c都对应一种概率分形式,比如说正态分布、均匀分布等等,而我们求条件概率就是求特定分布下的某一值的概率,比如说,标记c对应的是正态分布,求P(x=1|c),即求在这个正态分布下的x=1的概率是多少,当正态分布曲线画出来后,横轴代表数据点的值,纵轴代表数据点在该分布下的概率。因此,极大似然法就将求条件概率转换成了求标记c的具体分布,当分布曲线确定好之后,我们就可以直接在曲线上得出相应数据点的概率。

下面我将给出极大似然法的核心公式:

从上面的三条公式,我们不难看出,极大似然法最后求的是令LL(\theta_{c})达到最大的\theta _{c},这与上面所讲的极大似然估计法的原理保持一致。

其中,\theta _{c}是一个参数向量,以正态分布为例,\theta _{c}=\left [ \mu _{c},\sigma _{c} \right ],当\theta _{c}确定后,正态分布曲线就可以定下来了,D_{c}表示训练集D 中第c 类样本组成的集合,并且我们假定这些样本是独立同分布的。

至于为什么求得的\theta _{c}要使LL(\theta_{c})达到最大,原因很简单。因为我们最根本目的是为了求的一个误差最小的模型,或者说预测结果最准却得模型,即P(c|x)要达到最大,因为P(c)和P(x)是确定的,所以根据贝叶斯公式,我们要求P(c|x)达到最大就可以转换成求P(x|c)达到最大。

样本点是由采样得来的,是一定的,而极大似然估计法则认为标记c对应的是一种概率分布形式,在不同的概率分布形式下,相同的样本点的概率是不同的,所以要使的P(x|c)达到最大,就是要找到一个最佳的概率分布曲线。

当标记c确定为某一概率分布形式后,比如正态分布,通过\theta _{c}就可以确定具体概率分布曲线的形态,不同的\theta _{c}会产生不同形态的概率分布曲线,也就会导致P(x|c)出现不同的值,当P(x|c)达到最大时,LL(\theta_{c})必然达到最大。因此,求解P(x|c)的最大值,就也可以转换成求使LL(\theta_{c})达到最大的\theta _{c}

参考书籍

周志华老师的《西瓜书》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/44627.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单元测试实施最佳方案(背景、实施、覆盖率统计)

1. 什么是单元测试? 对于很多开发人员来说,单元测试一定不陌生 单元测试是白盒测试的一种形式,它的目标是测试软件的最小单元——函数、方法或类。单元测试的主要目的是验证代码的正确性,以确保每个单元按照预期执行。单元测试通…

合肥高校大学智能制造实验室数字孪生可视化系统平台建设项目验收

合肥高校大学智能制造实验室近日迎来了一项重要时刻,数字孪生可视化系统平台建设项目顺利通过了验收。这一项目的成功实施,不仅标志着合肥高校在智能制造领域取得新的突破,为我国智能制造技术的发展注入新活力。 合肥高校智能制造实验室作为…

T972 切换至pdm 声音输入的方法

1.在hardware/amlogic/audio/audio_hal/audio_hw.c下,直接切换 在 static unsigned int select_port_by_device(struct aml_audio_device *adev) 中先强制切换为pdm 2.在device mk 配置文件中 #add fof fix the mic bug by jason 20230621 PRODUCT_PROPERTY_OVE…

MySQL 数据库基础概念

一、什么是数据库? 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。 每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。 我们也可以将数据存储在文件中&…

MSPM0G3507(三十六)——超声波PID控制小车固定距离

效果图: 波形图软件是VOFA,B站有教程 ,虽然有缺点但是非常简单。 视频效果: PID控制距离 之前发过只有超声波测距的代码,MSPM0G3507(三十二)——超声波模块移植代码-CSDN博客 SYSCFG配置&#…

用友NC Cloud blobRefClassSearch FastJson反序列化RCE漏洞复现

0x01 产品简介 用友 NC Cloud 是一种商业级的企业资源规划云平台,为企业提供全面的管理解决方案,包括财务管理、采购管理、销售管理、人力资源管理等功能,实现企业的数字化转型和业务流程优化。 0x02 漏洞概述 用友 NC Cloud blobRefClassSearch 接口处存在FastJson反序列…

开源PHP论坛HadSky本地部署与配置公网地址实现远程访问

文章目录 前言1. 网站搭建1.1 网页下载和安装1.2 网页测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2 Cpolar稳定隧道(云端设置)2.3 Cpolar稳定隧道(本地设置)2.4 公网访问测试 总结 前言 今天和大家分享…

idea启动ssm项目详细教程

前言 今天碰到一个ssm的上古项目,项目没有使用内置的tomcat作为服务器容器,这个时候就需要自己单独设置tomcat容器。这让我想起了我刚入行时被外置tomcat配置支配的恐惧。现在我打算记录一下配置的过程,希望对后面的小伙伴有所帮助吧。 要求…

SpringBoot3.3.0升级方案

本文介绍了由SpringBoot2升级到SpringBoot3.3.0升级方案,新版本的升级可以解决旧版本存在的部分漏洞问题。 一、jdk17下载安装 1、下载 官网下载地址 Java Archive Downloads - Java SE 17 Jdk17下载后,可不设置系统变量java_home,仅在id…

开发技术-Java BigDecimal 精度丢失问题

文章目录 1. 背景2. 方法3. 总结 1. 背景 昨天和小伙伴排查一个问题时,发现一个 BigDecimal 精度丢失的问题,即 double a 1.1;BigDecimal ba new BigDecimal(a).subtract(new BigDecimal(0.1));System.out.println(ba);输出: 1.000000000…

Vue3 使用 Vue Router 时,prams 传参失效和报错问题

Discarded invalid param(s) “id“, “name“, “age“ when navigating 我尝试使用 prams 传递数据 <script setup> import { useRouter } from vue-routerconst router useRouter() const params { id: 1, name: ly, phone: 13246566476, age: 23 } const toDetail…

快速使用BRTR公式出具的大模型Prompt提示语

Role:文章模仿大师 Background: 你是一位文章模仿大师&#xff0c;擅长分析文章风格并进行模仿创作。老板常让你学习他人文章后进行模仿创作。 Attention: 请专注在文章模仿任务上&#xff0c;提供高质量的输出。 Profile: Author: 一博Version: 1.0Language: 中文Descri…

半边数据结构学习

半边数据结构学习 一、网格数据结构二、半边数据结构顶点(Vertex)半边(HalfEdge)面片(Face) 三、OpenMesh 相关代码拓扑关联对象遍历 四、OpenFilpper 相关代码HoleInfo类孔洞检测孔洞信息HoleFiller类孔洞补全 一、网格数据结构 对于表面网络来说&#xff0c;其关键在于拓扑&…

【MySQL系列】VARCHAR的底层存储

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

python-亲和数(赛氪OJ)

[题目描述] 古希腊数学家毕达哥拉斯在自然数研究中发现&#xff0c;220 的所有真约数(即不是自身的约数)之和为&#xff1a; 1245101120224455110&#xff1d;284 。 而 284 的所有真约为 1 、 2 、 4 、 71 、 142 &#xff0c;加起来恰好为 220 。人们对这样的数感到很惊奇&a…

如何搞定美国TikTok直播网络?

在全球范围内&#xff0c;TikTok已经积累了超过30亿次的下载量&#xff0c;月活跃用户达到13亿以上&#xff0c;支持75种语言&#xff0c;覆盖了150多个国家和地区。这一庞大的流量池吸引了众多国内电商人尝试在TikTok上进行业务拓展。本文将探讨如果要在美国运营TikTok直播&am…

MySql性能调优03-[SQL优化]

SQL优化 MySQL优化SQL优化-不要写select *SQL优化-小表驱动大表&#xff0c;而不是大表驱动小表SQL优化-连接查询代替子查询SQL优化-提升group by的效率SQL优化-使用limitSQL优化-union all代替unionSQL优化-join的表不宜过多 MySQL优化 trace工具 set session optimizer_trac…

Kithara与OpenCV (一)

Kithara使用 OpenCV 库 目录 Kithara使用 OpenCV 库简介需求和支持的环境构建 OpenCV 库使用 CMake 进行配置以与 Kithara 一起工作 使用 OpenCV 库设置项目运行 OpenCV 代码图像采集和 OpenCV自动并行化限制和局限性1.系统建议2.实时限制3.不支持的功能和缺失的功能4.显示 Ope…

数字化打造行业生态产业链,企业新增益全知道

在当今数字化时代&#xff0c;利用数字化打造行业生态产业链成为企业发展的重要战略选择。那么&#xff0c;这一举措究竟能为企业带来哪些新增益呢&#xff1f;让我们一探究竟。 一、运营效率大幅提高 数字化技术就像一条神奇的纽带&#xff0c;将产业链上的各个环节紧紧相…

Python函数 之 匿名函数

1.概念 匿名函数: 使用 lambda 关键字 定义的表达式&#xff0c;称为匿名函数. 2.语法 lambda 参数, 参数: 一行代码 # 只能实现简单的功能&#xff0c;只能写一行代码 # 匿名函数 一般不直接调用&#xff0c;作为函数的参数使用的 3.代码 4.练习 # 1, 定义匿名函数, 参数…