这个问题之前我也是傻傻分不清,决定整理一下,用更印象深刻的方式让人记住。
核心联系:
交叉熵 =KL 散度 + 真实分布的熵
交叉熵作为 “绝对” 度量,会综合真实分布的熵(固有难度)与预测误差,直接体现用预测分布拟合真实分布的总代价,因与 “让预测贴合真实” 的优化目标直接相关,更适合作为损失函数;
KL 散度作为 “相对” 度量,仅聚焦两个分布的纯粹差异,剔除了真实分布的熵的影响,因此更适合用于比较分布相似性,而非直接作为损失函数 。
举个例子:
假设你要 “模仿一位画家的风格”(真实分布 P 是画家的原作风格,预测分布 Q 是你的模仿作品)。
真实分布的熵 H (P):画家风格本身的 “复杂度”(比如毕加索的立体派风格很复杂,H (P) 高;儿童简笔画风格简单,H (P) 低)。
KL 散度 KL (P||Q):你和画家 “风格差异的纯大小”( “不管画家风格本身难不难,只给你的模仿打‘偏差分’”—— 毕加索的模仿者 A 偏差 1 分,儿童简笔画的模仿者 B 偏差 2 分,哪怕 A 的总代价(风格难度 + 偏差)比 B 高,KL 散度也会告诉你:A 的 “模仿精度” 比 B 高。)。
交叉熵 H (P,Q):你模仿时付出的 “总代价”( 画家风格本身的复杂度 H (P) + 你模仿偏差的代价 KL (P||Q))。
如果真实分布的熵等于0,则交叉熵等于KL散度。
什么情况下真实分布的熵等于0:
即真实分布中只有一个事件的概率为 1(必然发生),所有其他事件的概率为 0(不可能发生)。