面向非平衡数据基于半监督分布式训练的任务识别方法

专利查询6月前  48



1.本发明属于人工智能技术领域,涉及任务识别,特别涉及一种基于半监督分布式训练的任务识别方法。


背景技术:

2.随着深度学习领域研究的快速发展以及移动终端的大规模普及,资源与计算密集型的深度学习应用越来越多地被部署在移动终端设备上,如车联网中的道路识别应用和远程医疗应用等。然而,由于深度学习网络结构日趋复杂且产生了大型数据集,边缘终端设备往往难以承担深度学习应用所需的巨大训练成本。
3.神经网络通过大量的数据集做训练迭代计算,学习出一个模型,在推理阶段则使用该模型对未知数据的属性进行预测。随着大数据多样性的激增,模型为了能提取更加丰富的特征信息而变得越来越复杂。另外待训练数据规模持续增长,且实际训练的数据集是非平衡数据集,其表现为数据集中的样本分布十分不均衡。当基于不平衡数据集构造分类器时,分类器的预测结果可能会偏向多数类,这些分类器很容易将少数样本误分类为多数类。这两点原因使得神经网络的训练阶段非常消耗计算资源与时间,即便是利用gpu进行加速,训练模型都需要数天甚至数周的时间。这就使得利用神经网络进行任务识别时效率不高,且整体资源开销极大。


技术实现要素:

4.为了克服上述现有技术的缺点,本发明的目的在于提供一种基于半监督分布式训练的任务识别方法,利用多层分布式训练处理海量感知数据,并利用半监督学习的方法解决这些数据中不平衡问题所带来的负面影响,能够进一步提高模型训练的效率,缓解数据不均匀对训练性能带来的影响,减少海量数据训练过程中的资源开销,使得任务识别所消耗的资源更少。
5.为了实现上述目的,本发明采用的技术方案是:
6.一种面向非平衡数据基于半监督分布式训练的任务识别方法,包括:
7.步骤1,首先,针对待分类任务,利用边缘设备采集样本数据,将采集到的样本数据分为有标签集和无标签集;然后,边缘设备利用自身的预训练模型对采集到的样本数据进行处理,得出召回率和准确率,根据召回率和准确率得出待分类任务每个类别的数量,并根据每个类别的数量对各类别进行降序排序;最后,边缘设备获取到处理后的数据集,数据集中标签集和无标签集的边际类分布均是倾斜的;
8.步骤2,基于所述处理后的数据集,利用边缘设备、多层边缘节点和数据中心服务器组成的多层分布式训练结构,使用数据并行的分布式训练方法训练半监督学习模型,其中,边缘节点为训练节点时计算本地训练梯度,边缘节点为参数服务器时进行训练参数共享,一个参数服务器和多个边缘节点协同执行一个训练任务,数据中心服务器调度训练任务,每个训练任务经过分布式训练得到一个优化模型;
9.步骤3,利用训练得到的优化模型对标签集和无标签集实现类再平衡自训练,步骤如下:
10.步骤3.1,以训练得到的优化模型为教师模型,对无标签集进行预测,获得一个伪标签集;
11.步骤3.2,从标签集估计类分布,基于类再平衡规则,根据分布情况,从伪标签集中选取部分伪标签样本生成一个伪标签子集,利用伪标签子集扩展标签集,实现数据集的类分布平衡;
12.步骤3.3,基于步骤3.2所得类分布平衡的数据集,利用步骤2的方法训练一个新的模型,称为学生模型,并替代其相应的教师模型,通过设定一个阈值,到达该阈值后,结束自训练,得到识别任务模型;
13.步骤4,利用所述识别任务模型对新的待识别对象进行识别。
14.在一个实施例中,所述步骤1,待分类任务有l个类别,有标签集χ={(xn,yn)},无标签集u={um},其中xn表示第n个有标签样本,n∈(1,...,n),n为有标签样本的总数,n
l
为有标签集χ中第l类有标签样本的数量,yn为xn对应的类标签,yn∈{1,...,l},um表示第m个无标签样本,m∈(1,...,m),m为无标签样本的总数,um∈rd,xn∈rd,rd表示待分类任务中的所有样本的存储矩阵,r为实数域,d为维数,根据每个类别的数量对各类别进行降序排序,得n
l
>......>n
l
>......>n1其中n
l
是有标签集χ中第l类有标签样本的数量,其中n1是有标签集χ中第1类有标签样本的数量,有标签集χ和无标签集u共享相同的边际类分布,不平衡率标签分数单个边缘节点所需训练数据量s=n+m。
15.在一个实施例中,所述步骤2,边缘节点作为训练节点时,训练节点之间不会通信,采用一种强同步的通信模式,每一个训练节点在完成一次迭代后会被堵塞,直到参数服务器收到所有训练节点传送来的梯度并将最新的参数值传递给所有训练节点后才能执行下一轮迭代计算。
16.在一个实施例中,所述步骤2包括:
17.步骤2.1,本地训练
18.边缘节点判断所述处理后的数据集是否达到本地训练所需数据量,数据量不足时将本地数据发送到下层边缘节点,直至满足本地训练所需数据量,相应的边缘节点为训练节点,训练节点利用标签集和无标签集进行半监督学习训练,然后将训练计算得到的梯度发送到下层边缘节点;
19.步骤2.2,参数聚合
20.当边缘节点进行聚合训练参数时,相应的边缘节点为参数服务器,参数服务器收集训练节点的训练参数,将参数进行聚合,聚合完成后发送回训练节点;
21.步骤2.3,任务调度
22.一个参数服务器和多个训练节点协同执行半监督学习的训练任务,多层分布式训练结构由多个训练任务组成,数据中心服务器同时处理多个训练任务。
23.在一个实施例中,所述步骤3.1,对无标签集进行预测,预测结果为一个概率区间,选取置信度最大的类别,生成对应的伪标签,获得一个伪标签集。
24.在一个实施例中,所述步骤3.2,首先,从有标签集χ估计类分布,被预测l类的无标签样本包含在伪标签子集中的比率为对于不平衡率γ,最少类最多类然后,通过类分布情况生成的伪标签子集来扩展有标签集χ,即χ

即再平衡标签集,即再平衡标签集,是所有的伪标签样本。
25.与现有技术相比,本发明的有益效果是:
26.(1)在现实生活中,收集无标签样本相对容易,而获取大量的标签样本则要困难得多,因为在数据标注过程中可能会花费大量的人力、物力和财力。由于获取标签样本的成本较高,而获取无标签样本的成本相对较低,如果只对标签数据进行训练。而忽略了无标签数据中包含的有效信息,这将造成数据资源的极大浪费,因此通过利用无标签样本可大大节约资源。
27.(2)利用无标签样本缓解了因为不平衡数据造成分类效果差的现象,
28.(3)利用分布式训练的方式提升分类的速度和精度。
附图说明
29.图1是本发明流程示意图。
30.图2是召回率和准确率与类别数据量的关系。
31.图3是本发明多层分布式训练结构图。
32.图4是本发明类再平衡自训练结构图。
具体实施方式
33.下面结合附图和实施例详细说明本发明的实施方式。
34.在分类任务中,会出现某一类别的数据在总数据中所占的比例远远高于其他类别的情况。例如,在图片分类任务中,每张图片都对应一个类别,而在所有图片中,某个类别的图片远高于其它类别的图片,这样的数据集合称为非平衡数据。非平衡数据会给神经网络训练带来负面影响,主要是消耗计算资源与时间,从而不利于利用神经网络或者人工智能进行任务分类或者任务识别。
35.为解决这一问题,本发明提供了一种面向非平衡数据基于半监督分布式训练的任务识别方法,充分利用分布式训练与半监督学习优势,降低了非平衡数据带来的影响,提高神经网络训练效率以及最终得到的模型分类准确率。
36.参考图1,其包括如下步骤:
37.步骤1:数据采集与处理
38.首先,针对待分类任务,利用边缘设备采集大量的样本数据,将采集到的样本数据分为有标签集和无标签集。
39.本发明中,待分类任务,指要处理的分类任务,例如图片分类任务、音频分类任务等。利用神经网络实现该任务时,需要大量的样本数据进行训练。本发明中,边缘设备指的是带有获取样本数据传感器的设备。例如,汽车,摄像头,手机,智能手表,智能空调,电视等智能设备。
40.本发明中,有标签集指的是具有分类标签的样本数据即有标签样本的集合,而无标签集指的是没有分类标签的样本数据即无标签样本的集合,无标签样本没有确定的类别不需要进行统计,而有标签样本需要进行统计。
41.然后,边缘设备利用自身的预训练模型对采集到的样本数据进行处理,得出召回率和准确率,根据召回率和准确率得出待分类任务每个类别的数量,并根据每个类别的数量对各类别进行降序排序。
42.示例地,可通过自适应数据采样的方式统计数据的类别信息,其中类别信息指数据集有多少个种类,每个类别有多少数量。例如,采集到的图片类别为猫图、狗图、鲨鱼图以及对应每类的数量。
43.现实生活所获取到的数据不但非平衡的,而且无法确定哪些数据属于多数类,哪些属于少数类。所以,本发明利用半监督学习在不平衡数据上的不良性能,设计了自适应数据采样方法。参考图2,利用预训练模型测试时,采集到数据在多数类上获得了较高的召回率和较低的准确率,而在少数类获得了较高的准确率和较低的召回率。根据图片的召回率和准确率就可以辅助统计每个类别的数量,按照类别数量从大到小即可生成一个降序数据集。自适应数据采样方法是利用上述不良性能进行数据处理,根据召回率和准确率对类别按照降序排序,实现对数据类别的统计。
44.最后,边缘设备获取到处理后的数据集,数据集中标签集和无标签集的边际类分布均是倾斜的。
45.为便于描述,设待分类任务有l个类别,有标签集χ={(xn,yn)},无标签集u={um}。其中,xn表示第n个有标签样本,n∈(1,...,n),n为有标签样本的总数,n
l
为有标签集χ中第l类有标签样本的数量,yn为xn对应的类标签,yn∈{1,...,l},um表示第m个无标签样本,m∈(1,...,m),m为无标签样本的总数,um∈rd,xn∈rd,rd表示待分类任务中的所有样本的存储矩阵,r为实数域,d为维数。
46.根据每个类别的数量对各类别进行降序排序,得n
l
>......>n
l
>......>n1,其中n
l
是有标签集χ中第l类有标签样本的数量,其中n1是有标签集χ中第1类有标签样本的数量,有标签集χ和无标签集u共享相同的边际类分布,不平衡率衡量类不平衡的程度,标签分数测量标签数据的百分比,单个边缘节点所需训练数据量s=n+m。
47.在本发明的一个实施例中,进行十分类任务,即l=10,数据集中的标签集χ和无标签集u都是类不平衡的,其中多数类n
10
的样本数比少数类n1的样本数多100倍,即不平衡率设定边缘节点所需训练数据量s=10000,n1≥n2...≥n
10
,边缘设备处理后的数据集中标签集χ和无标签集u的边际类分布都是倾斜的,即n1>>n
10

48.步骤2,分布式训练
49.如图3所示,边缘设备将处理后的数据集上传到边缘节点,由于数据规模庞大和模型复杂,模型训练非常消耗资源和时间,通过利用边缘设备、多层边缘节点和数据中心服务器组成的多层分布式训练结构,使用数据并行的分布式训练方法训练半监督学习模型,可有效提升效率和提高模型质量。数据并行是指参与训练的节点都有完整的网络模型,训练节点利用本身的数据计算梯度,更新这些模型的参数,训练之后的本地模型再通过参数服
务器融合为全局模型。
50.根据功能,本发明中,边缘节点分为训练节点和参数服务器节点,为训练节点时计算本地训练梯度,为参数服务器时进行训练参数共享。一个参数服务器和多个边缘节点协同执行一个训练任务,训练任务为每个训练节点根据其局部数据独立地训练神经网络模型,参数服务器收集训练节点的模型参数,并将它们聚合,分发到每个训练节点,数据中心服务器调度训练任务,每个训练任务经过分布式训练得到一个优化模型,优化模型最终会替换边缘设备的预训练模型。各训练任务之间没有关系,并行执行。不同的训练任务所训练出的模型不同,对应的完成的分类识别功能也不同。
51.即,分布式训练由多个半监督学习训练任务构成,训练任务由多个训练节点利用标签集和无标签集进行半监督学习训练计算本地数据的梯度,并与参数服务器进行训练参数共享,实现对模型损失函数的优化。
52.在本发明中,训练节点和参数服务器间的关系相对独立,而且训练节点之间不会通信。边缘节点作为训练节点时,训练节点之间不会通信,采用一种强同步的通信模式,每一个训练节点在完成一次迭代后会被堵塞,直到参数服务器收到所有训练节点传送来的梯度并将最新的参数值传递给所有训练节点后才能执行下一轮迭代计算。
53.步骤2的完整流程可以描述如下:
54.步骤2.1,本地训练
55.边缘节点判断处理后的数据集是否达到本地训练所需数据量,数据量不足时将本地数据发送到下层边缘节点,直至满足本地训练所需数据量,相应的边缘节点为训练节点,训练节点利用标签集和无标签集进行半监督学习训练,然后将训练计算得到的梯度发送到下层边缘节点。
56.其中本地数据指该边缘节点的数据集。例如,在图片分类任务中,本地数据即该边缘节点所有的图片。由于神经网络训练时需要满足一定的数据量才可以开始训练。所以边缘设备采集数据,然后将数据发送到下层边缘节点,边缘节点需要判断数据量是否达到神经网络所需训练量,达到之后该节点才能作为训练节点,进行神经网络训练。
57.步骤2.2,参数聚合
58.当边缘节点进行聚合训练参数时,相应的边缘节点为参数服务器,参数服务器收集同种训练任务的训练节点的训练参数,例如第一个参数服务器进行的是猫狗分类的训练任务,则该参数服务器只会收集进行训练猫狗分类的训练节点的模型参数。之后将训练参数进行聚合,聚合完成后发送回参与同种训练任务的训练节点。
59.步骤2.3,任务调度
60.一个参数服务器和多个训练节点协同执行半监督学习的训练任务,多层分布式训练结构由多个训练任务组成,数据中心服务器同时处理多个训练任务。
61.本发明的实施例中,边缘节点层数为k∈(1,...,k),在步骤2.1,1层边缘节点收集边缘设备在步骤1处理后的待训练数据集χ和u后,判断是否达到训练所需数据量s。如果1层边缘节点未达到训练所需数据量s时,需要将本地数据上传到2层节点,以此类推,直到训练节点达到训练所需数据量s。如果数据量达到训练所需数据量s时,该层边缘节点将承担训练节点功能。训练节点在训练时从本地数据进行神经网络前向反向计算,反向计算得到的梯度上传到下层节点。在步骤2.2,当k层边缘节点收集到k-1层训练节点的训练参数时,该
节点将承担参数服务器功能,参数服务器的层数一定是大于等于2,即k≥2。参数服务器将能是将同一训练任务中k-1层训练节点的神经网络梯度参数聚合,聚合完成后发送到训练节点,保证训练节点在进行下一轮迭代计算前从参数服务器拉取最新的聚合梯度。在步骤2.3,一个参数服务器和多个训练节点协同执行半监督学习的训练任务,构成一个训练任务,每个训练任务经过分布式训练得到一个优化模型,该模型将用于步骤3使用。多层分布式训练结构由多个训练任务组成,数据中心服务器将训练过程中的任务分为模型计算、参数聚合两类,使得任务的调度与具体的传输架构无关,给任务的并行和调度带来更多的可能,对多个训练任务进行调度。
62.步骤3,利用训练得到的优化模型对标签集和无标签集实现类再平衡自训练。如图4所示,该方法并不是将每个伪标记样本都包含在标签集中,而是从标签集估计类分布情况,从伪标签集中抽取部分样本,生成一个伪标签子集来扩展标签集,实现类再平衡。更行后的数据集返回步骤2通过多层分布式训练出新的模型,替换掉旧的模型,循环这个过程,直至达到所设阈值。
63.其具体步骤如下:
64.步骤3.1,以训练得到的优化模型为教师模型,对无标签集进行预测,预测结果为一个概率区间,选取置信度最大的类别,生成对应的伪标签,获得一个伪标签集。由于边缘设备获取到标签集是非平衡的,所以需要利用生成的伪标签集对标签集进行调整。但其采集到的伪标签集直接扩充到标签集中并不能使标签集达到平衡。因此本发明对其进行调整,调整的策略是根据类在平衡规则,从伪标签集中选取部分伪标签样本生成一个伪标签子集,扩充到标签集中,从而实现标签集的类分布平衡。
65.步骤3.2,从标签集估计类分布,基于类再平衡规则,根据分布情况,从伪标签集中选取部分伪标签样本生成一个伪标签子集,利用伪标签子集扩展标签集,实现数据集的类分布平衡。类再平衡规则是:某一类的频率越低,被预测为该类的未标记样本就越多。反之,该类的频率越高,被预测为该类的未标记样本就越少。
66.具体地,首先从有标签集χ估计类分布,被预测l类的无标签样本包含在伪标签子集中的比率为对于不平衡率最少类最多类然后,通过类分布情况生成的伪标签子集来扩展有标签集χ,即χ

即再平衡标签集,即再平衡标签集,是所有的伪标签样本。原则上,类分布情况展示了标签集中每类的数量,根据数量多少对标签集进行扩充,数量少的类别多加伪标签样本,数量多的类别少加伪标签样本。
67.步骤3.3,基于步骤3.2所得类分布平衡的数据集,利用步骤2的方法训练一个新的模型,称为学生模型,并替代其相应的教师模型,完成一次自训练迭代。通过设定一个阈值,到达该阈值后,结束自训练,得到识别任务模型。
68.本发明的实施例中,步骤3.1,使用教师模型的预测功能给未标记的数据um生成伪标签最终得到伪标签集步骤3.2,在半监督学习的十分类任务中,即l=10。对于不平衡率最少类
最多类然后,通过类分布情况生成的伪标签子集来扩展标签集χ,即再平衡标签集χ

;步骤3.3,使用新的标签集χ

和无标签集u组合成新的数据集,返回步骤2分布式训练获得新的优化模型,即学生模型。本实施例设定标签分数β=95%,,达到该阈值后停止自训练迭代。
69.步骤4,利用识别任务模型,即可对新的待识别对象进行识别。
70.以上,对本发明的具体实施方式做了具体描述,但是不应该认定本发明的具体实施只局限于这些说明。对于本发明所属领域的普通技术人员来说,在不脱离本发明构思和由权利要求书所限定的保护范围的前提之下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

技术特征:
1.一种面向非平衡数据基于半监督分布式训练的任务识别方法,其特征在于,包括:步骤1,首先,针对待分类任务,利用边缘设备采集样本数据,将采集到的样本数据分为有标签集和无标签集;然后,边缘设备利用自身的预训练模型对采集到的样本数据进行处理,得出召回率和准确率,根据召回率和准确率得出待分类任务每个类别的数量,并根据每个类别的数量对各类别进行降序排序;最后,边缘设备获取到处理后的数据集,数据集中标签集和无标签集的边际类分布均是倾斜的;步骤2,基于所述处理后的数据集,利用边缘设备、多层边缘节点和数据中心服务器组成的多层分布式训练结构,使用数据并行的分布式训练方法训练半监督学习模型,其中,边缘节点为训练节点时计算本地训练梯度,边缘节点为参数服务器时进行训练参数共享,一个参数服务器和多个边缘节点协同执行一个训练任务,数据中心服务器调度训练任务,每个训练任务经过分布式训练得到一个优化模型;步骤3,利用训练得到的优化模型对标签集和无标签集实现类再平衡自训练,步骤如下:步骤3.1,以训练得到的优化模型为教师模型,对无标签集进行预测,获得一个伪标签集;步骤3.2,从标签集估计类分布,基于类再平衡规则,根据分布情况,从伪标签集中选取部分伪标签样本生成一个伪标签子集,利用伪标签子集扩展标签集,实现数据集的类分布平衡;步骤3.3,基于步骤3.2所得类分布平衡的数据集,利用步骤2的方法训练一个新的模型,称为学生模型,并替代其相应的教师模型,通过设定一个阈值,到达该阈值后,结束自训练,得到识别任务模型;步骤4,利用所述识别任务模型对新的待识别对象进行识别。2.根据权利要求1所述基于半监督分布式训练的任务识别方法,其特征在于,所述步骤1中,待分类任务有l个类别,有标签集χ={(x
n
,y
n
)},无标签集u={u
m
},其中x
n
表示第n个有标签样本,n∈(1,

,n),n为有标签样本的总数,n
l
为有标签集χ中第l类有标签样本的数量,y
n
为x
n
对应的类标签,y
n
∈{1,

,l},u
m
表示第m个无标签样本,m∈(1,

,m),m为无标签样本的总数,u
m
∈r
d
,x
n
∈r
d
,r
d
表示待分类任务中的所有样本的存储矩阵,r为实数域,d为维数,根据每个类别的数量对各类别进行降序排序,得n
l

……
>n
l

……
>n1其中n
l
是有标签集χ中第l类有标签样本的数量,其中n1是有标签集χ中第1类有标签样本的数量,有标签集χ和无标签集u共享相同的边际类分布,不平衡率标签分数单个边缘节点所需训练数据量s=n+m。3.根据权利要求1所述基于半监督分布式训练的任务识别方法,其特征在于,所述步骤2,边缘节点作为训练节点时,训练节点之间不会通信,采用一种强同步的通信模式,每一个训练节点在完成一次迭代后会被堵塞,直到参数服务器收到所有训练节点传送来的梯度并将最新的参数值传递给所有训练节点后才能执行下一轮迭代计算。4.根据权利要求1所述基于半监督分布式训练的任务识别方法,其特征在于,所述步骤
2包括:步骤2.1,本地训练边缘节点判断所述处理后的数据集是否达到本地训练所需数据量,数据量不足时将本地数据发送到下层边缘节点,直至满足本地训练所需数据量,相应的边缘节点为训练节点,训练节点利用标签集和无标签集进行半监督学习训练,然后将训练计算得到的梯度发送到下层边缘节点;步骤2.2,参数聚合当边缘节点进行聚合训练参数时,相应的边缘节点为参数服务器,参数服务器收集训练节点的训练参数,将参数进行聚合,聚合完成后发送回训练节点;步骤2.3,任务调度一个参数服务器和多个训练节点协同执行半监督学习的训练任务,多层分布式训练结构由多个训练任务组成,数据中心服务器同时处理多个训练任务。5.根据权利要求1所述基于半监督分布式训练的任务识别方法,其特征在于,所述步骤3.1,对无标签集进行预测,预测结果为一个概率区间,选取置信度最大的类别,生成对应的伪标签,获得一个伪标签集。6.根据权利要求1所述基于半监督分布式训练的任务识别方法,其特征在于,所述步骤3.2,首先,从有标签集χ估计类分布,被预测l类的无标签样本包含在伪标签子集中的比率为对于不平衡率γ,最少类最多类然后,通过类分布情况生成的伪标签子集来扩展有标签集χ,即χ

即再平衡标签集,即再平衡标签集,是所有的伪标签样本。

技术总结
一种面向非平衡数据基于半监督分布式训练的任务识别方法,首先,边缘设备收集大量的数据,通过自适应数据采样的方式统计数据的类别,按照类别数量从大到小生成一个降序数据集。然后,通过一个多层结构的分布式训练框架得到一个优化模型。其中,边缘节点既可以作为聚合参数的服务器,也可以作为模型训练的训练节点。最后,通过类再平衡自训练对数据集进行调整,生成一个伪标签集并统计标签集的类分布情况,遵守类再平衡规则生成一个伪标签子集,补充到标签集中生成新的数据集,完成一次自训练迭代。本发明充分利用了分布式训练与半监督学习优势,降低了非平衡数据带来的影响,提高了神经网络训练效果。了神经网络训练效果。了神经网络训练效果。


技术研发人员:许志伟 董泽辉 刘利民 王永生
受保护的技术使用者:内蒙古工业大学
技术研发日:2021.12.02
技术公布日:2022/3/8

最新回复(0)