【机器学习前置知识】隐变量

隐变量又称潜变量,顾名思义就是隐藏着的随机变量,它不能通过观测来得到,或者说它产生的过程是不可观测的,然而它却可以在潜移默化中影响可观测变量。

我们用抛硬币为例来解释什么是隐变量。假设有 A 、 B 、 C A、B、C ABC 三枚硬币,正面向上的概率分别为 θ A θ_A θA θ B θ_B θB θ C θ_C θC ,我们想求出 θ B θ_B θB θ C θ_C θC ,目前尚不知晓,但可以通过抛硬币的观测结果推测出来。

抛这三枚硬币的游戏规则是:第一步,先抛硬币 A A A ,第二步,如果硬币 A A A 正面向上,则选择硬币 B B B 抛10次,记录这10次的结果;如果硬币 A A A 反面向上,则选择硬币 C C C 抛10次,记录这10次的结果。这样重复5次,则可以得到50个抛硬币的观测数据:

硬币A的结果(已知)硬币B的结果(观测数据)硬币C的结果(观测数据)
正反反反正正反正反正
正正正正反正正正正正
正反正正正正正反正正
正反正反反反正正反反
反正正正反正正正反正

我们可以利用这个观测结果来估计 θ B θ_B θB θ C θ_C θC

硬币 B B B 在30次中正面向上出现24次,反面向上出现6次,由极大似然可得出现这种结果的概率为 θ B 24 ( 1 − θ B ) 6 θ_B^{24}(1-θ_B)^{6} θB24(1θB)6,对应的图像如下:


在这里插入图片描述


可以看到在 θ B = 0.8 θ_B=0.8 θB=0.8 时取到最大值,即 θ B = 24 30 = 0.8 θ_B={24\over 30}=0.8 θB=3024=0.8

同理可得 θ C = 9 20 = 0.45 θ_C={9\over 20}=0.45 θC=209=0.45 ,至此,我们通过观测数据估计出了硬币 B 、 C B、C BC 正面向上的概率,然而我们需要知道,得到这组观测数据的前提是每次我们知道该抛的是硬币 B B B 还是硬币 C C C

如果我们在上面的抛硬币游戏中,将第一步放入暗箱里操作,也就是说抛硬币 A A A 的结果我们不得而知,只能得到最终50个观测结果:

硬币A的结果(未知)硬币B或C的结果(观测数据)
不知道正反反反正正反正反正
不知道正正正正反正正正正正
不知道正反正正正正正反正正
不知道正反正反反反正正反反
不知道反正正正反正正正反正

那么在这种情况下,如何去估计出 θ B θ_B θB θ C θ_C θC 呢?此时,就不能用最大似然去估计了,因为我们不再知道每组结果是来自硬币 B B B 还是 C C C

这里未知的硬币 A A A 的结果,其实就是个隐变量。

关于这种情况下 θ B θ_B θB θ C θ_C θC 的求法,我会在后面的 EM 算法里讲。

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

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

相关文章

使用nginx对视频、音频、图片等静态资源网址,加token签权

目前很多静态资源,都可以无权限验证,进行访问或转发,对有价值的资源进行签权,限制转发无法在代码中实现拦截,我们可以使用nginx对视频、音频、图片等静态资源网址,加token签权 如: http://192.168.1.22/123.mp3 http://192.168.1.22/123.m3u8 http://192.168.1.22/1…

十一、C++核心编程(1)内存分区模型

本阶段主要针对面向对象程技术做详细讲解,探讨C中的核心和精髓。 一、内存分区模型 1、C程序在执行时,将内存大方向划分为4个区域: 代码区:存放函数体的二进制代码,由操作系统进行管理的全局区:存放全局变量和静态变量以及常量…

qt5-入门

参考: qt学习指南 Qt5和Qt6的区别-CSDN博客 Qt 学习之路_w3cschool Qt教程,Qt5编程入门教程(非常详细) 本地环境: win10专业版,64位 技术选择 Qt5力推QML界面编程。QML类似HTML,可以借助CSS进…

【超详细教程】GPT-SoVITs从零开始训练声音克隆教程(主要以云端AutoDL部署为例)

目录 一、前言 二、GPT-SoVITs使用教程 2.1、Windows一键启动 2.2、AutoDL云端部署 2.3、人声伴奏分离 2.4、语音切割 2.5、打标训练数据 2.6、数据集预处理 2.7、训练音频数据 2.8、推理模型 三、总结 一、前言 近日,RVC变声器的创始人(GitH…

Linux——Ubuntu安装MySQL并设置远程登录

1、安装mysql8.0.35 1.更新包列表,首先,确保您的系统已更新到最新状态。运行以下命令来更新包列表和安装最新的软件包: sudo apt update sudo apt upgrade2.安装MySQL服务器:运行以下命令来安装MySQL服务器: sudo a…

【C++】this指针

this指针! 目录 this指针的引出:从C语言中理解this指针: this指针的特性:练习: this指针的引出: 我们知道,类中的成员函数是有专门的存放区:公共代码区,这也就意味着我…

方案:将vue项目放在SpringMVC中,并用tomcat访问

需要先将项目生成一次war包才能访问项目的webapp文件夹下的资源,否则tomcat的webapp文件夹下面不会生成对应资源文件夹就无法访问。 问题:目录如下: 今天我测试了一下将vue打包后,放入webapp下面访问,却发现vue项目无…

第九节HarmonyOS 常用基础组件13-TimePicker

1、描述 时间选择组件,根据指定参数创建选择器,支持选择小时以及分钟。默认以24小时的时间区间创建滑动选择器。 2、接口 TimePicker(options?: {selected?: Date}) 3、参数 selected - Date - 设置选中项的时间。默认是系统当前的时间。 4、属性…

软件工程学科的本质

软件工程学科的本质是分析与设计,是画图,是进行软件架构设计,进行进行软件项目管理。而非写代码。 分析有结构化分析,面向对象分析法,都用图来描述表达。 设计有结构化设计,面向对象设计法,都…

云计算运维 · 第三阶段 · git

学习b记 第三阶段 三、持续集成 1、git #安装 yum -y install git[rootgit-git ~]# git config –-global user.name "qxl" # 配置git使用用户 [rootgit-git ~]# git config –-global user.email "qxlmail.com" # 配置git使用邮箱 [rootgit-git ~]# g…

面试题 02.07. 链表相交(力扣LeetCode)

文章目录 面试题 02.07. 链表相交题目描述解题思路c代码优化后c代码 面试题 02.07. 链表相交 题目描述 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。 图示两个链表在节点 c1 …

java代码中直接调用存储过程

开启数据库语句批处理 url: jdbc:mysql://192.168.0.xxx:3306/xxx?useSSLfalse&useUnicodetrue&characterEncodingutf-8&zeroDateTimeBehaviorCONVERT_TO_NULL&serverTimezoneUTC&allowMultiQueriestrue 重点: allowMultiQueriestrue mysql…

医疗保健和生命科学组织的远程访问解决方案

医疗保健和生命科学组织的远程访问解决方案——随时随地为医疗保健和生命科学人员提供相关信息 引领生命科学远程工作的IT新高度 生命科学组织一直承受着改进工作流程、降低成本和比以往更快地交付产品的压力。 使用远程访问和集中式 IT 基础架构,企业可以在加快上…

Linux CPU 负载说明

一、背景 工作中我们经常遇到CPU 负载高,CPU负载高意味着什么? CPU的负载是怎么计算的? top指令中的各个指标代表什么含义? 二、CPU 负载计算方法 在系统出现负载问题,通常会使用uptime和top确认负载,这两…

基于C#制作一个连连看小游戏

基于C#制作一个连连看小游戏,实现:难易度选择、关卡选择、倒计时进度条、得分计算、音效播放等功能。 目录 引言游戏规则开发环境准备游戏界面设计游戏逻辑实现图片加载与显示鼠标事件处理游戏优化与扩展添加关卡与难度选择说明</

备战蓝桥杯--数据结构及STL应用(基础)

今天轻松一点&#xff0c;讲一讲stl的基本操作吧&#xff01; 首先&#xff0c;让我们一起创建一个vector容器吧&#xff01; #include<bits/stdc.h> using namespace std; struct cocoack{ int coco,ck; } void solve(){vector<cocoack> x;for(int i0;i<5;i){…

Java链表(2)

&#x1f435;本篇文章将对双向链表进行讲解&#xff0c;模拟实现双向链表的常用方法 一、什么是双向链表 双向链表在指针域上相较于单链表&#xff0c;每一个节点多了一个指向前驱节点的引用prev以及多了指向最后一个节点的引用last&#xff1a; 二、双向链表的模拟实现 首先…

C++不能直接返回数组

文章目录 前言一、缘由二、示例&#xff1a;函数返回后&#xff0c;指针指向无效内存三、解决方案3.1、动态分配数组3.2、使用 std::vector&#xff1a;&#xff08;最为推荐&#xff09;3.3、使用静态数组&#xff1a; 前言 在 C 中&#xff0c;不能直接返回一个数组。因为数组…

STL:list实现

list是和vector类似的顺序型容器&#xff0c;也是是比vector更为复杂的容器。list是双向带头链表&#xff0c;初始有一个不存数据的头节点&#xff0c;并通过节点内指针将后续节点依次连接起来 。 相较于vector&#xff0c;list特点如下&#xff1a; (1)list可以按需申请&…