根据香农公式,信息量等于 log(1p) ;
交叉熵常作为机器学习中的损失函数;
条件熵作为最大熵模型的优化目标;
1. 信息熵
熵的本质是信息量的期望:
其中,p 是真实的分布;
2. 交叉熵
现在假设一个估计分布q,则交叉熵即为:
H(p,q)>=H(p) ,当 p=q 时,等式成立。
交叉熵可在神经网络(机器学习)中作为损失函数,p表示真实标记的分布,q则为训练后的模型的预测标记分布,交叉熵损失函数可以衡量p与q的相似性。交叉熵作为损失函数还有一个好处是使用sigmoid函数在梯度下降时能避免均方误差损失函数学习速率降低的问题,因为学习速率可以被输出的误差所控制。
分析原因:
一组含有m个样本的数据集 X={x(1),x(2),...,x(m)} ,样本之间独立,服从于生成分布 pdata(x) ,现在我们学习一个模型 pmodel(x,θ) ,通过最大似然函数估计 θ ;
argmaxθ∏impmodel(y|xi,θ)
取对数:
argmaxθ∑imlog(pmodel(y|xi,θ))因为当我们重新缩放代价函数时 argmax 不会改变,我们可以除以 m 得到和训练数据经验分布 p^data 相关的期望作为准则:
argmaxθEx∼p^datalog(pmodel(y|xi,θ))
通过KL散度计算两个分布之间的差异,最小化差异相当于最小化交叉熵(下结介绍)。
3. 相对熵
相对熵用来衡量两个分布之间的差异,又叫做KL散度;(重采样使用一个简单的q分布替代原始的p分布);
发现:最小化KL散度时, ∑xp(x)log(p(x)) 是不会改变,后一项是交叉熵,因此最小化相对熵就是在最小化两个分布之间的交叉熵。
比如TD-IDF算法就可以理解为相对熵的应用:词频在整个语料库的分布与词频在具体文档中分布之间的差异性
4.联合熵
两个随机变量
X,Y
,联合分布为
p(X=x,Y=y)
,则联合熵为:
5.条件熵
两个随机变量的条件概率为:
p(Y|X=x)
,在 X的前提下,Y的不确定程度即为条件熵(X发生的前提下,Y新带来熵);
在最大熵模型中,数据集
<xi,yi>
<script type="math/tex" id="MathJax-Element-12">
</script>,模型的分布为
p(x,y)
;
从数据集中可以计算出经验联合分布
p^(x,y)
,以及X的边缘分布
p^(x)
;
假定模型期望等于经验分布的期望,即:
最大 P(Y|X) 的条件熵: