当前位置:网站首页>One-Class Convolutional Neural Network
One-Class Convolutional Neural Network
2022-08-06 00:26:00 【mingqian_chu】
热力图,hifigan的tensorboard就能看
title One-Class CNN
One-Class Convolutional Neural Network
Poojan Oza, Student Member, IEEE, and Vishal M. Patel, Senior Member, IEEE
文章来源 2019 年 John Hopkins University
发表在 “IEEE Signal Processing Letters”
otkupjnoz/oc-cnn official
JuneKyu/CLAD
1010code/OneClass_NeuralNetwork
aotumanbiu/OC-NN
- **2022年影响因子/JCR分区:**3.201/Q2
- **学科与分区:**ENGINEERING, ELECTRICAL & ELECTRONIC - SCIE(Q2)
- **出版国家或地区:**UNITED STATES
P . 奥扎和V。M.Patel供职于美国马里兰州巴尔的摩约翰·霍普金斯大学电气和计算机工程系。
邮箱:{poza2,vpatel36}@jhu.edu。这项工作得到了美国国家科学基金会1801435年度拨款的支持。
文章小结
优势: 单类检测, 无须给出负样本, 自己会学习出正样本的决策边界;
- 使用潜在空间中的高斯噪声,作为伪负类;
- 使用交叉熵作为损失, 去学习给定类的决策边界;
**注意这里, 本文中的实验,将图片中的对象进行中心对齐了;
对于这里比较的所有方法,数据都是对齐的,因此对象位于中心,背景最少。
实现流程:
- 将目标图像嵌入到 表示在特征空间中;
- 从特征空间中生成以 0 为中心的高斯分布数据, 然后将此 0 中心的高斯分布数据作为伪负类;
- 将此伪负类的数据添加到提取的特征中。
abstract
提出了一种基于卷积神经网络(CNN)的单类分类方法。其思想是使用潜在空间中的零中心高斯噪声作为伪负类,并使用交叉点损失来训练网络,以学习给定类的良好表示和决策边界。该方法的一个重要特点是,任何预先训练好的CNN都可以作为一个类分类的基本网络。本文提出的One Class CNN(OC-CNN)在UMDAA-02 Face,Abariity1001,FounderType-200数据集上进行了评估。这些数据集涉及各种单类应用问题,如用户身份验证、异常检测和新颖性检测。大量的实验表明,该方法比目前最先进的方法有了显著的改进。
源代码可以在githorb.com/otkupjnoz/oc-cnn上找到。
1. introduction
多类分类需要将未知对象样本分类到许多预定义对象类别中的一个。
相反,在单类分类中,目标是通过从仅由目标类数据组成的训练集中学习分类器,在所有可能的对象中识别特定类的对象(也称为正类数据或目标类数据)。由于缺乏负类的数据,使得单类分类问题变得困难。
一类分类有许多应用,如异常或异常检测[1]、[2]、[3]、[4]、[5]、新颖性检测[6]、[7]、[8]、用户认证[9]、[10]、[11]、[12]、[13]、[14]。例如,在新颖性检测中,通常假设没有新奇类别数据的先验知识。因此,学习过程只涉及目标类数据。
文献中已经提出了多种方法来进行一类分类。特别地,许多单类分类方法都是基于支持向量机的公式[15]、[8]、[16]。支持向量机基于寻找边界的概念,最大化两个类别之间的边界,并被证明对二进制和多类别分类很好地工作。然而,在一类问题中,关于负类数据的信息是不可用的。为了处理这个问题,肖尔科普夫等人。[17]提出了单类支持向量机(OC-SVM),它通过最大化关于原点的边界来解决负类数据的缺失问题。
另一种受支持向量机公式启发的流行方法是Tax等人提出的支持向量数据描述(SVDD)。[18]其中寻找包围目标类数据的超球体。OC-支持向量机的各种扩展和SVDD在多年来的文献中已经被提出。我们建议读者参考[19],以了解不同的一类分类方法。另一种用于一类分类的方法是基于极小极大概率机(MPM)公式[20]。Single Class MPM[21],[22]试图通过考虑数据的二阶统计量来寻找类似于OC-支持向量机的超平面。因此,单类MPM学习了一个决策边界,该边界很好地概括了底层数据分布。图1提供了不同的单类分类方法的高级概述。
虽然这些方法是识别目标数据的决策边界的强大工具,但它们的性能取决于用于表示目标类数据的特征。
图1 中, **指出, 识别目标数据的决策边界, 他们的识别效果, 取决于 目标类 数据的特征表示;
流行的统计一类分类方法的图形说明。绿色圆圈表示目标类数据,红色十字表示未知数据(即异常、新奇、离群值等),蓝色虚线/圆圈表示由相应方法捕获的决策边界。图1中的粉红色虚线表示概率零误差的边界。(A)OC-支持向量机,最大化超平面相对于原点的边距。(B)SVDD,找到包含给定数据的超球体。MPM,寻找一个使误分类概率最小的超平面。
在过去的五年里,基于深度卷积神经网络(DCNN)的方法在目标检测和识别问题上表现出了令人印象深刻的性能改进。以分类任务为例,在过去的五年中,视觉系统在ImageNet数据集[23]上的前5名错误率从∼的25%下降到2.25%。
这是由于大量带注释的数据集的提供,对输入图像和类别标签之间的非线性映射的更好理解,以及图形处理单元(GPU)的可负担性。这些网络使用交叉熵损失来学习特定类别相对于另一类别的不同特征。然而,对于一个类问题,由于缺乏负的类数据,以端到端的方式训练这样的网络变得困难。
(对于单类问题的 分类, 是由于缺乏负类的数据样本)
近年来,针对训练用于一类分类的神经网络的问题进行了几次尝试[5]、[24]、[25]、[26]、[27]、[28]、[29]、[30]。这些方法大致可分为两类,生成性方法[27]、[28]、[29]和歧视性AP
问题[25],[30]。生成性方法使用生成性框架,如自动编码器或生成性对抗性网络(GAN)[31]进行单类分类。例如,Ravanbakhsh等人。[27]和Sabokrou等人。[24]提出了一种用于监控视频事件异常检测的深度自动编码器网络。然而,在他们的方法中,重点主要放在图像级的一类分类上。作者Lawson等人。[26]开发了一种基于GaN的异常检测方法。Sabokrou等人。[5]扩展了使用带有对抗性训练的基于自动编码器的生成器从图像数据中检测离群值的想法。一般而言,与区分分类网络相比,这些生成性模型(如GANS)非常难以训练[32]。
与生成方法相比,一类分类的区分方法在文献中还没有得到很好的探索。Perera和Patel[30]的一种这样的方法使用外部参考数据集作为负类,以使用新的损失函数来训练用于单类分类的深层网络。与这种方法不同的是,我们在方法中没有使用任何负的类数据。在另一种方法中,Chalapathy等人。[25]提出了一种新的支持向量机启发损失函数来训练神经网络进行异常检测。
**借鉴其他一类分类统计方法的一些启示(即以原始数据为参照寻找决策边界),我们提出了一种新的方法,称为One-Class CNN(OC-CNN),以区分的方式端到端训练CNN来学习一类问题的表示。本文主要做了以下几点贡献:
- 提出了一种基于CNN的端到端可训练的单类分类方法。
·2. 通过实验表明,该方法比其他基于统计和深度学习的单类分类方法具有更好的分类性能,并且在多种单类应用中都具有很好的通用性。
2. proposed Approach
- 将目标图像嵌入到 表示在特征空间中;
- 从特征空间中生成以 0 为中心的高斯分布数据, 然后将此 0 中心的高斯分布数据作为伪负类;
- 将此伪负类的数据添加到 提取的特征中。
图2概述了提出的基于CNN的单类分类方法。整个网络由特征提取网络和分类器网络组成。特征提取网络基本上将输入的目标类图像嵌入到特征空间中。然后,将从特征空间中的以零为中心的高斯生成的伪负类数据附加到提取的特征。然后将附加的特征馈送到分类网络中,该分类网络的特征是完全连接的神经网络。分类网络为每个特征表示分配置信度分数。分类网络的输出为1或0。这里,1对应于属于目标类的数据样本,而0对应于属于负类的数据样本。整个网络使用二进制交叉熵LOS进行端到端训练;
2.1 特征提取器
任何经过预先训练的CNN都可以用作特征提取者。
在本文中,我们通过去除Softmax回归层来使用预训练的AlexNet[33]和VGG16[34]网络
(即最后一层)。在训练期间,我们冻结卷积层,只训练完全相连的层。假设提取的特征是D维的,则特征被附加到从高斯N(µ,σ2.i)生成的伪负数据,其中σ和µ是高斯的参数,i是D×D单位矩阵。这里,N(?,σ2.i)可以被视为生成D独立的具有σ标准差的一维高斯。
2.2 分类器
由于添加了具有原始特征的伪负数据,分类器网络以2批次的大小观察输入。分类器网络使用简单的全连通层和Softmax回归层作为分类器网络。
完全连接的层的尺寸与特征尺寸保持相同。来自SoftMax层的输出数量被设置为等于2。
2.3 损失函数
使用下面的二进制交叉熵损失函数来训练整个网络
其中,y∈{0,1}指示分类器输入是否对应于特征提取器(即y=0),或者它是从N(µ,σ2.i)中采样的(即y=1)。这里,p表示y=0的软最大概率。
使用ADAM优化器[35]对网络进行了优化,学习速率为10−4。对于所有实验,参数µ和σ分别设置为等于0和0.01。在分类器网络之前使用实例归一化[36],因为它被发现在稳定训练过程方面非常有用。
3. 实验结果
我们在三个不同的一类分类问题上评估了该方法的性能–异常检测、基于人脸的用户认证和新颖性检测。异常-1001[37]、UMDAA-02[38]和使用FounderType-200[39]数据集对异常检测、用户认证和新颖性检测问题进行了实验。
对于这里比较的所有方法,数据都是对齐的,因此对象位于中心,背景最少。
**注意这里, 对象位于中心, 对于这里比较的所有方法,数据都是对齐的,因此对象位于中心,背景最少。
将所提出的方法与以下一类分类方法进行了比较:
OC-支持向量机:按照[15]中的公式使用One-Class Support V ector Machine,使用AlexNet和VGG16功能进行训练。
Binary 支持向量机:在以零为中心的高斯噪声作为负数据的情况下,使用二进制支持向量机。将从目标类数据中提取的AlexNet和VGG16特征用作正类数据。
·MPM:按照[20]中的公式使用极小最大概率机。由于MPM算法涉及从数据中计算协方差矩阵,因此在计算协方差矩阵之前,使用主成分分析(PCA)对特征进行降维。
SVDD: 支持向量数据描述按照[18]中的规定使用,并针对AlexNet和VGG16功能进行了培训。
OC-NN:使用单类神经网络(OC-NN),如[25]中所述。这里,为了公平比较,不使用使用自动编码器训练的特征提取器(根据[25]方法),而使用与所提出的方法相同的AlexNet和VGG16网络。
如文献[25]所述,我们使用三种不同的激活函数–线性、Sigmoid和RELU来评估OC-NN。
OCSVM+是本文使用的另一种方法,其中在使用OC-CNN训练的网络中提取特征的基础上使用OC-SVM。然而,由于它使用OC-支持向量机进行分类,所以它不是端到端可训练的。
3.1 异常检测
异常检测, 通过输入异常的实例样本, 注意这些异常样本,之前是未知的,通过与正样本的特征进行比对, 从而识别出是异常的。
异常检测异常检测(也称为异常检测或异常拒绝)处理识别与目标类实例不相似的实例(即异常实例)。请注意,异常实例是先验未知的,在训练过程中只有正常实例可用。这种问题可以通过一类分类来解决算法。异常-1001数据集[37]被广泛用于视觉异常检测。该数据集由属于椅子、汽车、飞机、船、沙发和摩托车等六个类别的1001个异常图像组成,它们在PASCAL VOC数据集中具有各自的正常类别[40]。
图3(A)显示了来自异常-1001数据集的样本图像。从Pascal VOC数据集获得的正常图像被分成训练集和测试集,使得测试集中的异常图像和正常图像的数量相等。报告的结果是所有六个班级的平均数。
3.2 用户激活验证
主动身份验证指的是基于注册用户的生物特征数据(如面部、滑动图案和加速度计图案)识别注册用户的问题[13]。该问题可以被视为识别异常用户行为以拒绝未经授权的用户。主动认证问题一直被视为一类分类问题[12]。UMDAA-02数据集[38]是广泛用于移动设备上的用户主动认证的数据集。UMDAA-02数据集具有与每个用户对应的多个通道,例如人脸、加速计、陀螺仪、触摸手势等。在此,我们仅使用此数据集中提供的人脸数据,因为人脸是最常用的身份验证通道之一。
人脸数据由对应于48个用户的33209张人脸图像组成。图3(B)中示出了与该数据集中的几个对象相对应的样本图像。从这张图可以看出,这些图像在姿势、照明、外观和遮挡方面都有很大的变化。
对于每个类,通过保持80/20的比率来创建训练和测试集。使用目标用户的训练集来训练网络,并在目标用户的测试集上对照其余用户测试集数据进行测试。对所有用户重复此过程,并报告平均结果。
3.3 Novelty Detection
FounderType-200数据集是由Liu等人为了新颖性检测的目的而引入的。在[39]。FounderType-200数据集包含来自FounderType公司创建的200种不同字体的6763幅图像。
图3显示了此数据集中的一些示例图像。对于实验,使用前100个类作为目标类,其余100个类作为新奇数据。前100个类别数据被分成具有相同数量的图像的训练和测试集。对于新数据,创建新集合,其具有50来自每一类新的图像。对于每个类,使用已知数据中的训练集来训练网络,并使用已知类测试集和新奇集数据进行评估。
例如,使用I类(i∈{1,2,…,100})训练集来训练网络。然后,利用针对新集合(包含类别101-200的数据)测试的类别I测试集合来评估训练的网络。这对所有类别I重复,其中I∈{1,2,…,100}和平均结果被报告。
4. 结果和 讨论
性能是使用接收器操作特征(ROC)曲线下的面积(AUROC)来衡量的,这是一类问题最常用的度量标准。结果列于对应于VGG16和AlexNet网络的表二和表一。使用AlexNet和VGG16预训练特征来计算OC-SVM、BSVM、SVDD和MPM的结果。在对目标类数据进行训练之后,使用线性、Sigmoid和RELU激活来计算OC-NN结果。
**OC-CNN的结果是在对目标类进行训练后计算的,对于OC-SVM+,在从训练的AlexNet/VGG16提取的特征之上训练单类支持向量机,并且根据支持向量机的分类器分数计算AUROC。
从表I和表II可以看出,OCCNN或OC-SVM+在所有三个数据集上都取得了最好的性能。MPM和OC-支持向量机具有相似的分类性能,而以高斯数据为负类的BSVM效果不佳。对于BSVM基线,我们证明了我们在所提出的算法中使用的类似技巧不适用于像支持向量机这样的统计方法。在其他一类方法中,线性激活的OC-NN方法效果最好。然而,OC-NN的结果并不一致。在几个实验中,SVDD被发现比OCNN工作得更好。这种不一致的性能背后的原因可能是由于[25]中用于OCNN的评估协议和本文所使用的评估协议的差异。在我们的评估协议中,目标类图像的数量与新的/异常的类图像的数量的比例远远高于Chalsey等人使用的比例。[25]。当比率接近1时,就像对于异常-1001数据集的情况一样,对于AlexNet和VGG16,OC-NN的性能都好于SVDD。
从表I和表II可以看出,OCCNN或OC-SVM+在所有三个数据集上都取得了最好的性能。MPM和OC-支持向量机具有相似的分类性能,而以高斯数据为负类的BSVM效果不佳。对于BSVM基线,我们证明了我们在所提出的算法中使用的类似技巧不适用于像支持向量机这样的统计方法。在其他一类方法中,线性激活的OC-NN方法效果最好。然而,OC-NN的结果并不一致。在几个实验中,SVDD被发现比OCNN工作得更好。这种不一致的性能背后的原因可能是由于[25]中用于OCNN的评估协议和本文所使用的评估协议的差异。在我们的评估协议中,目标类图像的数量与新的/异常的类图像的数量的比例远远高于Chalsey等人使用的比例。[25]。当比率接近1时,就像对于异常-1001数据集的情况一样,对于AlexNet和VGG16,OC-NN的性能都好于SVDD。
然而,当比率增加时(这是更现实的情况),就像UMDAA-02和FounderType-200的情况一样,OC-NN的性能变得不一致。然而,使用所提出的方法始终表现良好,∼为4%,∼为10%对于异常-1001、∼-Face和FounderType-200数据集,ND UMDAA02-Face分别比OC-NN改进5%。由于该方法建立在传统的深层神经网络判别学习框架之上,因此它能够学习比OC-NN更好的特征。
同样不出所料,基于VGG16网络的方法比基于AlexNet网络的方法工作得更好。
除了FounderType-200数据集,OC-CNN和AlexNet的性能都好于VGG16,在所有方法中,VGG16的性能都好于AlexNet。然而,应该注意的是,对于VGG16,更好的OC-SVM+性能表明,通过所提出的用于VGG16的方法学习的特征要好于用于FounderType-200的AlexNet。总体而言,VGG16让∼比Alexnet提高了2%。
**这里注意, oc-svm 使用的是预训练的权重 提取出特征,
而 oc-svm+ 使用的本文 高斯 的交叉熵的 方法,训练的模型;
另一个有趣的比较是OC-支持向量机和OC-SVM+之间的比较。OC-支持向量机使用从预先训练的AlexNet/VGG16网络中提取的特征。另一方面,OCSVM+使用从AlexNet/VGG16网络中提取的特征,该网络使用所提出的方法进行训练。在所有数据集上,OC-支持向量机在∼和∼上的性能分别平均提高18%和17%。这一结果表明了我们的方法学习更好的表示的能力。因此,我们的方法除了是一个端到端可学习的独立系统外,还可以用于提取目标类友好特征。此外,在大多数情况下,使用复杂的分类器比OC-CNN(即OC-SVM+)具有更好的性能。
5. conclusion
提出了一种新的基于CNN的单类分类方法。在特征空间中引入伪负高斯数据,使用二进制交叉熵损失对网络进行训练。该方法除了是一个独立的单类分类系统外,还可以被看作是对目标类数据的很好的特征提取(即,特征提取)。
OCSVM+)。
此外,在与身份验证、异常和新颖性检测相关的所有数据集上的一致性能改进表明,我们的方法能够很好地适用于各种单类分类应用。本文对对象集中对齐的数据进行了实验。未来,我们将探索开发一种端到端的联合检测和分类的深度一类方法的可能性。
边栏推荐
猜你喜欢
随机推荐
flutter tabbar设置文字背景,不延时
Go-Excelize API source code reading (1) - NewFile()
NFT 游戏含义:游戏中的 NFT 是什么?
缓存一般是被动的指的是什么呢?
无线数字平板探测器维修Mars1717XU-VSI故障分析
oracle学习笔记识别低效sql(十九)
openCV第三篇
在速率分割缓存中工作提前平滑的要求是什么呢?
Yiwei Lithium's first system product equipped with 46 series large cylindrical batteries successfully rolled off the production line
【LeetCode】209. 长度最小的子数组
shell之函数和数组
What are the core problems in the database application system
iNFTnews | 元宇宙将如何改变教育?
Locality-Driven Dynamic GPU Cache Bypassing
QML绘图系统
Day5:面试必考编程题
MySQL关联查询之小表驱动大表
[2022 强网杯] house_of_cat 战战兢兢的复现
基于隐语义模型的协同过滤推荐之用户商品推荐列表
Oracle学习笔记索引执行计划中的关键字(十三)









