没有合适的资源?快使用搜索试试~ 我知道了~
软件X 11(2020)100448原始软件出版物NeuroFramework:基于神经进化算法的软件包,用于估计离子液体的熔化温度Jorge Alberto Cerecedo-Cordoba,Juan Frausto-SolísJuan,Juan Javier González BarbosaTecnológico Nacional de México/Instituto Tecnológico de Ciudad Madero,Avenida Primero de Mayo,89440,Cuidad Madero,塔毛利帕斯州,墨西哥ar t i cl e i nf o文章历史记录:收到2019年2020年3月2日收到修订版,2020年保留字:离子液体神经网络a b st ra ct在本文中,神经进化框架的训练和测试神经进化算法。该算法通过堆叠运算符以形成算法原型来提供其设计的灵活性。这种方法允许更快的算法设计,其中操作员可以在训练阶段堆叠,甚至可以由动态控制器管理神经网络在没有层的图上表示。该软件采用模块化设计,可以轻松添加新功能。该软件包括一个Python的包装器,用于机器学习任务,特别是回归;但是,用户可以调整此包以进行分类。©2020作者由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前代码版本V6此代码版本使用的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX_2019_288Code Ocean compute capsule法律代码许可证MIT使用git的代码版本控制系统使用Java、Python的软件代码语言、工具和服务编译要求、操作环境依赖性(如有)开发人员文档/手册链接问题支持电子邮件软件元数据当前软件版本V6此版本可执行文件的永久链接https://github.com/joalceco/NeuroFramework法律软件许可证MIT计算平台/操作系统安装要求依赖性如果可用,请链接到用户手册-如果正式发布,请在参考列表中包含对该出版物的参考。*通讯作者。电子邮件地址:juan. gmail.com(J. Frausto-Solís).https://doi.org/10.1016/j.softx.2020.1004481. 动机和意义离子液体(Ionic Liquids,IL)是一种离子化合物,主要用作环境友好溶剂。它们通常用作2352-7110/©2020作者。 由Elsevier B.V.出版。这是一篇开放获取的文章,使用CC BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softx2J.A. Cerecedo-Cordoba,J. Frausto-Solís和J.J. González Barbosa / SoftwareX 11(2020)100448工业上被认为有毒的溶剂的替代品。最近,离子液体已被用于更多的应用,如催化,电化学等[1]。离子液体是可以针对特定应用定制的盐,具有选择的组分。设计IL需要一种快速和可靠的方法来估计其物理化学性质(例如,熔点或密度),通常以预测模型的形式。一些现有技术的熔点估计器是:线性回归[2在其他情况下,极限学习机(ELM)已被用于预测折射率[8]和毒性[9]。然而,由于离子液体的复杂性质的物理化学估计是不够准确的。一般而言,离子液体物理化学性质的计算机模拟预测需要对研究中的分子进行描述。分子描述符通常用预定义的函数计算,这个过程将分子的几何结构转化为数字。对于我们的软件,我们使用PaDEL开源软件[10],尽管描述符的计算可以使用任何类似的软件进行。它已被证明,神经网络是非常有效的工具,用于预测和分类的数值。通常与神经网络的使用相关的复杂性是调整超参数的困难。神经进化是一种显着的技术,其中神经网络是由进化算法训练的,其中不需要建立超参数。遗传算法被广泛用于这些网络的训练本课题组对神经进化的研究非常感兴趣,我们研究了神经进化在离子液体熔点估计中的应用由此,我们设计并编程了自己的神经进化软件,重点是训练算法的灵活性。在所提出的软件中,称为Neu- roFramework,我们建立了一个解决方案,缺乏准确的熔点估计器,其目标是从一组离子液体估计其相应的熔点。在这个软件中,训练的组件可以快速移动,算法的方法可以被删除,交换或堆叠,以制作定制的训练算法。此外,可以交换评估指标,以更改在解决方案的搜索空间中的导航2. 软件描述NeuroFramework是一个灵活的框架,用于训练和测试神经进化训练的神经网络。提出的架构工作在堆栈实现,其中操作链接到另一个形成一个算法。在本节中,我们将描述程序的主要类和一些辅助类。2.1. 软件构架NeuroFramework的体系结构包含一个处理单元,该处理单元具有一个种群、一个控制器、一个评估器和一个出租机。该算法,这是最重要的组件之一,作为一个堆栈,其中不同的运营商顺序运行。堆栈是必要的,因为操作符是模块化的,可以互换。包括堆栈允许更快的pro-totyping的实验,设计和测试新的运营商。主要类别有:Population:population类包含训练过程中使用的所有ANN这些神经网络是估计问题ANN:这是一个用于创建不同类别的ANN的接口,包含用于操作表示神经网络控制器:这是一个控制算法参数的界面,并能够在某些条件下调整它们。它还确定算法是继续执行还是停止。此方法调用日志记录器进行进一步分析评估者:它将性能指标和评分函数应用于群体的所有个体。评价者已经实现了作为平均误差、平均百分比误差和决定系数的度量。此外,它允许批量操作员:这是一个操作员的接口。运算符是应用于总体或子总体的函数。这包括算法:算法决定运算符的执行顺序例如,遗传算法包括选择、交叉、变异和下一代的选择这四个运算符是用Operator接口定义的,并堆叠在从Algorithm接口继承的类处理单元:它是包含软件中包含的所有元素的结构,负责在上层循环执行辅助类:G:这是Neu-roFramework中使用的全局变量的容器,它包括参数和随机数生成器Data:这是处理数据集的类,它可以读取和写入• 日志:检查执行时准备的所有日志所提出的架构如图1所示,包含上面提到的主要类。在神经进化中,直接编码是指解决方案的基因型直接表示表型的编码;也就是说,解决方案在内部数据结构中明确包含拓扑和权重。在NeuroFramework中,我们使用直接编码,其中解决方案(神经网络)由有向图表示。在我们的实现中,构建可行的神经网络必须建立的规则如下:1. 所有的神经元无一例外都有一个id。而且,神经网络应该被限制在一个最大数量可用的神经元。我们在测试中使用了200个神经元作为最大数量的神经元。然而,我们的软件很少达到这个数字。2. 在网络的初始构造中,定义了神经元的初始这些神经元表示输入变量,而每个变量都将创建一个神经元。通常,这些神经元被称为前馈网络中的“输入层”。这些生成的神经元将采用第一个可用的索引,即从零到输入变量的数量。3. 输出神经元由要预测的变量的数量定义;在我们的例子中,我们只需要熔化温度。因此,我们有一个只有一个神经元的输出层尽管如此,我们的软件设计用于同时预测多个属性。输出神经元将采用网络中最后可用的索引4. 最初,将创建一些中间神经元,这些中间神经元将在输入和输出神经元之间建立连接。这些神经元可以采用可用的索引。·········J.A. Cerecedo-Cordoba,J. Frausto-Solís和J.J. González Barbosa / SoftwareX 11(2020)1004483Fig. 1. NeuroFramework的类图。5. 神经元的外向连接只能连接到具有更高id的神经元。我们设计这个的目的是使网络中不可能创建内部循环。如果一个神经元没有连接到任何其他神经元,它被认为是不活跃的。相反,如果一个神经元是连接的,它就是一个活跃的神经元。此外,我们还在目标函数中加入了惩罚措施,惩罚了神经元和连接的过度创建。这个动作允许神经网络保持可接受的大小。我们以这种方式设计它,因为进化过程倾向于创建任意连接,这些连接不会影响预测精度,但会降低处理速度。自由形式神经网络的一个例子如图所示。 二、解决方案由运算符修改;运算符是接收一个或多个解决方案并修改的函数。他们在这项工作中定义的一组运算符如下所述元运算符:这些运算符本身被一组运算符集成。以下是一些示例图二. 示例神经网络。(A)自由形式神经网络的稀疏矩阵表示,(B)同一网络的图形表示遗传:该算子受经典遗传算法的启发,包含选择、交叉和变异算子。模拟退火:该算子控制基数为1的种群集,并集成温度参数以控制当前解的内部扰动概率总体级别的运算符:它们是在总体级别工作的下一个运算符,通常修改多个解决方案。SBX的路径交叉:选择随机的解决方案对。然后,为每个解决方案选择随机路径,因为该路径是权重向量,因此它可以与经典交叉技术相结合。 我们实现了模拟的二进制交叉[11]。此操作将创建新的解决方案,并将其附加到填充中。微分算子:该算子基于经典的微分算子[12]。整个种群通过选择和应用微分交叉算子来迭代随机选择的解决方案。将所得解决方案与当前解决方案进行比较。如果新的解改进了前一个解的结果,则替换后者。RandomEliteMutation:该运算符生成从迄今为止找到的最佳解导出的解的子集如果新的解决方案提高了种群的当前解决方案的质量,则插入新的解决方案,然后将种群修剪为其原始大小。低级操作符:这些操作符直接修改神经网络的拓扑和权重,它们是:AddConnection:这是一个突变,其中一个新的随机连接被添加到神经网络中,唯一的约束是两个神经元都应该是活动的。AddNeuron:这是一种神经元从失活状态变为激活状态的突变。以确保网络连接时,创建到前趋神经元和后趋神经元的连接。突变权重:该运算符随机选择一个有效权重,并将其替换为新的随机权重;这包括与偏差相关的权重。由于在所提出的算法中定义了主循环,因此可以按照用户需要的任何顺序建立操作符序列。注意所提出的算法的灵活性,因为它可以由任何操作符序列构造4J.A. Cerecedo-Cordoba,J. Frausto-Solís和J.J. González Barbosa / SoftwareX 11(2020)100448()()()见图4。 可定制的优化算法。图三. Java代码示例。2.2. 软件功能该软件的主要功能是训练具有自由拓扑结构的神经网络,用于离子液体熔点估计的后期应用2.3. 示例代码段分析NeuroFramework可以与我们设计的默认值一起使用。但是,我们建议用户根据特定需求调整软件。这些变化可以很容易地进行。为了说明这一点,下面的代码片段显示了执行遗传算法的软件的主要功能。为了简单起见,删除了一些特定于 Java 的样板代码(参见图11)。 3)。第1行:加载命令行解析器;这是与程序交互的主要方式。第2-3行第4-6行:这些行定义了节目第7-10行第11行:用遗传算法创建一个处理单元;这没有任何额外的功能。第12日志可以被禁用,其唯一用途是用于以后的分析。第14行:设置将用于测试模型的数据;仅用于日志,不用于训练。第15-23行第24行:保存最佳模型供以后使用。第25-26行可以通过在可用选项中更改参数来交换所使用的度量buildBasicGenetic方法的摘要如图4所示;这在我们实现的堆栈架构中是高度可定制的第1行:开始堆叠过程的最佳方法是使用第2行:对于这种情况,由于我们不需要日志记录器,因此我们将日志管理器设置为NoManager第三行:如果setEvaluator配置有普通类Error,则执行将默认为均方误差度量第4行:如果需要特定配置,则处理单元配置有算法的基本配置;这可以被覆盖或重载第5-8行:加载基本算法;遗传算法的常见操作被压缩到Genetic类中。可以在这里传递特定的参数;具体来说,G全局类用于加载默认值第9-11行这种变异已被证明是一种有效的策略,在探索的搜索空间第12行:添加了最基本的控制器,静态控制器。在这里,只控制迭代次数,用户不需要在运行时更改参数3. 说明性实例NeuroFramework 通 过 命 令 行 启 动 , 参 数 包 括 id 、 input 、output、epochs和seed。其余参数在defaults.json文件中定义。此文件包含执行所需的所有参数。Python包装器包含在名为neuro_jar.py的源文件中。使用此脚本,程序很容易执行,甚至与pandasPython库NeuroFramework的目标是找到一个好的神经网络,可以预测的熔融温度的离子液体。为了使用该软件,分子描述符用PaDEL预先计算。之前,选择了最适合该研究的分子描述符[13]。因为这是一个回归问题,所以下一个目标函数应该最小化:f(x)=Ey,y<$N+α<$Ey,y<$N神经元+β<$Ey,y<$N连接 (1)凡:y:温度的实际值。该值是从数据集获得的。·J.A. Cerecedo-Cordoba,J. Frausto-Solís和J.J. González Barbosa / SoftwareX 11(2020)1004485|ˆ|-阿吉我-阿吉我⏐ˆ⏐图五. Python Wrapper示例。γε:通过神经网络获得的预测熔融温度。Nneurons:网络中活跃神经元的数量Nconnections:网络中的连接数。α:神经元惩罚因子,用于惩罚神经元的不合理产生。β:连接惩罚因子,惩罚不合理的连接创建。• E:使用了错误函数。可用的功能包括:◦ MAE(y,y)=1∑n yi−yini=1◦ MSE(y,y≠)=1∑n(yy)2()n=1◦ RMSE y,y=1∑nn(y y)2图六、随 机 执 行 的 实际熔 化 温 度 与预测熔化温度。◦ MAPE(y,y)=100∑nyi−yiy的值可以从.csv文件中读取,其中包括要预测的所有温度。 变量y取决于神经网络的分子描述符、权重和连接。由于该算法不能修改输入变量,因此只能在神经元和相关权重之间的连接上进行学习。为了我们的实验目的,我们使用HUO [3]的咪唑离子液体组。这个数据集像往常一样分为训练和测试子集。测试数据表示先前未被算法处理的IL。因此,测试误差是新液体的预期预测误差出于说明的目的,我们假设描述符数据是用Pandas库在Python中加载的。X_train、X_test、Y_train、Y_test表示训练集和测试集,即与IL相关的数据。图5显示了如何使用Python中提出的算法的可视化。在随机运行中,软件在训练中显示5.72 MAPE,在测试中显示8.41。此外,本发明还提供了一种方法,图6所示为散点图,显示了本测试中所用IL的温度预测值与实际值之间的关系4. 影响NeuroFramework提供了一种估计离子液体熔点的解决方案该解决方案提供了一种通过研究这些熔点来设计定制离子液体的方法。尽管使用熔点数据集对软件进行了测试,但这并不是对该物理化学性质的限制,因为该算法将对任何数据集进行回归。换句话说,NeuroFramework可以用来预测毒性、冰点和其他性质。然而,这还有待证明可靠。在这个例子中,我们展示了如何在Python编程语言用户可以使用我们的软件作为用户机器学习任务的工具。该软件在我们的研究小组中用于测试类似于[13]的新IL,我们将使用它来预测其他IL家族5. 结论在本文中,我们展示了一个名为NeuroFramework的神经进化框架,用于训练和测试我们训练自由神经网络的进化算法。NeuroFramework提供了一种灵活而强大的方法来实验不同的算法。该软件可以创建具有堆叠运算符的算法Neu- roFramework是用Java编写的,可以通过命令行执行;此外,还创建了一个Python包装器。包装器允许我们的软件作为工具添加到Python的机器学习工具箱中。NeuroFramework可能有助于研究人员预测IL的不同理化性质此外,由于我们的软件不限于此问题,该软件可以用于任何回归问题,但这种效率还有待测试。正在进行的工作是在NeuroFramework中自动清洁和准备IL。竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作致谢作者谨对国家科学技术委员会、国家技术中心和马德罗城技术研究所的国家信息技术研究所参加该小组表示赞赏和感谢。Jorge A.Cerecedo Cordoba要感谢国家科学技术委员会授予他博士学位。奖学金引用[1]Plechkova NV , Seddon KR. 离 子 液 体 在 化 学 工 业 中 的 应 用 。 Chem SocRev2008;37(1):123-50。[2]Katritzky AR , et al. Correlation of the melting points of potentialionicliquids ( imidazolium bromides and benzimidazolium bromides )using theCODESSAprogram. 化学信息计算科学杂志2002;42(2):225[3]霍燕,夏松,张燕,马萍。咪唑和苯并咪唑离子液体熔点的基团贡献法预测。Ind EngChem Res2009;48(4):2212-7.·····i=1ni=1yi6J.A. Cerecedo-Cordoba,J. Frausto-Solís和J.J. González Barbosa / SoftwareX 11(2020)100448[4]López-Martin I,Burello E,Davey PN,Seddon KR,Rothenberg G.阴离子和阳 离子 对 咪 唑盐 熔 点 的影 响 : 描述 符 建 模研 究。 化 学 物 理化 学 2007;8(5):690-5.[5]Carrera G,Aires-de Sousa J.用决策树和神经网络估计溴化吡啶离子液体的熔点。 绿色化学2004;7(1):20.[6]Varnek A,Kireeva N,Tetko IV,Baskin II,Solov'ev VP.大量不同离子液体的详尽QSPR研究:我们&能多准确地预测熔点?J Chem Inf Model2007;47(3):1111-22.[7]Torrecilla JS,Rodríguez F,Bravo JL,Rothenberg G,Seddon KR,López-Martin I.优化人工神经网络预测离子液体熔点。物理化学物理2008;10(38):5826[8]康霞,赵勇,李军。基于极限学习机智能算法的离子液体折射率预测。J MolLiq2018;250:44-9.[9]Zhu P,Kang X,Zhao Y,Zhang F,Zhang H.使用新型QSAR模型预测离子液体对乙酰胆碱酯酶的毒性。IntJ Mol Sci 2019;20(9).[10]Yap CW。PaDEL-Descriptor:一个计算分子描述符和指纹的开源软件。JComput Chem2011;32(7):1466-74.[11]黛布·K使用进化算法的多目标优化,第16卷,John Wiley& Sons;2001年。[12]Storn R,Price K.差分进化-一个简单而有效的算法,用于连续空间的全局优化。J Global Optim1997;11(4):341-59.[13]Cerecedo-Cordoba JA , González Barbosa JJ , Frausto Solís J , Gallardo-Rivas NV.咪唑 类离 子液 体熔 融温 度的 聚类 估算 。 J Chem Inf模型 2019 。acs.jcim.9b00203.
下载后可阅读完整内容,剩余1页未读,立即下载
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- VMP技术解析:Handle块优化与壳模板初始化
- C++ Primer 第四版更新:现代编程风格与标准库
- 计算机系统基础实验:缓冲区溢出攻击(Lab3)
- 中国结算网上业务平台:证券登记操作详解与常见问题
- FPGA驱动的五子棋博弈系统:加速与创新娱乐体验
- 多旋翼飞行器定点位置控制器设计实验
- 基于流量预测与潮汐效应的动态载频优化策略
- SQL练习:查询分析与高级操作
- 海底数据中心散热优化:从MATLAB到动态模拟
- 移动应用作业:MyDiaryBook - Google Material Design 日记APP
- Linux提权技术详解:从内核漏洞到Sudo配置错误
- 93分钟快速入门 LaTeX:从入门到实践
- 5G测试新挑战与罗德与施瓦茨解决方案
- EAS系统性能优化与故障诊断指南
- Java并发编程:JUC核心概念解析与应用
- 数据结构实验报告:基于不同存储结构的线性表和树实现
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)