AI 术语通俗词典:信息熵
信息熵是信息论、统计学、机器学习和人工智能中非常常见的一个术语。它用来描述一个系统、一个变量或一个样本集合中不确定性有多大。 换句话说信息熵是在回答面对一个结果还没有揭晓的事件我们到底有多难提前猜中它。如果说概率回答的是“某个结果出现的可能性有多大”那么信息熵回答的就是“整体来看这个概率分布到底有多乱、多不确定”。因此信息熵常用于决策树划分、信息论分析、概率建模、机器学习特征选择和人工智能系统设计在人工智能与数据分析中具有重要基础意义。一、基本概念什么是信息熵信息熵Information Entropy通常简称为熵Entropy。它最初来自信息论用来衡量一个随机变量结果的不确定程度。若一个离散随机变量可能取 K 个结果各结果出现的概率分别为那么它的信息熵可写为其中• pₖ 表示第 k 个结果出现的概率• log₂ 表示以 2 为底的对数• H 表示信息熵这个公式的核心意思是• 如果某个结果几乎必然发生那么系统不确定性很小熵就低• 如果多个结果都差不多可能发生那么系统不确定性较大熵就高从通俗角度看信息熵可以理解为一个结果在揭晓之前到底有多难猜。例如• 如果一枚硬币永远只会出现正面那么结果几乎没有悬念熵很低• 如果一枚公平硬币有一半概率正面、一半概率反面那么结果更难提前确定熵就更高因此信息熵本质上衡量的不是“结果本身有多大”而是结果出现之前我们面对的整体不确定性有多强。二、为什么叫“信息熵”“熵”这个词最早来自物理学用来表示系统的混乱程度。在信息论中熵被借用来表示“信息的不确定性”或“信息的平均惊讶程度”。之所以叫“信息熵”是因为一个事件越不确定真正结果一旦揭晓时带来的“信息量”往往越大。例如如果你早就知道某件事一定会发生那么它真的发生时几乎没有新信息如果某件事本来很难预测而它最终发生了那么你会觉得“这件事的信息量更大”因此信息熵可以理解为在结果揭晓之前系统平均能带来多少“未知感”或“不确定感”。从通俗角度看• 熵高说明结果更难猜信息更“有悬念”• 熵低说明结果更容易猜信息更“没悬念”这就是“信息熵”这个名字背后的直觉来源。三、如何直观理解信息熵信息熵最重要的直觉是“结果分布越平均越难猜熵越大结果越集中越容易猜熵越小”。1、当某个结果几乎必然发生时例如一个变量总是取同一个值• A 类概率为 1• 其它类别概率为 0这时结果根本没有悬念。你在结果揭晓前几乎就已经知道答案因此信息熵为 0。2、当多个结果概率差不多时例如在二分类中• 正类概率为 0.5• 负类概率为 0.5这时结果最难提前判断因为两种可能性一样大。这类情况下信息熵较高。3、当概率逐渐偏向某一类时例如• 正类概率为 0.9• 负类概率为 0.1这时虽然还有不确定性但已经不算特别难猜。因为大多数时候会出现正类所以熵会比 0.5 / 0.5 的情况更低。从通俗角度看信息熵可以理解为一个系统越均匀混合、越没有明显偏向熵就越高越一边倒、越容易判断熵就越低。四、信息熵的取值特点1、当系统完全确定时信息熵为 0如果某个结果的概率是 1其他结果概率都是 0那么因为这表示系统完全没有不确定性。2、当结果越均匀时信息熵越大例如在二分类中若两个类别概率都是 0.5则熵为这是二分类下的最大熵情况之一。3、多分类中类别越平均熵也越高例如在三分类中若三个类别概率分别都是 1/3那么熵会比“一个类别占绝大多数”的情况更高。从通俗角度看• 熵 0表示“几乎没悬念”• 熵较高表示“结果分布较乱猜测难度更大”五、信息熵的重要性与常见应用场景1、信息熵的重要性信息熵之所以重要是因为它为“不确定性”提供了一个明确、可计算的度量方式。首先信息熵可以把“乱不乱”“难不难猜”这类直观感觉转化成具体数值。如果没有它我们只能模糊地说一个系统“看起来比较混乱”或“好像比较确定”而有了信息熵之后这种判断就变成了可计算、可比较的量。其次信息熵能帮助我们判断一个划分是否有效。在机器学习中很多任务都希望通过某种操作让样本集合变得更纯、更确定。信息熵正好可以用来衡量“划分前后不确定性降低了多少”。再次信息熵是理解信息增益、决策树和概率建模的重要基础。它不仅是一个单独术语也是很多后续概念的起点。可以概括地说• 概率描述“每种结果有多可能”• 信息熵描述“整体结果有多不确定”2、常见应用场景1在决策树中信息熵常用于衡量节点纯度如果一个节点中的类别很混杂熵就高如果一个节点中的样本几乎都属于同一类熵就低。2在信息增益计算中信息熵是核心组成部分决策树在选择划分特征时常比较不同划分前后熵减少了多少。3在信息论中信息熵用于衡量消息源的不确定性结果越难预测平均信息量通常越大。4在概率建模中信息熵可用于描述分布的混乱程度不同概率分布的“散乱程度”可以通过熵来比较。5在机器学习和深度学习中交叉熵等概念也与信息熵密切相关理解信息熵后更容易理解交叉熵和相对熵等术语。六、二分类中的信息熵在二分类问题中如果正类概率为 p负类概率为 1 - p那么信息熵可写为这个公式很有代表性因为它能直观展示熵随概率分布变化的规律。1、当 p 0 或 p 1 时此时结果完全确定熵为 0。2、当 p 0.5 时此时两类概率完全相等最难提前判断熵达到较高值。例如3、当 p 接近 0 或 1 时熵会逐渐下降因为系统越来越偏向某一边结果越来越容易猜。从通俗角度看二分类熵的变化规律就是五五开时最乱越偏向某一边越不乱。七、信息熵与决策树的关系信息熵在机器学习里最经典的应用之一就是决策树。在决策树中我们希望每次划分都能让节点中的样本类别变得更清楚。如果某个节点里样本类别很混杂那么它的熵就高如果划分后子节点更纯那么子节点熵就会降低。这说明决策树并不是随便选择划分特征而是在寻找哪种划分方式能够让样本集合的不确定性下降得更多。从通俗角度看决策树在每一步都像是在问按这个特征分开以后样本会不会更容易区分类别系统会不会变得更“有序”。而信息熵就是回答这个问题的重要工具。八、信息熵与信息增益的关系信息熵本身描述的是“当前有多不确定”而信息增益Information Gain描述的是做了一次划分之后不确定性减少了多少。如果原节点熵为划分后子节点加权平均熵为那么信息增益可写为这说明信息熵是“原来的混乱程度”信息增益是“混乱程度减少了多少”。从通俗角度看• 熵是在量“乱不乱”• 信息增益是在量“这一刀切下去有没有让事情变得更清楚”因此信息熵是信息增益的基础。九、信息熵与基尼不纯度的区别信息熵最容易和基尼不纯度混淆因为二者都能衡量节点纯度。1、共同点它们都用于刻画节点中类别是否混杂当前样本集合是不是够纯。也都能用于决策树划分。2、不同点信息熵的公式为基尼不纯度的公式为它们数学形式不同对概率变化的敏感方式也略有不同。3、直观区别可以简单理解为• 信息熵更强调“不确定性”• 基尼不纯度更强调“类别混杂程度”在很多实际任务中它们的效果往往相近但信息熵在信息论解释上更自然而基尼不纯度计算通常更简单。十、使用信息熵时需要注意的问题1、信息熵不是“信息越多越好”的简单分数它衡量的是不确定性而不是“内容丰富程度”本身。2、熵高不一定表示系统“坏”熵高只是表示结果更难预测、不确定性更强。在不同任务里这未必是负面含义。3、信息熵通常和概率分布一起理解离开概率分布单独谈熵往往会失去意义。因为熵本质上是分布结构的函数。4、在决策树中熵低通常更理想因为树模型通常希望节点更纯、更确定。5、要区分信息熵、交叉熵和相对熵它们名字相似但含义不同• 信息熵描述单个分布自身的不确定性• 交叉熵描述两个分布之间的匹配程度• 相对熵描述两个分布之间的差异程度十一、Python 示例下面给出两个简单示例用来说明信息熵的基本计算方式。示例 1手动计算一个二分类分布的信息熵import math # 二分类概率p1 0.5p2 0.5 # 计算信息熵entropy - (p1 * math.log2(p1) p2 * math.log2(p2)) print(类别概率, p1, p2)print(信息熵, entropy)这个例子展示了最基本的二分类信息熵计算。当两个类别概率相等时不确定性较高因此熵较大。示例 2写一个通用函数计算多分类信息熵import math def entropy(probs): return -sum(p * math.log2(p) for p in probs if p 0) # 三分类概率probs [0.2, 0.5, 0.3] # 计算信息熵h entropy(probs) print(类别概率, probs)print(信息熵, h)这个例子展示了更一般的情形。只要给出一个概率分布就可以计算它对应的信息熵。 小结信息熵是一种用来衡量概率分布不确定性大小的指标。它的核心意义是结果越难预测、类别越均匀混杂信息熵通常越高结果越确定、类别越集中信息熵通常越低。在决策树、信息增益、概率建模和机器学习中信息熵都非常重要。对初学者而言可以把它理解为一个系统在结果揭晓之前越让人难猜它的信息熵就越高。“点赞有美意赞赏是鼓励”