点击上方“潜心的Python小屋”关注我们,第一时间推送优质文章。
前言
大家好,我是潜心。休整(偷懒)一星期后,我决定还是写一些关于机器学习的笔记,单纯写Python文档确实有点无聊。因为最近在看《百面机器学习》,刚看到决策树,发现把信息论的相关知识给忘了,翻了下笔记,准备分享给大家。
本文约1k字,预计阅读10分钟。
信息论
信息论主要研究的是对一个信号包含信息的多少进行量化。
基本想法:一个不太可能的事情发生了,要比一个非常可能的事情发生,能提供更多的信息。
自信息
定义一个事件的自信息,它应满足三个性质:
非常可能的事情信息量比较少;
较不可能的事情具有更高信息量;
独立事件应具有增量的信息(如抛硬币两次正的信息量应是一次的两倍);
故有公式: ,表示一个事件发生的概率
注:log底数为e,I(x)单位为奈特;底数为2,单位是比特或香农;
信息熵
信息熵也称香农熵,是对整个概率分布中的不确定性总量进行量化。
信息熵需要满足三个性质:
单调性,概率越高,携带的信息量越低;
非负性;
累加性:多随机事件同时发生的总不确定性的量度可以表示为各事件不确定性量度的和;
累加性:
事件同时发生,两个事件相互独立,即
,
故信息熵:
香农从数学上严格证明了满足上述三个条件的随机变量不确定性度量函数具有唯一形式:
,其中代表独立事件的集合
其中为常数,当时,即为信息熵公式。
熵的取值范围为:,为取值的种类
物理意义:熵代表了随机变量的不确定性(即混乱程度)。熵越大,代表随机变量的不确定性越大。当变量可取值的种类一定时,其取每种值的概率分布越平均,其熵值越大。
例:二值随机变量的香农熵(伯努利分布熵)
随机变量取值为{0, 1},则的概率分布为:
则熵为:
多随机变量系统中熵的相关概念(以2为例)
互信息
两个随机变量和的互信息定义为:
物理意义:表明了两事件单独发生的信息量是有重复的。互信息度量了这种重复的信息量大小。
联合熵
两个随机变量和的联合熵定义为:
物理意义:度量了一个联合分布的随机系统的不确定度,观察该随机系统的信息量。
条件熵
两个随机变量和的条件熵定义为:
度量了在已知随机变量X的条件下随机变量Y的不确定性。
「Venn图」:
两分布系统中熵的相关概念
相对熵
又称KL散度,设和是随机变量的两个概率分布,
且
性质:
如果 p(x) 和 q(x)两个分布相同,那么相对熵等于0;
相对熵具有不对称性
KL散度非负且衡量两个分布之间的差异。
交叉熵
设和是随机变量的两个概率分布,为真实分布,为非真实分布,
交叉熵可以来衡量在给定的真实分布下,使用非真实分布所指定的策略消除系统的不确定性所需要付出的努力的大小。机器学习中直接使用交叉熵作为代价函数。
总结
在机器学习中,信息熵的运用主要在决策树当中,相对熵可以衡量两个分布之间的差异,而交叉熵经常用做代价函数。下一期会具体介绍决策树,以及常用的算法:ID3、C4.5、CART。
往期精彩回顾
「通过Docs学Python」(番外)浅谈Python代码规范
「通过Docs学Python」(三)内置类型:文本、集合以及映射
扫码关注更多精彩
我就知道你“在看”