信息熵(Information Entropy)

什么是熵

  熵(entropy)指的是体系的混乱的程度,它在控制论概率论数论、天体物理、生命科学等领域都有重要应用,在不同的学科中也有引申出的更为具体的定义,是各领域十分重要的参量。熵由鲁道夫·克劳修斯(Rudolf Clausius)提出,并应用在热力学中。后来在,克劳德·艾尔伍德·香农(Claude Elwood Shannon)第一次将熵的概念引入到信息论中来。

什么是信息熵

  信息熵是一个数学上颇为抽象的概念,在这里不妨把信息熵理解成某种特定信息的出现概率(离散随机事件的出现概率)。一个系统越是有序,信息熵就越低;反之,一个系统越是混乱,信息熵就越高。信息熵也可以说是系统有序化程度的一个度量。


信息熵的计算

  根据Charles H. Bennett对Maxwell's Demon的解释,对信息的销毁是一个不可逆过程,所以销毁信息是符合热力学第二定律的。而产生信息,则是为系统引入负(热力学)熵的过程。所以信息熵的符号与热力学熵应该是相反的。一般而言,当一种信息出现概率更高的时候,表明它被传播得更广泛,或者说,被引用的程度更高。我们可以认为,从信息传播的角度来看,信息熵可以表示信息的价值。这样我们就有一个衡量信息价值高低的标准,可以做出关于知识流通问题的更多推论。

  信源的平均不定度。在信息论中信源输出是随机量,因而其不定度可以用概率分布来度量。记 H(X)=H(P1,P2,…,Pn)=P(xi)logP(xi),这里P(xi),i=1,2,…,n为信源取第i个符号的概率。P(xi)=1,H(X)称为信源的信息熵。

  熵的概念来源于热力学。在热力学中熵的定义是系统可能状态数的对数值,称为热熵。它是用来表达分子状态杂乱程度的一个物理量。热力学指出,对任何已知孤立的物理系统的演化,热熵只能增加,不能减少。然而这里的信息熵则相反,它只能减少,不能增加。所以热熵和信息熵互为负量。且已证明,任何系统要获得信息必须要增加热熵来补偿,即两者在数量上是有联系的。

  可以从数学上加以证明,只要H(X)满足下列三个条件:

  ①连续性:H(P,1-P)是P的连续函数(0≤P≤1);

  ②对称性:H(P1,…,Pn)与P1,…,Pn的排列次序无关;

  ③可加性:若Pn=Q1+Q2>0,且Q1,Q2≥0,则有H(P1,…,Pn-1,Q1,Q2)=H(P1,…,Pn-1)+PnH;则一定有下列唯一表达形式:H(P1,…,Pn)=-CP(xi)logP(xi)

  其中C为正整数,一般取C=1,它是信息熵的最基本表达式。

  信息熵的单位与公式中对数的底有关。最常用的是以2为底,单位为比特(bit);在理论推导中常采用以e为底,单位为奈特(Nat);还可以采用其他的底和单位,并可进行互换。

  信息熵除了上述三条基本性质外,还具有一系列重要性质,其中最主要的有:

  ①非负性:H(P1,…,Pn)≥0;

  ②确定性:H(1,0)=H(0,1)=H(0,1,0,…)=0;

  ③扩张性:Hn-1(P1,…,Pn-ε,ε)=Hn(P1,…,Pn);

  ④极值性:P(xi)logP(xi)≤P(xi)logQ(xi);这里Q(xi)=1;

  ⑤上凸性:H[λP +(1-λ)Q]>λH(P)+(1-λ)H(Q),式中0<λ<1。

软件熵(Software entropy)

    软件熵(Software entropy)是指软件的趋向,随着时间的逝去,维护变得困难和昂贵。一个经历持续修改的软件系统,例如有新的功能添加到它的最初设计上或适合于最新的技术环境,将随着它的增长最终变得更加复杂和紊乱,失去了它的最初设计结构。到时,为了支持这些改变更好地重新设计这个软件,而不是指望现有的程序,这样,然而,可能相当昂贵和引入新的 bugs 和问题。

    既然熵代表混乱程度,那软件质量也可用熵来表示,当开发中类的继承引用混乱,结构不合理,其熵值越高,代码重构可以渐进的降低软件熵。


你可能感兴趣的:(熵)