cross entropy 交叉熵的概念网上一大堆了,具体问度娘,这里主要介绍深度学习中,使用交叉熵作为类别分类。

1、二元交叉熵 binary_cross_entropy

   我们通常见的交叉熵是二元交叉熵,因为在二分类中的交叉熵可以比较方便画出图像来,如下图,为“二元交叉熵”,

当我们的label标注结果0时,如下图右侧曲线,当预测结果为1时,返回的loss 无穷大,反之,loss 与 label标注结果一致都为0时,

loss = 0。  当我们的label标注结果1时, 同理。

2、多元交叉熵 softmax_cross_entropy,sigmoid_cross_entropy

我们在生活中通常事物的类别不是二分类,对与错的,通常是有多个类别,比如,动物有:猫,鱼,狗,马....等。因此,多分类的loss必不可少,

下面是“多元交叉熵”的公式,二元交叉熵是0是一类,1是一类,但是多远交叉熵有多个类别,如何处理?这时候也就要使用机器学习中常用的One_hot。

当我们神经网络有多个类别是,我们输出神经元数量通常是多个的,然后取输出的最大的作为类别,这是时候,我们通常要对需要分类的目标做一个简单

的编码,比如:猫:1,鱼:2,狗:3,马:4, (0:通常是背景or其他类别),这样,比如当前样本label是马:4,我们的 One_hot = [0,0,0,0,1],每个位置为

0和1的值,这时候就可以将多分类“变成” 多个二分类,如下图:其中yi就是某个类别的label,h(xi)是模型类别输出的结果。

3、softmax_cross_entropy,sigmoid_cross_entropy的区别,字面上区别就是:softmax,sigmoid。其实通过上面分析,我们的cross_entropy的定义域(自变量)

的取值范围是0-1的,然而模型神经元输出(通常最后一层不加激活函数)是[-,+] 负无穷到正无穷的。因此需要将我们的数值转变到 0-1,目前常用的2中转变方式,

“应运而生”,如下图:

  

注:

softmax图来源:https://www.cnblogs.com/alexanderkun/p/8098781.html

sigmoid 图来源 :https://baike.baidu.com/item/Sigmoid%E5%87%BD%E6%95%B0/7981407?fr=aladdin

最新文章

  1. Git凭证存储(简单易懂,一学就会,认真看)
  2. java 内存模型
  3. 微软职位内部推荐-Senior SDE for Cloud Platform
  4. thinkphp 内置函数详解
  5. bzoj 1912 : [Apio2010]patrol 巡逻 树的直径
  6. JAVA技术交流群
  7. Arrays.asList()
  8. highcharts分段显示不同颜色
  9. c# 虚函数 ,抽象类
  10. 如何解决Angular网页内嵌推特时间线无法正常显示
  11. Java虚拟机-对象的创建和访问
  12. Servlet中清除session
  13. python编程 之 json包
  14. .net core在Linux下获取AD域信息
  15. 【Elasticsearch】Elasticsearch在windows下的安装方法
  16. github与本地电脑关联配置
  17. c++ STL map 结构体
  18. /dev/poll, kqueue(2), event ports, POSIX select(2), Windows select(), poll(2), and epoll(4)
  19. Codeforces Round #517 Div. 1翻车记
  20. 【c#】winform 上传图片

热门文章

  1. C# .NET 按ASCII 从小到大排序
  2. 作业-haproxy配置文件的增删查(有一个bug不知道咋改)
  3. 【mark】OS是否使用svc方式分开系统空间和用户空间的优劣
  4. 使用VISIO远程服务器上的ORACLE数据库,反向生成数据库实体关系图
  5. bzoj5107: [CodePlus2017]找爸爸
  6. Webpack 学习总结
  7. ring0与ring3通信方式
  8. mybatis 日志的使用以及设计
  9. 关于Spring的Quartz定时器设定
  10. ngnix和负载均衡