本发明涉及计算机视觉识别和迁移学习领域,更具体地,涉及一种基于度量学习和元学习的小样本和零样本图像分类方法。
背景技术:
小样本和零样本图像识别分类具有很好的应用前景。其中,小样本图像分类能够在仅存少量标注图片但类别信息较多的情况下发挥巨大的作用,比如在遥感图像或者红外图像的目标识别中,由于机载雷达、遥感卫星图像采集的高成本和高难度,只能采集到少量图像作为训练模板,因此需要小样本识别系统的协助。而零样本图像分类能够在没有训练样本而只有类别的语义标签的情况下发挥巨大的作用,只需要给出相应的语义标签,不需要收集训练图片,即可应用到现实生活中大部分物体的识别分类任务中。
现有的关于小样本和零样本图像识别分类的研究都是基于深度卷积网络的,有研究学者将元学习的训练方法引入小样本图像识别中,通过不同的与目标任务相似的元学习训练任务来训练网络,模拟真实的测试环境,通过元学习泛化到目标任务中,从而实现目标任务的快速学习。在此基础上,有大量的研究关注于如何学习到一个共同的特征空间和特征度量标准,使得可以反映出测试集和支撑集的真实距离,从而实现识别分类。
然而,现有的研究中只考虑了一个度量标准,但在实际应用中,不同的数据集的数据分布不同,只考虑一种度量标准可能无法适用于多个不同的数据集中。另外,现有的研究中没有考虑到不同的特征对于分类的作用是不同的,导致产生对分类没有影响的特征,从而导致引入了分类噪声。
技术实现要素:
本发明为克服上述现有技术所述的只考虑一种度量标准以及没有考虑到不同特征对于分类的作用不同等至少一种缺陷,提供一种基于度量学习和元学习的小样本和零样本图像分类方法,通过将小样本的元学习训练方法拓展到零样本学习中,同时引入特征关注模块和多度量准则学习,通过特征关注模块对噪声特征进行过滤,有效实现图像的准确分类。
为解决上述技术问题,本发明的技术方案如下:
基于度量学习和元学习的小样本和零样本图像分类方法,包括以下步骤:
s1.收集生活场景图像,经过人工分类构建训练数据集和目标任务数据集;
s2.从训练数据集中随机抽取不同类别的若干张训练图片或语义属性作为样本组成支撑集,从所选取的类别中抽取若干张不重复的训练图片作为样本组成测试集;
s3.将测试集样本输入特征提取网络fθ,将支撑集样本输入特征提取网络gθ中输出得到对应的特征向量f(x)和g(x);
s4.将测试集样本和支撑集样本对应的特征向量f(x)和g(x)分别输入特征关注模块中,输出对应的关注后的特征向量f′(x)和g′(x);
s5.将测试集样本和支撑集样本对应的关注后的特征向量f′(x)和g′(x)分别输入距离度量模块中,计算测试集样本与支撑集样本的类别相似度,并利用损失函数通过梯度反向传播算法更新各个模块的参数;
s6.重复步骤s2~s5,直到各个模块或网络的参数收敛;
s7.将目标任务数据集中的待测图片输入训练后的特征提取网络fθ,将目标任务中的所有训练图片或语义属性输入训练后的特征提取网络gθ,然后将输出的特征向量依次通过训练后的特征关注模块和距离度量模块,最终输出与待测图片类别相似度最高的类别标签,即为测试集待测图片的识别分类结果。
本技术方案中,通过用训练数据集以及元学习的训练方法来构建和训练特征提取网络、特征关注模块、距离度量模块,组成基于度量学习和元学习的小样本和零样本图像分类模型。由于训练数据集和目标任务数据集所包含的类别不同,且目标任务数据集中样本的数量远少于训练数据集,因此在模型训练过程中,训练数据集通过元学习的训练方法来训练模型,而目标任务数据集通过迁移学习,将训练数据集的知识通过多次与目标任务相似的训练任务泛化到目标任务数据集,从而解决目标任务训练数据不足等问题。在图像识别分类过程中,首先利用训练后的特征提取网络提取出支撑集和待测图片的特征,再利用特征关注模块对重要的特征给予关注并过滤噪声特征,得到关注后的支撑集和待测图片的特征向量,再利用距离度量模块得出待测图片和支撑集中每一个样本之间的相似度,并通过将支撑集中同类样本的相似度相加得到待测图片和每个类别之间的类别相似度,最后通过找出最大类别相似度所对应的类别标签,即为待测图片所识别得到的类别。本技术方案将小样本的元学习训练方法拓展到零样本学习中,同时引入特征关注模块、多度量准则学习,通过损失函数对模型的参数进行更新,能够有效地学习到一个更好的度量空间,有效实现图像精确分类。
优选地,步骤s2中,对于小样本图像分类,从训练数据集中随机选取n个类别,并从n个类别中对应的每一类别随机选取k张训练图片组成支撑集,从所选取的n个类别中随机抽取与支撑集不重合的t张训练图片组成测试集;对于零样本图像分类,从训练数据集中随机选取n个类别对应的语义属性作为训练样本组成支撑集,从所选取的n个类别中随机抽取t张训练图片组成测试集,其中n的数值应为目标任务数据集中所包含类别的数量,k的数值应为目标任务数据集的每一类的训练图片的数量,n、k、t为正整数。
优选地,步骤s3中,特征提取网络fθ为四层结构的卷积神经网络,其中第一层和第二层各有2个卷积模块,第三层和第四层各有1个卷积模块,每个卷积模块由卷积层、批归一化层、relu非线性激活函数层和最大池化层组成;对于小样本学习,特征提取网络gθ与特征提取网络fθ结构相同,而对于零样本学习,特征提取网络gθ包括word2vec工具包和前后相连的两个由全连接层、0.5失活率的失活层、relu非线性激活层组成的模块。本优选方案可实现对同一特征图的多核多尺度学习。
优选地,步骤s4的具体步骤包括:
s41.计算支撑集所有的特征向量对应的各个维度特征的标准差并作为该特征向量的起始权重,再经过一个特征关注网络得到最后的权重wj,其计算公式如下:
其中,d为特征向量维度,n为支撑集的样本的数量,gij为支撑集第i个训练图片的第j维特征,gkj为支撑集第k个训练图片的第j维特征,wj为第j维特征的权重,z表示由一个1维的批归一化层和一个sigmoid非线性函数组成的特征关注网络;
s42.将各个维度的特征的权重wj形成的权重向量w分别与支撑集和测试集的特征向量g(x)和f(x)相乘,再经过tanh非线性层激活后得到关注后的特征向量g′(x)和f′(x),即:
其中,
本优选方案中,特征的权重通过特征的标准差决定,每一个特征的标准差越大,证明其在类间的区分度越高,对分类作用越大,特征也就越重要。本优选方案可有效提高对分类有用的特征的权重,同时抑制噪声特征的干扰,同时本算法的权重由特征的统计特性决定,只需要用到一维归一化层的少量参数,能够提高计算效率。
优选地,步骤s5中的具体步骤包括:
s51.将测试集和支撑集对应的关注后的特征向量f′(x)和g′(x)分别输入距离度量模块中,计算测试集样本的关注后的特征向量f′(x)和支撑集中每个样本关注后的特征向量g′(x)的相似度sj;
s52.通过softmax函数将所计算得到的相似度归一化处理,并以经归一化处理的相似度为矩阵元素组成n维行向量
s53.将支撑集所有样本对应类别的标签组成标签矩阵y∈rn×n,即y=[y1;y2;...;yi;...;yn],其中yi表示第i个支撑集样本的类别标签,然后将支撑集中类别相同的样本对应的相似度相加得到对应的类别相似度
s54.利用计算测试集的类别相似度和真实标签产生的损失函数,通过梯度反向传播算法更新各个模块的参数。
优选地,步骤s51中测试集样本的关注后的特征向量f′(x)和支撑集中每个样本关注后的特征向量g′(x)的相似度sj的计算公式为:
其中,sj为测试集样本
优选地,距离度量标准数量c为3,此时有:
其中,d1(f'(·),g'(·))表示关注后的特征向量的余弦相似度,d2(f'(·),g'(·))表示关注后的特征向量的负指数欧氏距离,d3(f'(·),g'(·))表示相似度神经网络。本优选方案中,采用余弦相似度进行度量学习能够关注不同特征点在特征空间的角度关系,采用负指数欧氏距离进行度量学习能够关注不同特征点在特征空间的直线距离,采用相似度神经网络进行度量学习能够自动学习得到一个距离度量标准。
优选地,步骤s52中,通过softmax函数将所计算得到的相似度归一化处理,其计算公式如下:
其中,
优选地,步骤s54中的损失函数定义为:
其中,y为真实标签,
本优选方案中,设计了一个能使类间距离最大化以及类内距离最小化的损失函数,其中损失函数第一项为余弦距离损失函数,能够使测试集样本和与其类别相同的支撑集样本的相似度尽可能大,并使与测试集样本不同类别的支撑集样本的相似度尽可能等于0,能够在训练次数较少的情况下得到一个更好的分类器;损失函数第二项用于使模型参数更新的方向往预测正确的方向偏移,且有助于使样本间同类间隔最小化,异类间隔最大化;损失函数第三项为l2正则化项,用于防止训练数据较少的情况下产生的拟合现象。
优选地,支撑集样本的类别标签yi采用独热编码向量表示。
与现有技术相比,本发明技术方案的有益效果是:能够同时解决小样本和零样本图像识别分类问题,对图像的重要特征进行关注,对噪声特征进行过滤,且能够实现对特征之间距离的多度量准则学习,有效实现图像的准确分类。
附图说明
图1为本实施例的方法流程图。
图2为本实施例的测试集特征提取网络fθ的结构示意图。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;
对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
下面结合附图和实施例对本发明的技术方案做进一步的说明。
如图1所示,为本实施例的基于度量学习和元学习的小样本和零样本图像分类方法的方法流程图。
基于度量学习和元学习的小样本和零样本图像分类方法,包括以下步骤:
步骤一:收集生活场景图像,经过人工分类构建训练数据集和目标任务数据集。
步骤二:对于小样本图像分类,从训练数据集中随机选取n个类别,并从n个类别中对应的每一类别随机选取k张训练图片组成支撑集,从所选取的n个类别中随机抽取与支撑集不重合的t张训练图片组成测试集;对于零样本图像分类,从训练数据集中随机选取n个类别对应的语义属性作为训练样本组成支撑集,从所选取的n个类别中随机抽取t张训练图片组成测试集,其中n的数值应为目标任务数据集中所包含类别的数量,k的数值应为目标任务数据集的每一类的训练图片的数量,本实施例中支撑集中训练图片的类别数量n取值为10,每个类别的训练图片数量k取值为10,测试集中的训练图片数量t取值为5。
步骤三:将测试集样本输入特征提取网络fθ,将支撑集样本输入特征提取网络gθ中,输出得到对应的t个测试集样本特征向量f(x)和n=n×k个支撑集样本特征向量g(x)。
其中,步骤三中的特征提取网络fθ为四层结构的卷积神经网络,其中第一层和第二层各有2个卷积模块,第三层和第四层各有1个卷积模块,每个卷积模块由卷积层、批归一化层、relu非线性激活函数层和最大池化层组成;对于小样本图像分类,特征提取网络gθ与特征提取网络fθ结构相同,而对于零样本图像分类,特征提取网络gθ包括word2vec工具包和前后相连的两个由全连接层、0.5失活率的失活层、relu非线性激活层组成的模块。
如图2所示,为本实施例的测试集特征提取网络fθ的结构示意图。
具体地,在小样本图像分类中,当样本x输入特征提取网络fθ时:
x3=f3(x2),f(x)=f4(x3)
其中,x1,x2,x3分别表示特征提取网络fθ中第一层、第二层、第三层输出的特征图,f1_1(.),f1_2(.),f2_1(.),f2_2(.),f3(.),f4(.)分别表示第一层、第二层、第三层、第四层的卷积模块,
在零样本图像分类中,当支撑集中的语义属性通过特征提取网络gθ时,首先通过特征提取网络gθ中的word2vec层将每一个单词编码成一个向量,再将每一个类别所有属性对应的向量连接起来后传送到前后相连的两个由全连接层、0.5失活率的失活层、relu非线性激活层组成的模块,最后输出得到一个向量,其维度和测试集的每一个样本的特征向量的维度相同。
步骤四:将测试集样本和支撑集样本对应的特征向量f(x)和g(x)分别输入特征关注模块中,输出对应的关注后的特征向量f′(x)和g′(x)。其具体步骤包括:
s41.计算支撑集所有的特征向量对应的各个维度特征的标准差并作为该特征向量的起始权重,再经过一个特征关注网络得到最后的权重wj,其计算公式如下:
其中,d为特征向量维度,n为支撑集的样本的数量,gij为支撑集第i个训练图片的第j维特征,gkj为支撑集第k个训练图片的第j维特征,wj为第j维特征的权重,z表示由一个1维的批归一化层和一个sigmoid非线性函数组成的特征关注网络;
s42.将各个维度的特征的权重wj形成的权重向量w分别与支撑集和测试集的特征向量g(x)和f(x)相乘,再经过tanh非线性层激活后得到关注后的特征向量g′(x)和f′(x),即:
其中,
步骤五:将测试集样本和支撑集样本对应的关注后的特征向量f′(x)和g′(x)分别输入距离度量模块中,计算测试集样本与支撑集样本的类别相似度,并利用损失函数通过梯度反向传播算法更新各个模块的参数。其具体步骤包括:
s51.将测试集和支撑集对应的关注后的特征向量f′(x)和g′(x)分别输入距离度量模块中,计算测试集样本的关注后的特征向量f′(x)和支撑集中每个样本关注后的特征向量g′(x)的相似度sj,其计算公式如下:
其中,sj为测试集样本
其中,d1(f'(·),g'(·))表示关注后的特征向量的余弦相似度,能够关注不同特征点在特征空间的角度关系;d2(f'(·),g'(·))表示关注后的特征向量的负指数欧氏距离,能够关注不同特征点在特征空间的直线距离;d3(f'(·),g'(·))表示相似度神经网络,能够自动学习得到一个距离度量标准。
s52.通过softmax函数将所计算得到的相似度归一化处理,并以经归一化处理的相似度为矩阵元素组成n维行向量a(x~),相似度归一化处理的计算公式如下:
其中,
s53.将支撑集所有样本对应类别的标签组成标签矩阵y∈rn×n,即y=[y1;y2;...;yi;...;yn],其中yi表示第i个支撑集样本的类别标签,采用独热编码向量表示,然后将支撑集中类别相同的样本对应的相似度相加得到对应的类别相似度
s54.利用计算测试集的类别相似度和真实标签产生的损失函数,通过梯度反向传播算法更新各个模块的参数,损失函数如下:
其中,y为真实标签,
损失函数l用于使类间距离最大化以及类内距离最小化,其中第一项为余弦距离损失函数,能够使测试集样本和与其类别相同的支撑集样本的相似度尽可能大,并使与测试集样本不同类别的支撑集样本的相似度尽可能等于0,能够在训练次数较少的情况下得到一个更好的分类器。第二项中的
步骤六:重复步骤二至步骤五,直到每个网络或模块的参数收敛。
步骤七:将待测图片输入训练后的特征提取网络fθ,将目标任务数据集的所有训练图片或语义属性输入训练后的特征提取网络gθ,然后将输出的特征向量依次通过训练后的特征关注模块和距离度量模块,最终输出与待测图片类别相似度最高的类别标签,即为测试集待测图片的识别分类结果。
本实施例中,通过构建特征提取网络、特征关注模块、距离度量模块,组成基于度量学习和元学习的小样本和零样本图像分类模型,能够同时解决小样本和零样本图像识别分类问题。在小样本和零样本图像分类中,引入了特征关注机制和多度量准则学习,并提出了一个损失函数,通过损失函数对模型的参数进行更新,能够有效地学习到一个更好的度量空间,有效实现图像精确分类。
相同或相似的标号对应相同或相似的部件;
附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制;
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。