计算信息熵及其互信息

合集下载

python信息熵和互信息计算

python信息熵和互信息计算

python信息熵和互信息计算信息熵和互信息是信息论中的两个重要概念,用于度量信息的不确定性和相关性。

在Python中,我们可以使用熵和互信息来分析和处理数据。

下面我们将介绍如何使用Python计算信息熵和互信息。

首先,我们需要导入Python中的相关库:import numpy as npfrom scipy.special import digamma接下来,我们将介绍如何计算信息熵。

假设我们有一个离散随机变量X,其取值概率分布为p=(p(x1),p(x2),p(xn)),则X的信息熵定义为:H(X)=−∑i=1np(xi)log⁡2p(xi)H(X) = -\sum_{i=1}^{n} p(x_i) \log_2p(x_i)H(X)=−∑i=1n p(xi)log2p(xi)其中log⁡2\log_2 log2表示以2为底的对数。

在Python中,我们可以使用以下代码计算信息熵:def entropy(p):"""计算信息熵参数:p:概率分布返回:信息熵"""return -np.sum(p * np.log2(p))接下来,我们将介绍如何计算互信息。

假设我们有两个随机变量X和Y,它们的联合概率分布为p(x,y),则X和Y的互信息定义为:I(X;Y)=H(X)+H(Y)−H(X,Y)I(X; Y) = H(X) + H(Y) - H(X,Y)I(X;Y)=H(X)+H(Y)−H(X,Y)其中H(X),H(Y),H(X,Y)H(X), H(Y), H(X,Y)H(X),H(Y),H(X,Y)分别为X的信息熵、Y的信息熵和X、Y的联合信息熵。

在Python中,我们可以使用以下代码计算互信息:def mutual_info(p):"""计算互信息参数:p:联合概率分布返回:互信息"""px = np.sum(p, axis=1)py = np.sum(p, axis=0)pxy = pHx = entropy(px)Hy = entropy(py)Hxy = entropy(pxy)return Hx + Hy - Hxy在使用以上代码时,需要将联合概率分布传递给mutual_info函数,以便计算互信息。

互信息(MutualInformation),信息量,相对熵(KL散度),交叉熵,JS散度,互信息

互信息(MutualInformation),信息量,相对熵(KL散度),交叉熵,JS散度,互信息

互信息(MutualInformation),信息量,相对熵(KL散度),交叉熵,JS散度,互信息互信息是信息论中⽤以评价两个随机变量之间的依赖程度的⼀个度量。

举个例⼦:x=今天下⾬与y=今天阴天,显然在已知y的情况下, 发⽣x的概率会更⼤在讨论互信息之前需要简单的了解⼀下信息论⼀些基础的相关概念。

信息量:是对某个事件发⽣或者变量出现的概率的度量,⼀般⼀个事件发⽣的概率越低,则这个事件包含的信息量越⼤,这跟我们直观上的认知也是吻合的,越稀奇新闻包含的信息量越⼤,因为这种新闻出现的概率低。

⾹农提出了⼀个定量衡量信息量的公式: [公式]熵(entropy):是衡量⼀个系统的稳定程度。

其实就是⼀个系统所有变量信息量的期望或者说均值。

单位:当log底数为2时,单位为⽐特;但也⽤Sh、nat、Hart计量,取决于定义⽤到对数的底。

公式(离散变量): [公式]当⼀个系统越不稳定,或者事件发⽣的不确定性越⾼,它的熵就越⾼。

以投硬币为例,正⾯的概率为,反⾯的概率则为,那么这个系统的熵就是显然易得,当时,的取值最⼤,也就印证了事件发⽣的不确定性越⾼,它的熵就越⾼。

对于连续变量,可以理解成它的概率密度函数,此时公式应该为:[公式]联合熵(joint entropy): 多个联合变量的熵,也就是将熵的定义推⼴到多变量的范围。

[公式]条件熵(conditional entropy):⼀个随机变量在给定的情况下,系统的熵。

[公式]不难看出,条件熵就是假设在给定⼀个变量下,该系统信息量的期望相对熵(relative entropy):也被称作KL散度(Kullback–Leibler divergence)。

当我们获得了⼀个变量的概率分布时,⼀般我们会找⼀种近似且简单的分布来代替,例如:简书 - 如何理解K-L散度(相对熵)。

相对熵就是⽤来衡量着两个分布对于同⼀个变量的差异情况。

[公式]其中是观察到的变量分布,q是我们找到的⼀个尽量分布。

信息熵互信息

信息熵互信息

信息熵互信息
信息熵和互信息是信息论中两个重要的概念。

1.信息熵是衡量随机变量不确定性的度量。

信息熵越高,随机变量不确定性越
大。

2.互信息是衡量两个随机变量相关性的度量。

互信息越大,两个随机变量相关
性越大。

信息熵和互信息的关系可以用以下公式表示:I(X;Y)=H(X)-H(X|Y)
其中
●I(X;Y)是随机变量X和Y的互信息。

●H(X)是随机变量X的信息熵。

●H(X∣Y)是随机变量X的条件信息熵,给定随机变量Y。

该公式表明,互信息等于随机变量X的信息熵减去随机变量X的条件信息熵。

换句话说,互信息衡量的是随机变量X的信息熵中,不能通过随机变量Y来解释的那部分。

信息熵和互信息在许多领域都有应用,例如数据压缩、机器学习和信息检索。

以下是一些信息熵和互信息的应用示例:
●数据压缩:可以使用信息熵来衡量数据中的冗余程度。

冗余越大,数据压缩
的空间越大。

●机器学习:可以使用互信息来衡量特征之间的相关性。

相关性越大,特征越
有可能一起出现。

●信息检索:可以使用互信息来衡量文档之间的相关性。

相关性越大,文档越
有可能包含相同的信息。

信息论举例讲解信息量熵及互信息量

信息论举例讲解信息量熵及互信息量

计算机科学领域的应用
数据压缩
计算机科学中的数据压缩技术同样基于信息论的原理,通 过去除数据中的冗余信息,实现数据的压缩存储和传输。
加密与安全
信息论在密码学和安全领域也有广泛应用,如利用信息论中的 混淆和扩散原则设计加密算法,保护信息的机密性和完整性。
机器学习
在机器学习中,信息论用于特征选择、模型评估等方面。例如 ,利用互信息来衡量特征与目标变量之间的相关性,从而进行
熵的性质
非负性
熵的值总是非负的,表示系统的不确定性或混乱程度不可能为负值。
可加性
对于相互独立的事件或系统,其熵的和等于各事件或系统熵的和, 表示不确定性或混乱程度可以叠加计算。
最大值性
当系统中各个事件发生的概率相等时,该系统的熵达到最大值,表 示此时系统的不确定性或混乱程度最高。
熵的计算举例
二进制信源熵的计算
举例1
对于离散随机变量 X 和 Y,其联合概率分布为 p(x,y)=[0.1, 0.2, 0.3, 0.4],边缘概率分布为 p(x)=[0.3, 0.7] 和 p(y)=[0.5, 0.5]。根据互信息量的定义公式,可以计算出 I(X;Y)=0.1979。
举例2
对于连续随机变量 X 和 Y,其联合概率密度函数为 f(x,y),边缘概率密度函数为 fX(x) 和 fY(y)。可以通过 数值积分的方法计算出互信息量。例如,对于正态分布 N(0,1) 和 N(0,2) 的随机变量 X 和 Y,其互信息量 为 I(X;Y)=0.5×log⁡2≈0.3466。
要点一
目的
通过举例讲解信息量、熵和互信息量的概念,使读者更好 地理解和掌握这些概念。
要点二
意义
信息量、熵和互信息量是信息论中的基本概念,对于理解 和应用信息论具有重要意义。通过本次讲解,读者可以更 加深入地了解这些概念,并能够在实际问题中加以应用。 同时,这些概念在其他领域也有广泛的应用,如计算机科 学、控制论、统计学等,因此本次讲解也有助于读者在其 他领域中更好地应用信息论的知识。

信息论基础1~8

信息论基础1~8

信息论基础1~81 绪论与概览2 熵相对熵与互信息2.1 熵H(X)=−∑x∈X p(x)logp(x)H(X)=−∑x∈Xp(x)log⁡p(x)2.2 联合熵H(X,Y)=−∑x∈X∑y∈Y p(x,y)logp(x,y)H(X,Y)=−∑x∈X∑y∈Yp(x,y)log⁡p(x,y)H(Y|X)=∑x∈X p(x)H(Y|X=x)H(Y|X)=∑x∈Xp(x)H(Y|X=x)定理2.2.1(链式法则): H(X,Y)=H(X)+H(Y|X)H(X,Y)=H(X)+H(Y|X) 2.3 相对熵与互信息相对熵(relative entropy): D(p||q)=∑x∈X p(x)logp(x)q(x)=Eplogp(x)q(x)D(p||q)=∑x∈Xp(x)lo g⁡p(x)q(x)=Eplog⁡p(x)q(x)互信息(mutual information): I(X;Y)=∑x∈X∑y∈Y p(x,y)logp(x,y)p(x)p(y)=D(p(x,y)||p(x)p(y))I(X;Y) =∑x∈X∑y∈Yp(x,y)log⁡p(x,y)p(x)p(y)=D(p(x,y)||p(x)p(y))2.4 熵与互信息的关系I(X;Y)=H(X)−H(X|Y)=H(Y)−H(Y|X)I(X;Y)=H(X)−H(X|Y)=H(Y)−H(Y|X)互信息I(X;Y)是在给定Y知识的条件下X的不确定度的缩减量I(X;Y)=H(X)+H(Y)−H(X,Y)I(X;Y)=H(X)+H(Y)−H(X,Y)2.5 熵,相对熵与互信息的链式法则定理 2.5.1(熵的链式法则): H(X1,X2,...,X n)=∑ni=1H(Xi|X i−1,...,X1)H(X1,X2,...,Xn)=∑i=1nH(Xi| Xi−1, (X1)定理 2.5.2(互信息的链式法则): I(X1,X2,...,X n;Y)=∑ni=1I(Xi;Y|X i−1,...,X1)I(X1,X2,...,Xn;Y)=∑i=1nI(Xi ;Y|Xi−1, (X1)条件相对熵: D(p(y|x)||q(y|x))=∑x p(x)∑yp(y|x)logp(y|x)q(y|x)=Ep(x,y)logp(Y|X)q( Y|X)D(p(y|x)||q(y|x))=∑xp(x)∑yp(y|x)log⁡p(y|x)q(y|x)=Ep(x,y)log⁡p (Y|X)q(Y|X)定理 2.5.3(相对熵的链式法则): D(p(x,y)||q(x,y))=D(p(x)||q(x))+D(p(y|x)||q(y|x))D(p(x,y)||q(x,y))=D( p(x)||q(x))+D(p(y|x)||q(y|x))2.6 Jensen不等式及其结果定理2.6.2(Jensen不等式): 若给定凸函数f和一个随机变量X,则Ef(X)≥f(EX)Ef(X)≥f(EX)定理2.6.3(信息不等式): D(p||q)≥0D(p||q)≥0推论(互信息的非负性): I(X;Y)≥0I(X;Y)≥0定理2.6.4: H(X)≤log|X|H(X)≤log⁡|X|定理2.6.5(条件作用使熵减小): H(X|Y)≤H(X)H(X|Y)≤H(X)从直观上讲,此定理说明知道另一随机变量Y的信息只会降低X的不确定度. 注意这仅对平均意义成立. 具体来说, H(X|Y=y)H(X|Y=y) 可能比H(X)H(X)大或者小,或者两者相等.定理 2.6.6(熵的独立界): H(X1,X2,…,X n)≤∑ni=1H(Xi)H(X1,X2,…,Xn)≤∑i=1nH(Xi)2.7 对数和不等式及其应用定理 2.7.1(对数和不等式): ∑ni=1ailogaibi≥(∑ni=1ai)log∑ni=1ai∑ni=1bi∑i=1nailog⁡aibi≥(∑i =1nai)log⁡∑i=1nai∑i=1nbi定理2.7.2(相对熵的凸性): D(p||q)D(p||q) 关于对(p,q)是凸的定理2.7.3(熵的凹性): H(p)是关于p的凹函数2.8 数据处理不等式2.9 充分统计量这节很有意思,利用统计量代替原有抽样,并且不损失信息.2.10 费诺不等式定理2.10.1(费诺不等式): 对任何满足X→Y→X^,X→Y→X^, 设Pe=Pr{X≠X^},Pe=Pr{X≠X^}, 有H(Pe)+Pe log|X|≥H(X|X^)≥H(X|Y)H(Pe)+Pelog⁡|X|≥H(X|X^)≥H(X|Y)上述不等式可以减弱为1+Pe log|X|≥H(X|Y)1+Pelog⁡|X|≥H(X|Y)或Pe≥H(X|Y)−1log|X|Pe≥H(X|Y)−1log⁡|X|引理 2.10.1: 如果X和X’独立同分布,具有熵H(X),则Pr(X=X′)≥2−H(X)Pr(X=X′)≥2−H(X)3 渐进均分性4 随机过程的熵率4.1 马尔科夫链4.2 熵率4.3 例子:加权图上随机游动的熵率4.4 热力学第二定律4.5 马尔科夫链的函数H(Yn|Y n−1,…,Y1,X1)≤H(Y)≤H(Y n|Y n−1,…,Y1)H(Yn|Yn−1,…,Y1,X1)≤H(Y)≤H(Yn|Yn−1,…,Y1)5 数据压缩5.1 有关编码的几个例子5.2 Kraft不等式定理5.2.1(Kraft不等式): 对于D元字母表上的即时码,码字长度l1,l2,…,l m l1,l2,…,lm必定满足不等式∑iD−li≤1∑iD−li≤15.3 最优码l∗i=−log Dpili∗=−logD⁡pi5.4 最优码长的界5.5 唯一可译码的Kraft不等式5.6 赫夫曼码5.7 有关赫夫曼码的评论5.8 赫夫曼码的最优性5.9 Shannon-Fano-Elias编码5.10 香农码的竞争最优性5.11由均匀硬币投掷生成离散分布6 博弈与数据压缩6.1 赛马6.2 博弈与边信息6.3 相依的赛马及其熵率6.4 英文的熵6.5 数据压缩与博弈6.6 英语的熵的博弈估计7 信道容量离散信道: C=maxp(x)I(X;Y)C=maxp(x)I(X;Y)7.1 信道容量的几个例子7.2 对称信道如果信道转移矩阵p(y|x)p(y|x) 的任何两行相互置换,任何两列也相互置换,那么称该信道是对称的.7.3 信道容量的性质7.4 信道编码定理预览7.5 定义7.6 联合典型序列7.7 信道编码定理7.8 零误差码7.9 费诺不等式与编码定理的逆定理7.10 信道编码定理的逆定理中的等式7.11 汉明码7.12 反馈容量7.13 信源信道分离定理8 微分熵8.1 定义h(X)=−∫Sf(x)logf(x)dxh(X)=−∫Sf(x)log⁡f(x)dx均匀分布 h(X)=logah(X)=log⁡a正态分布h(X)=1/2log2πeδ2h(X)=1/2log⁡2πeδ2 8.2 连续随机变量的AEP8.3 微分熵与离散熵的关系8.4 联合微分熵与条件微分熵8.5 相对熵与互信息8.6 微分熵, 相对熵以及互信息的性质。

互信息和信息熵

互信息和信息熵

互信息与信息熵的区别
01
互信息只衡量两个随机变量之间的相关性,而信息 熵则衡量单个随机变量的不确定性。
02
互信息可以是负值,表示两个随机变量之间的负相 关性;而信息熵总是非负的。
03
互信息的计算需要考虑联合概率分布,而信息熵的 计算只需要单个随机变量的概率分布。
互信息与信息熵的应用场景
互信息可以应用于信号处理、模式识 别、机器学习等领域,例如在特征选 择和降维中用于衡量特征之间的相关 性。
机器学习中信息熵的运用
分类问题
在分类问题中,信息熵可以用于构建决策边界,通过最大化类别信息熵来提高分类器的 泛化能力。
聚类分析
信息熵在聚类分析中可以用于衡量聚类结果的纯度,通过最小化簇内信息熵来实现更有 效的聚类。
互信息和信息熵在机器学习中的优劣比较
互信息的优点
能够衡量特征间的相关性,有助于特征选择和降维;能够发现非线性 关系,适用于非高斯分布的数据。
互信息的缺点
计算量大,尤其是当特征维度较高时;无法处理连续型特征;可能受 到异常值和噪声的影响。
信息熵的优点
能够度量数据的混乱程度,适用于分类和聚类问题;能够处理连续型 特征。
信息熵的缺点
对数据的分布敏感,对于非高斯分布的数据可能表现不佳;在处理不 平衡数据集时可能会受到较大影响。
06
互信息和信息熵在通信系统 中的应用
在不确定性较大的数据中效果较差。
互信息和信息熵在数据压缩中各有优劣,实际应用中 可以根据具体情况选择使用。
05
互信息和信息熵在机器学习 中的应用
机器学习中互信息的运用
特征选择
互信息可以用于特征选择,衡量特征与目标变量之间的关联程度,帮助去除无关或冗余特征,从而提高模型的性 能。

互信息和信息熵

通信工程本科专业课程
信息论与编码原理
Information Theory and Encoding
主 讲: 肖 竹
老 师
第二讲 Part II

互信息 信息熵

复习
xi的自信息量 非负 单调减 可加 不确定性 (提供的信息量)
收到某消息获得的信息量(即收到某消息后获得关于某事件发生的信息量) =不确定性减少的量=(收到此消息前关于某事件发生的不确定性) - (收到此消息后关于某事件发生的不确定性)
互信息量:
结合图示讲解通信模型,信源发出消息 xi 的概率p(xi) 称为先验概率,信宿收 到yi。利用收到yi推测信源发出xi的概率称为后验概率,有时也称条件概率。
思考:事件xi是否发生具有不确定性,可用自信息I(xi)度量。
在收到符号后,事件是否仍具有一定的不确定性,用条件信息量I (yi|xi)度量。 相当于进行了通信。
I(x) 是概率空间(X,P)上的一个随机变量
I x I x1 I x2 I x3 ... ... I xK P( x) P( x1 ) P( x2 ) P( x3 ) ... ... P( xK )
互信息量和条件互信息量
熵的计算: 有一布袋内放l00个球,其中80个球是红色的, 20个球是白色的。随便摸出一个球,猜测是什么颜 色,那么其概率空间为: X a1 a2 P( X ) 0.8 0.2
如果被告知摸出的是红球,那么获得的信息量是:
I (a1) =-log p(a1) =-log0.8= 0.32 (比特)
复习xi的自信息量非负单调减可加不确定性提供的信息量收到某消息获得的信息量即收到某消息后获得关于某事件发生的信息量不确定性减少的量收到此消息前关于某事件发生的不确定性收到此消息后关于某事件发生的不确定性条件自信息量联合自信量ix是概率空间xp上的一个随机变量1loglogiirriiixfpxpxpx??????????????123123

《熵和互信息量 》课件

通过熵和互信息量的结合,可以更好地理解随机变量之间的复杂关系,并进一步探 索信息几何学的深层结构。
THANKS
决策优化
互信息量可以用于决策优化,通过分析不同 决策之间的互信息量,可以找到最优的决策
方案。
机器学习与深度学习
数据表示
熵和互信息量可以用于数据表示,将数据转换为更有意 义的特征表示,从而提高机器学习模型的性能。
模型优化
熵和互信息量可以用于模型优化,通过分析模型参数的 熵和互信息量,可以找到最优的模型参数配置,提高模 型的泛化能力。
06 熵和互信息量的关系与区别
熵和互信息量的关系
01
熵是系统不确定性的度量,表示系统内部信息的平 均量。
02
互信息量用于衡量两个随机变量之间的相互依赖程 度。
03
当两个随机变量独立时,互信息量为零;当两个随 机变量完全相关时,互信息量达到最大值。
熵和互信息量的区别
01
熵是对整个系统不确定性的度 量,而互信息量是衡量两个随 机变量之间的相互依赖程度。
05 熵和互信息量的应用场景
信息压缩与编码
信息压缩
熵是衡量数据不确定性的度量,可用于信息压缩。通过去除 冗余信息,将数据压缩到更小的空间,从而提高存储和传输 效率。
数据编码
互信息量可以用于数据编码,通过对数据进行分类和编码, 降低数据的熵,从而实现更有效的数据传输和存储。
决策理论
风险评估
熵可以用于风险评估,衡量决策的不确定性 和风险。通过计算不同决策方案的熵值,可 以评估方案的优劣和风险大小。
VS
熵的单位
熵的单位是比特(bit),这是因为log2 p(x)是以2为底的对数函数,其单位是比 特。
熵的物理意义

mrmr算法中的互信息差和互信息熵

mrmr算法中的互信息差和互信息熵哎呀,你们这些小可爱,让我来给你们聊聊mrmr算法中的互信息差和互信息熵吧!别看这东西有点儿高深,其实咱们日常生活中也能用得上哦。

那我就先从什么是互信息开始说起吧。

互信息,简单来说,就是两个随机变量之间关系的度量。

它反映了两个变量之间的相关性。

互信息的值越大,说明两个变量之间的关系越密切;反之,互信息的值越小,说明两个变量之间的关系越疏远。

这个概念听起来有点儿抽象,咱们举个例子说吧。

想象一下,你和你的朋友正在玩游戏。

你的朋友告诉你他喜欢什么颜色,而你告诉他你喜欢什么颜色。

这时候,你们两个人喜欢的的颜色就构成了一个随机变量。

那么,你们之间的互信息就反映了你们喜欢的这两种颜色之间的关联程度。

如果你们都喜欢蓝色,那么互信息的值就会很大;如果你们一个喜欢蓝色一个喜欢红色,那么互信息的值就会很小。

好了,现在我们来说说互信息差。

互信息差是指两个随机变量之间的互信息的差值。

换句话说,它反映了两个变量之间的相关性的强度。

互信息差的值越大,说明两个变量之间的关系越强烈;反之,互信息差的值越小,说明两个变量之间的关系越弱。

咱们再举个例子吧。

假设你和你的朋友正在商量去哪里吃饭。

你的朋友说他喜欢吃辣的,而你说你不喜欢吃辣的。

这时候,你们两个人对口味的喜好就构成了一个随机变量。

那么,你们之间的互信息差就反映了你们对口味喜好之间的差异程度。

如果你们都喜欢吃辣的,那么互信息差的值就会很大;如果你们一个喜欢吃辣一个喜欢吃甜的,那么互信息差的值就会很小。

接下来,我们来说说互信息熵。

互信息熵是指在给定随机变量的情况下,随机变量之间互信息的分布的混乱程度。

换句话说,它反映了随机变量之间关系的复杂程度。

互信息熵的值越大,说明随机变量之间的关系越复杂;反之,互信息熵的值越小,说明随机变量之间的关系越简单。

咱们再来举个例子吧。

假设你和你的朋友正在聊天。

你的朋友告诉你他的兴趣爱好有足球、篮球和乒乓球。

这时候,你们两个人的兴趣爱好就构成了一个随机变量。

第4讲连续信源的熵与互信息量

表明,两个高斯变量之间的互信息只与相关系数有关,而与数学期望及方差 和无关。
类似可得, 1 2 2 Hc( XY ) log 2 ( 1 ) log 2e y x 2
例:设原连续随机变量X是数学期望为m,方差为 2 的正态随机变量,经一个放大倍数为k的放大器放大 输出为Y,求Y的相对熵。
R2
连续信源的互信息
定义:连续随机变量的平均互信息量为
p( x, y) I ( X ; Y ) p( x, y) log dxdy q( x) w( y) R2 I ( X ;Y ) Hc ( X ) Hc ( X / Y )
连续随机变量的联合熵、条件熵和互信息之间关系
H c ( XY ) H c ( X ) H c (Y / X ) H c ( XY ) H c (Y ) H c ( X / Y ) I ( X ;Y ) H c ( X ) H c ( X / Y ) I ( X ; Y ) H c (Y ) H c (Y / X ) I ( X ; Y ) H c ( X ) H c (Y ) H c ( XY )
1
( y my )2 p XY ( xy)dxdy 2 2 2 2 (1 ) y x y 2 1 1 1 2 1 ln(1 2 ) 1 1 2 2 1 2 1 2 1 2 1 ln(1 2 ) 奈特 2 ( y my )2 ( x mx ) 2
它的值视 2 的大小可正、可负或零,且与数学期望无关。
连续熵实例
• 均匀分布的连续信源的熵: 仅与区域的边界有关
一维均匀分布 : Hc ( X ) ln(b a)
N 维均匀分布 : H c (X) ln (bi ai ) ln(bi ai )
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

信息论
实验一计算信息熵及其互信息
实验者:王国星
班级:09030701
学号:**********
2009年10月20日
实验一计算信息熵及其互信息一.实验目的
1.理解信源的概念。

2.了解如何获得信息。

3.学会计算信息熵。

4.学会计算两个信息的互信息。

二.实验原理
1.信息论是运用概率论与数理统计的方法研究信息、信息熵、通信系统、数据传输、密码学、数据压缩等问题的应用数学学科。

信息论将信息的传递作为一种统计现象来考虑,给出了估算通信信道容量的方法。

信息传输和信息压缩是信息论研究中的两大领域。

这两个方面又由信息传输定理、信源-信道隔离定理相互联系。

香农(Claude Shannon)被称为是“信息论之父”。

人们通常将香农于1948年10月发表于《贝尔系统技术学报》上的论文《A Mathe matical Theory of Communication》(通信的数学理论)作为现代信息论研究的开端。

这一文章部分基于哈里·奈奎斯特和拉尔夫·哈特利先前的成果。

在该文中,香农给出了信息熵(以下简称为“熵”)的定义:
这一定义可以用来推算传递经二进制编码后的原信息所需的信道带宽。

熵度量的是消息中所含的信息量,其中去除了由消息的固有结构
所决定的部分,比如,语言结构的冗余性以及语言中字母、词的使用频度等统计特性。

信息论中熵的概念与物理学中的热力学熵有着紧密的联系。

玻尔兹曼与吉布斯在统计物理学中对熵做了很多的工作。

信息论中的熵也正是受之启发。

互信息(Mutual Information)是另一有用的信息度量,它是指两个事件集合之间的相关性。

两个事件X和Y的互信息定义为:
I(X,Y) = H(X) + H(Y) - H(X,Y)
其中H(X,Y) 是联合熵(Joint Entropy),其定义为:
互信息与多元对数似然比检验以及皮尔森χ2校验有着密切的联系。

2. MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

它在数学类科技应用软件中在数值计算方面首屈一指。

MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

本次试验我们将利用MATLAB对图像的信息熵和互信息进行计算。

三.实验内容
1.获取有重叠部分的两张照片。

然后利用PHOTOSHOP将照片处理成灰度图像:
2.利用MATLAB计算两张照片的信息熵及其互信息:
源代码如下:
a=imread('J:\1.jpg');
b=imread('J:\2.jpg');
a=rgb2gray(a);
b=rgb2gray(b);
a=double(a);
b=double(b);
[Ma,Na] = size(a);
[Mb,Nb] = size(b);
M=min(Ma,Mb);
N=min(Na,Nb);
%初始化直方图数组
hab = zeros(256,256);
ha = zeros(1,256);
hb = zeros(1,256);
%归一化
if max(max(a))~=min(min(a))
a = (a-min(min(a)))/(max(max(a))-min(min(a)));
else
a = zeros(M,N);
end
if max(max(b))-min(min(b))
b = (b-min(min(b)))/(max(max(b))-min(min(b)));
else
b = zeros(M,N);
end
a = double(int16(a*255))+1;
b = double(int16(b*255))+1;
%统计直方图
for i=1:M
for j=1:N
indexx = a(i,j);
indexy = b(i,j) ;
hab(indexx,indexy) = hab(indexx,indexy)+1;%联合直方图
ha(indexx) = ha(indexx)+1;%a图直方图
hb(indexy) = hb(indexy)+1;%b图直方图
end
end
%计算联合信息熵
hsum = sum(sum(hab));
index = find(hab~=0);
p = hab/hsum;
Hab = sum(sum(-p(index).*log(p(index))));
%计算a图信息熵
hsum = sum(sum(ha));
index = find(ha~=0);
p = ha/hsum;
Ha = sum(sum(-p(index).*log(p(index))));
%计算b图信息熵
hsum = sum(sum(hb));
index = find(hb~=0);
p = hb/hsum;
Hb = sum(sum(-p(index).*log(p(index))));
%计算a和b的互信息
mi = Ha+Hb-Hab;
%计算a和b的归一化互信息
mi1 = hab/(Ha+Hb);
3.用图像处理软件对两张照片进行裁剪,使它们的相同部分越来越多,直到两张照片一样。

本次实验我对照片进行了7次裁剪就使两张照片一样了。

然后再用上述源码进行7次计算。

处理后的照片:
第2组:
第3组
第4组
第6组第7组
四.实验结果
8次运行程序的结果如下表:
实验次数 1 2 3 4 5 6 7 8 Ha 5.2524 5.2396 5.2067 5.1736 5.1522 5.1084 5.0529 4.9496 Hb 5.1365 5.1183 5.1178 5.0861 5.032 4.9942 4.9496 4.9496 mi 0.8129 0.8595 0.8632 0.8986 0.9782 1.1272 1.4828 4.9496
从表中可以看出,两张照片的相同部分越多互信息的值越大。

五.实验中遇到的问题。

把用PHOTOSHOP处理后的照片进行计算时,程序报错,经过分析,发现照片的信息是3维的,原来用PHOTOSHOP对彩色照片进行‘去色’处理后的照片仍然有RGB三个通道,询问老师后,用rgb2gray 函数对照片进行灰度处理,这样程序才能正常运行。

相关文档
最新文档