本发明涉及分类模型优化及分类方法,具体涉及一种数据分类模型优化方法及分类方法。
背景技术
卷积神经网络是一种前馈神经网络,人工神经元可以响应周围单元,可以进行大型图像进行处理处理。卷积神经网络包括卷积层和池化层。在卷积神经网络的卷积层中,一个神经元只与部分邻层神经元连接。在cnn的一个卷积层中,通常包含若干个特征平面(featuremap),每个特征平面由一些矩形排列的的神经元组成,同一特征平面的神经元共享权重,这里共享的权重就是卷积核。卷积核一般以随机小数矩阵的形式初始化,在网络的训练过程中卷积核将学习得到合理的权重。共享权重(卷积核)带来的直接好处是减少网络各层之间的连接,同时又降低了过拟合的风险。
目前已经有研究学者利用遗传算法对卷积神经网络进行优化,包括:利用遗传算法对卷积神经网络的权重进行初始化,在采用后向传播的方法对网络进行权重更新,该方法可以提高网络的图像分类精度,但该方法并未提升网络的收敛速度。还有利用遗传算法对卷积神经网络的卷积核数量、卷积核尺寸及池化核尺寸进行优化,自动判别网络参数最优,该方法可以有效改善卷积神经网络陷入局部极小的问题,提升网络的训练效率,但该方法对于分类精度的提升不大。
技术实现要素:
本发明的目的在于提供一种数据分类模型优化方法及分类方法,用以解决现有卷积神经网络容易陷入局部极小和收敛速度慢的问题。
为了实现上述任务,本发明采用以下技术方案:
一种数据分类模型优化方法,用于对基于卷积神经网络的数据分类模型进行优化,包括以下步骤:
步骤1、初始化卷积神经网络,生成每一层的初始权重,其中
步骤2、利用卷积神经网络输入以及所有层的初始权重,计算卷积神经网络输出;
步骤3、采用反向传播算法更新每一层的权重,其中
步骤4、采用遗传算法依次对每一层的权重进行更新,获得第n次更新后的权重,n=[1,2,…,n],n≥2,包括:
步骤41、对第i层的权重
步骤42、在当前染色体种群中选择适应度最小的染色体作为父代染色体;
步骤43、利用所述的父代染色体进行交叉、变异,生成新染色体种群;
步骤44、重复执行m次步骤42-43,生成最终染色体种群,m≥1;
步骤45、在所述最终染色体种群中选择适应度最小的染色体作为最优染色体;
步骤46、将所述的最优染色体进行解码,获得第i层第n次更新后的权重
步骤5、判断权重更新次数n是否大于更新次数阈值n:
若权重更新次数n大于等于更新次数阈值n,则停止更新权重,将每一层第n次更新后的权重代入数据分类模型中,获得优化后的数据分类模型;
若权重更新次数n小于更新次数阈值n,则n=n+1,返回步骤4。
进一步地,所述的步骤1、初始化卷积神经网络,生成每一层的初始权重,包括:
步骤11、为所述卷积神经网络的每一层随机给定一组随机数作为随机权重;
步骤12、对每一层的随机权重采用遗传算法进行一次更新,生成初始权重。
进一步地,所述的步骤3、采用梯度下降法更新每一层的权重。
进一步地,采用二进制形式对权重进行编码以及对最优染色体进行解码。
进一步地,利用锦标赛选择方法选择适应度最小的染色体作为父代染色体。
进一步地,采用卷积神经网络各层的实际输出与目标输出之间误差的绝对值作为适应度计算函数。
一种数据分类方法,利用以上所述的优化后的数据分类模型对待分类数据进行分类。
本发明与现有技术相比具有以下技术特点:
本发明提供数据分类模型建立方法和分类方法提升了现有卷积神经网络在图像分类中的收敛速度,能够更快的找到卷积神经网络的最优权重。
附图说明
图1为本发明提供的遗传算法和卷积神经网络的数据分类模型建立流程图;
图2为本发明提供的初始化网络权重流程图;
图3为本发明提供的锦标赛选择流程图;
图4为本发明提供的数据分类方法当数据集分配为50%-50%误差收敛曲线;
图5为传统卷积神经网络分类方法当数据集分配为50%-50%误差收敛曲线;
图6为本发明提供的数据分类方法当数据集分配为70%-30%误差收敛曲线;
图7为传统卷积神经网络分类方法当数据集分配为70%-50%误差收敛曲线;
图8为本发明提供的数据分类方法当数据集分配为80%-20%误差收敛曲线;
图9为传统卷积神经网络分类方法当数据集分配为80%-20%误差收敛曲线。
具体实施方式
以下是发明人提供的具体实施例,以对本发明的技术方案作进一步解释说明。
实施例一
本发明提供了一种数据分类模型建立方法,如图1所示,采用卷积神经网络作为分类模型,所述的卷积神经网络的输入为x。
数据分类可以是对图像分类、文字形式的数据集分类等。
卷积神经网络主要由输入层、卷积层、池化层、全连接层以及输出层组成,其中卷积层由多个特征映射组成,每个特征映射由多个神经元构成,每个神经元通过卷积核与上一层特征映射的局部区域相连。在图像分类中,卷积核是一个权重的矩阵,也就是说,卷积神经网络模型在训练时,实际上是对卷积神经网络中的权重不断优化的过程。
现有技术中,对卷积神经网络模型训练时,采用给定输入数据和输出数据对网络模型进行训练,获得训练好的网络模型,实际上也是获得了一组优化后的权重矩阵。
另外,在对卷积神经网络模型训练时,也可以采用直接优化权重的方式,获得训练好的网络模型,优化权重的方式可以是采用深度学习、遗传算法等方法。
本发明提供的方法结合了给定数据训练模型以及优化权重的方法,具体地,如图2所示,该方法包括以下步骤:
步骤1、初始化卷积神经网络,生成每一层的初始权重,其中
由于卷积神经网络中卷积层的层数可以根据实际应用进行确定,因此对于第i层权重
步骤11、为所述卷积神经网络的每一层随机给定一组随机数作为随机权重;
在本实施例中,卷积神经网络的卷积层为i=3层,在matlab中采用rand函数为每一层权重给定随机数的随机权重
步骤12、对每一层的随机权重采用遗传算法进行一次更新,生成初始权重。。
在本实施例中,在matlab中调用谢菲尔德大学提供的遗传算法工具箱对每一层的随机权重进行一次更新,生成初始权重。
如图2所示,在该工具箱中对第i层的随机权重
在本实施例中,对3层卷积卷的权重采用遗传算法进行更新,获得第一层初始权重
步骤2、利用卷积神经网络输入以及所有层的初始权重,计算卷积神经网络输出;
本步骤中,采用了正向传播的思想,通过给定输入数据x以及每一层的初始权重,获得一组输出y:
y=f(∑(w1·x)+b)式i
其中,b为偏置,f(·)为激活函数。
在本实施例中,对于3层卷积层,第一层初始权重
步骤3、采用反向传播算法更新每一层的权重,其中
由于卷积神经网络自带有权重优化的过程,在卷积神经网络中对权重的优化过程为反向传播。
可选地,采用梯度下降法更新当前层的权重
其中,w表示网络权重,b为偏置,θ表示网络参数,i代表当前层。
在本实施例中,采用matlab卷积神经网络工具箱反向更新每一层经过梯度下降法更新后的权重。
步骤4、采用遗传算法依次对每一层的权重进行更新,获得第n次更新后的权重,n=[1,2,…,n],n≥2,包括:
步骤41、对第i层的权重
对网络权重
在本实施例中,第n=1次采用遗传算法更新权重时,采用二进制形式对第一层卷积层的权重
其中,所述二进制编码的长度l为:
l=h×i+h×j+j式iii
其中h表示隐层神经元数,i表示输入层神经元数,j表示输出层神经元数。
步骤43、在当前染色体种群中选择适应度最小的染色体作为父代染色体;
在染色体种群中选择适应度最小的染色体的方法有轮盘赌选择法、锦标赛选择法等。
可选地,利用锦标赛选择方法选择适应度最小的染色体作为父代染色体。
在本实施例中,首先对第一层卷积层的网络权重生成的染色体种群采用锦标赛选择方法,如图3所示,该方法包括:
从当前种群中随机选择nts个个体作为一组,其中nts<ns(ns为种群个体的总数)。选择nts个个体相互竞争,并且通过此算子得到最好的个体。锦标赛规模nts是用户自定义参数,只要锦标赛规模nts不太大,该方法能防止最优个体支配种群。一旦随机选择了染色体,就使用适应度函数对它们进行评估,将具有最小适应度的染色体(较小适应度表示较好表现的染色体)作为父代。
其中,适应度可由适应度计算函数得出,适应度表示当前染色体的优良程度,进而保证了卷积神经网络可找到最优解,适应度计算函数可以是基于改进距离判据适应度函数、基于平均值方差比的适应度函数、基于fisher准则的适应度函数、基于最邻近分类法的适应度函数等。
可选地,采用卷积神经网络各层的实际输出与目标输出之间误差的绝对值作为适应度计算函数:
在本实施例中,将卷积神经网络各层的实际输出与目标输出之间误差的绝对值作为遗传算法的适应度函数:
其中,r为系数,k为卷积神经网络输出层的神经元个数,yj为第j个神经元的期望输出,oj为第j个神经元的实际输出。当变异算子产生一个后代后,代入卷积神经网络中,获得第j个神经元的实际输出,再使用适应度函数进行评估,对于每一个染色体都会得到一个实际输出,代入式iv中进行适应度的计算,将适应度最小的染色体作为本实施例中的父代染色体。
步骤6、利用所述的父代染色体进行交叉、变异,生成新染色体种群;
采用交叉算子以生成新的染色体,交叉率的选择也直接影响了遗传算法优化的性能,在本实施例中,每次执行完选择算子之后,使用局部交叉算子来进行优化,在两个随机父代产生的后代中,选取其中第p个染色体的第z个基因位和第q个染色体在第z个基因位进行交叉操作:
其中,t为交叉概率。
按照变异概率,随机选择染色体进行变异操作,对选中的染色体中的任意一个或多个基因位进行比特取反,以得到变异后的染色体。每次执行变异算子时,使用锦标赛选择获得单个父代。将变异算子应用于父代以生成后代1。然后将变异算子应用于后代1,从而创建后代2。将后代1,后代2和原始父代染色体的适应性进行比较。具有最低适应度的染色体被返回并被放置到新的群体中。
步骤44、重复执行m次步骤42-43,生成最终染色体种群,m≥1;
本步骤中循环执行m次步骤5-6,即设置遗传算法的繁衍代数,相当于设定了循环阈值,当循环次数超出该阈值m时,则可以获得最终染色体种群。
在本实施例中,繁衍代数设置为3,对于第一层卷积层的第一次权重更新包括重复执行3次步骤42-43,获得当前卷积层的第一次权重更新的最终染色体种群。
步骤45、在所述最终染色体种群中选择适应度最小的染色体作为最优染色体;
在实施例中,适应度由适应度计算函数得出,在最终染色体种群中对每一个染色体个体进行适应度评判,从中选择一个适应度最小的染色体作为最优染色体。
步骤46、、将所述的最优染色体进行解码,获得第i层第n次更新后的权重
由于步骤45选择到的最优染色体进行解码,采用二进制形式进行解码,获得第i层第n次更新后的权重
在本实施例中,对于一个具有3层卷积层的卷积神经网络,首先对第一层卷积层的权重进行第一次更新,获得第一层卷积层的第一次更新
步骤5、判断权重更新次数n是否大于更新次数阈值n:
若权重更新次数n大于等于更新次数阈值n,则停止更新权重,将每一层第n次更新后的权重代入数据分类模型中,获得优化后的数据分类模型;
若权重更新次数n小于更新次数阈值n,则n=n+1,返回步骤4。
本发明提供的网络建立方法需要对每一层的权重进行多次更新,以获得最优权重,因此设置了更新次数的阈值,当所有层权重的更新次数均超过阈值后,则停止更新。
在本实施例中,设置更新次数阈值为3,当完成了n=1次的权重更新时,开始进行第n=2次的更新,本次更新时,在步骤41中,采用上次更新后的权重
由于在该模型的建立时,通过遗传算法不断的对卷积层的权重进行更新,能够快速的找到卷积神经网络的最优权重,解决现有卷积神经网络容易陷入局部极小和收敛速度慢的问题,同时提高卷积神经网络的分类精度。
实施例二
一种数据分类方法,利用实施例一中所述的优化后的数据分类模型对待分类数据进行分类。
在本实施例中,在matlab平台下,利用实施例一所述的优化后的数据分类模型对uci数据集中的breast-cancer-wisconsin数据集进行分类,该数据集有569条数据,每条数据有30个属性,训练集和测试集是从数据集中随机抽取的。使用交叉验证的方法,以保证实验数据的多样性,该数据集的属性见表1。
表1breast-cancer-wisconsin数据集部分属性详解
对breast-cancer-wisconsin数据集进行预处理,将数据转化为6*6的矩阵,矩阵的最后一行数据采用补零法,再将处理好的数据放入实施例一中建立的分类模型中进行分类。
为了客观评估基于遗传算法和卷积神经网络的分类模型的性能,选择准确率作为算法的评判标准。计算公式如下:
在本实施例中,实验过程的具体参数见表2。
表2实验参数设置
通过本发明提供的基于遗传算法和卷积神经网络的数据分类方法对该数据集进行分类时,准确率在97.39%至98.82%之间。
实施例三
为了验证本发明提供的数据分类方法的有效性,将本发明提供的方法与支持向量机分类法、传统卷积神经网络分类法进行对比,使用交叉验证法来保证实验结果的多样性,并将数据集按照50%-50%、70%-30%和80%-20%的不同比例分割为训练集和测试集,实验对比结果见表3。
表3实验结果对比
由表可知,使用本发明提供的分类方法进行分类时,在准确率上比svm的分类精度高,且明显优于传统卷积神经网络。
如图4至9所示,横坐标表示训练次数,纵坐标表示误差,本发明提供的分类模型在训练次数达到500次左右即可达到最优,而梯度下降法训练的卷积神经网络需要在1000次甚至更多的迭代次数下达到最优,由此证明,本发明提供的分类模型有效改善了卷积神经网络在分类时陷入局部极小、收敛速度慢的问题,并有效提升了分类精度。