(四) 开集识别学习 open-set recognition(OSR)
前言:目前基于CNN方式的开集识别的方案最为经典的要数openmax方法,但是目前所能查到的资料对openmax解读的资料实在是太少,
所以这里通过对openmax的实现过程进行讲解以达到理解的目的
1、开集识别学习路径
开始根据自己的遇到的情况进行查询,发现开放长尾识别问题中的开放问题就是目前自己遇到的问题,下面这张图很清晰的展示常见任务的划分标准,后续查询到了自己遇到的问题可以更为具体的归属为开集识别的问题,所以后续一直查询开集识别的一些问题,Google Youtube找到了一些资料,思路清晰了很多。
2、开集识别的思路(待完善)
以下思路来自:开集识别的综述
首先综述写道:现实生活中很常见开集识别的场景,但是收集所有的场景图像是不现实的,所以需要开集识别问题的研究,并且开集识别OSR和zero-shot, one-shot (few-shot) recognition/learning techniques, classification with reject option 问题挺接近的,但是仔细对比可以发现,OSR更难,比如和 one-shot对比,OSR不仅要识别具体的种类还要对未知的类别进行拒绝,下图为几种任务之间的区别,主要就是根据数据的不同分布来制定不同的解决方案。
其中在开集识别中可以把数据分为 KKCS (known known classes)、 KUCS(known unknown classes)、 UKCS 、 UUCS四种,其中可以简单的认为 OSR就是想根据KKCS拒绝 UUCS.
其中大家可能在看KUCS 的时候比较有争议或者疑问,这部分数据首先归类为已知数据,但是没有具体的标签,比如我们要做一个猫狗识别的模型,我们还有另外的一些数据比如手机、大象等等,我们统一的将这些图像归为other类,也就是已知不是猫狗类,但是具体是哪一类没有标签。
OSR开集识别可以分为两种大的模型,基于判别模型和基于生成模型,其中基于判别模型的又可以分为基于 ML 和 基于 DNN ,其中基于ML的方式就是聚类类似或者使用1VSall的方式;基于DNN的方式就是使用卷积神经网络,其中又分为是否使用EVT方式。基于生成模型就是利用数据生成的手段进行处理,常见的一种方式就是生成虚假的未知类别图像对模型进行feed。
下面这张图展示了目前OSR领域的不同方向以及进展
目前这篇文章对目前开集识别的研究了一个综述(这篇文章是2020的survey),所以还是非常有参考意义的。
个人思考:
就我目前的情况来说,本人更加偏向使用基于DNN的方式,一是卷积神经网络相对于传统机器学习模型拥有更强大的特征表达能力,二是生成模型生成的数据的可信度和用生成的数据feed模型得到的结果存疑,最好的数据还是真实的数据,只有数据较少且目前的解决方案无法解决目前的问题的时候才可以考虑生成方式(本人的研究方向非生成方向,所以不甚了解)。
所以后续的开集识别的解决方案还是基于卷积的操作
后续的解决方案:(后续博客中持续更新)
基于 feature 的度量学习(聚类,改loss,改model等操作)
基于较为经典的 Openmax 的实现方式(参照openmax提出的paper)
(四) 开集识别学习 open-set recognition(OSR)相关推荐
- 开集识别(Open Set Recognition, OSR)算法:《Towards Open Set Deep Networks》OpenMax
写完了论文,重新梳理一下,以后不再更新. 1.相关论文源码 <Towards Open Set Deep Networks>即OpenMax源码:https://github.com/ab ...
- (二)开集识别学习 open-set recognition(OSR)
前言:在开集识别的学习中,也是进行的一步步的摸索,一开始发现模型上线后变现不是很好,后来找到原因就是因为线上的图像太复杂了, 没有开集识别的模型是不可靠的,所以就进行了开集识别,接下来记录下学习的记录 ...
- open-set recognition(OSR)开集识别
开集识别 闭集识别 训练集中的类别和测试集中的类别是一致的,最常见的就是使用公开数据集进行训练,所有数据集中的图像的类别都是已知的,没有未知种类的图像.传统的机器学习的算法在这些任务上已经取得了比 ...
- open-set recognition(OSR)开集识别的一些思考(二)
前言:在开集识别的学习中,也是进行的一步步的摸索,一开始发现模型上线后变现不是很好,后来找到原因就是因为线上的图像太复杂了,没有开集识别的模型是不可靠的,所以就进行了开集识别,接下来记录下学习的记录供 ...
- open-set recognition(OSR)开集识别的一些思考(一)
开集识别是一个在现实世界中很常见的一个问题,但是这个问题只有你在真正实施项目的时候才会遇到,使用公开数据集是不会遇到这个问题的. 当你看到这篇文章的时候就默认你大致了解开集识别是什么了 下面就是干货了 ...
- 真实世界中的开集识别问题(Open-Set Recognition Problem)
闭集与开集分类问题 闭集分类问题(closed-set problem),即测试和训练的每个类别都有具体的标签,不包含未知的类别(unknown category or unseen category ...
- 离群?异常?新类?开集?分布外检测?一文搞懂其间异同!
来源:机器之心 本文约4400字,建议阅读8分钟 重磅综述让你对开放世界领域有全新的认识! 你是否也曾迷惑于「离群检测,异常检测,新类检测,开集识别,分布外检测」之间错综复杂的关系?你是否也想要解决开 ...
- Recent Advances in Open Set Recognition A survey全文翻译精校
开放集识别的最新进展:综述 耿传兴,黄圣君,陈松灿 摘要--在现实世界的识别/分类任务中,由于受到各种客观因素的限制,在训练一个识别器或分类器时,通常很难收集训练样本来用尽所有类.更现实的场景是开放集 ...
- 异常检测 and 开集识别(2)
文章目录 前言 一.开集识别的演变 二.开集识别技术分类 三.目前先进的开集识别算法 1.OpenMax 2.G-OpenMax 3.CROSR 4.MLOSR 总结 前言 本文是本人在学习开集识 ...
最新文章
- Mob之社会化分享集成ShareSDK
- oracle10g获取Date类型字段无时分秒解决办法!
- Python的垃圾回收机制(引用计数+标记清除+分代回收)
- 章节七、4-Sets
- UA OPTI570 量子力学33 Time-dependent Perturbation基础
- .Net中url传递中文的解决方案
- java mockserver搭建_搭建Mock Server
- 直接调用支持ACE的product search API
- java中,在一个有序数组中插入元素,使得数组保持有序排列
- django之auth模块
- 体验 Vista Speech Recognition,使梦想成为可能
- matlab rand函数
- Hotel 旅馆 题解(From luoguBlog)
- 将Session写入数据库
- 硬件描述测试软件库中74138,杭电数电实验课内题设计答案.docx
- VISIO各种图标超全(IT行业专用网络及硬件)_几招教你如何轻松解决视频行业痛点...
- Setup Time 、Hold Time、Setup check、Hold check,同步异步 及违例修复
- USB大容量存储设备浅析
- ArcGIS如何画中国地图
- MSP430通过IAR下载时出现的Failed to load debugee: C:\XX\XXIAR\Release\Exe\Wireless measurement.txt无法下载程序的问题