【开放集检测OSR】开放集检测和闭集检测的区别和联系:从模型角度进行理解

2023-12-08 10:05

本文主要是介绍【开放集检测OSR】开放集检测和闭集检测的区别和联系:从模型角度进行理解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

定义一个分类器:

D t r a i n = { ( x i , y i ) } i = 1 N ⊂ X × C D_{train} = \{(x_i, y_i)\}^N _{i=1} ⊂ X × C Dtrain={(xi,yi)}i=1NX×C

  • X:输入空间
  • ( x i , y i ) (x_i, y_i) (xi,yi): 输入的图像x以及其对象的类别标签y
  • C :已知类的集合

1 For closed-set 闭集检测

测试时:用于测试模型性能的图像也都属于已知类别 C C C

D t e s t − c l o s e d = { ( x i , y i ) } i = 1 M ⊂ X × C D_{test-closed} = \{(x_i, y_i)\}^M _{i=1} ⊂ X × C Dtestclosed={(xi,yi)}i=1MX×C

  • 模型最终会返回一个概率分布: p ( y ∣ x ) p(y|x) p(yx)

分类器为每个输入示例x返回一个关于已知类别的概率分布 p ( y ∣ x ) p(y|x) p(yx),意味着对于给定的输入示例x,分类器会生成一个概率分布,其中每个类别y都对应一个概率值。这个概率值表示分类器对于该输入示例属于每个已知类别的置信度或可能性。

解析

具体而言,对于每个已知类别 c ∈ C c ∈ C cC,分类器会计算条件概率 p ( y = c ∣ x ) p(y=c|x) p(y=cx),表示在给定输入示例x的条件下,该示例属于类别c的概率。这样,对于每个输入示例x,分类器会为每个已知类别c生成一个概率值,最终形成一个概率分布 p ( y ∣ x ) p(y|x) p(yx),其中概率值的总和为1。

通过这个概率分布,我们可以了解分类器对于每个已知类别的相对置信度。通常情况下,预测类别会选择具有最高概率值的类别,因为它被认为是最有可能的类别。

这种概率分布的输出使我们能够获得更多关于分类器对于每个输入示例的不确定性和置信度的信息。它可以帮助我们进行后续的决策和分析,比如设置一个概率阈值来确定分类结果或者进行不确定性建模。

2 For open-set 开放集检测

测试时:用于测试模型性能的图像不仅仅属于已知类别 C C C,还可能属于位置类别 U U U

D t e s t − o p e n = { ( x i , y i ) } i = 1 M ′ ⊂ X × ( C ⋃ U ) D_{test-open} = \{(x_i, y_i)\}^{M'} _{i=1} ⊂ X × (C \bigcup U) Dtestopen={(xi,yi)}i=1MX×(CU)

  • 返回的概率分布: p ( y ∣ x , y ⊂ C ) p(y|x,y\subset C) p(yx,yC) over known classes (理解:输入的图像为已知类的概率)

  • 返回一个分数score: S ( y ∈ C ∣ x ) S(y\in C|x) S(yCx) indicate whether or not the test sample belongs to any of the known classes.

解析

在这种情况下,模型需要处理两种情况:已知类别和未见类别。

  • 对于已知类别 C C C,模型会计算条件概率 p ( y ∈ C ∣ x ) p(y ∈ C|x) p(yCx),表示在给定输入示例x的条件下,该示例属于任何已知类别的概率。这样,模型可以返回一个关于已知类别的概率分布 p ( y ∣ x , y ∈ C ) p(y|x, y ∈ C) p(yx,yC),用于表示模型对于每个已知类别的置信度

  • 同时,模型还会返回一个分数 S ( y ∈ C ∣ x ) S(y ∈ C|x) S(yCx),该分数用于指示测试样本是否属于任何已知类别。 这个分数可以是一个连续值或二进制值,表示测试样本属于已知类别的程度。较高的分数表明测试样本更有可能属于已知类别,而较低的分数则表明测试样本可能属于未见类别 U U U

3 关于概率分布 p ( y ∣ x ) 和 p ( y ∣ x , y ∈ C ) p(y|x)和p(y|x, y ∈ C) p(yx)p(yx,yC)

关系:

  • p(y|x):表示在给定输入示例x的条件下,该示例属于类别y的概率。这是一个针对已知类别的条件概率分布,在封闭集合的情景下使用。
  • p(y|x, y ∈ C):表示在给定输入示例x的条件下,该示例属于任何已知类别y的概率。这也是一个针对已知类别的条件概率分布,但在开放集合的情景下使用。

区别:

  • 范围:概率分布p(y|x)仅考虑已知类别C,而概率分布p(y|x, y ∈ C)同时考虑已知类别C和未知类别U。
  • 输出:概率分布p(y|x)仅给出关于已知类别的概率信息,而概率分布p(y|x, y ∈ C)还会给出关于已知类别的分数信息,用于指示测试样本是否属于已知类别。
  • 用途:概率分布p(y|x)主要用于封闭集合的分类任务,而概率分布p(y|x, y ∈ C)主要用于开放集合的分类任务,可以处理未见过的类别U。

这篇关于【开放集检测OSR】开放集检测和闭集检测的区别和联系:从模型角度进行理解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/469442

相关文章

Java中的String.valueOf()和toString()方法区别小结

《Java中的String.valueOf()和toString()方法区别小结》字符串操作是开发者日常编程任务中不可或缺的一部分,转换为字符串是一种常见需求,其中最常见的就是String.value... 目录String.valueOf()方法方法定义方法实现使用示例使用场景toString()方法方法

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

Python使用自带的base64库进行base64编码和解码

《Python使用自带的base64库进行base64编码和解码》在Python中,处理数据的编码和解码是数据传输和存储中非常普遍的需求,其中,Base64是一种常用的编码方案,本文我将详细介绍如何使... 目录引言使用python的base64库进行编码和解码编码函数解码函数Base64编码的应用场景注意

Java进行文件格式校验的方案详解

《Java进行文件格式校验的方案详解》这篇文章主要为大家详细介绍了Java中进行文件格式校验的相关方案,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、背景异常现象原因排查用户的无心之过二、解决方案Magandroidic Number判断主流检测库对比Tika的使用区分zip

分辨率三兄弟LPI、DPI 和 PPI有什么区别? 搞清分辨率的那些事儿

《分辨率三兄弟LPI、DPI和PPI有什么区别?搞清分辨率的那些事儿》分辨率这个东西,真的是让人又爱又恨,为了搞清楚它,我可是翻阅了不少资料,最后发现“小7的背包”的解释最让我茅塞顿开,于是,我... 在谈到分辨率时,我们经常会遇到三个相似的缩写:PPI、DPI 和 LPI。虽然它们看起来差不多,但实际应用

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

GORM中Model和Table的区别及使用

《GORM中Model和Table的区别及使用》Model和Table是两种与数据库表交互的核心方法,但它们的用途和行为存在著差异,本文主要介绍了GORM中Model和Table的区别及使用,具有一... 目录1. Model 的作用与特点1.1 核心用途1.2 行为特点1.3 示例China编程代码2. Tab

Python使用date模块进行日期处理的终极指南

《Python使用date模块进行日期处理的终极指南》在处理与时间相关的数据时,Python的date模块是开发者最趁手的工具之一,本文将用通俗的语言,结合真实案例,带您掌握date模块的六大核心功能... 目录引言一、date模块的核心功能1.1 日期表示1.2 日期计算1.3 日期比较二、六大常用方法详