损失函数——交叉熵损失函数(CrossEntropy Loss)

损失函数——交叉熵损失函数(CrossEntropy Loss)损失函数 交叉熵损失函数 CrossEntropy 交叉熵函数为在处理分类问题中常用的一种损失函数 其具体公式为 1 交叉熵损失函数由来交叉熵是信息论中的一个重要概念 主要用于度量两个概率分布间的差异性 首先我们来了解几个概念 1 1 信息量信息论奠基人香农 Shannon 认为 信息是用来消除随机不确定性的东西 也就是说衡量信息量大小就看这个信息消除不确定性的程度 太阳从东方升起了 这条信息没有减少不确定性 因为太阳肯定从东面升起 这是句废话 信息量为 0 六

损失函数——交叉熵损失函数(CrossEntropy Loss)

交叉熵函数为在处理分类问题中常用的一种损失函数,其具体公式为:

H(p,q)=-\sum_{i=1}^{n}p(x_{i})log(q(x{_{i}}))

1.交叉熵损失函数由来

交叉熵是信息论中的一个重要概念,主要用于度量两个概率分布间的差异性。首先我们来了解几个概念。

1.1信息量

信息论奠基人香农(Shannon)认为“信息是用来消除随机不确定性的东西”。也就是说衡量信息量大小就看这个信息消除不确定性的程度。

“太阳从东方升起了”这条信息没有减少不确定性。因为太阳肯定从东面升起。这是句废话,信息量为0。

“六月份下雪了”,这条信息就比较有价值,根据历史统计信息来看,六月份鲜有下雪记录,可知该语句信息量较大。

从上面两个例子可以看出:信息量的大小和事件发生的概率成反比。

由此引出信息量的表示:

I(x)=-log(P(x))

其中P(x)表示为, 时间x的发生概率,这里可能会有质疑,我们知道信息量的大小和事件发生的概率成反比,函数形式为减函数,为什么要表现为对数形式呢

这里我们需要了解信息量得三个性质:

1.事件发生的概率越低,信息量越大;

2.事件发生的概率越高,信息量越低;

3.多个事件同时发生的概率是多个事件概率相乘,总信息量是多个事件信息量相加。

根据性质3,可以知道使用对数形式可以满足性质需求,因此为表现该形式。

1.2 信息熵

信息量度量的是一个具体事件发生所带来的信息,而信息熵则是在结果出来之前对可能产生的信息量的期望——考虑该随机变量的所有可能取值,即所有可能发生事件所带来的信息量的期望。

因此我们可以得到其表现公式为:

H(X)=-\sum_{i=1}^{n}p(x_{i})log(p(x{_{i}}))

其中P(x)表示为, 时间x的发生概率

总而言之,信息熵是用来衡量事物不确定性的。信息熵越大,事物越具不确定性,事物越复杂。

1.3 相对熵

相对熵(relative entropy),又被称为Kullback-Leibler散度(KL散度)或信息散度(information divergence),是两个概率分布(probability distribution)间差异的非对称性度量 。在信息理论中,相对熵等价于两个概率分布的信息(Shannon entropy)的差值 。

可以理解为对于同一个随机变量x,有两个概率分布,判断这两个概率分布得差异。假设两个概率分布对应为p(x),q(x), 如何表示这两个分布得差异,我们可以使用信息熵判断,于是相对熵产生。

p(x)分布的信息熵为:

H_{pp}(X)=-\sum_{i=1}^{n}p(x_{i})log(p(x{_{i}}))

q(x)分布的信息熵为:

H{_{pq}}(X)=-\sum_{i=1}^{n}p(x_{i})log(q(x{_{i}}))

相对熵为:

H_{pq}(X)-H_{pp}(X)

p(x)为样本真实分布,q(x)为预测分布

于是得到相对熵(KL散度)公式为:

D_{KL}(p||q)=H_{pq}(X)-H_{pp}(X)=-\sum_{i=1}^{n}p(x_{i})log(q(x{_{i}}))-[-\sum_{i=1}^{n}p(x_{i})log(p(x{_{i}}))]

D_{KL}(p||q)=\sum_{i=1}^{n}p(x_{i})log(p(x{_{i}}))-\sum_{i=1}^{n}p(x_{i})log(q(x{_{i}}))=\sum_{i=1}^{n}p(x_{i})log(\frac{p(x_{i})}{q(x^{_{i}})})

KL散度越小,表示P(x) 与Q(x)的分布更加接近,可以通过反复训练Q (x)来使Q (x) 的分布逼近P(x)。

1.4 交叉熵

交叉熵的函数表示为:

H(p,q)=-\sum_{i=1}^{n}p(x_{i})log(q(x{_{i}}))

我们观察可以看出,这里与相对熵(KL散度)较为相似,个人认为交叉熵为相对熵(KL散度)的变体,由于我们进行模型训练,有监督训练,样本标签已经确定,相当于真实的概率的分布P(x)已经得知,因此这边的H(X)=-\sum_{i=1}^{n}p(x_{i})log(p(x{_{i}}))固定值,相当于常量

在我们模型训练中:

D_{KL}(p||q)=\sum_{i=1}^{n}p(x_{i})log(p(x{_{i}}))-\sum_{i=1}^{n}p(x_{i})log(q(x{_{i}}))

相对熵(KL散度)变为:

D_{KL}(p||q)=constant-\sum_{i=1}^{n}p(x_{i})log(q(x{_{i}}))

对于其做为损失函数,常量可以忽略,因此得到了交叉熵的表现形式。

2. 交叉熵损失函数应用与实现

2.1 交叉熵损失函数二分类中应用

对于在二分类损失函数中应用,交叉熵损失函数为以下形式。

L = -[y log \widehat{y} + (1-y)log(1-\widehat{y})]

2.2 交叉熵损失函数实现

在具体在Python中的实现如下:

# tensorflow version loss = tf.reduce_mean(-tf.reduce_sum(y_*tf.log(y), reduction_indices=[1])) # numpy version loss = np.mean(-np.sum(y_*np.log(y), axis=1)) # pytorch version entroy=nn.CrossEntropyLoss() output = entroy(input, target)

3 总结

  • 交叉熵能够衡量同一个随机变量中的两个不同概率分布的差异程度,在机器学习中就表示为真实概率分布与预测概率分布之间的差异。
  • 交叉熵的值越小,模型预测效果就越好。
  • 交叉熵经常搭配softmax使用,将输出的结果进行处理,使其多个分类的预测值和为1,再通过交叉熵来计算损失。

参考

[1] https://blog.csdn.net/b/article/details/

[2] https://zhuanlan.zhihu.com/p/

[3] https://zhuanlan.zhihu.com/p/

[4] https://blog.csdn.net/francislucien2017/article/details/

[5]https://blog.csdn.net/dog250/article/details/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233699.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Utils_utility是什么意思

    Utils_utility是什么意思packagecom.example.week;importjava.io.InputStream;importjava.net.HttpURLConnection;importjava.ne

    2022年8月3日
    3
  • idea如何进行debug调试_idea debug怎么用

    idea如何进行debug调试_idea debug怎么用远程调试,特别是当你在本地开发的时候,你需要调试服务器上的程序时,远程调试就显得非常有用。JAVA支持调试功能,本身提供了一个简单的调试工具JDB,支持设置断点及线程级的调试同时,不同的JVM通过接口的协议联系,本地的Java文件在远程JVM建立联系和通信。此篇是IntellijIDEA远程调试的教程汇总和原理解释,知其然而又知其所以然。本机IntellijID…

    2022年9月11日
    0
  • Word在试图打开文件时遇到错误。解决办法!

    Word在试图打开文件时遇到错误。解决办法!下载Word文档,看看“软考网络工程师”的试题!但是文档打不开,显示如图二图一图二解决步骤:看到这报错,第一感觉,是不是OFFICE本身的问题?除了这个下载的文档不能打开,其它的WORD文档一般都能用WORD打开!晕死。。。先在微软官方网站下载Office2003SP3-KB923618-FullFile-CHS.exe,修复一下O…

    2022年5月1日
    56
  • PyCharm激活码永久有效PyCharm2017.1.7激活码教程-持续更新,一步到位

    PyCharm激活码永久有效PyCharm2017.1.7激活码教程-持续更新,一步到位PyCharm激活码永久有效2017.1.7激活码教程-Windows版永久激活-持续更新,Idea激活码2017.1.7成功激活

    2022年6月19日
    62
  • 新版CCNP-SWITCH笔记

    新版CCNP-SWITCH笔记

    2021年8月8日
    48
  • python导入xml文件_python爬虫写入excel

    python导入xml文件_python爬虫写入excel最近在使用Testlink时,发现导入的用例是xml格式,且没有合适的工具转成excel格式,xml使用excel打开显示的东西也太多,网上也有相关工具转成csv格式的,结果也不合人意。那求人不如尔己,自己写一个吧需要用到的模块有:xml.dom.minidom(python自带)、xlwt使用版本:python:2.7.5xlwt:1.0.0一、先分析TestlinkXML格式:这是一个有两级…

    2022年8月22日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号