首页 > 其他分享 >熵、交叉熵、KL散度

熵、交叉熵、KL散度

时间:2024-07-19 20:25:54浏览次数:7  
标签:xi log logq 交叉 散度 KL

这里写目录标题

熵,是一个物理上的概念,表示一个系统的不确定性程度,或者表示一个系统的混乱程序。
下边是信息熵的演示:
信息熵的公式如下:
H ( x ) = − ∑ i = 1 ) n p ( x i ) l o g p ( x i ) H(x)=-\sum_{i=1)}^{n}p(x_i)logp(x_i) H(x)=−∑i=1)n​p(xi​)logp(xi​)
其中 P ( x ) 表示随机变量 x 的概率函数 P(x)表示随机变量x的概率函数 P(x)表示随机变量x的概率函数在这里插入图片描述看数值可知道班花A的头脑更加混乱,那么多个帅哥,不知选择哪一个,不像班花B只需要选择第一个大帅哥即可。

KL散度

KL散度就是相对熵,相对熵就是KL散度
KL散度 = 相对熵,相对熵 = KL散度。
KL 散度:是两个概率分布间差异的非对称性度量。
怎么理解这句话呢?
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_{i=1}^{n}p(x_i)log(\frac{p(x_i)}{q(x_i)}) DKL​(p∣∣q)=∑i=1n​p(xi​)log(q(xi​)p(xi​)​)

KL散度的特性:
特点1:非对称性。
即D_KL(p||q) 不等于D_KL(q||p)
只有当p 和q的概率分布完全一样时才会相等。
特点2:非负性。
DKL的值永远大于0
只有当p 和q的概率分布完全一样时才会等于0.
看看b站老表老师的例子,笑着理解。哈哈哈
在这里插入图片描述
KL散度公式的变形:
在这里插入图片描述

引入交叉熵。

交叉熵公式如下:
H ( P , Q ) = − ∑ i = 1 n p ( x i ) l o g q ( x i ) H(P,Q) = -\sum_{i=1}^{n} p(x_i)logq(x_i) H(P,Q)=−∑i=1n​p(xi​)logq(xi​) 经过简单变形:
=> H ( P , Q ) = ∑ i = 1 n p ( x i ) l o g ( 1 q ( x i ) ) H(P,Q) = \sum_{i=1}^{n} p(x_i)log(\frac{1}{q(x_i)}) H(P,Q)=∑i=1n​p(xi​)log(q(xi​)1​)
其中 p ( x i ) 是真实分布的概率, q ( x i ) 是预测的概率 p(x_i)是真实分布的概率,q(x_i)是预测的概率 p(xi​)是真实分布的概率,q(xi​)是预测的概率
同样看下b站老师的例子,笑着理解吧!

在这里插入图片描述

观测交叉熵的数值可知:
1、预测越准确,交叉熵越小。
2、交叉熵只跟真是标签的预测概率值有关。
所以你就能推断出交叉熵的最简公式:
C r o s s E n t r o p y ( p , q ) = − l o g q ( c i ) Cross_Entropy(p,q)=-logq(c_i) CrossE​ntropy(p,q)=−logq(ci​)

交叉熵的二分类公式:

H ( P , Q ) = − ∑ i = 1 n p ( x i ) l o g ( q ( x i ) ) H(P,Q)=-\sum_{i=1}^{n}p(x_i)log(q(x_i)) H(P,Q)=−∑i=1n​p(xi​)log(q(xi​))
= − p ( x 1 ) l o g q ( x 1 ) + p ( x 2 ) l o g q ( x 2 ) =-p(x_1)logq(x_1)+p(x_2)logq(x_2) =−p(x1​)logq(x1​)+p(x2​)logq(x2​)
= − p l o g q + ( 1 − p ) l o g ( 1 − q ) =-plogq+(1-p)log(1-q) =−plogq+(1−p)log(1−q)
= − ( p l o g q − ( 1 − p ) l o g ( 1 − q ) ) =-(plogq-(1-p)log(1-q)) =−(plogq−(1−p)log(1−q))
怎么推到第四步的呢?
p ( x 1 ) + p ( x 2 ) = 1 ,我们假设 p(x_1)+p(x_2)=1,我们假设 p(x1​)+p(x2​)=1,我们假设 p ( x 1 ) = p ,那么 p ( x 2 ) = 1 − p p(x_1) = p,那么p(x_2) = 1-p p(x1​)=p,那么p(x2​)=1−p
同理:
q ( x 1 ) + q ( x 2 ) = 1 ,我们假设 q(x_1)+q(x_2)=1,我们假设 q(x1​)+q(x2​)=1,我们假设 q ( x 1 ) = q ,那么 q ( x 2 ) = 1 − q q(x_1) = q,那么q(x_2) = 1-q q(x1​)=q,那么q(x2​)=1−q
继续看b站老师的例子,帮助理解。
在这里插入图片描述
继续观摩老师的PPT:
在这里插入图片描述

再次理解SoftMax函数

按照老师的话来说:
softMax就是将数字转换成概率的大杀器,进行数据归一化的大杀器。

结束

对于该为b站老师的视频,我感觉讲的非常好哇,很适合小白入门,可惜后续没再更新,不知在哪还能找到勒

标签:xi,log,logq,交叉,散度,KL
From: https://blog.csdn.net/weixin_46348136/article/details/140547989

相关文章

  • sklearn中的增量学习:特征提取的艺术
    sklearn中的增量学习:特征提取的艺术在机器学习领域,特征提取是构建有效模型的关键步骤。然而,并非所有数据集都适合一次性加载到内存中进行处理,尤其是在处理大规模数据集时。Scikit-learn(sklearn)提供了一些支持增量学习的模型,允许用户逐步地从数据中学习并提取特征。本文将详......
  • 视觉探秘:sklearn中聚类标签的可视化之道
    视觉探秘:sklearn中聚类标签的可视化之道在数据科学领域,聚类分析是一种无监督学习方法,用于将数据集中的样本划分为若干个组或“簇”,使得同一组内的样本相似度高,而不同组之间的样本相似度低。Scikit-Learn(简称sklearn),作为Python中广受欢迎的机器学习库,不仅提供了多种聚类算法......
  • 交叉表多数据列
    交叉报表–交叉表多数据列概述交叉表多数据列:一个具有多个数据列的交叉报表。应用场景如下图所示,简单展示数据示例说明数据准备在数据面板中添加数据集,可选择Json数据集和Http接口数据集,Json数据如下图所示:[{"City":"北京","Amount":144,"Quantity":8,"ProductID":......
  • Python 文件操作与管理:Open函数、Json与Pickle、Os模块
    1.open函数的使用Python中的open()函数是处理文件的标准方法。它允许你打开一个文件,并对其进行读取、写入或追加操作open(file,mode,encoding)函数的格式:file:文件路径mode:打开方式(读:r写:w读完之后光标停留在最后读取的位置......
  • 端口转发工具rinetd 交叉编译及端口配置(下载、交叉编译、端口转发)
    端口转发工具rinetd从下载到使用(下载、交叉编译、端口转发)一、下载下载:https://wwm.lanzoue.com/ixjKn24phczg密码:apeb二、交叉编译1、进入源代码目录cd~/software/rinetd-0.702、清理现有配置和生成的文件makedistclean3、新建build文件夹,并进入mkdirbuildcdb......
  • [项目自荐] 交叉编译njs并使用Nginx搭建自由的个人网盘:vList5
    这个博客好久没有打理了,最近才想起来这篇文章是以下5篇文章的组合,希望这个免费的项目能实现他的初衷吧vList5:部署指南vList5.3全面加密,从我做起njs从入门(交叉编译)到入坟(与vList5配对)vList5+njs/moment实用与使用光猫折腾4:为光猫编译armel版本的nginx特色:使用......
  • 数据分享|R语言逻辑回归、线性判别分析LDA、GAM、MARS、KNN、QDA、决策树、随机森林、
    全文链接:http://tecdat.cn/?p=27384最近我们被客户要求撰写关于葡萄酒的研究报告,包括一些图形和统计输出。在本文中,数据包含有关葡萄牙“VinhoVerde”葡萄酒的信息介绍该数据集(查看文末了解数据获取方式)有1599个观测值和12个变量,分别是固定酸度、挥发性酸度、柠檬酸、残糖、......
  • 【THM】Pickle Rick练习
    【THM】PickleRick练习与本文相关的TryHackMe实验房间链接:TryHackMe|Roomdetails简介:瑞克和莫蒂CTF。帮助瑞克变回人类!这个以瑞克和莫蒂为主题的挑战要求你利用网络服务器,找到三种材料来帮助瑞克制作他的药水,并把自己从腌黄瓜变回人类。在此任务上部署虚拟机并浏览We......
  • 数据分享|python分类预测职员离职:逻辑回归、梯度提升、随机森林、XGB、CatBoost、LGB
    全文链接:https://tecdat.cn/?p=34434原文出处:拓端数据部落公众号分析师:ShilinChen离职率是企业保留人才能力的体现。分析预测职员是否有离职趋向有利于企业的人才管理,提升组织职员的心理健康,从而更有利于企业未来的发展。解决方案任务/目标采用分类这一方法构建6种模型对职......
  • 【优化交叉口的绿灯时间】基于遗传算法的交通灯管理研究(Matlab代码实现)
    ......