损失函数约束类间不一致性及类内一致性
参考书籍:Python深度学习-基于PyTorch
交叉熵损失函数对不同类之间的距离的区分性较小。原因:softmax具备分类能力但是不具备度量学习的特征,没法压缩同一类别。因此,研究者们提出了几种损失函数。
(1)三元组损失Triplet loss
三元组损失属于度量学习,通过计算两张图象之间的相似度,使得输入图像被归入到相似度大的图像类别中去。
L t = ∑ [ ∥ f ( x i a ) − f ( x i p ) ∥ 2 2 − ∥ f ( x i a ) − f ( x i n ) ∥ 2 2 + α ] + L_t=\sum [\left \| f(x_{i}^{a}) -f(x_{i}^{p}) \right \|_{2}^{2}-\left \| f(x_{i}^{a}) -f(x_{i}^{n}) \right \|_{2}^{2}+\alpha ]_{+}L 
t
​    
 =∑[∥f(x 
i
a
​    
 )−f(x 
i
p
​    
 )∥ 
2
2
​    
 −∥f(x 
i
a
​    
 )−f(x 
i
n
​    
 )∥ 
2
2
​    
 +α] 
+
​    
 
∑ \sum∑表示一个batch内所有图像的损失和,x i a 、 x i p 、 x i n x_{i}^{a}、x_{i}^{p}、x_{i}^{n}x 
i
a
​    
 、x 
i
p
​    
 、x 
i
n
​    
 为每次从训练数据中去除的3张图像,前两项为同一类,第三项为不同类。||表示欧式距离。[ ] + []_{+}[] 
+
​    
 表示当括号内值大于0时,为括号内值,否则取0。
优点:使用量化学习解决特征表示的类别间距问题;缺点:在训练过程中,对元组的选择的要求的技巧较高,而且要求数据集比较大。
(2)中心损失Center Loss
Center Loss用于压缩同一类别,为每个类别提供一个类别中心,最小化每个样本与其类别中心的距离。
L c = ∑ ∥ x i − c y i ∥ 2 2 L_c=\sum\|x_i-c_{y_i}\|_2^2L 
c
​    
 =∑∥x 
i
​    
 −c 

i
​    
 
​    
 ∥ 
2
2
​    
 。其中,x i x_ix 
i
​    
 为一个样本,y i y_iy 
i
​    
 为对应样本类别,c y i c_{y_i}c 

i
​    
 
​    
 为该类别中心。该损失函数可较好的解决类间内聚性。利用中心损失的同时,一般还会加上softmax损失以保证类间的可分性。所以,最终的损失函数包括softmax损失和中心损失。L = λ × L c + L s o f t m a x L=\lambda \times L_c+L_{softmax}L=λ×L 
c
​    
 +L 
softmax
​    
 .其中,λ \lambdaλ用于平衡两种损失函数,该权重越大,生成的特征就会越具有内聚性。优点:训练得到的特征具有内聚性;缺点:当类别数目较多时(>10000)时,内存消耗大,对GPU的要求非常高。
(3)ArcFace损失additive angular margin loss该损失函数使用归一化的网络权重和偏差来计算损失函数,对原输出ω y i T x i + b y i \omega_{y_i}^Tx_i+b_{y_i}ω 

i
​    
 
T
​    
 x 
i
​    
 +b 

i
​    
 
​    
 可转化为∣ ω y i ∣ ⋅ ∣ x i ∣ ⋅ c o s ( θ ) |\omega_{y_i}|\cdot|x_i|\cdot cos(\theta)∣ω 

i
​    
 
​    
 ∣⋅∣x 
i
​    
 ∣⋅cos(θ),θ \thetaθ 为ω y i , x i \omega_{y_i},x_iω 

i
​    
 
​    
 ,x 
i
​    
 之间的角度。对输出归一化为s ⋅ ( c o s ( θ y i ) + m ) s\cdot(cos(\theta_{y_i})+m)s⋅(cos(θ 

i
​    
 
​    
 )+m)得到新的损失函数为
优点:不仅对权重进行了正则化,对特征也进行了正则化。
————————————————
版权声明:本文为CSDN博主「lovely_smile」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lovely_smile/article/details/109404895

损失函数约束类间不一致性相关推荐

  1. 迁移学习领域自适应:具有类间差异的联合概率最大平均差异

    ©PaperWeekly 原创 · 作者|张玮玮 学校|东北大学硕士生 研究方向|情感识别 论文标题:Discriminative Joint Probability Maximum Mean Dis ...

  2. 类间关系有很多种 UML

    类间关系有很多种 UML 快速总结: 详情: 类间关系有很多种,在大的类别上可以分为两种:纵向关系.横向关系. 纵向关系就是继承关系 泛化(generalization): 实现(realizatio ...

  3. 线性判别分析(Linear Discriminant Analysis, LDA)(含类内散度矩阵 类间散度矩阵 全局散度矩阵推导

    LDA算法概述: 线性判别式分析(Linear Discriminant Analysis, LDA),也叫做Fisher线性判别(Fisher Linear Discriminant ,FLD),是 ...

  4. 类间样本数量不平衡对分类模型性能的影响问题

    我在做人脸检测试验的时候,发现了问题,别人的二分类器(判别是不是人脸)的阈值很高,大于90%点概率,而我的阈值要设置的很低10%点概率即认为是脸,经过观察,我的负样本数数量上比正样本数多的太多了,导致 ...

  5. 图像二值化----otsu(最大类间方差法、大津算法)(二)

    转自:http://blog.stevenwang.name/ostu-threshold-56002.html OTSU算法也称最大类间差法,有时也称之为大津算法,被认为是图像分割中阈值选取的最佳算 ...

  6. OTSU算法(也称最大类间差法,有时也称之为大津算法)

    在图像处理应用中二值化操作是一个很常用的处理方式,例如零器件图片的处理.文本图片和验证码图片中字符的提取.车牌识别中的字符分割,以及视频图像中的运动目标检测中的前景分割,等等. 较为常用的图像二值化方 ...

  7. 图像二值化之最大类间方差法(大津法,OTSU)

    参考文章1:图像二值化与otsu算法介绍 参考文章2:python opencv cv2.threshold() (将固定级别的阈值应用于每个数组元素)ThresholdTypes 最大类间方差法(大 ...

  8. Ostu最大类间差方法

    Ostu方法又名最大类间差方法,通过统计整个图像的直方图特性来实现全局阈值T的自动选取,其算法步骤为: 1) 先计算图像的直方图,即将图像所有的像素点按照0~255共256个bin,统计落在每个bin ...

  9. 【机器视觉学习笔记】大津法/Otsu最大类间方差法 最佳阈值处理(C++)

    目录 概念 C++源码 OtsuThreshold 主函数 效果 完整源码 平台:Windows 10 20H2 Visual Studio 2015 OpenCV 4.5.3 本文所用源码修改自C+ ...

最新文章

  1. 英伟达颠覆CPU!Arm架构专为AI而生,性能超x86十倍
  2. c语言字符串文库总结,C语言字符串.ppt
  3. js(小程序或JavaScript)中[]、{}、()区别
  4. lucene学习笔记_学习Lucene
  5. Java学习的5个阶段,助大家步步攀升
  6. 解析Tensorflow官方PTB模型的demo
  7. SpringBoot的@Conditional和自动配置类生效
  8. 关于“WARN: SQL Error: 1366, SQLState: HY000”错误的解决方案
  9. 枚举编写单例是可以保证在多线程中的安全性
  10. 用ajax向处理页面传送路径问题解决方法
  11. pc电脑上浏览手机网站在线wap浏览器或模拟器软件
  12. java实现IP归属地查询
  13. js-页面需展示大量图片时,采用lyz.delayLoading.min.js,图片在屏幕时加载显示
  14. laytpl--前端数据绑定 (示例)
  15. golang bilibili直播弹幕姬
  16. VScode下使用MySQL
  17. 高性能的随机数算法std::mt19937
  18. Linux之ELF文件初探 ---(elf源码)
  19. 微信小程序-----身份证校验
  20. LeetCode189.轮转数组

热门文章

  1. oracle增量备份如何恢复,【Oracle】增量备份和全库备份怎么恢复数据库
  2. php函数默认参数不传值报错,php 关于函数参数的默认值
  3. fpga如何约束走线_FPGA中的CLOCK REGION和SLR是什么含义
  4. 编程求文件file1中数据的平均值,并将其与平均值最接近的数删除
  5. 如何基于Kubernetes构建完整的DevOps流水线
  6. Android——与查询联系人相关的3张表
  7. node.js——麻将算法(六)简易版麻将出牌AI1.0
  8. SQL Server 2012入门T-SQL基础篇:(1)环境准备
  9. Android--MP3播放器MediaPlayer
  10. mysql prepare原理