并行深度学习在生物信息学中的应用
第15章 并行机器学习和深度学习在生物信息学中的应用
M. Madiajagan,理学硕士,博士 • S. Sridhar Raj,工学学士,工程硕士
15.1 引言
机器学习被广泛用于执行单个或一系列操作,而无需程序员明确解释,这展示了人工智能的潜力[1]。该技术不是遵循程序员的指令,而是通过统计分析与数据分析来执行任务。因此,它是一种能够自主学习经验并对其做出反应的潜在技术[2]。
它为社交网络、在线客户关系发展、预测相关应用等提供了多种应用。所谓预测相关应用,是指生物信息学领域有许多用于预测性分析的应用,这也是机器学习在生物信息学问题上取得卓越成果的原因。[4]
15.1.1 机器学习与深度学习
机器学习算法的基本思想是理解人类所面临的现实问题。无监督、半监督和有监督学习等技术解释代表了生物信息学数据集的标签因素[5,6]。其目标是利用以往数据集的历史获取知识,并相应地采取行动。为此,需要采用潜在的方法和算法,这是一个复杂的过程[7]。
为了克服这种复杂性,神经网络应运而生。通过使用深度神经网络(DNN),可以解决分析大规模数据集的复杂性问题。只有在拥有大规模数据集的情况下,才能充分挖掘DNN的基本潜力。用于训练的数据集越大,测试准确性就越高[8,9]。
自然语言处理、视频处理、推荐系统、疾病预测、药物发现、语音识别、网页内容过滤等是深度学习的一些应用。随着学习算法的应用范围不断拓展,深度学习的应用也急剧增长。
15.1.2 并行化在深度学习中的作用
为了训练庞大的深度神经网络,需要强大的计算能力、时间和迭代次数。因此,这里就需要并行处理。深度学习具有识别复杂的多维结构和大规模问题的能力,这些问题出现在图像处理、语音识别和视频处理中 [12,13]。
高层表示可以通过训练大规模数据集和具有大量层和参数的庞大深度学习网络来获得。训练大型模型需要消耗大量时间才能获得一个训练良好的模型。为了解决这个问题,这些大规模深度学习模型通过分布式系统进行并行训练,这些系统拥有数十亿个核心以及具有大量计算线程的GPU[7,14]。
训练大型数据集需要耗费大量小时。近年来的大数据热潮使人们纷纷关注机器学习,并将这些概念应用于当今几乎所有的领域。根据问题类型和可用数据的不同,可采用逻辑回归、支持向量机、核方法、主成分分析、线性回归、朴素贝叶斯、随机森林和神经网络等机器学习算法[12,15]。我们可以使用多种算法来提高预测结果的准确性,但这可能会增加计算量,从而导致更长的训练时间。并行计算可作为处理大型数据集的强大工具[16]。
大多数深度学习算法本身可以并行工作,而有些则不能。机器学习算法背后的数学主要是线性代数,通过遍历所有训练点来计算核矩阵或梯度。大规模矩阵乘法是导致计算瓶颈的主要原因[17]。为了优化训练,可以采用并行计算。MapReduce 只能并行化大多数机器学习算法,其中分布的期望通过在数据点的函数上求和来确定。GraphLab 是另一种更广泛的框架,用于具有稀疏依赖关系的异步迭代算法[12]。
开发用于处理现实世界应用中大型数据集的并行机器学习算法是不可避免的。最近,基于机器学习的 IBM 海法实验室和沃森实验室开发了用于并行机器学习的工具[18]。IBM 海法实验室和沃森实验室与 IBM 的开发和服务部门、合作伙伴及客户合作,以满足其需求,并与大学合作推动工业研究。这些实验室持续重塑和聚焦自身,以保持技术前沿地位,目前大多数项目属于人工智能、云数据服务、医疗信息学以及图像和视频分析领域,同时也涵盖移动应用、安全和质量[19]。这些实验室还重点关注医疗领域。这些工具在多线程和多处理器机器上执行机器学习算法时非常有帮助[20]。
15.1.3 深度学习在生物信息学中的应用
生物信息学,或称计算生物学,是通过计算机科学解释生物数据的科学。由于蛋白质序列、基因组学、生物分子和生物系统的三维建模等领域的迅猛发展,正在产生大量的生物数据。[22]需要进行复杂的分析才能从这些海量生物数据中得出结论。
进行生物信息学数据分析需要具备分子生物学和计算机科学的良好知识。随着基因组、蛋白质组及其他生物信息学应用产生的数据大规模增加,对这些数据的分析受到越来越多的关注[23]。数据挖掘技术是分析这些数据集的基础。对大规模数据的分析结果应在数据推断出的结构方面具有合理性[24]。
分类任务中的一些应用包括癌细胞分类、基因分类和微阵列数据分类。蛋白质结构预测、蛋白质‐蛋白质相互作用的统计建模、基因表达数据聚类、基因发现、蛋白质功能域检测、功能基序检测、蛋白质功能推断、疾病诊断、疾病预后、疾病治疗优化、蛋白质和基因相互作用网络重建、数据清洗以及蛋白质亚细胞定位预测等等是一些更多的应用[25]。因此,深度学习与生物信息学之间的关系正处于更大增长和潜力的道路上。
例如,微阵列数据可用于预测患者预后。基于患者的基因型微阵列数据,可以估计其生存时间以及肿瘤转移或复发的风险。一种能够全面考虑相关性信息的高效算法是非常可取的。
本章其余部分组织如下:在第15.2节中,讨论深度学习与并行化之间的关系;在第15.3节中,讨论深度学习在生物信息学中的作用;第15.4节介绍并行深度学习算法在生物信息学应用中的应用;第15.5节展示训练过程的实现截图;第15.6节总结所有章节内容,并提出未来的研究方向。
15.2 深度学习与并行处理
本节讨论了关于并行处理算法和基于深度学习的并行算法的基本概念。该讨论将有助于深入了解深度模型与并行算法的结合。
15.2.1 并行处理
并行处理主要用于通过将大规模数据集分割成小的有意义的部分来最小化单调过程的计算时间,从而从中获得适当的结果。Web服务、社交媒体、语音处理、医学成像、生物信息学以及许多类似领域正面临分析每天收集的太字节级数据的困难。有些问题即使使用多个处理器也无法降低其运行时复杂度[26]。
在某些情况下,例如用户与界面的交互体验,当用户尝试访问某个内容时,如果并行线程跳转到其他位置,就会产生挫败感。当并行算法的运行时复杂度除以处理器数量等于顺序处理中的最佳运行时复杂度时,该算法被称为高效的。因此,某些活动必须仅以串行方式进行,而判断将其设为并行或串行的趋势则是一个独立的问题领域[25]。
为了解决此问题,我们转向并行处理,即使用多个处理器来处理指令。这样工作负载可以在多个处理器之间进行分配。参见图15.1。
并行计算的缺点是处理器之间的依赖性,即一个处理器需要等待另一个处理器的结果。双核、多核、i3、i5、i7等均表示现代计算环境中处理器的数量。
15.2.2 并行化方法的可扩展性
在不同机器上或在具有多个核心的单台机器上进行并行处理的不同方式被称为本地训练过程。一旦数据在机器中实现数据本地化,它将负责内部的并行处理[27]。多个核心的使用可以分为两种类型,它们是:
- 在单一层中加载多个数据并应用多核处理器的冗长方法。
- 另一种方法是将数据分批,并向每个核心发送一批进行处理。
在本地机器上存储非常大的数据集是不可行的,除非内存随使用量成比例增加。为解决此问题,数据以分布式方式存储在多台机器上。在此情况下,可以对模型或数据进行分布,具体如下所述。在数据并行中,数据被分布到多台机器上。当数据量较大或需要更快处理时,可采用数据并行。另一方面,如果模型过大而无法放入单个系统中,则可采用模型并行。当一个模型被放置在单台机器上时,一个模型需要另一个模型的输出。这种前向和后向传播以串行方式[28]建立不同机器上的模型之间的通信。
15.2.3 使用并行算法的深度学习
机器学习算法倾向于用简单解决方案解决复杂问题,这一趋势也需扩展到大规模问题。通过探索大规模问题中的机器学习,我们推断出的结果和模式必然超出逻辑思维的范畴。但顺序机制的时空约束阻碍了发展。诸如 Spark 和 Hadoop 等平台可用于超参数和集成学习中的并行任务,其中需要分析多个模型[29]。
15.2.3.1 深度学习中使用并行的优势
- 当涉及到深度学习时,艺术在于其中涉及了人工神经网络(ANNs)。ANN 将大量数据作为输入,学习参数并训练为模型。所需的训练时间非常长。学习大量参数需要很长的计算时间。计算时间通常以天为单位,其中“q”表示处理器的核心数量。即使在 8q 机器上,VGGNet 应用的训练也需要大约 10 小时。这是一个计算密集型过程,耗时较长[30]。
- 深度神经网络的基本结构是其在各层之间的分布式特性。深度学习的并行化使得训练时间从数月缩短到数周,甚至数天。
- 这里的关键是加速,其他都不重要。你可以单靠一个处理器或一台机器运行深度学习解决方案,只要你能容忍其缓慢性[29]。因此,加快速度的可靠方法是使用硬件加速,就像计算机图形学一样,因为图形学和深度学习本质上都是并行的[13]。
15.2.3.2 深度学习中的并行性挑战
直接在问题上应用并行算法是困难的。可扩展的顺序算法无法纠正这些问题。为了克服这一挑战,已经讨论了一种框架,该框架基于函数式编程抽象,在大规模分布式数据(如社交网络)上实现并行机器学习算法[31]。
通过使用函数式组合子可以非常容易地实现这些算法,从而得到聚合、分布式和顺序过程的最佳组合。该系统还在同步并行模型中避免了控制反转。并行处理单元(即GPU(图形处理单元))的成本是需要克服的另一个挑战。
15.3 深度学习与生物信息学
深度学习与生物信息学与图像处理、计算机视觉、医学图像、DNA测序、RNA检测、基因结构预测、药物发现、抗生素耐药性、农业、天气预报、法医学、生物武器、营养科学等基础应用紧密结合。生物信息学在应用卷积神经网络、深度置信网络和循环神经网络后,生物信息学问题的研究仍处于发展的初期阶段[24]。图 15.2 展示了生物信息学的各种应用。分子生物学、基因组学等作为生物信息学的应用并不令人意外。但值得注意的是,利用信息技术、数据库以及使用计算机辅助软件进行药物设计所推动的生物信息学的发展。
15.3.1 生物信息学应用
所有机器学习和深度学习算法在生物信息学应用中的表现都很显著。这表明深度学习是该领域应用技术中最有效的。然而,仍需针对问题选择合适的模型和参数。参见图15.3。接下来讨论生物信息学研究中的一些领域。
15.3.1.1 序列分析
序列分析是计算生物学领域中的一项基本操作。它用于在医学分析和基因组作图过程中寻找相似的生物序列以及差异部分。通过分析序列,可以对其进行适当的比对。
经常被查询的序列会存储在数据库中,以便计算机定期访问。
15.3.1.2 基因组注释
Dr. 欧文·怀特设计了 1995 年的首个基因组注释软件模型。基因组学不过是对基因组的在 DNA 序列中标记基因及相关生物学特征。
15.3.1.3 基因表达分析
通过使用微阵列、DNA测序、基因串行分析、并行标记测序等技术,可以确定大多数基因的表达。所有上述技术都是无噪声的,并且主观上不会因环境而产生偏差。在基因表达研究中,当前的发展趋势是开发能够区分和分离信号与噪声的工具。
15.3.1.4 蛋白质表达分析
有多种方法可以测量基因表达,但由于蛋白质的催化特性,蛋白质表达是其中最佳的方法。通过蛋白质微阵列、质谱法和很高的利用率,可以获得用于分析的蛋白质快照。
15.3.1.5 癌症突变分析
癌症患者机体中的基因组以一种极为混乱的方式随机重排。要识别未知的突变位点,需要非常高的高通量测序方法。随着人类群体数量的增加,因此需要高级系统来正确识别序列。
15.3.1.6 蛋白质结构预测
预测蛋白质结构所需的主要序列是氨基酸序列。它可以从基因序列本身推导出来,有助于识别基因的独特结构。
了解这种独特结构在认识蛋白质功能方面起着非常重要的作用。为了设计药物和新型酶,需要进行蛋白质结构预测。
15.3.1.7 生物系统建模
生物系统建模在计算生物学科学领域具有更高的要求。
细胞系统采用计算机模拟,基因调控网络用于检测细胞网络中的复杂结构。细胞之间的连接可以通过计算机建模得到很好的定义,但也容易被忽视。人工智能领域的本身目标是通过构建类似系统来理解现实问题。
15.3.1.8 高通量图像分析
生物图像具有提供高度信息内容的潜力。通过分析这些医学图像,研究人员可以做出积极的决策优点和缺点。研究人员的观察工作可以完全由计算机建模系统取代。一些应用包括临床图像分析、DNA克隆重叠检测等。
15.3.1.9 微阵列
为了自动收集大量数据,微阵列非常有用。机器学习可以在分析过程中辅助微阵列,进而帮助识别基因之间的模式与网络。
通过微阵列观察基因组中基因的表达,从而实现癌症诊断。径向基函数、深度学习、贝叶斯网络、决策树和随机森林是分析这些观测数据最常用的方法。
15.3.1.10 系统生物学
通过观察生物系统中的组分,可以推断出该系统的行为。
脱氧核糖核酸、核糖核酸和代谢物是需要被观察的一些组分。针对这些组分已开发出概率模型,并将其应用于包含马尔可夫模型的遗传算法中。一些应用包括酶功能预测、高通量微阵列数据分析、全基因组关联研究分析以更好地理解多发性硬化症的标记物、蛋白质功能预测以及酵母中基因的NCR敏感性鉴定。
15.3.1.11 文本挖掘
在生物数据库、文章等领域中,文本挖掘的需求非常高。
仅观察蛋白质序列无法推断出其结构的全部细节,必须借助其他附加技术,从元数据中提取潜在信息,确定蛋白质的亚细胞定位,分析DNA表达阵列,以及大规模的蛋白质和分子相互作用。文本挖掘的另一个应用是在具备足够参考数据的情况下,对不同DNA区域进行检测与可视化[24]。
15.3.2 在生物信息学应用中使用并行深度学习的优势
生物信息学将生物学与计算机科学相结合,原因如下:
- 确定疾病的分子原因;
- 解释疾病在基因水平上的影响因素;
- 通过使用机器学习、深度学习和数据挖掘技术更快地解释和分析数据;
- 提高结果准确性;
- 利用下一代测序技术检测突变;
- 促进癌症测序。
使用并行深度学习进行生物信息学应用的挑战
- 减少划分进程和合并结果所需的额外时间;
- 确保并行化过程的性能使额外耗时变得可忽略;
- 识别对于特定任务,并行化过程是否比串行过程耗时更长,如何克服此问题,以及降低时间开销所需的机制;
- 开发高效的生物信息学算法与方法,用于靶点识别与验证、先导化合物识别与优化,以改进药物发现[32]。
15.4 并行深度学习在生物信息学应用中的实现及实时数值示例
在生物信息学应用中应用并行深度学习方法在实现上带来了更大的挑战。本节讨论了其开销、适用性问题及相关问题。
已设计一个通用模型,用于对生物信息学应用的数据与深度学习算法进行并行执行。图15.4和图15.5描述了使用深度学习进行并行执行的数据流。该数据流包括以下步骤:
1. 所需的生物信息学数据通过传感器或类似设备从受试者处收集。
2. 根据应用类型和用户目的对收集的数据进行预处理。
3. 预处理数据准备好后,整个数据集被划分为训练数据和测试数据。
4. 采用传统的训练和测试划分比例 70:30。
5. 现在,将训练数据输入以训练 CNN 模型。
6. 为了实现并行处理,需要将数据集均分为两部分以进行并行处理。某些调度算法可以被用于根据进程中可用的核心数量来调度进程。
7. 对分割 CNN 特征的深度学习算法执行以划分数据集。
8. 然后,模型在独立核心上进行训练。
9. 训练结束后,必须将训练数据的结果无损地合并到单一模块中。
10. 将训练结果保留在单一模块中可使测试过程更加顺畅。
11. 模型在每次迭代训练期间被保存为检查点,以便在测试期间进一步处理。
让我们考虑一些关于在深度学习生物信息学应用中引入并行处理所导致的时间开销的实时数值。假设:
- 数据集中的记录总数为1000;
- 提供一个四核处理器用于并行执行。
训练部分参数
- 提供的处理器数量为4;
- 数据集中的训练记录数为700;
- 每个处理器用于并行执行的记录数为 700/4;
- 一次数据分配到处理器所需时间为1秒(4×1 = 4秒);
- 单条记录的训练时间为1秒;
- 每次表合并时间为2秒;
- 四核处理器的总体计算耗时8秒。
测试部分参数
- 提供的处理器数量为4;
- 数据集中的测试记录数为300;
- 每个处理器用于并行执行的记录数为75;
- 一次数据分配(分离)到处理器所需时间为1秒(4×1 = 4秒);
- 单条记录的训练时间为1秒;
- 每次表合并时间为2秒;
- 四核处理器的总体计算耗时10秒;
- 预测时间为2秒;
- 将预测结果写入数据集每条记录耗时1秒。
用于训练的数据集划分基于以下处理器能力:
- 处理器数量;
- 每个处理器的负载均衡能力;
- 容错性;
- 可扩展性;
- 互操作性;
- 根据应用程序需求记录数据集;
- 事实是,一旦数据集准备就绪,必须以无损且保持依赖的方式构建数据模式;
- 第一级数据集分离的思想是将数据划分为训练数据和测试数据。这一级别的数据分离无需检查是否无损和保持依赖,因为我们不会再将其合并;
- 使用第二级划分或调度数据集,依据是执行所给处理器的数量可用性。
深度学习算法分割到处理器上可以通过两种方式进行:
- 深度学习算法可以固定为基线,并将相同的伪代码传递给所有处理器;
- 如果数据集之间没有数据依赖性,则每个处理器可以执行不同的算法以实现相同的目的。
要么处理器,要么进程必须保持不变,以便另一个执行并行处理。前者将作为后者的参考点。遵循这一原则,可以操纵和安排任意数量的参数以适应并行处理。但主要要求是数据集之间不应存在任何数据依赖性。
解决并行处理中的数据依赖问题非常繁琐。尽管可以使用结构化查询语言来有效管理该问题,但对并行环境的动态更改却很困难。因此,需要单独高效的并行算法来解决并行处理器之间这种动态变化的问题。
15.5 示例实现截图以可视化训练过程
本节逐步展示了实现过程的截图。
在图15.6中,显示了后端TensorFlow初始化以及用于过程计算的GPU设备释放。
图15.7展示了卷积神经网络(CNN)模型的初始化。该模型以检查点文件形式存储,并在后续迭代中由同一网络模型重新载入。卷积神经网络在每次卷积层操作后,最终在池化层执行池化操作。图中还给出了池化操作的频率以及平均池化层的输出格式。
并行算法的最终目标是减少特定任务所需的执行时间。
图15.8显示了为分类任务计算的相似性矩阵。相似性值越高,样本与相应类别的距离越近;并且它们被映射到各自的类别中。
图15.9展示了样本训练和测试的执行时间。执行时间表明了并行算法在深度学习技术中发挥作用的有效程度。
图15.10显示了每个类别的最终分类样本。通过这些信息,我们可以轻松地对样本及其所属类别进行分类。
15.6 总结
在深度学习与生物工程这一交叉领域中,生物信息学应用对学习技术具有非常广泛的应用前景。生物信息学领域非常适合开发海量数据,这最适用于深度学习过程,但在分子水平上缺乏组织性。由于深度学习与生物信息学是当今世界快速发展的领域,解决其中的研究问题非常重要。
在本章中,通过示例解释了并行处理的基本概念,以清晰地引出并行深度学习。讨论了并行化技术的类型及其图解说明,并重点介绍了它们的内部分类方式。探讨了生物信息学与深度学习之间的关系、将二者结合所面临的挑战及其优势。通过简单的数值示例,说明了并行深度学习算法在实时数据集上的适用性。
以上所有图表展示了从预处理到分类过程的逐步流程。此外,分类错误取决于每个类别下被分类的样本数量。样本数量不均衡会导致严重的分类错误。可以通过使用伪样本来规范化标签,利用生成方法来稳定这些错误。
生物信息学中生成的伪样本的可信度是一个主要问题。由于数据结构的复杂性,对生成的伪样本进行评估非常繁琐。需要特定用途算法来将这些伪样本与类别的原始样本相结合。
机器学习研究的主要任务是预测。生物医学和生物信息学等领域对这一预测任务具有更广泛的应用范围。深度学习及其他基于深度的表示学习算法已成功应用于图像理解、语音识别和文本分类等。此外,半监督学习、从正例和未标记样本中学习、多视图学习、迁移学习、概率图模型等也得到了快速发展。本章涵盖了方法论、实现方式以及实际应用中的数据,希望能为机器学习研究人员提供新的指导,并拓宽医学与生物信息学研究人员的视野。
更多推荐
所有评论(0)