本发明涉及人工智能技术领域,特别涉及一种深度卷积神经网络权值优化方法。
背景技术:
深度学习在人工智能领域发展迅速,实现了在图像识别、语音识别以及自然语言处理等方面接近或超越人类的表现,但是深度学习的发展不仅仅止步于此,深度学习算法的优化以及与其他领域技术的结合将成为深度学习发展的新方向。众所周知,深度学习之下是一个研究过几十年的人工神经网络,和人工智能领域中的其他技术相同,人工神经网络的发明灵感也是来自生物学人脑的信息传递机制。在优化领域,遗传算法、粒子群算法等智能算法也是来自于生物范畴,这些生物启发式智能算法的优势是全局搜索能力强并且收敛速度快,而深度学习中,目前主要使用于寻找最优解的方法还是梯度下降。梯度下降方法利用函数在负梯度方向上变化最快的特点,将参数值减去该点的梯度值并逐渐下降到函数最小值的过程,进而达到参数优化的目的,但该方法存在容易陷入局部最优,需要计算复杂的梯度而收敛速度慢,在不可微函数上无法有效收敛等缺陷,于是深度学习和智能优化算法相结合的领域应运而生,利用二者优势互补克服梯度下降中的缺陷,此领域也逐渐引来了越来越多研究者的关注。
对于将遗传算法应用于神经网络优化研究已久,而深度神经网络的出现,又给该领域的研究带来了新的挑战。相比于传统神经网络,深度神经网络的层数更深、网络规模更大。另外,卷积操作的引入,又使得优化的对象变得更加复杂,因此,传统的基于遗传算法优化深度神经网络的方法并不能直接应用于深度神经网络中。
目前应用遗传算法来优化的深度神经网络的主要研究集中在强化学习领域,如神经进化(ne,neuroevolution),其主要目的是让神经网络根据生物界适者生存,优胜劣汰的原则去进化,最终得到适应度最大的个体,也就是最优秀的强化学习神经网络。该领域的生物学灵感在于人脑神经元的进化过程,人脑具有如今如此发达的学习和记忆功能,离不开脑中复杂的神经网络系统。人脑的整套神经网络系统得益于长久的进化过程,而不是深度学习中的梯度下降和反向传播,基于此原理使得用进化算法来进化神经网络成为一个新兴的领域,并在理论上具有可行性。
目前进化算法主要分为两种形式,第一种为定拓扑神经进化,即神经网络的拓扑结构还是由研究者制定,而网络的权重则交给进化算法去进化,从而找出最优解;第二种为不定拓扑神经进化-拓扑权重进化的人工神经网络(tweann,topologiesweightsevolutionartificialneuralnetwork),即拓扑结构和网络权重都使用进化算法去进化,最终得到最优拓扑结构和网络权重组合。后来,越来越多的拓扑和权重都进化的算法逐渐出现,首先是增强拓扑神经进化算法(neat,neuroevolutionofaugmentingtopologies),该算法提出了基因的历史标记技术和物种技术,解决了tweann里未成熟个体会被灭绝的局限并扩大了网络可进化的规模;后来基于neat算法改进出了基于超立方的neat算法(hyperneat,hypercube-basedneat),该算法对基因采用间接编码,使用组合模式生成网络cppn(compositionalpatternproducingnetwork)生成网络连接,由此网络拓扑可被进化的规模大大增加;新颖搜索(ns,noveltysearch)的出现,使得判断神经网络好坏的唯一标准不仅仅是适应度的好坏,而是加入了新颖性的概念,这样能够更容易找到潜在的最优个体。
目前神经进化算法在强化学习领域获得了显著的成果,甚至使用进化算法进化的智能体在某些游戏中的表现会强于深度学习。同时,在监督学习领域,基于进化算法训练的图像分类器也获得了很好的效果,但是对于深度卷积神经网络,由于进化时间较长,总体性能和表现方面还不如仅使用梯度下降方法,因此未有有效的优化方法与结果。
技术实现要素:
为解决上述问题,本发明提供了一种深度卷积神经网络权值优化方法。
本发明采用以下技术方案:
一种深度卷积神经网络权值优化方法,包括以下步骤:
s1、获取初始种群,对其个体的权重和偏置进行初始化,并进行基因编码;
s2、对初始种群中所有个体进行梯度下降的参数训练,直至到达预设的次数;
s3、将初始种群中个体的权重和偏置设置到计算图中,然后使用测试集数据得到个体适应度,将个体适应度进行从小到大排序形成每个个体的排名,并将适应度最大的个体保存;
s4、基于遗传算法,对初始种群进行选择、交叉、变异操作,获得新一代种群;
s5、判断是否到达终止条件,若是则终止,若否则执行步骤s5,所述终止条件为最大适应度满足要求或者已达到最大迭代步数;
s6、跳转执行步骤s2,对新一代种群进行迭代训练和进化。
优选地,所述步骤s4包括以下分步骤:
s41、针对初始种群的所有个体,基于个体适应度的排序,采用轮盘赌算法依次选择n-1个个体;
s42、对选出的个体内部进行交叉操作,得到交叉后的n-1个个体;
s43、对交叉后的n-1个个体进行变异操作,得到变异后的n-1个个体;
s44、将变异后的n-1个个体与步骤s3中得到的适应度最大的个体进行组合,得到包含了n个个体的新一代种群。
优选地,步骤s2中所述的预设的次数通过以下公式设置:
其中,ga_step为遗传算法使用的间隔步数,step为训练步数。
优选地,步骤s1中所述的获取初始种群具体为:根据预先设置的参数,随机产生初始种群。
优选地,其特征在于,步骤s1中所述的初始化采用正态分布初始化方法。
优选地,步骤s42中所述的交叉操作采用单点交叉方式,先随机选择一个交叉点并分割基因片段,然后配对的亲代相互交换基因片段形成新的子代。
采用上述技术方案后,本发明与背景技术相比,具有如下优点:
本发明采用遗传算法与梯度下降方法相结合,来优化深度卷积神经网络权值,能够提高深度卷积神经网络的识别率,同时提高了深度卷积神经网络的获得速度。
附图说明
图1为本发明的流程示意图;
图2示出了基因编码方式;
图3示出了参数维度信息;
图4为染色体单点交叉方式示意图;
图5为拓扑结构单点交叉方式示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例
参考图1所示,本发明公开了一种深度卷积神经网络权值优化方法,包括以下步骤:
s1、获取初始种群,对其个体的权重和偏置进行初始化,并进行基因编码。根据预先设置的参数随机产生上述初始种群,预先设置的参数主要针对遗传算法部分,在本实施例中,交叉方式采用单点交叉,概率为pc=0.5,变异方式采用替换变异,先随机产生参数范围(根据卷积神经网络的权重和偏置分布图进行设定)内的值,然后再对基因值进行替换,个体变异概率pm=0.1,参数变异概率pw=0.8。初始化采用正态分布初始化方法。由于卷积神经网中各层的权重和偏置均为实数,所以遗传算法的基因采用实数编码。可视化编码如图2所示,染色体为一个参数列表,包括神经网络的5层参数w1,b1,w2,b2,w3,b3,w4,b4,w5,b5,所以染色体的长度为10。权重和偏置不像传统的编码方式一样是实数标量,而是具有维度信息的数组,根据卷积神经网络结构设计,参数的维度如图3所示。
s2、对初始种群中所有个体进行梯度下降的参数训练,直至到达预设的次数。预设的次数通过以下公式设置:
其中,ga_step为遗传算法使用的间隔步数,step为训练步数。
以上预设的次数公式实质上是一种衰减步数方案。通过先知实验,ga_step=2和ga_step=5的神经网络在1000代之后训练结果上升困难,ga_step=40的神经网络在前700代训练结果较差,而使用步数衰减的神经网络既能在前期训练保持较为优异的结果,又能在后期训练远超其他神经网络。因为在训练前期分类器的效果较差,频繁地使用遗传算法有利于神经网络更快地找到优良参数,加快训练速度;在训练后期,频繁的遗传算法会影响梯度下降,造成训练紊乱,这时需要减少遗传算法的使用,让梯度下降平稳进行。
s3、将初始种群中个体的权重和偏置设置到计算图中,然后使用测试集数据得到个体适应度,将个体适应度进行从小到大排序形成每个个体的排名,并将适应度最大的个体保存。
s4、基于遗传算法,对初始种群进行选择、交叉、变异操作,获得新一代种群。该步骤包括以下分步骤:
s41、针对初始种群的所有个体,基于个体适应度的排序,采用轮盘赌算法依次选择n-1个个体。选择操作负责在种群中按照某种原则选择个体,用来在下一代进行繁殖或者保留。在本实验的选择操作,先采用均匀排序,即对种群中所有个体的适应度进行升序排列,得到的名次作为被选中的依据。之后采用轮盘赌选择,该方法是一种放回式的采样操作,某个体被选择进入下一代的概率为该个体的名次与整个种群名次之和的比例。首先根据个体的适应度比例制作出扇形轮盘,每次通过转动轮盘选择个体。需要特别说明的是,选择操作不直接使用适应度作为采样依据的原因是个体适应度的差异性,在实验过程中,观察到所有个体适应度差值大多为10-2级别,所以直接使用适应度比例来采样效果不明显,不能最大程度发挥出选择操作的优势。为了保证最优个体能被保留下来,每次选择结束后,适应度最大的个体自动加入新种群。
s42、对选出的个体内部进行交叉操作,得到交叉后的n-1个个体。交叉是指将两个相互配对的个体交换其所具有的部分基因,然后形成两个新个体的操作。考虑到单点交叉既可以最大程度维护拓扑的完整性,又能实现拓扑交叉的效果,所以本实施例中交叉操作采用单点交叉方式,先随机选择一个交叉点并分割基因片段,然后配对的亲代相互交换基因片段形成新的子代(如图4和图5所示)。交叉过程中,配对采用第1个个体与第2个个体,第3个个体与第4个个体,……,第n-2个个体与第n-1个个体的方式,交叉之后得到n-1个个体。
s43、对交叉后的n-1个个体进行变异操作,得到变异后的n-1个个体。
s44、将变异后的n-1个个体与步骤s3中得到的适应度最大的个体进行组合,得到包含了n个个体的新一代种群。变异是指根据一定的概率对染色体上的基因值进行改变的操作,根据改变的方式主要分为扰动变异和替换变异。顾名思义,扰动变异就是利用变异值对参数值进行增减,替换变异就是利用变异值对参数值进行替换。在本实施例中,变异操作采用替换变异对参数进行改变,具体为,首先根据个体变异概率确定将要变异的个体,针对确定的变异个体,对其进行编码长度个数次的参数变异,每次对参数变异基于参数变异概率。
s5、判断是否到达终止条件,若是则终止,若否则执行步骤s6,所述终止条件为最大适应度满足要求或者已达到最大迭代步数。
s6、跳转执行步骤s2,对新一代种群进行迭代训练和进化。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
1.一种深度卷积神经网络权值优化方法,其特征在于,包括以下步骤:
s1、获取初始种群,对其个体的权重和偏置进行初始化,并进行基因编码;
s2、对初始种群中所有个体进行梯度下降的参数训练,直至到达预设的次数;
s3、将初始种群中个体的权重和偏置设置到计算图中,然后使用测试集数据得到个体适应度,将个体适应度进行从小到大排序形成每个个体的排名,并将适应度最大的个体保存;
s4、基于遗传算法,对初始种群进行选择、交叉、变异操作,获得新一代种群;
s5、判断是否到达终止条件,若是则终止,若否则执行步骤s5,所述终止条件为最大适应度满足要求或者已达到最大迭代步数;
s6、跳转执行步骤s2,对新一代种群进行迭代训练和进化。
2.如权利要求1所述的一种深度卷积神经网络权值优化方法,其特征在于,所述步骤s4包括以下分步骤:
s41、针对初始种群的所有个体,基于个体适应度的排序,采用轮盘赌算法依次选择n-1个个体;
s42、对选出的个体内部进行交叉操作,得到交叉后的n-1个个体;
s43、对交叉后的n-1个个体进行变异操作,得到变异后的n-1个个体;
s44、将变异后的n-1个个体与步骤s3中得到的适应度最大的个体进行组合,得到包含了n个个体的新一代种群。
3.如权利要求1或2所述的一种深度卷积神经网络权值优化方法,其特征在于,步骤s2中所述的预设的次数通过以下公式设置:
其中,ga_step为遗传算法使用的间隔步数,step为训练步数。
4.如权利要求1或2所述的一种深度卷积神经网络权值优化方法,其特征在于,步骤s1中所述的获取初始种群具体为:根据预先设置的参数,随机产生初始种群。
5.如权利要求1或2所述的一种深度卷积神经网络权值优化方法,其特征在于,步骤s1中所述的初始化采用正态分布初始化方法。
6.如权利要求2所述的一种深度卷积神经网络权值优化方法,其特征在于,步骤s42中所述的交叉操作采用单点交叉方式,先随机选择一个交叉点并分割基因片段,然后配对的亲代相互交换基因片段形成新的子代。
技术总结