信息量、熵、互信息

信息量

信息量是通过概率来定义的:如果一件事情的概率很低,那么它的信息量就很大;反之,如果一件事情的概率很高,它的信息量就很低。简而言之,概率小的事件信息量大,因此信息量 \(I(x)\) 可以定义如下:

\[I(x) := log(\frac{1}{p(x)}) \]

信息熵/熵

表示随机变量不确定性的度量,熵就是用来表示信息量的期望(信息量的均值):

\[H(p) = \sum_i{p(x_i)I(x_i)} = -\sum_i{p(x_i)\log p(x_i)} \]

  • 熵越小表示越“纯”,决策树算法在进行特征选择时的其中标准之一就是选择使得通过该特征分类以后的类的熵最小;

  • 上面是熵越小越好,而有的时候,我们需要熵越大越好,简单来说就是“鸡蛋不要放在一个篮子里”(见吴军《数学之美》),最大熵原理就是这样,这部分内容可以参考李航《统计机器学习》逻辑回归模型相关部分

KL散度/相对熵

相对熵又称KL散度,如果我们对于同一个随机变量 x 有两个单独的概率分布 P(x) 和 Q(x),我们可以使用 KL 散度(Kullback-Leibler (KL) divergence)来衡量这两个分布的差异,这里 P(x) 表示样本的真实分布,Q(x) 表示我们计算出来的模型,我们怎么取衡量我们的模型和真实的样本分布之间的差异呢,使用KL散度:

\[D(p||q) = \sum_i{q(x_i)\log\frac{q(x_i)}{p(x_i)}} \]

差异越大则相对熵越大,差异越小则相对熵越小。

KL散度 = 交叉熵- 熵

交叉熵

交叉熵衡量了用概率分布p去估计概率分布q所包含的平均信息量, 也就是:

\[H(p, q) = -\sum_i q(x_i)I(x_i) = -\sum q(x_i)\log p(x_i) \]

从另一个角度看, 当p, q相等时, 交叉熵就等于信息熵, 此时交叉熵最小. 所以在机器学习中, 交叉熵被用来做loss去衡量分类结果与真值的相似程度

条件熵

条件熵 H(Y|X) 表示在已知随机变量 X 的条件下随机变量 Y 的不确定性。条件熵 H(Y|X) 定义为 X 给定条件下 Y 的条件概率分布的熵对 X 的数学期望:

\[H(Y|X) = \sum_xp(x)H(Y|X=x)\\ \quad \quad \quad \quad \quad \quad \quad \quad = -\sum_xp(x)\sum_yp(y|x)\log p(y|x)\\ \quad \quad \quad \quad \quad \quad= -\sum_x\sum_y p(x, y)\log p(y|x)\\ \quad = -\sum_{x, y}\log p(y|x) \]

联合熵

两个变量 X和 Y 的联合熵的表达式:

\[H(X,Y) = -\sum_{i = 1}^{n}p(x_i, y_i)\log p(x_i,y_i) \]

互信息

互信息(Mutual Information)是度量两个事件集合之间的相关性,也被称为信息增益, 根据信息熵、条件熵的定义式,可以计算互信息为信息熵与条件熵之差

\[I(X,Y) =H(Y) - H(Y|X) = H(X) - H(X|Y) =\sum_{y\in Y}\sum_{x\in X} p(x, y)\log (\frac{p(x, y)}{p_1(x)p_2(y)}) \]

上一篇:softmax 分类


下一篇:Kullback-Leibler(KL)散度介绍