本发明涉及数据处理领域,具体涉及一种相似特征测试数据集生成方法。
背景技术:
随着深度学习的兴起,数据集的重要性凸显出来。任何算法只能在解决了实际问题的时候才能算是一个好的算法,因此,深度神经网络需要大量的数据集进行验证和比较,以此来评判网络的好坏程度。如果每个网络的评价都用不同的数据集,那么性能好坏将不具有说服性,因此,需要一些公认的第三方数据集。当科研人员提出新的深度神经网络的时候,通常会在这些数据集上进行实验和测试,来评价自己网络的性能。因此,这些数据集为深度学习网络提供了一个评判的标准。特别是近一段时间以来,通过网络架构搜索得到的网络性能逐步超过传统手工设计网络,数据集的评价作用更加显现出来。
网络架构搜索是一种通过演化算法或者强化学习自动生成深度神经网络的一种方法,这些方法通常分为若干轮,在每一轮开始时通过某种策略生成多个网络,然后对多个网络进行评价,最后根据评价结果选择较好的网络,并根据较好的网络生成新网络,最后进入下一轮。网络架构搜索中对于网络的评价也是通过数据集进行的,数据集通常包括训练集和测试集两部分,深度神经网络模型在训练集上进行训练,然后使用测试集测试训练效果。为了确保测试的准确性和公平性,通常在训练过程中不涉及任何测试集的信息,只将测试信息用于模型评价。
通过上面的分析可以看出,网络架构搜索在空间和时间上都需要对多个网络进行训练,因此需要消耗大量的算力。大量的算力的投入,带来的负面影响是,尽管没有使用测试集参与演化与训练,但是不断地用测试集进行测试,然后选择一组比较好的结果,可能导致网络在测试集上过拟合,影响了其泛化能力。因此,找到一种方法能够生成与原测试数据(下称目标数据集)集特征分布相似的新数据集,用于评价模型的泛化性能是非常有意义的。
技术实现要素:
本发明的目的在于提供一种相似特征测试数据集生成方法,采用逆向思维,用若干应用评价网络来评价不同数据集的差异,并且通过对数据集中的数据样本进行删减,减小生成数据集与目标数据集在不同应用评价网络中的差异,从而得到与目标数据集特征分布相似的生成数据集。
为实现上述目的,本发明采用以下技术方案:
一种相似特征测试数据集生成方法,包括:
s1、训练评价网络:选取多个不同的初始评价网络,再分别对所述初始评价网络使用目标数据集的训练集进行训练,分别保存训练得到的多个应用评价网络;
s2、数据准备:获取与目标数据集格式相同的样本数据集;所述样本数据集中数据的个数大于目标数据集中数据的个数;
s3、数据校正:通过数据校正模型删减样本数据集中数据的个数,得到生成数据集;
s4、数据集评价:使用每个所述应用评价网络比较s3中的生成数据集和目标数据集,计算得到偏差比;
s5、数据集生成:若所述偏差比在预设的阈值范围内,直接将s3中的生成数据集作为测试数据集;若所述偏差比不在预设的阈值范围内,在s3中的生成数据集中增加数据,将增加数据后的生成数据集作为新的样本数据集,再重复执行s3至s4,直至所述偏差比在预设的阈值范围内,并将最后一次的生成数据集作为测试数据集。
优选地,所述初始评价网络从vgg、resnet、googlenet、densnet、resnext、mobilenetv2、shufflenetv2、senet中进行选取。
优选地,所述目标数据集为图片数据集,生成数据集中的图片与目标数据集中的图片尺寸相同。
优选地,所述数据校正模型具体为,首先进行符号定义:
t={ti|0≤i<m}:目标数据集,其中m表示目标数据集中数据样本个数;
g={gi|0≤i<n}:生成数据集,其中n表示生成数据集中数据样本个数;
e={ei|0≤i<k}:应用评价网络,其中k表示应用评价网络个数;
w={wij}:数据集中每个样本在每个应用评价网络上的表现,表示数据集中样本在应用评价网络上是否被正确分类;
s(w)={∑iwij}:表示数据集在每个应用评价网络上正确分类的个数;
m={mi|0≤i<n}:生成数据集选择向量,mi=1表示生成数据集中样本i被选中,mi=0表示生成数据集中样本i未被选中;
由上面的定义,可知wt和wg分别为目标数据集和生成数据集在应用评价网络上的表现,通过将目标数据集和生成数据集分别在各个应用评价网络上进行推理而得到;目标数据集在应用评价网络上的正确分类数为s(wt)只需要对wt按行累加即可以得到,生成数据集在应用评价网络上的正确分类数为s(wg⊙m),用wg与m做hadamard乘积后对结果按行累加即可以得到;通过上面的定义,将数据校正方法建模为一个0-1规划问题:
目标:min(s(wg⊙m),s(wt))
约束:n=m
对此0-1规划问题进行求解,即可完成数据校正,得到与目标数据集相匹配的生成数据集。
优选地,所述测试数据集用于评价深度神经网络的泛化性能。
采用上述技术方案后,本发明与背景技术相比,具有如下有益效果:
1、本发明将数据集逼近问题转化为0-1规划问题,并建立数据样本多于目标数据集的生成数据集,通过对生成数据集中的数据样本进行增删,从而调整生成数据集中的特征分布,减小生成数据集与目标数据集在不同应用评价网络中的差异,最终得到与目标数据集特征分布相似的生成数据集。
2、本发明改变传统使用数据集评价网络的思路,采用逆向思维,使用网络来评价数据集,采用该思路可以生成与目标数据集数据分布特征相似的生成数据集,以用于评价深度神经网络的泛化性能,以便于使用者选择泛化性能较好的深度神经网络,提高在实际应用中网络的分类精度。
附图说明
图1为本发明提供的一种相似特征测试数据集生成方法的具体实施方式的流程框图;
图2为本发明提供的一种相似特征测试数据集生成方法的原理结构图;
图3为本发明实施例中生成的生成数据集与目标数据集的对比曲线图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参见图1至图3所示,一种相似特征测试数据集生成方法,包括:
s1、训练评价网络:选取vgg、resnet、googlenet、densnet、resnext、mobilenetv2、shufflenetv2、senet这8个不同的初始评价网络,再分别对所述初始评价网络使用目标数据集的训练集进行训练,分别保存训练得到8个应用评价网络;
s2、数据准备:获取与目标数据集格式相同的样本数据集;所述样本数据集中数据的个数大于目标数据集中数据的个数;
s3、数据校正:通过数据校正模型删减样本数据集中数据的个数,得到生成数据集;当所述目标数据集为图片数据集时,生成数据集中的图片与目标数据集中的图片尺寸相同;
s4、数据集评价:使用s1中经训练后得到的每个所述应用评价网络比较s3中的生成数据集和目标数据集,计算得到偏差比;
s5、数据集生成:若所述偏差比在预设的阈值范围内,直接将s3中的生成数据集作为测试数据集;若所述偏差比不在预设的阈值范围内,在s3中的生成数据集中增加数据,将增加数据后的生成数据集作为新的样本数据集,再重复执行s3至s4,直至所述偏差比在预设的阈值范围内,并将最后一次的生成数据集作为测试数据集。
需要指出的是,一般的数据集按照不同的标签可以划分为若干类(如图像数据集中的“猫”类和“狗”类),由于各个类别的数据样本在物理上是相互独立的,在各个评价网络上的表现也是相互独立的,因此可以分别进行处理。为了方便讨论,下面仅对某一类数据的处理进行说明。
首先进行符号定义:
t={ti|0≤i<m}:目标数据集,其中m表示目标数据集中数据样本个数;
g={gi|0≤i<n}:生成数据集,其中n表示生成数据集中数据样本个数;
e={ei|0≤i<k}:应用评价网络,其中k表示应用评价网络个数;
w={wij}:数据集中每个样本在每个应用评价网络上的表现,表示数据集中样本在应用评价网络上是否被正确分类;
s(w)={∑iwij}:表示数据集在每个应用评价网络上正确分类的个数;
m={mi|0≤i<n}:生成数据集选择向量,mi=1表示生成数据集中样本i被选中,mi=0表示生成数据集中样本i未被选中;
由上面的定义,可知wt和wg分别为目标数据集和生成数据集在应用评价网络上的表现,通过将目标数据集和生成数据集分别在各个应用评价网络上进行推理而得到;目标数据集在应用评价网络上的正确分类数为s(wt)只需要对wt按行累加即可以得到,生成数据集在应用评价网络上的正确分类数为s(wg⊙m),用wg与m做hadamard乘积后对结果按行累加即可以得到;通过上面的定义,将数据校正方法建模为一个0-1规划问题:
目标:min(s(wg⊙m),s(wt))
约束:n=m
对此0-1规划问题进行求解,即可完成数据校正,得到与目标数据集相匹配的生成数据集。
如图3所示,将cifar-10数据集的测试数据集作为目标数据集,并应用本发明方法生成相应的生成数据集。图3中,纵坐标为生成数据集与目标数据集在相应应用评价网络和相应类型数据上的精度的比值(即偏差比),横坐标为8个应用评价网络,十条曲线表示cifar-10的十类数据。从图3可以看出,曲线基本集中在偏差比为1的位置,说明采用本发明生成的生成数据集很好的拟合了目标数据集。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
1.一种相似特征测试数据集生成方法,其特征在于,包括:
s1、训练评价网络:选取多个不同的初始评价网络,再分别对所述初始评价网络使用目标数据集的训练集进行训练,分别保存训练得到的多个应用评价网络;
s2、数据准备:获取与目标数据集格式相同的样本数据集;所述样本数据集中数据的个数大于目标数据集中数据的个数;
s3、数据校正:通过数据校正模型删减样本数据集中数据的个数,得到生成数据集;
s4、数据集评价:使用每个所述应用评价网络比较s3中的生成数据集和目标数据集,计算得到偏差比;
s5、数据集生成:若所述偏差比在预设的阈值范围内,直接将s3中的生成数据集作为测试数据集;若所述偏差比不在预设的阈值范围内,在s3中的生成数据集中增加数据,将增加数据后的生成数据集作为新的样本数据集,再重复执行s3至s4,直至所述偏差比在预设的阈值范围内,并将最后一次的生成数据集作为测试数据集。
2.如权利要求1所述的一种相似特征测试数据集生成方法,其特征在于:所述初始评价网络从vgg、resnet、googlenet、densnet、resnext、mobilenetv2、shufflenetv2、senet中进行选取。
3.如权利要求1所述的一种相似特征测试数据集生成方法,其特征在于:所述目标数据集为图片数据集,生成数据集中的图片与目标数据集中的图片尺寸相同。
4.如权利要求1所述的一种相似特征测试数据集生成方法,其特征在于,所述数据校正模型具体为,首先进行符号定义:
t={ti|0≤i<m}:目标数据集,其中m表示目标数据集中数据样本个数;
g={gi|0≤i<n}:生成数据集,其中n表示生成数据集中数据样本个数;
e={ei|0≤i<k}:应用评价网络,其中k表示应用评价网络个数;
w={wij}:数据集中每个样本在每个应用评价网络上的表现,表示数据集中样本在应用评价网络上是否被正确分类;
s(w)={∑iwij}:表示数据集在每个应用评价网络上正确分类的个数;
m={mi|0≤i<n}:生成数据集选择向量,mi=1表示生成数据集中样本i被选中,mi=0表示生成数据集中样本i未被选中;
由上面的定义,可知wt和wg分别为目标数据集和生成数据集在应用评价网络上的表现,通过将目标数据集和生成数据集分别在各个应用评价网络上进行推理而得到;目标数据集在应用评价网络上的正确分类数为s(wt)只需要对wt按行累加即可以得到,生成数据集在应用评价网络上的正确分类数为s(wg⊙m),用wg与m做hadamard乘积后对结果按行累加即可以得到;通过上面的定义,将数据校正方法建模为一个0-1规划问题:
目标:min(s(wg⊙m),s(wt))
约束:n=m
对此0-1规划问题进行求解,即可完成数据校正,得到与目标数据集相匹配的生成数据集。
5.如权利要求1所述的一种相似特征测试数据集生成方法,其特征在于:所述测试数据集用于评价深度神经网络的泛化性能。
技术总结