首页 / 专利库 / 人工智能 / 人工智能 / 机器学习 / 人工神经网络 / 前馈神经网络 / 深度神经网络 / 卷积神经网络 / 一种优化深度卷积神经网络结构的快速进化方法

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

阅读:293发布:2024-01-31

专利汇可以提供一种优化深度卷积神经网络结构的快速进化方法专利检索,专利查询,专利分析的服务。并且一种优化深度 卷积神经网络 结构的快速进化方法,包括以下步骤:1)使用基于GNP的进化 算法 有效构建非线性的CNN网络结构,并对CNN结构的各种超参数进行变异以寻找最优的CNN超参数组合;2)在进化过程中,设计了一种多目标的网络结构评价方法,将分类准确率和分类器的复杂程度同时作为优化目标,目的是有效生成具有高分类准确率和简单结构的CNN分类器;3)提出了增量式训练方法,在上一代CNN结构的 基础 上进行子代CNN结构的训练。本 发明 能减少模型的训练次数,降低算法的时间复杂度。,下面是一种优化深度卷积神经网络结构的快速进化方法专利的具体信息内容。

1.一种优化深度卷积神经网络结构的快速进化方法,其特征在于:所述进化方法包括以下步骤:
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.如权利要求1所述的一种优化深度卷积神经网络结构的快速进化方法,其特征在于:
所述步骤2)中,在进化计算的过程中,借鉴密度估计方法对PF曲线上的Pareto最优解集进行fitness函数值的计算,从而确定每个Pareto解的具体优化指标;
对于MOP问题中的任意一个解xi,定义了关于该解的两个指标:irank和idistance,irank表示该解的支配等级,irank越小表示支配等级越高,对应的解越好;idistance表示这个点的拥挤距离,idistance越大表示当前点的覆盖度大,对应的解越接近最优;对于两个具有不同rank值的解向量,选取具有较低rank值的解作为最优解,若两个解的rank值相同,则认为具有更大distance值的解更适合成为最优解。
3.如权利要求1或2所述的一种优化深度卷积神经网络结构的快速进化方法,其特征在于:所述进化方法还包括以下步骤:3)增量训练方法,结构相似的CNN往往具有相似的层间权重,因为两者对图像特征的提取方式较为相似,在对子代的训练过程中,将父代CNN经训练后的层间权重作为子代CNN的权重初始值,让子代CNN在父代权重参数的基础上进行训练。

说明书全文

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

技术领域

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

背景技术

[0002] 随着科技的飞速发展,大数据时代已经到来。深度学习以深度神 经网络(DNN)作为模型,在许多人工智能的关键领域取得了十分显著 的成果,如图像识别、增强学习、语义分析等。卷积神经网络(CNN) 作为一种典型的DNN结构,能有效提取出图像的隐层特征,并对图 像进行准确分类,在近几年的图像识别领域得到了广泛的应用。在 1998年,LeCun等人提出了LeNet-5卷积网络结构,这一结构被认为 是深度学习史上的里程碑。LeNet-5可以识别由32×32像素构成的手 写字图像,但是由于LeNet-5的结构较为简单,以及当时计算的匮 乏,LeNet-5并没有在图像分类上取得显著成果。2012年,Alex等人 搭建了深度学习算法AlexNet,利用深度学习技术大大降低了 ImageNet图像分类的错误率,使深度学习收到了广泛的关注。之后, ResNet,DenseNet and GoogleNet等网络框架也陆续被提出,这些算法 通过添加相应的模极大的拓展了CNN的深度,进一步提高深度学 习在图像分类上的准确率。
[0003] 进化计算作为一种经典的优化参数方法,在很早之前就被用于优 化神经网络结构。原始的神经网络不使用梯度下降算法而是用进化计 算方法来优化权重参数。进化计算是一个自然的选择过程,交叉和变 异重组现有的神经网络的一部分,以获得突变率更好的后代,与神经 网络具有很好的匹配性。优化网络权重的进化方法有CMA-ES算法、SANE算法和ESP算法。CMA-ES是一种持续优化的技术,这种方法 捕捉权重之间的相互作用,并在优化权重方面效果良好。SANE和ESP 发展部分网络结构并将其组合成功能完善的网络。
[0004] 现在的进化算法更多地被用来优化神经网络的结构和超参数。 Masanori等提出了CGP-CNN算法。他们试图自动构建基于笛卡尔遗 传规划(CGP)的图像分类任务的CNN体系结构,采用功能强大的 模块作为CGP的节点功能来评估网络结构。Fernando等通过一个自编 码器演化成一个组合模式产生网络(CPPN)输出神经网络的权重,然 后使用拉克自适应将训练后的权重整合到CPPN基因组中。Duforq 等提出了Evolutionary DEep Networks(EDEN)算法,这种算法能有 效进化出具有一定分类准确率且结构较为简单的CNN分类器。更重 要的是,这种方法仅仅在单个GPU上运行6-24小时就能完成整个进 化过程,这大大提高了进化计算的优化效率。Audrey等提出了 SES-CNN,他们在进化过程中利用有性繁殖方法来加速演化发展,目 标是通过结合两个父代网络,在后代中合成更多样化和更一般化的后 代网络,使产生的后代具有更紧凑的特征表示。lorenzo等将粒子群优 化(PSO)应用于CNN中的超参数选择,并设计了基于粒子群优化的 并行计算法方法来简化进化算法的运行时间,其目的是为了达到负载 平衡并执行并发任务。Miikkulainen等基于NEAT的神经进化技术提 出了CoDeepNEAT算法,在这种算法中,蓝图由一个个模块搭建而成, 通过对模块的重用来寻找最优的网络结构。Shafiee等在优化过程中引 入了概率模型,通过概率分布呈现遗传编码和环境条件。Zoph等结合 强化学习递归神经网络来获得良好的体系结构,在
800个GPU上训 练了800个网络类获得最优解。Real等使用神经进化方法,使用在250 台计算机上执行的并行系统来优化用于图像分类问题的CNN分类器。

发明内容

[0005] 为了克服现有进化CNN结构算法存在时间复杂度高、对CNN模 型的评价指标单一的不足,本发明提供一种时间复杂度较低、评价指 标较为合理的优化深度卷积神经网络结构的快速进化方法,使用基于 GNP的进化算法有效构建非线性的CNN网络结构,并对CNN结构的 各种超参数进行变异以寻找最优的CNN超参数组合;在进化过程中, 该算法设计了一种多目标的网络结构评价方法,能有效精简网络结构 并使网络结构能实现较好的分类效果;最后,算法还提出了增量式训 练的概念,在上一代CNN结构的基础上进行子代CNN结构的训练, 这种方法能有效减少模型的训练次数,降低算法的时间复杂度。
[0006] 本发明解决其技术问题所采用的技术方案是:
[0007] 一种优化深度卷积神经网络结构的快速进化方法,所述进化方法 包括以下步骤:
[0008] 1)基于GNP的CNN优化方法
[0009] 使用GNP作为进化过程的基础算法,进化过程包含以下操作: 种群初始化、优秀个体选择、交叉操作和变异操作,过程如下:
[0010] 1.1)在种群的初始化中,用一个网络结构来表示一个进化种群, 一个网络结构表示为Phenotype和Genotype两种形式,在Phenotype 中,一个个不同形状的图形表示不同的CNN模块,不同的路径代表 不同的初始化染色体,在初始化过程中,所有染色体的结构均是随机 生成,Genotype展示了对每条染色体的具体编码方式,对所述CNN 模块中的超参数进行编码;
[0011] 1.2)种群的初始化完成后,对得到的CNN结构使用训练数据进 行训练,并测试这些分类器的分类效果,选取性能较好的分类器进行 交叉和变异;以GNP算法为基础,设计了相应的交叉和变异策略用来 更新染色体的结构和超参数;过程如下:
[0012] 1.2.1)交叉是通过交换两条染色体的部分结构来得到新染色体的 操作,要进行交叉操作,首先需要选择两条染色体作为交叉的对象; 采用竞标赛选择法实现对染色体对象的选取,通过竞标赛选择法,将 选取两条染色体作为交叉过程中的父代染色体,选取完毕后,在两个 染色体中分别随机选取交叉点,在原有的种群网络结构图中,通过修 改两个父代染色体在交叉点的连接路径,即可实现染色体的交叉操作;
[0013] 1.2.2)变异是通过变异染色体的超参数和网络结构来实现对新染 色体的构建的,首先也需要通过竞标赛选择法选取父代染色体,父代 染色体选取完成后,为当前染色体设计了两种变异策略:结构变异和 超参数变异,结构变异用于改变CNN分类器的深度,进化出能有效 提取图像特征的CNN结构;超参数的变异用于寻找每个模块的最优 参数组合;
[0014] 1.3)在进化过程中,通过设置种群的交叉概率和变异概率来控制 每一代进化过程中产生的子代数量,在任意一代的进化过程中,首先 对通过交叉变异而得到的子代CNN结构进行训练,使其成为一个个 图像分类器,再将这些子代分类器和父代分类器合并,根据每个分类 器的结构复杂度和测试准确率设定一种多目标评价方法,选择性能较 好的分类器进入下一轮的CNN结构进化;
[0015] 2)多目标的网络评价及其优化方法
[0016] 将分类器的分类准确率和结构复杂度作为优化目标,使用多目标 优化方法对一个分类器进行评价,使进化计算能最终产生符合实际应 用的最优CNN分类器。
[0017] 进一步,所述步骤2)中,在进化计算的过程中,借鉴密度估计 方法对PF曲线上的Pareto最优解集进行fitness函数值的计算,从而 确定每个Pareto解的具体优化指标;
[0018] 对于MOP问题中的任意一个解xi,定义了关于该解的两个指标: irank和idistance,irank表示该解的支配等级,irank越小表示支配等级越 高,对应的解越好;idistance表示这个点的拥挤距离,idistance越大表示 当前点的覆盖度大,对应的解越接近最优;对于两个具有不同rank值 的解向量,选取具有较低rank值的解作为最优解,若两个解的rank 值相同,则认为具有更大distance值的解更适合成为最优解。
[0019] 再进一步,所述进化方法还包括以下步骤:
[0020] 3)增量训练方法
[0021] 结构相似的CNN往往具有相似的层间权重,因为两者对图像特 征的提取方式较为相似,在对子代的训练过程中,将父代CNN经训 练后的层间权重作为子代CNN的权重初始值,让子代CNN在父代权 重参数的基础上进行训练。
[0022] 本发明的有益效果为:针对现有进化CNN结构算法存在时间复 杂度高、对CNN模型的评价指标单一等问题,提出了一种优化CNN 结构的快速进化算法(GNP_FEL)。该算法使用基于GNP的进化算法 有效构建非线性的CNN网络结构,并对CNN结构的各种超参数进行 变异以寻找最优的CNN超参数组合;在进化过程中,该算法设计了 一种多目标的网络结构评价方法,能有效精简网络结构并使网络结构 能实现较好的分类效果;最后,算法还提出了增量式训练的概念,在 上一代CNN结构的基础上进行子代CNN结构的训练,这种方法能有 效减少模型的训练次数,降低算法的时间复杂度。附图说明
[0023] 图1是优化深度卷积神经网络结构的快速进化方法(GNP_FEL) 的流程图
[0024] 图2是种群初始化过程的示意图。
[0025] 图3是染色体的交叉过程示意图。
[0026] 图4是染色体的变异过程示意图。
[0027] 图5是PF曲线和目标向量的示意图。
[0028] 图6是epochi随δi的变化曲线。图7是在CIFAR-10数据集中,两种算法在进化过程中,生成每 一代CNN分类器所需要的时间图。
图8是Fashion-MNIST数据集在GNP-EL算法和GNP-FEL算法 中的运行时间图。
图9是SVHN数据集在GNP-EL算法和GNP-FEL算法中的运行时间 图。具体实施方式

具体实施方式

[0029] 下面结合附图对本发明作进一步的描述。
[0030] 参照图1~图9,一种优化深度卷积神经网络结构的快速进化方法, 所述进化方法包括以下步骤:
[0031] 1)基于GNP的CNN优化方法
[0032] 最先的基因网络编码(GNP)是K.Hirasawa等提出的。GNP不同于 GA和GP,它使用一个包含判断节点和执行节点的网络来表示一个染 色体,这种方法能使染色体的结构改变更为灵活,同时能有效搜索参 数空间,加速遗传算法的收敛速度。使用GNP作为进化过程的基础算 法,为进化过程设计相应的种群初始化、交叉和变异策略,目的是在 进化过程中对CNN的网络结构和超参数进行优化,最终获得高性能 的CNN分类器,过程如下:
[0033] 1.1)在种群的初始化中,我们借鉴了GNP算法的网络化思想,用 一个网络结构来表示一个进化种群。一个网络结构可以表示为 Phenotype和Genotype两种形式。在Phenotype中,一个个不同形状 的图形表示不同的CNN模块,这些模块代表了现有的一些经典网络 结构的组成部分,包括普通卷积模块、单层卷积模块、densenet模块、 resnet模块、池化模块和全连接模块。不同的路径代表不同的初始化 染色体,这些染色体从START节点出发,终止于OUTPUT节点,每 条染色体都由多个不同的CNN模块搭建而成。在初始化过程中,所 有染色体的结构均是随机生成。Genotype展示了对每条染色体的具体 编码方式。以Chromosome 1为例,1_1,2_1等表示组成染色体的模块 的编号,每一个编号和Phenotype中的模块一一对应,这种编码方式 能有效保存染色体的Phenotype结构。进一步的,我们还对这些模块 中的超参数进行编码,以便在进化过程中实现对这些参数的优化。
[0034] 相比于GA和GP,这种构建方法采用随机游走策略,以模块为单 位实现了对染色体的非线性创建,确保了初始化染色体的结构多样性, 增加了进化出最优CNN结构的可能性。
[0035] 1.2)种群的初始化完成后,我们对得到的CNN结构使用训练数据 进行训练,并测试这些分类器的分类效果,选取性能较好的分类器进 行交叉和变异。在交叉和变异的过程中,为了获取分类效果更好的 CNN网络,原始染色体的结构和超参数得到改变。这就是CNN的网 络结构进化过程。以GNP算法为基础,我们设计了相应的交叉和变异 策略用来更新染色体的结构和超参数。
[0036] 1.3)交叉是通过交换两条染色体的部分结构来得到新染色体的操 作。在本实施例的进化过程中,交叉操作主要用来实现对CNN结构 的进化。要进行交叉操作,首先需要选择两条染色体作为交叉的对象。 本实施例采用竞标赛选择法实现对染色体对象的选取。通过竞标赛选 择法,我们将选取两条染色体作为交叉过程中的父代染色体,记作parent1和parent2。选取完毕后,在两个染色体中分别随机选取交叉点, 记作position1和position2,在原有的种群网络结构图中,通过修改 parent1和parent2在交叉点的连接路径,即可实现染色体的交叉操作。
[0037] 1.4)变异是通过变异染色体的超参数和网络结构来实现对新染色 体的构建的。变异首先也需要通过竞标赛选择法选取父代染色体 parent。Parent选取完成后,我们为当前染色体设计了两种变异策略: 结构变异和超参数变异。结构变异是以原有的染色体结构为基础,进 行模块的添加、改变或删除,它可以改变CNN分类器的深度,进化 出能有效提取图像特征的CNN结构。超参数变异是针对染色体模块 进行的操作,一个模块包含多个超参数,如过滤器尺寸、通道深度、 激活函数等,超参数的变异旨在寻找每个模块的最优参数组合。
[0038] 在进化过程中,我们通过设置种群的交叉概率和变异概率来控制 每一代进化过程中产生的子代数量。在任意一代的进化过程中,我们 首先对通过交叉变异而得到的子代CNN结构进行训练,使其成为一 个个图像分类器,再将这些子代分类器和父代分类器合并,根据每个 分类器的结构复杂度和测试准确率设定一种多目标评价方法,选择性 能较好的分类器进入下一轮的CNN结构进化。
[0039] 2)多目标的网络评价及其优化方法
[0040] 本专利将分类器的分类准确率和结构复杂度作为优化目标,使用 多目标优化方法(MOP)对一个分类器进行评价,使进化计算能最终产 生符合实际应用的最优CNN分类器。
[0041] 多目标优化问题(MOP)可以用以下公式描述:
[0042] F(x)=(f1(x),f2(x),...,fm(x))T s.t.x∈Ω(1)
[0043] 其中Ω表示x的取值空间,F(x)是在m维解空间上的值.在一般 情况下,MOP中的目标值是相互矛盾的,这说明在可行解空间内,任 何一点都不能使所有的目标同时最小化。多目标优化方法的目的就是 在这些解中寻找一组最优的Pareto解。
[0044] 以下给出几个关于多目标优化的几个重要定义。
[0045] 定义1(Pareto占优):假设xA,xB∈Ω是多目标优化问题的两个可 行解,则称与xB相比,xA是Pareto占优的,当且仅当
[0046]
[0047] 记作xA>xB,也称为xA支配xB
[0048] 定义2(Pareto最优解):一个解x*∈x被称为Pareto最优解(或非 支配解),当且仅当满足以下条件:
[0049]
[0050] 定义3(Pareto最优解集):Pareto最优解集是所有Pareto最优解 的集合,其定义如下:
[0051]
[0052] 定义4(Pareto前沿面):Pareto最优解集P*中的所有Pareto最 优解对应的目标矢量组成的曲面被称为Pareto前沿面PF*:
[0053] PF*={F(x)=(f1(x*),f2(x*),...,fm(x*))T|x*∈P*} (5)
[0054] 在MOP的应用中,PF由一组最优的Pareto解构成的曲线或曲面 表示,通过多目标优化算法能找到对应的Pareto最优解。确定PF曲 线后,决策者从这些Pareto解集中选出一个解作为输出的最优解。由 于MOP通常涉及矛盾的目标,因此位于PF曲线膝点往往会被作为最 优解输出。因为相比于其他点,膝点能更好地平衡两个目标量,并在 许多应用中表现出良好的性能。
[0055] 2.2在进化计算的过程中,所有的解都有对应一个fitness值,fitness 值的大小决定了这个解的好坏,同时fitness值还在竞标赛选择方法中 起到了引导选取概率的作用。本专利借鉴Kalyanmoy等提出的密度估 计方法对PF曲线上的Pareto最优解集进行fitness函数值的计算,从 而确定每个Pareto解的具体优化指标。
[0056] 对于MOP问题中的任意一个解xi,Kalyanmoy et al.定义了关于该 解的两个指标:irank和idistance。irank表示该解的支配等级,irank越小 表示支配等级越高,对应的解越好;idistance表示这个点的拥挤距离, idistance越大表示当前点的覆盖度大,对应的解越接近最优。根据这两 个指标,我们定义进化过程中fitness函数排序方法:
[0057] 对于任意两个CNN分类器xi和xj,
[0058] fitnessi>fitnessj if(irank<jrank)or((irank=jrank)and(idistance>jdistance))(6) 这表示,对于两个具有不同rank值的解向量,我们往往会选取具有较 低rank值的解作为最优解。若两个解的rank值相同,我们则认为具 有更大distance值的解更适合成为最优解。
[0059] 进一步,所述优化方法还包括以下步骤:
[0060] 3)增量训练方法
[0061] 前两节描述了以GNP为基础的进化方法和进化过程中的多目标 优化方法。这两种方法的结合能进化出性能较好的CNN分类器。但 是这种进化算法对于每个新生成的CNN结构都要进行训练并测试其 分类效果,最终才能计算它的fitness值。为了减少进化算法的时间复 杂度,我们在本节提出了一种增量式学习的方法。
[0062] 在进化算法中,所有的子代染色体都是经父代交叉或变异得到的。 交叉是两个父代染色体的部分组合,变异则对父代染色体结构的一种 微调。结构相似的CNN往往具有相似的层间权重,因为两者对图像 特征的提取方式较为相似。在对子代的训练过程中,可以将父代CNN 经训练后的层间权重作为子代CNN的权重初始值,让子代CNN在父 代权重参数的基础上进行训练,从而达到减少算法时间复杂度的目的。
[0063] 对于一个子代染色体Ci,若其是由交叉操作得到的,则其结构主 要由两部分构成:一部分从parent1继承而来,记作Pi_1,另一部分由 parent2继承而来,记作Pi_2,即[0064] Ci=Pi_1+Pi_2 (7)
[0065] 若其是由变异操作得到的,则其结构主要由两部分构成:一部分 从父代继承而来,记作Pi;一部分是由自身变异产生,记作Mi,即
[0066] Ci=Pi+Mi (8)
[0067] 定义5(结构改变度):若对于一个子代染色体Ci,定义该子代相 对于父代染色体的结构改变度为
[0068]
[0069] 其中pi_1表示Pi_1中包含的权重参数个数,pi_2表示Pi_2中包含的权重 参数个数,p表示Pi中包含的权重参数个数,m表示Mi中包含的权重 参数个数。从公式(9)中可以看出,对于通过交叉产生的子代染色体, 其结构改变度和从两个父代继承下来的权重参数比例有关。在通过变 异产生的子代染色体中,变异的超参数越多,该子代的结构改变度也 越大;对于最先创建的一批染色体,其结构改变度为1。
[0070] 定义6(权重初始化):对于通过种群初始化得到的染色体,在创 建相应的CNN网络时,将所有权重参数设为均值为0,方差为1的随 机数;对于由父代通过交叉变异得到的子代染色体,其从父代继承部 分的结构将父代训练完成后的参数作为初始值,新生成部分的权重参 数设置为均值为0,方差为1的随机数。
[0071] 定义7(子代训练批次):对于子代染色体i,通过其结构改变度 来计算该染色体所需要的训练批次。具体的公式为:
[0072]
[0073] 其中min_epoch表示对一个分类器的最小训练批次,max_epoch表示对 一个分类器的最大训练批次,公式(10)将子代的训练批次投影到一 个位于min_epoch和max_epoch之间的一个值,且epochi是随δi按对数性 质变化的函数曲线。因为在实际应用中,CNN分类器较小的结构改变 就会对其他层的权重参数造成较大的影响,使用对数性质的函数能增 加在增量学习中CNN结构对微小变化的灵敏度,从而使子代训练出 的分类器具有更好的分类效果。
[0074] 确定每个子代的epoch之后,对子代CNN进行epoch批次的数据 训练,即可得到子代CNN分类器。
[0075] 4)应用实例
[0076] 卷积神经网络作为深度学习的一个重要分支,被应用于图像识别、 自然语言处理、目标检测等方面。本文提出的一种优化深度卷积神经 网络结构的快速进化方法是面向图像识别领域的技术改进。
[0077] 图像识别问题希望借助计算机程序来处理、分析和理解图片中的 内容,使得计算机可以从图片中自动识别各种不同模式的目标和对象。 以CIFAR-10数据集为例,本节将阐述优化深度卷积神经网络结构的 快速进化方法是如何应用于图像分类器的改进的。
[0078] CIFAR-10问题收集了包括飞机、汽车、猫、鹿、狗、青蛙、 吗、船、卡车10个不同种类的60000张彩色图片。CIFAR-10中的图 片大小都是固定的且每一张图片中仅包含一个种类的实体,图像的像 素为32×32。
[0079] 为了有效进化出对CIFAR-10具有较高分类准确率且结构简单的 CNN分类器。GNP-FEL算法的具体步骤为:
[0080] ①创建初始化染色体。
[0081] 通过随机游走策略,将不同的CNN模块进行拼接,创建不同长 度和不同模块搭配的初代染色体。在初始化过程中,我们首先需要为 进化过程中每条染色体的长度设置一个范围,记作[m,n],即对于每个 染色体,其所包含的模块数最少为m,最多为n。限制染色体的长度 是为了防止CNN模型的过度复杂化,提升进化计算的效率。因为若 一个染色体的结构过于简单或过于复杂,在进行多目标优化时,往往 会使PF曲线过于冗长,这增加了对非最优解空间的探索,在增加进 化算法复杂度的同时降低进化算法的导向性。对于CIFAR-10数据集, 设置每个染色体的模块长度范围为[5,12],并保持不同模块长度的染色 体数量尽量相等,以平衡进化过程中对于解空间探索的均衡性。
[0082] 创建完初始的CNN染色体种群后,需要对每个染色体对应的 CNN结构进行训练,使其最终成为一个个面向CIFAR-10的图像分类 器,并使用Kalyanmoy等提出的多目标评价方法,根据每个CNN分 类器在测试集上的分类准确率和本身的权重参数个数来评价CNN分 类器的具体效果。
[0083] ②交叉变异创建子代染色体。
[0084] 交叉和变异的目的是进化出对CIFAR-10数据集具有更好分类效 果的CNN分类器。应用中,通过竞标赛选择方法,选取当前种群中 性能较好的CNN分类器作为交叉和变异的父代染色体。交叉和变异 的具体方法与第1)部分的相应内容一致。实验中,设置交叉概率为0.2,变异概率为0.1,并保存交叉和变异之后产生的每一个子代的染 色体结构,直到子代的染色体数量总和和父代的染色体数量总和相等 时,停止交叉和变异的操作。对于每一个子代染色体,其结构的初始 权重参数部分继承于父代,部分则进行随机初始化。权重参数的初始 化完成后,对这些染色体采用第3)节中的增量训练方法进行训练, 目的是加快训练过程,减少进化计算的时间复杂度。
[0085] ③多目标优化方法选取高性能子代。
[0086] 当子代染色体也被训练成一个个针对CIFAR-10的图像分类器后, 将父代染色体和子代染色体合并,并从中选取较高性能的部分染色体 进行后续的进化。本算法的目的是进化出有高分类准确率和低结构复 杂度的CNN分类器。根据现有染色体种群中每个CNN分类器的准确 率和权重参数个数,可以做出这些染色体对应解向量的PF曲线,结  合Kalyanmoy等提出的多目标评价方法,则可以对所有CNN分类器 的性能进行从高到低的排序,排序完成后,选取具有高性能的分类器 进行进行后续进化即可。
[0087] ④输出最优CNN分类器。
[0088] 重复步骤②和步骤③,直至进化的迭代次数满足条件时停止迭代。 并输出最后一代PF曲线上的膝点作为最优解。
[0089] 实验及结果分析:为了验证算法的有效性,我们将GNP-FEL算 法在CIFAR-10数据集、Fashion-MNIST数据集和SVHN数据集上进 行测试。实验主要分为三个部分。第一部分将GNP-FEL算法和 GNP-EL(相比于GNP-FEL算法少了增量训练方法)算法的进化结果 进行对比,分析两个算法产生的PF曲线和最优CNN结构。第二部分 统计了GNP-EL算法和GNP-FEL算法在三个数据集上的运行时间, 确定增量训练的有效性。第三部分将GNP-FEL算法产生的最优CNN 分类器和其他算法产生的CNN分类器进行对比,显示该算法的特性 和优点。
[0090] 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,在参数个数 上也降低了近一半。
[0091] 进一步的,我们将两种算法得到的最优解进行对比,发现O1的错 误率比O2高了0.038,而O2比O1的权重参数多了174864,两者存在 一定的区别。这种区别是进化算法的随机性造成的。但总体而言,O1和O2在错误率和权重参数个数上的差别不是很大,对应CNN分类器 的性能也比较接近,它们可以被当成是接近全局最优解的两个次优解。 这说明对于CIFAR-10数据集,GNP-EL算法和GNP-FEL算法的进化 效果相当,且整个进化算法在进化过程中都是逐渐向最优解收敛。
[0092] 对于Fashion-MNIST数据集和SVHN数据集,我们设置代次为 40,其他参数和CIFAR-10中的参数值保持一致。
[0093] 在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的性能 十分接近。
[0094] 在SVHN数据集中,使用GNP-EL算法得到的最优解O1的错误 率为0.0662,CNN模型的参数个数为182610,相比于初始CNN分类 器,最优解在错误率上降低了约0.015,在参数个数上降低50000左右; 在GNP-FEL算法中,最优解O2的错误率为0.0719,CNN模型的参数 个数为264441,相比于初始CNN分类器,最优解在错误率上降低了 约0.070,在参数个数上也降低了50000左右。
[0095] 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算法运行 时间的一半。结合上文分析,我们可以得到结论:在进化算法中使用 增量学习能有效减少算法的时间复杂度,并保持输出最优解的稳定性
[0096] 4.3)表1展示了几种算法在CIFAR-10数据集上的结果。  NAS(Neural Architecture Search)是基于强化学习的方法构建的模型。 VGG和ReNet是人工搭建的CNN架构。CGP-CNN和EDEN是近年 来优化CNN结构的两种进化算法。
[0097]
[0098]
[0099] 表1
[0100] 从表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有了较大的提升。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈