CN110782006A - 一种基于交叉生成复杂神经网络的方法及系统 - Google Patents

一种基于交叉生成复杂神经网络的方法及系统 Download PDF

Info

Publication number
CN110782006A
CN110782006A CN201910952242.3A CN201910952242A CN110782006A CN 110782006 A CN110782006 A CN 110782006A CN 201910952242 A CN201910952242 A CN 201910952242A CN 110782006 A CN110782006 A CN 110782006A
Authority
CN
China
Prior art keywords
individuals
neural network
individual
parent
child
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910952242.3A
Other languages
English (en)
Inventor
朱徽
安竹林
徐勇军
胡小龙
李超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Publication of CN110782006A publication Critical patent/CN110782006A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供一种生成复杂神经网络的方法,包括:1)从已有的神经网络结构的种群中选择具有高适应度的两个作为父代个体,其中,所述两个父代个体之间具有以卷积层为单位的异构结构;2)将一个卷积层作为最小的操作单位,对所述两个父代个体执行交叉操作以得到子代个体。本发明可以根据已有网络结构方面的经验,有方向性地改变神经网络结构。本发明在不对卷积神经网络进行任何附加训练的情况下,可以实现功能保持,大大节省计算代价。如果对卷积神经网络进行额外训练,可以体现出新产生的神经结构表现更加优秀。在同源结构进行融合的过程中,本发明将已有参数和结构作为指导,能够迅速实现基于功能保持的神经网络结构搜索。

Description

一种基于交叉生成复杂神经网络的方法及系统
技术领域
本发明涉及神经网络,尤其涉及针对神经网络结构的设计方法。
背景技术
随着人工智能技术的发展,卷积神经网络被广泛地应用于模仿生物的视知觉机制构建领域,其在图像分类、目标识别等领域取得了重要的成果。已有研究表明,利用更复杂的神经网络结构更有利于提取和分析图像的特征,从而输出更理想的分类结果。这使得设计复杂神经网络结构(尤其是复杂的大规模神经网络结构)成为了神经网络领域的一项关键技术。
现有的设计复杂神经网络结构的方法可大致分为以下三类。
第一类为基于演化方法进行神经网络结构复杂化,这种方法只进行随机的突变操作,由于没有启发式地探索,因而容易退化为简单的随机搜索,致使在训练时准确率上升缓慢。
第二类为基于函数保持的方法,此类方法通过强化学习或进化算法进行网络拓扑的探索,然而由于其同样存在探索过程缺乏经验指导的问题,容易退化为随机搜索,存在训练时准确率上升缓慢的缺陷。
第三类是由Kenneth O.Stanly等人于2002年在“Evolving Neural Networksthrough Augmenting Topologies”中提出的“NEAT算法”。在该NEAT算法提出对已有的神经网络结构进行突变和交叉操作以得到更加复杂的神经网络结构。然而,发明人发现该算法在执行交叉操作时对已训练的神经网络参数进行了交叉,对神经网络结构的准确率造成了损失,会造成短时间内训练准确率的下降,即为了训练获得好的准确率需要耗费更长时间。
综上分析,需要一种能够在进行神经网络结构复杂化操作时能够保持原有神经网络结构准确率(即功能保持)的方案。
发明内容
因此,本发明的目的在于克服上述现有技术的缺陷,提供一种基于交叉生成复杂神经网络的方法,包括:
1)从已有的神经网络结构的种群中选择具有高适应度的两个作为父代个体,其中,所述两个父代个体之间具有以卷积层为单位的异构结构;
2)将一个卷积层作为最小的操作单位,对所述两个父代个体执行交叉操作以得到子代个体。
优选地,根据所述方法,其中步骤2)还包括:
对通过所述交叉操作得到的子代个体的至少部分参数进行修改,使得所述子代个体能够执行与其中一个父代个体一致的等效计算。
优选地,根据所述方法,其中采用以下任意一种方式执行所述交叉操作并设置所得到子代个体的参数:
方式一:对所述两个父代个体的异构结构执行Add操作以得到子代个体的神经网络结构;其中,针对所获得的子代个体,保持该子代个体中与一个所述父代个体的异构部分对应的训练参数不变,并且将该子代个体中与另一个所述父代个体的相应异构部分对应的训练参数设置为0;
方式二:对所述两个父代个体的异构结构执行Concatenate操作以得到子代个体的神经网络结构;其中,针对所获得的子代个体,保持该子代个体中与一个所述父代个体的异构部分对应的训练参数不变,并且将该子代个体中与另一个所述父代个体的相应异构部分对应的训练参数设置为0;
方式三:确定所述两个父代个体的同源祖先个体、以及所述两个父代个体相较于所述同源祖先个体所分别经历的各种突变;以随机的方式保留所述突变,并对所述同源祖先个体执行所保留的突变以获得子代个体;其中,针对所获得的子代个体,将该子代个体中在所述同源祖先个体以及所述两个父代个体中均不存在的卷积层部分的训练参数设置为0,保持该子代个体中与所述两个父代个体中任意一个或者所述同源祖先个体完全一致的卷积层部分的训练参数不变;
方式四:确定所述两个父代个体的同源祖先个体、以及所述两个父代个体相较于所述同源祖先个体所分别经历的各种突变;根据所述各种突变出现的次数,保留出现次数多的突变,并对所述同源祖先个体执行所保留的突变以获得子代个体;其中,针对所获得的子代个体,将该子代个体中在所述同源祖先个体以及所述两个父代个体中均不存在的卷积层部分的训练参数设置为0,保持该子代个体中与所述两个父代个体中任意一个或者所述同源祖先个体完全一致的卷积层部分的训练参数不变。
优选地,根据所述方法,其中所述方式四设置所得到子代个体的参数,还包括:将该子代个体中在所述同源祖先个体中不存在而在所述两个父代个体中的至少一个中存在的卷积层部分的训练参数以随机的方式设置为0或1。
优选地,根据所述方法,其中包括:
3)基于所述子代个体当前的参数进行继续训练;
4)将训练后的子代个体增加到所述神经网络结构的种群中,并重复执行步骤1)和步骤2)。
优选地,根据所述方法,其中在每次执行所述步骤2)时,随机地从所述方式一至所述方式四中选择一种。
优选地,根据所述方法,其中包括:
在对通过所述步骤1)和步骤2)得到的子代个体执行n次交叉操作后,对最后获得的子代个体的参数进行继续训练并将训练后的该子代个体增加到所述神经网络结构的种群中;其中,n小于设定的阈值。
优选地,根据所述方法,其中所述高适应度指的是高的准确率、或者高的网络参数数量、或者低的输出耗时。
一种计算机可读存储介质,其中存储有计算机程序,所述计算机程序在被执行时用于上述任意一项所述的方法。
一种用于基于交叉生成复杂神经网络的系统,包括:
处理器、和存储装置,
其中,所述存储装置用于存储计算机程序,所述计算机程序在被所述处理器执行时用于实现上述任意一项所述的方法。
与现有技术相比,本发明的实施例的优点在于:
本发明的实现的最终效果是神经网络是功能保持的,也就是说,尽管网络复杂度有所提升,但是对于同样的输入网络具有同样的输出。
与其他方式相比,本发明可以根据已有网络结构方面的经验,有方向性地改变神经网络结构。
与其他现有方法相比,本发明在不对卷积神经网络进行任何附加训练的情况下,可以实现功能保持,大大节省计算代价。如果对卷积神经网络进行额外训练,可以体现出新产生的神经结构表现更加优秀。其次,在同源结构进行融合的过程中,本发明非常高效,将已有参数和结构作为指导,有方向性地迅速实现基于功能保持的神经网络结构搜索。
附图说明
以下参照附图对本发明实施例作进一步说明,其中:
图1是执行现有NEAT算法的示意图,其中每个节点代表神经网络中的一个滤波器,节点间的连线代表滤波器之间的连接关系;
图2是根据本发明的一个实施例生成复杂神经网络的方法流程图;
图3是以方式一对两个父代个体的异构结构执行Add操作;
图4是以方式二对两个父代个体的异构结构执行Concatenate操作;
图5是以方式三或方式四对两个父代个体的同源祖先个体执行突变操作,所述突变是两个父代个体相较于该同源祖先个体曾经历过的突变。
具体实施方式
发明人对现有技术“NEAT算法”进行了研究,发现该算法在执行交叉操作时对已训练的神经网络参数进行了交叉,对神经网络结构的准确率造成了损失。
图1为NEAT算法的一个示例,其中的每个节点(例如1、2、3…6)为一个滤波器,节点之间的连线表示相应滤波器之间的连接关系。在图1中,通过对两个父代Parent 1和Parent2中的各个节点及连线(即对各个滤波器及它们彼此的连接关系)进行交叉从而获得子代Offspring。
上述交叉的原理在于,挑选适应度高(例如,分类的准确率高、网络参数量大、分类耗时短)的两个父代来执行交叉,以便获得适应度高、且结构更复杂的子代,这里网络结构(例如父代或子代)的适应度的高低取决于神经网络的训练参数。
然而,对于神经网络而言,其训练参数(权重和偏置)是针对滤波器及它们彼此的连接关系的参数,在以滤波器为单位执行交叉时会破坏已训练的参数,即对子代的适应度造成一定损失。因而,在对通过NEAT算法得到的子代进行再次训练时,在短时间内可能出现准确率提升缓慢甚至下降的情况,即需要执行更长时间的训练。
可以看到,上述NEAT算法是基于“细粒度”的交叉重组,以一个滤波器作为一个单位,这样的交叉重组破坏了已训练的参数信息。
对此,发明人提出基于“粗粒度”进行交叉重组,以卷积层为单位来判断两个网络结构是否属于异构,以一个卷积层作为一个单位来执行交叉重组。这样粗粒度的方式,不仅可以保留卷积层内的信息、避免破坏已训练的针对滤波器的参数,避免对所获得的子代的适应度造成损失,还可以以层为单位快速地得到训练结果。
进一步地,发明人还提出,在通过上述方式得到子代的网络结构后,对子代中与两个父代之间的异构部分的参数进行调整。所述参数调整的标准为,使得子代的神经网络结构执行与其中一个父代个体完全一致的等效计算,输出与该父代完全一致的计算结果。例如,对于所获得的子代的网络结构,保持与其中与一个父代的异构部分对应的训练参数不变,并且将与另一个父代的相应异构部分对应的训练参数设置为0。通过这样的方式,能够确保子代的神经网络结构能够实现与父代完全一致的功能效果(在下文中称作“功能保持”),但是具有不一样的、更加复杂的网络结构。对这样的子代进行进一步的训练,以得到使得该子代的网络结构的适应度更好的训练参数。
下面结合附图和具体实施方式对本发明作详细说明。
<实施例>
图2示出了根据本发明的一个实施例,通过对简单的神经网络结构执行交叉操作以生成复杂神经网络的方法,包括:
步骤1.从已有的神经网络结构的种群中选择具有高适应度的两个作为父代个体,所述两个父代个体之间具有以卷积层为单位的异构结构。
在本发明中,适应度的衡量标准可以根据具体应用的需求进行设置,一般情况下可以将适应度设置为:分类的准确率、或者网络参数的数量、又或者是输出结果所耗费的时长等。
对于父代个体的选择标准为,选取具有较高适应度的神经网络结构,即种群中的优秀个体,选取优秀个体作为父代个体更有利于获得具有高适应度的子代个体。所选取的两个父代个体之间具有异构结构,较高程度的异构可以使得在对该两个父代个体执行交叉的过程中的探索空间更大,从而形成更丰富的子代结构。
本发明以卷积层为单位来评价两个神经网络结构彼此是否构成异构。根据本发明的一个实施例,对于两个神经网络结构所具有的卷积层数量不相同、或者同一卷积层中具有不同数量的滤波器的情况,都可以判断为该两个神经网络结构彼此构成异构。对于两个神经网络结构的同一卷积层中具有相同数量的滤波器且滤波器的连接方式不同的情况,则不认为这两个神经网络结构彼此构成异构。
本发明评价两个神经网络结构彼此是否构成异构的标准与现有的NEAT算法的区别在于,本发明以一个卷积层作为区分是否为异构的最小单位,而NEAT算法以一个滤波器作为区分是否为异构的最小单位。
步骤2.将一个卷积层作为最小的操作单位,对所述两个父代个体执行交叉操作以得到子代个体。对通过所述交叉操作得到的子代个体的至少部分参数进行修改,使得所述子代个体能够执行与其中一个父代个体一致的等效计算。
根据本发明的一个实施例,可以采用任意一种现有的交叉方式对所述两个父代个体执行交叉操作,在执行交叉操作时将父代个体中的每个卷积层作为一个整体进行交叉,而非以父代个体中的滤波器为单位执行交叉。
在步骤2中,通过修改子代个体的参数,可以进一步确保所得到的子代个体相较于父代而言是“功能保持”的,即能够获得与父代一致的输出、与父代一致的准确率。
根据本发明的一个实施例,在执行步骤2时随机地从以下四种方式中选择一种进行交叉,包括:
方式一:对所述两个父代个体的异构结构执行Add操作(对应输出位相加)以得到子代个体的神经网络结构。并且,针对所获得的子代个体,保持该子代个体中与一个所述父代个体的异构部分对应的训练参数不变,并且将该子代个体中与另一个所述父代个体的相应异构部分对应的训练参数设置为0。
Add操作是用于卷积网络融合特征的一种操作方法,可以有效地提升网络的处理特征的能力。所述Add操作指的是:假设两个父代个体的异构结构原本的输出通道分别为X1,X2,…,Xc和Y1,Y2,…,Yc,则对这两个异构结构执行Add操作所获得的输出通道为:
例如,假设两个父代个体的异构结构的输出卷积层均具有4个滤波器,其中第一个父代个体的异构结构的每个滤波器分别的输出为(1,2,3,5),第二个父代个体的异构结构的每个滤波器分别的输出为(3,2,3,4),则对这两个异构结构执行Add操作所获得的四个输出应当分别为(4,4,6,9)。能够符合上述标准的连接结构都属于通过Add操作可得到的子代个体。
图3示出了以方式一对父代Parent A和Parent B执行Add操作的示例。参考图3,可以看到Parent A的Block 2和Parent B的Block 4构成异构,通过Add操作可得到两种子代个体,分别表示为Offspring 1和Offspring 2。其中,Offspring 1是将两个父代个体共同的Block 1部分的输出分别作为Block 2和Block 4的输入并对这两个部分的输出求和,求和的结果作为两个父代个体共同的Block 3部分的输入。对Offspring 2而言,则是将Block1的输出作为Block 4的输入,将Block 4的输出与Block 1的输出进行相加后作为Block 2的输入,并将Block 2的输出连接到Block 3的输入。上述Offspring 1和Offspring2都属于通过对Block 2和Block 4执行Add操作所得到的子代个体。
参考图3,对Offspring 1,在将Block 2的参数置0并且保留Block 4的参数的情况下,Offspring 1的实际输出等价于父代Parent A,因而可以输出与父代Parent A一致的结果,通过这样的方式可以实现“功能保持”。类似地,对Offspring 2,若是将Block 4的参数置0并且保留Block 2的参数,则Offspring 2的实际输出等价于父代Parent A,实现了“功能保持”。
本领域的技术人员可以理解,上述对子代个体的参数进行修改的方式仅为本发明的其中一种实现方式,只要对子代个体的参数的修改满足使得所述子代个体能够执行与其中一个父代个体一致的等效计算即可。
方式二:对所述两个父代个体的异构结构执行Concatenate(使输出位接连)操作以得到子代个体的神经网络结构。并且,针对所获得的子代个体,保持该子代个体中与一个所述父代个体的异构部分对应的训练参数不变,并且将该子代个体中与另一个所述父代个体的相应异构部分对应的训练参数设置为0。
Concatenate操作也属于一种用于卷积网络融合特征的操作方法,其与Add操作相区别之处在于,不是对数值执行加法计算而是之间将两个异构结构的输出数据相连。假设两个父代个体的异构结构原本的输出通道分别为X1,X2,…,Xc和Y1,Y2,…,Yc,则对这两个异构结构执行Concatenate操作所获得的输出通道为:
Figure BDA0002226114180000081
例如,假设两个父代个体的异构结构的输出卷积层均具有4个滤波器,其中第一个父代个体的异构结构的每个滤波器分别的输出为(1,2,3,5),第二个父代个体的异构结构的每个滤波器分别的输出为(3,2,3,4),则对这两个异构结构执行Concatenate操作所获得的输出为(1,2,3,5,3,2,3,4)。
图4示出了以方式二对父代Parent A和Parent B执行Concatenate操作的示例。如图4所示,Concatenate操作是将两个父代个体共同的Block 1部分的输出分别作为Block 2和Block 4的输入,再将Block 2和Block 4的输出结果(以类似队列的方式)连接在一起并提供给两个父代个体共同的Block 3部分。
与方式一中类似地,将图4中Offspring中Block 2或Block 4的参数置0,则可以得到能实现Parent B或Parent A的等效计算,从而进一步确保“功能保持”。
方式三:确定所述两个父代个体的同源祖先个体、以及所述两个父代个体相较于所述同源祖先个体所分别经历的各种突变;以随机的方式保留所述突变,并对所述同源祖先个体执行所保留的突变以获得子代个体。并且,针对所获得的子代个体,将该子代个体中在所述同源祖先个体以及所述两个父代个体中均不存在的卷积层部分的训练参数设置为0,保持该子代个体中与所述两个父代个体中任意一个或者所述同源祖先个体完全一致的卷积层部分的训练参数不变。此外,在方式三中,还可以将该子代个体中在所述同源祖先个体中不存在而在所述两个父代个体中的至少一个中存在的卷积层部分的训练参数以随机的方式设置为0或1。
图5示出了以方式三生成子代个体的方式。在图5中选取了两个父代个体Parent 1和Parent 2,通过分别追溯Parent 1和Parent 2的突变历史可以看到它们共同经历了突变b(从块2突变为块3和4)和突变c(从块4突变为块4和5)。在突变的记录中,这两次突变历史分别被表示为
Figure BDA0002226114180000082
Figure BDA0002226114180000083
通过确定Parent 1和Parent 2所共同经历的突变,可以确定它们的同源祖先Ancestor。
在本发明中可以采用以下方式来确定两个父代个体的同源祖先个体。在每次通过演化出新的网络结构时,对记录进行编号。根据历史编号的顺序,找到两个父代个体的同源祖先。例如,假设Parent 1的编号记录为t1→t4→t7→t8,Parent 2的编号记录为t1→t4→t6→t9,通过比对它们的编号记录可以确定这两个父代个体最晚产生的同源祖先为t4。
在确定了Parent 1和Parent 2的同源祖先Ancestor后,找出Parent 1和Parent 2相较于该同源祖先Ancestor所经历的各种突变。在图5中,Parent1相较于Ancestor经历了突变a和d,Parent 2相较于Ancestor经历了突变e。随机地从突变a、d、e中选取被保留的突变,并将保留的突变应用于Ancestor上以得到子代Offspring。以图5为例,假设随机保留了突变a和e,则对Ancestor的块3执行突变a并且对块3执行突变e,以获得图中的子代Offspring的网络结构。
在方式三中,其同样可以对所获得的子代的参数进行修改,以实现“功能保留”。参考图5,为了使得子代获得尽可能与父代个体(或两个父代个体的同源祖先)一致的等效计算,将该子代个体中在所述同源祖先个体以及所述两个父代个体中均不存在的卷积层部分的训练参数设置为0(在图5中对应的块被涂白)。而对于由诸如突变
Figure BDA0002226114180000091
所产生的、在同源祖先个体中不存在而在父代个体中存在的卷积层部分的训练参数以随机的方式设置为0或1(在图5中对应的块以斜线填涂)。将这部分的参数随机设置为0或1的原因在于,受影响的新增部分的参数无法确定,在执行进一步训练之前随机选取0或1来保持网络的功能。
方式四:与方式三相类似,区别在于在确定同源祖先个体后不采用随机方式保留父代个体相较于该同源祖先所经历的突变,而是根据所述各种突变出现的次数,保留出现次数多的突变,并对所述同源祖先个体执行所保留的突变以获得子代个体。在确定子代个体后,以与方式三相同的方式对子代个体的参数进行调整。
方式四以上述方式来保留突变的原因在于,两个父代个体具有较高的适应度,因而可以假定这两个父代个体所经历的突变是更合理的突变。在这两个父代个体的突变记录中出现的次数越多则以越高的概率保留相应的突变,以使得所获得的子代个体以更高的概率朝向高适应度方向演化。
例如,假设对历史突变进行统计后发现,突变a出现了3次,突变b出现了2次,突变c出现了1次,并且两个父代个体相较于它们的同源祖先仅出现了a、b和c这三类突变。则在方式四中,可以以3/6的概率保留突变a、以2/6的概率保留突变b、以1/6的概率保留突变c。
在上述方式一至方式四中给出了对所获得的子代个体的参数进行调整的方式。然而,本领域技术人员可以理解,由于将一个卷积层作为最小的操作单位执行交叉操作已经能够在一定程度上避免破坏父代已训练的参数信息,因而在本发明的一些实施例中,也可以不对每个子代个体的参数均进行上述修改。
步骤3.基于所述子代个体当前的参数进行继续训练,将训练后的子代个体增加到所述神经网络结构的种群中,并继续执行前述步骤直到产生了足够复杂的神经网络结构。
在前文中已经陈述了通过步骤1和2可以获得功能保持、且更加复杂的神经网络结构,即即便不再继续进行训练也能够具有与父代相同或非常接近的适应度。若是继续训练,一方面可以使得通过步骤1和2产生的子代个体的适应度继续上升,另一方面还可以将通过步骤3继续训练的神经网络结构加入到种群中并重复前述步骤,以通过多个轮次逐渐地产生越来越复杂神经网络结构。
在本发明的一个实施例中,可以在通过步骤1和2产生了子代个体后,继续对该子代个体执行步骤1和2,重复n次,随后再执行步骤3,将产生的子代个体加入种群。优选地,将n设置为较小的数值,例如1或2。这样做的原因在于,若是不对子代个体进行训练便重复演化过程,则无法保证演化一定朝着适应度更好的方向发展。发明人通过实验发现,进行较少此时的演化后再进行训练,可以在减少所执行训练次数的同时避免演化朝着适应度更差的方向发展。
<测试结果>
为了确定本发明方法的效果,发明人进行了测试实验。测试采用了GPU:Titan Xp12G显存、CPU:7代i7、内存:40G、数据集:CIFAR-10开源数据集。
在方法耗时方面的结果显示,采用背景技术中所介绍的传统方法搜索出一个优秀结构大约需要4~1800GPU-days,而采用本发明的方法进行搜索,仅需要0.65GPU-days就可以搜索出一个优秀结构。这里的“GPU-days”表示一个GPU运行一天。
在子代个体能否达到种群内较高适应度方面,发明人进行了测试,由适应度最高的两个父代进行突变或交叉后的对比结果如下。采用本发明的方式对两个父代进行突变操作(方式三和四),未经继续训练的情况下,有23.33%的子代在种群中是准确率最高的,有65.83%的子代在种群中的准确率排在前5名。采用本发明的方式对两个父代进行交叉操作(方式一和二),未经继续训练的情况下,有32.73%的子代在种群中是准确率最高的,有76.36%的子代在种群中的准确率排在前5名。
在对所获得子代进行继续训练后准确率是否能够继续上升方面,发明人进行多次测试,发现通过本发明的方法,新产生的网络的准确率会继续上升。其中两次测试结果如下:将准确率为92.27%和准确率为92.42%的网络交叉后,再训练到收敛,准确率达到92.94%。将准确率为94.3%和准确率为93.73%的网络交叉后,在训练到收敛,准确率达到94.85%。发明人分析,产生上述结果的原因在于,本发明的交叉操作具有启发式的特性,这使得对新产生的网络进行再训练,准确率会继续上升。
通过上述测试结果可以看出,采用本发明的方法可以降低甚至避免对神经网络结构的准确率造成损失,使得训练所需的耗时显著降低。并且,采用本发明的方式对父代个体进行突变或交叉后所得到的绝大多数子代个体的准确率在整个种群中排在前5名,这表示通过本发明产生的子代个体实现了“对父代的功能保持”。此外,测试结果还显示,对通过本发明产生的子代个体进行继续训练,准确率还可以继续上升。
需要说明的是,上述实施例中介绍的各个步骤并非都是必须的,本领域技术人员可以根据实际需要进行适当的取舍、替换、修改等。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管上文参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (10)

1.一种基于交叉生成复杂神经网络的方法,包括:
1)从已有的神经网络结构的种群中选择具有高适应度的两个作为父代个体,其中,所述两个父代个体之间具有以卷积层为单位的异构结构;
2)将一个卷积层作为最小的操作单位,对所述两个父代个体执行交叉操作以得到子代个体。
2.根据权利要求1所述的方法,其中步骤2)还包括:
对通过所述交叉操作得到的子代个体的至少部分参数进行修改,使得所述子代个体能够执行与其中一个父代个体一致的等效计算。
3.根据权利要求2所述的方法,其中采用以下任意一种方式执行所述交叉操作并设置所得到子代个体的参数:
方式一:对所述两个父代个体的异构结构执行Add操作以得到子代个体的神经网络结构;其中,针对所获得的子代个体,保持该子代个体中与一个所述父代个体的异构部分对应的训练参数不变,并且将该子代个体中与另一个所述父代个体的相应异构部分对应的训练参数设置为0;
方式二:对所述两个父代个体的异构结构执行Concatenate操作以得到子代个体的神经网络结构;其中,针对所获得的子代个体,保持该子代个体中与一个所述父代个体的异构部分对应的训练参数不变,并且将该子代个体中与另一个所述父代个体的相应异构部分对应的训练参数设置为0;
方式三:确定所述两个父代个体的同源祖先个体、以及所述两个父代个体相较于所述同源祖先个体所分别经历的各种突变;以随机的方式保留所述突变,并对所述同源祖先个体执行所保留的突变以获得子代个体;其中,针对所获得的子代个体,将该子代个体中在所述同源祖先个体以及所述两个父代个体中均不存在的卷积层部分的训练参数设置为0,保持该子代个体中与所述两个父代个体中任意一个或者所述同源祖先个体完全一致的卷积层部分的训练参数不变;
方式四:确定所述两个父代个体的同源祖先个体、以及所述两个父代个体相较于所述同源祖先个体所分别经历的各种突变;根据所述各种突变出现的次数,保留出现次数多的突变,并对所述同源祖先个体执行所保留的突变以获得子代个体;其中,针对所获得的子代个体,将该子代个体中在所述同源祖先个体以及所述两个父代个体中均不存在的卷积层部分的训练参数设置为0,保持该子代个体中与所述两个父代个体中任意一个或者所述同源祖先个体完全一致的卷积层部分的训练参数不变。
4.根据权利要求3所述的方法,其中所述方式四设置所得到子代个体的参数,还包括:将该子代个体中在所述同源祖先个体中不存在而在所述两个父代个体中的至少一个中存在的卷积层部分的训练参数以随机的方式设置为0或1。
5.根据权利要求1-4中任意一项所述的方法,其中包括:
3)基于所述子代个体当前的参数进行继续训练;
4)将训练后的子代个体增加到所述神经网络结构的种群中,并重复执行步骤1)和步骤2)。
6.根据权利要求5所述的方法,其中在每次执行所述步骤2)时,随机地从所述方式一至所述方式四中选择一种。
7.根据权利要求5所述的方法,其中包括:
在对通过所述步骤1)和步骤2)得到的子代个体执行n次交叉操作后,对最后获得的子代个体的参数进行继续训练并将训练后的该子代个体增加到所述神经网络结构的种群中;其中,n小于设定的阈值。
8.根据权利要求1-4中任意一项所述的方法,其中所述高适应度指的是高的准确率、或者高的网络参数数量、或者低的输出耗时。
9.一种计算机可读存储介质,其中存储有计算机程序,所述计算机程序在被执行时用于实现如权利要求1-8中任意一项所述的方法。
10.一种用于基于交叉生成复杂神经网络的系统,包括:
处理器、和存储装置,
其中,所述存储装置用于存储计算机程序,所述计算机程序在被所述处理器执行时用于实现如权利要求1-8中任意一项所述的方法。
CN201910952242.3A 2019-09-05 2019-10-09 一种基于交叉生成复杂神经网络的方法及系统 Pending CN110782006A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2019108350627 2019-09-05
CN201910835062 2019-09-05

Publications (1)

Publication Number Publication Date
CN110782006A true CN110782006A (zh) 2020-02-11

Family

ID=69385392

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910952242.3A Pending CN110782006A (zh) 2019-09-05 2019-10-09 一种基于交叉生成复杂神经网络的方法及系统

Country Status (1)

Country Link
CN (1) CN110782006A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112560985A (zh) * 2020-12-25 2021-03-26 北京百度网讯科技有限公司 神经网络的搜索方法、装置及电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112560985A (zh) * 2020-12-25 2021-03-26 北京百度网讯科技有限公司 神经网络的搜索方法、装置及电子设备
CN112560985B (zh) * 2020-12-25 2024-01-12 北京百度网讯科技有限公司 神经网络的搜索方法、装置及电子设备

Similar Documents

Publication Publication Date Title
Wang et al. Streaming graph neural networks via continual learning
Ruta et al. A theoretical analysis of the limits of majority voting errors for multiple classifier systems
Leng et al. Design for self-organizing fuzzy neural networks based on genetic algorithms
CN110704636B (zh) 一种改进的基于Node2vec的知识图谱向量表示方法
CN109951392B (zh) 一种基于深度学习的中大型网络智能路由选择方法
CN109344969B (zh) 神经网络系统及其训练方法以及计算机可读介质
US11461656B2 (en) Genetic programming for partial layers of a deep learning model
CN110782006A (zh) 一种基于交叉生成复杂神经网络的方法及系统
CN113360670B (zh) 一种基于事实上下文的知识图谱补全方法及系统
Chen et al. A new multiobjective evolutionary algorithm for community detection in dynamic complex networks
Syberfeldt et al. A parallel surrogate-assisted multi-objective evolutionary algorithm for computationally expensive optimization problems
KR102460485B1 (ko) 정책 벡터 기반 인공신경망 탐색 장치 및 방법
Lin et al. A new density-based scheme for clustering based on genetic algorithm
Jabbar et al. Balancing exploration and exploitation in acs algorithms for data clustering
Siwik et al. Elitist evolutionary multi-agent system in solving noisy multi-objective optimization problems
Bokhari et al. A genetic programming-based multi-objective optimization approach to data replication strategies for distributed systems
US7139986B2 (en) Systems and methods for determining costs associated with a selected objective
Maeda et al. Identifying Cellular Automata Rules.
CN114707578A (zh) 特征选择方法、特征选择装置、存储介质和设备
Geetha et al. An observational analysis of genetic operators
Jung et al. A descriptive encoding language for evolving modular neural networks
Meyer On the convergence behaviour of ant colony search
CN116187446B (zh) 基于自适应注意力机制的知识图谱补全方法、装置和设备
Gustafson et al. The tree-string problem: an artificial domain for structure and content search
Bokhari et al. Use of Genetic Programming Operators in Data Replication and Fault Tolerance

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200211