赞
踩
最近数据采集工具的技术进步使得生命科学家能够从不同的生物应用领域获取多模态数据。这些数据被分为三大类(即图像、信号和序列),它们的数量巨大且性质复杂。挖掘如此大量的数据以进行模式识别是一个巨大的挑战,需要复杂的数据密集型机器学习技术。基于人工神经网络的学习系统以其模式识别能力而闻名,最近其深度架构——称为深度学习(DL)——已经成功地应用于解决许多复杂的模式识别问题。为了调查DL(特别是其不同架构)在这三类生物数据挖掘中的贡献和应用情况,我们进行了元分析,并对结果资源进行了批判性分析。本研究集中探讨了DL在分析来自不同生物领域的数据模式中的应用,调查了不同DL架构在这些数据中的应用。随后,探索了与这三类数据相关的可用开放数据源以及适用于这些数据的流行开源DL工具。此外,从定性、定量和基准测试的角度对这些工具进行了比较调查。最后,概述了使用DL挖掘生物数据的一些开放研究挑战,并提出了若干未来的研究前景。本文发表在Cognitive Computation杂志。(可添加微信号19962074063或18983979082获取原文及补充材料,另思影提供免费文献下载服务,如需要也可添加此微信号入群,思影提供脑影像数据分析及课程,如感兴趣也可添加微信咨询)。
在过去的两个世纪中,理解人类行为及其各种病理,早期诊断和找到治愈方法的追求推动了生命科学研究的发展。这加速了尖端工具和技术的发展,使科学家能够全方位地研究生物系统,并以前所未有的方式深入到生物体的分子细节。不断增加的技术复杂性为科学家提供了新的DNA测序工具、基因表达、生物成像、神经影像以及体/脑-机接口。
图 1 现代数据分析生态系统,使用先进的机器学习方法,特别是深度学习在生物数据挖掘中的应用。来自不同来源的生物数据(例如,来自组学的序列数据、各种医学/生物图像以及来自脑/体-机接口的信号)通过适用于特定应用的深度学习架构进行挖掘。
这些创新的方法产生了大量的数据,形成了一种常被称为“数据洪流”的情况。根据目标应用和实验,这些生物大数据具有层次性(即数据来自生物系统的不同层次,从分子到细胞再到组织和系统)、异质性(即数据通过不同的采集方法获取,从遗传学到生理学再到病理学和成像)、动态性(即数据随着时间的变化而变化)和复杂性(即数据描述非线性生物过程)的内在特性。这些生物大数据的内在特性对数据科学家提出了巨大的挑战,要求他们识别模式并进行分析,以从这些数据中得出有意义的结论。这些挑战促使开发出合理、可靠、可重用、严格和稳健的软件工具,使用基于机器学习的方法来促进生物大数据中模式的识别、分类和预测。
根据一种方法从数据中学习的方式,机器学习技术可以大致分为监督学习和无监督学习。在监督学习中,使用一组已知的注释或属性或特征对池中的对象进行分类,即监督算法从有限数量的带注释训练数据中学习模式,然后使用获得的知识对剩余的测试数据进行分类。而在无监督学习中,首先从一部分未知数据中定义模式,然后根据定义的模式对剩余数据进行分类,即无监督算法首先在带有未知注释或属性或特征的数据池中定义模式,然后使用获得的知识对剩余数据进行分类。此外,还有一种称为强化学习的类别,不在本研究范围内,但它允许代理通过与环境交互迭代学习来改进其经验和知识。
自20世纪50年代以来,提出了许多与这两种学习范式(即监督和无监督)相关的方法。在监督学习领域的流行方法包括:人工神经网络(ANN及其变种(如反向传播、霍普菲尔德网络、玻尔兹曼机、受限玻尔兹曼机、脉冲神经网络等)、贝叶斯统计、支持向量机及其他线性分类器(如费舍尔线性判别分析、回归分析、朴素贝叶斯分类器等)、k-近邻算法、隐马尔可夫模型和决策树。流行的无监督方法包括:自动编码器、期望最大化、信息瓶颈、自组织映射、关联规则、层次聚类、k均值聚类、模糊聚类和基于密度的聚类(如通过排序点识别聚类结构)。这些方法中的许多已经成功应用于来自各种生物来源的数据。
为了简化处理,从不同应用领域生成的大量生物数据被分类为几种广泛的数据类型。这些数据类型包括序列(由组学技术生成的数据,如基因组学/转录组学/表观基因组学/蛋白质组学/代谢组学)、图像(由生物/医学/临床/健康成像技术生成的数据,包含细胞和诊断图像)和信号(由大脑和肌肉产生的电信号,通过适当的传感器在脑/体-机接口或BMI中获取)。这些数据类型中的每一种都见证了特定机器学习方法及其变种的主要贡献。
图2 不同深度学习模型在生物数据中的应用
a 使用作者关键词生成的词云,这些关键词提取自2011年1月至2020年3月间发表的研究论文,这些论文提到使用DL技术分析生物数据(图像、信号和序列),并在Scopus数据库中进行了索引。关键词被修剪以突出分析方法。
b 提到使用前10种技术的已发表论文的分布。每个饼图的颜色与词云中的颜色匹配。
图例—CNN:卷积神经网络,FCN:全连接网络,DA[E]:深度自动编码器,TRL:迁移学习,RNN:递归神经网络(包括长短期记忆或LSTM),ANN:人工神经网络,GAN:生成对抗网络,DNN:深度神经网络,DBN:深度信念网络,DBM:深度玻尔兹曼机
近年来,DL方法有可能重塑ML和AI的未来。值得一提的是,从更广泛的角度来看,ML已应用于一系列任务,包括异常检测、生物数据挖掘、冠状病毒检测、疾病检测和患者管理、教育、自然语言处理和价格预测。尽管在各个学科中具有显著的受欢迎程度和适用性,但尚无综合评审专注于生物数据中的模式识别,并提供指向各种生物数据来源和DL工具及其性能的指针
此外,考虑到使用先进ML技术(如DL)的现代数据分析生态系统,仅提供方法应用的信息只能部分覆盖该生态系统的组件(参见图1中的各种生态系统组件)。生态系统的剩余组件包括开放数据源和用于开发各个方法的开源工具箱和库。因此,全面了解数据集的可用性及其特性、库提供的功能和选项,以及它们在不同执行环境(如中央处理单元(CPU)和图形处理单元(GPU))中的比较是至关重要的。本论文的新颖之处在于首次全面覆盖使用先进ML技术(即DL)进行现代数据分析的完整生态系统。
因此,本综述旨在提供以下内容:DL概念及其在各种生物数据类型中的应用的简要概述;提供用于方法开发的开放数据存储库列表;以及现有的开源库和框架列表,这些库和框架可以利用这些技术的力量以及它们的相对和性能比较。在文章的结尾,识别出一些未解决的问题,并概述了一些未来的研究方向。
本文的其余部分安排如下:第2节提供了概念概述,并介绍了DL的基础理论;第3节描述了应用;第4节列出了开源数据存储库;第5节介绍了流行的开源DL工具;第6和第7节从相对和性能角度比较了最流行的工具。第8节向读者展示了一些未解决的问题,并提出了一些未来的展望,最后第9节总结了本文。
表1 不同深度学习架构的关键点和应用
在深度学习(DL)中,数据表示是通过逐步增加抽象级别来学习的,即每个级别通过定义更低级别的表示来学习更抽象的表示。通过这种层次学习过程,系统可以直接从原始数据中学习复杂的表示。
尽管文献中提出了许多DL架构用于各种应用,但在生物数据中一直偏好使用特定的变种。正如图2所示,最受欢迎的模型包括深度神经网络(DNN)、深度玻尔兹曼机(DBM)和深度信念网络(DBN)、深度自动编码器(DA)、生成对抗网络(GAN)、递归神经网络(RNN,包括长短期记忆或LSTM)和卷积神经网络(CNN)。每种模型的架构及其各自的优缺点列于表1。以下小节介绍了这些最常用于生物数据挖掘的DL架构。
DNN的灵感来自大脑的多级视觉处理机制,从皮层区域“V1”开始,然后到区域“V2”等。模拟这种机制,传统的人工神经网络(NN)通过在每个隐藏层中添加包含非线性计算单元的隐藏层来扩展,以学习给定表示的子集。尽管它在不同应用中成功使用,其主要缺点是训练过程缓慢且繁琐。
[R]BM通过无向概率生成模型表示特定的概率分布。作为非线性特征检测器,[R]BM基于优化其参数以获得最佳概率分布拟合来训练,使用称为Gibbs采样的马尔可夫链蒙特卡罗方法。具有多个隐藏层中的对称连接,BM只有一个可见层。标准BM的主要缺点是学习过程计算量大且非常慢。由于这一点,BM需要很长时间才能达到平衡统计。然而,通过形成双分图(即限制为一个隐藏层和一个可见层)可以解决这一学习效率低下的问题。为了将这种浅层架构扩展为深层架构,将多个RBM作为单一学习元素堆叠在一起,这产生了以下两种DL架构。
DBM是无向RBM的堆叠,支持层之间的反馈机制,以便从高层单元推断传播到低层单元。这允许输入通过模型各级的并行竞争进行交替解释。尽管这种强大的推理机制,数据中模型参数的估计仍然是一个挑战,无法使用传统的基于梯度的方法(如持久对比散度)解决。尽管通过逐层贪婪地预训练每个RBM,使用低层隐藏变量的输出作为上层的输入,可以克服这一学习问题,但时间复杂性仍然很高,并且该方法可能不适合大型训练数据集。
DBN与DBM(深度玻尔兹曼机)不同,通过将多个RBM堆叠在一起形成,其中一个RBM的潜在层连接到下一个RBM的可见层。由于DBN的顶部两层是无向的,这些连接向下连接到其直接下层。因此,DBN是一个混合模型,前两层是无向图模型,其余部分是有向生成模型。不同的层以逐层贪婪方式学习,并根据所需输出进行微调;然而,训练过程计算量很大。
DA是一种DL架构,通过堆叠多个数据驱动的自动编码器获得,自动编码器是无监督元素。DA也称为DAE,旨在通过自动将输入表示投影到比输入维度更低的空间来减少数据维度。在自动编码器中,输入/输出层使用相同数量的单元,隐藏层使用较少的单元。隐藏层单元中嵌入(非)线性变换,以将给定输入编码为更小的维度。尽管需要预训练阶段并受到消失错误的困扰,但这种架构因其数据压缩能力而广受欢迎,并有许多变种,如去噪自动编码器、稀疏自动编码器、变分自动编码器和收缩自动编码器。
GAN是一种有效的生成模型。生成模型执行无监督学习任务,自动发现和学习数据中现有的模式,然后使用这些知识生成新的示例,仿佛它们是从原始数据集中抽取的。使用GAN,问题被视为具有两个部分的监督学习问题:(i)生成器,生成新的示例作为训练;(ii)判别器,将生成的示例分类为两类(真实或虚假)。这些生成器和判别器模型在零和博弈(即对抗方式)中一起训练,以使生成器模型生成的示例最大化判别器模型的损失。
RNN架构旨在检测数据流中的时空对齐。与单向从输入到输出执行计算的前馈NN不同,RNN根据前一状态的输出计算当前状态的输出。由于这种“记忆”特性,尽管存在与梯度消失和爆炸相关的学习问题,RNN在涉及流数据的许多领域(如文本挖掘、时间序列、基因组、金融等)中获得了广泛的流行。近年来,两种主要变种,双向RNN(BRNN)和长短期记忆(LSTM)也已应用。
CNN是一种多层NN模型,在分析基于图像的数据方面获得了广泛的流行。受视觉皮层神经生物学的启发,CNN由包含一组可学习滤波器组的卷积层和全连接层组成。这些滤波器组与输入数据进行卷积,并将结果传递给激活函数(如ReLU、Sigmoid和Tanh)。这些层之间还存在子采样步骤。CNN优于DNN,因为DNN在处理多维局部相关的输入数据时无法很好地扩展。为了解决DNN的扩展问题,CNN在分析具有大量节点和参数的数据集(如图像)方面非常成功。由于图像是“静止的”,卷积滤波器(CF)可以轻松学习数据驱动的核。应用这些CF以及适当的池化函数减少了传递到全连接网络进行分类的特征。然而,对于大型数据集,即使这样也可能是艰巨的,可以使用稀疏连接网络来解决。一些流行的CNN配置包括AlexNet、VGGNet、GoogLeNet等(请参阅表2,了解CNN变种的完整列表和相关细节)。
表2 不同深度CNN架构的关键点
表3 深度学习应用于生物数据
图3 涉及不同DL架构的出版趋势,从2015年到2019年,涵盖三种主要数据类型——图像a、信号b和序列c。每种数据类型中的论文数量已标准化。然而,需要注意的是,涉及DL技术应用于不同数据类型(图像、信号和序列)的出版物数量比率约为——1:1:1。
许多研究文献报道了使用不同DL架构及其相关和多样的参数集(见第2节)来分析生物数据中的模式。对于大多数DL架构,如图3所示,出版物的数量多年来稳步增加。以下描述并总结了一些从大量报道文献中随机选择的代表性研究。这些研究属于本文所考虑的三种数据类型,即图像、信号和序列。
CNN被用于乳腺组织学图像中寻找有丝分裂,并用于电子显微镜图像(EMI)中的神经元结构分割。Havaei等人使用CNN从磁共振成像(MRI)中分割脑肿瘤,Hosseini等人使用它诊断阿尔茨海默病(AD)。DBM和RBM被用于从MRI和正电子发射断层扫描(PET)扫描中检测AD和轻度认知障碍(MCI)。此外,CNN被用于MRI中检测神经内分泌癌。Kamnitsas等人使用CNN的双路径版本分割与肿瘤、创伤性损伤和缺血性中风相关的病变。Fritscher等人使用CNN进行体积分割,Cho等人使用它从计算机断层扫描(CT)扫描中寻找解剖结构(如肺结节以分类恶性)。DBN被应用于MRI中检测注意力缺陷多动障碍和心脏MRI中分割左心室。GAN在图像合成和数据增强中获得了广泛的应用,以减少过拟合。GAN在数据增强和图像翻译中的应用已在【143】中进行了综述,CycleGAN用于CT分割任务中的数据增强。提出了一种基于GAN的框架,称为MedGAN,用于医学图像到图像的翻译。GAN被用作预测特发性肺纤维化患者胸部CT扫描图像生存率的模型。Halicek使用GAN从乳腺癌细胞的数字化组织学中合成高光谱图像。
堆叠的DA被用于从脑电图(EEG)信号中检测情绪,通过主成分分析(PCA)提取相关特征并使用协变量偏移适应减少非平稳效应。DBN被用于通过分类EEG信号解码运动意象。为类似目的,CNN被用于增强的公共空间模式特征。使用CNN提取的特征(如位置、时间和频率)后,DA也被用于分类EEG信号。Li等人使用DBN提取低维潜在特征,并选择关键通道以使用EEG信号分类情感状态。此外,Jia等人使用主动学习训练DBN和生成RBM进行分类。Tripathi等人利用基于DNN和CNN的模型进行情感分类。CNN被用于通过同步模式分类预测癫痫发作。DBN和CNN被用于从NinaPro数据库解码运动动作。后者方法也被用于MIT-BIH、INCART和SVDB存储库。此外,心电图(ECG)心律失常使用DBN从MIT-BIH心律失常数据库提供的数据进行分类。Zhu等人使用GAN模型与LSTM和CNN生成具有高形态相似性的ECG信号。另一种GAN模型,RPSeqGAN,使用SeqGAN训练,生成具有五个周期的心律失常ECG数据,显示出高稳定性和数据质量。GAN还被Luo和Lu用于EEG数据增强。You等人和Jiao等人分别利用基于GAN的模型使用EEG信号检测癫痫发作和驾驶员困倦。Singh等人提出了一种新的GAN框架用于去噪ECG。
堆叠去噪DA已用于从基因表达(GE)数据中提取特征用于癌症诊断和分类以及相关基因的识别。GAN也被用于从GE数据中识别表达模式。一种基于模板的DA学习模型用于重建蛋白质结构。Lee等人应用一种基于DBN的无监督方法在脱氧核糖核酸(DNA)水平执行剪接接头的自动预测。Ibrahim等人结合DBN与主动学习,设计了一种方法从基因或微RNA(miRNA)中选择特征组,基于表达谱。对于转化研究,Chen等人使用双模态DBN预测使用模式生物体的人类细胞反应。Pan等人将混合CNN-DBN模型应用于RNA以预测RNA结合蛋白(RBP)相互作用位点和基序,Alipanahi等人使用CNN预测[D/R]BP的序列特异性。Denas和Taylor使用CNN预处理由染色质免疫沉淀后续测序(ChIP-seq)生成的数据,并创建基因转录因子活性谱。Kelley等人使用CNN预测DNA序列的可及性,Zeng等人使用它预测DBP,Zhou等人和Huang等人用于发现非编码基因变异,Wang等人用于预测二级蛋白质结构(2ps)。Park等人使用LSTM预测miRNA前体,Lee等人使用它预测miRNA前体的目标。Marouf等人使用GAN生成真实的单细胞RNA测序数据,Jiang等人使用它从RNA测序数据中预测疾病基因,Zhao等人使用它作为预测药物靶标结合的半监督程序,Wang等人使用它从GE(基因表达)数据中识别表达模式。
数据共享计划极大地促进了再现作为统计处理的定量数据或精心挑选的代表性定性数据的科学结果。在过去的几十年中,许多开放获取的数据存储库已被用于此目的。实际上,许多研究资助者和期刊现在要求用于研究的数据必须公开可用以供验证。为了促进方法开发,这里列出了与序列、图像和信号数据相关的主要和流行的开放获取数据存储库,这些数据存储库分别总结在表4、表5和表6中。
表4 与[生物/医学/健康/临床]图像相关的开放获取数据存储库和数据集的应用分类
表4列出了领先的开放获取数据源,包括数据库和单个数据集,提供了与生物图像研究相关的数据。为了简化处理,这些数据源被分为四个广泛的应用领域——[生物/医学]图像处理与分析、疾病检测与诊断、神经影像处理与分析以及分割——并在下面进行了简要描述。
细胞中心数据库(CCDB)提供了细胞和亚细胞结构的高分辨率三维光学和电子显微镜重建图像。它还包含来自多种显微镜图像采集系统的[2/3/4]-D蛋白质分布和结构信息。
另一个图像库,称为细胞图像库(CIL),提供了超过10,000个独特的数据集和20 TB的图像、视频和动画数据。这些数据属于多种多样的生物体、细胞类型和细胞过程。
Euro Bioimaging数据库提供了生物和生物医学成像数据,旨在促进科学家、工业、国家和欧洲当局之间的合作。其使命是为欧洲及其他地区的科学家提供先进成像技术和生物成像数据的访问和服务。Euro Bioimaging还包括图像分析工具。
HAPS是一个组织学图像数据库,包含中/高分辨率的人类细胞和组织的显微图像照片。另一个图像数据库,图像数据资源(IDR),包含细胞和组织图像的单个数据集。各种类别的图像包括时间推移成像、蛋白质定位研究、数字病理成像、酵母研究、人类高内涵筛选等。它还提供公共API,便于细胞生物学的多维图像数据的查看、分析和共享。
SICAS医学图像存储库(SMIR)是用于医学研究目的的图像存储库。其特色集合包括来自不同年龄组和性别的50个匿名受试者的全身CT扫描,以及耳蜗的CT、微CT、分割和形状模型。
癌症影像档案(TCIA包含CT、MRI和核医学(例如PET)图像,用于临床诊断、标志物和跨学科研究。斯坦福组织微阵列数据库(TMA)是一个注释的显微组织图像和相关表达数据的来源。数据可用于细胞生物学研究。UCSB生物分割基准数据集包含2/3-D的细胞、亚细胞和组织图像。这些数据集可用于分割和分类任务。
大量成像数据来自患有神经疾病的患者。自闭症脑成像数据交换(ABIDE)数据库包含自闭症脑成像数据集,用于研究自闭症谱系障碍。另一个数据集与注意力缺陷多动障碍(ADHD相关,包括776个静息状态fMRI和解剖数据集,这些数据集融合了8个独立成像站点的结果。表型信息包括年龄、性别、诊断状态、测量的ADHD症状、智商和药物状态。ADHD 200数据集的主要目标是基于成像的诊断分类。阿尔茨海默病神经影像计划(ADNI)是一个流行的数据库,包含来自神经退行性疾病患者的神经影像数据集,特别是AD、MCI、早期和晚期AD以及老年对照受试者。该存储库提供的数据集主要用于开发与AD相关疾病的创新方法。另一个专注于AD的数据集是开放访问成像研究系列(OASIS)数据集。它包含MRI数据集和开源数据管理平台(XNAT),用于研究和分析AD。Neurosynth是另一个数据库,包含fMRI文献(以及一些数据集)和合成平台,用于研究大脑结构、功能和疾病。另一方面,开放神经影像(Open NI)据集包含成像模态和脑疾病数据,可用于研究疾病识别的决策支持系统。
新型冠状病毒病或COVID-19大流行吸引了许多研究人员关注检测新型冠状病毒病。NIH【180】nCOV胸部X光数据库包含COVID-19病例的胸部X光/CT图像。数据可用于识别细菌性、病毒性和COVID-19肺炎。Kaggle托管了类似的胸部X光数据集,其中包含用于检测传统病毒性和细菌性肺炎的胸部X光扫描数据。
乳腺癌也是通过成像解决的另一个重要疾病,这吸引了许多数据库托管乳腺癌图像。乳腺癌数字存储库(BCDR)数据库包含多模态乳腺X线摄影和超声波扫描以及1734名匿名患者的病史数据。数据可用于疾病检测和诊断方法。另一个数据集,MITOS,包含乳腺癌组织学图像(苏木精和伊红染色切片)。有丝分裂检测和核异型性评估是其主要用途。
图像信息提取(IXI)数据集提供了600个健康受试者的MRI图像,用于研究大脑功能。这些图像以NIFTI文件格式保存,并使用T1、T2、质子密度加权图像、磁共振血管成像图像和弥散加权图像协议获取。这些图像来自英国伦敦的三家不同医院。另一个数据库,Loni概率脑图谱(LPBA40),包含40名志愿者的大脑解剖区域地图。每个地图生成一组全脑MRI,每个MRI描述识别56个大脑结构,其中大部分位于皮层。研究颅骨剥离MRI体积和分类本地空间MRI,概率图是LPBA40的主要用途。NeuroVault.org是一个基于网络的存储库(API),用于收集和共享人脑的统计地图,以研究人脑区域。神经影像学信息工具和资源清算所(NITRC)提供从MRI到PET、SPECT、CT、MEG/EEG和光学成像的各种成像数据,用于分析功能和结构神经图像。开放fMRI数据集包含使用不同模态获取的MRI图像,包括弥散加权、T1加权磁化准备快速采集梯度回波(MPRAGE)MRI和多回声快速低角度拍摄(FLASH)MRI。它还包含用于研究大脑区域及其功能的生物信号数据集。这些数据集可以用作基准数据集,以区分各种神经影像分析工具的结果。英国数据服务包含来自22名脑肿瘤患者的T1/2、弥散张量成像和fMRI数据集,可用于研究脑肿瘤手术规划。
分割是任何图像处理管道中的重要步骤。上述许多数据集可用于分割目的。
专注于眼疾,数字视网膜图像血管提取(DRIVE)包含400名25-90岁糖尿病患者的JPEG压缩视网膜图像数据集。该数据集可用于理解视网膜图像中血管的分割和糖尿病视网膜病变的识别。另一个称为视网膜结构化分析(STARE)的数据集始于1975年。该项目包含400个原始视网膜图像、10个标记的动脉/静脉图像和80个带有地面真实图像的数据集。每个图像都由专家注释并显示特征。该数据集可用于血管分割和视神经检测。
互联网脑分割存储库(IBSR)提供MRI数据的分割结果。分割方法的开发是IBSR的主要应用。
表5列出了与生物信号相关的领先开放获取数据存储库和数据集(也称为数据源)。这些数据源大致分为六个应用领域——异常检测、人机接口(包括脑机接口及康复研究)、情感/情绪状态检测、运动意象分类、神经状态评估以及信号处理与分类——这些在以下小节中进行了描述。
异常检测是科学家们投入大量精力的主要应用领域之一。在这一过程中,许多开放获取的数据源,主要包含EEG和ECG数据,经常被使用。
从EEG信号开始,SAD mc-EEG数据集包含来自27名受试者的32通道EEG信号,这些信号是在他们进行测试驾驶时记录的。即,信号是在每个受试者参加两次90分钟的虚拟现实持续注意驾驶会话时获取的。
TUH EEG语料库也是一个开放的临床EEG数据存储库,提供临床EEG数据、工具和文档。主要数据集包括癫痫发作检测、异常EEG、含有伪影的EEG(由眼动、咀嚼、发抖、电极弹出、电极静电和肌肉伪影引起)、癫痫EEG等。
关于ECG信号,MIT-BIH心律失常数据库包含从47名受试者记录的2通道动态ECG记录,用于研究心律失常。有48个完整的ECG记录,其中大约24个记录是免费提供的。PTB诊断ECG数据库包含290名年龄在17至87岁之间的受试者的549个ECG记录,使用常规12导联和3个Frank导联ECG记录器获取。每个记录包括来自这些导联的15个信号,每个受试者在1至5个记录中表示。这两个数据集都可用于异常检测。另一个ECG数据集,TELE-ECG数据集,包含250个带注释的QRS和伪影掩码的ECG记录。它还包括QRS和伪影检测算法,以研究QRS并从ECG信号中检测伪影。
人机接口的应用领域侧重于[身体和大脑]–机接口和康复。主要通过肌电图(EMG),有时也使用EEG信号来实现。
BNCI Horizon 2020数据库包含超过25个数据集,如刺激EEG数据集、基于皮层电图(ECoG)的BCI数据集、基于事件相关电位(ERP)的BCI数据集、心算、运动意象(从EEG、EOG、fNIRS、EMG中提取)数据集、神经假肢控制的EEG/EOG数据集、拼写器数据集。该数据库的主要应用是BMI设备的建模和设计。虽然BNCI包含各种信号,但EMG数据集存储库包括2通道、10类和8通道、15类的单指/多指运动数据集;方向盘上单指/多指压力;EMG控制的多功能上肢假肢和EMG模式识别数据集。
对于表面肌电图(sEMG),面部sEMG数据集包含来自眉弓肌、颧骨大肌、口轮匝肌、眼轮匝肌和咬肌的面部sEMG信号。存档数据来自15名参与者(8名女性和7名男性),年龄在26至57岁之间(平均年龄40.7 ± 9.6岁)。这些数据可用于康复研究。此外,NinaPro数据库包括27名受试者在移动手指、手和手腕时的运动学数据以及sEMG数据。这些数据可用于研究生物机器人学和活动检测。
情感和情绪状态检测多年来一直是一个非常活跃的研究领域。检测情感和情绪状态使用了不同信号的组合,以下描述了提供这些信号的多个数据源。
用于情感分析的生理信号数据库(DEAP)提供了各种数据集用于分析人的情感状态。它提供了32名志愿者在观看音乐视频时的EEG和sEMG信号,以分析情感状态。这些志愿者还对视频进行了评分,并记录了22名志愿者的正面视频。DECAF是一个多模态数据集,用于解码用户对情感多媒体内容的生理反应。它包含脑磁图(MEG)、水平眼电图(hEOG)、心电图(ECG)、斜方肌肌电图(EMG)和近红外面部视频数据,用于研究生理和心理状态。另一个多模态数据集是MAHNOB-HCI数据集,包含ECG、呼吸和皮肤温度数据,以及来自30名受试者的32通道EEG信号,记录他们观看电影剪辑和照片时的数据。不同传感器同步记录了一个同步的多模态数据集。受试者被要求标注自己的情感状态。
另一方面,Imagined Emotion数据集提供了受试者在听语音录音时记录的EEG信号。SJTU情感EEG数据集包含三个独立的数据集(SEED、SEED-IV和SEED-VIG)的EEG信号。在SEED数据集中,EEG信号在受试者观看电影剪辑时记录,并标注他们的情感状态为积极、消极和中性。在SEED-IV的情况下,标注了四种情感状态,如快乐、悲伤、恐惧和中性,而SEED-VIG数据集包含受试者在驾驶时与警觉性相关的EEG信号。
运动意象(MI)是另一个非常活跃的研究领域。由于众多社区贡献者的努力,开发了许多数据集,以下描述了其中一些流行的数据集。
脑电图脑机接口心象(EEG-BCI-MI)数据集包含来自13名受试者和75次实验的60小时EEG记录。这些记录包含约60,000个心象示例,每位参与者约有4.8小时的EEG记录(包含4600个心象示例)。这些数据集可用于运动障碍患者的康复。另一个用于MI脑机接口的EEG数据集(EEG-MI-BCI)包含带有3D电极位置的EEG信号以及与非任务相关状态的EEG信号。该数据集从52名参与者处记录,还包含[生理/心理]数据和EMG信号。该数据集可用于查找影响MI BCI性能的人类因素。另一个以EEG信号为中心的数据集称为EEG运动运动/心象(EEG-MMI)数据集【209】,包含从109名志愿者处获得的1500个(1-2分钟)EEG记录。该数据集可用于设计用于康复目的的BCI系统。
许多基于视觉P300的数据集可用于开放访问属性,以执行一系列神经状态评估。这些数据集,V-P300 BCI,由使用干电极或湿电极记录的数据组成,有16或32个通道,记录时受试者在玩Brain Invaders游戏。这些数据集是使用不同的游戏模式记录的,如单人游戏(16干电极来自71名受试者和32湿电极来自50名受试者)、多人协作模式(32湿电极来自38名受试者)和多人合作与竞争模式(32湿电极来自44名受试者)。
为了解决各种信号处理和分类问题,许多数据集已作为开放获取提供。大多数这些问题以挑战形式发布给社区,提供相关数据集来解决它们。BCI会议期间的比赛已为此目的服务了几年,并发布了数据集(BCI竞赛数据集),这些数据集仍然可用,附带相关的问题陈述和示例代码供他人使用。IEEE神经工程会议(NER2015)提供的挑战数据集称为BCI-NER数据集。该数据集主要用于开发适用于基于P300的BCI系统的错误检测算法。BCI竞赛数据集包括EEG数据集(例如,皮质阴性或阳性、反馈测试试验、自主按键输入、P300拼写器范式、运动/心理意象数据、连续EEG、眼动EEG)、ECoG数据集(例如,指运动、以EEG/ECoG形式的运动/心理意象信号)和MEG数据集(例如,腕部运动)。这些数据集可用于BMI的信号处理和分类方法。同样,BCI-NER挑战数据集提供了26名受试者使用P300拼写器的56通道EEG信号。
除了为挑战和比赛发布的数据集外,还有提供丰富数据集的存储库用于该应用领域。DRYAD是一个最近推出的多功能存储库。它包含一系列EEG记录数据集,当19名受试者听自然语音、时间反转语音、鸡尾酒会注意和嘈杂的视听语音时记录。PhysioNet存储库包含大量神经电和肌电数据集。顾名思义,主要用于生理数据。这些数据集主要涉及EEG、ECoG、EMG和ECG等信号,并从许多不同的实验环境中获取。UCI ML存储库【218】包含大量直接应用于机器学习方法的多样化数据集。一些相关的生物信号数据集包括来自不同实验和生理条件的ECG、EEG和(s)EMG信号。
表6列出了与各种组学相关研究(包括基因组学、蛋白质组学和代谢组学)相关的主要流行开放获取数据源。这些数据源分为六个广泛的应用领域,即生物测定分析和药物设计、遗传疾病分析、核酸研究、蛋白质结构分析、信号传导途径研究和单细胞组学。以下小节简要讨论了主要的开放获取组学数据源。
自2019年12月以来,世界经历了一场由SARS-CoV-2(COVID-19)病毒引起的大流行。为了促进正在进行的研究,SARS-CoV-2数据集提供了SARS-CoV-2的基因序列、蛋白质、途径和生物测定数据以及临床试验中使用的化合物。这些数据集可用于研究生物/化学过程和药物设计。PubChem数据库包含数百万个化合物结构和化学分子及其对生物测定的活性描述数据集。由美国国家卫生研究院的国家生物技术信息中心维护,可以通过网络用户界面自由访问并通过FTP下载。它还包含软件服务(如绘图和聚类)。可用于[基因/蛋白质]组学研究和药物设计。
癌症基因表达(GE)作为一个小型存储库,包含几个癌症GE数据集,可用于设计癌症检测工具/算法。癌症基因组图谱(TCGA)存储库包含超过2.5 PB的基因组、表观基因组、转录组和蛋白质组数据。它包含33种不同类型癌症的数据和超过20,000个样本。这些数据由国家癌症研究所和国家人类基因组研究所生成。该存储库用于促进基因组研究,以改善癌症的预防、诊断和治疗。为了分析特定区域的疾病,印度遗传疾病数据库(IGDD)跟踪印度报告的正常基因突变引起的遗传疾病。
伯克利果蝇转录网络项目(BDTNP)数据库包含与3D基因表达数据、体内和体外DNA结合数据以及染色质可及性数据(ChAcD)相关的数据集。该数据库提供的数据集的主要应用是基因表达和异常检测研究。
DNA元素百科全书(ENCODE)是一个由ENCODE联盟管理的全基因组数据库。它包含大量与功能基因组学和特征化数据相关的数据集,包括人类、蠕虫、鼠类和果蝇的元数据。另一个称为外显子组测序项目(ESP)的数据库包含可用于查找和管理肺部和血液疾病及其治疗的基因组数据集。基因表达综合数据库(GEO)【228】是一个开放获取的功能基因组学(微阵列和序列)数据存储库。该数据库可用于功能基因组学和表观基因组学研究,如基因组甲基化、染色质结构和基因组-蛋白质相互作用。它由美国国家医学图书馆的国家生物技术信息中心支持。基因组聚合数据库(gnomAD)包含来自不同测序项目的大规模外显子组和基因组测序数据。该数据集可用于疾病诊断和遗传研究。基因型-组织表达(GTEx)数据库包含从1000名受试者收集的54个健康组织部位的基因表达数据集和组织学图像。它还包括来自GTEx生物库的样本。
Harmonizome数据库提供了来自66个在线资源的114个数据集中关于基因和蛋白质的详细信息,包括295496个属性和56720个基因之间的71927784个关联。国际核酸序列数据库(INSDC)广泛地汇总了来自三个主要来源的生物数据:i)日本DNA数据银行【247】,ii)欧洲核酸档案馆【248】,iii)GenBank【249】。这些来源提供了从数据原始读数、比对、组装到功能注释的范围,丰富了与样本和实验配置相关的上下文信息。类似地,国际基因组样本资源(IGSR)【233】包括来自1000个基因组项目的基因组测序数据。基因组数据来自不同种族、年龄和性别的人的样本,最终数据集包含来自26个种群的2504个人的基因测序数据。这些数据可用于疾病诊断和遗传研究。此外,SysGenSim【237】数据库包括生物信息学工具和Pula-Magdeburg单基因敲除、StatSeq和DREAM 5基准数据集,用于研究基因序列。
JASPAR【234】是一个转录因子DNA结合特征数据库。数据涵盖六个不同的分类群,包括脊椎动物、线虫、昆虫、植物、真菌和尾索动物。该数据库可用于转化基因组学研究。
NIH路线图表观基因组学映射存储库(NIHREM)【235】包括2804个数据集,即1821个组蛋白修饰、360个DNase、277个DNA甲基化和166个RNA-Seq数据集。该存储库提供了3174倍的150.21亿个已映射的人类测序数据和用于分析这些数据集的工具。它可用于干细胞映射和选择导致人类疾病的组织。此外,称为自然科学数据(NSD)的数据库【236】包括与组学、分类学和物种多样性、数学和建模资源、细胞术、以生物体为中心的资源以及健康科学数据相关的数据集。这些数据可用于研究和建模基因组学的不同方面。
蛋白质数据银行(PDB)【238】包含蛋白质和核酸的三维结构数据。这些数据通过X射线晶体学、NMR光谱和冷冻电子显微镜等工具获取。PDB包含超过135,000个蛋白质、核酸和复杂装配体的数据。它们可用于理解生物医学和农业的各个方面。
蛋白质结构分类(SCOP)是一个存储库,托管手动分类的蛋白质结构数据集。分类基于氨基酸序列及其结构相似性。主要目的是寻找蛋白质之间的进化关系。目前维护两个版本的SCOP。SCOP版本2(SCOP2)【239】是2020年第一季度发布的最新SCOP数据库。相反,SCOP扩展版(SCOPe)【240】是由UC Berkeley维护的原始SCOP的扩展版。SCOPe通过手动和自动化管理的融合,包含许多新分类的蛋白质结构。
UCI的分子生物学数据库(UCI MB)包含三个独立的数据库:i)次级蛋白质结构【241】,这是一个分类某些球状蛋白质的次级结构的基准存储库;ii)剪接-连接基因序列【250】,包含灵长类剪接-连接基因序列(DNA)及其相关的非完美域理论;iii)启动子基因序列【251】,包含大肠杆菌启动子基因序列(DNA)及其部分域理论。目标包括i)测序和预测某些蛋白质的次级结构;ii)研究与非完美域理论相关的灵长类剪接-连接基因序列(DNA);iii)研究大肠杆菌启动子基因序列(DNA)及其部分域理论。
NCI–Nature Pathway Interaction Database【242】托管了人类细胞信号传导(分子相互作用/反应)途径。该数据库可用于癌症研究。该数据库由美国国家癌症研究所、NIH与Nature出版集团合作创建,并于2006年最后一个季度发布。另一个数据库,NetPath【243】,也包含人类的信号传导途径。由约翰霍普金斯大学和印度生物信息学研究所(IOB)共同创建;它包括45条信号传导途径,涵盖从蛋白质-蛋白质相互作用到酶-蛋白质底物反应,包括10条主要的免疫系统途径和10条与癌症调控相关的途径。另一个数据库Reactome【244】是一个开放获取数据库,托管从代谢过程到激素信号传导的生物途径。通过北美和欧洲的合作创建,可用于癌症研究和治疗。
miRBoost数据集【245】包含至少100个miRNA的真核生物基因组。该数据集用于研究转录后基因调控(PTGeR)和miRNA相关的病理学。酿酒酵母基因组数据库(SGD)【246】也提供了酿酒酵母Saccharomyces cerevisiae的完整生物学信息。他们还提供了一个开源工具,用于搜索和分析这些数据,从而发现真菌和高等生物中序列和基因产物之间的功能关系。SGD的主要功能是基因组表达、转录组和计算生物学的研究。
由于近年来对深度学习(DL)的兴趣激增以及多学科的共同努力,社区中提供了若干开源库、框架和平台。然而,对于这些工具的新用户来说,要了解它们的特性、优缺点并不总是那么简单。在这个过程中,新分析师面临的主要障碍之一是选择适当的DL架构/模型和相关库,这些库提供了所选架构的适用实现。为了向初学者介绍如何使用这些开源工具进行生物数据分析,本节以教程风格描述这些工具,指出它们的特性、优点和缺点。本节的重点是回顾和总结最流行的开源工具,旨在促进社区的技术发展。这一全面的收集包含了由个人开发并良好维护的工具,这些工具实现了大量算法(即深度学习架构)。为了简洁起见,省略了工具的个别出版物引用,有兴趣的读者可以通过提供的网址在各自网站上查阅。
表7总结了各种工具的主要特点和差异。为了衡量工具在社区中的影响和接受度,我们提供了基于GitHub的指标,如Stars、Forks和Contributors的数量。这些数字表明了工具在社区中的流行度、成熟度和扩散程度。
Caffe (http://caffe.berkeleyvision.org/) 是一个可扩展的框架,用C++编写,并提供了Python和MATLAB的绑定。专用于实验、训练和部署通用DL模型,该框架允许在开发和部署平台之间切换。针对计算机视觉应用,它被认为是CNN的最快实现。
优点:
易于部署;
提供预训练模型;
训练速度快;
用于前馈网络。
缺点:
需要编写代码以生成新层;
对循环网络支持较少;
不支持分布式训练。
Chainer (http://chainer.org/) 是一个作为Python库提供的DL框架。除了提供流行的优化技术和与神经网络相关的计算(如卷积、损失和激活函数)外,动态创建图使Chainer非常强大。它支持包括CNN、GAN、RNN和DA在内的多种DL架构。
优点:
是领先的动态计算图/网络工具之一;
显著比其他面向Python的框架快。
缺点:
不支持开放计算语言框架/Open Multi-Processing API。
DeepLearning4j,用Java编写,核心库为C/C++,是一个面向快速原型制作的分布式框架,主要针对非研究人员。兼容JVM支持的语言(如Scala/Clojure),它适用于分布式处理框架(如Hadoop和Spark)。通过Keras(见第5.6节)作为Python API,它允许从其他框架导入现有的DL模型。它允许通过组合可用的浅层神经网络架构来创建神经网络架构。
优点:
支持与大数据框架Apache Spark和Hadoop集成;
支持分布式GPU和CPU平台,能够处理张量。
缺点:
不支持开放计算语言框架;
支持用于工作流和可视化的GUI。
DyNet库(https://dynet.readthedocs.io/),用C++编写,并提供Python绑定,是‘C++神经网络库’的继承者。在DyNet中,每个训练示例的计算图都是动态创建的,因此它在计算上高效且灵活。主要针对NLP应用,其特长是CNN、RNN和LSTM。
优点:
设计为高效运行在CPU或GPU上;
动态计算图类似于PyTorch和Chainer。
缺点:
在TensorFlow方面,可用功能有限。
H2O (http://www.h2o.ai) 是一个包含深度学习(DL)和数据分析的机器学习(ML)软件。它提供了一个统一的接口,可以与其他DL框架(如TensorFlow、MXNet和Caffe)集成。它还支持使用R、Python、Java和Scala设计的DL模型(CNN和RNN)的训练。
优点:
提供与其他DL框架的统一接口;
支持多种编程语言(R、Python、Java、Scala)的模型训练。
缺点:
需要对多种编程语言有一定的了解;
复杂的设置和配置可能对新手不友好。
基于Python的Keras(https://keras.io/)库用于Theano或TensorFlow之上。它的模型可以导入到DL4J(见第5.3节)。Keras作为一个用户友好的工具开发,旨在快速实验,易于使用和快速原型设计。Keras支持CNN、GAN、RNN和DBN【252】。
优点:
丰富的文档;
高级神经网络API;
能够运行在最新的深度学习库/框架(如TensorFlow、CNTK或Theano)之上。
缺点:
不能直接利用多GPU;
需要Theano作为OpenMP支持的后端,Theano/TensorFlow/PlaidML作为OpenCL的后端。
Lasagne(http://lasagne.readthedocs.io)DL库构建在Theano之上。它允许多个输入、输出和辅助分类器。支持用户定义的成本函数并提供许多优化功能。Lasagne支持CNN、GAN、RNN和LSTM。
优点:
Lasagne是一个轻量级库,用于在Theano中构建和训练DL算法;
层、正则化器和优化器可以独立使用;
提供清晰的文档;
支持在GPU上训练网络。
缺点:
社区规模小于TensorFlow。
取代CNTK,微软认知工具包(MCT,https://cntk.ai/)主要用C++编写。它提供了各种学习规则的实现,并支持不同的DL架构,包括DNN、CNN、RNN和LSTM。
优点:
是前馈DNN、CNN和RNN的框架;
可以非常快地训练生产系统;
可以在基准任务中实现最先进的性能;
允许定向图形可视化。
缺点:
社区支持较少;
安装困难;
在研究社区中兴趣较低。
MXNet(https://mxnet.io/)框架允许在广泛的设备上定义、训练和部署深度神经网络(DA、CNN、GAN、RNN和LSTM)——从云基础设施到移动甚至嵌入式设备(如Raspberry Pi)。用C++编写,它具有内存效率并支持Go、JavaScript、Julia、MATLAB、Perl、Python、R和Scala。
优点:
一个具有高性能命令式API的DL框架;
丰富的语言支持;
MXNet具有高级GPU支持;
高度可扩展。
缺点:
社区规模小于TensorFlow;
API文档较差;
在研究社区中不太受欢迎。
Neon是一个用Python编写的DL框架。它提供了各种学习规则的实现,以及用于优化和激活的函数。其支持的DL架构包括CNN、GAN、RNN、LSTM和DA。
优点:
比其他框架具有更好的可视化特性;
在数据加载级别应用优化。
缺点:
社区规模小于TensorFlow;
在研究社区中不太受欢迎。
PyTorch(http://pytorch.org/)提供了Python中的Torch模块。它不仅仅是一个包装器,其深度集成允许利用Python的强大功能。受Chainer启发,它允许动态创建网络以应对可变工作负载,并支持CNN、GAN、RNN和LSTM。
优点:
提供预训练模型;
通过单独维护的包支持OpenCL;
易于组合模块化组件;
易于创建层并在GPU上运行。
缺点:
需要编写训练代码;
文档有限。
Singa(https://singa.incubator.apache.org/)是一个用C++、Java和Python编写的分布式DL平台。其灵活的架构允许同步、异步和混合训练框架运行。支持广泛的DL架构,包括CNN、RNN、RBM和DBM。
优点:
提供预训练模型;
支持模型/数据或混合分区,以及同步/异步/混合训练;
分布式深度学习系统,能够处理大数据;
广泛用于医疗数据分析。
缺点:
不支持Open Multi-Processing。
TensorFlow(www.tensorflow.org)由Google开发,用C++和Python编写,支持非常大规模的深度神经网络。最近被改名为“TensorFlow Fold”,其动态创建图的能力使架构灵活,允许部署到广泛的设备(如多CPU/GPU桌面、服务器、移动设备等)而无需重写代码【253,254】。它还包含一个名为TensorBoard的数据可视化工具,并支持许多DL架构,包括CNN、GAN、RNN、LSTM和RBMs【255】。
优点:
处理大规模数据并在异构环境中运行;
编译时间比Theano快;
计算图抽象;
支持并行处理;
TensorBoard用于工作流和可视化。
缺点:
内存占用大;
可用的预训练模型数量少;
计算图可能较慢;
不支持矩阵操作;
调试困难。
TF.Learn(www.tflearn.org)是一个基于TensorFlow(见第5.13节)的高级Python API。它支持使用模块化神经网络层和多种优化器、输入和输出进行快速原型设计。支持的DL架构包括CNN、GAN、BRNN和LSTM。
优点:
构建在TensorFlow之上的模块化和透明DL库;
提供一个高级API给TensorFlow。
缺点:
比其竞争对手速度慢。
Theano是一个基于Python的库,构建在核心包如NumPy和SymPy之上。它定义、优化和评估带有张量的数学表达式,并作为许多DL库的基础。
优点:
高灵活性;
高计算稳定性;
非常适合基于张量的数学表达式;
Keras、Lasagne和Blocks等开源库构建在Theano之上;
能够可视化卷积滤波器、图像和图形;
高级包装器如Keras和Lasagne增加了可用性。
缺点:
学习困难;
部署困难;
部署在单个GPU上;
编译时间比TensorFlow慢。
始于2000年,Torch(http://torch.ch/)是一个机器学习库和科学计算框架,已经发展成为一个强大的DL库。核心功能用C语言实现,其余通过LuaJIT脚本语言实现,使Torch非常快。像Facebook和Google这样的软件巨头广泛使用Torch。最近,Facebook的DL模块(fbcunn)专注于CNN,作为Torch的插件开源。
优点:
用户友好;
方便与GPU一起使用;
提供预训练模型;
高度模块化;
易于创建层并在GPU上运行。
缺点:
需要特殊的数据格式和转换;
需要编写训练代码;
可用的文档较少。
Veles(https://github.com/Samsung/veles)是一个基于Python的分布式平台,用于快速开发DL应用。它提供了机器学习和数据处理服务,并支持IPython笔记本。由三星开发,其优势之一是支持OpenCL用于跨平台并行编程,并允许在异构平台(如服务器、PC、移动设备和嵌入式设备)上执行。支持的DL架构包括DA、CNN、RNN、LSTM和RBM。
优点:
支持分布式平台;
支持Jupyter Notebook;
支持OpenCL用于跨平台并行编程。
缺点:
社区支持较少;
在研究社区中兴趣较低。
图4 深度学习工具的相对比较
a 全球生成的Google搜索中提到的个别DL工具的流行趋势(数据来源:Google趋势)。
b 在2020年第一季度提交给arXiv预印服务器的文章中提到的工具。
c 社区参与对各个工具的影响由气泡大小表示,其为GitHub forks和贡献者数量归一化的乘积。
d 关于DL工具之间的互操作性,Keras允许从Caffe、MCT(CNTK)、Theano和TensorFlow导入模型,并允许DL4j导入。
e 关于DL工具的基于硬件的可扩展性,大多数工具提供CPU和GPU支持,而FPGA和ASIC主要用于执行预训练模型。
为了对可用的开源DL工具进行相对比较,我们选择了四个指标,详细如下:使用趋势、社区参与度、工具之间的互操作性和它们的可扩展性(见图4)。
为了评估各种DL工具在DL用户中的流行度和趋势,我们查看了两个不同的来源来评估工具的使用情况。首先,我们从Google Trends中提取了五年(2015年1月至2019年12月)与搜索词相关的全球生成的搜索数据。数据显示,自发布以来,关于TensorFlow的搜索量呈现出逐渐增加的趋势,随后是Keras(图4a)。其次,我们在2020年第一季度(即1月至3月)提交给arXiv的约2,000篇论文的内容中挖掘工具名称的存在【256】。如图4b所示,每个工具在论文中提到的百分比,前六个工具被确定为:PyTorch、TensorFlow、Keras、Caffe、MXNet和Theano。
从GitHub(https://github.com/)的存储库流行度参数(即star、fork和contributors)中计算每个工具的基于社区的开发评分。图4c中的气泡图显示了社区在工具开发中的参与情况,表明了初始稳定版本的年份。图中的每个气泡大小代表了该工具的fork和contributors的归一化综合影响。显然,社区的很大一部分努力集中在TensorFlow上,其次是Keras和Caffe。
在今天的跨平台开发环境中,判断工具灵活性的一个重要指标是其与其他工具的互操作性。在这方面,Keras是最灵活的,其高级神经网络能够在TensorFlow或Theano之上运行。或者,DL4j模型可以导入最初由Keras配置和训练的神经网络模型,这为TensorFlow、Theano、Caffe和CNTK后端提供了抽象层(图4d)。
基于硬件的可扩展性是各个工具的一个重要特性(图4e)。今天的计算设备硬件主要由图形处理单元(GPU)和中央处理单元(CPU)主导。但考虑到计算能力和能源效率的提高,未来几年预计其他芯片类型(包括应用特定集成电路(ASIC)和现场可编程门阵列(FPGA))将发挥更大的作用。到目前为止,DL主要通过软件使用。对硬件加速、能源效率和更高性能的需求推动了基于芯片的DL系统的发展。
图5 在CPU和GPU平台上基准测试堆叠自动编码器或DA(a, b)和LSTM(c-f)。
(a, c)中的数字表示基准测试过程中使用的CPU线程数,(d-f)中的数字表示批处理大小。在DA的情况下,批处理大小为64。
DL方法的强大之处在于它们能够识别经过训练的模式。尽管有多种加速硬件(例如,多核[C/G]PU/FPGA)可用,这个训练阶段仍然非常耗时、繁琐且具有计算挑战性。此外,由于每个工具都提供了多种DL架构的实现,并且通常在不同的硬件平台上强调它们的不同组件,选择适合应用的工具变得越来越困难。此外,不同的DL工具有不同的目标,例如,Caffe针对应用,而Torch和Theano则更多用于DL研究。为了帮助科学家选择适合他们应用的工具,科学家们对流行工具的训练时间进行了基准测试【257,258】。此外,据我们所知,有两个主要的努力公开提供了各种DL工具和框架的基准测试详细信息【259,260】。总结这些开创性的工作,下面我们提供了在多核[C/G]PU平台上不同DL工具(例如,Caffe、CNTK、MXNET、Theano、TensorFlow和Torch)完成四种不同DL架构(例如,FCN、CNN、RNN和DA)训练过程所需的时间作为性能衡量标准。
表8列出了基准测试指定工具时使用的实验设置。整个过程中主要使用了三种不同的设置,每种设置都有Intel Xeon E5 CPU。尽管CPU相似,GPU硬件不同:GeForce GTX Titan X、GTX 980、GTX 1080、Tesla K80、M40和P100。
图6 在不同DL工具中,跨各种GPU的CNN训练速度相对于CPU的提升。报告的值是针对批处理大小为128计算的,除了VGG,其批处理大小为64。
使用表8中的实验设置1对堆叠自动编码器或DA进行基准测试。为了估计各种工具在实现DA上的性能,将三个自动编码器(隐藏层数量分别为400、200和100)堆叠在一起,使用绑定权重和sigmoid激活函数。在MNIST数据集上执行了两步网络训练【261】。如图5(a,b)所示,使用前向运行时间和训练时间评估了各种DL工具的性能。前向运行时间是指通过完整网络评估信息流以生成输入批次、数据集和网络的预期输出所需的时间。相比之下,梯度计算时间测量训练DL工具所需的时间。结果表明,无论使用的CPU线程数或GPU数量如何,Theano和Torch在梯度和前向时间上都优于TensorFlow(图5 a,b)。
使用表8中的实验设置2对RNN进行基准测试。适应的LSTM网络【262】设计为具有10000个输入和输出单元,包含两层和1300万个参数。由于RNN的性能取决于输入长度,实验中使用了长度为32的输入。结果显示(图5 c-f),MCT在CPU和所有三个GPU平台上都优于其他工具。在CPU上,TensorFlow比Torch表现稍好(图5 c)。在GPU上,Torch是最慢的,TensorFlow和MXNet的性能相似(图5 d-f)。
由于大量的模式分析仍使用CNN,我们进一步关注CNN,调查主要工具在不同GPU平台上训练不同CNN网络的性能和扩展性。GPU相对于CPU的时间加速被视为此目的的指标。使用DeepMark【259】的基准测试脚本在实验设置3(表8)上计算每批次一次训练迭代的时间。执行每批次训练迭代所需的时间等于完成一次前向传播操作和一次反向传播操作所需的时间。图6总结了CPU和GPU的每批次迭代训练时间(左y轴)以及相对于CPU的GPU加速(右y轴)。
这些发现针对四种不同的CNN网络模型(即Alexnet【92】、GoogLeNet【94】、Overfeat【263】和VGG【93】)在四个工具(即Caffe、TensorFlow、Theano和Torch)上的表现【264】清楚地表明,与CPU相比,GPU显著加速了网络训练过程。此外,另一个重要的信息是,并非所有GPU都是相同的,所有工具的扩展速度也不同。训练神经网络所需的时间在很大程度上取决于使用的DL框架。就硬件平台而言,Tesla P100加速器提供了最佳加速,Tesla M40次之,Tesla K80最慢。在CPU上,TensorFlow实现了最短的训练时间,表明网络训练速度更快。在GPU上,Caffe通常相对于CPU提供最佳加速,但TensorFlow和Torch的训练速度比Caffe快。尽管TensorFlow和Torch的性能相似(由线条的高度表示),Torch在大多数网络中略微优于TensorFlow。最后,大多数工具的性能都优于Theano。
大脑几乎可以瞬间识别和理解模式。几十年来,科学家们一直试图解码大脑中自然模式识别的生物机制,并将这些原理转化为人工智能系统。对大脑信息处理策略的日益深入了解使得这种类比得以在计算系统中采用和实现。最近的技术突破、不同技术的无缝集成、对学习系统的更好理解、计算成本的下降以及计算能力的增加使计算系统在某些情况下达到了人类水平的计算能力【265】。然而,许多这些方法仍需要改进。尽管DL方法在生物数据上的应用存在明显差异,但常见的开放问题和挑战同样适用于生物数据。以下列出流行方法的不足和瓶颈、开放研究问题和挑战,并概述需要在近期内关注的可能方向。
首先,DL方法通常需要大型数据集。尽管随着计算能力和速度的增加,计算成本在下降,但在小到中等规模的数据集情况下应用DL方法并不划算。这尤其如此,因为许多DL方法假定存在可学习的传递函数,可以执行从一个数据流形到另一个的几何变换【266】。然而,当数据之间的关系是因果的或非常复杂以至于无法通过几何变换学习时,无论数据集的大小,DL方法都将失败【267】。此外,由于对DL理论的深入理解不足,解释DL方法的高级结果是困难的,这导致许多此类模型被认为是“黑箱”【268】。此外,与许多其他ML技术一样,DL也容易出现误分类【269】和过分类【270】。
另外,利用开放访问数据存储库所提供的全部优势(在数据共享和重用方面)通常会受到缺乏统一的数据报告标准和报告信息不一致的阻碍【271】。这些生物大数据的数据来源、管理和注释也是巨大的挑战【272】。
此外,除了少数大型企业,DL技术通过云计算进行分布式和并行计算的能力仍然未被充分探索。由于DL技术需要针对不同数据集重新训练,重复训练成为云计算环境的瓶颈。此外,在这样的分布式环境中,数据隐私和安全问题依然存在【273】,而实验数据的实时处理能力仍未得到充分发展【274】。
为了减轻这些不足并解决开放问题,需要改进现有的DL方法的理论基础。DL模型不仅需要能够描述特定数据,还需要能够基于实验数据进行泛化,这对于量化各个神经网络模型的性能至关重要【275】。这些改进应在多个方向上进行,解决个别模型学习效率的定量评估以及与明确参数调整策略相关的计算复杂性的问题,基于数据驱动属性的泛化和拓扑自组织能力。此外,为了简化和减少分析结果解释的麻烦,DL框架中应纳入新的数据可视化工具。
最近在深度强化学习(deep RL)方面的结合方法已被广泛应用于许多应用领域(关于深度RL的综述,见【276】)。然而,深度RL方法尚未应用于生物模式识别问题。例如,分析和聚合来自多个层次的生物数据中动态变化的模式可以帮助消除数据冗余,并发现新的疾病检测和预防生物标志物。此外,需要新的深度RL方法来减少当前所需的大量标记训练数据。
需要重新努力对数据及其来源进行标准化、注释、管理和溯源,并确保不同存储库之间的信息一致性。此外,为了跟上快速增长的大数据,需要强大而安全的计算基础设施,以分布式、云计算和并行计算形式,适应这些理解良好的学习机制。最后,还有许多流行的DL工具(例如Keras、Chainer、Lasagne)和架构(例如DBN)需要进行基准测试,提供更多的用户选择。此外,目前可用的基准测试大多在非生物数据上进行,其在生物数据上的可扩展性较差,因此需要专门的生物数据基准测试。
为了从图像、序列或信号分析问题中获取见解,使用库或工具(例如TensorFlow、Keras、PyTorch等)的选定DL算法可能需要与大数据框架(例如Hadoop、Spark等)集成。在这种情况下,由于多线程的并行执行,系统设计师在模型故障排除和代码调试时可能会面临很大的挑战,因为这些线程可能并不总是按顺序执行。这些库的文档缺乏和模型透明度可能使项目经理无法估计成功完成项目所需的努力。
来自不同应用领域的多样化生物数据具有多模态、多维度和复杂性。目前,已有大量此类数据公开可用。对这些数据的可负担访问带来了巨大的挑战,即分析和识别其中的模式,需要复杂的ML工具来完成这项任务。因此,在过去几十年中开发并报道了许多基于ML的分析工具,这一过程极大地促进了计算成本的降低、计算能力的增加和廉价存储的可用性。借助这些学习技术,机器已经能够理解和解读生物数据中的复杂模式和变量交互。为了促进DL技术在生物数据上的广泛传播,并作为参考点,本文全面回顾了这些技术在生物数据上的应用文献和相关的开放访问数据存储库。它还列出了现有的实施各种DL方法的开源工具和框架,并比较了这些工具的流行度和性能。最后,本文指出了一些开放问题,并提出了一些未来展望。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。