一、交叉熵的定义:函数
在信息论中,交叉熵是表示两个几率分布p,q,其中p表示真实分布,q表示非真实分布,在相同的一组事件中,其中,用非真实分布q来表示某个事件发生所须要的平均比特数。从这个定义中,咱们很难理解交叉熵的定义。下面举个例子来描述一下:测试
假设如今有一个样本集中两个几率分布p,q,其中p为真实分布,q为非真实分布。假如,按照真实分布p来衡量识别一个样本所须要的编码长度的指望为:编码
可是,若是采用错误的分布q来表示来自真实分布p的平均编码长度,则应该是:spa
此时就将H(p,q)称之为交叉熵。交叉熵的计算方式以下:blog
对于离散变量采用如下的方式计算:事件
对于连续变量采用如下的方式计算:io
实际上,交叉熵是衡量两个几率分布p,q之间的类似性。这能够子啊特征工程中,用来衡量变量的重要性。变量
二、交叉熵的应用:im
(1)在特征工程中,能够用来衡量两个随机变量之间的类似度数据
(2)语言模型中(NLP),因为真实的分布p是未知的,在语言模型中,模型是经过训练集获得的,交叉熵就是衡量这个模型在测试集上的正确率。其计算方式以下:
其中,N是表示的测试集的大小,q(x)表示的是事件x在训练集中的几率(在nlp中就是关键词在训练语料中的几率)。
(3)在逻辑回归中的应用。
因为交叉熵是衡量两个分布之间的类似度,在逻辑回归中,首先数据集真实的分布是p,经过逻辑回归模型预测出来的结果对应的分布是q,此时交叉熵在这里就是衡量预测结果q与真实结果p之间的差别程度,称之为交叉熵损失函数。具体以下:
假设,对应两分类的逻辑回归模型logistic regression来讲,他的结果有两个0或者1,在给定预测向量x,经过logistics regression回归函数g(z)=1/(1+e-z),则真实结果y=1,对应预测结果y'=g(wx);真实结果y=0,对应预测结果y'=1-g(wx);以上就是经过g(wx)和1-g(wx)来描述原数据集0-1分布。根据交叉熵的定义可知:
上式是针对测试集一个样本获得的交叉熵。若测试集有N个样本,对应的交叉熵损失函数表示方式以下: