一种生态数值数据的增广方法

未命名 07-22 阅读:133 评论:0


1.本发明属于深度学习数据增广领域,涉及一种生态数值数据的增广方法。


背景技术:

2.一个高质量的数据集对于深度学习和机器学习是很重要,然而在许多领域都存在着获取数据困难的情况。如在生态领域,由于各种农作物种植周期较长;想要短时间获取到大量的数据集需要付出极大的人力与物力。因此小数据集问题在生态领域频繁出现。而小数据集在训练模型时容易发生过拟合,导致在测试集上模型泛化能力差。
3.目前,wee sun lee等人使用生成对抗网络(gan)处理不平衡数据集问题。m.h.aung,el-sayed a均采用了过采样smot算法解决数据集不平衡问题。现有的增广技术存在以下不足:第一,未对增广后的数据集进行质量检测,直接使用增广数据集进行训练是不可靠的。第二,某些增广方法在扩充数据集时,只是增加了数据量,没有增加数据的多样性。以往使用生成对抗网络对数值数据进行增广,虽然能够增加数据量,并且通过对数据增广后,其模型的泛化能力也得到了提升,但是在增广流程中出现了严重漏洞,也就是没有对增广后的数据进行质量检测。增广后的数据集是否有效还是未知的,如果直接使用增广数据集是不严谨的。过采样算法虽然能够提高数据集的样本量,但是并不能提高数据集的多样性,使用该方法不能根本性解决模型过拟合的问题。


技术实现要素:

4.有鉴于此,本发明的目的在于提供一种生态数值数据的增广方法,用于解决在生态领域因小数据集训练机器学习和深度学习时容易导致模型过拟合的问题。本发明通过搭建生成式自编码网络获取大量高质量的增广数据集,可以增加数据集的多样性和质量,这两个性能的改善可以有效增加模型的训练能力,提高了模型的泛化能力。本发明能使一些获取数据集困难的生态领域得到进一步发展。
5.为达到上述目的,本发明提供如下技术方案:
6.一种生态数值数据的增广方法,具体包括以下步骤:
7.s1:对生态数值数据集进行预处理;
8.s2:数值数据增广:搭建生成式自编码网络模型,并将预处理后的数据集输入生成式自编码网络模型训练;然后利用训练好的生成式自编码网络模型进行数据增广;
9.s3:数值数据集质量检测:首先采用距离度量来判断增广数据集的质量,其次是信息度量,即比较增广数据集与原始数据集的关联信息是否一致。
10.s4:增广数据集的验证。
11.进一步,步骤s1中,使用均值归一化对数据进行标准化预处理,均值归一化表达式为:
12.13.其中,u表示均值,value表示在一组数值数据中第i个元素的值,max是一组数据中的最大值,x为标准化之后的数据。
14.进一步,步骤s2具体包括以下步骤:搭建并训练生成式自编码网络模型,具体包括以下步骤:
15.s21:基于数据预处理部分得到已处理的数据集,将数据集加载到网络模型中;
16.s22:搭建生成式自编码网络模型,将网络输入层的结点数设置为大于输入数据的长度,将隐变量空间扩大;
17.s23:初始化随机噪声,并放在已加载的数据集后面,形成更高维的数据,然后将其转换成张量形成输入数据;
18.s24:基于步骤s22搭建好的模型,初始化权重并将输入数据输入模型中,计算损失值,将其损失值反向传播到网络模型,使用梯度下降算法更改神经元权重来降低其损失值;
19.s25:当损失函数降到最低时,多次取出模型的输出就得到了本次训练生成的增广数据集;
20.s26:多次调节随机噪声的上限,重复步骤s23~s25来增广高质量的数据集。
21.进一步,步骤s22中,搭建的生成式自编码网络模型包括编码器与解码器,编码器由4个单层网络组成,第一层为输入层,输入层的结点个数比输入数据的维度数多出1个或多个(个数可以通过生成的增广数据集的质量来调参设置),空余位置是为了加入随机噪声,而第二、三、四层的结点个数分别为640、480、320;每层之间的激活函数使用relu函数;解码器同样由4个单层网络组成,结点参数分别设置为320、480、640、数据的维度数;其激活函数设置为relu函数,损失函数设置为l1loss。
22.relu激活函数为:f(x)=max(0,x)。
23.进一步,步骤s3中,采用距离度量来判断增广数据集的质量,具体包括以下步骤:
24.s301:搭建变分自编码网络模型,使用标准化处理后的数据训练模型;
25.s302:将标准化后的数值数据集输入训练好的模型,取出变分自编码网络模型隐变量网络层的输出结果,并将其保存在csv格式文件中;同理将增广数据集训练同样结构的模型,并将其隐变量层的结果进行保存;保存结果即为提取的数据的主要特征;
26.s303:将步骤s302保存的特征结果通过分布的形式展示,观察原始数据集的分布与增广数据集的分布的差异大小;
27.s304:使用wasserstein距离度量两个分布之间的距离。
28.进一步,步骤s3中,信息度量具体包括以下步骤:
29.s311:将原始数据集划分为50%的训练集、30%的验证集和20%的测试集;
30.s312:使用原始数据集的训练集训练keras序列模型,使用验证集来调整模型参数,选出最佳模型;
31.s313:从增广数据集中随机选出与测试集相同样本量的数据集作为测试集;
32.s314:将增广数据集的测试集和原始数据集的测试集输入到最优模型中,比较两种情况的mse评价指标和r2评价指标相差大小,相差越大代表增广数据集的质量越差。
33.本发明的有益效果在于:
34.1)本发明搭建的生成式自编码网络能够灵活控制增广数值数据集多样性和质量,生成的增广数据集在质量上比以往技术更好。使用生成对抗网络来增广生态数值数据集,
不能稳定地生成高质量的数据集,也不能保证生成的增广数据集的质量。
35.2)本发明使用了多种角度来验证数值数据集的质量问题,确保生成的增广数据集的可用性,比起以往的技术更加具有可靠性。
36.3)本发明的训练效率高于生成对抗网络,使用起来更加方便。
37.本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
附图说明
38.为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作优选的详细描述,其中:
39.图1为生态数值数据增广方法的流程图;
40.图2为生成式自编码网络结构图;
41.图3为数据生成的分布图;
42.图4为野生蓝莓数值数据集的特征分布图;
43.图5为六种预测模型在真实数据集与增广数据集上的测试结果1;
44.图6为六种预测模型在真实数据集与增广数据集上的测试结果2;
45.图7为急性水生毒性数据集的特征分布图;
46.图8为六种预测模型在真实数据集与增广数据集上的测试结果1;
47.图9为六种预测模型在真实数据集与增广数据集上的测试结果2。
具体实施方式
48.以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
49.请参阅图1~图9,本发明提供一种生态数值数据增广方法,共分为四大步骤,数据预处理、数值数据集增广、数值数据集质量检测以及增广数据集的验证。具体步骤如图1所示,首先对生态数值数据集进行预处理,然后将预处理的数据集进行增广。从特征和关联信息(数据集的特征属性与响应变量之间的关系)两个方面对生态数值数据集的质量进行检测。当检测到质量不行时,重新返回数值数据增广步骤,调节模型参数重新训练产生新的增广数据集,当质量检测通过后就是验证增广数据集是否改善模型的泛化能力。四个部分的具体步骤如下所示:
50.s1:数值数据集预处理,具体如下:
51.在实际数据集中,其数据特征分布范围差异大,如果直接使用数据集来建模,会突出数值尺度较大的特征在建模中的作用,而相对削弱或忽略数值尺度较小的特征的作用。
因此为了保证模型的有效性、可靠性,需要对数据的特征做特征缩放,使得各维特征对目标函数有相同权重的影响。
52.为了能够消除数据不同特征的尺度差异大的影响,需要把各维特征都缩放到同一个标准上。就需要对数据集进行标准化。标准化还有另外一个优势,可以加快梯度下降求最优解的速度,同时还可以提高模型预测精度。在本发明中,使用均值归一化,其转换函数为以下函数。
[0053][0054]
其中,u表示均值,value表示在一组数值数据中第i个元素的值,max是一组数据中的最大值,x为标准化之后的数据。
[0055]
s2:数值数据增广,具体包括:
[0056]
在搭建生成式自编码网络模型中,本发明对传统模型进行了改进,其目的是在训练模型时能够灵活控制增广数据集的质量和多样性。主要有以下两步改进:第一步改进是为了生成的增广数据集与真实数据集不相似,第二步改进是避免数据集相似。其具体修改步骤如下所示,其网络结构图如图1所示。
[0057]
1)将网络输入层的结点数设置为大于输入数据的长度,这样做的目的是为了留个空位输入噪声,噪声的加入可以防止模型过拟合和抗干扰能力,从而增加生成的增广数据集与真实数据集的差异来提高数据集的多样性。
[0058]
2)将隐变量空间设置更大(即隐变量层的结点数不能太低),这是为了防止在提取特征时丢失的数据太多。
[0059]
生成式自编码网络搭建步骤如下:
[0060]
1)基于数据预处理部分可以得到已处理的数据集,将数据集加载到程序中;
[0061]
2)搭建生成式自编码网络的编码器与解码器,编码器由4个单层网络组成,第一层为输入层,输入层的结点个数比输入数据的维度数多出1个或多个(个数可以通过生成的增广数据集的质量来调参设置),空余位置是为了加入随机噪声,而第二、三、四层的结点个数分别为640、480、320。每层之间的激活函数使用relu函数。解码器同样由4个单层网络组成,结点参数分别设置为320、480、640、数据的维度数。其激活函数设置为relu函数,损失函数设置为l1loss。
[0062]
relu激活函数为:f(x)=max(0,x)。
[0063]
3)初始化随机噪声,并放在已加载的数据集后面,形成更高维的数据,然后将其转换成张量形成输入数据。
[0064]
4)基于步骤2搭建好的模型,初始化权重并将输入数据输入模型中,计算损失值,将其损失值反向传播到网络模型,使用梯度下降算法更改神经元权重来降低其损失值。
[0065]
5)当损失函数降到最低时,多次取出模型的输出就得到了本次训练生成的增广数据集。
[0066]
6)多次调节随机噪声的上限,重复步骤3)~步骤5)来增广高质量的数据集。
[0067]
s3:数值数据集质量检测步骤如下:
[0068]
基于数据集增广后,我们得到了增广数据集,下面我们从两个方面来验证数据集的质量,首先是通过度量两个数据集之间的距离来判断增广数据集的质量,其次是比较增
广数据集与原始数据集的关联信息是否一致。具体步骤如下:
[0069]
1)距离度量:
[0070]
(1)搭建变分自编码网络模型,使用标准化处理后的数据训练模型;
[0071]
(2)将标准化后的数值数据集输入训练好的模型,取出变分自编码网络模型隐变量网络层的输出结果,并将其保存在csv格式文件中。同理将增广数据集训练同样结构的模型,并将其隐变量层的结果进行保存。保存结果即为提取的数据的主要特征。
[0072]
(3)将步骤(2)保存的特征结果通过分布的形式展示,观察原始数据集的分布与增广数据集的分布的差异大小。
[0073]
(4)使用wasserstein距离度量两个分布之间的距离,wasserstein算法是一种有效比较概率分布的几何工具,简单来说,给定两个沙盘(每个沙盘可以代表一个分布),本发明可以通过多种方式将一个沙盘转变成另一个沙盘,而wasserstein目的是找到最优的传输方案使得转变过程代价最少,因此从另一个角度来讲,它可以定义为这两个分布的最小距离。wasserstein距离算法广泛被使用,并已经加入到python提供的ot库中。其数学表达式如下所示:
[0074][0075]
其中,c是代价函数,m是从一个分布到另一个分布的映射关系,约束m≠μs=μ
t
是确保将μs完全送到μ
t

[0076]
并且我们做了一个模拟实验来验证该方法是否能够度量分布之间的距离,我们自己生成了三个分布,分别为a、b、c。其中a分布是用随机函数生成的一个随机分布并取其一部分,b、c分别是由a分布绕分布中心顺时针旋转0.15和0.3弧度得到的分布。其分布如图3所示(图3中,a为使用随机数生成的分布图,b、c为a分别旋转0.15和0.3弧度得到的分布图,d为使用ot最优传输距离计算分布之间的距离,a-c代表a分布和b分布之间的wasserstein距离,a-c代表a分布和c分布之间的距离),然后我们分别计算旋转后的分布与旋转前的分布的最优传输距离。明显可以看出,旋转角度越小,wasserstein距离越小,这与直观分析的结果一致。
[0077]
1)信息度量:
[0078]
(1)将原始数据集划分为50%的训练集、30%的验证集、20%的测试集;
[0079]
(2)使用原始数据集的训练集训练keras序列模型,使用验证集来调整模型参数,选出最佳模型;
[0080]
(3)从增广数据集中随机选出与测试集相同样本量的数据集作为测试集;
[0081]
(4)将增广数据集的测试集和原始数据集的测试集输入到最优模型中,比较两种情况的mse评价指标和r2评价指标相差大小,相差越大代表增广数据集的质量越差。其mse和r2指标的公式如下所示。
[0082][0083]
其中,n为观测数,yi为实际值,为平均实际值。
[0084][0085]
s4:增广数据集的验证的步骤如下:
[0086]
1)加载数据集并将数据集的属性与标签分开;
[0087]
2)搭建adaboost、fcnn、svr、rf、xgboost、gbdt六种模型,并使用真实数据集与增广数据集训练六种模型;
[0088]
3)使用交叉验证来评估步骤2)已经训练好的模型,其中我们使用了10倍交叉验证方法建立模型。这10次折叠被分为训练(9次)和测试(一次)集。交叉验证在n轮试验中重复进行。在每一轮中,数据集被划分为一个互补的子集。模型估计是在一个子集(训练集)上进行的,而验证是在另一个子集(验证或测试集)上进行的。数据集在不同的轮中进行了不同的划分,验证结果在n轮中取平均值,作为模型预测精度的估计。
[0089]
4)使用mse和r2两个评价指标来评估模型对数据的训练能力。然后对比小数据集和增广数据集在模型上表现能力。若使用增广数据集训练的模型上的mse指标和r2指标更好,则说明通过对数值数据集增广后可以提高模型的泛化能力。避免了模型在训练小数据集时发生的过拟合现象。
[0090]
实例一:将本发明方法作为野生蓝莓数值数据集的增广方案。
[0091]
野生蓝莓是缅因州栽培的蓝莓物种群中的主要物种,缅因州是美国最大的野生蓝莓生产地。约占美国野生蓝莓总产量的97%。现在需要对野生蓝莓的产量进行预测,并分析野生蓝莓的产量主要受到那些环境因素影响,然后通过改善野生蓝莓的环境来增产。但是关于野生蓝莓的数据集比较稀少,仅采集到777条数据,这些数据集远远不能满足神经网络对数据集的要求。使用我们发明的方法对777条野生蓝莓数值数据进行增广。具体过程如下所示:
[0092]
1、野生蓝莓数值数据增广:野生蓝莓数据集中包含了14个环境因素和一个产量标签,即该数据集的维度为15,按照技术方案中数据增广部分的生成式自编码网络模型搭建部分,需要生成式自编码网络的输入层结点设置为16,其它模型搭建过程与方案中一致。经调试,将噪声的上限设置为1,训练500次后,获取3000条增广数据集。同样使用生成对抗网络对生态数值数据集进行增广。
[0093]
2、数据质量检测:使用变分自编码网络提取777条真实数据集和随机选取的777条增广数据集的特征分布,并通过分布进行显示,如图4所示(其中,左图为真实数据集的分布图,中间为使用本发明的方法增广的特征分布图,右图为生成对抗网络增广的数据集的特征分布图),可以看出由ae方法增广数据集在特征分布上与原始数据相似。通过wasserstein距离来度量两个特征分布的差异性,其wasserstein距离为0.0036,这个距离是完全可以忽略掉的。可以看出使用本发明的生成式自编码网络增广数据集,其特征质量比生成对抗网络所增广的数据集好。
[0094]
3、增广数据集的验证:
[0095]
从图5和图6可以看出,增广数据集的mse指标都低于真实数据集的指标(mse越低,预测精度越高)。增广数据集的r2指标都高于真实数据集的指标(r2越高代表模型泛化能力越好)。说明通过对数据增加可以增加模型的预测精度,提高了模型因小数据容易过拟合问
题。
[0096]
实例二:本发明方法作为鱼类的急性水生毒性数据集的增广方案:
[0097]
许多化学物质在水中分裂,并可能对水生系统产生不利影响,破坏水生物种和食物网,并威胁到这些生态系统中其他成员的生存。因此研究水中化学成分如何影响水生毒性是具有重要意义的,但是在实际采集数据集时,发现获取的数据集只有546条,无法通过这些数据集训练稳定的机器模型。因此使用该发明技术,通过对生态数值数据集进行增广。具体步骤如下所示:
[0098]
1、急性水生毒性数据集增广,该数据集包含了8种水下化学成分以及一个毒性指标。数据集的维度为9,搭建增广模型时,将输入层的网络结点设置为10,随机噪声上限设置为1.5,训练500次获得3000条增广数据集。同理使用生成对抗网络(gan)对数据集进行增广,获取3000条增广数据集。
[0099]
2、数据质量检测:使用变分自编码网络对真实数据集、由生成式自编码网络增广的数据集、由生成对抗网络增广的数据集进行特征提取,通过分布的形式展示出如图7所示(其中,左图为真实数据集的分布图,中间为使用本发明的方法增广的特征分布图,右图为生成对抗网络增广的数据集的特征分布图),可以明显看出由生成式自编码网络增广的数据集在特征分布层面上与原始数据集相似,而生成对抗网络生成的增广数据集质量较差。并且使用wasserstein距离度量的结果与直观看到的分布特征结果一致。
[0100]
3、增广数据集的验证:
[0101]
验证结果如图8和图9所示,图8为mse指标评价的结果,图9为r2指标评价的结果。可以看出通过对数据集增广后,模型训练后的预测精度指标都得到巨大提升。
[0102]
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。

技术特征:
1.一种生态数值数据的增广方法,其特征在于,该方法具体包括以下步骤:s1:对生态数值数据集进行预处理;s2:数值数据增广:搭建生成式自编码网络模型,并将预处理后的数据集输入生成式自编码网络模型训练;然后利用训练好的生成式自编码网络模型进行数据增广;s3:数值数据集质量检测:首先采用距离度量来判断增广数据集的质量,其次是信息度量,即比较增广数据集与原始数据集的关联信息是否一致。2.根据权利要求1所述的生态数值数据的增广方法,其特征在于,步骤s1中,使用均值归一化对数据进行标准化预处理,均值归一化表达式为:其中,u表示均值,value表示在一组数值数据中第i个元素的值,max是一组数据中的最大值,x为标准化之后的数据。3.根据权利要求1所述的生态数值数据的增广方法,其特征在于,步骤s2具体包括以下步骤:搭建并训练生成式自编码网络模型,具体包括以下步骤:s21:基于数据预处理部分得到已处理的数据集,将数据集加载到网络模型中;s22:搭建生成式自编码网络模型,将网络输入层的结点数设置为大于输入数据的长度,将隐变量空间扩大;s23:初始化随机噪声,并放在已加载的数据集后面,形成更高维的数据,然后将其转换成张量形成输入数据;s24:基于步骤s22搭建好的模型,初始化权重并将输入数据输入模型中,计算损失值,将其损失值反向传播到网络模型,使用梯度下降算法更改神经元权重来降低其损失值;s25:当损失函数降到最低时,多次取出模型的输出就得到了本次训练生成的增广数据集;s26:多次调节随机噪声的上限,重复步骤s23~s25来增广高质量的数据集。4.根据权利要求3所述的生态数值数据的增广方法,其特征在于,步骤s22中,搭建的生成式自编码网络模型包括编码器与解码器,编码器由4个单层网络组成,第一层为输入层,输入层的结点个数比输入数据的维度数多出1个或多个,空余位置是为了加入随机噪声,而第二、三、四层的结点个数分别为640、480、320;每层之间的激活函数使用relu函数;解码器同样由4个单层网络组成,结点参数分别设置为320、480、640、数据的维度数;其激活函数设置为relu函数,损失函数设置为l1loss。5.根据权利要求1所述的生态数值数据的增广方法,其特征在于,步骤s3中,采用距离度量来判断增广数据集的质量,具体包括以下步骤:s301:搭建变分自编码网络模型,使用标准化处理后的数据训练模型;s302:将标准化后的数值数据集输入训练好的模型,取出变分自编码网络模型隐变量网络层的输出结果,并将其保存在csv格式文件中;同理将增广数据集训练同样结构的模型,并将其隐变量层的结果进行保存;保存结果即为提取的数据的主要特征;s303:将步骤s302保存的特征结果通过分布的形式展示,观察原始数据集的分布与增广数据集的分布的差异大小;s304:使用wasserstein距离度量两个分布之间的距离。
6.根据权利要求1所述的生态数值数据的增广方法,其特征在于,步骤s3中,信息度量具体包括以下步骤:s311:将原始数据集划分为50%的训练集、30%的验证集和20%的测试集;s312:使用原始数据集的训练集训练keras序列模型,使用验证集来调整模型参数,选出最佳模型;s313:从增广数据集中随机选出与测试集相同样本量的数据集作为测试集;s314:将增广数据集的测试集和原始数据集的测试集输入到最优模型中,比较两种情况的mse评价指标和r2评价指标相差大小,相差越大代表增广数据集的质量越差。

技术总结
本发明涉及一种生态数值数据的增广方法,属于深度学习数据增广领域。该方法具体包括:S1:对生态数值数据集进行预处理;S2:数值数据增广:搭建生成式自编码网络模型,并将预处理后的数据集输入生成式自编码网络模型训练;然后利用训练好的生成式自编码网络模型进行数据增广;S3:数值数据集质量检测:首先采用距离度量来判断增广数据集的质量,其次是信息度量,即比较增广数据集与原始数据集的关联信息是否一致。本发明可以增加数据集的多样性和质量,这两个性能的改善可以有效增加模型的训练能力,提高了模型的泛化能力。提高了模型的泛化能力。提高了模型的泛化能力。


技术研发人员:屈洪春 余浩 王红胜 刘光辉 翟世东
受保护的技术使用者:重庆邮电大学
技术研发日:2023.03.13
技术公布日:2023/7/20
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐