参考Understanding binary cross-entropy / log loss

一、Introduction

训练一个二元分类器( binary classifier)的时候,往往会用到binary cross-entropy / log loss作为损失函数。下面详细介绍这个损失函数binary cross-entropy

二、A Simple Classification Problem

比如说给10个点分类,只有两个类别:Green or Red。设Green为positive,label=1,Red为negative,label=0.

训练一个bianry classifier的作用就是得出某一个点属于positive的概率。

评估预测概率的好坏标准:损失函数binary cross-entropy

三、Loss Function: Binary Cross-Entropy / Log Loss

  • y is the label (1 for positive points and 0 for negative points)
  • p(y) is the predicted probability of the point being positive for all N points.

公式设计的目的:(注:p(y)代表该样本属于positive的概率 )

  • 对于positive样本 y=1,loss= - log(p(y)) , 当p(y)越大时,loss越小。最理想情况下p(y)=1,loss=0

  • 对于negative样本 y=0,loss= - log(1-p(y)), 当p(y)越小时,loss越小。最理想情况下p(y)=0,loss=0

因此 Binary Cross-Entropy 作为损失函数能够度量分类的准确性。降低loss的过程就使得

  • y=1的样本,得到的预测概率p(y)变大
  • y=0的样本,得到的预测概率p(y)变小

四、补充:

Entropy

熵(entropy)用来衡量一个分布q(y)的不确定性。假如样本全是positive的,那就没有不确定性了,因为样本必然是positive的,此时熵=0 。当样本一半是positive一半是negative的时候,不确定性是最大的,此时熵也是最大的。

熵的计算公式:

Cross-Entropy

q(y)是真实分布,p(y)是预测的分布。计算两个分布之间的交叉熵:

假设模型完美,则q(y)=p(y),此时会有 交叉熵 = 熵。但这基本不可能,一般交叉熵会比在真实分布上计算出来的熵要大:

这个差值叫KL散度

Kullback-Leibler Divergence

KL Divergence用来衡量两个分布之间的不相似性(dissimilarity )。

两个分布越相似,KL散度值越小。

Binary Cross Entropy相关推荐

  1. 快速理解binary cross entropy 二元交叉熵

    Binary cross entropy 二元交叉熵是二分类问题中常用的一个Loss损失函数,在常见的机器学习模块中都有实现.本文就二元交叉熵这个损失函数的原理,简单地进行解释. 首先是二元交叉熵的公 ...

  2. Binary Cross Entropy真的适合多标签分类吗?

    个人曾在负责一个多标签文本分类项目时对于多标签分类(multi-label classification)的loss选择.forward尾层处理感到迷惑,当时查找了一下资料确定了一种方案: 1.以类别 ...

  3. smooth l1(huber)+binary cross entropy详解(tensorflow+pytorch)

    前言 上篇讲到yolo v2 loss中使用了两个loss分别时wh使用的smoothl1 loss以及其他的BCEloss,这里做个扩展介绍,并对比pytorch以及tensorflow的api接口 ...

  4. AAAI 2019 Oral | 把Cross Entropy梯度分布拉‘平’,就能轻松超越Focal Loss

    单阶段物体检测(One-stage Object Detection)方法在模型训练过程中始终面临着样本分布严重不均衡的问题,来自香港中文大学的研究者们在论文 Gradient Harmonized ...

  5. python损失函数实现_pytorch 实现cross entropy损失函数计算方式

    均方损失函数: 这里 loss, x, y 的维度是一样的,可以是向量或者矩阵,i 是下标. 很多的 loss 函数都有 size_average 和 reduce 两个布尔类型的参数.因为一般损失函 ...

  6. 平均符号熵的计算公式_交叉熵(Cross Entropy)从原理到代码解读

    交叉熵(Cross Entropy)是Shannon(香浓)信息论中的一个概念,在深度学习领域中解决分类问题时常用它作为损失函数. 原理部分:要想搞懂交叉熵需要先清楚一些概念,顺序如下:==1.自信息 ...

  7. 交叉熵损失(Cross Entropy Loss)计算过程

    交叉熵损失(Cross Entropy Loss)计算过程_藏知阁-CSDN博客_交叉熵计算公式

  8. TensorFlow学习笔记(二十三)四种Cross Entropy交叉熵算法实现和应用

    交叉熵(Cross-Entropy) 交叉熵是一个在ML领域经常会被提到的名词.在这篇文章里将对这个概念进行详细的分析. 1.什么是信息量? 假设是一个离散型随机变量,其取值集合为,概率分布函数为 p ...

  9. TensorFlow四种Cross Entropy算法实现和应用

    交叉熵介绍 交叉熵(Cross Entropy)是Loss函数的一种(也称为损失函数或代价函数),用于描述模型预测值与真实值的差距大小,常见的Loss函数就是均方平方差(Mean Squared Er ...

最新文章

  1. RedHat 6编译升级vsftpd
  2. arcgis和matlab,ArcGIS和MATLAB应用并不困难
  3. linux命令:返回上一次目录
  4. 【设计模式】—— 模板方法Template
  5. SAP Commerce Cloud如何针对Spartacus进行安装
  6. python串口通讯数据过长_Python 串口通讯
  7. javafx 自定义控件_JavaFX自定义控件– Nest Thermostat第1部分
  8. mcrp 对接软件换
  9. Android软件开发-ProgressBar
  10. 一道头条面试题,小夕差点没读懂题目,找出数组中缺失的数字,最近击败100%的用户!...
  11. 去银行写代码是种什么体验?
  12. NLP数据标注常用工具汇总
  13. android o car模块,CarPlay for Android: Bonjour 及 插件源码移植问题分析
  14. 5.3 数值分析: 差商的定义及性质
  15. 博弈逻辑与布尔判断题
  16. Python爬虫(三):python抓取网页中的图片到本地
  17. 文档无法保存 读取文档时出现问题(135)
  18. 代码庆端午--粽你心意
  19. 20190919CF训练
  20. Vue2 面试题总结1(笔记自用)

热门文章

  1. emoji mysql 乱码 php_MYSQL utf8mb4 插入emoji表情乱码
  2. 教你用Python将图片转化为字符画!附源代码
  3. java蓝桥杯加法变乘法_蓝桥杯-加法变乘法-java
  4. 仓库管理系统软件哪个好
  5. HTTP状态码含义:428、429、431、511431状态码详解
  6. 【论文写作】用对模板,一周码完一篇SCI初稿!
  7. hihoCoder #1135 : Magic Box
  8. MATLAB绘图与图形处理(2)
  9. 人工智能站在风口 云计算指数大涨7.96%
  10. 关于PE4259等各类射频开关选型对比分析