display函数怎么使用_损失函数—深度学习常见损失函数总结【图像分类|上】
AI研习图书馆,发现不一样的精彩世界
学习
笔记
常见损失函数总结-图像分类篇【上】
一、前言在深度学习中,损失函数扮演着至关重要的角色。通过最小化损失函数,使模型达到收敛状态,减少模型预测值的误差。因此,不同的损失函数,对模型的影响是十分重大的。接下来,重点总结一下在实习工作实践中经常用到的损失函数:
- 图像分类:softmax,weighted softmax loss,focal loss,soft softmax loss,L-softmax Loss,Hinge,Exponential loss与Logistic loss
- 目标检测:Focal loss,L1/L2损失,IOU Loss,GIOU ,DIOU,CIOU
- 图像识别:Triplet Loss,Center Loss,Sphereface,Cosface,Arcface
什么是损失函数?深度学习中的损失函数(loss function)是用来评估模型的预测值-f(x)与真实值-y的不一致程度,损失函数越小,代表模型的鲁棒性越好,损失函数能指导模型学习。 二、常见图像分类损失函数2.1、0-1 loss
0-1 loss是最原始的loss,它直接比较输出值与输入值是否相等,对于样本i,它的loss等于:
当标签与预测类别相等时,loss为0,否则为1。可以看出,0-1 loss无法对x进行求导,在依赖于反向传播的深度学习任务中,无法被使用,0-1 loss更多的是启发新的loss的产生。2.2、熵与交叉熵loss物理学中的熵,表示一个热力学系统的无序程度。为了解决对信息的量化度量问题,香农在1948年提出了“信息熵”的概念,它使用对数函数表示对不确定性的测量。熵越高,表示能传输的信息越多,熵越少,表示传输的信息越少,可以直接将熵理解为信息量。
对于单个的信息源,信源的平均不确定性就是单个符号不确定性-logpi的统计平均值,信息熵的定义如下:
假设有两个概率分布p(x)和q(x),其中p是已知的分布,q是未知的分布,则其交叉熵函数是两个分布的互信息,可以反应其相关程度。至此,引出了分类任务中最常用的loss,即log loss,又名交叉熵loss,后统一称为交叉熵:
在图像分类中,经常使用softmax+交叉熵作为损失函数:
其中p(x)" role="presentation" style=" display: inline; line-height: normal; word-spacing: normal; overflow-wrap: normal; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border-width: 0px; border-style: initial; border-color: initial; ">p(x)表示真实概率分布,q(x)" role="presentation" style=" display: inline; line-height: normal; word-spacing: normal; overflow-wrap: normal; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border-width: 0px; border-style: initial; border-color: initial; ">q(x)表示预测概率分布。交叉熵损失函数通过缩小两个概率分布的差异,来使预测概率分布尽可能达到真实概率分布。后来,谷歌在交叉熵的基础上,提出了label smoothing(标签平滑)
在实际中,需要用预测概率去拟合真实概率,而拟合one-hot的真实概率函数会带来两个问题:
- 无法保证模型的泛化能力,容易造成过拟合;
- 全概率和0概率鼓励所属类别和其他类别之间的差距尽可能加大,而由梯度有界可知,这种情况很难适应,会造成模型过于相信预测的类别。
因此,为了减少这种过于自信,同时减缓人为标注的误差带来的影响,需要对p(x)" role="presentation" style=" display: inline; line-height: normal; word-spacing: normal; overflow-wrap: normal; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border-width: 0px; border-style: initial; border-color: initial; ">p(x)进行变化:其中,δ(k,y)" role="presentation" style=" display: inline; line-height: normal; word-spacing: normal; overflow-wrap: normal; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border-width: 0px; border-style: initial; border-color: initial; ">δ(k,y)为Dirac函数,u(k)" role="presentation" style=" display: inline; line-height: normal; word-spacing: normal; overflow-wrap: normal; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border-width: 0px; border-style: initial; border-color: initial; ">u(k)为均匀分布。简单而言,降低标签y的置信度,提高其余类别的置信度。从而,交叉熵变成:
2.3、softmax loss及其变种假如log loss中的f(x)的表现形式是softmax概率的形式,那么交叉熵loss就是熟知的softmax with cross-entropy loss,简称softmax loss,所以说softmax loss只是交叉熵的一个特例。softmax loss被广泛用于分类分割等任务,且发展出了很多的变种,有针对不平衡样本问题的weighted softmax loss,focal loss,针对蒸馏学习的soft softmax loss,促进类内更加紧凑的L-softmax Loss等一系列的改进。
限于篇幅,更多精彩,请关注下期内容~
推荐阅读文章
[1] AI入门-人工智能的前世今生[2] AI入门-深度学习综述[3] AI入门-计算机视觉学习指南[附资源][4] 深度学习框架总结—国际篇[5] 深度学习-CNN结构设计技巧[6] 资源分享-深度学习及数据分析等资源合集
[7] 今日分享—统计学习方法
[8] 算法总结—人脸检测算法
Bilibili : 洛必达数数CSDN博客:算法之美DLGitHub:statisticszhang关注AI研习图书馆,发现不一样的精彩世界
display函数怎么使用_损失函数—深度学习常见损失函数总结【图像分类|上】相关推荐
- 多分类svm的hinge loss公式推导_损失函数—深度学习常见损失函数总结【图像分类|下】...
点击蓝字关注我们 AI研习图书馆,发现不一样的精彩世界 学习 笔记 常见损失函数总结-图像分类下篇 一.前言 在深度学习中,损失函数扮演着至关重要的角色.通过最小化损失函数,使模型达到收敛状态,减少模 ...
- 深度学习常见损失函数总结+Pytroch实现
文章目录 一.引言 二.损失函数 1.均方差损失(Mean Squared Error Loss) 2.平均绝对误差损失(Mean Absolute Error Loss) 3.交叉熵(Cross E ...
- 深度学习机器臂控制_人工智能深度学习算法在工业机械臂上的应用
从功能上来说,你这个应用非常适合采用深度学习,事实上,深度学习本质上就是用来做分类识别的,尤其是针对零件与零件之间,图像上差异比较小的时候(比如你需要自动分拣A,B,C三种零件,但其形状差别很小),更 ...
- 神经网络模型中class的forward函数何时调用_总结深度学习PyTorch神经网络箱使用...
↑ 点击蓝字 关注极市平台来源丨计算机视觉联盟编辑丨极市平台 极市导读 本文介绍了Pytorch神经网络箱的使用,包括核心组件.神经网络实例.构建方法.优化器比较等内容,非常全面.>>加入 ...
- 获取分辨率函数是什么_使用深度学习来实现超分辨率的介绍
编辑:zero 关注 搜罗最好玩的计算机视觉论文和应用,AI算法与图像处理 微信公众号,获得第一手计算机视觉相关信息 本文转载自:公众号:AI公园 作者:Bharath Raj 编译:ronghuai ...
- 深度学习模型建立过程_所有深度学习都是统计模型的建立
深度学习模型建立过程 Deep learning is often used to make predictions for data driven analysis. But what are th ...
- 深度学习将灰度图着色_通过深度学习为视频着色
深度学习将灰度图着色 零本地设置/ DeOldify / Colab笔记本 (Zero Local Setup / DeOldify / Colab Notebook) "Haal Kais ...
- 深度学习:在图像上找到手势_使用深度学习的人类情绪和手势检测器:第1部分
深度学习:在图像上找到手势 情感手势检测 (Emotion Gesture Detection) Has anyone ever wondered looking at someone and tri ...
- 深度学习之损失函数小结
深度学习之损失函数小结 开篇 损失函数在深度学习中的作用相当于引领模型学习的方式,其重要程度不言而喻: 下图为一些损失函数的关系: Sigmoid和Softmax损失 Sigmoid公式:S(x)=1 ...
最新文章
- 【MATLAB】单元数组类型
- 巩固一下C语言中的指针
- jQuery中实现全选功能时使用attr( )改变checked值只能生效一次的问题
- 【鬼网络】之Linux网络设置
- 应理解计算机专业的学科特点,职业高中计算机专业测验试题编写的策略初探.doc...
- 调取百度地图接口,实现取自己的实时位置,然后可以在百度地图上添加信息标注...
- Java并发编程-ReadWriteLock读写锁
- 语义分割网络-Segnet
- Unity3D射击小游戏Demo开发
- 北京邮电大学计算机考研拟录取名单,北京邮电大学研究生拟录取名单2021公示...
- react+ant启动服务时太慢解决方案
- 浅析爱心代码的绘制思路——python实现
- 物联网芯片的协议之WLAN及其调制
- 福利来了 | 开发者社区布道师计划,奖品丰厚
- ajax发送请求的数据结构
- Scrapy爬取IT桔子死亡公司库及资本机构数据
- 华为云CDN,给企业发展按下“加速键”
- iMX6ULL RTL8723BU WiFi蓝牙模块
- 2022-2028全球军用级电脑行业调研及趋势分析报告
- 职场选择,也许该考虑一下“增长黑客”?
热门文章
- java的set接口_Java集合-Set接口
- 电气期刊论文实现:热电联产经济调度【有代码】
- 免疫算法(二进制)算例(源码实现)
- wxWidgets:操作档案manipulate archives的示例应用程序
- boost::units模块单位/数量操作和转换的测试程序
- boost::statechart模块实现无效转换测试
- boost::smart_ptr模块智能指针测试程序
- boost::mpi模块对gather() 和gatherv() 集合的测试
- boost::mp11::mp_fold相关用法的测试程序
- boost::fusion::filter_view用法的测试程序