自信息I表示概率空间中的单一事件或离散随机变量的值相关的信息量的量度。它用信息的单位表示,例如bit、nat或是hart,使用哪个单位取决于在计算中使用的对数的底。如下图:
如英语有26个字母,假设在文章中出现的概率相等,每个字母的自信息量(也称作编码长度,也就是在最优情况下,应该用多少比特去表示字母)为:
因此变量越均匀分布,自信息的期望就越大,也就熵越大(平均编码长度越长),也即最优表示变量所需用到比特数量的期望则越多,也能说明文章挈带的信息量就越多,把文章搞清楚所需要的信息量也就越大(比特数多了)。
熵在物理上是表示混乱程度,在信息论中,信息熵用以下方程表示,也就是对分布自信息的期望,单位取决于在计算中使用的对数的底:
离散的表达式:
若概率越为均匀分布,则熵越大,变量的不确定性越大,把它搞清楚所需要的信息量也就越大。如AvsB,A队的胜率为100%,则我们不需要任何信息都能搞清楚A队肯定赢。但是若A队和B队的胜率各为50%,则我们要将哪队获胜确定下来所需要的信息量很大。
交叉熵的公式如下:
本质上可以看成用p分布的编码方式去编码q分布,所得到的编码长度期望。
KL散度(相对熵)公式如下:
用形象化地表示三者的关系:
在概率论或信息论中,KL散度( Kullback–Leibler divergence),又称相对熵(relative entropy),是描述两个概率分布P和q差异的一种方法。
KL散度在信息论中物理意义,它是用来度量使用基于q分布的编码来编码来自p分布的样本平均所需的额外的Bit个数。而其在机器学习领域的物理意义则是用来度量两个函数的相似程度或者相近程度。
考虑某个未知的分布 p(x),假定用一个近似的分布 q(x) 对它进行建模。如果我们使用 q(x) 来建立一个编码体系,用来把 x 的值传给接收者,那么由于我们使用了q(x)而不是真实分布p(x),平均编码长度比用真实分布p(x)进行编码增加的信息量(单位是 nat )为: (1)
这被称为分布p(x)和分布q(x)之间的相对熵(relative entropy)或者KL散 度( Kullback-Leibler divergence )。
也就是说,当我们知道真实的概率分布之后,可以给出最有效的编码。如果我们使用了不同于真实分布的概率分布,那么我们一定会损失编码效率,并且在传输时增加的平均额外信息量至少等于两个分布之间的KL散度。
注意,这不是一个对称量,即 。
现在要证明的是KL散度满足 ,并且当且仅当 p(x) = q(x) 时等号成立。
设实直线上的函数f(x) 是一个非负函数,且:
如果 g 是任意实可测函数且函数 是凸的,那么有Jensen不等式如下:
注意到,-ln x 是严格的凸函数且 。
令 ,
, f(x)=p(x)
把公式(2)形式的 Jensen 不等式应用于公式(1)给出的 KL散度,直接可得 (3)
只有 q(x) = p(x) 对于所有 x 都成立时,等号才成立,
因此我们可以把 KL 散度看做两个分布 p(x) 和 q(x)之间不相似程度的度量。
假设我们想要对未知分布p(x) 建模,可以试着使用一些参数分布 来近似p(x)。
由可调节的参数
控制(例如一个多元高斯分布)。
通过最小化 p(x) 和 之间关于
的 KL散度可以确定
。
但是因为不知道 p(x),所以不能直接这么做。
如果已经观察到了服从分布 p(x) 的有限数量的训练点集 ,其中
,那么关于 p(x) 的期望就可以通过这些点的有限加和,使用公式
来近似,即:
(4)
公式(4)右侧的第二项与 无关,第一项是使用训练集估计的分布
下的
的负对数似然函数。
因此最小化KL散度等价于最大化似然函数。
如果 和
是 集合X上的测度,且
由Radon–Nikodym theorem, 和
的KL散度定义如下:
原文:https://www.cnblogs.com/wqbin/p/12752610.html