One-Class Classification: A Survey

news2024/9/25 8:17:01

I. INTRODUCTION

1.定义

OCC 是一种特殊的多类分类,训练数据仅来自单个正类。目标是学习表示和/或分类器,以便在推理过程中识别正类查询。

2.应用

异常图像检测、异常事件检测、生物识别(活体检测、反诈骗)

3.与其他领域的比较

One-class novelty detection单类新颖性检测: 目标相似,但 OCC 是监督学习,而新颖性检测是无监督学习。 Outlier detection (unsupervised anomaly detection)离群点检测(无监督异常检测): OCC 是监督学习,而异常检测是无监督学习。 Open-set recognition 开放集识别:开放集识别是一种多类分类的扩展方法。具体来说,在给定一个查询图像时,开放集识别考虑了这个图像可能不属于训练过程中观察到的任何类别的可能性。 OCC 是开放集识别的极端情况,即正类只有一个。

II. OCC 方法分类

1.数据类型:

仅正类数据 正类和未标记数据 正类和标记 OOD 数据

2.特征类型:

手工特征 (PCA、核 PCA) 统计数据驱动特征 (稀疏编码) 深度学习特征 (自编码器、几何变换自监督、OOD 数据度量学习、特征学习与 OOD 数据)

3.分类算法:

基于表示的方法 (KNFST) 统计方法 (OCSVM、SVDD、OCMPM、DS-OCMPM、GODS) 深度学习方法 (判别性方法、生成模型、知识蒸馏)

III.OCC的特征

在多类分类中,学习有助于分类的特征是一个重要研究课题。OCC 也受益于能够将正类数据与其他数据分开的特征,但在 OCC 中,由于训练时没有负类数据,选择合适的特征更加困难。

期望的特征属性

  • 紧凑性(Compactness):理想的特征应能对同一类别的不同图像提供相似的表示,因而这些特征在特征空间中应该紧密聚集。

  • 描述性(Descriptiveness):特征应能为不同类别的图像生成明显不同的表示,即每个类别应该有独特的特征表示。

A.Statistical Features

1.Sparse Coding(稀疏编码)

稀疏表示的基本概念:给定一个查询图像,稀疏表示方法通过一个字典来提取特征。字典可以通过将训练数据的列堆叠在数据矩阵中构建。(使用字典将图像表示为稀疏向量。)

字典的构建:数据矩阵 X 包含 N 个训练图像的列,每个图像被向量化为一个列向量。字典的每一列被称为原子(atom)。

稀疏优化问题:对于一个向量化的测试图像 xtest,需要解决一个稀疏性促进的优化问题,以找到一个稀疏编码 v^test,作为特征用于 OCC。

直接学习字典:除了使用预先确定的字典外,还可以直接从数据中学习字典,以获得更紧凑的表示,从而提高分类效果。提到的一些算法包括最优方向法(MOD)、K-SVD 和卷积稀疏编码(CSC),这些方法可以用于从训练数据中学习字典。

2.PCA and Kernel PCA

PCA 的基本原理:PCA 寻找一个低维子空间,以最佳地描述图像在图像空间中的分布。通过计算数据集的协方差矩阵 C,并找到其特征向量,PCA 能够将图像向量化并投影到特征空间,从而生成特征表示。

特征的计算:对给定的向量化图像 xtest,可以通过计算其在特征向量上的投影来定义特征。这些投影的大小构成一个特征向量。

核 PCA 的扩展:核 PCA 扩展了传统 PCA 的概念,以处理数据的非线性特性。它假设存在一个映射函数 Φ,将数据映射到特征空间中。在特征空间中,计算协方差矩阵后,可以找到特征向量和特征值。

求解特征向量:通过将特征向量表示为映射后数据的线性组合,可以简化特征向量和特征值的求解过程。为此,构建了一个矩阵 K,其每个元素是映射后数据的内积,最终形成一个特征向量求解的方程。

核函数的使用:在计算中,不需要显式地定义映射函数 Φ,而只需要在内积的形式下使用它,这就引入了核函数(如 RBF 核)。核函数允许我们在不直接映射数据的情况下进行计算。

特征表示:通过核 PCA 得到的投影值可以作为测试数据的特征表示。尽管 PCA 和核 PCA 生成的特征能够有效地表示训练数据的图像空间,但所学的嵌入不一定是紧凑的。

B. Deep learning-based Features

1.Deep Auto-encoders(深度自动编码器)

自编码器的结构:自编码器是由编码器(En)和解码器(De)组成的神经网络。编码器通常包含一系列卷积层和激活函数,而解码器则由转置卷积层构成,结构上与编码器相反。

训练目标:自编码器的训练目标是最小化输入与输出之间的距离,可以使用不同的距离度量(例如均方误差 Lmse)。具体而言,输入图像 x经过编码器和解码器后,输出 De(En(x))应尽量接近原始输入。

瓶颈特征空间:自编码器中通常会有一个瓶颈层,维度小于输入层。这个瓶颈使得自编码器仅保留重建所需的基本信息,从而在潜在空间中学习到有意义的特征。

特征的描述性:编码器提取的特征是信息丰富的,预计能展示出较好的描述性。

去噪自编码器:在训练自编码器时,向输入中添加噪声可以提高学习到的表示质量,减少过拟合,使模型更具泛化能力。当输入图像为带噪声的版本时,网络的目标是重建出干净的图像,这就是去噪自编码器。

2.Geometric Transformation based Self-supervision(基于几何变换的自监督)

自监督学习的概念:自监督学习是一种从未标记数据中学习信息性表示的机器学习技术。Golan 等人展示了自监督学习能够有效为单类分类任务提供有利的表示。

几何变换:在训练过程中,首先从预定义的变换集合中随机选择一种几何变换并应用于每个输入图像。这些变换可以包括多种形式,例如旋转、平移等。通过这种方式,网络学习如何预测应用了哪种变换。

训练过程:对于给定的输入图像 x,随机选择一个变换 Tr(x),然后将其输入到卷积神经网络中。网络的参数通过交叉熵损失进行优化,其中选择的变换 r 被视为真实标签。经过这种训练,网络生成适合单类分类的特征。

正常性评分的计算:Golan 等人提出了一种通过对所有 k 种变换的对数似然概率进行求和来评估测试图像的正常性评分 Stest(Xtest)。这个评分基于网络的 softmax 输出。

Dirichlet 分布的评分:此外,研究者还提出了一种基于 Dirichlet 分布的评分方法,这种方法在单类分类中表现更有效。该方法假设每个条件分布符合 Dirichlet 分布,经过最大似然估计后,最终的正常性评分 Utest 可以通过一个公式表示。

3.Deep Metric Learning with OOD Data(利用 OOD 数据进行深度度量学习)

介绍了一种基于对比损失(Contrastive Loss)的度量学习方法,用于单类分类(OCC)特征的学习。

  1. 度量学习方法:该方法采用对比损失来学习特征,使用来自异类分布(OOD,Out-of-Distribution)数据集的数据进行训练。如果没有可用的 OOD 数据集,可以通过向图像添加随机高斯噪声来人工生成。

  2. 网络功能和距离度量:设 F 为深度卷积网络的函数,对于输入图像对 x1 和 x2,在特征空间中的距离定义为

  3. 标签的定义

    • 标签 γ 表示两个输入是否属于同一类(γ=0 表示同类,γ=1表示不同类)。

    • 标签 ζ 表示两个图像是否均来自 OOD 数据集(ζ=0 表示来自 OOD,ζ=1 表示不是)。

  4. 对比损失的定义:对比损失 L被定义为:

    其中 m 表示最小边距。

  5. 损失的含义

    • 对于同类数据(γ=0,ζ=1),损失为

      ,这促使网络学习为正类数据生成相似的嵌入,满足紧凑性特征。

    • 对于不同类数据,嵌入被鼓励在特征空间中至少保持 m的距离。

    • 如果两个图像均来自 OOD(γ=0,ζ=0),损失为零,因此所学特征嵌入能够有效区分正类和给定类别之外的数据。

4.Feature Learning With OOD Data (DOC)(特征学习与 OOD 数据)

在单类分类(OCC)任务中,如何利用带标签的异类分布(OOD)数据来增强特征学习。

  1. OOD 数据的角色:在训练过程中,使用来自非重叠问题域的带标签 OOD 数据与正类数据一起进行训练。例如,在人脸识别的单类分类任务中,带注释的对象数据集可以作为 OOD 数据。

  2. 网络结构:考虑一个深度网络,包括特征提取子网络 F 和分类子网络 G。首先,网络 G∘F利用 OOD 数据进行训练,使用交叉熵损失。

  3. 数据集定义:正类数据集用

    表示,OOD 数据集用 表示,其中,yri 是图像 xri 的目标标签。

  4. 特征提取:从正类图像 xti 提取的特征表示为

    image-20240924190909027

    ,d 是特征空间的维度。

  5. 紧凑性损失:定义了一个紧凑性损失 Lc,用于测量正类数据学习到的特征的紧凑性。该损失通过特征空间中的类内距离进行评估:

    其中 μti 是其他正类特征的均值。

  6. 描述性损失:还定义了一个描述性损失 Ld,用于测量学习到特征的描述性,使用 OOD 数据的网络输出计算交叉熵损失。

  7. 联合优化:通过同时优化紧凑性和描述性损失来微调网络,损失函数为:

    其中 λ 是超参数。

IV.OCC 算法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2163012.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python连接Kafka收发数据等操作

目录 一、Kafka 二、发送端(生产者) 三、接收端(消费者) 四、其他操作 一、Kafka Apache Kafka 是一个开源流处理平台,由 LinkedIn 开发,并于 2011 年成为 Apache 软件基金会的一部分。Kafka 广泛用于构…

在Java中,关于final、static关键字与方法的重写和继承【易错点】

在Java中,关于final、static关键字与方法的重写和继承【易错点】 1.final方法不能被重写2.static方法不是重写,而是遮蔽3.final与static的组合4.final与继承5.static与继承 1.final方法不能被重写 如果父类中的方法被声明为final,那么这个方法…

开源音频处理项目推荐【持续更新】

Audacity 介绍:Audacity是一款功能强大的开源音频编辑软件,适用于多种操作系统,包括Windows、macOS和Linux。它支持多轨音频编辑、录制,并且提供了丰富的音频处理功能,如剪切、复制、粘贴、混音、降噪等 。Audacity的…

基于Python+flask+MySQL+HTML的全国范围水质分析预测系统,可视化用echarts,预测算法随机森林

1绪论 近年来,水质监测系统的进步显著,这在全球环保意识不断提升的背景下尤为明显。大量资源被投入到水质监测技术的研发和应用中,以不断优化监测效能。水资源的保护及健康环境的维护,这种趋势旨在提升人们生活质量,确…

微软宣称其新工具可纠正人工智能幻觉 但专家依然对此表示怀疑

人工智能经常胡言乱语,微软现在说它有办法解决这个问题,但我们有理由对此持怀疑态度。微软今天发布了一项名为"更正"(Correction)的服务,它可以自动修改人工智能生成的与事实不符的文本。Correction 首先会标…

华为认证HCIA篇--网络通信基础

大家好呀!我是reload。今天来带大家学习一下华为认证ia篇的网络通信基础部分,偏重一些基础的认识和概念性的东西。如果对网络通信熟悉的小伙伴可以选择跳过,如果是新手或小白的话建议还是看一看,先有个印象,好为后续的…

8.隐私与安全 - 使用ChatGPT时的注意事项【8/10】

引言 在数字时代,隐私和安全已成为全球关注的焦点。随着技术的发展,个人信息和数据的收集、存储、处理和传输变得越来越普遍,这既带来了便利,也带来了风险。保护个人隐私和数据安全不仅是法律的要求,也是维护公众信任…

solidwork中查看装配体螺丝或零件

假设我的PETG打印件到了,想知道这个螺丝的型号,怎么办 解决办法: 第一步先看看有没有固定的字样 如果固定的话是不行的。需要这样做: 把这里给关了 接下来第二步,点击你想查看的螺丝 然后就会跳到零件图 可以看到直径…

Cloudflare为网站添加AI审计 可检查AI爬虫何时抓取和抓取频次以及直接屏蔽爬虫

网络服务提供商 Cloudflare 宣布即日起为所有网站 (包括免费托管的网站) 带来 AI 审计功能,该功能目前处于测试阶段,可以分析 AI 公司的爬虫和抓爬数据。新的 AI 审计工具 (Cloudflare AI Audit) 主要提供 AI 公司的爬虫何时到网站来抓取数据、抓取的数据…

Unity 热更新(HybridCLR+Addressable)-资源更新

七、资源更新 创建一个叫Aot的文件夹,用来存放不会热更新的资源 这个修改为第三个 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/b8be5e6465184ad5ad6173c6870bfa06.png 这个是更新 在更新或者打包时遇到端口被占的报错,不用理会&#xf…

二、认识大模型

认识大模型 什么是大模型?发展趋势AGI是不是泡沫大模型对比【时效】大模型特点大模型技术原理向量化除了向量化,大模型还具有特征提取特点 总结结语 什么是大模型? 大模型是大规模语言模型(Large Language Model)的简…

mysql如何替换数据库所有表中某些字段含有的特定值

目录 背景查询所有表名查询表的所有字段过虑特征字段替换字段中含有的特定值 背景 公司的测试域名更换了,导致存放在数据库中的域名也要跟着替换,当然把域名存放在数据库表中是不科学的,不建议这样做,但公司的同事就这样做了&…

由动静压之比求马赫数的MATLAB函数

函数介绍 输入:动静压之比 p r e pre pre 输出:马赫数 M a c h Mach Mach 【注】仅适合亚音速的情况,如果动静压之比过大或过小,会有相应的提示 函数源代码 function [m] pre2mach(pre) m(5*(pre1).^0.2857-5).^0.5; if pre&l…

Leetcode 螺旋矩阵

算法思想: 这个算法的目标是按照顺时针螺旋的顺序从矩阵中取出元素。为了做到这一点,整个思路可以分成几个关键步骤: 定义边界:首先需要定义四个边界变量: left:当前左边界的索引。right:当前右…

uniapp 实现3d轮播图,也就是中间的放大两边的缩小 用swiper和swiper-item就能实现

话不多说&#xff0c;直接上代码&#xff0c;无需引入外部资源&#xff0c; 用swiper和swiper-item就能实现 先上结构代码 <swiper class"header" circular previous-margin"80rpx" next-margin"60rpx" :current"current"change&…

点亮城市安全:高科技助力精准定位路灯漏电‘隐形杀手

在城市的每一个角落&#xff0c;路灯如同守夜人&#xff0c;默默照亮归家的路。然而&#xff0c;当这些守护者出现“漏电”隐患时&#xff0c;不仅威胁着行人的安全&#xff0c;还可能引发一系列电气故障。那么&#xff0c;如何精准快速地找出这些隐藏的漏电点&#xff0c;并有…

二叉树进阶oj题【二叉树相关10道oj题的解析和代码实现】

目录 二叉树进阶oj题1.根据二叉树创建字符串2.二叉树的层序遍历3.二叉树的层序遍历 II4.二叉树的最近公共祖先5.二叉搜索树和双向链表6.从前序与中序遍历序列构造二叉树7.从中序和后序遍历序列来构造二叉树8.二叉树的前序遍历&#xff0c;非递归迭代实现9.二叉树中序遍历 &…

防止电脑电池老化,禁止usb或者ac接口调试时充电

控制android系统&#xff0c;开发者模式&#xff0c;开启和禁止充电 连接 Android 手机到电脑的 USB 端口。 下载并安装 Android Debug Bridge (ADB) 工具[1]。 USB&#xff1a; 在命令行中输入 adb shell dumpsys battery set usb 0&#xff0c;以禁止 USB 充电。 在命令…

【AI创作组】Matlab中进行符号计算

提示:代码一定要自己运行过才算数…… 1. 符号计算工具箱介绍 1.1 工具箱功能 MATLAB的符号计算工具箱,即Symbolic Math Toolbox,是一套强大的数学软件工具,它使得MATLAB具备了符号运算的能力。该工具箱提供了一系列函数,用于求解、绘制和操作符号数学方程。用户可以直接…

[Linux]从零开始的Minecraft服务器搭建教程

一、前言 学习Linux有一段时间了&#xff0c;当然&#xff0c;我们要把学习的知识运用到实际生活中去。最近朋友们都在玩我的世界&#xff0c;网易版的我的世界联机非常不稳定&#xff0c;用起来也算是非常难受了。所以还是准备转战JAVA版。为了联机&#xff0c;可以考虑一个人…