一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种考虑多粒度类相关性的对比式开放集识别方法及装置与流程

2022-02-19 03:33:42 来源:中国专利 TAG:


1.本发明涉及机器学习开放集识别领域,尤其涉及一种考虑多粒度类相关性的对比式开放集识别方法及装置。


背景技术:

2.深度学习方法在计算机视觉的多个任务中得到了广泛应用。但传统深度神经网络(deep neural network,dnn)只能处理封闭场景,即训练集和测试集中包含相同类别数据。若某样本为训练集中未出现的新类样本,dnn会将样本预测为训练集中某一已知类别从而给出一个错误结果。
3.开放集识别任务(open set recognition,osr)旨在对已知类别样本进行正确分类的同时,对出现的未知类别样本进行准确地判别。在开放集识别任务中,未知类样本的不可预知性是开放集识别任务的主要挑战之一。在训练过程中,模型无法获得开放集样本的相关信息,这为模型判别未知类带来了难度。解决开放集识别问题的一种简单直接的方法是在经典监督学习分类网络中使用softmax层的输出作为判断依据,若其预测某样本的置信度低于所设定的阈值,则识别该样本属于未知类。但softmax层的输出一般为对应各自已知类的置信度,未能体现未知类判别的置信度。现有的开放集识别方法可大致分为两类:基于openmax的方法和基于自编码器的方法。其中基于openmax的方法是利用openmax函数代替softmax函数,将已知各个类别的置信度进行重新调整以显式地给出未知类别的置信度。
4.但是,由于未知类知识的获取较为困难,对基于openmax方法的性能有所局限。而基于自编码器(auto

encoder,ae)的方法假设已知类样本通过训练可被模型较好地重构,未知类由于缺乏训练样本导致重构误差较大,从而能够被判别出来。
5.然而,通过重构样本获得重构误差来进行未知类判别可能会在训练过程中向模型引入无关特征信息,影响模型性能。另外,现有方法大多基于已知和未知样本差异判别的某些假设,如自编码器方法假设已知和未知类样本在重构误差上存在差异,softmax方法假设已知和未知类样本的输出概率存在差异,继而基于该假设启发式地设计开放集识别模型。然而,它们并未证明其假设在真实应用上的合理性,因此难以保证对于实际场景的适应性。


技术实现要素:

6.本发明提供了一种考虑多粒度类相关性的对比式开放集识别方法及装置,本发明考虑到类别间的相关性是在类别层次上的表示,且类别之间往往呈现分层结构关系,设计了一种多粒度类相关性的损失函数,通过在标签语义空间构建分层结构并度量多粒度类相关性的方式,约束模型学习不同已知类间的相关关系,进一步提升模型的在计算机视觉的未知类判别能力,详见下文描述:
7.第一方面,一种考虑多粒度类相关性的对比式开放集识别方法,所述方法包括:
8.将数据集划分为训练集、已知类测试集和未知类测试集,并对训练集数据构建多粒度层级结构;
9.构架一由特征提取、多粒度类相关性损失、及分类器组成的对比式开放集识别模型;
10.基于所述多粒度层级结构的训练集对所述对比式开放集识别模型进行训练,计算多粒度类相关性损失函数,通过构建并度量不同类别在分层结构上的相关性,约束模型学习,实现类别层次上的表示学习增强,更新所述模型的权重,获取优化后的模型;
11.基于所述优化后的模型对已知类测试集和未知类测试集进行识别,获取识别结果。
12.其中,所述多粒度类相关性损失为:
13.对于训练集样本{x
k
,y
k
}
k=1...n
,,利用标签的语义信息构建x
α,α=0...α
层的层级结构,其中α为层级数,x
α=0
为数据原始标签y
k
作为叶子结点所在的层级;
14.利用word2vec(
·
)模块对原始标签进行语义特征的提取,获得词向量vec,利用k

means方法对词向量vec进行粗粒度层级上的聚类,得到粗粒度标签进而得到实例

粗粒度标签对样本以此类推,通过提取x
α=1
层的粗粒度标签信息,获得x
α
层的粗粒度标签信息;其中,t为粗粒度类别数。
15.在一种实施方式中,所述多粒度类相关性损失函数为
16.其中,λ>0为平衡权重;
[0017][0018]
其中,“·”代表内积,为温标参数,设置为即训练集样本中除锚点i外,与锚点i拥有相同标签的全部实例均作为监督对比式学习的正例,为正例样本标签,为锚点样本标签,为模型学习到的锚点样本的特征,为模型学习到的正例样本的特征,为模型学习到的样本特征,为监督对比损失函数;
[0019]
另,
[0020]
其中,为实例x
k
在粗粒度标签上的期望分布,p
s
为预测概率,为预测标签。
[0021]
优选地,所述分类器为:一层全连接线性网络。
[0022]
其中,所述基于所述多粒度层级结构的训练集对所述对比式开放集识别模型进行训练具体为:
[0023]
将类别的语义标签利用bert转换为词向量,利用k

means构建多粒度层次结构;随机初始化网络,同时更新监督对比式学习损失、多粒度类相关性损失和总损失函数。
[0024]
第二方面,一种考虑多粒度类相关性的对比式开放集识别装置,所述装置包括:
[0025]
划分与构建模块,用于将数据集划分为训练集、已知类测试集和未知类测试集,并对训练集数据构建多粒度层级结构;
[0026]
对比式开放集识别模块,构架一由特征提取、多粒度类相关性损失、及分类器组成的对比式开放集识别模型;
[0027]
计算模块,用于基于所述多粒度层级结构的训练集对所述对比式开放集识别模型进行训练,计算多粒度类相关性损失函数;
[0028]
获取模块,用于通过构建并度量不同类别在分层结构上的相关性,约束模型学习,实现类别层次上的表示学习增强,更新所述模型的权重,获取优化后的模型;
[0029]
识别模块,用于基于所述优化后的模型对已知类测试集和未知类测试集进行识别,获取识别结果。
[0030]
第三方面,一种考虑多粒度类相关性的对比式开放集识别装置,所述装置包括:处理器和存储器,存储器中存储有程序指令,处理器调用存储器中存储的程序指令以使装置执行第一方面中的方法步骤。
[0031]
第四方面,一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时使所述处理器执行第一方面中的方法步骤。
[0032]
本发明提供的技术方案的有益效果是:
[0033]
1、本发明引入了监督对比式学习方法,利用其强大的表示学习能力增强模型在样本级别上的特征表示,提高模型对已知类的刻画能力,提升模型的未知类判别能力;
[0034]
2、本发明设计了一个新颖的多粒度类相关性损失函数,通过构建并度量不同类别在分层结构上的相关性,约束模型学习可反映这种关系的特征,实现类别层次上的表示学习增强,从而进一步提升模型的未知类判别能力;
[0035]
3、本发明构建的标准数据集在cifar10上的闭集分类精度达到98.74%,相较于现有方法提升2.3%以上,同时以cifar10、cifar 10、cifar 50、tinyimagenet为未知类判别的auroc值分别为0.936、0.963、0.964、0.855,性能相较于现有方法提升3.5%以上;模型所需参数量为174000个,模型复杂度相较于已有方法降低68%以上。
附图说明
[0036]
图1为一种考虑多粒度类相关性的对比式开放集识别方法的流程图;
[0037]
图2为多粒度结构示意图;
[0038]
其中,(a)为原始数据类别关系示意图;(b)为所设计的多粒度类相关关系示意图。
[0039]
图3为一种考虑多粒度类相关性的对比式开放集识别装置的结构示意图;
[0040]
图4为一种考虑多粒度类相关性的对比式开放集识别装置的另一结构示意图。
[0041]
表1为不同方法在开放集识别任务中的宏平均f1分数对比;
[0042]
表2不同方法在未知类判别任务中的auroc值。
具体实施方式
[0043]
为使本发明的目的、技术方案和优点更加清楚,下面对本发明实施方式作进一步地详细描述。
[0044]
为了解决背景技术中存在的问题,本发明实施例提出了一种考虑多粒度类相关性的开放集识别方法及装置,提高模型对已知类特征的刻画能力以更加有效地解决开放集识别任务。由于在实际场景中类别间往往呈现分层结构,因此提出利用类别的语义信息构建类别层次结构,通过学习类别间的多粒度相关关系,进一步提升模型对已知类的刻画和表
示学习能力,为开放集识别任务提供技术支持。
[0045]
最近,自监督学习模式,尤其是对比式学习被广泛应用在计算机视觉相关任务中。对比式学习是一种对比正例与负例进行表示学习的方法。众多文献和实验已经证明对比式学习方法在特征表示学习方面具有优势。其中,监督对比式学习方法能够有效地利用标签信息,不仅考虑锚样本自身的增强样本作为正例样本,还将与锚样本类别相同的所有样本作为正例样本进行学习,使对比式学习方法适用于监督学习任务。在嵌入空间中,监督对比式学习方法将属于同一类的样本聚类在一起,并将来自不同类的样本聚类分离,从而获得更加丰富的特征表示,提高模型对已知类的刻画能力,以提高模型在下游任务中的表现。受此启发,本发明实施例针对开放集识别问题引入监督对比式学习方法。
[0046]
实施例1
[0047]
一种考虑多粒度类相关性的对比式开放集识别方法,参见图1,该方法包括以下步骤:
[0048]
101:将数据集划分为训练集、已知类测试集和未知类测试集,并对训练集数据构建多粒度层级结构;
[0049]
102:构架一由特征提取、多粒度类相关性损失、及分类器组成的对比式开放集识别模型;
[0050]
其中,多粒度类相关性损失为:
[0051]
对于训练集样本{x
k
,y
k
}
k=1...n
,,利用标签的语义信息构建x
α,α=0...α
层的层级结构,其中α为层级数,x
α=0
为数据原始标签y
k
作为叶子结点所在的层级;
[0052]
利用word2vec(
·
)模块对原始标签进行语义特征的提取,获得词向量vec,利用k

means方法对词向量vec进行粗粒度层级上的聚类,得到粗粒度标签进而得到实例

粗粒度标签对样本以此类推,通过提取x
α=1
层的粗粒度标签信息,获得x
α
层的粗粒度标签信息;其中,t为粗粒度类别数。
[0053]
优选地,分类器为:一层全连接线性网络。
[0054]
103:基于多粒度层级结构的训练集对对比式开放集识别模型进行训练,计算多粒度类相关性损失函数,通过构建并度量不同类别在分层结构上的相关性,约束模型学习,实现类别层次上的表示学习增强,更新模型的权重,获取优化后的模型;
[0055]
其中,多粒度类相关性损失函数为:
[0056]
其中,λ>0为平衡权重;
[0057][0058]
其中,“·”代表内积,为温标参数,设置为即训练集样本中除锚点i外,与锚点i拥有相同标签的全部实例均作为监督对比式学习的正例,为正例样本标签,为锚点样本标签,为模型学习到的锚点样本的特征,为模型学习到的正例样本的特征,为模型学习到的样本特征,为监督对比损失函数;
[0059]
另,
[0060]
其中,为实例x
k
在粗粒度标签上的期望分布,p
s
为预测概率,为预测标签。
[0061]
104:基于优化后的模型对已知类测试集和未知类测试集进行识别,获取识别结果。
[0062]
综上所述,本发明实施例通过上述步骤101

104实现了通过在标签语义空间构建分层结构并度量多粒度类相关性的方式,约束模型学习不同已知类间的相关关系,进一步提高其表示学习能力。
[0063]
实施例2
[0064]
下面结合具体的计算公式、实例、数据集、图1和图2对实施例1中的方案进行进一步地介绍,详见下文描述:
[0065]
一、划分数据集
[0066]
对于开放集识别任务,需要在实验数据集上划分出部分类别数据作为已知类样本,其余类别作为未知类样本。对标准数据集cifar10、cifar100、imagenet

crop、imagenet

resize、lsun

crop、lsun

resize、tinyimagenet进行随机划分获得训练集、已知类测试集和未知类测试集,具体划分如下:
[0067]
(1)cifar10数据集共有大小为60000张32*32像素的彩色图像,分为10个类,每类6000张图。其中50000张用于训练,构成了5个训练批,每一批10000张图,每一类都有5000张图作为训练集;另外10000张用于测试,单独构成一批,作为验证集。验证集的数据取自10类中的每一类,每一类随机取1000张,与训练集数据无重叠,验证集中各类图像并不一定数量相同。划分时随机选取6类作为已知类样本,其余4类作为未知类样本。
[0068]
(2)cifar100数据集共有60000张32*32像素的彩色图像,共100个类,每类包含600张图像,其中50000张用于训练,构成了5个训练批,每一批10000张图,每一类都有500张图作为训练集;另外10000张用于测试,单独构成一批,作为验证集。验证集的数据取自10类中的每一类,每一类随机取100张,与训练集数据无重叠。对于cifar 10和cifar 50数据集,划分时随机选取cifar10数据集中的4类作为已知类样本,在cifar100数据集中分别随机选取10类和50类作为未知类样本。
[0069]
(3)tinyimagenet数据集,是一个微小图像数据集,包含79,300,000张32*32像素的彩色图像。这些图片采集自google images,分为75,000个类别。划分时随机选取其中20类作为已知类样本,其余180类作为未知类样本。
[0070]
(4)imagenet

crop、imagenet

resize、lsun

crop、lsun

resize数据集分别通过对图像数据库imagenet数据集和场景图像lsun数据集进行裁剪或调整原始图像的大小获得的。这部分实验以cifar10数据集作为训练集和已知类测试样本,分别以上述4种数据集作为未知类测试集。
[0071]
二、使用所划分的标准数据集构建训练集数据的多粒度结构
[0072]
对于训练集样本{x
k
,y
k
}
k=1...n
,利用标签的语义信息构建x
α,α=0...α
层的层级结构,其中x
k
为原始样本,k为原始样本序号,n为原始样本总数,xa为层级,α为层级数,x
α=0
为数据原始标签,y
k
作为叶子结点所在的层级。利用bert(深度双向transformer,本领域技术人员
所公知)模型对原始标签进行语义特征的提取,获得词向量。利用k

means方法对词向量进行粗粒度层级(即第x
α=1
层级)上的聚类,得到粗粒度标签层级)上的聚类,得到粗粒度标签为构建粗粒度层级上的样本标签,s为粗粒度标签序号。
[0073]
进而得到实例

粗粒度标签对样本粗粒度标签对样本为构建多粒度层级后的样本,以此类推,通过提取x
α
‑1层的粗粒度标签信息,可获得x
α
层的粗粒度标签信息。其中t为粗粒度类别数,t<k,α=1,将x
α=1
层级粗粒度标签简化为层级粗粒度标签简化为为粗粒度层级样本标签,图2以划分后的cifar10训练集为例,构建多粒度层次结构。
[0074]
三、使用第二部分所构建的具有多层次结构的训练集来训练本发明实施例所提出的考虑多粒度类相关性的对比式开放集识别模型,计算损失函数,更新模型权重,优化模型。
[0075]
针对开放集识别问题中的诸多难点,本发明实施例提出了一种有效的考虑多粒度类相关性的对比式开放集识别模型,在计算监督对比损失函数的同时,对实例的多粒度类相关性损失函数进行计算,在多个粒度层级上对样本进行分类,使得同类样本同时在多个粒度层级上靠近,类似的,不同类别样本在多个粒度层级上拉远。模型框架由一个特征提取模块(包括编码器网络和映射网络组成)和一个分类器构成,分为预训练阶段和测试阶段。
[0076]
(1)特征提取模块
[0077]
对于开放集识别任务,给定一组有标签的已知类样本作为训练集(即闭集),为实数集,训练集样本对应标签y∈{1,...,k}
n
,其中k是已知类的数量,n是训练集样本的总数,m是每个实例的维度,通过训练模型网络,期望学习到模型f:x

{1,...,k 1}
n
以使模型将测试集中已知类实例进行准确地分类为第c类,f为模型函数,其中c=1,...,k,而将未知类实例(即开放集实例)判别为第k 1类。其中z=enc(x)为编码器网络学习到的表示向量,x为训练集实例。
[0078]
本发明实施例使用监督对比式学习模型作为特征提取预训练模块的主要框架。首先,利用编码器网络enc(
·
)将实例x映射到表示向量:模型对于实例x进行两次不同的数据增广,将两个增广后的样本分别输入到同一编码器网络中,针对实例x得到一对表示向量,并将表示向量z归一化至单位超球面(d
e
=2048,表示向量的维度)上,为单位超球面,从而得到有效的特征表示。然后将编码器网络学习到的表示向量z映射到向量单位超球面,从而得到有效的特征表示。然后将编码器网络学习到的表示向量z映射到向量为向量的维度,proj(.)为映射网络。
[0079]
本发明实施例将编码器网络enc(
·
)设置为resnet

50网络,采用的数据增广方法分别为自动增广方法(autoaugment)和堆叠式随机增广方法(stacked randaugment)。将proj(
·
)设置为含有一个隐藏层、输入向量大小为2048维、输出向量大小为d
p
=128的多层感知机或输出向量大小d
p
=128的线性层。对于映射网络的输出,模型再次进行归一化操作,使其位于单位超球面上,从而可以使用内积来测量映射空间中的距离。
[0080]
其中,上述的数据增广是深度学习中常用的技巧之一,主要用于增加训练数据集,使数据集尽可能的多样化。自动增广方法具有一个搜索空间,其中,一个策略由多个子策略组成,每一个子策略是为每一个批量中的每个图像随机选择的。子策略由两个图像处理函数操作组成,例如:平移、旋转或剪切,以及应用这些函数的概率和幅度。堆叠式随机增广方法可以将数据增广所产生的增量样本空间进行压缩,从而使其与模型训练过程捆绑同时完
成,避免将其作为独立的预处理任务来完成。另外,其设置了增广强度的正则化参数,可以根据不同的模型和数据集大小进行调整。
[0081]
(2)多粒度类相关性损失模块
[0082]
开放集识别模型检测未知类样本的过程实际上是比较该样本类别与各个已知类别相似或相关程度,因此学习到已知类之间的相关关系可以有利于开放集识别任务。特征提取模块主要在样本级别上进行表示学习,但并未利用类别间的相关关系。在此基础上,受人脑认知机制的启发,本发明实施例考虑通过分层抽象的方式,将不同类别的概念监督信息在不同粒度上依据类别间相关性映射到新的粗粒度标签,即同一类别在不同的粒度层次上对应不同的抽象概念标签。相似类别在同一粒度层次上对应相同的抽象概念标签,不相似类别在同一粒度层级上对应不同的抽象概念标签。这样,分层结构中每一层结点中存储相较于子结点更为抽象的粗粒度标签信息,利用每一层结点信息间的相关性,可以实现对相似实例进行粗粒度层级上的拉近,对非相似实例的拉远。以cifar10数据集中部分类别数据为例,如图2所示,为两层粒度层级结构。其中图2中的(a)为现有方法中的原始数据集结构中的类别关系,仅将不同类别区分开,未考虑类别间的相关关系。(b)为本发明实施例所提出的多粒度类相关性层级结构,在区分不同类别的同时,依据类别标签的语义相关性,通过构建多粒度分层结构度量类别间的相关关系,从而进一步提升模型对已知类的表示学习能力。
[0083]
由此,本发明实施例定义一个新的多粒度类相关性损失,以达到更好的判别开放集实例的目的。对于训练集样本{x
k
,y
k
}
k=1...n
,,利用标签的语义信息构建x
α,α=0...α
层的层级结构,其中α为层级数,x
α=0
为数据原始标签y
k
作为叶子结点所在的层级。利用word2vec(
·
)模块(该模块为本领域技术人员所公知,本发明实施例对此不做赘述)对原始标签进行语义特征的提取,获得词向量vec。利用k

means方法对词向量vec进行粗粒度层级(即第x
α=1
层级)上的聚类,得到粗粒度标签进而得到实例

粗粒度标签对样本α=1,以此类推,通过提取x
α=1
层的粗粒度标签信息,可获得x
α
层的粗粒度标签信息。
[0084]
其中,t为粗粒度类别数,t<k。本发明实施例仅讨论两层分层结构的情况,将x
α=1
层级粗粒度标签简化为
[0085]
在训练过程中,假设i∈i≡{1...2n}为训练集中实例的索引,第i个增广样本作为锚点,定义j(i)为起源于同一实例除锚点外的数据增广实例的索引,j(i)即为正例,其他2(n

1)个实例({k∈a(i)\{j(i)})则为监督对比式学习的负例,a(i)为样本集合。
[0086]
训练过程中将监督对比式学习损失函数定义为:
[0087][0088]
其中,“·”代表内积,为温标参数,设置为即训练集样本中除锚点i外,与锚点i拥有相同标签的全部实例均作为监督对比式学习的正例,为正例样本标签,为锚点样本标签,为模型学习到的锚点样本的特征,为模型学习到的正例样本的特征,为模型学习到的样本特
征,为监督对比损失函数。
[0089]
对于一批训练样本,在模型计算监督对比损失函数的同时,对实例的多粒度类相关性损失函数进行计算,训练过程中将多粒度类相关性损失函数定义为:
[0090][0091]
其中,为实例x
k
在粗粒度标签上的期望分布,p
s
为预测概率,为预测标签。
[0092]
最终总损失函数定义为:
[0093]
其中,λ>0为平衡权重,本发明实施例在所有实验中设置λ=1。可根据不同的应用场景给定不同的值。模型同时进行样本级别和类级别的增强,从而实现对已知类别更好的刻画和表示,不仅可提高已知类的判别性能,还能同时提升对未知类判别的性能。
[0094]
(3)分类器
[0095]
本发明实施例将分类器设置为一层全连接线性网络作为线性分类器。
[0096]
算法1是本发明训练过程和测试过程的详细步骤。模型在训练阶段,首先将类别的语义标签利用bert转换为词向量,随后利用k

means方法聚类构建多粒度层次结构;随后,随机初始化网络,同时更新监督对比式学习损失(公式(1))、多粒度类相关性损失(公式(2))和总损失函数(公式(3))。测试阶段,先对测试样本进行训练,生成表示向量,再输入进分类器进行分类,判断样本属于某个已知类或未知类。
[0097]
算法1
[0098]
[0099][0100]
综上所述,本发明实施例将监督对比式学习方法引入到开放集识别中,并新设计了多粒度类相关性损失,以前的方法没有利用多粒度类别间的相关性对已知类进行刻画,该方法提高了分类精度和未知类判别的准确性。利用制订的多种训练参数进行多次训练,可以获得最优参数组使得模型的效果最好。
[0101]
实施例3
[0102]
下面结合具体的算例对实施例1和2中的方案进行可行性验证,详见下文描述:
[0103]
考虑多粒度类相关性的对比式开放集识别方法分为训练阶段和测试阶段两部分。在训练阶段,使用resnet

50作为编码器网络,设置一层全连接线性网络作为映射网络,另一层全连接线性网络作为分类器。数据批大小始终设置为512,训练过程中学习率设置为0.5,训练轮数1000次,测试过程中学习率设置为5。模型池化层(d
e
=2048)的归一化激活用作表示向量。另外,利用bert模型生成训练集样本原始标签的词向量并采用k

means方法进行聚类,以构建多粒度层级结构。
[0104]
下面结合图1与图2,对考虑多粒度类相关性的对比式开放集识别方法的具体流程进行详细说明:
[0105]
步骤(1)将数据集划分为训练集、已知类测试集和未知类测试集,并对训练集数据构建多粒度层级结构;
[0106]
步骤(2)对于深度网络构成的特征提取模块进行预训练,损失函数由监督式对比学习损失和多粒度类相关性损失构成,使用批量梯度下降算法进行优化;
[0107]
步骤(3)对分类器进行小规模训练,并用已知类测试集测试分类效果,用未知类测试集测试未知类判别效果;
[0108]
步骤(4)根据制订的训练计划(包括几组不同的训练参数),调整训练参数,重复步骤(2)和步骤(3),至训练轮数终止,执行步骤(5);
[0109]
步骤(5)对得到的所有实验结果进行比较。
[0110]
实验结果分析如下:
[0111]
本发明实施例中的实验遵循标准评估体系,通过auroc评价模型的未知类判别效果,同时比较模型的闭集精度以评价已知类分类性能。其中平均f1分数是分类任务中综合考虑查准率和查全率的性能度量,表1中的实验结果综合评价了模型在开放集识别任务中的表现。
[0112]
其中,auroc值可以解释为正例被赋予比负例更高检测分数的概率,是一个与阈值无关的度量,auroc值越大,代表模型判别未知样本的能力越强。将实验结果与八种现有方
法进行比较,包括:softmax,openmax,crosr,c2ae,cgdl,g

openmax,osrci和mlosr。表格1中展示了在imagenet

crop、imagenet

resize、lsun

crop、lsun

resize数据集上的宏平均f1分数,综合体现了本发明实施例提供的模型在已知类分类和未知类判别任务上的性能。本发明实施例利用监督对比式学习方法和多粒度类间相似性信息,提高了模型对已知类的刻画和表示能力,因此可提高模型性能。
[0113]
表1不同方法在开放集识别任务中的宏平均f1分数对比
[0114][0115]
表2展示了不同方法在tinyimagenet,cifar10,cifar 10和cifar 50数据集下的未知类判别实验结果。可以看出,相对于现有方法,本发明实施例的实验结果存在明显优势,证实了其有效性。
[0116]
表2不同方法在未知类判别任务中的auroc值
[0117][0118]
此外,本发明实施例比较了不同模型的已知类分类精度(在cifar10数据集上)。由于其他方法未公布闭集性能或实验设置不同,只比较了softmax方法和本方法。其中,softmax方法的闭集精度为96.43%,micc为98.74%,表明本方法能够显著提高已知类分类精度。相比之下,现有方法除了softmax方法和cgdl方法可实现闭集精度不下降之外,其他方法难以保持已知类的分类性能。
[0119]
综上所述,本发明实施例提供的方法可同时提高已知类分类和未知类判别的性能,从而能更好地解决开放集识别问题。
[0120]
实施例4
[0121]
本发明实施例提供了一种考虑多粒度类相关性的对比式开放集识别装置,参见图3,该装置包括:
[0122]
划分与构建模块1,用于将数据集划分为训练集、已知类测试集和未知类测试集,并对训练集数据构建多粒度层级结构;
[0123]
对比式开放集识别模块2,构架一由特征提取、多粒度类相关性损失、及分类器组成的对比式开放集识别模型;
[0124]
计算模块3,用于基于多粒度层级结构的训练集对所述对比式开放集识别模型进行训练,计算多粒度类相关性损失函数;
[0125]
获取模块4,用于通过构建并度量不同类别在分层结构上的相关性,约束模型学习,实现类别层次上的表示学习增强,更新所述模型的权重,获取优化后的模型;
[0126]
识别模块5,用于基于优化后的模型对已知类测试集和未知类测试集进行识别,获取识别结果。
[0127]
其中,上述多粒度类相关性损失为:
[0128]
对于训练集样本{x
k
,y
k
}
k=1...n
,,利用标签的语义信息构建x
α,α=0...α
层的层级结构,其中α为层级数,x
α=0
为数据原始标签y
k
作为叶子结点所在的层级;
[0129]
利用word2vec(
·
)模块对原始标签进行语义特征的提取,获得词向量vec,利用k

means方法对词向量vec进行粗粒度层级上的聚类,得到粗粒度标签进而得到实例

粗粒度标签对样本以此类推,通过提取x
α=1
层的粗粒度标签信息,获得x
α
层的粗粒度标签信息;其中,t为粗粒度类别数。
[0130]
优选地,分类器为:一层全连接线性网络。
[0131]
在一种实施方式中,多粒度类相关性损失函数为:
[0132]
其中,λ>0为平衡权重;
[0133][0134]
其中,“·”代表内积,为温标参数,设置为即训练集样本中除锚点i外,与锚点i拥有相同标签的全部实例均作为监督对比式学习的正例,为正例样本标签,为锚点样本标签,为模型学习到的锚点样本的特征,为模型学习到的正例样本的特征,为模型学习到的样本特征,为监督对比损失函数;
[0135]
另,
[0136]
其中,为实例x
k
在粗粒度标签上的期望分布,p
s
为预测概率,为预测标签。
[0137]
这里需要指出的是,以上实施例中的装置描述是与上述方法实施例描述相对应的,本发明实施例在此不做赘述。
[0138]
上述各个模块、单元的执行主体可以是计算机、单片机、微控制器等具计算功能的器件,具体实现时,本发明实施例对执行主体不做限制,根据实际应用中的需要进行选择。
[0139]
实施例5
[0140]
一种考虑多粒度类相关性的对比式开放集识别装置,参见图4,该装置包括:处理
器6和存储器7,存储器7中存储有程序指令,处理器6调用存储器中存储的程序指令以使装置执行实施例1

2中的方法步骤:
[0141]
将数据集划分为训练集、已知类测试集和未知类测试集,并对训练集数据构建多粒度层级结构;
[0142]
构架一由特征提取、多粒度类相关性损失、及分类器组成的对比式开放集识别模型;
[0143]
基于多粒度层级结构的训练集对对比式开放集识别模型进行训练,计算多粒度类相关性损失函数,通过构建并度量不同类别在分层结构上的相关性,约束模型学习,实现类别层次上的表示学习增强,更新模型的权重,获取优化后的模型;
[0144]
基于优化后的模型对已知类测试集和未知类测试集进行识别,获取识别结果。
[0145]
在一种实施方式中,多粒度类相关性损失函数为:
[0146]
其中,λ>0为平衡权重;
[0147][0148]
其中,“·”代表内积,为温标参数,设置为即训练集样本中除锚点i外,与锚点i拥有相同标签的全部实例均作为监督对比式学习的正例,为正例样本标签,为锚点样本标签,为模型学习到的锚点样本的特征,为模型学习到的正例样本的特征,为模型学习到的样本特征,为监督对比损失函数;
[0149]
另,
[0150]
其中,为实例x
k
在粗粒度标签上的期望分布,p
s
为预测概率,为预测标签。
[0151]
这里需要指出的是,以上实施例中的装置描述是与实施例中的方法描述相对应的,本发明实施例在此不做赘述。
[0152]
上述的处理器6和存储器7的执行主体可以是计算机、单片机、微控制器等具有计算功能的器件,具体实现时,本发明实施例对执行主体不做限制,根据实际应用中的需要进行选择。
[0153]
存储器7和处理器6之间通过总线8传输数据信号,本发明实施例对此不做赘述。
[0154]
实施例6
[0155]
一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序包括程序指令,程序指令被处理器执行时使所述处理器执行实施例1和2中的方法步骤。
[0156]
该计算机可读存储介质包括但不限于快闪存储器、硬盘、固态硬盘等。
[0157]
这里需要指出的是,以上实施例中的可读存储介质描述是与实施例中的方法描述想对应的,本发明实施例在此不做赘述。
[0158]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分
地产生按照本发明实施例的流程或功能。
[0159]
计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者通过计算机可读存储介质进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质或者半导体介质等。
[0160]
本发明实施例对各器件的型号除做特殊说明的以外,其他器件的型号不做限制,只要能完成上述功能的器件均可。
[0161]
本领域技术人员可以理解附图只是一个优选实施例的示意图,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0162]
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献