没有合适的资源?快使用搜索试试~ 我知道了~
≥ ≥≥软件X 14(2021)100694原始软件出版物Fast-DENSER:快速深度进化网络结构化表示Filipe AssunçãoBálé,Nuno Lourenço,Bernardete Ribeiro,Penousal Machado葡萄牙科英布拉大学信息工程系科英布拉大学信息学和系统中心ar t i cl e i nf o文章历史记录:接收28可以2019收到修订版2020年9月30日接受2021年保留字:人工神经网络自动化机器学习NeuroEvolutiona b st ra ct本文介绍了一种基于语法的通用框架,用于自动搜索和部署潜在的深度人工神经网络(DANN)。该方法被称为快速深度进化网络结构化表示(Fast-DENSER),并且能够同时优化拓扑、学习策略和任何其他所需的超参数(例如,数据预处理或增强)。Fast-DENSER已成功应用于许多对象识别任务,生成卷积神经网络(CNN)。代码在Python 3中开发和测试,并作为库提供。描述了一个简单且易于遵循的示例,用于Fashion-MNIST基准的CNN自动搜索版权所有©2021作者。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前代码版本v2.1.0用于此代码版本的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX_2019_192法律代码许可证Apache许可证,2.0使用git的代码版本控制系统使用Python 3.7的软件代码语言、工具和服务编译要求、操作环境依赖性CUDA 10、CuDNN 7、tensorflow 2.0(支持GPU)、keras、scipy、sklearn,jsmin,Pillow如果可用,链接到开发人员文档/手册https://github.com/fillassuncao/fast-denser3问题支持电子邮件fga@dei.uc.pt1. 动机和意义使用人工神经网络(ANN)的正常方法涉及循环手动试错过程,其中用户优化:(i)网络的拓扑结构,即,每一层的类型、位置和超参数;以及(ii)学习算法及其超参数。问题是拓扑结构和学习策略不是相互独立的。此外,当我们需要DANN时,可优化的超参数的数量可以很容易地达到数千甚至数百万。为 了 克 服 部 署 DANN 的 困 难 , 我 们 可 以 求 助 于 神 经 进 化(NE):一组将进化计算(EC)应用于ANN自动优化的方法。*通讯作者。电子邮件地址:fga@dei.uc.pt(Filipe Assunção),naml@dei.uc.pt(Nuno Lourenço),bribeiro@dei.uc.pt(Bernardete Ribeiro),machado@dei.uc.pt(Penousal Machado).https://doi.org/10.1016/j.softx.2021.100694本文重点介绍了一种称为Fast-DENSER [1,2]的NE方法:深度进化网络结构化表示(DENSER)[3]的变体。Fast-DENSER相对于其他NE方法的主要优点是,它不仅可以生成高性能网络,而且在一小部分时间内就可以生成,并且使用的计算资源明显更与标准DENSER实施相比,Fast-DENSER报告了20倍的加速,而不会影响所找到的解决方案的性能。此外,Fast-DENSER易于非专业用户使用:所有参数和设置都以人类可读的文本格式定义。该软件灵活且易于扩展,使用户可以定义新的层和/或操作符。本文描述的工具已成功应用于自动搜索用于对象识别任务的CNN [1,2],其中它生成的网络超过或与其他自动方法的性能竞争实验2352-7110/©2021作者。 由Elsevier B.V.出版。这是一篇开放获取的文章,使用CC BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softxFilipe Assunção,Nuno Lourenço,Bernardete Ribeiro等人软件X 14(2021)1006942=∈∪|::=∈还在物理学领域的一个问题中进行了研究,目的是区分伽马辐射和质子辐射的地面撞击模式[4]。生成的网络超过了以前的经典统计方法的性能的2倍2. 软件描述本节描述Fast-DENSER框架的体系结构。这个库的主要目标和功能的示例在第3节中描述了该框架在搜索用于分类问题的DANN方面的应用。该框架是基于EC,因此,一组个体(种群)是在一个定义的世代数。个体对DANN进行编码,需要映射到可解释的模型中以评估其质量(适应度)。为了促进从一代到下一代的进化,对大众来说。特别是,在快速增密中,进化引擎是一个(1+λ)-进化策略(ES):下一代由最佳个体(精英)及其λ突变形成。有关进化搜索过程的深入描述,请参阅[1]。为了将个体映射到可解释的模型,[15]《易经》中的“五行”。该框架需要定义两个主要输入:(i)建立进化单元的启用序列的网络结构;以及(ii)定义搜索空间的语法,即,层和参数。这两个组成部分将在接下来的小节中进一步详细介绍。在框架 GitHub 页 面 中 列 举 了 其 他 参 数 , 可 以 在https://github.com/fillassuncao/fast-denser3上找到。图图1显示了进化周期和输入之间的相互作用,以及从个体到可训练的DANN的映射,以进行质量评估。该框架的输出是一个经过充分训练的DANN,为所考虑的问题量身定制。该网络作为Keras/Tensorflow模型提供,但也有一个文件指定了结构和所有网络参数(包括权重),以便用户稍后可以在他/她选择的任何其他框架中部署模型。中间文件也在各代中生成。特别是,每一代都有一个文件;该文件以及其他属性报告了表型(即,实际网络)、适应度值、可训练参数的数量以及群体中每个个体的训练时间2.1. 网络结构网络结构分为3个部分:(i)隐藏层;(ii)输出;和(iii)宏块。第一部分(隐藏层)设置框架可以用于构建DANN的进化单元的序列,并且由用户定义为进化单元的有序列表,其中每个位置存储语法非终结符符号以及该类型的进化单元的最小和输出设置应用于形成输出层的规则最后,宏块考虑网络的整体设置,例如要使用的学习策略或数据预处理或增强策略。网络结构和语法一起定义 了搜索空间。 隐藏层、 输出和宏 块的示例分别是[(features,1,10),(classification,1,10)]; softmax;和[learning]。非终结符需要到语法的一对一映射(下面讨论)。也就是说,所形成的网络可以具有1至10个特征相关层,以及1至10个分类相关层,之后是softmax层。学习策略也在2.2. 语法在Fast-DENSER中,域通过对每个进化单元的超参数进行编码的巴科斯-诺尔形式(BNF)语法来定义语法可以被正式定义为由一个4元组:G(N,T,P,S),其中(i)N是非终端符号;(ii)T是终端符号的集合;(iii)P是形式为x y,x N的产生式规则的集合和yNT;和(iv)S是初始符号。的表示非终结符的扩展的不同可能性图2中示出了语法的部分示例;完整的 语 法 可 以 在 https://github.com/fillassuncao/fast-denser3/blob/master/example/cnn.grammar中找到。从示例中可以看出,对于非终结符的特征的扩展,卷积和池化层被重复两次。之所以做出这样的选择,是因为所有的扩展可能性都具有相同的被选择概率。但是,我们希望将决策偏向于卷积层和池化层。网络结构的非终端被用作网络结构编码的起始符号。超参数可以是整数、浮点数或闭选择。整数和浮点数使用块[param- eter_name,type,num_values,min_value,max_value]进行参数化(例如,第4行中的num_filters);使用语法扩展来参数化闭合选择参数(例如,第7行中的填充)。编码层的进化单元必须以layer:layer_type(例如,第12行中的layer:fc);编码学习策略的进化单元必须开始于learning:learning_algori_thm(例如,学习:第16行中的梯度下降)。目前,我们支持以下层:卷积(conv),最大池(max-pool),平均池(avg-pool),全连接(fc),dro-pout(drop)和批量归一化(batch-norm);以及以下学习算法:梯度下降,rmsprop和adam。然而,为了扩展框架以处理其他层类型和/或学习算法,用户 只 需 要 添 加utils.py 文 件 /assemble_network 和 / 或assemble_optimiser函数中的映射代码。扩展到新层的示例显示在GitHub页面中3. 说明性示例为了说明框架的功能,我们将介绍Fashion-MNIST [7]的CNN的演变:由10个独立类的灰度时尚项目组成的为了促进Fashion-MNIST数据集的CNN的进化,我们使用图1的语法。 2、外层结构[(features,1,30),(classification,1,10)],用softmax编码输出。学习策略也得到了发展(学习语法的产生式规则)。要初始化我们执行的搜索:Python−mfast_denser . 发动机−d 时尚专家−cconfig . JSON −g CNN . 语法其中-d、-c和-g分别设置数据集以及配置和语法文件的路径。网络结构是配置文件的参数之一。还有另一个可选的输入参数-r,它设置我们想要执行的运行(默认值为0)。Docker镜像文件可以在https://hub.docker.com/r/fillassuncao/f-denser网站。默认情况下,包含每代统计数据的中间进化文件存储在名为experiments的文件夹中(在experiments. json文件中设置),其中每个运行都有一个子文件夹。每个文件保存关于个体的唯一标识符、表型、适应值、度量(例如,训练和验证损失和准确度)、可训练参数的数量、执行的训练时期的数量、允许的最大训练Filipe Assunção,Nuno Lourenço,Bernardete Ribeiro等人软件X 14(2021)1006943Fig. 1. 框架的架构。图二、用于编码CNN 的语法示例 。时间和执行的训练时间;文件格式为JSON。到目前为止找到的最佳个体存储在best.h5文件– a model that can be loaded to Keras using the following code(also in从Keras。models import load_model model =load_model(' best . h5其加载最佳生成的模型的拓扑和权重。可以使用predict方法标记新实例,即:进口 numpy as NP标号置信度=模型 predict(instance)l a bel =np . argmax(label_confidences)4. 影响Fast-DENSER是一个促进自动生成DANN的框架,从而避免了用户必须手动优化可以解决特定问题的网络的负担。因此,它使非专家用户能够在他们的领域中考虑人工神经网络,并帮助专家用户调整他们的网络并获得他们通常不会想到的解决方案。该框架易于用途:所有参数都以人类可读的格式定义,输出是一个完全训练的DANN,可以立即部署进化。与大多数其他NE框架相比,这是一个优势;它们倾向于在有限的时间内评估候选解决方案,因此在进化搜索结束时需要进一步训练。这对非专业用户来说是一个障碍此外,根据Baldominos等人[8]的说法,Fast-DENSER使用了一种有趣的表示方案,并被归类为一种结算方法,即,一个稳定的工作,已被证明可以有效地发展DANN。尽管只考虑了一组层和学习算法,该框架可以很容易地扩展。 核心保持不变,独立于所考虑的进化单位。用户只需要添加代码来映射语法和Keras模型,这是一个简单的解析例程,类似于映射到代码中已有的映射。关于如何GitHub的自述文件中提供了扩展可用层和评估指标的方法该框架已经过广泛的测试和调试,并导致了许多对象识别基准的深度网络的生成[1,3]。此外,在物理学领域,它有助于找到模型,将基于地面撞击的伽马/强子探测提高2倍[4]。在[3]中,我们证明了我们的方法与其他方法具有竞争力。Filipe Assunção,Nuno Lourenço,Bernardete Ribeiro等人软件X 14(2021)1006944自动(进化和非进化)最先进的方法,在某些情况下甚至超过了最先进的方法生成的最佳网络还与手工设计的网络进行了比较,再次显示了自动化的优势。5. 结论本文介绍了Fast-DENSER框架:一个通用的工具,用于自动生成不同结构的DANN为了使该方法适应不同的域和网络拓扑结构,用户只需要改变网络结构和语法-设置搜索空间的两个给出了Fashion-MNIST数据集CNN演化的一个说明性示例未来的工作将考虑扩展框架,以解决增量和多任务学习,即,我们的目标是帮助用户累积学习解决新任务,但不会忘记如何解决先前的任务。我们还将整合云计算平台(例如,MicrosoftAzure或Amazon AWS),以使那些无法访问图形处理单元(GPU)的用户能够在云服务上执行训练扩展到增量学习的第一个实验表明,可以在不影响最终性能的情况下加速搜索过程[9]。竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作确认这项工作是由国家基金通过FCT-科学和技术基金会,I. P.,在CISUC - UID/CEC/ 00326/2020 项 目 范 围 内 , 批 准 号 :SFRH/BD/114865/2016,以及欧洲社会基金通过2020年区域行动计划中心引用[1]Assunção F,Lourenço N,Machado P,Ribeiro B. Fast Denser:高效的深层神经进化。在:欧洲遗传规划会议。Springer;2019,p. 197-212[2]Assunção F,Lourenço N,Machado P,Ribeiro B. Fast-DENSER++:进化经过充分训练的深度人工神经网络。2019年,arXiv预印本arXiv:1905.02969。[3]Assunção F,Lourenço N,Machado P,Ribeiro B. DENSER:Deep evolu-tionary network structured representation。Genet Program Evolvable Mach2019;20(1):5-35. http://dx.doi.org/10.1007/s10710-018-9339-y网站。[4]Assunção F,Correia J,Conceição R,Pimenta MJM,Tomé B,LourençoN,Machado P.用于伽马射线检测的人工神经网络的自动设计。IEEE Access2019;7:110531-40. http://dx.doi.org/10.1109/ACCESS的网站。2019.2933947。[5]Chollet F,et al. Keras. 2015年,https://keras.io。[6]Abadi M,et al. TensorFlow:异构系统上的大规模机器学习。2015年。[7]Xiao H,Rasul K,VollR. Fashion-MNIST:一种用于基准机器学习算法的新型图像数据集。[2017]arXiv:cs.LG/1708.07747。[8]Baldominos A,Saez Y,Isasi P.在神经网络的自动化,进化设计:过去,现在和未来。神经计算应用2019;1[9]Assunção F,Lourenço N,Ribeiro B,Machado P.深度人工神经网络的增量进化和发展。In:Hu T,Lourenço N,Med-vet E,Diplomat F,editors.基因编程。Cham:Springer InternationalPublishing; 2020,p. 35比51
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++多态实现机制详解:虚函数与早期绑定
- Java多线程与异常处理详解
- 校园导游系统:无向图实现最短路径探索
- SQL2005彻底删除指南:避免重装失败
- GTD时间管理法:提升效率与组织生活的关键
- Python进制转换全攻略:从10进制到16进制
- 商丘物流业区位优势探究:发展战略与机遇
- C语言实训:简单计算器程序设计
- Oracle SQL命令大全:用户管理、权限操作与查询
- Struts2配置详解与示例
- C#编程规范与最佳实践
- C语言面试常见问题解析
- 超声波测距技术详解:电路与程序设计
- 反激开关电源设计:UC3844与TL431优化稳压
- Cisco路由器配置全攻略
- SQLServer 2005 CTE递归教程:创建员工层级结构
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功