一 、分类和回归

输出变量为有限个离散变量的预测问题成为分类问题;
输入变量与输出变量均为连续变量的预测问题是回归问题;
分类模型和回归模型本质一样,分类模型是将回归模型的输出离散化。

二 、分类和回归应用场景

1.回归问题的应用场景
回归问题通常是用来预测一个值,如预测房价、未来的天气情况等等,例如一个产品的实际价格为500元,通过回归分析预测值为499元,我们认为这是一个比较好的回归分析。一个比较常见的回归算法是线性回归算法(LR)。另外,回归分析用在神经网络上,其最上层是不需要加上softmax函数的,而是直接对前一层累加即可。回归是对真实值的一种逼近预测。

2.分类问题的应用场景
分类问题是用于将事物打上一个标签,通常结果为离散值。例如判断一幅图片上的动物是一只猫还是一只狗,分类通常是建立在回归之上,分类的最后一层通常要使用softmax函数进行判断其所属类别。分类并没有逼近的概念,最终正确结果只有一个,错误的就是错误的,不会有相近的概念。最常见的分类方法是逻辑回归,或者叫逻辑分类。

三 、举几个例子

1、 Logistic Regression 和 Linear Regression:
Linear Regression: 输出一个标量 wx+b,这个值是连续值,所以可以用来处理回归问题。
Logistic Regression:把上面的 wx+b 通过 sigmoid函数映射到(0,1)上,并划分一个阈值,大于阈值的分为一类,小于等于分为另一类,可以用来处理二分类问题。
更进一步:对于N分类问题,则是先得到N组w值不同的 wx+b,然后归一化,比如用 softmax函数,最后变成N个类上的概率,可以处理多分类问题。

2、 Support Vector Regression 和 Support Vector Machine:
SVR:输出 wx+b,即某个样本点到分类面的距离,是连续值,所以是回归模型。
SVM:把这个距离用 sign(•) 函数作用,距离为正(在超平面一侧)的样本点是一类,为负的是另一类,所以是分类模型。

神经网络用于 分类 和 回归:

用于回归:最后一层有m个神经元,每个神经元输出一个标量,m个神经元的输出可以看做向量 v,现全部连到一个神经元上,则这个神经元输出wv+b,是一个连续值,可以处理回归问题,跟上面 Linear Regression 思想一样。

用于N分类:现在这m个神经元最后连接到 N 个神经元,就有 N 组w值不同的 wv+b,同理可以归一化(比如用 softmax )变成 N个类上的概率。

拓展: 上面的例子其实都是从 prediction 的角度举例的,如果从training角度来看,分类模型和回归模型的目标函数不同,分类常见的是 log loss, hinge loss, 而回归是 square loss。

四 、损失函数

监督学习的神经网络都需要一个函数来测度模型输出值p和真实的因变量值y之间的差异,甚至有些无监督学习的神经网络也需要类似的函数。模型输出值p和真实值y之间的差异一般被称为残差或者误差,但是这个值并不能直接用来衡量模型的质量。当一个模型完美的时候,其误差为0,而当一个模型不够完美的时候,其误差不论为负值还是正值,都偏离0;因此衡量模型质量的是误差偏离0的相对值,即误差函数的值越接近于0,模型的性能越好,反之则模型的性能越差。误差函数也被称为损失函数。

损失函数的一般表示为L(y,f(x))L(y,f(x)),用以衡量真实值yy和预测值f(x)f(x)之间不一致的程度,一般越小越好。为了便于不同损失函数的比较,常将其表示为单变量的函数,在回归问题中这个变量为y−f(x)y−f(x),在分类问题中则为yf(x)yf(x)。下面分别进行讨论。

分类问题常用损失函数:

1、交叉熵损失:
这种损失函数也叫做对数损失函数,是针对分类模型的性能比较设计的,按照分类模型是二分类还是多分类的区别,可以分为二分类交叉熵和多分类交叉熵两种。交叉熵的数学表达式很简单,可以写作: H ( p ) = ∑ x ( p x l o g 1 q x ) H\left ( p \right )=\sum_{x}\left ( p_{x}log\frac{1}{q_{x}} \right ) H(p)=∑x​(px​logqx​1​)因此交叉熵可以被解释为映射到最可能的类别的概率的对数。因此,当预测值的分布和实际因变量的分布尽可能一致时,交叉熵最小。

2、Logistic loss:
logistic Loss为Logistic Regression中使用的损失函数:

3、Hinge loss:

hinge loss为svm中使用的损失函数,hinge loss使得yf(x)>1的样本损失皆为0,由此带来了稀疏解,使得svm仅通过少量的支持向量就能确定最终超平面。hinge loss被翻译为“合页损失”。

回归问题的损失函数

回归问题中yy和f(x)f(x)皆为实数∈R∈R,因此用残差 y−f(x)y−f(x)来度量二者的不一致程度。残差 (的绝对值) 越大,则损失函数越大,学习出来的模型效果就越差(这里不考虑正则化问题)。

a、均方差(MSE):

这种损失函数通常用在实数值域连续变量的回归问题上,并且对残差较大的情况给予更多的权重。

b、平均绝对差(MAE):

这种损失函数也通常用在上面提到的那类回归问题上,在时间序列预测问题中也常用。在这个误差函数中,每个误差点对总体的误差的贡献与其误差绝对值成线性比例关系,而上面介绍的MSE没有这个特性。

c、位置回归采用稳定的 Smooth L1:
SmoothL1公式 为:

参考:

https://blog.csdn.net/laobai1015/article/details/83059178
https://www.cnblogs.com/massquantity/p/8964029.html
https://blog.csdn.net/Heloiselt/article/details/79904456
https://blog.csdn.net/yunxinan/article/details/88550114

目标检测之分类、回归和损失函数相关推荐

  1. 3D点云点云分割、目标检测、分类

    3D点云点云分割.目标检测.分类 原标题Deep Learning for 3D Point Clouds: A Survey 作者Yulan Guo, Hanyun Wang, Qingyong H ...

  2. 电气领域相关数据集(目标检测,分类图像数据及负荷预测),电气设备红外测温图像,输电线路图像数据续

    另外一部分见:电气领域相关数据集(目标检测,分类图像数据及负荷预测),输电线路图像数据 1. 变电站烟火检测图像数据集(3600多张,VOC标签) 2. 导线破损检测图像数据集(有拼接增强,VOC标签 ...

  3. 目标检测中bbox回归中class-agnostic和class-specific的区别在哪?

    目标检测中bbox回归中class-agnostic和class-specific的区别在哪? (本文取自知乎问答,仅作个人学习收藏使用,文末有参考链接) 明显是网络预测的object 类别数目不同. ...

  4. 【目标检测系列】yolov3之损失函数以及边框回归pytorch源码注释以及理论理解

    1.代码下载: https://github.com/ultralytics/yolov3 2.边框回归与损失函数相关的源码,在文件utils.py中.边框回归和损失函数. 边框回归说白了就是:找到一 ...

  5. 目标检测中边框回归的直观理解 bbox regression

    目录 1 摘要 2 算法要解决的问题 3 从结果推原因,算法的实现思路 3.1 最直接的实现 3.2 合理性讨论 4 CNN的尺度不变性的影响 4.1 log函数的非线性问题 5 线性模型的损失函数 ...

  6. 综述:基于点云的自动驾驶3D目标检测和分类方法

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 参考论文:Point-Cloud based 3D Object ...

  7. 目标检测和分类的评价指标

    准确率 (Accuracy),混淆矩阵 (Confusion Matrix),精确率(Precision),召回率(Recall),平均正确率(AP),mean Average Precision(m ...

  8. 目标检测中bbox回归中class-agnostic和class-specific的区别

    明显是网络预测的object 类别数目不同. class-specific 方式,很多地方也称作class-aware的检测,是早期Faster RCNN等众多算法采用的方式.它利用每一个RoI特征回 ...

  9. 从L1 loss到EIoU loss,目标检测边框回归的损失函数一览

    本文转载自知乎,已获作者授权转载. 链接:https://zhuanlan.zhihu.com/p/342991797 目标检测任务的损失函数由Classificition Loss和BBox Reg ...

  10. 边框回归的损失函数_CVPR 2019:精确目标检测的不确定边界框回归

    本文由AI科技评论读者 BBuf 投稿 来稿见文末说明 大规模的目标检测数据集(例如MS-COCO)在进行Ground Truth框标注时仍然存在歧义.这篇论文提出了新的边界框回归损失针对目标框的移动 ...

最新文章

  1. Apache ServiceComb — Service Center
  2. python中的h5py开源库的使用
  3. C++ STL算法之accumulate函数
  4. 200725学习日报循环语句和数组
  5. 华为鸿蒙os再见了安卓,再见了安卓!华为鸿蒙OS 2.0正式登场,开机只需19秒
  6. Stacked Hourglass Networks 人体姿态检测
  7. python3 round函数
  8. 堪比黑石 花旗、摩根大通的股东 揭开贝莱德的神秘面纱
  9. iOS自动化测试---使用的相关工具
  10. 墙裂推荐几款桌面应用
  11. 5S管理跟精益生产的关系是什么?如何使5S管理有效落地?
  12. 傻子都能看懂的 财务报表入门
  13. 有些人的微信字体可以变成蓝色,点进去就可以知道答案,这是为什么呢?
  14. 微信小程序 | 微信公众平台SpringBoot开发实例 │ 表情消息
  15. 国内主要遥感期刊投稿信息
  16. 学习笔记:强化学习与最优控制(Chapter 2)
  17. BitTorrent协议DHT网络爬虫BitTorrentNetworkSpider
  18. 网络上怎么赚钱?这3个赚钱方式目前最稳妥!
  19. 语音识别ASR和NLP有什么区别?
  20. Arrays.deepToString()与Arrays.toString()的区别

热门文章

  1. Redis源码分析——用剖析工具的方式来分析Redis的底层实现细节”
  2. 云服务器怎么增加d盘_如何给日本云服务器加D盘?
  3. Redis源码学习(2),t_string.c 学习(一),Set命令实现学习
  4. laravel 图像验证码 Gregwar\\Captcha 和 mews/captcha
  5. 《有效学习》——浓缩咖啡
  6. 咖啡网站定制开发设计方案
  7. c语言编程求5的阶乘传统流程图,C语言算法第五源代码以及流程图.doc
  8. 抖音艺术签名小程序源码/艺术签名设计小程序源码/字节跳动小程序开发
  9. 鸟叔的Linux私房菜基础篇-学习笔记(七)
  10. python如何读英语_python如何提取英语pdf内容并翻译