相对熵

信息论_熵

血红的双手。 提交于 2019-11-29 19:35:18
信息论主要是对信号所含信息的多少进行量化,其基本思想是一个不太可能发生的事情要比一个可能发生的事情提供更多的信息。 度量信息的集中常用指标有信息熵、条件熵、互信息、交叉熵。 信息熵 信息熵(entropy)简称熵,是对随机变量不确定性的度量。定义为: H(x)=∑p i *log 2 (p i ) 用以下代码来实现对0-1分布变量概率与其信息熵的关系: import matplotlib.pyplot as plt # %matplotlib inline 只有Jupyter需要加这一行,其余常用editor都无需此行代码 p = np.arange(0, 1.05, 0.05) HX = [] for i in p: if i == 0 or i == 1: HX.append(0) else: HX.append(-i * np.log2(i) - (1 - i) * np.log2(1 - i)) plt.plot(p, HX, label='entropy') plt.xlabel('P') plt.ylabel('H(x)') plt.show() 其中p是一个一维数组,其值范围为[0,1.05),步长为0.05,HX是一个列表,用于记录一维数组每个数据的熵值。 得到结果如下: 可见,当概率为0或1时,H(x)= 0 ;当 p = 0.5 时,随机变量的不确定性最大

理解机器学习中的熵

99封情书 提交于 2019-11-29 03:17:38
1. 信息量和信息熵 熵是表征系统混乱度/不确定度的物理量,在热力学、信息学中都有其各自的含义,而在机器学习更多沿用了信息熵的概念,即解释随机变量分布所需要的信息量(下文给出数学定义),或者从信息编码的角度来说,用某种方式对随机变量分布进行编码所需要的编码信息长度。 假设一个离散型随机变量 x x x ,其分布为 p ( x ) p(x) p ( x ) ,如何计算其熵呢,我们先引入信息量的概念:事件发生所蕴含的信息。比如对于【中国队又没进世界杯】这个事件,我们已经习以为常,所以其中包含的信息量非常有限;而对于【中国队进了世界杯】,我们会很吃惊,所以其中包含的信息量非常大,需要大量的信息去确定它。也就是说, 信息量和事件发生的概率有关 。信息量的度量方式 I ( x ) I(x) I ( x ) 应满足,p(x)越大,其信息量越小(事件越确定,所需要的编码长度越短),而p(x)越小,其信息量越大。 用 I ( x ) = − l o g ( p ( x ) ) I(x)=-log(p(x)) I ( x ) = − l o g ( p ( x ) ) 来表示信息量(常用 e e e 或2作为对数底),特殊的 0 l o g 0 = 0 0log0=0 0 l o g 0 = 0 ,即不可能事件的信息量为0。这种定义方式有如下几个优点: (1)恒非负,且单调递减,当p(x)=1时为0