一种基于元骨干网络的小样本图像分类方法与流程

文档序号:23617160发布日期:2021-01-12 10:27阅读:100来源:国知局
一种基于元骨干网络的小样本图像分类方法与流程

本发明属于图像分类领域,特别涉及一种基于元骨干网络的小样本图像分类方法。



背景技术:

从上个世界90年代起,人工智能就得到了学术届的关注,然而在早些时候人工智能技术并没有取得令人惊叹的发展。随着计算机技术的发展,一直到最近这些年,人工智能才在各个领域得到井喷式的发展。在图像领域,自alexnet在2012年被提出以来,卷积神经网络完善了在图像领域大放异彩。在识别,检测,分割等领域不仅取得了很好的学术成果,同时在实际应用中可以提供可靠的性能。如在无人驾驶中,waymo无人车感知的核心模块就是卷积神经网络,为无人车提供了类似人类的视野。在文本领域,谷歌提出的bert模型同样在多种任务上取得了超越人类的能力。在其他领域,deepmind发明的围棋模型阿尔法狗战胜了人类围棋最顶尖的选手。openai在dota游戏中的人工智能组队战胜了人类中的职业玩家。

上述模型在取得成功的同时,无不以大量训练数据驱动,广泛分布的数据使得模型在执行任务阶段表现的出色。而在现实中,标注大量数据需要耗费较多人力物力,在某些特定领域,数据本身极难获取,标注同样需要较为专业的知识。当标注的数据量受限,模型的性能立马就会下降。因此,越来越多的研究关注于小样本学习,小样本学习是只使用少量的标注数据也能取到较好的训练结果,将小样本学习与图像分类相结合是当前研究的一个重点。

在图像分类领域,首先需要提出单幅图像的特征,然后使用分类器对特征向量进行分类。卷积神经网络(cnn),通过被用来提取图像特征,cnn通过反向传播算法来更新权重,经过大量次迭代使模型获得可靠的分类能力。但是使用卷积神经网络的图像分离严重依赖训练数据的数量以及多样性,如果训练数据较少,且每个类别的图像几乎相似,那么训练出来的模型泛化性能会很差,分类结果往往不可靠。人类却可以通过极少量样本的学习来识别一类物体。例如人类在识别猫的时候,不需要大量不同种类猫的图片数据来学习,仅凭少量几张样本或基于以往的经验就可以识别出大量甚至是不同种类的猫。在这种背景下,小样本学习受到越来越多的关注,研究者们试图通过更少量的样本,学习出一个更智能泛化性能更好的模型。

小样本学习旨在通过少量的被标注样本,学习到一个泛化性能较好,可以应用多种场景。并且针对一个新任务,模型经过少量次数的重新训练,就能获得较高的性能。在以往的深度学习训练中,每当遇到新数据就要重新训练,上一次的学习经验并不能直接应用于新的任务。然而重新训练通常需要花费相当长的时间,尤其在数据比较少的情况下,模型经常会过拟合。



技术实现要素:

本发明文提出一种基于元骨干网络的小样本图像分类方法,小样本学习从更优的学习过程,更好的泛化能力等方向出发,使训练后的模型在小样本数据下表现较好。一个智能的模型应当像人类一样,能从小样本中汲取经验,并快速学习新任务。本文的研究重点就使通过小样本数据,来训练一个泛化性能较好的模型,并且能快速适应多种新任务。。

为实现上述目的,本发明提供了如下方案:

本发明公开了一种基于元骨干网络的小样本图像分类方法,所述元骨干网络包括训练集单元、特征器提取器单元、余弦分类器单元、余弦分类器权重生成器单元,包括以下步骤:

s1.初始化所述特征器提取器单元和余弦分类器权重生成器单元的权重;

s2.根据原始图像生成数据集,通过所述训练集单元,输入外循环步骤;

从所述训练集单元中为每一个类别随机采样出若干个样本,将所述样本通过所述余弦分类器权重生成器单元产生所述余弦分类器单元的初始权重;

s3.进入内循环步骤;

重新从所述训练集单元中采样出一个批样本训练数据,将所述批样本训练数据输入到元骨干网络中,得到分类结果并计算损失,得到损失值,利用所述损失值和随机梯度下降训练方法,更新所述特征器提取器单元的权重,重新进入所述内循环步骤,循环若干次后退出内循环;

s4.计算若干次内循环的平均损失;

s5.利用所述平均损失和随机梯度下降训练方法更新所述余弦分类器权重生成器单元;

s6.重新进入所述外循环步骤,完成若干迭代次数后退出所述外循环步骤,结束训练过程;。

所述s2中,数据集为miniimagenet数据集,包括训练集,验证集和测试集,

所述训练集和验证集是由若干张图像构成;

所述测试集是由任务构成的,每个任务包含了若干个类别,每个类别包含若干个样本。

s2.1.所述元骨干网络在所述训练集上第一次训练;

s2.2.所述元骨干网络在所述测试集的单个任务里的训练集进行第二次训练;

s2.3.所述元骨干网络在所述任务的测试集上进行测试。

所述余弦分类器权重生成器单元的工作原理为,将所述样本的训练数据映射到特征空间,然后输出权重;

对于若干分类任务,权重生成器会生成对应若干个类别的分类权重。

所述余弦分类器权重生成器单元为自编码权重生成器,将所述训练数据进行编码,投影到所述潜空间,得到潜特征向量的分布,从所述潜空间中解码出分类器的权重;

所述解码的方式,根据权重分布的均值和标准差,再从分布中采样出分类器的权重。

在训练余弦分类器权重生成器单元时,使用了元学习的训练方法,在所述内循环中训练所述余弦分类器权重生成器单元,并将自编码解码的中间变量看作权重的隐变量,然后对其进行梯度下降,具体训练步骤如下:

s3.1利用所述余弦分类器权重生成器单元的特征提取器和关系模型,对任务中的支持集进行编码,然后得到向量z;

s3.2利用所述余弦分类器权重生成器单元的解码器将z解码,然后得到初始的分类权重;

s3.3进入到内循环中;

s3.4利用所述supportset和所述余弦分类器进行分类,并计算损失,得到损失值;

s3.5通过所述损失值对所述z执行随机梯度下降;

s3.6利用梭胡解码器将所述z解码,然后得到新分类权重;

s3.7重新进入内循环,反复指定次数后退出内循环;

s3.8利用内循环中最后得到的分类权重和queryset计算新的损失。

所述余弦分类器单元为自适应间隔分类器,训练流程如下:

s8.1.从训练集采样出一个任务,任务中包括supportset和queryset;

s8.2随机初始化aci模型的权重;

s8.3使用supportset和权重生成器生成分类器的初始化权重;

s8.4进入第二个训练阶段;

s8.5利用aci模型对每个样本生成自适应间隔;

s8.6利用上一步生成的自适应间隔和分类器进行分类,并计算损失;

s8.7用随机梯度下降法更新整体权重,包括特征提取器和aci;

s8.8进入测试阶段;

s8.9对每一个测试样本生成自适应间隔;

s8.10利用生成自适应间隔进行分类并计算准确率;

s8.11重新采样一个任务,直到反复指定次数。

本发明公开了以下技术效果:

本发明通过对小样本图像分类问题的研究,将度量学习和元学习两种方法相结合,设计了包含元骨干网络和自适应分类器的模型,并且提升了这类任务在数据集上的精度,同时也为之后的研究提供了一些思路。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明的元骨干网络的结构及训练时迭代一次的示意图;

图2是基于类原型的权重生成器示意图;

图3是本发明权重生成原理示意图;

图4是元泛化网络实验结果图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请致力于小样本图像分类的前过程,即图像的特征提取,分类器权重的产生,以及相关的学习算法。

在图像分类前,从图像中提取到的特征很大程度上决定了分类结果。为提高提取特征的能力,卷积神经网络从最开始的卷积核的堆叠,发展到目前更复杂的结果,然而这些改进的卷积神经网络只在大数据集上进行测试与对比,在小样本数据下的表现未有相应对比。传统的经验认为小样本数据应该使用参数较少的模型,即较为简单的卷积神经网络,否则容易产生过拟合。为此,本文通过搭建可堆叠的特征网络设计出一组完善的对比实验,验证了这种经验是错误的,并提供了一种选取特征提取器的依据,确定了元骨干网络中的特征提取器。

同样在图像分类前,分类权重也很大程度影响了分类结果。对于小样本图像分类任务,介于极少量的训练数据,通常很难从随机初始化的权重中训练出具有较好泛化能力的分类权重。因此,预先训练一个针对分类器的权重生成器,然后对每一个新任务生成初始权重是必要的。基于生成的权重,接着利用任务中的数据进行训练,从而提升了训练效果。在先前的研究中,通过训练一个自编码解码模型来进行权重生成,其训练后权重的泛化性能有所提高,测试结果的方差更小。然而这一方法模型复杂,映射关系较为抽象。因次,本文提出了一种更简单高效的权重生成器,其从训练数据到权重的映射路径更清晰,同时在实际运用中取得了更好的结果。

为实现上述目的,本发明提供了如下方案:

如图1-4所述,本发明公开了一种基于元骨干网络的小样本图像分类方法,所述元骨干网络包括训练集单元、特征器提取器单元、余弦分类器单元、余弦分类器权重生成器单元,包括以下步骤:

s1.初始化所述特征器提取器单元和余弦分类器权重生成器单元的权重;

s2.根据原始图像生成数据集,通过所述训练集单元,输入外循环步骤;

从所述训练集单元中为每一个类别随机采样出若干个样本,将所述样本通过所述余弦分类器权重生成器单元产生所述余弦分类器单元的初始权重;

s3.进入内循环步骤;

重新从所述训练集单元中采样出一个批样本训练数据,将所述批样本训练数据输入到元骨干网络中,得到分类结果并计算损失,得到损失值,利用所述损失值和随机梯度下降训练方法,更新所述特征器提取器单元的权重,重新进入所述内循环步骤,循环若干次后退出内循环;

s4.计算若干次内循环的平均损失;

s5.利用所述平均损失和随机梯度下降训练方法更新所述余弦分类器权重生成器单元;

s6.重新进入所述外循环步骤,完成若干迭代次数后退出所述外循环步骤,结束训练过程。

为了提高小样本学习在新数据上的泛化能力,以及模型快速适应新任务,本发明设计了元骨干网络。元骨干网络包括两个部分,一个是特征提取器(featureextractor),一个是权重生成器(classifierweightinitializer)。图1为元骨干网络的结构及训练时迭代一次的示意图,除了损失(loss)方块,其余图形都表示一个模型,为元泛化网络的组成部分。图中带箭头的线表示输入的方向,将线头末端的数据输入到箭头的指向的模型中。黑色带箭头的线表示在内循环中运行,虚线带箭头的线表示在外循环中运行,内循环在一次迭代中反复多次,在带箭头的线段中,直线表示前向传播,曲线表示反向传播。在元泛化网络的训练过程中使用的是传统分类器,在测试过程中使用自适应间隔分类器。图中最左侧,由小长方形组成大的长方形代表训练数据。处于内循环中的训练数据是从训练集随机采样的,只在内循环的开始前采样一次,用于训练元泛化网络。数据的大小即为batchsize的大小,数据的总是是固定的,但是数据所属的类别是随机的。在一次采样中,会出现某个类别占的比例大而另一个类别未出现的情况。位于外循环的训练数据同样是从训练集随机采样的,但是这一个过程中的类别是固定的,即每个类别采样的训练数据个数是固定的。这些数据被用来在外循环中生成分类器的权重,其被输入到权重生成器中,并且只在外循环中采样一次。

针对特征提取器,本发明提供了一种在小样本学习选取特征提取器的标准,卷积神经网络是当前解决计算视觉问题的基础模型,然而卷积神经网络又是多种多样的,如何在一个问题中选取最佳的卷积神经网络是非常关键的。在传统的深度学习图像分类问题中,在测试上准确率高就可以证明神经网络更高效。而在小样本学习中,有多个因素会影响模型在测试集上的表现。影响卷积神经网络性能的因素很多,如卷积结构的设计,卷积网络的空间拓扑结构,深度因子宽度因子等。不同的卷积结构对图像中局部信息的提取能力也不同,通常结构越复杂,提取信息的能力就越强。网络的拓宽结构为卷积结构在空间中的组合,不同的组合构成了卷积神经网络提取特征图中信息能力的差异。深度因子指cnn的层数,层数越多,所提取的特征信息量越大。宽度因子指在一层中并行的卷积结构数量,而不是指通道数。

在表3-1中展示了不同的卷积神经网络在imagenet上的表现。最左侧为不同的卷积神经网络,其不同点包括网络的拓扑结构,深度,宽度,卷积核的大小等。params代表各个模型参数量的大小,模型越复杂其参数越多。最右侧为模型在测试集上的准确率,top-1acc代表只取概率最高的一个结果,若与真实值相同,则判断为分类正确。top-5acc代表取概率最高的5个结果,若真实值在其中,则判断为分类正确,top-5acc分类的结果通常高于top-1acc。表3-1如下:

表3-1

从表中可以得出如下结论:1.卷积神经网络的参数越多,一般提取特征的能力越好,在测试数据上的表现越好;2.卷积神经网络的结构越高效,提取特征的能力越强,在测试数据上的表现也越好。

针对权重生成器,本发明在先前其他研究的基础上,设计了一种更高效的权重生成器,用于生成分类的初始权重。一个初始化较好的权重可以加速模型的训练,同时可以让模型在测试集上获得更好的准确率。权重生成器在训练时相当于保存了以往初始化分类器在其他任务上的经验,当有一个新任务时,权重生成器就可以利用训练后的结果给出更好的初始化权重。更为重要的是,一个随机初始化的权重通常需要大量的迭代训练才能很好的适应测试集数据,而在小样本学习中,由于带标签的数据受限,大量的迭代训练通常导致过拟合。因此,通过一种方式先产生泛化性能较好的分类,然后通过少量的迭代就使模型适应测试集数据是非常有必要的。权重生成器的存在提高了模型在任务上的泛化性能。

模型的权重也被称为模型的参数,在深度学习模型中,权重是使模型具有相应能力的关键因素。权重的变化可以引起模型表现的变化,如过拟合,欠拟合。在以往的深度下学习中,大部分研究专注于权重初始化,即如何初始化一个更好的权重,使模型训练变的更容易。权重初始化则是先给定一个分布,在这个分布中采样出初始化权重。然而权重初始化在不同的训练任务中互不相干,下一次并不能借鉴上一次训练的经验。

在小样本学习中,由于训练与测试都是基于任务的,在测试时对每个任务重新训练,这种方式使额外训练一个模型来生成适应于新任务的权重变得可能。为了更高效的训练新的少量数据的任务,权重生成器被引入小样本学习中。权重生成与权重初始化类似,都是对初始权重的赋值。但不同点是权重生成是先训练一个模型,然后由模型输出初始权重。权重生成器借鉴以往学习经验使得模型可以快速适应新任务,使模型在不同数据上的训练经验是可以相互借鉴的。

图3为小样本图像分类学习中权重生成的原理展示。通过模型将原始的训练数据映射到特征空间,然后输出权重。在生成的过程中,训练数据指任务中的supportset,生成的是分类器的权重。对于n分类任务,权重生成器会生成对应n个类别的分类权重。

基于自编码的权重生成器是先将原始数据编码到潜空间,然后从潜空间解码出相应的权重。模型首先将训练数据进行编码,投影到潜空间,得到潜特征向量z的分布,其中z~n(μ,σ)。得到z后,接着从潜空间中解码出分类器的权重w,解码的方式与编码类似,也是先得到权重分布的均值μ和标准差σ,再从分布中采样出w。

在训练自编码模型的权重生成器时,使用了元学习的训练方法,在内循环中训练权重权重生成器,并将自编码解码的中间变量看作权重的隐变量,然后对其进行梯度下降。具体训练步骤如下:

步骤1.利用特征提取器和关系模型对任务中的supportset进行编码,然后得到向量z;

步骤2.利用解码器将z解码,然后得到初始的分类权重;

步骤3.进入到内循环中;

步骤4.利用supportset和分类器进行分类,并计算损失;

步骤5.利用上一步得到的损失对z执行随机梯度下降;

步骤6.利用解码器将z解码,然后得到新分类权重;

步骤7.重新进入内循环,反复指定次数后退出内循环;

步骤8.利用内循环中最后得到的分类权重和queryset计算新的损失。

在对上面提到的权重生成器研究的基础下,本申请提出了一种更简洁高效的权重生成器,使用每一类别的类原型作为输入,模型直接输出对应类的权重。本文的方法相比leo中的权重生成器,去掉了潜空间的转化以及对分布的学习。通过学习类原型到权重的直接映射关系,使得学习更加容易,训练速度也得到了提高,最终的结果也显著优于leo中的权重生成器。

本申请使用类原型来生成分类器的权重,而不是使用类似relationnet的结构。类原型的概念在protonet中提出,是同一个类别中所有特征向量的平均值,用这个值来近似的代表整体类别。通过比较类原型与待分类样本之间的距离,使小样本数据下的分类更加容易。本文提出的权重生成器也是通过类原型来生成特定类别的分类权重,具体定义如下:

其中wi代表第i类的权重,x代表原始的图像数据。模型首先利用特征提取器提取特征向量,然后求平均值得到类原型,输入到中,最终从中输出对应类别的权重。如图2所示,图中顶端的输入代表同一类别的原始图像数据,经过特征提取器提取向量后产生类原型。然后将这一类别的类原型输入到权重生成器中,再由权重生成器输出这一类别的分类权重。在训练时,对于单个类别来说,每次从中随机选取k个样本用于生成权重。在一个任务中,如果有n个类别,那么权重生成器就会输出n个初始权重,应用于分类器中。

对比leo中的权重生成,本申请的权重生成方法使用的原理简单,映射关系也更明了,运行时的速度更快。分类权重与图像的特征向量在特征空间中一定程度上是相关的,因此,首先利用类原型代表这一个类别的特征向量,这样就简化了特征向量与分类权重之间的关系。其次,特征向量与分类权重的关系在特征空间中更多的是一种变换关系,比如,通过类原型特征向量的旋转加平移就可以得到这一个类别的分类权重。因此,本文利用了全连接层来学习这种关系,并且在最后的实验中也证明了这种方法的有效性。

为训练元骨干网络,本申请对比了两种常见的深度学习优化方法,一种应用广泛的随机梯度下降sgd,另一种是对sgd的改进adam。这两种方法比较有代表性,sgd需要人工设置的参数多,训练时间长,当通常都可以收敛到最优位置。为了使sgd表现更快,通常需要设置动态的学习率,以及随着时间增加的权重衰减。adam需要设置的参数少,训练速度快,但由于梯度累计的原因,但训练时间过长时,会出现训练不稳定的情况。adam只需要设置学习率,在adam优化过程中,会自动根据历史梯度和当前梯度调整梯度的大小和方向。在本文中使用了sgd优化方法,原因有以下两点。一是小样本学习是基于任务的,数据量少,而adam需要大量的迭代才能体现其优势,二是本文中设计了新的元学习训练过程,权重的更新使用手动更新的方式,没有用到深度学习框将中的函数,因此使用sgd更简单高效。

为了高效训练元骨干网络,我们引入了元的学习的方法训练,本节着重介绍元骨干网络的训练方法。不同与以往的训练过程,元骨干网络有两个训练过程,分别为训练过程和元训练过程。第一个训练过程与之前的深度学习训练相同,使用全部的训练数据集。在训练时,不断的循环采样出一个batch的数据输入到模型中进行训练。在第二个训练过程是在测试阶段,每一个新任务都包含属于当前任务的训练集和测试集,此时的训练过程被称为元训练阶段。在元训练阶段,使用已经训练的元骨干网络进行微调,而不是使用新的权重重新开始训练。元骨干网络的训练算法大致流程如下:

随机初始化特征器提取和权重生成器的权重;

进入训练过程中的外循环;

从训练集中为每一个类别随机采样出k个样本,利用这些数据和权重生成器产生分类器的初始权重;

进入内循环;

重新从训练集中采样出一个batch的训练数据,利用将这些数据输入到元泛化网络中,得到分类结果并计算损失;

利用上面计算的损失和随机梯度下降更新特征提取器的权重;

重新进入内循环,循环t次后退出内循环;

计算t次内循环的平均损失;

利用新的损失和sgd更新权重生成器;

重新进入外循环,完成一定的迭代次数后退出外循环,结束训练过程;

算法3-1所展示的是第一个阶段的训练过程,也就是在全部的训练集上从零开始训练元骨干网络。训练起初的输入有训练数据集dtrain,特征提取器的权重φe和权重初始化器的权重φw。训练整体流程上包括两个,分别是内循环和外循环。在每个内循环的开头,都会先利用权重生成器生成新的权重,然后在内循环中不断优化特征提取器。这种方法确保了特征提取器具有较高的泛化能力,因为每隔一定次数,分类器中的权重都会发生变化。外循环主要在于优化权重生成器,每当内循环完成后,权重生成器就更新一次。这样提高了训练效率,同时避免了分类器中权重变化过快而导致难以训练。

在训练的最开始,先随机初始化特征提取器和权重生成器的权重。具体的,元骨干网络训练过程的一次迭代如下:首先从整个训练集中对每一个类别随机选取k个样本。然后利用权重生成器对每个类别生成对应的分类器,进入内循环。在内循环中,从dtrain中抽取一个batch的数据并且与上面的k个样本不相关,经过特征提取输入到分类器中进行分类,然后再通过损失函数来优化卷积神经网络,在内循环中一共进行t次。内循环结束后,将t次每一次的损失函数的值求平均作为权重生成器的损失。最后利用这个新的损失对权重生成器进行更新,这样就完成了一次完整的元骨干网络的训练迭代。值得注意的是,本文设计的训练过程是分别更新φe和φw,这样在测试阶段针对新的小样本任务可以经过少量的训练就快速适应新任务。在异步优化时,φe和φw相互之间提高了各自的泛化能力,以适应新的数据。在计算损失,使用的是φe和φw组成的整体φ,利用整个模型得到的损失来分别更新单个φe跟φw。

为了提高学习效率,本申请提出了自适应间隔分类器的训练方法,并且设计实验验证了本文提出的方法。结果表明,本申请提出的方法优于目前的方法,在多个数据集上取得了更好的结果。

在对各个分类器分析的基础上,为提高对一些处于边界的样本的分类能力,以及在小样本数据下的分类能力,本申请提出了一种自适应间隔分类器(aci)。自适应间隔分类器以余弦分类器为基础,延续了基于固定阈值的分类器可以提高泛化性能的能力,又可以在小样本数据上训练。对比以svm为基础的分类器metaoptnet,自适应间隔分类器有简单,训练更快捷的特点。其定义为:

其中s为softmax值的尺度因子,为固定值,用于调整输出的大小。通常s值较大,将softmax输出值增大,使得训练更容易。mk代表了自适应间隔的调节因子,mk大代表了更容易将x分到第k类。反之mk小,则更不容易将x分到第k类。在测试过程中,对于每一个待分类样本都有n个m值,每一个m值对应一个类别。m是由自适应间隔模型输出的。自适应间隔分类中的间隔时对每个样本动态自适应的,在小样本数据下同样可以得到有效训练。本文中的mk由自适应间隔分类器输出,其定义为下:

其中m为一个向量,维数是n,即要分类的个数。是输出m的模型,在实验中是一个全连接层,代表了提取出样本xi的特征向量,然后将其输入到中。

自适应间隔分类器的训练与传统的深度学习训练流程相同,都是通过固定迭代次数的训练使模型收敛,没有在内外循环中异步更新权重。自适应间隔分类器训练的大致流程如下:

从训练集采样出一个任务,任务中包括supportset和queryset;

随机初始化aci模型的权重;

使用supportset和权重生成器生成分类器的初始化权重;

进入第二个训练阶段;

利用aci模型对每个样本生成自适应间隔;

利用上一步生成的自适应间隔和分类器进行分类,并计算损失;

用随机梯度下降法更新整体权重,包括特征提取器和aci;

进入测试阶段;

对每一个测试样本生成自适应间隔;

利用生成自适应间隔进行分类并计算准确率;

重新采样一个任务,直到反复指定次数。

算法4-1展示的第二个训练阶段和最终的结果的评判,分别是第一个for循环和第二个for循环。训练的输入为第一个阶段训练好的特征提取器和权重生成器的权重,以及测试集。上面的伪代码展示的是一次测试过程,最终的结果要反复多次,最终取平均值。

在第一个元训练阶段for循环中,最开始先采样出一个任务,然后随机初始化自适应间隔分类器的权重。接着利用测试任务中的训练数据生成每一类的分类权重。生成方法就是公式1中,这里的特征提取器和权重生成器都是训练好的。在第一个for循环中,不断对任务中的训练集采样组成一个batch的数据。利用自适应间隔分类器对batch数据中每个样本计算间隔值,然后进行分类得到分类结果。再通过损失函数计算损失,反向播以训练自适应间隔分类器和微调特征提取器。这里权重更新时,是两个权重φe和φm一起更新。

在第二个元测试阶段的for循环中,不断从测试集中抽取出测试样本组成一个batch的数据,每个样本都只抽取一次。然后利用上一步训练好的特征器提取器和自适应间隔分类器组成的模型对样本进行预测,最终得到测试集上的评估情况。

为了进一步研究小样本图像分类学习的泛化性能,本申请同时在这种跨域分类下对其进行了评估。跨域分类比对象分类更具实用性和挑战性,因为通常情况下源域和目标域之间的差距很大。一般在源域训练好的模型,在目标域可能表现很差,在小样本数据下则更为严重。从miniimagenet到cub-200-2011的跨域学习是将模型在miniimagenet数据集上进行训练,然后在cub-200-2011上测试模型。这种跨域学习类似于迁移学习,但是不同的是训练时基于任务的。不同任务之间的差异相比不同图片之间的差异是较大的,而且难以衡量,尤其是在少样本的情况下,因此,对模型的要求更高。

表4-3显示了与其他几种方法的比较。为了公平地比较,所有实验均使用标准的resnet-18进行。如表所示,本文所提出的元泛化网络(mgnet)明显优于所有比较方法,并且改进幅度大于6%。比较结果支持了本文模型的出色适应性和通用性。

表4-3元泛化网络域迁移实验结果

maml作为元学习方法的代表,在几个方法中的结果最差。这是因为在maml中只改变了训练的过程,并不涉及对特征向量的处理。当测试数据集的分布改变时,特征向量的表现也跟着改变,在maml中并不能很好的捕捉到这种变化,因此在跨域学习上表现较差。matchingnet与relationnet都是通过训练模型来捕捉图像之间的关系,在训练集上有大量数据训练时,这种模型在分布相似的测试集上可以取得较好的结果。在进行跨域学习时,由于新的数据与原来的数据并不相似,而捕捉关系的模型未在新的大量的数据上重新训练,所以并不能很好的捕捉新数据上各个样本之间的关系,在测试集上表现也就不好。同样是度量的学习,protonet在跨域学习上却比其他两个模型要好,这是因为protonet中通过类原型来捕捉样本之间的关系,而类原型只与卷积神经网络相关,并不是由其他模型输出。当进行跨域学习时,protonet的泛化性能就会更强,所以protonet在新的测试数据集上表现也更好。

baseline++的跨域学习结果与protonet接近,这是因为两者都没有专门设计用于捕捉样本之间关系的模型。在baseline++中,对于新任务会使用一个新的分类器进行重新训练,使得baseline++模型的泛化性能较好。元泛化网络则是兼具了以上模型的优点,通过权重生成器在跨域后的数据能产生比较泛化的分类权重,在任务重新训练的过程中,通过自适应间隔分类器又能捕捉到样本之间的异同,因此在跨域学习的结果上获得了显著的提高。图4中所示,第一行为学名为leastauklet的鸟类图像,第二行是学名为parakeetauklet的鸟类图像,是baseline++错误分类的类别。可以看到这两种鸟非常相似,在第一行被错误识别的两张图像中,baseline++模型未能很好的泛化图像中鸟的腹部斑点以及嘴部的变化。

本申请提出了基于自适应间隔的分类器方法,同时设计了与之对应的训练方法,提高了分类器对于困难样本的泛化能力。

以上显示和描述了本发明的基本原理、主要特征和优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1