热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

深度学习SoftMax回归交叉熵损失函数

熵(entropy):无损编码事件信息的最小平均编码长度对每个可能性事件进行编码,计算他们的编码长度,最短的为熵类似哈夫曼树ÿ

熵(entropy):无损编码事件信息的最小平均编码长度

对每个可能性事件进行编码,计算他们的编码长度,最短的为熵

类似哈夫曼树,编码不能有二义性:

        例:四种事件的编码分别为 10、11、 1、110,前两种编码和后两种编码都可组成1110的编码段


编码方式猫(50%)狗(25%)猪(12.5%)兔(12.5%)编码长度
方法11011001112x50%+3x25%+1x12.5%+3x12.5%=2.25
方法20110101111x50%+3x25%+2x12.5%+2x12.5%=1.875
方法30101101111x50%+2x25%+3x12.5%+3x12.5%=1.75

熵的计算公式:Entrtopy=-\sum _{i}P(i)log_{2}P(i)

        此例的熵为

​​​​​​​50% * (-log_{2}50%)+25%* (-log_{2}50%) + 12.5% * (-log_{2}12.5%) + 12.5 * (-log_{2}12.5%)

=1.75,与方法3相同


交叉熵

我们用实际的概率分布y和预测的概率分布y_hat进行交叉熵运算

CrossEntropy=\sum _{i}y_{P(i)} log_{2}\hat{y}_{P(i)}

例题:动物数据集中有四种动物,每张照片的label都为one-hot编码

独热编码(one-hot encoding):一个向量,分量和输出类别一样多,类别对应的分量为1其他为0

动物
label[1,0,0,0][0,1,0,0][0,0,1,0][0,0,0,1]

熵:-(1log_{2}1 + 0log_{2}0+0log_{2}0+0log_{2}0) = 0

若两不同模型对猫的照片进行预测


模型

预测

1[0.5,0.2,0.1,0.3]
2[0.8,0.1,0.05,0.05]

模型1的交叉熵:-(1log_{2}0.5 + 0log_{2}0.2+0log_{2}0.1+0log_{2}0.3) = 1

模型2的交叉熵:-(1log_{2}0.8 + 0log_{2}0.1+0log_{2}0.05+0log_{2}0.05) \approx 0.3219

交叉熵越小离熵越近,越准确


推荐阅读
  • 本文详细介绍了如何在PyQt5中创建简易对话框,包括对话框的基本结构、布局管理以及源代码实现。通过实例代码,展示了如何设置窗口部件、布局方式及对话框的基本操作。 ... [详细]
  • 本文介绍了如何使用 Python 的 Pyglet 库加载并显示图像。Pyglet 是一个用于开发图形用户界面应用的强大工具,特别适用于游戏和多媒体项目。 ... [详细]
  • 使用Python构建网页版图像编辑器
    本文详细介绍了一款基于Python开发的网页版图像编辑工具,具备多种图像处理功能,如黑白转换、铅笔素描效果等。 ... [详细]
  • 深入解析Unity3D游戏开发中的音频播放技术
    在游戏开发中,音频播放是提升玩家沉浸感的关键因素之一。本文将探讨如何在Unity3D中高效地管理和播放不同类型的游戏音频,包括背景音乐和效果音效,并介绍实现这些功能的具体步骤。 ... [详细]
  • 视觉Transformer综述
    本文综述了视觉Transformer在计算机视觉领域的应用,从原始Transformer出发,详细介绍了其在图像分类、目标检测和图像分割等任务中的最新进展。文章不仅涵盖了基础的Transformer架构,还深入探讨了各类增强版Transformer模型的设计思路和技术细节。 ... [详细]
  • 探讨了在HTML表单中使用元素代替进行表单提交的方法。 ... [详细]
  • 使用Matlab创建动态GIF动画
    动态GIF图可以有效增强数据表达的直观性和吸引力。本文将详细介绍如何利用Matlab软件生成动态GIF图,涵盖基本代码实现与高级应用技巧。 ... [详细]
  • 为何Compose与Swarm之后仍有Kubernetes的诞生?
    探讨在已有Compose和Swarm的情况下,Kubernetes是如何以其独特的设计理念和技术优势脱颖而出,成为容器编排领域的领航者。 ... [详细]
  • td{border:1pxsolid#808080;}参考:和FMX相关的类(表)TFmxObjectIFreeNotification ... [详细]
  • 本文介绍了多维缩放(MDS)技术,这是一种将高维数据映射到低维空间的方法,通过保持原始数据间的关系,以便于可视化和分析。文章详细描述了MDS的原理和实现过程,并提供了Python代码示例。 ... [详细]
  • 本文详细介绍了如何在Oracle VM VirtualBox中实现主机与虚拟机之间的数据交换,包括安装Guest Additions增强功能,以及如何利用这些功能进行文件传输、屏幕调整等操作。 ... [详细]
  • 本文详细介绍了 `org.apache.tinkerpop.gremlin.structure.VertexProperty` 类中的 `key()` 方法,并提供了多个实际应用的代码示例。通过这些示例,读者可以更好地理解该方法在图数据库操作中的具体用途。 ... [详细]
  • 本文介绍了SELinux的两种主要工作模式——强制模式和宽容模式,并提供了如何在CentOS 7中正确启用和配置SELinux的方法,以及在遇到登录问题时的解决策略。 ... [详细]
  • 龙蜥社区开发者访谈:技术生涯的三次蜕变 | 第3期
    龙蜥社区的开发者们通过自己的实践和经验,推动着开源技术的发展。本期「龙蜥开发者说」聚焦于一位资深开发者的三次技术转型,分享他在龙蜥社区的成长故事。 ... [详细]
  • 问题场景用Java进行web开发过程当中,当遇到很多很多个字段的实体时,最苦恼的莫过于编辑字段的查看和修改界面,发现2个页面存在很多重复信息,能不能写一遍?有没有轮子用都不如自己造。解决方式笔者根据自 ... [详细]
author-avatar
520sweet跃_322
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有