PRML1.6 信息论简介

2024-03-26 16:38
文章标签 简介 信息论 prml1.6

本文主要是介绍PRML1.6 信息论简介,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近需要比较两个集合的KL散度,特意翻了一下PRML中的相关章节,做个小结。如果不够的化还得翻information theory的书TAT

离散随机变量的信息量

首先从最简单的离散随机变量 X ∈ { x 1 , x 2 , . . . x M } X\in\{x_1,x_2,...x_M\} X{x1,x2,...xM}说起,假设 P r ( x i ) = p i Pr(x_i)=p_i Pr(xi)=pi,则有 ∑ i = 1 \sum_i=1 i=1。如果我们采样到了 X X X的一个具体值 x x x,考虑到我们关心的是 X X X及其分布 p p p,而不是某次观测到的具体的 x x x,所以我们肯定要问,这个观测值给我们提供了多少(关于 X X X(或 p p p)的)信息?PRML用“degree of surprise”来描述这个信息量 h ( x ) h(x) h(x)。这怎么理解呢?
我们举个极端的例子:太阳已经东升西落了上亿年,但是我们假设其升落方向其实是一个随机变量。那么有一天太阳从北方升起来了,这次采样的信息量就远远大于采样到从东方升起,同时“degree of surprise”也更大。我们不妨换一个角度,也可以把信息量看作此次采样对于我们认识真实分布 p p p的帮助程度(或有用程度),采到概率越小的点,越有助于我们认识整体分布。
由上直觉可知 h ( x i ) h(x_i) h(xi)必须得是 p i p_i pi的单调减函数。另一方面对于两个独立事件 x , y x,y x,y,他们总的信息量 h ( x , y ) h(x,y) h(x,y)应当是各自信息量之和 h ( x ) + h ( y ) h(x)+h(y) h(x)+h(y),而总的概率 P r ( x , y ) Pr(x,y) Pr(x,y)应当是各自概率之积 P r ( x ) P r ( y ) Pr(x)Pr(y) Pr(x)Pr(y),所以很自然有了定义: h ( x ) = − l o g 2 P r ( x ) h(x)=-log_2Pr(x) h(x)=log2Pr(x)这里底数的选择比较灵活,如果以2为底,则信息量的单位是bit;如果以 e e e为底,单位则是nat。 h ( x ) h(x) h(x)也正好具有非负的特性。

离散随机变量的平均信息量——熵

信息量描述的对象是一次采样样本,推广到统计意义上,便有了平均信息量的概念——随机变量 X X X的熵:
H [ X ] = − ∑ x P r ( x ) l o g 2 P r ( x ) = − ∑ i p i l o g 2 p i H[X]=-\sum_xPr(x)log_2Pr(x)=-\sum_ip_ilog_2p_i H[X]=xPr(x)log2Pr(x)=ipilog2pi
其中,由洛必答法则, l i m p i → 0 ∑ i p i l o g 2 p i = 0 lim_{p_i\rarr0}\sum_ip_ilog_2p_i=0 limpi0ipilog2pi=0
PRML中给了个例子:对于一个包含8状态 { a , b , c , d , e , f , g , h } \{a,b,c,d,e,f,g,h\} {a,b,c,d,e,f,g,h}的随机变量,出现概率分别是 { 1 2 , 1 4 , 1 8 , 1 16 , 1 64 , 1 64 , 1 64 , 1 64 , } \{\dfrac{1}{2},\dfrac{1}{4},\dfrac{1}{8},\dfrac{1}{16},\dfrac{1}{64},\dfrac{1}{64},\dfrac{1}{64},\dfrac{1}{64},\} {21,41,81,161,641,641,641,641,},其熵是2bits。另一方面,通过霍夫曼编码得到的 { 1 , 01 , 001 , 0001 , 000011 , 000010 , 000001 , 000000 } \{1,01,001,0001,000011,000010,000001,000000\} {1,01,001,0001,000011,000010,000001,000000},其加权平均的编码长度正好是2bits:)事实上香侬证明过了,熵是传输一个随机变量状态所需的的比特位的下界。
还有一个结论是,随机变量的分布越均匀,其熵就越大;随机变量的分布越集中在某个状态,其熵就越小。直观理解,分布越集中,混乱程度越小、平均信息量越小,熵自然也就越小。从数学的角度,拉格朗日乘子法也可以求解这个最优化问题:(为了易于计算,以下取底数为 e e e
H = − ∑ i p i l n p i + λ ( ∑ i p i − 1 ) H=-\sum_ip_ilnp_i+\lambda(\sum_ip_i-1) H=ipilnpi+λ(ipi1)
∂ H ∂ p i = − l n p i − 1 + λ \dfrac{\partial H}{\partial p_i}=-lnp_i-1+\lambda piH=lnpi1+λ
令上式等于0, p i = e λ − 1 p_i=e^{\lambda-1} pi=eλ1是与 i i i无关的常数,则 p i = 1 M p_i=\dfrac{1}{M} pi=M1,其中 M M M为状态总数。带入求解Hessen矩阵:
∂ 2 H ∂ p i ∂ p j = − I i j 1 p i \dfrac{\partial^2H}{\partial p_i\partial p_j}=-I_{ij}\dfrac{1}{p_i} pipj2H=Iijpi1
负定,确实是最大值。

连续随机变量的熵——微分熵

这里首先要确保我们对微积分有一点分析学上的认识(这里的图不错),然后当 p ( x ) p(x) p(x)连续,以宽度 Δ \Delta Δ划分定义域,则 ∃ x i ∈ [ i Δ , ( i + 1 ) Δ ] , ∫ i Δ ( i + 1 ) Δ p ( x ) d x = p ( x i ) Δ \exist x_i\in[i\Delta,(i+1)\Delta],\ \int_{i\Delta}^{(i+1)\Delta}p(x)dx=p(x_i)\Delta xi[iΔ,(i+1)Δ], iΔ(i+1)Δp(x)dx=p(xi)Δ
所以用上面的 x i x_i xi等效区间 [ i Δ , ( i + 1 ) Δ ] [i\Delta,(i+1)\Delta] [iΔ,(i+1)Δ]内的所有 x x x(如果看了上面的链接还不明白为什么能等效的话,不妨看看微积分或数学分析教材中关于微分和积分的内容),则采样到 x i x_i xi的概率是 p ( x i ) Δ p(x_i)\Delta p(xi)Δ(=矩形面积=长 × \times ×宽),这样我们把连续变量离散化,并用离散变量的处理方法求熵
H Δ = − ∑ i p ( x i ) Δ l n ( p ( x i ) Δ ) = − ∑ i p ( x i ) Δ l n ( p ( x i ) ) − l n Δ H_\Delta=-\sum_ip(x_i)\Delta ln(p(x_i)\Delta)=-\sum_ip(x_i)\Delta ln(p(x_i))-ln\Delta HΔ=ip(xi)Δln(p(xi)Δ)=ip(xi)Δln(p(xi))lnΔ
忽略其中第二项 − l n Δ -ln\Delta lnΔ,然后求极限 Δ → 0 \Delta\rarr0 Δ0,则根据微积分的定义 lim ⁡ Δ → 0 ∑ i p ( x i ) Δ l n ( p ( x i ) ) = − ∫ p ( x ) l n p ( x ) d x \lim_{\Delta\rarr0}\sum_ip(x_i)\Delta ln(p(x_i))=-\int p(x)lnp(x)dx Δ0limip(xi)Δln(p(xi))=p(x)lnp(x)dx
我们把等号右边的部分称做连续变量的微分熵,其和离散变量的熵相差 − l n Δ -ln\Delta lnΔ。这一发散项说明:要全面获取一个连续随机变量的信息,需要大量的比特位。
同样可以由拉格朗日乘数法求得 X X X服从高斯分布时微分熵有最大值 1 2 [ 1 + l n ( 2 π σ 2 ) ] \dfrac{1}{2}[1+ln(2\pi\sigma^2)] 21[1+ln(2πσ2)],这个值是可以取负的。

条件熵

假设我们有联合分布 p ( x , y ) p(x,y) p(x,y),我们从中采样得到 ( x , y ) (x,y) (x,y),则边缘分布 p ( x ) = ∫ p ( x , y ) d y p(x)=\int p(x,y)dy p(x)=p(x,y)dy
已知 x x x时,y所增加的额外信息量即 − l n p ( y ∣ x ) -lnp(y|x) lnp(yx),在概率分布下的平均信息量即条件熵

H [ Y ∣ X ] = ∫ p ( x ) H [ Y ∣ X = x ] d x H[Y|X]=\int p(x)H[Y|X=x]dx H[YX]=p(x)H[YX=x]dx
= − ∫ p ( x ) ∫ p ( y ∣ x ) l n p ( y ∣ x ) d y d x =-\int p(x)\int p(y|x)lnp(y|x)dydx =p(x)p(yx)lnp(yx)dydx
= − ∫ ∫ p ( x ) p ( y ∣ x ) l n p ( y ∣ x ) d x d y =-\int\int p(x)p(y|x)lnp(y|x)dxdy =p(x)p(yx)lnp(yx)dxdy
− ∫ ∫ p ( x , y ) l n p ( y ∣ x ) d x d y -\int\int p(x,y)lnp(y|x)dxdy p(x,y)lnp(yx)dxdy
描述了在已知随机变量 X X X的条件下随机变量 Y Y Y的不确定性。
容易知道, H [ X , Y ] = H [ Y ∣ X ] + H [ X ] H[X,Y]=H[Y|X]+H[X] H[X,Y]=H[YX]+H[X]

相对熵(KL散度)

下面要把上面的概念拓展到模式识别领域去。假设我们要对一个真实分布 p ( x ) p(x) p(x)建模,获得了 q ( x ) q(x) q(x),这时所携带的学信息量即为交叉熵。由上文可知, q ( x ) q(x) q(x)必然携带了比 p ( x ) p(x) p(x)更加多的信息量(因为 p ( x ) p(x) p(x)是最优的),这个多出来的信息量即相对熵(KL散度、KL距离):
K L ( p ∣ ∣ q ) = H ( p , q ) − H ( p ) KL(p||q)=H(p,q)-H(p) KL(pq)=H(p,q)H(p)
= ∫ p ( x ) l n 1 q ( x ) d x − ( ∫ p ( x ) l n 1 p ( x ) d x ) =\int p(x)ln\dfrac{1}{q(x)}dx-(\int p(x)ln\dfrac{1}{p(x)}dx) =p(x)lnq(x)1dx(p(x)lnp(x)1dx)
= ∫ p ( x ) l n p ( x ) q ( x ) d x =\int p(x)ln\dfrac{p(x)}{q(x)}dx =p(x)lnq(x)p(x)dx
由上面的定义可知,这里没有交换律: K L ( p ∣ ∣ q ) ≠ K L ( q ∣ ∣ p ) KL(p||q)\neq KL(q||p) KL(pq)̸=KL(qp)

这篇关于PRML1.6 信息论简介的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/849139

相关文章

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

业务协同平台--简介

一、使用场景         1.多个系统统一在业务协同平台定义协同策略,由业务协同平台代替人工完成一系列的单据录入         2.同时业务协同平台将执行任务推送给pda、pad等执行终端,通知各人员、设备进行作业执行         3.作业过程中,可设置完成时间预警、作业节点通知,时刻了解作业进程         4.做完再给你做过程分析,给出优化建议         就问你这一套下

容器编排平台Kubernetes简介

目录 什么是K8s 为什么需要K8s 什么是容器(Contianer) K8s能做什么? K8s的架构原理  控制平面(Control plane)         kube-apiserver         etcd         kube-scheduler         kube-controller-manager         cloud-controlle

【Tools】AutoML简介

摇来摇去摇碎点点的金黄 伸手牵来一片梦的霞光 南方的小巷推开多情的门窗 年轻和我们歌唱 摇来摇去摇着温柔的阳光 轻轻托起一件梦的衣裳 古老的都市每天都改变模样                      🎵 方芳《摇太阳》 AutoML(自动机器学习)是一种使用机器学习技术来自动化机器学习任务的方法。在大模型中的AutoML是指在大型数据集上使用自动化机器学习技术进行模型训练和优化。

SaaS、PaaS、IaaS简介

云计算、云服务、云平台……现在“云”已成了一个家喻户晓的概念,但PaaS, IaaS 和SaaS的区别估计还没有那么多的人分得清,下面就分别向大家普及一下它们的基本概念: SaaS 软件即服务 SaaS是Software-as-a-Service的简称,意思是软件即服务。随着互联网技术的发展和应用软件的成熟, 在21世纪开始兴起的一种完全创新的软件应用模式。 它是一种通过Internet提供

LIBSVM简介

LIBSVM简介 支持向量机所涉及到的数学知识对一般的化学研究者来说是比较难的,自己编程实现该算法难度就更大了。但是现在的网络资源非常发达,而且国际上的科学研究者把他们的研究成果已经放在网络上,免费提供给用于研究目的,这样方便大多数的研究者,不必要花费大量的时间理解SVM算法的深奥数学原理和计算机程序设计。目前有关SVM计算的相关软件有很多,如LIBSVM、mySVM、SVMLight等,这些

urllib与requests爬虫简介

urllib与requests爬虫简介 – 潘登同学的爬虫笔记 文章目录 urllib与requests爬虫简介 -- 潘登同学的爬虫笔记第一个爬虫程序 urllib的基本使用Request对象的使用urllib发送get请求实战-喜马拉雅网站 urllib发送post请求 动态页面获取数据请求 SSL证书验证伪装自己的爬虫-请求头 urllib的底层原理伪装自己的爬虫-设置代理爬虫coo

新一代车载(E/E)架构下的中央计算载体---HPC软件架构简介

老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节能减排。 无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事.而不是让内心的烦躁、焦虑、毁掉你本就不多的热情和定力。 时间不知不觉中,快要来到夏末秋初。一年又过去了一大半,成

AI学习指南深度学习篇-带动量的随机梯度下降法简介

AI学习指南深度学习篇 - 带动量的随机梯度下降法简介 引言 在深度学习的广阔领域中,优化算法扮演着至关重要的角色。它们不仅决定了模型训练的效率,还直接影响到模型的最终表现之一。随着神经网络模型的不断深化和复杂化,传统的优化算法在许多领域逐渐暴露出其不足之处。带动量的随机梯度下降法(Momentum SGD)应运而生,并被广泛应用于各类深度学习模型中。 在本篇文章中,我们将深入探讨带动量的随

OpenGL ES学习总结:基础知识简介

什么是OpenGL ES? OpenGL ES (为OpenGL for Embedded System的缩写) 为适用于嵌入式系统的一个免费二维和三维图形库。 为桌面版本OpenGL 的一个子集。 OpenGL ES管道(Pipeline) OpenGL ES 1.x 的工序是固定的,称为Fix-Function Pipeline,可以想象一个带有很多控制开关的机器,尽管加工