1. 信息量:不确定性的量化
信息量是信息论中最基础的概念,它衡量了一个事件发生时所携带的信息多少。举个生活中的例子:如果天气预报说"明天会下雨",这在干旱地区是一个重大消息(信息量大),而在雨季则是稀松平常的事(信息量小)。
从数学上看,信息量定义为:
I(x) = -log p(x)这个公式揭示了事件概率与信息量的反比关系。当p(x)=1(必然事件)时,信息量为0;当p(x)→0时,信息量趋近于无穷大。就像开篇的三门问题,主持人打开一扇门后,剩余门的中奖概率从1/3骤升到2/3,这个变化带来了巨大的信息量。
在编码理论中,信息量对应着最优编码长度。假设我们要对字母A(出现概率1/2)、B(1/4)、C(1/8)、D(1/8)进行二进制编码:
- A只需要1位:0
- B需要2位:10
- C和D需要3位:110和111 这就是著名的哈夫曼编码,每个符号的编码长度正好等于其信息量。
2. 信息熵:系统的混乱程度
信息熵是信息量的期望值,表示整个系统的不确定性。对于离散随机变量X,其熵定义为:
H(X) = -Σ p(x)log p(x)熵的性质非常有趣:
- 当所有事件等概率时熵最大(最不确定)
- 当某个事件概率为1时熵为0(完全确定)
- 对于n个可能的事件,熵的范围是[0, logn]
举个例子,一个公平的骰子的熵是log6≈2.585,而一个作弊骰子(某个数字概率50%)的熵会低很多。在机器学习中,我们常用熵来衡量数据集的纯度——熵越高意味着分类越不确定。
3. 条件熵与信息增益
条件熵H(Y|X)表示在已知随机变量X的条件下,Y的不确定性。它与信息熵的关系是:
H(Y|X) = H(X,Y) - H(X)这个公式直观理解就是:联合熵减去X的熵等于在X已知时Y的剩余不确定性。
信息增益则是熵的减少量:
IG(Y|X) = H(Y) - H(Y|X)它衡量了特征X对预测Y的贡献程度。决策树算法(如ID3)正是用信息增益来选择划分特征的。比如在判断是否打网球的例子中,"湿度"特征可能比"风速"带来更大的信息增益。
4. 互信息:变量间的依赖关系
互信息I(X;Y)衡量两个随机变量的依赖程度:
I(X;Y) = H(X) - H(X|Y) = H(Y) - H(Y|X)它的性质包括:
- 当X和Y独立时,I(X;Y)=0
- 对称性:I(X;Y)=I(Y;X)
- 非负性:I(X;Y)≥0
在特征选择中,互信息可以找出与目标变量最相关的特征。比如在文本分类中,计算每个词与类别的互信息,选择值最高的那些词作为特征。
5. 交叉熵与KL散度
交叉熵H(p,q)是用分布q的最佳编码来编码分布p时的期望长度:
H(p,q) = -Σ p(x)log q(x)而KL散度(相对熵)衡量两个分布的差异:
DKL(p||q) = H(p,q) - H(p)它们的关系如下图所示: [熵、交叉熵与KL散度的关系示意图]
在机器学习中,交叉熵常被用作损失函数。比如分类任务中:
- p是真实标签的one-hot分布
- q是模型预测的softmax输出 最小化交叉熵等价于最大化似然估计。
6. JS散度:对称的分布距离
JS散度解决了KL散度不对称的问题:
JS(p||q) = 1/2 DKL(p||(p+q)/2) + 1/2 DKL(q||(p+q)/2)它的取值范围是[0,1],在GAN等生成模型中非常有用。不过当两个分布完全不重叠时,JS散度会饱和,这时Wasserstein距离可能是更好的选择。
7. 实际应用案例
- 模型评估:交叉熵损失函数在分类任务中的表现通常优于MSE
- 特征选择:互信息可以过滤掉无关特征,提高模型效率
- 文本分析:TF-IDF算法本质上是KL散度的应用
- 生成模型:GAN使用JS散度,WGAN使用Wasserstein距离
- 决策树:ID3算法使用信息增益,C4.5使用信息增益比
在NLP领域,这些概念尤为重要。比如机器翻译中,BLEU分数与交叉熵结合可以更好地评估翻译质量;在词向量训练中,负采样本质上是在优化互信息的下界。