什么是交叉熵
信息量
信息量的大小和它发生的概率有关,发生概率越大的事情,它的出现是理所当然的,它消除了较少的不确定性,认为它的信息量较少。
很少发生的事情却发生了,它消除了很多不确定性,出现条件越苛刻,认为它携带的信息量越大。
明确了信息量定性的思想--发生概率越大,信息量越小,发生概率越小,信息量越大--后,该如何定义描述公式,将它定量?
先看一个踢球的例子:阿根廷夺冠 = 阿根廷进决赛 + 阿根廷赢下决赛
用f来表示信息量:f(夺冠这件事) = f(进决赛这件事) + f(赢决赛这件事) 后面两件事带来的信息量,与前面一件事带来的信息量等价
记为1式
用p表示概率:p(夺冠事件) = p(进决赛事件) * p(赢决赛事件)
记为2式
关于f的定义,它是关于概率的函数,一定与概率有关,既要同时满足一式和二式:
f( P(x1 * x2) ) = f( p(x1) ) + f( p(x2) )
为了联系相乘和相加,就要用到数学工具log,所以函数的形式上一定要有log。logMN = logM + logN
由于概率p一定是零到一之间的分数,对它求log一定小于1,所以应该在前面加上负号,log的底用最常见的2进制,以二为底
I = -log(p)
信息熵
在现实生活中,某个概率系统,很可能有多个分支选项,最后发生多个事件中的某一个。
比如掷硬币系统,最后发生的事件是正反两个之一。掷骰子系统,最后结果却有六种可能
这个系统的信息量的总和(最后结果的不确定性),等于这个系统所有独立事件的信息量的总和
并且无论是掷硬币还是掷骰子,分支都是相同概率,推广到更现实的情况,每个分支的发生概率很可能不同。这里就要用到概率加权的思想:
H(x) = -Σp(xi)log( p(xi) ) 每个事件的发生概率 * 这个事件发生后携带的信息量 最后加总在一起,就是这个系统的信息量
借用热力学中描述系统混乱程度的概念:熵
使用信息熵来衡量一个系统的不确定性(即整个系统信息量的总和)
描述信息熵的思想和数学上求期望的思想很类似,对所有可能事件带来的信息量求期望,其结果就能衡量整个系统的信息量
所以当我们知道整个系统的概率分布,就能计算出整个系统的信息熵
相对熵
又称KL散度,给定两个概率系统P,Q ,则相对熵 Dkl(P||L) = Σ Pi( f(qi) - f(pi) )
P在前就代表了以P为基准,看Q 和它的差距有多少,所以在括号中是用f的信息量减去p的信息量,再与这件事i发生的概率pi加权
可以这样理解这个式子:如果概率分布PQ完全相同,则相对熵一定是0,也就是完全等价。而在同一事件i上,两系统概率有差别,
就会被计算出信息量的差,然后再看下一个事件,最后把所有事件的信息量差距累加起来。
展开后:DKL(P||Q) =
ΣPi(-log qi) - ΣPi(-log pi)
在这个时候,我们发现后面的式子就是P系统的熵,它其实是恒定的,我们把P系统作为了基准,它是不会变的。所以我们想确定
DKL是否趋近于0(趋近于0则代表两个概率分布越类似)关键就是看前面那部分了 H(P,Q) = Σ pi(-log qi) 而这部分就被称为交叉熵
交叉熵
衡量两个概率分布之间的差异。在机器学习中,交叉熵用于衡量真实概率分布和预测概率分布之间的差异,用来评估分类模型的性能
假设有两个概率分布P Q , 则他们的交叉熵为
H(P,Q) = -Σ Pi(log Qi)
其中P(i)表示事件i在真实分布中的概率--也就是基准--Q(i)表示事件i在我们预测分布中的概率,交叉熵越小,说明我们的预测越接近真实