交叉熵和对数损失函数之间的关系

交叉熵

熵/信息熵

假设一个发送者想传输一个随机变量的值给接收者。这个过程中,他们传输的平均信息量为:

\large H[x]=-\sum_xp(x){log}_{2}p(x)

\large H[x]

叫随机变量

\large x

的熵,其中

\large lim_{p\rightarrow 0}p{log}_2p=0

把熵扩展到连续变量

\large x

的概率分布

\large p(x)

,则熵变为

\large H[x]=-\int p(x)lnp(x)dx

被称为微分熵。

在离散分布下,最大熵对应于变量的所有可能状态的均匀分布。

最大化微分熵的分布是高斯分布

\large p(x)=\frac{1}{(2\pi\sigma ^2)^{1/2}}exp\{-\frac{(x-u)^2}{2\sigma ^2}\}

相对熵/KL散度

考虑某个未知分布

\large p(x)

,假设我们使用一个近似分布

\large q(x)

对其进行建模。如果我们使用

\large q(x)

来建立一个编码体系,用来把

\large x

传递给接收者,由于我们使用了

\large q(x)

而不是真实分布

\large p(x)

,因此在具体化

\large x

时,我们需要一些附加信息。我们需要的附加信息量为:

\large KL(p||q)=-\int p(x)lnq(x)dx-(-\int p(x)lnp(x)dx)

                    

\large =-\int p(x)ln\{\frac{q(x)}{p(x)}\}dx

这被称为分布

\large p(x)

与分布

\large q(x)

之间的相对熵,或者KL散度。KL散度大于等于零,当两个分布一致时等于零。

交叉熵

交叉熵本质上可以看成,用一个猜测的分布的编码去编码真实的分布,得到的信息量:

\large CEH(p,q)=-\sum_{x\in\chi }p(x)lnq(x)=H(p)+D_{KL}(p||q)

\large CEH(p,q)

\large =-\sum_{x\in\chi }p(x)lnq(x)

\large =-[P_p(x=1)lnP_q(x=1)+P_p(x=0)P_q(x=0)]

\large =-[plnq+(1-p)ln(1-q)]

\large =-[ylnh_\theta(x)+(1-y)ln(1-h_\theta(x))]

对所有训练样本取均值得到:

\large -\frac{1}{m}\sum_{i=1}^{m}y_ilog(h_\theta(x_i))+(1-y_i)log(1-h_{\theta(x_i)})

对数损失函数

对数损失函数的表达式为:

\large -\frac{1}{m}\sum_{i=1}^{m}y_ilog(h_\theta(x_i))+(1-y_i)log(1-h_{\theta(x_i)})

参见https://blog.csdn.net/qq_38625259/article/details/88362765

交叉熵和对数损失函数之间的关系

交叉熵中未知真实分布

\large p(x)

相当于对数损失中的真实标记

\large y

,寻找的近似分布

\large q(x)

相当于我们的预测值。如果把所有样本取均值就把交叉熵转化成了对数损失函数。

 

本文转载自:https://blog.csdn.net/qq_38625259/article/details/88371462?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control

相关文章

python方向·数据分析   ·自然语言处理nlp   案例:中...
原文地址http://blog.sina.com.cn/s/blog_574a437f01019poo....
ptb数据集是语言模型学习中应用最广泛的数据集,常用该数据集...
 Newtonsoft.JsonNewtonsoft.Json是.Net平台操作Json的工具...
NLP(NaturalLanguageProcessing)自然语言处理是人工智能的一...
做一个中文文本分类任务,首先要做的是文本的预处理,对文本...