选自CISUC
参与:程、李泽南
在为特定任务构建神经网络算法时,需要大量的设计和人工调整才能达到最佳性能。葡萄牙科英布拉大学计算设计与可视化实验室的研究人员利用进化算法的策略提出了深度进化网络结构表示,可以自动设计多层深度神经网络的结构并优化其参数。在没有先验知识的情况下,用这种方法生成的神经网络取得了业界最佳的性能。
论文:密集:深度进化网络结构化表示
论文链接:https://arxiv.org/abs/1801.01563
深度进化网络结构表征是一种通过进化计算自动设计人工神经网络的新方法。该算法不仅搜索最优网络拓扑,而且优化超参数。自动设计通过两个不同的编码级别来实现,其中外层编码网络的一般结构,内层编码与每一层相关的参数。允许的层数和超参数值的范围由人类可读的上下文无关语法定义。
这项工作的主要贡献是:
DENSER,一种基于进化原理的通用框架,可自动搜索具有不同层次类型和/或目标的大型深度网络的适当结构和参数设置;一个自动生成的 CNN,在没有任何先验知识的情况下,对 CIFAR-10 数据集的分类是有效的,其平均准确度为 94.27%;证明了由 DENSER 进化的 ANN 概括性很好。具体来说,CIFAR-100 数据集的 78.75% 的平均精度是由一个拓扑结构专门为 CIFAR-100 数据集而进化的网络实现的。据我们所知,这是通过自动设计 CNN 的方法对 CIFAR-100 数据集报告的最好结果。最好的培训模式可以在https://github.com/fillassuncao/denser-models.找到
新方法:密集
为了促进人工神经网络结构和参数的进化,我们提出了更密集的:深度进化网络结构表示。DENSER结合了遗传算法和动态结构语法进化的基本思想。
表示方法
每个解通过有序的前馈层序列及其各自的参数对人工神经网络进行编码;学习和任何其他超参数也可以对每个个体进行编码。候选解决方案的表示在两个不同的级别进行:
GA 层:对网络的宏观结构进行编码,并负责表示随后用作语法开始符号的指示符的层序列。它要求对网络允许的结构进行定义,例如层的有效序列。DSGE 层:对与层相关的参数进行编码。参数及其允许的值或范围必须在由用户定义的语法中编码。跨过
研究人员提出了两种基于不同基因型水平的交叉算子。在目前的工作背景下,一个模块并不代表一组可以多次复制的层,而是属于同一个GA结构索引的一组层。
考虑到所有个体都有相同的模块,第一个交叉算子是单点交叉,改变同一模块中两个个体之间的层。
第二种交叉算子是统一交叉,改变两个个体之间的所有模块。
变化
我们开发了一套变化算子来促进人工神经网络的发展。在遗传算法层面,对网络结构进行了修改:
添加层:新层是根据要放置层的模块的开始符号的可能性生成的;复制层:随机选择一个层并将其复制到模块的另一个有效位置。复制是通过引用进行的,即如果参数在层中被改变,所有的副本都被修改;删除层:选中一个层并将其从给定模块中删除。上述变更操作员仅在网络的一般结构上工作。要更改图层的参数,需要使用以下DSGE进行更改:
语法改变:扩展可能性被另一个替代;整数改变:产生一个新的整数值(在允许的范围内);浮动改变:高斯扰动作用于给定的浮点值。实验结果
为了测试新方法,我们在CNN世代上进行了一个实验,对CIFAR-10基准进行分类。CIFAR-10由60,000个实例组成,每个实例都是32 × 32 RGB彩色图像,属于十个可能的类别之一。从CONDENSED发展而来的解决方案被映射到keras模型,因此我们可以衡量它们的性能。任务的目标是最大化目标识别任务的准确性。
为了分析进化拓扑的广泛性和可扩展性,我们将采用最好的CNN拓扑机制,测试CIFAR-100基准的分类。
美国有线电视新闻网国际地方当局训练中心-10
在CIFAR-10数据集的分类任务上,我们做了10个进化实验来生成CNN。对于生成的网络,我们分析其适应性和隐藏层数。
图1。几代最佳个体的适合度和隐藏层的进化
图1描述了几代最好CNN的平均适应度和层数的演变。对结果的简要研究表明,进化正在发生,解决方案往往集中在80代左右。可以观察到两种不同且矛盾的行为。从进化开始到60代左右,性能的提高伴随着层数的减少;这种现象从60代一直延续到最后一代。在此期间,随着性能的提高,最佳网络的不可见层数增加。这种分析揭示了一个明显的矛盾,这是在第一代随机生成的解中有大量的层,并且它们的参数是随机设置的之后解释的。
图2。2发现的性能最佳的网络拓扑。密集的
图2显示了在进化过程中发现的最合适的网络。进化网络最令人困惑的特征是拓扑末端使用的密集层的重要性和数量。据我们所知,如此大量密集层的顺序使用是前所未有的。可以说,人类永远不会想到这样的拓扑结构,这使得这种进化的结果非常有意义。
一旦进化过程完成,在每个操作中找到的最佳网络将被重新训练五次。首先,我们用进化过程中使用的相同学习率来训练网络,但是是以400个周期来训练。通过这种设置,我们得到的平均分类准确率为88.41%。为了进一步提高网络的准确性,我们采用了Snoek等人描述的策略:我们为测试集的每个实例生成100幅增强图像,预测是100幅增强图像的平均置信度的最大值。经过该验证方法,最佳进化网络测试集的平均准确率提高到89.93%。
为了研究是否有可能提高最佳网络的性能,我们用相同的CGP-CNN策略对它们进行再培训:学习率从0.01变化;第五纪元,增至0.1;到250纪元,降到0.01;最后在375纪元降到0.001。与以前的训练方法相比,最合适网络的平均准确率提高到93.38%。如果在测试集中增强数据,平均准确率为94.13%。平均误差为5.87%。
图3。3的结果。CIFAR-10
图3显示了通过CONDENSED和其他方法获得的最佳结果的比较。对结果的分析表明,密集度是最准确的。在我们的方法中,可训练参数的数量要高得多,因为我们允许在进化CNN中放置完全连接的层。另外,在进化过程中,没有使用先验知识使搜索空偏离。
扩展到CIFAR-100
为了测试进化网络的普适性和可扩展性,我们在CIFAR-10数据集上使用了由DENSER生成的最佳网络,并将其应用到CIFAR-100数据集的分类中。为了使网络在CIFAR-100数据集上工作,我们只将softmax层更改为具有100个输出神经元,而不是10个。
每个网络的训练是随机的;由于数据增强过程,初始条件不同,使用不同的数据集实例对其进行训练。因此,为了进一步改进结果,我们研究了格雷厄姆测试分数最大池性能的方法是否能提高我们网络的性能。简单来说就是用一个集合代替单个网络,集合中的每个网络都是独立网络训练的结果。使用该方法,训练5次的同一个网络集合的测试准确率为77.51%,训练10次的集合的测试准确率为77.89%,训练12次的集合的测试准确率为78.14%。这些结果比CNN在文献中报道的要好,CNN是用相当标准的数据增强方法发展而来的。
此外,我们并不是使用相同的网络结构来构成集合,而是使用DENSER发现的两种最好的网络拓扑来测试构建集合的性能,类似于Real等人的方法,根据这种方法,准确率提高到78.75%。
图4。4的结果。CIFAR-100
图4中的表格显示了由CIFAR-100上的CONDENSED获得的结果与由其他方法获得的结果之间的比较。
原地址:https://cdv.dei.uc.pt/denser/
这篇文章是为机器的核心编写的。请联系本微信官方账号进行授权。
1.《denser 深度 | 利用进化方法自动生成神经网络:深度进化网络DENSER》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《denser 深度 | 利用进化方法自动生成神经网络:深度进化网络DENSER》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/1794162.html