首页 > 编程知识 正文

基于深度学习的前景检测,abc learning会员和非会员区别

时间:2023-05-03 18:59:52 阅读:207609 作者:1407

译文Deep Learning in Bioinformatics --深度学习在生物信息学领域的应用(1) 深度学习在生物信息学领域的应用(1) 原文链接:https://arxiv.org/abs/1903.00342 摘要

在大数据时代,将生物医学大数据转化为有价值的知识是生物信息学面临的最重要挑战之一。自本世纪初以来,深度学习得到了迅速发展,如今在各个领域都展现出了最先进的表现。因此,将深度学习应用于生物信息学中,从数据中获取真知灼见,受到了学术界和工业界的重视。在这里,我们回顾了生物信息学中的深度学习,并给出了当前研究的例子。为了提供一个有用和全面的视角,我们根据生物信息学领域(如生物组学、生物医学成像、生物医学信号处理和深度学习架构(如深度神经网络、卷积神经网络、递归神经网络、涌现结构),并对每项研究进行简要描述。此外,我们讨论了生物信息学深度学习的理论和实践问题,并提出了未来的研究方向。我们相信这篇综述将提供有价值的见解,并作为研究人员在其生物信息学研究中应用深度学习方法的起点。

关键词

深度学习,神经网络,机器学习,生物信息学,生物组学,生物医学成像,生物医学信号处理

关键点 随着大量生物医学数据的积累,各种机器算法被广泛应用于生物信息学中,从大数据中提取知识。深度学习由大数据获取、并行和分布式计算能力以及复杂的训练算法发展而来,促进了图像识别、语音识别和自然语言处理等多个领域的重大进展。我们回顾了生物信息学的深度学习,并按生物信息学领域(即、组学、生物医学成像、生物医学信号处理和深度学习架构(即、深度神经网络、卷积神经网络、递归神经网络、突发体系结构)。此外,我们还讨论了影响深度学习在生物信息学中的应用的理论和实践问题,包括不平衡数据、解释、超参数优化、多模态深度学习和训练加速。通过对已有研究成果的全面回顾,我们认为本文将为研究者将深度学习方法应用于生物信息学研究提供有价值的见解和切入点。 作者信息

引言

表1:按字母顺序排列的缩写

在“大数据”时代,将大量数据转化为有价值的知识在[1]的各个领域变得越来越重要,生物信息学也不例外。已经积累了大量的生物医学数据,包括组学、图像和信号数据,其在生物和卫生保健研究中的应用潜力已经引起了业界和学术界的关注。例如,IBM为肿瘤学开发了Watson,这是一个分析患者医疗信息并帮助临床医生选择治疗方案的平台[2,3]。此外,谷歌DeepMind,已经取得了巨大的成功AlphaGo在围棋游戏中,最近推出了DeepMind Health以开发有效的医疗保健技术[4,5]。

从生物信息学的大数据中提取知识,机器学习已经成为一种被广泛应用和成功的方法。机器学习算法使用训练数据来揭示潜在的模式,建立模型,并基于最合适的模型做出预测。事实上,一些著名的算法(例如支持向量机,随机森林,隐马尔可夫模型,贝叶斯网络,慈祥的店员网络)已被应用于基因组学,蛋白质组学,系统生物学等众多领域的[6]。

传统机器学习算法的性能主要依赖于称为特征[7]的数据表示。然而,特性通常是由具有广泛领域专业知识的人类工程师设计的,并且识别哪些特性更适合给定的任务仍然很困难。深度学习是机器学习的一个分支,最近基于大数据、并行和分布式计算的能力以及复杂的算法出现了。深度学习已经克服了以前的局限性,自本世纪初以来,学术兴趣迅速增长(图1)。此外,在人工智能(AI)社区已经挣扎多年的各个领域,深度学习是取得重大进展的原因。到目前为止,最重要的进展之一是图像和语音识别[9-15],尽管在自然语言处理[16,17]和语言翻译[18,19]方面已经取得了可喜的成果。当然,生物信息学也可以从深度学习中获益(图2):可以从DNA序列中发现拼接连接,可以从x线图像中识别手指关节,可以从EEG信号中检测失误等等。

以前的综述涉及到生物信息学中的机器学习[6,20]和深度学习的基础[7,8,21]。此外,虽然最近发表的综述由Leung等人[22]、Mamoshina等人[23]和Greenspan等人[24]讨论了深度学习在生物信息学研究中的应用,前者仅限于基因组医学的应用,后者仅限于医学成像。在本文中,我们对生物信息学的深度学习和按生物信息学领域(即生物组学、生物医学成像、生物医学信号处理和深度学习架构(即、深度神经网络、卷积神经网络、递归神经网络、突发体系结构)。本文的目的是提供有价值的见解,并作为一个起点,以促进在生物信息学研究中的应用。据我们所知,我们是最早回顾深度学习在生物信息学中的应用的小组之一。

深度学习:简要概述

创造人工智能系统的努力有着悠久的历史。图3说明了不同规程之间的关系和高级示意图。早期的方法试图为给定的任务显式地编写所需的知识;然而,这些在处理复杂的现实问题时面临着困难,因为设计一个人工智能系统所需的所有细节来手工完成令人满意的结果是如此苛刻的工作[7]。机器学习提供了更可行的解决方案,能够通过经验和数据进行改进。虽然机器学习可以从数据中提取模式,但是在原始数据处理方面存在一些限制,这很大程度上依赖于手工设计的特性。为了从手工设计的特性向数据驱动的特性发展,表示学习,尤其是深度学习已经显示出巨大的潜力。表示学习可以从给定任务的数据中发现有效的特性及其映射。此外,深度学习可以通过结合从数据中学习到的更简单的特性来学习复杂的特性。换句话说,利用多非线性层的人工神经网络,称为深度学习体系结构,随着[25]抽象层次的增加,可以发现数据的层次表示。

深度学习的关键要素

深度学习的成功建立在重要算法细节的基础上,通常可以通过两部分来理解:深度学习体系结构的构建和培训。深度学习体系结构基本上是多非线性层的人工神经网络,并根据输入数据的特点和研究目标提出了几种类型。在这里,我们将深度学习架构分为四组(即、深度神经网络(deep neural networks, DNNs)[26-30]、卷积神经网络(convolutional neural networks, CNNs)[31-33]、递归神经网络(neural networks, RNNs)[34-37]、涌现架构(emergent structures, 38-41)等,并对每一组进行了详细的解释(表2)。一些论文使用“DNNs”来涵盖所有的深度学习架构[7,8];然而,在这篇综述中,我们使用“DNNs”专门指多层感知器(MLP)[26]、堆叠式自动编码器(SAE)[27,28]和深度信念网络(DBNs)[29, 30] 、分别使用感知机[42]、自动编码器(AEs)[43]和受限玻尔兹曼机(RBMs)[44, 45]作为神经网络的构建块。CNNs是一种结构,它由卷积层、非线性层和池化层组成,尤其在图像识别方面取得了成功。RNNs的目的是利用输入数据的顺序信息,这些信息在感知器、长短时记忆单元(LSTMs)[36,37]或门控循环单元(GRUs)[19]等构建块之间建立循环连接。此外,许多其他涌现的深度学习架构也被提出,如深度时空神经网络(DST-NNs)[38]、多维递归神经网络(MDRNNs)[39]和卷积自编码器(CAEs)[40,41]。

表2:生物信息学中深度学习应用研究的分类

训练深度学习架构的目标是优化每一层的权值参数,逐步将简单的特征组合成复杂的特征,从数据中学习最合适的层次表示。优化过程的一个单周期组织如下[8]。首先,给定一个训练数据集,向前传递按顺序计算每个层的输出,并通过网络向前传播函数信号。在最后一个输出层,目标损失函数测量推断输出与给定标签之间的误差。为了最小化训练误差,后向遍历使用链式法则反向传播误差信号,并计算整个神经网络[46]中所有权值的梯度。最后,利用基于随机梯度下降(SGD)[47]的优化算法对权值参数进行了更新。批量梯度下降对每个完整的数据集执行参数更新,而SGD通过对每个小组数据示例执行更新来提供随机逼近。几种优化算法起源于SGD。例如,Adagrad[48]和Adam[49]执行SGD,同时根据每个参数的更新频率和梯度矩自适应地修改学习率。

深度学习体系结构训练的另一个核心要素是正则化,它是指避免过度拟合从而获得良好泛化性能的策略。例如,重量衰减[50],一种著名的传统方法,在目标损失函数中增加一个惩罚项,使重量参数收敛到更小的绝对值。目前,使用最广泛的正则化方法是dropout[51]。在训练过程中,Dropout随机地从神经网络中移除隐藏的单元,可以被认为是可能的子网络[52]的集合。maxout[53]提出了一种新的激活函数和rnnDrop[54]作为RNNs的一种变体。此外,最近提出的批量归一化[55]通过对小批量内每个激活的标量特征进行归一化,并将每个均值和方差作为参数学习,提供了一种新的正则化方法。

深度学习库

要真正实现深度学习算法,需要大量关注算法细节。幸运的是,许多开放源码的深度学习库都可以在线使用(表3).目前还没有明显的领先者,每个库都有自己的优势[56]。根据CNNs的基准测试结果,具体实现了AlexNet [33]Baharampour等人的[57],基于python的Neon[58]在处理速度上有很大的优势。基于c++的Caffe[59]和基于lua的Torch[60]分别在预训练模型和功能扩展方面具有很大的优势。基于python的Theano[61,62]提供了一个低层库来定义和优化数学表达式; 此外,许多高级包装器,如Keras[63]、Lasagne[64]和Blocks[65],都是在Theano之上开发的,以提供更直观的界面。谷歌最近发布了基于c++的带有Python接口的TensorFlow[66]。这个库目前表现出有限的性能,但正在不断改进,因为现在支持异构分布式计算。此外,TensorFlow还可以利用Keras,它提供了一个额外的模型级接口。

表3:深度学习库比较

未完待续

版权声明:本文为博主原创文章,未经博主允许不得转载。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。