本发明属于图片分类技术领域,更为具体地讲,涉及一种基于自编码器的零样本图片分类方法。
背景技术:
零样本学习的目标是在有标注的数据集上训练一个网络,使其既能识别参与训练的可见类别,同时能识别未参与训练的不可见类别。零样本学习的核心思想是将从可见类别获取到的知识迁移到不可见类别中。
现有的零样本学习方法可以粗略分类两类:基于嵌入的方法和基于生成式的方法。
基于嵌入的方法致力于学习一个共享的嵌入空间,将可见类和不可见类的信息映射到公共空间内,并在其中迁移知识。基于嵌入的方法的关键点是学习类别之间的隐式关系。然而,类别之间的关系是模糊的和不确定的,很难在公共的嵌入空间内学习到准确的类别之间的关系,导致知识迁移准确性较低,限制了嵌入方法的效果。
基于生成式的方法生成不可见类的视觉特征,通常该方法训练一个基于类别信息的条件生成器,利用生成的视觉特征来训练网络,从而将零样本分类问题转化为普通的分类问题。基于生成式的方法虽然能生成大量的视觉特征,一定程度上能解决基于嵌入方法的难题。但是训练一个好的生成网络,需要大量的运行时间,且用生成的样本来训练网络依然需要消耗大量的计算时间。而在现实中,新事物层出不穷,类别的数量无时无刻不在增加,且不可见类的数量是巨大的。当新类别出现后,需要重新训练生成网络,对时间的消耗是巨大的。
技术实现要素:
本发明的目的在于克服现有技术的不足,提供一种基于自编码器的零样本图片分类方法,直接为不可见类生成视觉分类器,从而避免现有的生成式方法消耗大量时间的问题,缩短训练耗时,提高图片分类精度。
为实现上述发明目的,本发明基于自编码器的零样本图片分类方法,其特征在于,包括以下步骤:
(1)、编码类级语义特征
设计一个全连接图卷积网络作为编码器,采集类级别的语义特征矩阵c,并构建类别间的知识图谱a,然后利用编码器,将知识图谱a作为邻接矩阵对语义特征矩阵c进行编码,输出类别的隐分布特征矩阵z:
其中,encoder(·)表示编码,g(·)表示堆叠的gcn(图卷积网络)层,
其中,语义特征矩阵c为
(2)、解码每个隐分布特征(向量)
设计一个全连接图卷积网络作为解码器,以每个类别的隐分布向量作为输入,并为每一类生成一个分类器
其中,fi为类别i的分类器向量,wh为图卷积网络第h层的参数矩阵,{wh}表示参数矩阵集合;
(3)、极小化损失函数,训练自编码器
构建损失函数l:
其中,m是所有类别中可见类的数量,f′j为可见类中类别j的语义特征(向量)c'j经过编码器、解码器(编码器、解码器构成自编码器)得到的类别j的分类器向量,
通过端到端的方式,依据随机梯度下降算法更新编码器参数矩阵集合{wk}、解码器参数矩阵集合{wk}极小化损失函数l来训练自编码器;
(4)、零样本图片分类
4.1)、将所有n个类别的语义特征(向量)输入到自编码器中,得到每个类别的分类器向量fi,i=1,2,…n;
4.2)、用真实分类器向量对应的训练好的cnn(卷积神经网络)提取未知类别图片的视觉特征向量;
4.3)、将未知类别图片的视觉特征向量与步骤4.1)的每个类别的分类器向量fi,i=1,2,…n计算内积值;
4.4)、依据内积值大小,从大到小排列,内积值最大的分类器向量对应的类别就是图片的类别。
本发明的目的是这样实现的。
本发明基于自编码器的零样本图片分类方法,构建了一个新的生成模型,来直接用生成式方法生成不可见类别的分类器向量。生成模型是一个基于图的自编码结构,其中,编码器用来学习每个类别的隐分布,解码器则用来依据隐分布信息来生成每个类的分类器向量。由于知识图谱允许类别之间共享统计强度,本发明利用结构化的知识图谱来表示类别之间的关系,并采用图卷积神经网络在类别之间迁移知识。不同于之前的生成式方法生成类别的视觉特征,本发明直接为不可见类生成分类器,从而避免现有的生成式方法消耗大量时间的问题,缩短训练耗时,提高图片分类精度,即高效且准确。
附图说明
图1是本发明基于自编码器的零样本图片分类方法一种具体实施方式流程图;
图2是本发明中自编码器结构编解码构建分类器输出分类器向量的示意图。
具体实施方式
下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
图卷积网络(graphconvolutionalnetworks(gcn))最早被用于处理弱监督分类问题。gcn是一个表现良好的分层传播规则,它源于谱图卷积的一阶近似。由于gcn能直接处理图结构数据,被广泛用于各种任务。给定节点的特征矩阵hl和邻接矩阵a,扩增规则可以被定义为:
其中,hl 1是更新后的节点特征矩阵,
在本发明中,编码器、解码器都是一个全连接图卷积结构。具体而言,如图1所示,本发明基于自编码器的零样本图片分类方法,包括以下步骤:
步骤s1:编码类级语义特征
如图2所示,设计一个全连接图卷积网络作为编码器,编码器以类级的语义特征为输入,输出类别的隐分布特征。
具体地,采集类级别的语义特征矩阵c,并构建类别间的知识图谱a,然后利用编码器,将知识图谱a作为邻接矩阵对语义特征矩阵c进行编码,输出类别的隐分布特征矩阵z:
其中,encoder(·)表示编码,g(·)表示堆叠的gcn(图卷积网络)层,
其中,语义特征矩阵c为
步骤s2:解码每个隐分布特征(向量)
如图2所示,设计一个全连接图卷积网络作为解码器,通过编码器能获取到每个类别的隐分布向量。此处,本发明设计一个解码器来从隐分布向量中生成分类器。本发明设计一个全连接图卷积网络作为解码器。它以每个类别的隐分布向量作为输入,并为每一类别生成一个分类器,输出分类器向量。
具体地,以每个类别的隐分布向量作为输入,并为每一类生成一个分类器
其中,fi为类别i的分类器向量,wh为图卷积网络第h层的参数矩阵,{wh}表示参数矩阵集合。
步骤s3:极小化损失函数,训练自编码器
编码器、解码器构成自编码器。
在本发明中,自编码器是以一种弱监督的方式来训练的。损失是在可见类别对应的节点上计算得出的。为了清晰表示,让m表示可见类的数量,自编码器是通过端到端的方式、极小化损失函数来训练。
具体地,构建损失函数l:
其中,m是所有类别中可见类的数量,f′j为可见类中类别j的语义特征(向量)c'j经过编码器、解码器得到的类别j的分类器向量,
通过端到端的方式,依据随机梯度下降算法更新编码器参数矩阵集合{wk}、解码器参数矩阵集合{wk}极小化损失函数l来训练自编码器。
步骤s4:零样本图片分类
在预测(零样本图片分类)阶段,利用预先训练的cnn网络提取图片的视觉特征向量,然后用生成的分类器向量对其进行分类:将分类器向量和视觉特征向量进行内积,内积值最大的分类器向量对应的类别就是图片的类别。具体地,包括以下步骤:
步骤s4.1:获取每个类别的分类器向量
将所有n个类别的语义特征(向量)输入到自编码器中,得到每个类别的分类器向量fi,i=1,2,…n。
步骤s4.2:获取未知类别图片的视觉特征向量
用真实分类器向量对应的训练好的cnn(卷积神经网络)提取未知类别图片的视觉特征向量x。
步骤s4.3:计算内积值
将未知类别图片的视觉特征向量x与步骤4.1)的每个类别的分类器向量fi,i=1,2,…n计算内积值si:
si=fit·x,i=1,2,...,n
步骤s4.4:依据内积值得到图片类别
将内积值si作为分类预测分数,依据内积值大小,从大到小排列,内积值最大的分类器向量对应的类别i*就是图片的类别。
测试
我们在imagenet-21k数据集上对本发明进行测试。我们采用hit@k作为评价指标,它表示在前k个结果中有正确类别的图片所占的比例。imagenet-21k包含三个子集,2-hops,3-hops以及all。2-hops包含1549个不可见类别,3-hops包含7800个不可见类别,all数据集包含20841个不可见类别。我们在imagenet-1k数据集上进行训练,在三个子集上进行零样本分类测试。在测试时,分两种零样本设定,第一种是传统设定,测试候选类仅包含不可见类,第二种设定是广义零样本设定,测试候选类别既包含可见类也包含不可见类别。测试结果分别呈现在表1和表2中。
表1
表2
表1是在传统设定下的实验结果,表2是在广义设定下的实验结果。
从表1、2中可以看出,我们的方法均优于之前的方法。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
1.一种基于自编码器的零样本图片分类方法,其特征在于,包括以下步骤:
(1)、编码类级语义特征
设计一个全连接图卷积网络作为编码器,采集类级别的语义特征矩阵c,并构建类别间的知识图谱a,然后利用编码器,将知识图谱a作为邻接矩阵对语义特征矩阵c进行编码,输出类别的隐分布特征矩阵z:
其中,encoder(·)表示编码,g(·)表示堆叠的gcn(图卷积网络)层,
其中,语义特征矩阵c为
(2)、解码每个隐分布特征(向量)
设计一个全连接图卷积网络作为解码器,以每个类别的隐分布向量作为输入,并为每一类生成一个分类器
其中,fi为类别i的分类器向量,wh为图卷积网络第h层的参数矩阵,{wh}表示参数矩阵集合;
(3)、极小化损失函数,训练自编码器
构建损失函数l:
其中,m是所有类别中可见类的数量,f′j为可见类中类别j的语义特征(向量)c'j经过编码器、解码器(编码器、解码器构成自编码器)得到的类别j的分类器向量,
通过端到端的方式,依据随机梯度下降算法更新编码器参数矩阵集合{wk}、解码器参数矩阵集合{wk}极小化损失函数l来训练自编码器;
(4)、零样本图片分类
4.1)、将所有n个类别的语义特征(向量)输入到自编码器中,得到每个类别的分类器向量fi,i=1,2,…n;
4.2)、用真实分类器向量对应的训练好的cnn(卷积神经网络)提取未知类别图片的视觉特征向量;
4.3)、将未知类别图片的视觉特征向量与步骤4.1)的每个类别的分类器向量fi,i=1,2,…n计算内积值;
4.4)、依据内积值大小,从大到小排列,内积值最大的分类器向量对应的类别就是图片的类别。
技术总结