Towards Open Set Deep Networks:开放世界的目标检测

2023-11-17

文章发表于2016年
在这里插入图片描述

文章链接:

1、概述
随着深度网络在目标检测领域的发展,网络的性能和准确率都在不断提升。但是存在的一个问题,深度网络很容易被一些图片(在人类看来没有意义)所欺骗,即使我们觉得该图像并不属于某一类别,但是深度网络还是会以高置信度将其分为该类。究其原因,这是因为我们训练网络时,使用的是封闭的数据集(有多少类别已经提前规定好,所以深度网络的选择只会在这些特定类别中去选择)。

作者在此强调更多的应该是:模型应该拒绝未知类,而不是以高置信度将其辨认为已知类。
但是在现实世界中,大多数检测任务都是开放的,在动态和不断变化的现实世界中部署识别系统时,绝大多数的识别系统是为静态封闭世界设计的,其中主要的假设是所有类别都是已知的。深度网络,就像许多经典的机器学习工具一样,被设计用于执行封闭集识别。作者认为深度网络应该具有识别已知类和未知类的能力。因此作者提出了一种新的方法–用于使深度网络识别开放数据集,通过引入一个新的模型层–OpenMax,它可以估计一个输入来自未知类的概率。而估计未知类的一个关键就是将元识别(Meta-Recognition)概念应用于网络倒数第二层的激活模式。基于此方法,深度网络可以拒绝欺骗性的图片以及与系统不相关的图像集。OpenMax大大减少了由深度网络造成的明显错误的数量。证明了OpenMax概念提供了有界开空间风险,从而正式提供了一个开集识别解决方案。

总结:
(1)当前的模型存在错误识别问题,无法处理开放数据集
(2)提出了openmax方法,可以使模型拒绝欺骗类以及不相关类图像,从而降低错误率
(3)与OWOD论文相比,该论文没有解决怎么识别新类的问题。

2、当前待解决的问题(2016年)
--------为何深度网络识别开放数据仍然是一个待解决的问题?
主要的问题出在了softmax层上,在大多数网络中,最后一层全连接层的输出被输入到softmax层中,从而在N个已知类别中产生一个概率分布,这就造成了在给定一个未知类作为输入时,网络总会找到一个最有可能的已知类。而在实际中,人们希望假设输入为未知类,那么输出的所有已知类概率都很低,这样可以通过一个阈值来拒绝这个未知类。同时因为softmax层的封闭性,网络没办法增量学习新的类别。如果单独训练新类别,还会造成遗忘问题。
在这里插入图片描述
3、本论文的创新点—OpenMax层(扩展softmax层使其可以预测未知类别)
通过扩展softmax层,使其可以预测给定输入属于未知类的可能性。同时,将元学习的概念加入深度网络中,使用网络倒数第二层(Softmax层前面的全连接层)的分数来评估当前的输入是否远离已知类别。该层的分数称为–激活向量(activation vector(AV))。
主要贡献:
*利用激活向量的多类元识别来估计深度网络故障的概率
*利用元识别和OpenMax形成开放集深度网络,并证明了所提出的方法可以管理深度网络的开放空间风险
*开放集深度网络在保持测试图像准确性的同时,拒绝未知类、欺骗图像、对抗图像明显错误的有效性

4、关于activation vector
在这里插入图片描述
上图展示了激活向量模型如何为元识别和深度网络的OpenMax扩展提供足够的信息,以支持开放集识别。OpenMax算法测量输入的激活向量(AV)和前几个类的模型向量之间的距离,调整分数并提供未知概率的估计。图片中的左边部分展示了不同图片的激活向量,不同的向量之间用黑线隔开。每个输入对应一个激活向量,竖直方向上表示(这块还没搞懂),水平方向表示对ImageNet上前450个类别的响应。
左边的部分展示了真实图片与欺骗图片和开放集图片之间的区别,当OM为红色即表示网络人为该类是未知类。

5、开放集深度网络
将一个深度模型变为可识别开放集,首先想到的就是对输出的概率应用一个阈值来进行过滤,这种方法可以拒绝不确定的预测(比如预测出来所有类别分数都不高),进而再一定程度上使模型可以拒绝未知类别。但是该方法只适合在小部分数据集上使用而不具有泛化能力。Scheirer等人将开放空间风险定义为与标记数据与已知训练样本“很远”相关的风险。这项工作只提供了一个一般的定义,并没有规定如何测量距离,也没有规定要测量这种距离的空间。为了使深度网络能够处理开放集识别,我们必须确保它们能够管理/最小化其开放空间风险,并具有拒绝未知输入的能力。
在此基础上,作者尝试寻找某一层的输出(又称为特征空间)来建立一个紧凑的减弱概率模型,可以通过阈值来限制开放空间风险。模型通过估计已知训练数据距离的空间和元识别方法,然后将这种距离纳入深度网络决策函数。作者称该方法为OpenMax,作为SoftMax功能的替代品。作者证明了整个模型是一个紧致的减弱概率模型,因此,它满足一个开集识别的定义。

6、多类元识别(Multi-class Meta-Recognition)
首先,需要确定模型的输入是否是来自一个未知类别,作者在此使用了元识别的方法来分析系统所给出的分数是否正确。先前的工作中使用了最终的系统分数,基于极值理论(EVT)分析了它们的分布,发现这些分布遵循威布尔分布。虽然人们可以独立使用每个类的分数并使用EVT考虑它们的分布,但这不会产生一个紧凑的减弱概率,因为欺骗图像显示分数本身不是来自一个近距离的已知输入训练数据的紧凑空间。此外,SoftMax层输出的直接EVT拟合对于深度网络没有意义,因为最终的SoftMax层被有意地正则化以遵循逻辑分布。因此,我们分析倒数第二层,它通常被视为每类的估计。这个每类的估计被SoftMax函数转换为最终的输出概率。
(1)EVT理论与元识别算法
在这里插入图片描述
(2)OpenMax层工作原理
在EVT拟合完成后,OpenMax层工作流程如下:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Towards Open Set Deep Networks:开放世界的目标检测 的相关文章

  • Mapreduce学习基础

    一 Mapreduce的基础 1 1 为什么要学习Mapreduce 1 单机资源受限 比如CPU 磁盘 2 分布式计算的程序的复杂度特别高 难度大 mapreduce就是解决以上问题的 1 利用集群的所有cpu 所有内存 所有磁盘 2 m
  • 【TCP/IP】第四章 IP协议

    4 1 即网际协议 TCP IP的心脏是互联网层 这一层主要是由IP Internet Protocol 和ICMP Internet Control Message Protocol 两个协议组成 IP相当于OSI参考模型的第3层 IP
  • 06-TensorFlow 自制数据集

    1 数据文件介绍 数据集下载 https download csdn net download qq 41865229 85254826 训练集60000张数字图片 测试集10000张图片 都是黑底白字的灰度图 每张图有28行28列个像素点
  • c#下各种数据库操作的封装!(支持ACCESS,SQLSERVER,DB2,ORACLE,MYSQL)

    首先定义数据库操作的标准接口IDBAccess 定义接口的基本功能 通过基本的接口设置 完成数据访问的统一抽象 public interface IDBAccess void Init string strServer string str
  • android编译时报错:Error parsing XML: unbound prefix 的错误原因及解决方案

    原因之一 拼写错误 例如 android写成androd之类 原因之二 xmlns没有添加 有的时候 自定了一些view 且新加了一些自定义的命名 那么需要添加声明到根上 如果忘了添加也会报这个错误 xmlns calendar http
  • javacv 人脸检测_使用JavaCV进行手和手指检测

    javacv 人脸检测 这篇文章是Andrew Davison博士发布的有关自然用户界面 NUI 系列的一部分 内容涉及使用JavaCV从网络摄像头视频提要中检测手 注意 本章的所有源代码都可以从http fivedots coe psu
  • 抖音微信消息推送情侣告白浪漫(简易版)

    抖音微信消息推送情侣告白浪漫 简易版 一 首先去微信公众平台用微信扫码登录 登录后会自动生成属于自己的appId appSecret 二 在上述登录后页面中下拉 用一个手机扫码会生成user id 即微信消息推送的接收方 三 点击下方的新增
  • PBR渲染原理

    PBR渲染原理 Tags computer graphics 基于PBR做渲染 需要涉及到很多物理学 几何学 热辐射学概念 本文将逐一介绍每个关键概念 并给出相关重要公式 微平面 microfacets 理论 微观尺度下的任意一个平面 su

随机推荐

  • bootstrap table 表头排序

    在columns 里面加上 sortable true 如下 columns field width 50 align center title sortable true
  • Calendar类介绍 获取对象方式 和方法

    重点 是一个抽象日历类 Calendar 类是一个抽象类 它为特定瞬间与一组诸如 YEAR MONTH DAY OF MONTH HOUR 等 日历字段之间的转换提供了一些方法 并为操作日历字段 例如获得下星期的日期 提供了一些方法 无法直
  • QML实现文件十六进制数据展示

    前言 将一个二进制文件直接拖放到Qt Creator中可以直接查看到以十六进制显示的数据格式 如 要实现一个这样的效果 还是要花不少时间的 在网上找了挺多示例 其中一个开源代码效果不错 参考这里 但是是在QWidget中实现的 通过继承QA
  • 小知识:随机生成26个字母中(一个或多个)的字母

    小知识 就直接上代码了 不多说 String str for int i 0 i lt 1 i str str char Math random 26 A 特别注意的2点 1 A 是随机生成大写的26个随机字母 2 a 是随机生成小写的26
  • LangChain之Output parsers

    LangChain之Output parsers Output parsers将LLM输出的文本 转换为structured data CommaSeparatedListOutputParser 解析结果为List 提示词如下 def g
  • 用python怎样实现滑动验证码呢?

    手把手带大家实现Bilibili模拟登陆 滑动验证码 项目 来肝 1 为什么要处理滑动验证码 在很多时候我们在做模拟登陆的时候会遇到滑动验证码 这个时候就必须要处理 2 目标网站 bilibili视频网站的滑动验证码 外链图片转存失败 源站
  • 头文件 sting.h 和 cstring 还有 string 区别

  • 显示器颜色不正常的原因是什么

    显示器是电脑的重要部件之一 显示器颜色不正常 会对我们看电脑造成很大影响 也很容易感觉到眼睛疲劳 显示器颜色不正常是怎么回事 应该怎么处理呢 下面为大家一一道来 显示器颜色不正常的根源 显示器是属于电脑的I O设备 即输入输出设备 它可以分
  • echarts之饼图制作+标示线

    1 安装echarts组件 npm install echarts s 2 在main js中全局引入以及挂载 import echarts from echarts 引入 Vue prototype echarts echarts 挂载
  • 对于Scanner类中next()和nextLine()的区别

    对于键盘录入对象Scanner对象的两个录入字符串方法的区别 Scanner sc new Scanner System in sc next 和 sc nextLine 的区别 next 对于录入的字符串碰到空格就会停止录入 nextLi
  • CentOS7 yum源修改为阿里,配置阿里epel源

    一 概念 区分 yum源 什么是yum源 yum是一个在CentOS RedHat和Fedora操作系统中使用的Shell前端软件包管理器 yum主要管理基于rpm的软件包 Centos先将发布的软件放置到YUM服务器内 然后分析这些软件的
  • 自定义分页标签

    原文地址 http blog csdn net wjt1989wjt article details 4720350 步骤一 编写分页标签处理类 分页标签处理类 public class PagerTag extends TagSuppor
  • vue使用的百度地图的天气查询功能

    首先需要在 Vue js 项目中安装百度地图 JavaScript API SDK 并获取相应的密钥 ak 然后 可以按照以下步骤使用百度地图的天气查询功能并使用 Axios 进行请求 官网文档 https lbsyun baidu com
  • Vue3 Cannot read properties of undefined (reading ‘use‘)

    在用vue3脚手架搭建项目的时候 配置路由 一直报错 错误代码不显示了 正确代码 min js import createApp from vue import App from App vue import Router from rou
  • Linux系统使用 NetworkManager 工具来管理网络

    使用 NetworkManager 工具来管理网络 其在命令行下对应的命令是 nmcli 要连接WiFi 相关的命令如下 1 查看网络设备列表 sudo nmcli dev 注意 如果列出的设备状态全部是 unmanaged 的 说明这些网
  • 单纯记录一下主题色样式——笔记

    单纯想 记录一下这个主题样式的设置 HTML代码
  • Prometheus: 通过ConfigMap来添加Grafana仪表盘

    如果你通过kube prometheus stack部署了Prometheus Grafana 那么Grafana中的仪表盘就是通过边车 sidecar 来动态获取的 Sidecar的观察对象是ConfigMap 当ConfigMap中配置
  • JavaFx如何打成exe包并设置exe的图标

    JavaFx如何打成exe包并设置exe的图标 javaFx在本地运行没问题后 想打成exe包 并在没有jdk的环境下使用 可参考以下操作 在pom中添加如下maven插件
  • 利用qt 信号槽传递自定义结构体--借助QVariant

    在前面的博客里 我介绍了利用Q DECLARE METATYPE和qRegsterMetaType来传递自定义的结构体 但是这样做有个缺点 qRegisterMetaType 只能在main 函数里才能发挥作用 https blog csd
  • Towards Open Set Deep Networks:开放世界的目标检测

    文章发表于2016年 文章链接 1 概述 随着深度网络在目标检测领域的发展 网络的性能和准确率都在不断提升 但是存在的一个问题 深度网络很容易被一些图片 在人类看来没有意义 所欺骗 即使我们觉得该图像并不属于某一类别 但是深度网络还是会以高