一种优化深度卷积神经网络结构的快速进化方法与流程

文档序号:15024705发布日期:2018-07-27 11:32阅读:569来源:国知局

本发明涉及一种优化深度卷积神经网络结构的快速进化方法。



背景技术:

随着科技的飞速发展,大数据时代已经到来。深度学习以深度神经网络(dnn)作为模型,在许多人工智能的关键领域取得了十分显著的成果,如图像识别、增强学习、语义分析等。卷积神经网络(cnn)作为一种典型的dnn结构,能有效提取出图像的隐层特征,并对图像进行准确分类,在近几年的图像识别领域得到了广泛的应用。在1998年,lecun等人提出了lenet-5卷积网络结构,这一结构被认为是深度学习史上的里程碑。lenet-5可以识别由32×32像素构成的手写字图像,但是由于lenet-5的结构较为简单,以及当时计算力的匮乏,lenet-5并没有在图像分类上取得显著成果。2012年,alex等人搭建了深度学习算法alexnet,利用深度学习技术大大降低了imagenet图像分类的错误率,使深度学习收到了广泛的关注。之后,resnet,densenetandgooglenet等网络框架也陆续被提出,这些算法通过添加相应的模块极大的拓展了cnn的深度,进一步提高深度学习在图像分类上的准确率。

进化计算作为一种经典的优化参数方法,在很早之前就被用于优化神经网络结构。原始的神经网络不使用梯度下降算法而是用进化计算方法来优化权重参数。进化计算是一个自然的选择过程,交叉和变异重组现有的神经网络的一部分,以获得突变率更好的后代,与神经网络具有很好的匹配性。优化网络权重的进化方法有cma-es算法、sane算法和esp算法。cma-es是一种持续优化的技术,这种方法捕捉权重之间的相互作用,并在优化权重方面效果良好。sane和esp发展部分网络结构并将其组合成功能完善的网络。

现在的进化算法更多地被用来优化神经网络的结构和超参数。masanori等提出了cgp-cnn算法。他们试图自动构建基于笛卡尔遗传规划(cgp)的图像分类任务的cnn体系结构,采用功能强大的模块作为cgp的节点功能来评估网络结构。fernando等通过一个自编码器演化成一个组合模式产生网络(cppn)输出神经网络的权重,然后使用拉马克自适应将训练后的权重整合到cppn基因组中。duforq等提出了evolutionarydeepnetworks(eden)算法,这种算法能有效进化出具有一定分类准确率且结构较为简单的cnn分类器。更重要的是,这种方法仅仅在单个gpu上运行6-24小时就能完成整个进化过程,这大大提高了进化计算的优化效率。audrey等提出了ses-cnn,他们在进化过程中利用有性繁殖方法来加速演化发展,目标是通过结合两个父代网络,在后代中合成更多样化和更一般化的后代网络,使产生的后代具有更紧凑的特征表示。lorenzo等将粒子群优化(pso)应用于cnn中的超参数选择,并设计了基于粒子群优化的并行计算法方法来简化进化算法的运行时间,其目的是为了达到负载平衡并执行并发任务。miikkulainen等基于neat的神经进化技术提出了codeepneat算法,在这种算法中,蓝图由一个个模块搭建而成,通过对模块的重用来寻找最优的网络结构。shafiee等在优化过程中引入了概率模型,通过概率分布呈现遗传编码和环境条件。zoph等结合强化学习与递归神经网络来获得良好的体系结构,在800个gpu上训练了800个网络类获得最优解。real等使用神经进化方法,使用在250台计算机上执行的并行系统来优化用于图像分类问题的cnn分类器。



技术实现要素:

为了克服现有进化cnn结构算法存在时间复杂度高、对cnn模型的评价指标单一的不足,本发明提供一种时间复杂度较低、评价指标较为合理的优化深度卷积神经网络结构的快速进化方法,使用基于gnp的进化算法有效构建非线性的cnn网络结构,并对cnn结构的各种超参数进行变异以寻找最优的cnn超参数组合;在进化过程中,该算法设计了一种多目标的网络结构评价方法,能有效精简网络结构并使网络结构能实现较好的分类效果;最后,算法还提出了增量式训练的概念,在上一代cnn结构的基础上进行子代cnn结构的训练,这种方法能有效减少模型的训练次数,降低算法的时间复杂度。

本发明解决其技术问题所采用的技术方案是:

一种优化深度卷积神经网络结构的快速进化方法,所述进化方法包括以下步骤:

1)基于gnp的cnn优化方法

使用gnp作为进化过程的基础算法,进化过程包含以下操作:种群初始化、优秀个体选择、交叉操作和变异操作,过程如下:

1.1)在种群的初始化中,用一个网络结构来表示一个进化种群,一个网络结构表示为phenotype和genotype两种形式,在phenotype中,一个个不同形状的图形表示不同的cnn模块,不同的路径代表不同的初始化染色体,在初始化过程中,所有染色体的结构均是随机生成,genotype展示了对每条染色体的具体编码方式,对所述cnn模块中的超参数进行编码;

1.2)种群的初始化完成后,对得到的cnn结构使用训练数据进行训练,并测试这些分类器的分类效果,选取性能较好的分类器进行交叉和变异;以gnp算法为基础,设计了相应的交叉和变异策略用来更新染色体的结构和超参数;过程如下:

1.2.1)交叉是通过交换两条染色体的部分结构来得到新染色体的操作,要进行交叉操作,首先需要选择两条染色体作为交叉的对象;采用竞标赛选择法实现对染色体对象的选取,通过竞标赛选择法,将选取两条染色体作为交叉过程中的父代染色体,选取完毕后,在两个染色体中分别随机选取交叉点,在原有的种群网络结构图中,通过修改两个父代染色体在交叉点的连接路径,即可实现染色体的交叉操作;

1.2.2)变异是通过变异染色体的超参数和网络结构来实现对新染色体的构建的,首先也需要通过竞标赛选择法选取父代染色体,父代染色体选取完成后,为当前染色体设计了两种变异策略:结构变异和超参数变异,结构变异用于改变cnn分类器的深度,进化出能有效提取图像特征的cnn结构;超参数的变异用于寻找每个模块的最优参数组合;

1.3)在进化过程中,通过设置种群的交叉概率和变异概率来控制每一代进化过程中产生的子代数量,在任意一代的进化过程中,首先对通过交叉变异而得到的子代cnn结构进行训练,使其成为一个个图像分类器,再将这些子代分类器和父代分类器合并,根据每个分类器的结构复杂度和测试准确率设定一种多目标评价方法,选择性能较好的分类器进入下一轮的cnn结构进化;

2)多目标的网络评价及其优化方法

将分类器的分类准确率和结构复杂度作为优化目标,使用多目标优化方法对一个分类器进行评价,使进化计算能最终产生符合实际应用的最优cnn分类器。

进一步,所述步骤2)中,在进化计算的过程中,借鉴密度估计方法对pf曲线上的pareto最优解集进行fitness函数值的计算,从而确定每个pareto解的具体优化指标;

对于mop问题中的任意一个解xi,定义了关于该解的两个指标:irank和idistance,irank表示该解的支配等级,irank越小表示支配等级越高,对应的解越好;idistance表示这个点的拥挤距离,idistance越大表示当前点的覆盖度大,对应的解越接近最优;对于两个具有不同rank值的解向量,选取具有较低rank值的解作为最优解,若两个解的rank值相同,则认为具有更大distance值的解更适合成为最优解。

再进一步,所述进化方法还包括以下步骤:

3)增量训练方法

结构相似的cnn往往具有相似的层间权重,因为两者对图像特征的提取方式较为相似,在对子代的训练过程中,将父代cnn经训练后的层间权重作为子代cnn的权重初始值,让子代cnn在父代权重参数的基础上进行训练。

本发明的有益效果为:针对现有进化cnn结构算法存在时间复杂度高、对cnn模型的评价指标单一等问题,提出了一种优化cnn结构的快速进化算法(gnp_fel)。该算法使用基于gnp的进化算法有效构建非线性的cnn网络结构,并对cnn结构的各种超参数进行变异以寻找最优的cnn超参数组合;在进化过程中,该算法设计了一种多目标的网络结构评价方法,能有效精简网络结构并使网络结构能实现较好的分类效果;最后,算法还提出了增量式训练的概念,在上一代cnn结构的基础上进行子代cnn结构的训练,这种方法能有效减少模型的训练次数,降低算法的时间复杂度。

附图说明

图1是优化深度卷积神经网络结构的快速进化方法(gnp_fel)的流程图。

图2是种群初始化过程的示意图。

图3是染色体的交叉过程示意图。

图4是染色体的变异过程示意图。

图5是pf曲线和目标向量的示意图。

图6是epochi随δi的变化曲线。

图7是在cifar-10数据集中,两种算法在进化过程中,生成每一代cnn分类器所需要的时间图。

图8是fashion-mnist数据集在gnp-el算法和gnp-fel算法中的运行时间图。

图9是svhn数据集在gnp-el算法和gnp-fel算法中的运行时间图。具体实施方式

具体实施方式

下面结合附图对本发明作进一步的描述。

参照图1~图9,一种优化深度卷积神经网络结构的快速进化方法,所述进化方法包括以下步骤:

1)基于gnp的cnn优化方法

最先的基因网络编码(gnp)是k.hirasawa等提出的。gnp不同于ga和gp,它使用一个包含判断节点和执行节点的网络来表示一个染色体,这种方法能使染色体的结构改变更为灵活,同时能有效搜索参数空间,加速遗传算法的收敛速度。使用gnp作为进化过程的基础算法,为进化过程设计相应的种群初始化、交叉和变异策略,目的是在进化过程中对cnn的网络结构和超参数进行优化,最终获得高性能的cnn分类器,过程如下:

1.1)在种群的初始化中,我们借鉴了gnp算法的网络化思想,用一个网络结构来表示一个进化种群。一个网络结构可以表示为phenotype和genotype两种形式。在phenotype中,一个个不同形状的图形表示不同的cnn模块,这些模块代表了现有的一些经典网络结构的组成部分,包括普通卷积模块、单层卷积模块、densenet模块、resnet模块、池化模块和全连接模块。不同的路径代表不同的初始化染色体,这些染色体从start节点出发,终止于output节点,每条染色体都由多个不同的cnn模块搭建而成。在初始化过程中,所有染色体的结构均是随机生成。genotype展示了对每条染色体的具体编码方式。以chromosome1为例,1_1,2_1等表示组成染色体的模块的编号,每一个编号和phenotype中的模块一一对应,这种编码方式能有效保存染色体的phenotype结构。进一步的,我们还对这些模块中的超参数进行编码,以便在进化过程中实现对这些参数的优化。

相比于ga和gp,这种构建方法采用随机游走策略,以模块为单位实现了对染色体的非线性创建,确保了初始化染色体的结构多样性,增加了进化出最优cnn结构的可能性。

1.2)种群的初始化完成后,我们对得到的cnn结构使用训练数据进行训练,并测试这些分类器的分类效果,选取性能较好的分类器进行交叉和变异。在交叉和变异的过程中,为了获取分类效果更好的cnn网络,原始染色体的结构和超参数得到改变。这就是cnn的网络结构进化过程。以gnp算法为基础,我们设计了相应的交叉和变异策略用来更新染色体的结构和超参数。

1.3)交叉是通过交换两条染色体的部分结构来得到新染色体的操作。在本实施例的进化过程中,交叉操作主要用来实现对cnn结构的进化。要进行交叉操作,首先需要选择两条染色体作为交叉的对象。本实施例采用竞标赛选择法实现对染色体对象的选取。通过竞标赛选择法,我们将选取两条染色体作为交叉过程中的父代染色体,记作parent1和parent2。选取完毕后,在两个染色体中分别随机选取交叉点,记作position1和position2,在原有的种群网络结构图中,通过修改parent1和parent2在交叉点的连接路径,即可实现染色体的交叉操作。

1.4)变异是通过变异染色体的超参数和网络结构来实现对新染色体的构建的。变异首先也需要通过竞标赛选择法选取父代染色体parent。parent选取完成后,我们为当前染色体设计了两种变异策略:结构变异和超参数变异。结构变异是以原有的染色体结构为基础,进行模块的添加、改变或删除,它可以改变cnn分类器的深度,进化出能有效提取图像特征的cnn结构。超参数变异是针对染色体模块进行的操作,一个模块包含多个超参数,如过滤器尺寸、通道深度、激活函数等,超参数的变异旨在寻找每个模块的最优参数组合。

在进化过程中,我们通过设置种群的交叉概率和变异概率来控制每一代进化过程中产生的子代数量。在任意一代的进化过程中,我们首先对通过交叉变异而得到的子代cnn结构进行训练,使其成为一个个图像分类器,再将这些子代分类器和父代分类器合并,根据每个分类器的结构复杂度和测试准确率设定一种多目标评价方法,选择性能较好的分类器进入下一轮的cnn结构进化。

2)多目标的网络评价及其优化方法

本专利将分类器的分类准确率和结构复杂度作为优化目标,使用多目标优化方法(mop)对一个分类器进行评价,使进化计算能最终产生符合实际应用的最优cnn分类器。

多目标优化问题(mop)可以用以下公式描述:

f(x)=(f1(x),f2(x),...,fm(x))ts.t.x∈ω(1)

其中ω表示x的取值空间,f(x)是在m维解空间上的值.在一般情况下,mop中的目标值是相互矛盾的,这说明在可行解空间内,任何一点都不能使所有的目标同时最小化。多目标优化方法的目的就是在这些解中寻找一组最优的pareto解。

以下给出几个关于多目标优化的几个重要定义。

定义1(pareto占优):假设xa,xb∈ω是多目标优化问题的两个可行解,则称与xb相比,xa是pareto占优的,当且仅当

记作xa>xb,也称为xa支配xb

定义2(pareto最优解):一个解x*∈x被称为pareto最优解(或非支配解),当且仅当满足以下条件:

定义3(pareto最优解集):pareto最优解集是所有pareto最优解的集合,其定义如下:

定义4(pareto前沿面):pareto最优解集p*中的所有pareto最优解对应的目标矢量组成的曲面被称为pareto前沿面pf*

pf*={f(x)=(f1(x*),f2(x*),...,fm(x*))t|x*∈p*}(5)

在mop的应用中,pf由一组最优的pareto解构成的曲线或曲面表示,通过多目标优化算法能找到对应的pareto最优解。确定pf曲线后,决策者从这些pareto解集中选出一个解作为输出的最优解。由于mop通常涉及矛盾的目标,因此位于pf曲线膝点往往会被作为最优解输出。因为相比于其他点,膝点能更好地平衡两个目标量,并在许多应用中表现出良好的性能。

2.2在进化计算的过程中,所有的解都有对应一个fitness值,fitness值的大小决定了这个解的好坏,同时fitness值还在竞标赛选择方法中起到了引导选取概率的作用。本专利借鉴kalyanmoy等提出的密度估计方法对pf曲线上的pareto最优解集进行fitness函数值的计算,从而确定每个pareto解的具体优化指标。

对于mop问题中的任意一个解xi,kalyanmoyetal.定义了关于该解的两个指标:irank和idistance。irank表示该解的支配等级,irank越小表示支配等级越高,对应的解越好;idistance表示这个点的拥挤距离,idistance越大表示当前点的覆盖度大,对应的解越接近最优。根据这两个指标,我们定义进化过程中fitness函数排序方法:

对于任意两个cnn分类器xi和xj,

fitnessi>fitnessjif(irank<jrank)or((irank=jrank)and(idistance>jdistance))(6)这表示,对于两个具有不同rank值的解向量,我们往往会选取具有较低rank值的解作为最优解。若两个解的rank值相同,我们则认为具有更大distance值的解更适合成为最优解。

进一步,所述优化方法还包括以下步骤:

3)增量训练方法

前两节描述了以gnp为基础的进化方法和进化过程中的多目标优化方法。这两种方法的结合能进化出性能较好的cnn分类器。但是这种进化算法对于每个新生成的cnn结构都要进行训练并测试其分类效果,最终才能计算它的fitness值。为了减少进化算法的时间复杂度,我们在本节提出了一种增量式学习的方法。

在进化算法中,所有的子代染色体都是经父代交叉或变异得到的。交叉是两个父代染色体的部分组合,变异则对父代染色体结构的一种微调。结构相似的cnn往往具有相似的层间权重,因为两者对图像特征的提取方式较为相似。在对子代的训练过程中,可以将父代cnn经训练后的层间权重作为子代cnn的权重初始值,让子代cnn在父代权重参数的基础上进行训练,从而达到减少算法时间复杂度的目的。

对于一个子代染色体ci,若其是由交叉操作得到的,则其结构主要由两部分构成:一部分从parent1继承而来,记作pi_1,另一部分由parent2继承而来,记作pi_2,即

ci=pi_1+pi_2(7)

若其是由变异操作得到的,则其结构主要由两部分构成:一部分从父代继承而来,记作pi;一部分是由自身变异产生,记作mi,即

ci=pi+mi(8)

定义5(结构改变度):若对于一个子代染色体ci,定义该子代相对于父代染色体的结构改变度为

其中pi_1表示pi_1中包含的权重参数个数,pi_2表示pi_2中包含的权重参数个数,p表示pi中包含的权重参数个数,m表示mi中包含的权重参数个数。从公式(9)中可以看出,对于通过交叉产生的子代染色体,其结构改变度和从两个父代继承下来的权重参数比例有关。在通过变异产生的子代染色体中,变异的超参数越多,该子代的结构改变度也越大;对于最先创建的一批染色体,其结构改变度为1。

定义6(权重初始化):对于通过种群初始化得到的染色体,在创建相应的cnn网络时,将所有权重参数设为均值为0,方差为1的随机数;对于由父代通过交叉变异得到的子代染色体,其从父代继承部分的结构将父代训练完成后的参数作为初始值,新生成部分的权重参数设置为均值为0,方差为1的随机数。

定义7(子代训练批次):对于子代染色体i,通过其结构改变度来计算该染色体所需要的训练批次。具体的公式为:

其中min_epoch表示对一个分类器的最小训练批次,max_epoch表示对一个分类器的最大训练批次,公式(10)将子代的训练批次投影到一个位于min_epoch和max_epoch之间的一个值,且epochi是随δi按对数性质变化的函数曲线。因为在实际应用中,cnn分类器较小的结构改变就会对其他层的权重参数造成较大的影响,使用对数性质的函数能增加在增量学习中cnn结构对微小变化的灵敏度,从而使子代训练出的分类器具有更好的分类效果。

确定每个子代的epoch之后,对子代cnn进行epoch批次的数据训练,即可得到子代cnn分类器。

4)应用实例

卷积神经网络作为深度学习的一个重要分支,被应用于图像识别、自然语言处理、目标检测等方面。本文提出的一种优化深度卷积神经网络结构的快速进化方法是面向图像识别领域的技术改进。

图像识别问题希望借助计算机程序来处理、分析和理解图片中的内容,使得计算机可以从图片中自动识别各种不同模式的目标和对象。以cifar-10数据集为例,本节将阐述优化深度卷积神经网络结构的快速进化方法是如何应用于图像分类器的改进的。

cifar-10问题收集了包括飞机、汽车、鸟、猫、鹿、狗、青蛙、吗、船、卡车10个不同种类的60000张彩色图片。cifar-10中的图片大小都是固定的且每一张图片中仅包含一个种类的实体,图像的像素为32×32。

为了有效进化出对cifar-10具有较高分类准确率且结构简单的cnn分类器。gnp-fel算法的具体步骤为:

①创建初始化染色体。

通过随机游走策略,将不同的cnn模块进行拼接,创建不同长度和不同模块搭配的初代染色体。在初始化过程中,我们首先需要为进化过程中每条染色体的长度设置一个范围,记作[m,n],即对于每个染色体,其所包含的模块数最少为m,最多为n。限制染色体的长度是为了防止cnn模型的过度复杂化,提升进化计算的效率。因为若一个染色体的结构过于简单或过于复杂,在进行多目标优化时,往往会使pf曲线过于冗长,这增加了对非最优解空间的探索,在增加进化算法复杂度的同时降低进化算法的导向性。对于cifar-10数据集,设置每个染色体的模块长度范围为[5,12],并保持不同模块长度的染色体数量尽量相等,以平衡进化过程中对于解空间探索的均衡性。

创建完初始的cnn染色体种群后,需要对每个染色体对应的cnn结构进行训练,使其最终成为一个个面向cifar-10的图像分类器,并使用kalyanmoy等提出的多目标评价方法,根据每个cnn分类器在测试集上的分类准确率和本身的权重参数个数来评价cnn分类器的具体效果。

②交叉变异创建子代染色体。

交叉和变异的目的是进化出对cifar-10数据集具有更好分类效果的cnn分类器。应用中,通过竞标赛选择方法,选取当前种群中性能较好的cnn分类器作为交叉和变异的父代染色体。交叉和变异的具体方法与第1)部分的相应内容一致。实验中,设置交叉概率为0.2,变异概率为0.1,并保存交叉和变异之后产生的每一个子代的染色体结构,直到子代的染色体数量总和和父代的染色体数量总和相等时,停止交叉和变异的操作。对于每一个子代染色体,其结构的初始权重参数部分继承于父代,部分则进行随机初始化。权重参数的初始化完成后,对这些染色体采用第3)节中的增量训练方法进行训练,目的是加快训练过程,减少进化计算的时间复杂度。

③多目标优化方法选取高性能子代。

当子代染色体也被训练成一个个针对cifar-10的图像分类器后,将父代染色体和子代染色体合并,并从中选取较高性能的部分染色体进行后续的进化。本算法的目的是进化出有高分类准确率和低结构复杂度的cnn分类器。根据现有染色体种群中每个cnn分类器的准确率和权重参数个数,可以做出这些染色体对应解向量的pf曲线,结合kalyanmoy等提出的多目标评价方法,则可以对所有cnn分类器的性能进行从高到低的排序,排序完成后,选取具有高性能的分类器进行进行后续进化即可。

④输出最优cnn分类器。

重复步骤②和步骤③,直至进化的迭代次数满足条件时停止迭代。并输出最后一代pf曲线上的膝点作为最优解。

实验及结果分析:为了验证算法的有效性,我们将gnp-fel算法在cifar-10数据集、fashion-mnist数据集和svhn数据集上进行测试。实验主要分为三个部分。第一部分将gnp-fel算法和gnp-el(相比于gnp-fel算法少了增量训练方法)算法的进化结果进行对比,分析两个算法产生的pf曲线和最优cnn结构。第二部分统计了gnp-el算法和gnp-fel算法在三个数据集上的运行时间,确定增量训练的有效性。第三部分将gnp-fel算法产生的最优cnn分类器和其他算法产生的cnn分类器进行对比,显示该算法的特性和优点。

4.1)对于cifar-10数据集,我们设置其交叉概率为0.2,变异概率为0.1,进化过程的迭代次数为50。训练每个cnn分类器时,设置学习率为0.001,学习率衰减系数为0.95。max_epoch为50,min_epoch为25。在gnp-el算法中,最优解o1的错误率为0.1550,cnn模型的参数个数为438342,相比于初始cnn分类器,最优解在错误率上降低了约0.05,在参数个数上降低了近一半;在gnp-fel算法中,最优解o2的错误率为0.1170,cnn模型的参数个数为613206,相比于初始cnn分类器,最优解在错误率上降低了约0.08,在参数个数上也降低了近一半。

进一步的,我们将两种算法得到的最优解进行对比,发现o1的错误率比o2高了0.038,而o2比o1的权重参数多了174864,两者存在一定的区别。这种区别是进化算法的随机性造成的。但总体而言,o1和o2在错误率和权重参数个数上的差别不是很大,对应cnn分类器的性能也比较接近,它们可以被当成是接近全局最优解的两个次优解。这说明对于cifar-10数据集,gnp-el算法和gnp-fel算法的进化效果相当,且整个进化算法在进化过程中都是逐渐向最优解收敛。

对于fashion-mnist数据集和svhn数据集,我们设置代次为40,其他参数和cifar-10中的参数值保持一致。

在fashionmnist数据集中,使用gnp-el算法得到的最优解o1的错误率为0.0776,cnn模型的参数个数为133474,相比于初始cnn分类器,最优解在错误率上降低了约0.008,在参数个数上降低了一半多;在gnp-fel算法中,最优解o2的错误率为0.0806,cnn模型的参数个数为147126,相比于初始cnn分类器,最优解在错误率上降低了约0.006,在参数个数上降低了近三分之二。o1比o2的错误率低0.003,两者的cnn模型参数个数基本持平,这说明o1和o2的性能十分接近。

在svhn数据集中,使用gnp-el算法得到的最优解o1的错误率为0.0662,cnn模型的参数个数为182610,相比于初始cnn分类器,最优解在错误率上降低了约0.015,在参数个数上降低50000左右;在gnp-fel算法中,最优解o2的错误率为0.0719,cnn模型的参数个数为264441,相比于初始cnn分类器,最优解在错误率上降低了约0.070,在参数个数上也降低了50000左右。

4.2)图7展示了在cifar-10数据集中,两种算法在进化过程中,生成每一代cnn分类器所需要的时间。从图中可以看到,gnp-fel算法平均生成一代cnn分类器所需的时间仅为gnp-el算法的0.6倍。图8和图9是fashion-mnist数据集和svhn数据集在gnp-el算法和gnp-fel算法中的运行时间图。从图中的平均曲线可以看出,在这两个数据集中,gnp-fel算法的运行时间不到gnp-el算法运行时间的一半。结合上文分析,我们可以得到结论:在进化算法中使用增量学习能有效减少算法的时间复杂度,并保持输出最优解的稳定性。

4.3)表1展示了几种算法在cifar-10数据集上的结果。nas(neuralarchitecturesearch)是基于强化学习的方法构建的模型。vgg和renet是人工搭建的cnn架构。cgp-cnn和eden是近年来优化cnn结构的两种进化算法。

表1

从表1可以看出,nas和vgg尽管具有较好的错误率,但是这两个模型的结构十分复杂,需要训练大量的权重参数,它们所占用的运算资源也相当庞大。cgp-cnn通过进化算法进化出了一个在错误率和权重参数个数上均有较高性能的cnn分类器,但是cgp-cnn在两个gpu的配置下完成进化过程所需的时间为15.2天。eden得到的cnn分类器尽管具有很少的权重参数,但是它的错误率是这些算法中最高的。而本实施例提出的gnp-el算法和gnp-fel算法尽管在错误率和参数个数上均达不到最优值,但它们进化出的最优cnn结构在分类错误率和模型权重参数个数这两个指标上达到了很好的平衡。除此之外,本实施例在一个gpu下运行一次gnp-el算法的时间约为9.8天,而运行一次gnp-fel算法的时间约为5.8天,相比于cgp-cnn有了较大的提升。

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