一种深度迁移学习的不平衡分类集成方法与流程

文档序号:12864219阅读:499来源:国知局
一种深度迁移学习的不平衡分类集成方法与流程

本发明涉及机器学习中的深度学习、迁移学习和不平衡分类领域,尤其涉及到一种深度迁移学习的不平衡分类集成方法。



背景技术:

传统的数据分类方法把不同类型的数据同等看待,致力于提高整体的分类准确度。但现实中存在很多数据分布不平衡的情况,因为有些样本或者是较少出现或者是收集代价高,使得某一类样本数量远远少于其它类样本数量,如疾病检测、破产预估、市场客户流失预测、软件缺陷预测等。这些情况下的异常数据类(少数类)只占正常数据类(多数类)的10%到20%,分布不平衡,甚至极度不平衡。传统的分类方法大多以数据分布基本均衡作为前提,以样本总体的分类准确率作为目标,这对要从庞大的样本中,寻找少量的异常样本的不平衡分类问题并不合适,因为当少数的异常样本都没有被正确识别时,总体分类准确率也可以很高。当数据分布不平衡,特别是错分类代价不同,错分少数类样本代价很高时,正确区分少数类样本显得尤其重要。因此不平衡数据分类问题成为备受关注的研究内容。

深度网络可以有效地提取数据的特征,迁移学习能够利用已经存在的相关任务或数据域的有标记数据处理目标任务或目标领域的问题。深度学习与迁移学习的结合称为深度迁移学习(deeptransferlearning,dtl),将相关领域数据训练的深度模型重用于目标领域,能够有效提取数据特征,提高对不平衡数据的分类能力。

深度迁移学习利用相关领域的辅助数据建立深度网络模型,通过深度网络学习相关领域辅助数据特征,将学习的辅助深度网络结构和特征迁移到目标领域。现有深度迁移学习存在不足:首先,特征迁移可能为目标学习带来好处,同时也可能是负特征迁移而影响目标学习;其次,深度网络结构迁移方法的选择,使得学习的过程耗费大量的时间和空间代价。深度迁移学习的集成方法可以解决深度网络结构迁移选择问题,使学习代价降到最低;同时,减少负特征迁移的影响,使正向特征迁移发挥最大作用。但由辅助数据学习到的深度网络迁移得到的分类器可能会倾向多数类,简单的集成可能会对分类器的倾向产生叠加效果,使得最终的集成分类器过度倾向多数类,无法实现不平衡分类的目标,因此本发明提出了一种用于不平衡数据分类的深度迁移集成方法。



技术实现要素:

本发明的目的在于克服现有技术的缺点与不足,提供一种深度迁移学习的不平衡分类集成方法。

为实现上述目的,本发明所提供的技术方案为:

一种深度迁移学习的不平衡分类集成方法(ensembleofunbalanceddeeptransfer,eudt),包括以下步骤:

(1)建立辅助数据集:

根据目标数据的特性,选择或者采集与目标任务相关的数据组成辅助数据集;

(2)构建辅助深度网络模型和目标深度网络模型:

确定深度网络的结构,构建辅助深度网络模型和目标深度网络模型;

(3)训练辅助深度网络:

(3-1)利用无标签的辅助数据样本对栈式自编码器进行预训练;

(3-2)利用有标签的辅助数据样本对步骤(3-1)训练得到的网络参数进行调整;

(4)将辅助深度网络的结构和参数迁移到目标深度网络:

(4-1)将辅助深度网络中的一个或多个隐含层迁移到目标深度网络,迁移的隐含层不同可得到不同的迁移合成目标网络;

(4-2)使用ape或者apce作为损失函数,利用目标数据对迁移合成的各个目标网络中的一个或多个隐含层进行训练,得到若干各不同的迁移分类器;

(5)各迁移分类器的集成:

用步骤(4-2)的迁移分类器的分类结果计算auprc值的乘积作为分类器的权值,对各个迁移分类器的分类结果加权集成,得到集成分类结果,作为集成分类器输出。

步骤(1)中,所述辅助数据集是否与目标任务相关是通过经验判断。如数字识别问题,目标任务是识别某个数据集的数字变体,可选择其它的数字数据集作为辅助数据集。

步骤(2)中,所述深度网络模型为栈式降噪自编码器(stackeddenoisingautoencoders,sda),栈式降噪自编码器的每一个隐含层都是一个降噪自编码器,设置深层网络的激活函数为sigmoid函数。

所述步骤(3)具体为:

将辅助深度网络的训练过程分为两个阶段,分别是无监督的预训练阶段和有监督的微调阶段:

a、预训练阶段先利用不带标签的数据进行降噪自编码器的训练,并将降噪自编码器中编码层的输出作为下一个自编码器的输入,将训练得到的自编码器中的编码部分依次堆叠得到最终的栈式网络结构,其输出的特征是无监督学习特征;单个自编码器的训练公式如下:

x=x+noise

其中,x为训练样本,noise为噪声,encoder_layer为编码层,decoder_layer为解码层,sigmoid为激活函数,w为网络权值参数,b为偏移量;

b、在栈式网络结构的顶端加上一个分类器,根据样本的类标对整个网络的参数进行调整,此过程为有监督的微调阶段,由此得到的数据特征为监督学习特征。

所述步骤(4)具体为:

将辅助深度网络的结构和参数迁移到目标深度网络包括两步:

a、将辅助深度网络隐含层迁移到目标深度网络;迁移的对象包括任一隐含层、连续的若干个隐含层、整个网络的所有隐含层中的一种;

b、用ape和apce作为损失函数,利用目标数据对迁移合成的各个目标网络进行训练得到目标分类器,训练过程可“冻结”目标网络中的部分隐含层,即不改变该部分隐含层参数的数值;

损失函数ape和apce的计算公式如下:

其中,m表示样本总数,n表示多数类样本的个数,p表示少数类样本个数,n+p=m且n>p,o表示输出层的神经元个数。auprc表示precision-recall曲线下的面积,precision-recall曲线是以recall为横坐标,precision为纵坐标,根据不同分类阈值下的precision和recall值绘制而成的曲线。当c=n时,auprcc表示多数类的auprc值;当c=p时,auprcc表示少数类的auprc值。表示样本i在输出神经元j的期望输出;表示样本i在输出神经元j的实际输出。

平均精度表示不同分类阈值下,不同召回率所对应的不同精度的均值,可用平均精度计算auprc值:

其中,r(k)表示第k个分类阈值对应的召回率,p(k)表示第k个分类阈值对应的精度。

ape和apce是应用于不平衡数据特征学习的深度网络的损失函数,ape是改进的平均精度方差损失函数,apce是改进的平均精度交叉熵损失函数,利用auprc值实现对不同类别的样本的区别对待,在计算样本的损失代价时,动态调整样本的权值,对多数类样本赋予较少的权值,对少数类样本赋予更多的权值,由此训练得到的网络对少数类样本更加重视;

在步骤a中选择不同的隐含层迁移,或者在步骤b中选择局部网络层进行参数调整,可迁移学习得到不同的分类器;由于目标数据的深度网络由辅助数据迁移学习得到,各个分类器的分类结果存在差异,或者偏向少数类,或者偏向多数类,甚至产生负迁移的现象。

步骤(5)中,所述集成分类结果由下面的公式计算:

其中,表示目标样本经过分类器g后,由分类结果计算得到的类c的auprc值;pg(y|x)表示经过分类器g后y的后验概率。对各个分类器加权集成,能够有效缓解单个分类器的严重倾斜问题,避免集成分类器受到单个分类器的过度影响,减轻不平衡分类结果的过度倾斜。

本发明与现有技术相比,具有如下优点与有益效果:

1、针对不平衡数据的分类问题,本发明提出了改进的平均精度方差损失函数ape和平均精度交叉熵损失函数apce,在计算样本的损失代价时,动态调整样本的权值,对多数类样本赋予较少的权值,对少数类样本赋予更多的权值,由此训练得到的深度网络对少数类样本更加重视,更适用于不平衡数据的分类问题。

2、对于训练数据不足的目标任务,利用辅助数据进行迁移学习,将辅助网络的结构及提取的特征迁移到目标数据上,能够节省目标网络的训练时间,有效提高模型的分类效果。

3、迁移辅助网络中不同的隐含层可得到不同的目标分类器,实现对辅助数据集的不同特征的学习。将各个目标分类器的结果集成,可节省选择最优迁移方式所耗费的大量时间代价与计算代价,避免负特征迁移,提高分类器的分类能力。

4、本发明利用辅助数据集学习数据特征和深度网络结构,迁移到目标深度网络,使目标网络能利用辅助数据的特征;用改进的损失函数,提高少数类的权值,训练迁移的目标深度网络,能够更为有效地学习目标数据的特征,故在不平衡数据分类时能有效提高对少数类的识别,提高分类性能。因而本方法具有实际应用价值,值得推广。

附图说明

图1为本发明所述一种深度迁移学习的不平衡分类集成方法的流程图。

图2a为图1所述方法的目标数据实例图;图2b为图1所述方法的辅助数据实例图。

图3为图1所述方法的深度网络迁移学习示意图。

图4为图1所述方法的集成分类器模型结构图。

具体实施方式

下面结合具体实施例对本发明作进一步说明。

下面以识别chars74k数据集中的数字“1”为例,对本发明方法不平衡深度迁移集成方法eudt进行具体说明,本实施例所述的不平衡深度迁移集成方法的框架如图1所示,其具体情况如下:

步骤1)中将chars74k数据集中数字“1”的样本设置为目标数据的正类(102个),其余图片设置为目标数据的负类(918个)。在现存的公共数据集中选择与目标任务相关的数据mnist数据集作为辅助数据,将mnist数据集中数字“1”的样本设置为辅助数据的正类(6742个),其余图片设置为辅助数据的负类(53258个)。目标数据和辅助数据样例图像分别如图2a、2b所示,单个样例的图片分辨率为28*28。

步骤2)中设置深度网络的输入节点个数为28*28=784,输出节点个数为2,包含3个隐含层,3个隐含层神经元个数分别为[576,400,256]。使用批量梯度下降算法训练深度网络,每一个批次包含100个训练样本,预训练阶段设置25个epochs(epoch表示遍历所有批次的训练样本的一次正反向传递过程),设置梯度下降算法的学习率为0.001;微调阶段设置1000个epochs,设置梯度下降算法的学习率为0.1。进行微调时,若代价函数下降差值小于0.001,则提前终止;否则,直到1000个epochs完成。本方法使用python3.5实现,基于tensorflow深度学习框架,使用keras高层神经网络api,实验运行的gpu型号为nvidiageforcegtx1060,3gb显存。

步骤3)利用步骤1)得到的辅助数据集和步骤2)所设置的网络结构参数训练辅助网络。

步骤4)将辅助网络的结构迁移到目标网络,具体的迁移方法如图3所示。在步骤4-1)中选择不同的迁移,或者在步骤4-2)中选择不同的隐含层进行参数调整可得到不同的六种迁移分类器,迁移分类器分别通过以下方式得到(图3只展示了t1~t3分类器的迁移学习过程):

t1分类器:迁移辅助网络的一层隐含层,利用目标数据对目标网络的所有隐含层进行调整;

t2分类器:迁移辅助网络的二层隐含层,利用目标数据对目标网络的所有隐含层进行调整;

t3分类器:迁移辅助网络的所有隐含层,利用目标数据对目标网络的所有隐含层进行调整;

t4分类器:迁移辅助网络的所有隐含层,利用目标数据对目标网络的二层隐含层进行调整;

t5分类器:迁移辅助网络的所有隐含层,利用目标数据对目标网络的一层隐含层进行调整;

t6分类器:迁移辅助网络的所有隐含层,不利用目标数据对目标网络进行调整。

步骤5)计算通过步骤4-2)得到的六个迁移分类器的auprc值乘积作为分类器权值,将所有不平衡分类器结果进行集成,得到最终的分类结果,输出集成分类器模型结果如图4所示。其它数字的识别方法类似此方法。

综上所述,本发明是一种基于深度迁移学习的不平衡分类集成方法,利用辅助数据集学习数据特征和深度网络结构,迁移到目标深度网络,使目标网络能利用辅助数据的特征;用改进的损失函数,提高少数类的权值,训练迁移的目标深度网络,能够更为有效地学习目标数据的特征,故在不平衡数据分类时能有效提高对少数类的识别,提高分类性能。因而本方法具有实际应用价值,值得推广。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

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