没有合适的资源?快使用搜索试试~ 我知道了~
软件X 19(2022)101140原始软件出版物EpyNN:神经网络的教育支柱放大图片作者:Florian Malarda,Laura Dannera,Emilie Rouziesb,Jesse G. Meyera,Ewen Lescopc,Stéphanie Olivier-Van Stichelena,a美国密尔沃基威斯康星医学院生物化学系bINRAE,Riverly,69625 Villeurbanne Cedex,法国c Institut de Chimie des Substances Naturelles,CNRS UPR 2301,Université Paris-Saclay,LabExLERMIT, 1 avenue de la Terrasse,91190 Gif-sur-Yvette,Francear t i cl e i nf o文章历史记录:接收日期:2021年11月29日接收日期:2022年5月1日接受日期:2022年数据集链接:https://epynn。net关键词:Python教育机器学习神经网络a b st ra ct人工神经网络(ANN)在科学,商业,公共政策等许多领域的许多问题上取得了无与伦比的性能。虽然专家熟悉面向性能的软件和基本理论,但人工神经网络对于非专家来说很难理解,因为它需要编程技能,数学背景以及术语和概念的知识。在这项工作中,我们发布了EpyNN,这是一个教育性的Python资源,旨在让公众从简洁,同质和惯用的源代码中了解可扩展ANN架构的关键概念和实际实现。EpyNN包含一个教育应用程序编程接口(API),从数据准备到ANN训练的教育工作流程,以及一个文档网站,并排设置代码,数学,图形表示和文本,以促进学习并提供教学材料。总的来说,EpyNN为那些希望从头开始学习,教学或开发©2022作者(S)。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前代码版本v1.2用于此代码版本的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX-D-21-00227法律代码许可证GPL-3.0许可证使用git的代码版本控制系统使用Python 3.7的软件代码语言、工具和服务编译要求、操作环境依赖性与操作系统无关如果可用,链接到开发人员文档/手册https://epynn.net/问题支持电子邮件solivier@mcw.edu1. 介绍基于人工神经网络(ANN)的方法被实现来解决许多领域的问题,这些领域对生命科学和医学等公共利益的主题具有很强的意义。其中,人工神经网络的高度有前途的应用可能包括药物发现[1],基因相互作用和疾病预测[2]以及蛋白质结构预测[3]。然而,在这方面,人工神经网络在数据分析工作流程中的日常集成*通讯作者。电子邮件地址:solivier@mcw.edu(Stéphanie Olivier-Van Stichelen).https://doi.org/10.1016/j.softx.2022.101140仍然主要依赖于专家社区,很容易与ANN理论和应用程序编程接口(API),可从面向性能的,广泛的软件[4编程技能、数学背景或术语和概念方面的限制可能解释了为什么深度学习在处理大量数据的每个实验室中都不是标准的非专家仍然有机会熟悉ANN。熟练的程序员可以利用面向性能的高级API来实现最先进的结果。然而,这需要将人工神经网络用作黑箱,而不了解其内部工作原理。一个专业的程序员可能会在共享平台上找到可读的源代码,2352-7110/©2022作者。 由Elsevier B.V.出版。这是一篇开放获取的文章,使用CC BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softxFlorian Malard,Laura Danner,Emilie Rouzies et al.软件X 19(2022)1011402◦ ◦ ◦◦----Fig. 1. ANN模型和层次。这里描述了一组五层,相当于一组五个函数f,h1,h1,h2,g。该集合包含四个不同的层架构f、h1、h2、g的子集,因为两个层由相同的函数h1定义。以五个堆叠层的集合为特征的ANN模型是复合函数(g h2h1h1f),其接受输入并通过损失函数的导数将预测(前向,红色)与目标值进行进一步比较(e.g.、均方误差)。误差梯度通过每个层向后传播,并且如果适用,可训练参数相应地更新(向后,绿色)。如需详细信息,请参阅https://epynn.net/epynn(For关于本图图例中颜色的解释,读者可参考这篇文章。)面对高度异质的内容。另一方面,编程技能有限的人可以依靠非常丰富的Web文档,包括主流文章,编程和/或数学导向的帖子和笔记本。然而,虽然这些文档包含有用的项目,但它们不提供功能代码,并且很耗时。为了应对上述限制,我们发布了一个集成的神经网络教育Python资源(EpyNN),提供各种ANN架构的同构实现。EpyNN面向教育的API编写简洁,注释详尽,便于学习和用作教材。该存储库包含从数据准备到ANN训练和预测的工作流程示例。EpyNN附带一个文档网站,提供并行代码,数学和图形表示以及标准包文档。总的来说,EpyNN是针对那些对ANN感兴趣的人,他们希望从头开始学习,教学或开发2. 执行EpyNN是用Python(3.7.1)[10]编写的,计算流程是用纯NumPy编写的,NumPy是数组编程的全球标准[11,12]。使用EpyNN进行数据准备和ANN训练的教育示例以常规Python代码和 Python 笔 记 本 的 形 式 提 供 [13] 。 EpyNN 文 档 网 站 可 以 在https://epynn.net上找到,它是用Sphinx [14]构建的,使用的主题是 EpyNN 是 在 GNU 通 用 公 共 许 可 证 v3.0 下 授 权 的 , 与GNU/Linux,MacOS和Windows兼容。3. 特征3.1. 教育API人工神经网络模型是通过堆叠具有不同结构的层来构建的 (图1)。①的人。EpyNN实现了一组主要层在https://epynn.net上有详细的记录。这包括以下层:全连接(密集)[20,21],递归神经网络(RNN)[22],门控递归单元(GRU)[23],长短期记忆(LSTM)[24],卷积2D和池化层[25,26]。EpyNN还提供了Dropout[27]和Flatten层,分别用于网络正则化和数据整形,以及模板传递层。最后,输入嵌入层[28]支持数据规范化,独热编码和随机梯度下降(SGD)的小批量准备[29] 。 可 以 使 用 提 供 层 列 表 的EpyNN 模 型 创 建 ANN ( 参 见https://epynn.net/epynn)。Hy- perparameters可以为所有层全局 设 置 , 也 可 以 为 每 个 层 局 部 设 置 . 支 持 的 激 活 函 数 包 括RectifierLinear Unit(ReLU)和Leaky ReLU、Exponential LinearUnit(ELU)和logistic函数sigmoid、双曲正切和softmax(参见https://epynn.net/activation)。支持的损失函数包括均方误差(MSE)、平均绝对误差(MAE)、均方对数误差(MSLE)、二进制交叉熵(BCE)和分类交叉熵(CCE)(参见https://epynn. 净/亏损)。评估指标包括准确度、精确度、召回率、特异性和F分数。3.2. 教育蟒蛇一个层定义在一个目录内,该目录包含用于模型定义、前向传播 、 后 向 传 播 和 参 数 相 关 函 数 的 四 个 文 件 ( 参 见https://github.com/aze/epynn/tree/main/epynn)。Sources严格分层数学定义,因此它们是准确和简洁的,模板和LSTM层的定义分别从66到269行代码。ANN模型EpyNN和其他用于激活、损失函数、度量等的模块都是按照相同的指导方针编写的。重要的是,源代码被广泛注释,每行代码平均有0.35行注释(表1)。总体而言,原生实现是用惯用的Python/NumPy编写的,重点关注整个包的同质性。Florian Malard,Laura Danner,Emilie Rouzies et al.软件X 19(2022)1011403代码代码表1EpyNNepynn库树-描述和源代码统计。子目录文件线Docstring代码内联块评论描述网络860115132541250.4ANN模型,方法,例如,训练,预测嵌入53181081766340.23输入层预处理卷积42745815819580.494D -空间密集41815410816190.322D系列历史概念辍学415354806190.31正则化层防止过拟合变平413554666150.32适配器层Reshape 3D+to 2DGRU43165821946390.393D -序列扩展内存LSTM43776226964460.413D -序列扩展内存池化4223561139540.564D -图像压缩层特征提取RNN42415815530280.373D -序列例如,在一个实施例中, 时间序列,文本模板413456666120.27直通层,要自定义的Commons91107429571441070.26通用模块,例如,度量损失总584060119823062565560.35–EpyNN存储库中的教育库模块对应于epynn目录。除了网络和公共资源之外,每个网络都实现了特定的层架构。RNN、LSTM和GRU是所谓的递归层。文件:每个磁盘中的文件数。行数:文件中的总行数,不包括空行。Docstring:说明文档字符串或“global "代码注释的行。Code:可执行Python 代 码 的 行 。 Inline , Block : 用 于 “ 本 地 " 代 码 注 释 的 行 。 注 释 : 等 于 Inline+Block或一 行 可 执 行 代 码 的 “ 本 地 " 代 码 注 释 行 。 查 看https://github.com/synthaze/epynn/tree/main/epynn上的epynnlive目录。表2EpyNNepynnlive实例树-说明和源代码统计。子目录文件线Docstring代码块评论模型描述哑布尔31222664320.521Python基础,布尔,感知器虚拟图像317432100420.422图像定义和生成哑串316926106370.354字符串数据类型,独热编码,循环层假时间319634119430.364时间序列,信号检测,递归层作者音乐320923138480.353WAV音频文件处理,循环层验证码_mnist314813104310.32IDX格式,编码图像,CNNptm蛋白317813127380.34O-GlcNAc酰化肽[8,9],复发层总2111961677582710.3620–数据准备和模型训练的教育工作流位于EpyNN存储库中的epynnlive目录中。每个实例包含3个Python文件prepare_dataset.py、train.py和settings.py,此处不考虑Prepare_dataset.ipynb和train.ipynb在描述中,CNN指的是卷积神经网络。行数:文件中的总行数,不包括空行。Docstring:说明文档字符串或“global "代码注释的行代码:可执行文件的会计行Python代码。区块:线 占“本地"代码 评论. 备注:是等于块或 “本地”行 代码注释一行可执行代码。型号:在train.py中审查的不同ANN配置的数量。查看https://epynn.net/nbdata上的epynnlive目录和www.example.com上的用于数据准备的Apriyter笔记本以及https://epynn.net/nbtraining上的模型训练。https://github.com/synthaze/epynn/tree/main/epynnlive3.3. 教育工作流程我们提供了14个关于数据类型,结构和准备的教育工作流程,以及设计和训练ANN的原则,包括常规的Python和PythonNotebook格式(表2)。在笔记本中,我们介绍了EpyNN API的教育功能其中包括详尽的初始化日志报告输入、输出和处理中间体的层此外,EpyNN中的层共享相同的缓存结构,这使得内置过程和目的之外的为了便于监控,我们在模型训练期间实现了彩色日志,并在完成后实现了自动绘图功能。Florian Malard,Laura Danner,Emilie Rouzies et al.软件X 19(2022)1011404图二、 EpyNN https://epynn.net教育网站-集成文档的示例。EpyNN教育API记录了系统的描述,包括经典的API文档和相应的源代码,通过直接翻译成图表,数学和文本逐行解释。该方案是针对RNN层显示的,并从https://epynn.net/RNN中提取。与网络和层模型或激活和损失函数等相关的对象和方法/函数按照该方案进行了记录有关符号的约定,请参见https://epynn.net/glossary#notations3.4. 教育网站https://epynn.net旨在提供综合教育材料、传统Python包文档和Python笔记本。其中,系统的描述把并排代码,数学符号,图形表示和简洁的文本为基础的解释大多数对象在EpyNN(图。2)的情况。由于人工神经网络可能难以理解的非专家,我们认为这种多层次的方法是关键,以促进理解的多样性,用户和背景。因此,我们希望更多的人找到一个锚点,从而朝着全球理解的方向发展总的来说,我们实现了https://epynn.net作为一个简单的学习材料和教学支持。4. 相关工作EpyNN不应该在试图提供易于使用的高级API的深度学习库的拥挤空间中混淆。这种流行的深度学习库通常是为了在生产环境中的性能而开发的,而不是为了教育目的(例如,TensorFlow[5],Keras [4],Py- Torch,paszke2019pytorch,fastai [7],andothers).主要和关键的区别很简单:以生产为中心的深度学习库中的高级API的源代码不是为了用作教学或学习材料而编写的。这意味着在这种流行的、以生产为中心的库的源代码中找到和理解解释ANN内部工作的算法变得非常困难(清单S1,S2)。Florian Malard,Laura Danner,Emilie Rouzies et al.软件X 19(2022)1011405图三. 如何使用EpyNN -接口建议。该界面由EpyNNepynn库的文本编辑器会话(左,上)和实时示例(左,下),EpyNNhttps://epynn.net教育网站(右,上)和运行EpyNN的终端会话(右,下)组成。EpyNN源可以引用当前目录中的根模块文件或工作副本。请注意,新的层架构可以从现有层和模板层即时实现。有关更多文档,请参见https://epynn.net/epynnlayers和https://epynn.net/quickstart#how-to-use-epynn尽管如此,EpyNN仍然非常适合教授和学习其他流行的、以生产为中心的库的主干。EpyNN计算方案通过与264种不同配置中的Tensor-Flow/Keras [4]进行直接比较进行了验证虽然为相同的配置提供了相同的结果,但tensorflow/python目录包含1291个Python 文 件 , 共 333527 行 代 码 ( 文 件 S2 ) 。 相 比 之 下 ,EpyNN/epynn目录包含58个文件,总共有2317行代码。因此,EpyNN提供了阅读和理解其教育API背后的每一行代码的机会,与其他库(包括TensorFlow/Keras [4])相比,这些API在使用中可能保持高度相似。5. 使用环境EpyNN的主要目标是提供一个集成的环境,允许理解使用反向传播训练的ANN的内部工作。EpyNN通过其轻量级API将理论和实践结合在一起,该API依赖于编写供用户读取和修改的源代码。这与一个教育网站,描述了功能代码线与图表,数学和文字。换句话说,在EpyNN的源代码和集成文档之间几乎没有抽象。通常,一个用户将通过设置以下环境来使用EpyNN:一个文本编辑器会话以查看和定制EpyNN教育API的源代码,另一个会话 以 编 写 用 于 ANN 设 计 和 训 练 的 可 执 行 脚 本 , 在www.example.com的网络会话https://epynn.net以利用扩展文档,最后是终端会话以继续ANN训练和进一步操作(图11)。3)。用户可以在EpyNN教育API源的本地副本上工作,以设计练习,定制和比较现有架构的变体,甚至通过模板层实现新的架构(参见https://epynn.net/epynnlayers#template-layer)。6. 结论我们开发了EpyNN,一个面向教育的Python资源,旨在鼓励实践,理解和采用面向学习者、教师和开发人员的ANN。EpyNN具有教育API,简洁的Python源代码,教育工作流程和丰富的教育网站。由于EpyNN易于定制,我们预计并鼓励在https://github.com/synthaze/epynn上从推送请求中沉积额外内容。竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作可用性EpyNN 文 档 可 在 https://epynn.net 上 获 得 , 存 储 库 可 从https://github.com/synthaze/EpyNN检索。致谢我们感谢Axelle Malard(https://axellemalard.com),艺术总监和平面设计师,他们好心地提供了EpyNN的标志和图标。我们感谢Christelle Gloor(D-INFK,苏黎世联邦理工学院)在EpyNN开发过程中进行的有益讨论。这项工作得到了威斯康星医学院和美国国立卫生研究院的支持(R00 HD087430)。附录A. 补充数据与本文相关的补充材料可以在https://doi.org/10.1016/j.softx.2022.101140上找到。引用[1]Baskin Igor I,Winkler David,Tetko Igor V.神经网络在药物发现中的复兴。Expert Opin Drug Discovery 2016;11(8):785[2]穆兹奥·朱利亚,奥布雷·莱斯利,博格沃特·卡斯滕.生物网络分析与深度学习生物信息简报2021;22(2):1515-30。[3]跳楼者约翰,埃文斯理查德,普里茨亚历山大,绿色蒂姆图-UrnovMichael , Ronneberger Olaf , Tunyasuvunakool Kathryn , Bates Russ ,Mr.D. Augustin , Potapenko Anna , et al.Highly accurate proteinstructureprediction with AlphaFold. Nature2021;1-11.Florian Malard,Laura Danner,Emilie Rouzies et al.软件X 19(2022)1011406[4] Chollet François,et al. Keras. 2015年。[5] Abadi Martín , Barham Paul , Chen Jianmin , Chen Zhifeng , DavisAndy , Dean Jeffrey , Devin Matthieu , Ghemawat Sanjay , IrvingGeoffrey , Is-ard Michael , et al. Tensorflow : A system for large-scalemachinelearning.第12届USENIX操作系统设计与实现研讨会(OSDI)第16段)。2016,p.265比83[6] Paszke Adam , Gross Sam , Massa Francisco , Lerer Adam , BradburyJames , Chanan Gregory , Killeen Trevor , Lin Zeming , GimelsheinNatalia , Antiga Luca , et al. Pytorch : An imperative style , high-performance deeplearninglibrary. Adv Neural Inf Process Syst 2019;32 :8026[7] 霍华德·杰里米古格·西尔万Fastai:一个用于深度学习的分层API。 信息2020;11(2):108.[8] 武尔夫富恩特斯尤金妮亚,贝伦特雷克斯R,马斯曼洛根,丹纳劳拉,马拉德弗洛里安,沃拉吉特,卡赛罗贝尔,奥利弗范斯蒂切伦斯蒂芬妮。人类o-glcnacome数据库和荟萃分析。科学数据2021;8(1):1-11。[9] MalardFlorian , Wulff-Fuentes Eugenia , Berendt Rex R , DidierGuillaume,Olivier-Van Stichelen Stephanie. o-glcnacome目录的自动化和自我维护:智能科学数据库。数据库2021;2021.[10] Python 软 件 基 金 会 Python 3.7.1.2018 年 , https://www.python.org/ 下 载/release/python-371/。[11]范德沃尔特斯特凡,科尔伯特S克里斯,Varoquaux盖尔。numpyar-ray:高效数值计算的结构。Comput Sci Eng2011;13(2):22-30.[12]Harris Charles R , Millman K Jarrod , van der Walt Stéfan J , GommersRalf , Virtanen Pauli, Cournapeau David , Wieser Eric ,Taylor Julian ,Berg Sebas-tian,Smith Nathaniel J,et al. Array programming with numpy.Nature2020;585(7825):357-62.[13]Kluyver Thomas,Ragan-Kelley Benjamin,Pérez Fernando,Granger BrianE,Bussonnier Matthias,Frederic Jonathan,Kelley Kyle,Hamrick JessicaB,Grout Jason,Corlay Sylvain,etal. 2016年。2016年。[14]布 兰 德 · 乔 治 。 斯 芬 克 斯 Python 文 档 生 成 器 。 2007 年 , www.sphinx-doc.org/en/master/index.html。[15]Inc贡献者阅读全文。看看文件。2007,https://readthedocs. org/.[16]Apache软件基金会。Apache. HTTP服务器项目。2007年,https://httpd.apache.org/网站。[17]Naylor David , Finamore Alessandro , Leontiadis Ilias , GrunenbergerYan , Mellia Marco , Munafelia Maurizio , Papagiannaki Konstantina ,Steenkiste Pe-ter. https中的“s”的成本。第10届ACM国际新兴网络实验和技术会议论文集。2014年,第133比40[18]社 区 支 持 的 Debian 项 目 。 Debian 通 用 操 作 系 统 。 2007 ,https://www.debian.org/。[19]自由软件基金会.Gnu通用公共许可证v3.0。2007年,https://www.gnu.org/licenses/gpl-3.0.html网站。[20]McCulloch Warren S,Pitts Walter.对神经活动中固有的思想的逻辑演算。Bull Math Biophys1943;5(4):115-33.[21]Emmert-Streib Frank , Yang Zhen,Feng HanTripathiShailesh ,迪默·马蒂亚斯深度学习在大数据预测模型中的介绍性综述。2020年前Artif Intell[22]谢斯廷斯基·亚历克斯递归神经网络(RNN)和长短期记忆(LSTM)网络的基础。物理学D2020;404:132306。[23]Cho京贤,Van梅里安博尔巴特,Gulcehre卡格拉,BahdanauDzmitry,Bougares Fethi,Schwenk Holger,Bengio Yoeli.使用RNN编码器-解码器学习短语表示用于统计机器翻译。2014年,arXiv预印本arXiv:1406.1078。[24]Hochreiter Sepp,Schmidhuber Jürgen.长短时记忆。神经计算1997;9(8):1735-80.[25]Hijazi Samer,Kumar Rishi,Rowen Chris等人,使用卷积神经网络进行图像识别。美国加利福尼亚州圣何塞:Cadence DesignSystems Inc.; 2015年,p. 1-12号。[26]孙曼丽,宋占杰,姜小恒,潘静,庞彦伟。卷积神经网络的学习池。神经计算2017;224:96-104.[27]巴 尔迪·皮 埃尔 ,萨 多 夫斯 基·彼 得·J。 理解 辍学 。 Adv Neural InfProcessSyst2013;26:2814-22.[28]放大图片创作者:Kedar S,Pai Chinmay D.类神经网路分类器之范畴变数编码技术之比较研究。IntJ Comput Appl2017;175(4):7[29]甘利俊一反向传播与随机梯度下降法。神经计算1993;5(4-5):185-96.
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功