熵、贝叶斯、极大似然

news2024/10/5 21:17:12

熵及熵在机器学习中的作用

reference:https://blog.csdn.net/tsyccnh/article/details/79163834

在这里插入图片描述

香农给熵的定义:无损编码事件信息的最小平均编码长度

直观理解熵的定义:表示某一件事的不确定性
I ( x 0 ) = − l o g ( p ( x 0 ) ) I(x_0)=-log(p(x_0)) I(x0)=log(p(x0))
通常会用-log(x)函数来表示信息量,当概率趋近于1时,表示越确定,那么信息量接近于0,如下图所示

在这里插入图片描述

熵用于表示信息量的期望
H ( X ) = − ∑ i = 1 n p ( x i ) l o g ( p ( x i ) ) H(X)=-\sum_{i=1}^n p(x_i)log(p(x_i)) H(X)=i=1np(xi)log(p(xi))

相对熵

相对熵听得比较少,但是如果提到KL散度(Kullback-Leibler (KL) divergence)应该就比较常见(强化学习常客),KL散度可以用于衡量两个分布的差异性

在机器学习中,P往往用来表示样本的真实分布,Q用来表示模型所预测的分布。我们希望训练到最后Q越来越接近于P,即P与Q的KL散度越来越小。

KL散度的计算公式:
D K L ( p ∣ ∣ q ) = ∑ i = 1 n p ( x i ) l o g ( p ( x i ) q ( x i ) ) D_{KL}(p||q)=\sum\limits_{i=1}^n p(x_i)log(\dfrac{p(x_i)}{q(x_i)}) DKL(p∣∣q)=i=1np(xi)log(q(xi)p(xi))
n是样本数量

交叉熵

交叉熵这个概念如果单独看会很迷糊,但是从KL散度出发看就很清晰了

对上文中的KL散度展开可以得到
D K L ( p ∣ ∣ q ) = ∑ i = 1 n p ( x i ) l o g ( p ( x i ) ) − ∑ i = 1 n p ( x i ) l o g ( q ( x i ) ) = − H ( p ( x ) ) + [ − ∑ i = 1 n p ( x i ) l o g ( q ( x i ) ] \begin{aligned}D_{KL}(p||q)&=\sum_{i=1}^{n}p(x_i)log(p(x_i))-\sum_{i=1}^n p(x_i)log(q(x_i))\\ &=-H(p(x))+\lbrack-\sum\limits_{i=1}^{n}{p(x_i)}log(q(x_i)\rbrack\end{aligned} DKL(p∣∣q)=i=1np(xi)log(p(xi))i=1np(xi)log(q(xi))=H(p(x))+[i=1np(xi)log(q(xi)]
前一部分就是P的熵,后一部分就是交叉熵。因为H§是不变的,因此我们只需要关注交叉熵就可以,这就是为什么ML习惯将交叉熵作为loss

贝叶斯、似然

参考:

  • https://blog.csdn.net/u011508640/article/details/72815981

  • http://mindhacks.cn/2008/09/21/the-magical-bayesian-method/

首先明确一个重要的概念,什么是概率,什么是统计

  • 概率:已知模型(分布),求样本点x出现的概率
  • 统计:已知数据,推测模型以及参数

接下来明确另一个概念,概率函数和似然函数,这两个函数都可以表示为 p ( x , θ ) p(x,\theta) p(x,θ)

  • 概率函数:已知 θ \theta θ,求x样本出现的概率
  • 似然函数:已知 x x x数据,似然表示对于不同的参数 θ \theta θ,x出现的概率

接下来用一个经典例子来解释极大似然估计(Maximum likelihood estimation,MLE)

极大似然估计

假如有一个罐子,里面有黑白两种颜色的球,数目多少不知,两种颜色的比例也不知。我们想知道罐中白球和黑球的比例,但我们不能把罐中的球全部拿出来数。那应该怎么办呢?很简单,前面提到了可以通过采样数据来求得模型参数。我们可以每次任意从已经摇匀的罐中拿一个球出来(采样),记录球的颜色,然后把拿出来的球再放回罐中。这个过程可以重复,我们可以用记录的球的颜色来估计罐中黑白球的比例。假如在前面的一百次重复记录中,有七十次是白球,请问罐中白球所占的比例最有可能是多少?

我们假设白球的比例为p,那么黑球的比例就是(1-p),假设模型的参数为 θ \theta θ

上面事件发生的似然函数可以表示为:
P ( x ∣ θ ) = P ( x 1 , x 2 , . . . , x 100 ∣ θ ) = P ( x 1 ∣ θ ) P ( x 2 ∣ θ ) . . . P ( x 100 ∣ θ ) = p 70 ( 1 − p ) 30 P(x|\theta) = P(x1,x2,...,x100|\theta) \\ = P(x1|\theta)P(x2|\theta)...P(x100|\theta) \\ =p^{70} (1-p)^{30} P(xθ)=P(x1,x2,...,x100∣θ)=P(x1∣θ)P(x2∣θ)...P(x100∣θ)=p70(1p)30
极大似然的思想就是,事件已经发生,那么我们就求让这个事件发生概率最大的模型参数,使得上面似然最大,那就是求个导,就可以,求得p = 70%

以上思想就是统计学派的思想

但是,贝叶斯学派不认可,他们认为一个事件发生,存在一个先验概率 p ( θ ) p(\theta) p(θ) ,例如,我们直观的认为硬币正反两面发生的概率都是0.5,这就是先验概率

极大后验概率估计

利用贝叶斯思想来求模型参数称为极大后验概率估计,首先给出贝叶斯公式
P ( A ∣ B ) = P ( B ∣ A ) P ( A ) P ( B ) \mathrm{P}(\mathrm{A} \mid \mathrm{B})=\frac{\mathrm{P}(\mathrm{B} \mid \mathrm{A}) \mathrm{P}(\mathrm{A})}{\mathrm{P}(\mathrm{B})} P(AB)=P(B)P(BA)P(A)
直接看公式很难理解对吧,下面我们一步步拆解这个公式

我们先把A换成 θ \theta θ,然后把B换成 x x x,那么上面公式可以变为
P ( θ ∣ x ) = P ( x ∣ θ ) P ( θ ) P ( x ) \mathrm{P}(\theta \mid x) = \frac{\mathrm{P}(x \mid \theta) \mathrm{P}(\theta)}{\mathrm{P}(x)} P(θx)=P(x)P(xθ)P(θ)
现在我们再来看这个公式,我们可以惊奇的发现 P ( x ∣ θ ) P(x|\theta) P(xθ)不就是我们前面提到的似然函数吗,而 P ( θ ) P(\theta) P(θ)表示先验概率,即我们基于经验得到的先验知识, P ( x ) P(x) P(x)是客观事实数据,是一个已知的值。而 P ( θ ∣ x ) P(\theta|x) P(θx)表示后验概率,即我们最大化的函数。

关于 P ( x ) P(x) P(x),我们可以从实验数据得到这个值,例如我们每一次实验都是投10个硬币,总共做了1000次实验,某一个路径“反正正正正反正正正反”出现了n次,则 P ( x 0 ) = n / 1000 P(x_0) = n / 1000 P(x0)=n/1000,总之这个数据不影响我们对于后验概率的计算,所以 P ( θ ∣ x ) ∝ P ( x ∣ θ ) P ( θ ) \mathrm{P}(\theta \mid x) \propto \mathrm{P}(x \mid \theta) \mathrm{P}(\theta) P(θx)P(xθ)P(θ) 中间符号表示正比于

贝叶斯拓展

  • https://www.youtube.com/watch?v=-1dYY43DRMA

可以将贝叶斯的公式看成是我们人类的学习过程, P ( θ ) {P}(\theta) P(θ)是我们对某件事发生的先验概率, P ( x ∣ θ ) \mathrm{P}(x \mid \theta) P(xθ)是我们在生活中学习观察到数据后的似然,我们就是使用似然来更新对某件事的认知。

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

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

相关文章

【Java版oj】day37数据库连接池、mkdir

目录 一、数据库连接池 (1)原题再现 (2)问题分析 (3)完整代码 二、mkdir (1)原题再现 (2)问题分析 (3)完整代码 一、数据库连接…

ChatGPT会如何改变制造业?

来源 | Smart Industry Edgenesis编译 ChatGPT最新版本的发布成为热门头条。OpenAI表示该版本的ChatGPT能够在多个专业测试中达到“人类水平”的表现,例如司法考试和SAT考试。不过,在工业领域中,ChatGPT能够发挥怎样的作用呢?Sma…

升级OpenSSH版本(安装telnet远程管理主机

目录 一.OpenSSH是什么? 二.升级OpenSSH版本至8.9 1.环境介绍 2.检查是否安装telnet 3.安装telnet服务 4.启动telnet服务 5.安全文件关闭或者修改(否则root无法telnet登录) 6.安装依赖包 7.备份原有SSH服务版本 8.下载OpenSSH升级所需安装包 9.删除现有…

MySQL索引失效的七大场景

文章目录 口诀初始化数据库索引失效七大场景模(模糊查询)型(数据类型)数(函数)或(OR)运(运算)最(最左原则)快(查询数据量大…

接口自动化测试系统知识大全,你想要的全都有

目录 接口自动化测试的前景 接口自动化测试的方法 接口自动化测试怎么做 接口自动化测试工具有哪些? 接口自动化测试框架 接口自动化测试的前景 随着移动互联网、云计算和大数据等技术的不断发展,接口自动化测试在软件开发中的重要性越来越凸显。尤其是随着微…

typora导出PDF很慢的解决办法

Typora导出PDF文件一直卡住 以前可以导出,但突然导出错误 1、首先,查看服务中的Print Spooler是否打开,没有打开进行服务打开 2、打开后,再进行导出,不行的话,就是前面的打印进程阻塞 解决方法&#xff…

软件测试?月薪20k+?不会自动化测试的我真的很难....

做自动化测试后悔吗? 后悔,真的后悔! 后悔没有早点学..... 虽然现在网上到处都在散播35的焦虑,姑且信之,那么反问你,如果你30岁了,那么给你5年,能够在某个领域成为专家呢&#xf…

计算广告(十七)

多渠道组合路径效率评价 ​ 编辑切换为居中 添加图片注释,不超过 140 字(可选) 分析背景: 电商归因分析通常以 last_click 为基准,将成交转化归功于用户完成转化前的最近一个广告系列。然而,在此之前&a…

java--线程池

目录 1.线程池概 2 为什么要使用线程池 1创建线程问题 2解决上面两个问题思路: 3线程池的好处 4线程池适合应用场景 3 线程池的构造函数参数 1.corePoolSize int 线程池核心线程大小 2.maximumPoolSize int 线程池最大线程数量 3.keepAliveTime long 空闲…

Centos elasticsearch 8.7.0 集群搭建

Install Elasticsearch with RPM | Elasticsearch Guide [8.7] | Elastic 准备了3台centos,ip分别是: 1、192.168.1.103 2、192.168.1.148 3、192.168.1.192 开始安装第1个节点 1、 rpm --import https://artifacts.elastic.co/GPG-KEY-elasticse…

快速引用网站标题链接到Markdown

JS脚本 将JS脚本添加到书签栏,通过调用书签栏执行快速复制网页标题和链接 合成Markdown格式的方法: javascript:!function(a){var b document.createElement("textarea"),c document.getSelection();(b.textContent a),document.body.ap…

【C++】STL——vector 深度剖析 及 模拟实现

文章目录 前言1. vector的介绍及使用1.1 vector的介绍1.2 vector的使用1.2.1 构造函数1.2.2 vector对象的遍历1.2.3 vector的迭代器1.2.4 reserve和resize1.2.5 insert和erase1.2.6 vector< char > 能否替代string 2. vector的模拟实现2.1 STL_vector源码浏览2.2 vector的…

网络安全-网站后台的寻找+网页JS文件信息收集

网络安全-网站后台的寻找网页JS文件信息收集 前言 一&#xff0c;我也是初学者记录的笔记 二&#xff0c;可能有错误的地方&#xff0c;请谨慎 三&#xff0c;欢迎各路大神指教 四&#xff0c;任何文章仅作为学习使用 五&#xff0c;学习网络安全知识请勿适用于违法行为 学习网…

数影周报:美联邦机构被曝数据泄露丑闻,嘀嗒狗完成数千万元融资

本周看点&#xff1a;美联邦下属机构超25万消费者隐私被泄露&#xff1b;钉钉、金山办公同日公布AI应用&#xff1b;京东全球购与宿迁市港口集团签订战略协议&#xff1b;嘀嗒狗完成数千万元Pre-A轮融资...... 数据安全那些事 美联邦机构被曝数据泄露丑闻 海外网4月20日电 据美…

DeepSORT中的卡尔曼滤波

本文是看了DeepSORT方法视频之后&#xff0c;关于其中使用的卡尔曼滤波的理解 DeepSORT视频链接 首先是视频中的一张图 预测阶段 x ^ k − A x ^ k − 1 \hat{x}_k^-A\hat{x}_{k-1} x^k−​Ax^k−1​ P k − A P k − 1 Q , P k − ∈ R 8 , 8 P_k^-AP_{k-1}Q, P_k^- \i…

Python轻量级Web框架Flask(10)——Flask进阶知识

1、Flask整体框架流程回顾&#xff1a; 视图函数把数据返回给浏览器的方法有多种&#xff0c;其中一种就是通过模板Templates。 2、Flask插件介绍&#xff1a; Flask插件可以去官网查看&#xff0c;有很多。插件安装流程&#xff1a; 1、通过pip指令在对应环境中下载插件2、在…

【Python入门】NumPy 入门知识介绍,看这一篇足矣

前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 什么是 NumPy&#xff1f; NumPy 是用于处理数组的 python 库。 它还拥有在线性代数、傅立叶变换和矩阵领域中工作的函数。 NumPy 由 Travis Oliphant 于 2005 年创建。它是一个开源项目&#xff0c;你可以自由使用它。 …

SAP 性能监控工具

SAP 体系结构可能很复杂&#xff0c;因为它由许多不同的元素和多层应用程序组成。每个元素都必须以最佳方式执行&#xff0c;以确保响应迅速且可靠的服务级别。管理如此复杂的系统可能非常艰巨&#xff0c;这就是为什么使用强大的SAP监控工具绝对必要的原因。 什么是 SAP 监控 …

安装autogpt中出现的问题及安装autogpt的小白教程

ImportError: DLL load failed while importing numpy_ops: The specified module could not be found 解决方案&#xff1a;Latest supported Visual C Redistributable downloads | Microsoft Learn 安装一下这个软件即可&#xff0c; 要安装 Auto-GPT&#xff0c;请按照下…

【Operating Systems:Three Easy Pieces 操作系统导论 】 4 ~ 6 章 (进程 | 进程 API | 受限直接执行)

【读书笔记】 Operating Systems:Three Easy Pieces 操作系统导论 第四章、 抽象 &#xff1a; 进程 4.1 什么是进程 ? 操作系统为正在运行的程序提供的抽象进程可以访问的内存&#xff08;称为地址空间&#xff0c;address space&#xff09; 是该进程的一部分。进程的机器…