【机器学习之---数学】熵和交叉熵

every blog every motto: You can do more than you think.
https://blog.csdn.net/weixin_39190382?type=blog

0. 前言

熵和交叉熵

1. 熵

概率分布的熵可以被解释为与给定分布中的随机变量相关的不确定性或缺乏可预测性的度量。

我们还可以使用熵来定义数据源的信息内容。例如,假设我们观察到由分布p生成的符号序列 X n ∼ p X_n \sim p Xnp。如果p具有高熵,则很难预测每个观测值Xn的值。因此我们说数据集 D = ( X 1 , … , X n ) D = (X_1,…,X_n) D=(X1,,Xn)具有较高的信息量。相反,如果p是一个熵为0(最小值)的简并分布,那么每个Xn都是相同的,因此D不包含太多信息。

离散随机变量X的熵定义为,
H ( X ) ≜ − ∑ k = 1 K p ( X = k ) l o g 2 p ( X = k ) = − ∑ i = 1 n p ( x i ) l o g 2 p ( x i ) = − E X [ l o g 2 p ( X ) ] \begin{aligned} H(X) &\triangleq -\sum_{k=1}^Kp(X=k)log_2p(X=k) \\ &=-\sum_{i=1}^{n}p(x_i)log_2 p(x_i) \\ &= -E_X[log_2 p(X)] \end{aligned} H(X)k=1Kp(X=k)log2p(X=k)=i=1np(xi)log2p(xi)=EX[log2p(X)]

注意,我们用符号 H ( X ) H(X) H(X)来表示随机变量(rv)与分布p的熵,就像人们用 V [ X ] V[X] V[X]来表示与X相关的分布的方差;我们也可以写成 H ( p ) H(p) H(p) 。通常我们使用log以2为底,在这种情况下,单位称为位(二进制数的简称)。例如,如果 X ∈ { 1 , . . . , 5 } X \in \{1,...,5\} X{1,...,5} 的直方图分布 p = [ 0.25 , 0.25 , 0.2 , 0.15 , 0.15 ] p =[0.25, 0.25, 0.2, 0.15, 0.15] p=[0.25,0.25,0.2,0.15,0.15] ,我们得到 H = 2.29 H = 2.29 H=2.29 bits。如果用log以e为底的对数,单位叫做nats。


具有最大熵的离散分布是均匀分布。对于k元随机变量,当 p ( x = k ) = 1 / k p(x = k) = 1/ k p(x=k)=1/k 时,熵最大;在这种情况下, H ( X ) = l o g 2 K H (X) = log2K H(X)=log2K。如下:

H ( X ) = − ∑ k = 1 K 1 K l o g ( 1 / K ) = − l o g ( 1 / K ) = l o g ( K ) H(X) = -\sum_{k=1}^K \frac{1}{K}log(1/K) = -log(1/K) = log(K) H(X)=k=1KK1log(1/K)=log(1/K)=log(K)

相反,具有最小熵(零)的分布是将其所有质量置于一个状态的任何delta函数。这样的分布没有不确定性。


对于二元随机变量 X ∈ { 0 , 1 } X \in \{0,1\} X{0,1} 的特殊情况,我们可以写成 p ( X = 1 ) = θ p(X = 1) = θ p(X=1)=θ p ( X = 0 ) = 1 − θ p(X = 0) = 1 - θ p(X=0)=1θ 。因此熵就变成了,

H ( X ) = − [ p ( X = 1 ) l o g 2 p ( X = 1 ) + p ( X = 0 ) l o g 2 p ( X = 0 ) ] = − [ θ l o g 2 θ + ( 1 − θ ) l o g 2 ( 1 − θ ) ] \begin{aligned} H(X) &= -[p(X=1)log_2p(X=1) + p(X=0)log_2p(X=0)] \\ &= -[θlog_2θ + (1 - θ)log_2(1 - θ)] \end{aligned} H(X)=[p(X=1)log2p(X=1)+p(X=0)log2p(X=0)]=[θlog2θ+(1θ)log2(1θ)]

这叫 binary entropy function, 可以写成 H ( θ ) H(θ) H(θ),图如下:

1710730393199

2. 相对熵(KL散度)

2.1 概念

考虑一个未知的分布 p ( x ) p(x) p(x),假定用一个 近似的分布 q ( x ) q(x) q(x) 对其进行建模。

如果我们使用 q(x) 来建立一个编码体系,用来把 x 的值传给接收者,那么由于我们使用了q(x)而不是真实分布p(x),平均编码长度比用真实分布p(x)进行编码增加的信息量(单位是 nat )为:
K L ( p ∣ ∣ q ) = − ∫ p ( x ) l o g ( q ( x ) ) d x − ( − ∫ p ( x ) l o g ( p ( x ) ) d x ) = − ∫ p ( x ) l o g ( q ( x ) p ( x ) ) d x = ∫ p ( x ) l o g ( p ( x ) q ( x ) ) d x \begin{aligned} KL(p||q) &= -\int p(x)log(q(x))dx - (-\int p(x)log(p(x))dx) \\ &= -\int p(x)log(\frac{q(x)}{p(x)})dx \\ &= \int p(x)log(\frac{p(x)}{q(x)})dx \\ \end{aligned} KL(p∣∣q)=p(x)log(q(x))dx(p(x)log(p(x))dx)=p(x)log(p(x)q(x))dx=p(x)log(q(x)p(x))dx

这被称为分布p(x)和q(x)之间的相对熵,也被称为KL散度。

上式为连续型随机变量的KL散度,下式为离散型随机变量的KL散度。

K L ( p ∣ ∣ q ) = ∑ p ( x ) l o g ( p ( x ) q ( x ) ) KL(p||q) = \sum p(x)log(\frac{p(x)}{q(x)}) KL(p∣∣q)=p(x)log(q(x)p(x))

2.2 性质

  1. 不对称;

K L ( p ∣ ∣ q ) ≠ K L ( q ∣ ∣ p ) KL(p||q) \neq KL(q||p) KL(p∣∣q)=KL(q∣∣p)
2. 非负,当且仅当p(x) = q(x)时取到等号成立;
K L ( p ∣ ∣ q ) ≥ 0 KL(p||q) \geq 0 KL(p∣∣q)0

2.3 KL散度和最大似然

假 设 数 据 通 过 未 知 分 布 p ( x ) p(x) p(x)生 成, 我 们 想 要 对 p ( x ) p(x) p(x)建 模。 我 们 可 以 试 着 使 用 一 些 参 数 分 布 q ( x ∣ θ ) q(x |\theta) q(xθ)来近似这个分布。 q ( x ∣ θ ) q(x|\theta) q(xθ)由可调节的参数 θ \theta θ控制(例如一个多元高斯分布)。

一种确 定 θ \theta θ的方式是最小化 p ( x ) p(x) p(x) q ( x ∣ θ ) q(x|\theta) q(xθ) 之间关于 θ \theta θ的Kullback-Leibler散度。我们不能直接这么做,因 为我们不知道p(x)。

但是,假设我们已经观察到了服从分布p(x)的有限数量的训练点 x n x_n xn,其 中 n = 1 , . . . , N n = 1,...,N n=1,...,N 。那么,关于p(x)的期望就可以通过这些点的有限加和

K L ( p ∣ ∣ q ) = ∑ n = 1 N p ( x n ) l o g ( p ( x n ) q ( x n ∣ θ ) ) ≃ 1 N ∑ n = 1 N [ l o g p ( x n ) − l o g ( q ( x n ∣ θ ) ) ] \begin{aligned} KL(p||q) &= \sum_{n=1}^N p(x_n)log(\frac{p(x_n)}{q(x_n|\theta)}) \\ &\simeq \frac{1}{N} \sum_{n=1}^N [logp(x_n) - log(q(x_n|\theta)) ] \\ \end{aligned} KL(p∣∣q)=n=1Np(xn)log(q(xnθ)p(xn))N1n=1N[logp(xn)log(q(xnθ))]

公式左侧和 θ \theta θ无关,第一项是使用训练集估计的分布 q ( x ∣ θ ) q(x |\theta) q(xθ)下的 θ \theta θ的负对数 似然函数。

因此我们看到,最小化Kullback-Leibler散度等价于最大化似然函数。

2.4 交叉熵

交叉熵公式:

H ( p , q ) = − ∑ i p ( x i ) l o g q ( x i ) H(p,q) = -\sum_i p(x_i)log q(x_i) H(p,q)=ip(xi)logq(xi)

而我们的KL散度公式:

D K L ( p ∣ ∣ q ) = ∑ i p ( x i ) l o g ( p ( x i ) q ( x i ) ) = ∑ i p ( x i ) l o g p ( x i ) − ∑ i p ( x i ) l o g q ( x i ) = H ( p , q ) − H ( p ) \begin{aligned} D_{KL}(p||q) &= \sum_i p(x_i)log(\frac{p(x_i)}{q(x_i)}) \\ &= \sum_i p(x_i)log p(x_i) - \sum_i p(x_i)log q(x_i) \\ &= H(p,q) - H(p) \end{aligned} DKL(p∣∣q)=ip(xi)log(q(xi)p(xi))=ip(xi)logp(xi)ip(xi)logq(xi)=H(p,q)H(p)

即,交叉熵 = KL散度 + 熵。
H ( p , q ) = D K L ( p ∣ ∣ q ) + H ( p ) H(p,q) = D_{KL}(p||q) + H(p) H(p,q)=DKL(p∣∣q)+H(p)

参考

  1. https://zhuanlan.zhihu.com/p/372835186
  2. https://zhuanlan.zhihu.com/p/39682125
  3. https://zhuanlan.zhihu.com/p/365400000
  4. https://blog.csdn.net/yg2685482622/article/details/108273329
  5. https://zhuanlan.zhihu.com/p/292434104

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

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

相关文章

小程序UI设计规范,界面设计尺寸详解

作为互联网技术的重要组成部分,小程序在日常生活中发挥着越来越重要的作用。因此,了解和严格遵守小程序的 UI 设计标准非常重要,它不仅可以帮助我们在保证良好用户体验的同时优化小程序,还可以使我们的产品在竞争激烈的市场中占据…

零基础入门转录组数据分析——绘制差异火山图

零基础入门转录组数据分析——绘制差异火山图 差异分析的火山图(Volcano Plot)在生物信息学数据分析中,特别是在基因表达差异分析中,是一个非常直观和有用的工具。 本教程将从导入的数据结构开始,一步步带大家在R中绘制好看的火山图,最后对火山图进行解读,确保读者理解…

数字范围按位与

题目链接 数字范围按位与 题目描述 注意点 0 < left < right < 2^31 - 1包含 left 、right 端点 解答思路 返回区间内所有数字按位与的结果&#xff0c;所以区间内所有数字在某一位的值相同&#xff0c;则结果该位数字为该值&#xff0c;否则该位数字为0&#xf…

二、Java语法基础

1、Java语言的关键字、标识符及命名规范 1)java关键字 2)标识符 3)JAVA中的命名规范 包名的命名规范:域名.公司名称.项目名称.模块名称 类的命名规范:首字母大写,第二个单词的首字母大写,以此类推。 2、进制间的转换(二进制、十进制) 1)十进制->二进制 采用…

火狐浏览器垂直标签页对比 Sidebery vs Tab Center Reborn

Sidebery 链接 商店 评价 大而全&#xff0c;各种功能&#xff0c;以及相关的配置项&#xff0c;应有尽有&#xff1b;功能包括但不限于&#xff1a; 树形标签页、着色、面板、容器、快照最近关闭、标签页、历史 默认的配置就已经很好用了&#xff1b; 快捷键&#xff1a;F…

2024年安全员-C证证模拟考试题库及安全员-C证理论考试试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年安全员-C证证模拟考试题库及安全员-C证理论考试试题是由安全生产模拟考试一点通提供&#xff0c;安全员-C证证模拟考试题库是根据安全员-C证最新版教材&#xff0c;安全员-C证大纲整理而成&#xff08;含2024年…

TSINGSEE青犀多模型、算力调度与智能分析AI算法中台介绍及应用

TSINGSEE青犀AI算法中台是一款平台型产品&#xff0c;专注于提供各行业中小场景中部署解决方案。平台具备接入广、性能强、支持跨平台、芯片国产化等特点&#xff0c;可提供丰富的视图接入能力和智能分析能力。平台将不同类型、不同协议前端设备&#xff0c;支持通过不同网络环…

css简单动画实现

html源码 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>西安工程大学</title><link …

N9010A安捷伦N9010A信号分析仪

181/2461/8938产品概述&#xff1a; Keysight N9010A EXA 信号分析仪是最大限度提高生产线吞吐量的最快方法。从测量速度到代码兼容性&#xff0c;它让每一毫秒都很重要&#xff0c;并帮助您降低总体测试成本。 我们无法预测未来&#xff0c;但安捷伦可以利用我们面向未来的测…

深入探讨Docker in Docker:原理与实战指南

在软件开发和部署中&#xff0c;容器化技术已经成为一个不可或缺的工具。而在使用Docker进行容器化时&#xff0c;有时可能会遇到需要在一个Docker容器中运行另一个Docker容器的情况&#xff0c;这就是所谓的"Docker in Docker"&#xff08;简称DinD&#xff09;。本…

分治法课堂案例(1-8未完,只有1-5,待续)

一个不知名大学生&#xff0c;江湖人称菜狗 original author: Jacky Li Email : 3435673055qq.com Time of completion&#xff1a;2024.03.30 Last edited: 2024.03.30 目录 分治法课堂案例 第1关&#xff1a;二分搜索技术 任务描述 编程要求 测试说明 代码如下&#xf…

【大数据】Flink学习笔记

文章目录 认识FlinkDocker安装Flink基本概念Flink的特点Flink 和 Spark Streaming 对比 基本使用WordCount实现依赖 批模式代码流模式代码网络流模式代码在web UI上提交代码创建项目[^1]编写代码配置打包在Web UI上提交 Flink 架构系统架构核心概念并行度算子链(Opeartor Chain…

一次性了解C语言中文件和文件操作

P. S.&#xff1a;以下代码均在VS2019环境下测试&#xff0c;不代表所有编译器均可通过。 P. S.&#xff1a;测试代码均未展示头文件stdio.h的声明&#xff0c;使用时请自行添加。 文件及文件操作 前言1. 文件分类1.1 文本文件1.2 二进制文件1.3 文本文件和二进制文件的区别 2…

基于哈希槽的docker三主三从redis集群配置

目录 一、三主三从redis集群配置 1、关闭防火墙启动docker后台服务 2、新建6个docker容器redis实例 3、进入容器redis-node-1为6台机器构建集群关系 3.1进入容器 3.2构建主从关系 4、查看集群状态 4.1链接进入6381作为切入点 二、主从容错切换迁移按例 1、数据读写存储…

最好的超声波清洗机排行榜有哪些?好评爆表超声波清洗机盘点

在如今这个视觉为王的时代&#xff0c;一副清晰的眼镜不仅是视力矫正的工具&#xff0c;更是提升形象的重要配饰。然而&#xff0c;眼镜的日常清洁往往让人头疼&#xff0c;传统的清洗方法既费时又难以彻底去除镜片上的污渍和细菌。这时&#xff0c;一台高效的超声波清洗机便成…

类与对象中C++

加油&#xff01;&#xff01;&#xff01; 文章目录 前言 一、类的6个默认成员函数 ​编辑 二、构造函数 1.概念 三、析构函数 1.概念 2.特性 四、拷贝构造函数 1.概念 2.特征 拷贝构造函数典型调用场景 五、赋值运算符重载 1.运算符重载 2.赋值运算符重载 赋值运算符重载格式…

module ‘numpy‘ has no attribute ‘int‘

在 NumPy 中&#xff0c;如果遇到了错误提示 "module numpy has no attribute int"&#xff0c;这通常意味着正在尝试以错误的方式使用 NumPy 的整数类型。从 NumPy 1.20 版本开始&#xff0c;numpy.int 已经不再是一个有效的属性&#xff0c;因为 NumPy 不再推荐使用…

西门子触摸屏SMART 700 IE V3数据记录的记录周期

问题的提出 需要解决的问题&#xff1a;目前我使用的工况是记录2s内速度变化情况&#xff0c;大概需要记录100个点&#xff0c;时间间隔或者说周期还是挺小的。 PLC端 S7-200的编程过程中&#xff0c;这个用填表程序add_to_table指令完成了&#xff0c;但是记录过程最多只能…

数字乡村发展之路:探索农村智慧化新模式

一、引言 随着信息技术的迅猛发展和普及&#xff0c;数字化已经成为推动乡村发展的重要引擎。数字乡村建设旨在通过信息化、智能化手段&#xff0c;提升农村地区的生产生活水平&#xff0c;推动农村经济社会的转型升级。本文旨在探讨数字乡村的发展之路&#xff0c;分析农村智…