基于Epoch的解决数据不均衡方法与流程

文档序号:13446910阅读:2657来源:国知局
基于Epoch的解决数据不均衡方法与流程
本发明属于深度学习领域,尤其涉及一种基于epoch的解决数据不均衡方法,属于深度学习的
技术领域

背景技术
:不管是在学术界还是工业界,不平衡学习已经吸引了越来越多的关注,不平衡数据的场景也出现在互联网应用的方方面面,如搜索引擎的点击预测(点击的网页往往占据很小的比例),电子商务领域的商品推荐(推荐的商品被购买的比例很低),信用卡欺诈检测,网络攻击识别等等。不均衡数据造成的影响通常是发生在分类问题中。现在有一个包含了100行数据的二项分类问题(两类数据)。其中有90行数据代表的是第一类,其余10行代表的是数据第二类。这就是一个不均衡数据(不平衡类数据),它的第一类数据和第二类数据比是90:10或者说9:1。当处理这个数据集的时候,建立了一个分类模型并且它的精确度达到了90%,但是当继续更深地挖掘数据时会发现这个90%的精确度只是一类数据的精确度。不平衡类问题可能发生在二项分类问题或者多项分类问题中。大多数方法都可以运用在这两种问题上。在深度学习架构有如下三个概念:batchsize为一次前向传播运算以及反向传播运算中所需要的训练样本数目;iterations为每一次迭代都是一次权重更新,每一次权重更新需要batchsize个数据进行前向传播运算得到损失函数,再反向传播算法更新参数;epoch为深度学习中所有的训练样本完成一次前向传播运算以及一次反向传播运算。所以参与一个epoch训练的数据个数为训练样本的总和。高质量的数据是机器学习和深度学习的关键所在,数据的稀缺性可以阻碍一个模型的发展,使用高质量的数据训练后的模型往往会更健壮(防止过拟合),甚至可以因为数据集的原因使训练变得简单和快速。现在有很多用于解决数据不均衡的方法。1)采样采样方法是通过对训练集进行处理使其从不平衡的数据集变成平衡的数据集,在大部分情况下会对最终的结果带来提升。采样分为上采样和下采样,上采样是把小种类复制多份,下采样是从大众类中剔除一些样本,或者说只从大众类中选取部分样本。上采样后的数据集中会反复出现一些样本,训练出来的模型会有一定的过拟合。而解决过拟合的方法主要有earlystop、添加l1正则化或l2正则化以及添加dropout层。而下采样的缺点显而易见,那就是最终的训练集丢失了数据,模型只学到了总体模式的一部分。2)数据增强对数据量小的数据进行数据增强能有效抑制数据不均衡带来的影响。数据增强方法在机器学习领域以及深度学习领域非常重要,合适的数据增强方法可以有效避免过拟合等问题并且能够有效的提高模型的健壮性。面向图像的数据增强技术有很多种,设a=[a1,a2,...,a7]为数据增强技术的集合,其中,a1为旋转变换、a2为反射变换、a3为翻转变换、a4为缩放变换、a5为平移变换、a6为尺度变换、a7为对比度变换。令mi=xm,....,xn代表逐次进行数据增强技术的操作序列。其中,i∈r表示操作序列的顺序,xn∈a,n∈[1,7]代表某一种数据增强技术。如:m=x1,x2代表使用旋转变换和反射变换进行数据增强进行分析。更一般的,可以定义mi=λ1x1+.....+λlxl为带权的数据增强技术的操作序列。结果的加权。其中,λl为每一种数据增强技术分配的权重。则灰阶图像的数据增强总模型操作序列顺序为:y1=m1(m)y2=m2(y1)……yk=mk(yk-1)其中,m为输入的灰阶图像数据,yk为通过k次数据增强技术操作序列后得到的结果。定义d(m)=mk(yk-1),其中d(m)代表输入数据m经历k次数据增强技术操作序列得到的最后结果。通过对多维灰阶图像进行数据增强,最终为恶意代码变种检测提供支撑。3)基于权重的方法深度学习训练数据的过程也就是训练神经网络每一层权重的过程,而每一层的神经网络的权重每次更新需要根据网络输出中产生的误差进行反向传播进行调整。基于权重的处理数据不均衡的方法通过为每一类设定一个权重,在反向传播误差之前,为每一类产生的误差乘上每一类的权重值后再求加权。然后再根据生成的误差进行反向传播。基于权重的处理数据不均衡的方法通过加权的方式来解决数据不平衡问题,主要思想是对不同类别样本设置不同的惩罚策略,以便生成基于权重的误差。使得样本少的类别被分错后产生的代价大,样本多的样本被分错后产生的代价小。这种方法的难点在于设置合理的权重,实际应用中一般让各个分类间的加权损失值近似相等。技术实现要素:本发明的主要目的在于提出了基于深度学习的解决数据不均衡的方法,该方法是一种新型解决数据不平衡的方法:基于epoch的解决数据不均衡的方法。为实现上述目的,本发明采用的技术方案为基于epoch的解决数据不均衡的方法,在训练过程中每个epoch按照权重对每个类别进行随机重采样,使训练过程每个epoch中的样本都能够被平均表示;根据重采样的权重附加给每个样本,然后按照权重比例从样本库中随机重采样一个epoch大小的样本集,以达到重采样epoch的数据相对均衡的结果。假设用于分类的总数据集共有n个样本,分属于m个类别。设x=(x1,x2,...,xn)为全部n个训练样本,y=(y1,y2,...,ym)为全部m个类别。n∈n+,m∈n+,n、m均为正整数。如果数据集中某一类别的样本个数是其他类别的样本个数的10倍乃至更多,则称该数据集为不均衡数据集。使用不均衡数据集进行深度学习训练容易导致不可信的训练结果。首先,通过基于epoch的解决数据不均衡方法,按照设定的权重,对不均衡数据集进行重采样,得到相对均衡的样本数量总数大小的样本集。该方法的流程如下:按照重采样的初始权重winit以及重采样的最终权重wend计算重采样的下一次进行设定的权重wi。具体的计算公式如下所示:wi=ri-1winit+(1-ri-1)wend(1)其中,winit=(w1,w2,...,wm)为重采样的初始权重,wend=(w1,w2,...,wm)为重采样的最终权重。wi为第i类别设定的权重,i∈[1,m]。设定样本数量多的权重值相对小,样本数量少的权重值相对大。r为每次迭代进行计算的步伐大小,i为迭代epoch的次数。其中,i为本样本的类别,m为类别数,n为一个epoch的样本数,ln为第n个样本所从属的类别值,1{ln=m}代表如果样本所从属的类别值等于类别m时为1否则为0。wm表示第m类的权重,weighti代表第i个样本的权重。按照以上权重计算公式(2),为整个epoch样本按照类别分配权重weights。并对整个weights进行归一化,使得整个weights的和为1;最后,按照weights,随机重采样epoch大小的数据。具体按照类别分配权重weights重采样epoch样本算法如图1所示。然后,将经过epoch解决数据不均衡方法的基本均衡的数据集输送到深度学习神经网络中进行训练,当一个epoch的数据全部参与训练神经网络后,需要将i代表的epoch的迭代次数加1,按照初始权重,最终权重以及迭代次数调整下一次的权重,重新重采样一个epoch的数据,继续参与神经网络的训练,直到训练达到平稳。与现有技术相比较,本发明具有如下有益效果。1.基于深度学习的数据不均衡方法。高质量的数据是机器学习和深度学习的关键所在,数据的稀缺性可以阻碍一个模型的发展,使用高质量的数据训练后的模型往往会更健壮,甚至可以因为数据集的原因使训练变得简单和快速。现在有很多用于解决数据不均衡的方法:采样方法,数据增强以及基于权重的方法。本发明提出的基于epoch的解决数据不均衡的方法能更有效的解决数据不均衡的问题。2.本发明提出了基于epoch的解决数据不均衡的方法。基于epoch的方法在训练过程中每个epoch按照权重对每个类别进行随机重采样,使训练中每个epoch中样本都能够被平均表示。其主要思想为根据重采样的权重附加给每个样本,然后按照权重比例从样本库中随机重采样一个epoch大小的样本集,以达到重采样epoch的数据相对均衡的结果。附图说明图1基于epoch的解决数据不均衡方法流程图;图2基于epoch的重采样算法;图3训练误差对比曲线图;图4训练精度对比曲线图;图5测试误差对比曲线图;图6测试精度对比曲线图;具体实施方式为使本发明的目的、技术方案和特点更加清楚明白,以下结合具体实施例子,并参照附图,对本发明进行进一步的细化说明。基于epoch的解决数据不均衡方法流程图如图1所示。各个步骤解释如下:1)将总的训练数据训练数据送入到基于epoch的方法中,按照初始化的类别权重,随机选择样本大小的样本集,得到重采样的相对均衡的样本集,送入深度学习神经网络进行训练。2)当神经网络训练完一个epoch的数据后,进行调整类别权重,再经过基于epoch的方法,然后继续训练,经过多次的迭代计算,类别权重无限拟合设定好的最后权重,使神经网络的训练误差变得平稳且全局最小。试验环境本节将过实验来验证本文提出的基于epoch的解决数据不均衡方法的实际效果。试验环境为ubuntu14.04主机,8g内存,1t硬盘,实验数据来自于人工生成的不均衡数据集,具体不均衡类别达到了1:60:类别名称数量类别名称数量类别一120类别二7200本实验一共测试了几种解决数据不均衡的方法在相同不均衡数据集上的效果。测试的解决数据不均衡的对比方法有:原数据(不做修改)、数据增强、基于epoch的方法以及基于epoch与数据增强相结合的方法。使用数据增强组合技术对图像进行数据增强,通过对小样本使用数据增强组合扩充训练数据规模,用于解决训练数据量不均衡可能造成的过拟合以及训练不全面的问题,其中,数据增强为在样本上组合如下所示:属性设置值rotation_range0.1width_shift0.1height_shift0.1rescale1/255shear_range0.1zoom_range0.1horizontal_fliptruefill_modenearest其中,rotation_range代表旋转范围,width_shift代表沿着水平方向平移,height_shift代表沿着垂直方向平移,rescale代表对图像按照指定的尺度因子进行放大或缩小,shear_range代表水平或垂直投影变换,zoom_range按照比例随机缩放图像尺寸,horizontal_flip代表水平翻转图像,fill_mode代表在旋转或平移之后进行填充像素方式。几种解决数据不均衡方法在train_loss上的对比曲线图如图3所示,几种解决数据不均衡方法在train_acc上的对比曲线图如图4所示,几种解决数据不均衡方法在val_loss上的对比曲线图如图5所示,几种解决数据不均衡方法在val_acc上的对比曲线图如图6所示。train_loss为每次训练epoch数据得到的训练误差,train_acc为每次训练epoch数据得到的训练精度,val_loss为每次训练epoch数据得到的训练误差,val_acc为每次训练epoch数据得到的训练精度。从以上四个对比曲线图可以看出,本文提出基于epoch方法相比其他传统的方法,针对数据样本不均衡分类问题有很大的改善效果。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1