《深度学习及其在生物医学中的应用》

    技术2025-06-06  11

    Deep Learning and Its Applications in Biomedicine

    paper 2018年发表与Genomics Proteomics Bioinformatics 16 (2018) 17–32 作者: CapitalBio Corporation, Beijing 102206, China 2Department of Biotechnology, Beijing Institute of Radiation Medicine, Beijing 100850, China 3State Key Lab of Ophthalmology, Zhongshan Ophthalmic Center, Sun Yat-sen University, Guangzhou 500040, China 4Zhongshan School of Medicine, Sun Yat-sen University, Guangzhou 500040, China 5Department of Biomedical Engineering, Medical Systems Biology Research Center, Tsinghua University School of Medicine, Beijing 100084, China 截止2020年7月8日被引用137次。

    目录

    Deep Learning and Its Applications in BiomedicineabstractIntroductionThe development of ANNsThe development of deep learning Brief description of deep learningBasic conceptsActivation functionsOptimization objectiveLoss functionRegularization termOptimization methods Deep learning architecturesAEs受限玻尔兹曼机(RBM,restricted Boltzmann machines)和深度信任网络DBN(deep belief networks )卷积神经网络(Convolutional neural networks)递归神经网络(Recurrent neural networks) Applications in biomedicineMedical image classification and segmentationGenomic sequencing and gene expression analysisPrediction of protein structure Conclusion and perspective

    abstract

    生物和医学技术的进步为我们提供了爆炸性的生物和生理数据,如医学图像、脑电图、基因组和蛋白质序列。从这些数据中学习有助于理解人类的健康和疾病。基于深度学习的算法从人工神经网络发展而来,在从复杂数据中提取特征和学习模式方面显示出巨大的前景。本文的目的是提供深度学习技术和一些最先进的应用在生物医学领域的概述。本文首先介绍了人工神经网络和深度学习的发展现状。然后,我们描述了深度学习的两个主要组成部分,即深度学习体系结构和模型优化。在此基础上,给出了一些深度学习的实例。

    Introduction

    深度学习是近年来发展迅速的机器学习领域。它试图通过使用多层深度神经网络(DNNs)对大规模数据的抽象建模,从而使图像、声音和文本等数据变得有意义[1]。深度学习一般有两个性质:(1)多层非线性处理单元;(2)每层特征表示的有监督或无监督学习[1]。深度学习的早期框架是在20世纪80年代建立在人工神经网络(ANN)的基础上的[2],而深度学习的真正影响在2006年变得明显[3,4]。从那时起,深度学习被广泛应用于各个领域,包括自动语音识别、图像识别、自然语言处理、药物发现和生物信息学[5-7]。

    在过去的几十年里,由于高通量技术的进步,生物医学数据,如基因组序列、蛋白质结构和医学图像,都有了巨大的增长。生物医学大数据的泛滥需要有效和高效的计算工具来存储、分析和解释这些数据[5,8]。基于深度学习的算法框架阐明了这些具有挑战性的问题。本文的目的是向生物信息学和生物医学信息学社区提供深度学习技术的概述,以及深度学习在生物医学领域的一些最新应用。我们希望这篇论文能为读者提供深度学习的概述,以及如何将其用于分析生物医学数据。

    The development of ANNs

    作为深度学习的基础,神经网络的灵感来自于20世纪60年代的生物过程,当时人们发现,当猫看到不同的物体时,不同的视觉皮层细胞会被激活[9,10]。这些研究表明,眼睛和视皮层细胞之间存在联系,信息在视觉系统中是逐层处理的。人工神经网络通过在可以提取物体特征的层内连接人工神经元来模仿物体的感知[11-16]。然而,神经网络的研究在20世纪60年代之后停滞不前,这是由于它的浅层结构导致的能力较低,以及当时计算机的计算能力有限[17]。

    由于计算机能力和方法的改进[18],具有高效反向传播(BP)的神经网络促进了模式识别的研究[19-23]。在具有BP的神经网络中,首先通过神经网络模型进行分类,然后通过评估预测类标签与真实类标签之间的差异来修正权重。尽管BP通过梯度下降帮助将误差降到最低,但它似乎只对某些类型的神经网络起作用[24]。通过对梯度的改进,提出了动量法[25]、自适应学习率法[26-28]、最小二乘法[29,30]、拟牛顿法[31-34]和共轭梯度法(Cg)等多种学习方法。

    然而,由于神经网络的复杂性,其他简单的机器学习算法,如支持向量机(SVMs)[37]、随机森林[38,39]和k-近邻算法(k-NN)[40],在受欢迎程度上逐渐超过了神经网络(图1)。

    The development of deep learning

    具有更多隐含层的ANN提供了更高的特征提取能力[4]。然而,当神经网络包含深层和复杂的结构时,往往会收敛到局部最优值,或者遇到梯度扩散[41]。向后传播的渐变沿层迅速减小,导致输入附近层中的权重稍有修改(http://deeplearning.stanford.edu/wiki/index.php/ufldl_Tutorial)[42]。随后,提出了一种分层预训练的深度自动编码器(AE)网络,使ANN进入了一个新的发展阶段3,4,43-45。在该网络中,通过最小化原始数据和重建数据之间的差异来训练每一层[4]。分层预训练打破了梯度扩散的障碍[4],也为深度神经网络(DNNs)带来了更好的权值选择,从而防止重建数据达到局部最优,而局部最优通常是由随机选择初始权值引起的。此外,图形处理单元(GPU)的使用也重新激发了研究人员对深度学习的兴趣[46,47]。

    随着越来越多的关注和努力,深度学习在近几年蓬勃发展,并在行业中得到了广泛的应用。例如,深度信任网络(DBN)和受限Boltzmann机器堆栈[3,48,49]已经应用于语音和图像识别[3,45,50]和自然语言处理[51]。为了更好地模拟动物对物体的感知[52],卷积神经网络(CNN)已被广泛应用于图像识别[53-55]、图像分割[56]、视频识别[57,58]和自然语言处理[59]。递归神经网络(RNNs)是另一类表现出动态行为的神经网络,具有与时间步长[25,60,61]相关的人工神经元。RNN已成为处理顺序数据的主要工具[62],并已应用于自然语言处理[63]和手写识别[64]。后来,AE的变体,包括稀疏AE、堆叠AE(SAE)和去噪AE,在训练前的深度网络中也越来越受欢迎[49,65-67]。

    虽然深度学习的应用主要集中在图像识别、视频和声音分析以及自然语言处理上,但它也为生命科学打开了大门,这将在下一节详细讨论。

    Brief description of deep learning

    Basic concepts

    Activation functions

    虽然基本的假设和理论有所不同,但大多数情况下特征提取的基本思想和过程和深度神经网络(DNN)体系结构相似。在前向传递中,通过到第一层的输入来激活网络,然后第一层沿着加权连接将激活传播到最后一层,并生成预测或重构结果。在反向传递中,通过最小化预测数据和实际数据之间的差异来调整连接的权重。

    激活函数激活函数在所有深度学习框架中形成非线性层;并且它们与其他层的组合被用来模拟从输入到输出的非线性转换[62]。因此,通过选择合适的激活函数[7,68,69]可以实现更好的特征提取。这里,我们介绍几个常用的激活函数,用g表示。 g ( a ) = 1 1 + e − a g(a)=\frac{1}{1+e^{-a}} g(a)=1+ea1,其中a是来自前层的输入。Sigmoid函数将变量转换为从0到1的值,通常用于产生伯努利分布。例如: g ~ = { 0  if  g ( a ) ⩽ 0.5 1  if  g ( a ) > 0.5 \tilde{g}=\left\{\begin{array}{ll}0 & \text { if } \quad g(a) \leqslant 0.5 \\ 1 & \text { if } \quad g(a)>0.5\end{array}\right. g~={01 if g(a)0.5 if g(a)>0.5 双曲正切: g ( a ) = tan ⁡ h ( a ) = e a − e − a e π + e − a g(a)=\tan \mathrm{h}(a)=\frac{e^{a}-e^{-a}}{e^{\pi}+e^{-a}} g(a)=tanh(a)=eπ+eaeaea这里,g的导数计算为: g ′ = 1 − g 2 g^{\prime}=1-g^{2} g=1g2使得在BP算法中使用它变得容易。 Softmax: g ( a ) = e a i ∑ j a j g(a)=\frac{e^{a_{i}}}{\sum_{j}^{a_{j}}} g(a)=jajeaiSoftmax输出,an它可以被认为是类别上的概率分布,通常用于最后一层。 Rectified linear unit (ReLU): g ( a ) = max ⁡ ( 0 , a ) g(a)=\max (0, a) g(a)=max(0,a)这种激活函数及其变体在许多情况下表现出优越的性能,是迄今为止深度学习中最受欢迎的激活函数[68,70-72]。REU还可以解决梯度扩散问题[73,74]。

    Softplus: g ( a ) = log ⁡ ( 1 + e a ) g(a)=\log \left(1+e^{a}\right) g(a)=log(1+ea)这是RELU的变体之一,表示RELU的平滑近似(在本文中,日志始终表示自然对数)。

    Absolute value rectification: g ( a ) = ∣ x ∣ g(a)=|x| g(a)=x,当池化层取CNN[75]中的平均值时,该功能很有用,从而防止负面特征和正面特征减少。 Maxout: Maxout: g i ( x ) = max ⁡ i ( b i + w i ⋅ x ) g_{i}(x)=\max _{i}\left(b_{i}+w_{i} \cdot x\right) gi(x)=maxi(bi+wix)此函数中的权重矩阵是三维数组,其中第三个数组对应于相邻图层的连接

    Optimization objective

    优化目标通常由损失函数和正则化项组成。损失函数测量依赖于模型参数(H)的网络输出与预期结果y(例如,分类任务中的真实类别标签或预测任务中的真实水平)之间的差异。然而,一个好的学习算法不仅在训练数据上表现得很好,而且在测试数据上也表现得很好。旨在减少测试误差的策略集合称为正则化[62]。一些正规化条款将处罚应用于优化目标通常由损失函数和正则化项组成。损失函数测量依赖于模型参数(H)的网络输出与预期结果y(例如,分类任务中的真实类别标签或预测任务中的真实水平)之间的差异。然而,一个好的学习算法不仅在训练数据上表现得很好,而且在测试数据上也表现得很好。旨在减少测试误差的策略集合称为正则化[62]。一些正规化条款将处罚应用于参数,以防止过于复杂的模型。在此,我们简要介绍了常用的损失函数 L ( f ( x ∣ θ ) , y ) L(f(x \mid \theta), y) L(f(xθ),y)和正则化项 Ω ( θ ) \Omega(\theta) Ω(θ)优化目标通常定义为: L ~ ( X , y , θ ) = L ( f ( x ∣ θ ) , y ) + α Ω ( θ ) \tilde{L}(X, y, \theta)=L(f(x \mid \theta), y)+\alpha \Omega(\theta) L~(X,y,θ)=L(f(xθ),y)+αΩ(θ)其中a是这两个分量的平衡,并且在实践中,通常跨随机采样的训练样本而不是数据生成分布来计算损失函数,因为数据生成分布是未知的。

    Loss function

    大多数DNN使用训练数据和模型分布之间的交叉熵作为损失函数。交叉熵最常用的形式是负条件对数似然: L ( f ( x ∣ θ ) , y ) = − log ⁡ P ( f = y ∣ x , θ ) L(f(x \mid \theta), y)=-\log P(f=y \mid x, \theta) L(f(xθ),y)=logP(f=yx,θ)这是在给定输入变量x的值的情况下,与y的分布相对应的损失函数的集合。在此,我们介绍遵循此模式的几个常用的损失函数: 假设y是连续的,并且在给定变量x上具有高斯分布。损失函数将是:

    L ( f ( x ∣ θ ) , y ) = − log ⁡ [ 1 2 π σ 2 exp ⁡ ( − 1 2 σ 2 ( y − f ) 2 ) ] = 1 2 σ 2 ( y − f ) 2 + 1 2 log ⁡ ( 2 π σ 2 ) \begin{aligned} L(f(x \mid \theta), y) &=-\log \left[\sqrt{\frac{1}{2 \pi \sigma^{2}}} \exp \left(-\frac{1}{2 \sigma^{2}}(y-f)^{2}\right)\right] \\ &=\frac{1}{2 \sigma^{2}}(y-f)^{2}+\frac{1}{2} \log \left(2 \pi \sigma^{2}\right) \end{aligned} L(f(xθ),y)=log[2πσ21 exp(2σ21(yf)2)]=2σ21(yf)2+21log(2πσ2)

    它被等效地描述为平方误差。误差平方是20世纪80年代最常用的损失函数[62]。然而,它通常倾向于过度惩罚离群值,导致收敛速度较慢[77]。 如果y服从伯努利分布,则损失函数 L ( f ( x ∣ θ ) , y ) = − y log ⁡ f ( x ∣ θ ) − ( 1 − y ) log ⁡ ( 1 − f ( x ∣ θ ) ) L(f(x \mid \theta), y)=-y \log f(x \mid \theta)-(1-y) \log (1-f(x \mid \theta)) L(f(xθ),y)=ylogf(xθ)(1y)log(1f(xθ))为:当y是离散的并且只有两个值时,例如 y ∈ { 1 , 2 , … , k } y \in\{1,2, \ldots, k\} y{1,2,,k},我们可以将Softmax值(参见常用的激活函数)作为类别上的概率。那么损失函数将是: L ( f ( x ∣ θ ) , y ) = − log ⁡ ( e a y ∑ j e a j ) = − a y + log ⁡ ( ∑ j e a j ) L(f(x \mid \theta), y)=-\log \left(\frac{e^{a_{y}}}{\sum_{j} e^{a_{j}}}\right)=-a_{y}+\log \left(\sum_{j} e^{a_{j}}\right) L(f(xθ),y)=log(jeajeay)=ay+log(jeaj)

    Regularization term

    L 2 L^{2} L2参数正则化是正则化项最常见的形式,并且有助于优化目标的凸性,从而使用Hessian矩阵[78,79]容易地求解最小值。 L 2 L^{2} L2参数正则化可以定义为: Ω ( θ ) = 1 2 ∥ ω ∥ 2 \Omega(\theta)=\frac{1}{2}\|\omega\|^{2} Ω(θ)=21ω2其中 Ω \Omega Ω表示网络中连接单元的权重(与以下上下文相同)。

    与L2参数正则化相比,L1参数正则化导致x的解更稀疏,并且倾向于学习小的特征组。L1参数正则化可以定义为 Ω ( θ ) = ∥ ω ∥ 1 = ∑ ∣ ω i ∣ \Omega(\theta)=\|\omega\|_{1}=\sum\left|\omega_{i}\right| Ω(θ)=ω1=ωi

    Frobenius参数正则化是由内积诱导的,并且是块可分解的,因此计算更容易[80,81]。Frobenius参数正则化可以定义为

    ω ( θ ) = ∑ i ∑ j ∣ ω i j ∣ 2 = ∑ i = 1 r a n k ( ω ) σ i 2 \omega(\theta)=\sqrt{\sum_{i} \sum_{j}\left|\omega_{i j}\right|^{2}}=\sqrt{\sum_{i=1}^{r a n k(\omega)} \sigma_{i}^{2}} ω(θ)=ijωij2 =i=1rank(ω)σi2 其中 σ i \sigma_{i} σi是第i个最大奇异值。Frobenius参数正则化在正则化方面具有类似于核范数的功能。近年来,核规范被广泛用作正规化[82-84]。核范数正则化度量 ω \omega ω的奇异值之和,可定义为 Ω ( θ ) = ∥ ω ∥ ∗ = ∑ i = 1 r a n k ( ω ) σ i \Omega(\theta)=\|\omega\|_{*}=\sum_{i=1}^{r a n k(\omega)} \sigma_{i} Ω(θ)=ω=i=1rank(ω)σi

    Optimization methods

    通过选择合适的超参数,将学习任务转化为优化问题,以达到目标函数的最小值。不同优化方法的基本过程是相似的。首先,利用初始参数 θ 0 \theta0 θ0计算模型的输出 f = f ( x ∣ θ 0 ) f=f\left(x \mid \theta_{0}\right) f=f(xθ0)和优化目标 L ~ \tilde{L} L~。然后调整网络参数 θ 0 \theta0 θ0以将目标函数值从最后一层减小到第一层[18]。重复此过程,直到获得正确的模型和较小的拟合误差,即损失函数值.

    然而,不同的优化方法对不同的体系结构和损失函数有不同的优缺点[62,85]。随机梯度下降法(SGD)及其变种是最常用的方法,它通过与雅可比矩阵对应的间隙来更新参数。即使训练集很大,每次更新的计算时间也不会增长太多[86-88]。AdaGrad根据平方梯度的累积来更新参数,这在应用于凸函数时可以快速收敛,但在某些模型中表现较差[62]。RMSProp算法是一种AdaGrad算法,已经成为一种有效的、流行的参数优化方法。另一种类型的算法利用二阶导数来改进优化。例如,有限内存的Broyden-Fletcher-Goldfarb-Shanno算法(BFGS)就是一种拟牛顿算法,它迭代地细化Hessian矩阵的逆的逼近,避免存储矩阵。BFGS擅长处理低维问题,特别是对于卷积模型[85]。此外,共轭梯度在参数的更新方向决策中结合了共轭和梯度下降,有效地避免了逆Hessian[4,35,36]的计算,而RBM模型通常使用对比发散[89-91]。在GPU[47]的帮助下,许多算法可以显著加速[85]。

    应根据所考虑的数据选择合适的体系结构和目标函数。作为机器学习的一种,深度学习也会遇到“过拟合”,即训练数据误差低,测试数据误差高。除正则化项外,其他正则化方法对于减小测试误差也很重要。

    增加输入或权重的噪声是有效的正则化策略[41,92],如去噪AE[93]的情况。通过设置迭代次数来提前停止优化是防止网络过度拟合的另一种常用策略[62]。参数共享,就像在CNN中一样,也可以有助于正规化[94]。丢弃可以迫使单元独立进化,并在每次迭代中随机删除人工神经网络中的部分单元,因此可以用不昂贵的计算获得更好的结果[73,95,96]。

    Deep learning architectures

    AEs

    与普通人工神经网络不同的是,人工神经网络从未标记的数据中提取特征,并将目标值设置为等于输入[4,49,97]。给定输入向量 { x ( 1 ) , x ( 2 ) , x ( 3 ) , … } , x ( i ) ∈ R n \left\{x^{(1)}, x^{(2)}, x^{(3)}, \ldots\right\}, x^{(i)} \in R^{n} {x(1),x(2),x(3),},x(i)Rn,AE尝试学习模型: h w , b ( x ) = g ( W x + b ) ≈ x h_{w, b}(x)=g(W x+b) \approx x hw,b(x)=g(Wx+b)x 其中W和b是模型的参数,g是激活函数(在下面的上下文中应用相同的定义),hw,b表示隐藏单元。当表示特征的维度的隐藏单元的数量小于输入维度时,AE执行类似于主成分分析的数据降维[98]。除了模式识别,在最后一层带有分类器的AE也可以执行分类任务。

    受限玻尔兹曼机(RBM,restricted Boltzmann machines)和深度信任网络DBN(deep belief networks )

    RBM是产生式图形模型,旨在学习训练数据的分布。由于我们不知道数据服从哪种分布,因此不能直接使用最大似然原理计算模型参数。Boltzmann机器(BMS)使用能量函数来生成概率分布(参见下面的公式(12)和(13)),然后优化参数,直到模型了解数据的真实分布。最初的BMS还没有被证明对实际问题有用,而RBM通常用于深度学习。

    RBM将BMS限制为二部图,也就是说,在可见单元v= x或隐藏单元h内没有连接。该限制确保了隐藏单元和可见单元[91]的条件独立性,即, P ( h ∣ v ) = Π i p ( h i ∣ v ) P ( v ∣ h ) = Π j p ( v j ∣ h ) \begin{array}{l} P(h \mid v)=\Pi_{i} p\left(h_{i} \mid v\right) \\ P(v \mid h)=\Pi_{j} p\left(v_{j} \mid h\right) \end{array} P(hv)=Πip(hiv)P(vh)=Πjp(vjh) 此外,大多数RBM依赖于这样的假设,即网络中的所有单元仅取两个可能的值0或1中的一个,即 v j , h i ∈ ( 0 , 1 ) v_{j}, h_{i} \in(0,1) vj,hi(0,1);具有激活功能,隐藏和可见单元的条件分布可以用以下形式表示: p ( h i = 1 ∣ v ) = g ( W i v + c i ) p ( v j = 1 ∣ h ) = g ( W j ′ h + b j ) \begin{array}{l} p\left(h_{i}=1 \mid v\right)=g\left(W_{i} v+c_{i}\right) \\ p\left(v_{j}=1 \mid h\right)=g\left(W_{j}^{\prime} h+b_{j}\right) \end{array} p(hi=1v)=g(Wiv+ci)p(vj=1h)=g(Wjh+bj) 根据Boltzmann分布,隐藏和可见矢量上的概率分布定义为: P ( v , h ) = 1 Z e − E ( v , h ) P(v, h)=\frac{1}{Z} e^{-E(v, h)} P(v,h)=Z1eE(v,h) 其中归一化常数 Z = ∑ e − E ( v , h ) Z=\sum e^{-E(v, h)} Z=eE(v,h) , 是 能 量 函 数 E ( v , h ) = − b ′ v − c ′ h − h ′ W v ,是能量函数E(v, h)=-b^{\prime} v-c^{\prime} h-h^{\prime} W v E(v,h)=bvchhWv

    条件概率分布也可以通过积分来计算,然后通过最小化Kullback-Leibler发散来优化参数。 总体而言,在给定网络架构和优化参数的情况下,可见单元的分布可以计算为: P ( v ) = ∑ h p ( v , h ) = ∑ h e − E ( v , h ) Z P(v)=\sum_{h} p(v, h)=\sum_{h} \frac{e^{-E(v, h)}}{Z} P(v)=hp(v,h)=hZeE(v,h)

    以将DBN视为RBM[6,24,100]或AE[66,101]的堆栈。与RBM类似,DBN可以学习样本的分布,或者学习给出类别标签来对输入进行分类[3]。然而,公式 p ( h ) p(h) p(h)在 公式中 p ( v ) = ∑ h p ( v , h ) = ∑ h p ( h ) p ( v / h ) p(v)=\sum_{h} p(v, h)=\sum_{h} p(h) p(v / h) p(v)=hp(v,h)=hp(h)p(v/h) 在通过RBM学习连接的权重W之后用更好的模型替换。

    除了特征提取,RBMS还可以学习未标记数据的分布作为生成性模型,并将已标记数据分类为判别模型(将隐藏单元作为标签)。与AE类似,RBM还可以预先训练复杂网络的参数。

    卷积神经网络(Convolutional neural networks)

    与其他深度学习结构不同,卷积神经网络(CNNs)中的人工神经元提取一小部分输入图像的特征,称为感受场。这种类型的特征提取的灵感来自于生物体的视觉机制,在生物体中,视觉皮层中的细胞对视野的小区域很敏感[52,102]。

    除了激活函数,CNN中还有两种特殊类型的层:卷积层和池化层(图2)。在卷积层中,通过逐步移位感受场87,由不同的卷积滤波器对图像进行卷积。卷积滤波器在图像的每一小部分共享相同的参数,大大减少了模型中的超参数数量。池化层利用图像的“平稳性”属性,取特征地图中不同位置的特征的平均值、最大值或其他统计信息,从而减小方差并捕获基本特征

    递归神经网络(Recurrent neural networks)

    递归神经网络(RNNs)在处理时序数据方面优于其他深度学习方法。基于时序数据的特性,RNN模型跨不同时间步长的参数被共享。以语音为例:一些元音可能比其他声音持续时间更长;这种差异使得绝对时间步长没有意义,并且要求时间步长之间的模型参数相同[62]。

    除了参数共享,RNN还不同于其他多层网络,因为它有一条电路,表示隐藏到隐藏的递归。一个简单的递归网络对应于以下等式: h ( t ) = g ( b + U h ( t − 1 ) + W x ( t ) ) o ( t ) = c + V h ( t ) \begin{aligned} &h_{(t)}=g\left(b+U h_{(t-1)}+W x_{(t)}\right)\\ &o_{(t)}=c+V h_{(t)} \end{aligned} h(t)=g(b+Uh(t1)+Wx(t))o(t)=c+Vh(t) 其中t是时间的标签,W和V表示连接隐藏和输入单位以及隐藏和输出的权重单元,b和c分别是可见层和隐藏层的偏移,g是激活函数,U表示将时间t1处的隐藏单元连接到时间t处的隐藏单元的权重(图3)。。 单位b和c分别是可见层和隐藏层的偏移,g是激活函数,U表示将时间t1处的隐藏单元连接到时间t处的隐藏单元的权重(图3)。

    Applications in biomedicine

    由于高通量技术的进步,近几十年来已经获得了大量的生物和医学数据,包括与医学图像、生物序列和蛋白质结构相关的数据。本节回顾了深度学习在生物医学领域的一些成功应用,并在表1中给出了应用总结。

    Medical image classification and segmentation

    长期以来,医学图像的机器学习一直是诊断或评估疾病的有力工具。传统上,涉及医学图像解释的鉴别特征是手动设计的,用于在不同的医疗应用中对感兴趣的区域(组织和器官)进行分类(检测病变或异常)和分割。这需要有专业知识的医生参与。然而,医学图像的复杂性和模糊性、医学图像解释知识的有限性以及对大量标注数据的要求,阻碍了医学图像的理解。机器学习在医学影像领域的广泛应用。值得注意的是,深度学习方法已经在各种计算机视觉任务中取得了成功,例如自然图像中的对象识别、定位和分割。这些很快就带来了机器学习在医学图像分析中的活跃领域。

    组织器官分割是医学图像定性和定量评价的关键。Pereira等人。使用数据增强、小卷积核和预处理阶段来实现精确的脑瘤分割[108]。他们的基于CNN的分割方法在2013年的脑瘤分割(BRATS)挑战赛中获得第一名,在2015年获得第二名。Havaei等人。提出了一种基于核磁共振(MR)图像中DNNs的全自动脑肿瘤分割方法[109],该方法在2013年BRAT中获得第二名。他们的方法在公开可用的数据集INBREST[110]和用于筛查乳房X光检查的数字数据库(DDSM)[111]上进行了测试,在准确性和效率方面优于在DDSM上测试的几种最先进的方法。采用深度学习架构的其他医学应用已被展示,从MR数据中分割心脏左心室[112],通过计算机断层扫描(CT)分割胰腺[113],通过磁共振成像(MRI)分割胫骨软骨[114],通过MRI分割前列腺[115],以及通过MR脑图像分割海马[116,117]中的左心室[112],通过计算机断层扫描(CT)分割胰腺[113],通过磁共振成像(MRI)分割胫骨软骨[114],通过MRI分割前列腺[115],通过MR脑图像分割海马[116,117]。医学图像中组织或器官的区分被称为语义分割[118,119],其中图像的每个像素被分配给类别或标签。通过基于DNN架构的语义分割,CT图像中的骨骼肌、器官和脂肪被很好地描绘出来[120]。类似地,MR图像的语义分割也获得了准确的分割结果[121-123]。

    病变和异常的检测是医学图像分析中的主要问题。深度学习方法直接学习表示,而不是从训练数据中使用手工制作的特征。然后使用分类器将表示为指示图像是否包含病变的概率。换言之,深度学习模式将每个像素分类为病变点或非病变点,这可以通过两种方式来完成:(1)使用深度网络对像素周围的小块进行分类;(2)使用完全卷积网络对每个像素进行分类。

    Sheet等人的研究成果。[124]应用DNN对健康皮肤和愈合伤口进行组织学表征,以降低临床报告的可变性。使用两层无监督的预先训练的去噪AE(DAE)来学习其混合体系结构中的特征,然后使用标记的组织来学习整个网络以进行表征。在使用基于深度学习的方法时,检测大脑微出血[125]和冠状动脉钙化[126]也产生了更好的结果。此外,与高精度的流形学习方法相比,用深度学习架构实现的脑肿瘤进展预测[127]也显示出更稳健的肿瘤进展模型[128]。

    对染色的组织病理学图像的病理检测[129-131]例证了基于深度学习的方法的高精度。为了在组织病理学图像中检测乳腺癌,Cruz-Roa等人。[132]建立深度学习模型,精确划分浸润性导管癌(IDC)区域,区分浸润性肿瘤组织和非侵袭性或健康性组织。与使用手工图像特征和机器学习分类器的方法相比,他们的三层CNN结构由两个级联的卷积和汇集层、一个全连接层和一个用于预测的Logistic回归分类器组成,获得了更好的F度量(71.8%)和更高的平衡准确率(BAC;84.23%)。乳腺X线片是乳腺癌早期诊断和风险预测最有效的影像手段之一。在45000张图像的大数据集上训练的深度学习模型[133]在乳房X光检查病变检测中获得了类似于认证筛查放射科医生的性能。Kallenberg等人。[134]调查与乳腺癌风险预测相关的钼靶密度百分比(PMD)和乳腺X线纹理(MT)评分。他们使用稀疏的AE从未标记的乳房X光照片中学习深层的分层特征。然后在监督训练中使用多项Logistic回归或Softmax回归作为分类器。因此,他们的方法的性能与主观和昂贵的手动PMD和MT评分相当。彩色眼底照相是眼科疾病的重要诊断工具。基于深度学习的眼底图像处理方法作为开发自动化诊断系统的关键,最近受到了广泛的关注。Sriastava等人提出了一种DNN体系结构。[135]目的:鉴别视盘(OD)与视乳头旁萎缩(PPA)。由SAE和改进的活动形状模型组成的DNN实现了精确的OD分割。对于图像配准,深度学习结合多尺度Hessian矩阵[136]被用来检测视网膜图像中的血管标志,而卷积神经网络在彩色眼底图像中检测出血[137]和渗出物[138]也取得了很好的效果。针对老年性分子变性、糖尿病性视网膜病变、视网膜母细胞瘤、视网膜脱离、视网膜色素变性等视网膜疾病的自动筛查系统设计难度较大。

    表1深度学习框架在生物医学信息学中的应用

    医学图像分析 CNN

    脑瘤分割,在Brats中获得前2名

    胰腺的CT分割

    膝关节软骨分割

    海马的分割

    基于医学图像的语义描述预测

    磁共振脑图像的分割

    医学图像的解剖学分类

    磁共振图像中的脑内微出血

    CT图像中冠状动脉钙化积分的研究

    结肠癌常规组织学图像中的细胞核检测

    组织病理学肿瘤分类

    浸润性导管癌的分割

    乳房X线病变检测

    ]眼底图像出血检测

    眼底图像渗出物检测

    SAE(自编码算法)

    婴儿大脑中海马的分割[116]4D患者数据中的器官检测[122]健康皮肤和愈合伤口的组织学特征[124]与乳腺癌风险相关的乳房X线密度和乳房X线纹理百分比评分[134]从眼底照片中检测光盘

    DBN

    从MR数据中分割心脏左心室[112]区分视网膜疾病 DNNMR图像中的脑肿瘤分割荣获BRATS第二名[109]前列腺MR分割[115]腺体实例分割[119]CT图像中组织的语义分割[120]乳腺癌组织学图像中的有丝分裂检测

    RNN

    基于脑电的癫痫发作传播的时延神经网络预测[141]用于癫痫发作预测的脑电同步模式分类[142基于脑电的失误检测[143]癫痫发作的预测

    基因组测序与基因表达分析

    DNN

    基因表达推断[145]顺式调节区和复制定时域的识别[151]增强子的预测[152]单个组织中剪接模式的预测和组织间剪接模式的差异[159]遗传变异致病性的诠释

    DBN

    RNA结合蛋白的结构结合偏好建模和结合位点预测[146]DNA水平的剪接预测[156]转录因子结合位点的预测[148,149]非编码基因组的注释和解释[151]非编码变异效应的序列从头预测 RNN米拉病毒前体和miRNA靶标的预测[153,154]从DNA序列中检测剪接接头[157]从序列预测非编码功能从头开始分析体液剪接密码及其疾病的检测

    蛋白质结构预测

    DBN

    RBPs的模型结构结合偏好和预测结合位点[146]从头算预测蛋白质二级结构[171]预测蛋白质无序[184]预测蛋白质二级结构、局部背角和溶剂可及表面积

    CNN

    蛋白质有序/无序区的预测[183]蛋白质二级结构的预测[179,180,182]蛋白质结构性质的预测,包括二级结构解决方案的可达性和无序区

    SAE

    基于序列的主干钙角和二面体预测

    RNN

    蛋白质二级结构预测[172-174,178]蛋白质接触图预测

    因为这些疾病有相似的特征。通过深度学习方法,Arunkumar et al.。[139]成功建立了一个仅使用眼底图像就能区分视网膜疾病的系统。首先,设计了一个由RBM堆栈组成的DBN进行特征提取。然后利用广义回归神经网络(GRNN)进行降维。最后,采用多类支持向量机进行分类。有趣的是,Kaggle在2015年从35,126个培训和53,576个测试彩色眼底图像中组织了一场关于糖尿病视网膜病变分期的比赛。使用卷积神经网络,TOP模型的kappa得分为0.8496,优于其他机器学习方法

    除了静态图像,时间序列医疗记录,如来自脑电图和脑磁图的信号地图,也可以使用深度学习方法进行分析[140,141]。这些深度学习模式将信号[142,143]或原始信号[144]的编码特征作为输入,并从数据中提取特征用于异常分类或理解情绪。

    上述应用表明,深度学习作为机器学习的前沿,在医学图像分割和分类方面取得了实质性的进展。我们期望出现更多的临床试验和系统的医学图像分析应用,以帮助在医学中应用深度学习时实现更好的性能。

    Genomic sequencing and gene expression analysis

    深度学习在基因组测序和基因表达分析中也扮演着重要的角色。为了根据来自NIH综合网络细胞签名(LINCS)计划的大约1000个标志性基因推断目标基因的表达谱,Chen等人。提出了D-Gex,这是一种以丢弃为正则化的深度学习方法,在微阵列和RNA-seq数据上的预测精度都明显优于线性回归(LR)[145]。通过应用多模式DBN来建模结构结合偏好,并使用一级序列以及二级和三级结构剖面预测RNAbinding Proteins(RBPs)的结合位点,张等人说。某些蛋白质的AUC达到0.98[146]。为了预测DNA和RNA结合蛋白的结合位点,Alipanahi等人。开发了DeepBind,这是一种基于CNN的方法,它超过了其他最先进的方法,即使是在用体外数据训练和用体内数据测试的情况下也是如此[147]。随后,Lanchantin et al.。[148]和曾等人的研究成果。[149]还应用细胞神经网络预测转录因子结合位点(TFBs),两项研究都表明比深度结合的性能有所改善(AuC值为0.894)。这些深层CNN的输入是通过蛋白质结合微阵列或其他分析获得的编码序列字符,输出是指示序列是否为结合位点的真实值。更深层次的模型可以通过从原始核苷酸序列中提取更高级别的特征来进行更准确的分类[148]。此外,Kelley et al.。介绍了Basset,这是一个应用深度CNNs学习染色质可及性代码的开源软件包,能够注释和解释非编码基因组[150]。其他应用包括Li等人的应用。[134]和刘等人。[151,152],世卫组织提出了识别顺式调控区域和复制时间域的深度学习方法。此外,Yoon和他的合作者使用RNNs来预测miRNA前体和靶标。结果,与现有的替代方法相比,他们的F-Measure提高了25%[153,154]。

    遗传变异可以影响DNA的转录和mRNA的翻译[155]。了解序列变异对前mRNA剪接的影响不仅有助于全基因组注释,而且有助于理解基因组功能。为了在DNA水平上预测剪接连接,Yoon和他的合作者开发了一种基于DBN的新方法,该方法通过使用分类梯度增强对比差异来训练RBM[156]。他们的方法不仅获得了更好的准确性和稳健性,而且还发现了微妙的非规范剪接模式[156]。此外,通过利用RNNs对DNA序列中的剪接连接进行建模和检测,相同的作者也获得了比以前基于DBN的方法更好的性能[157]。

    为了诠释遗传变异的致病性,Quang等人。提出了一种DNN算法DANN,其性能优于Logistic回归(LR)和支持向量机,AUC度量比支持向量机提高了14%[161]。周等人。提出了一个基于CNN的算法框架DeepSEA,用于从序列中预测非编码变体从头开始的功能效应[162]。深海直接从大规模染色质图谱数据中学习调控序列密码,然后可以单核苷酸敏感性预测序列改变的染色质效应,并根据预测的染色质效应信号进一步确定功能变体的优先级。随后,提出了一种结合CNN和双向长短期记忆(BLSTM)RNNs的新型混合框架DanQ,用于仅从序列中预测非编码功能从头开始[163]。DanQ的AUC比包括前述深海在内的其他型号高出50%。

    Prediction of protein structure

    蛋白质的三维结构由其组成的氨基酸序列决定[164]。然而,从1D序列对3D蛋白质结构的计算预测仍然存在蛋白质的三维结构由其组成的氨基酸序列决定[164]。然而,从1D序列对3D蛋白质结构的计算预测仍然存在。

    莱昂斯等人。报道了第一个基于序列预测主干Ca角和二面体的SAE[169]。Heffernan等人的研究成果。还使用SAES从氨基酸序列[170]中预测蛋白质的二级结构、局部主干角度和溶剂可及表面积(ASA);他们获得了82%的二级结构预测准确率。Spencer等人。提出了DNSS,一种使用深度学习网络结构预测蛋白质二级结构的从头算方法[171]。使用蛋白质序列和Atchley残基因子的位置特定评分矩阵来训练DNSS,并使用GPU和计算统一设备架构(CUDA)对DNSS进行优化以加快计算速度。Baldi和他的同事成功地应用了各种基于RNN的算法来预测蛋白质二级结构[172-174]和蛋白质接触图[175-177],准确率分别为84%和30%。Sønderby等人的研究成果。使用具有长短期记忆单元的双向神经网络(BRNN)来改进二级结构的预测,其准确率(0.671)比使用现有技术(0.664)[178]的准确率更高。与SAE、DBNs和RNNs相比,CNNs直到最近才被用于蛋白质结构预测。Li等人。开发了Malphite,一种基于CNN和集成学习的预测蛋白质二级结构的方法,在包含3000个蛋白质的数据集上达到了82.6%的准确率[179]。此外,Lin et al.。提出了一种用于从一级氨基酸序列预测蛋白质二级结构的多层平移-缝合卷积神经网络结构–MUM-CNN[180]。除了经典的深度学习结构外,一些其他的结构也被用来预测蛋白质的二级结构。例如,Lena等人。引入了一种深度时空学习结构,获得了比其他方法大约高10%的准确率[181],周等人。提出了一种深度监督卷积生成随机网络,其准确率达到66.4%[182]。

    除了二级结构预测,深度学习也被用于蛋白质区域预测[183,184]。例如,基于序列的蛋白质紊乱预报器使用增强型深层网络集成(DNDisc),这是一种具有多层RBM的深层神经网络[184],实现了0.82的平均平衡精度和0.90的AUC。结合预测的二级结构和预测的辅助选择,提出了一种加权深卷积神经场来预测蛋白质的有序区/无序区,在蛋白质结构预测技术关键评估数据集上获得了0.898的AUC值。所有这些方法在精度上都超过了其他最先进的预测方法,同时仍然保持了极高的计算速度。最近,使用DeepCNF的网络服务器RaptorX-Property也被用来预测蛋白质的结构属性,包括二级结构、溶剂可及性和无序区[185]。RaptorX-Property使用方便,性能良好(其测试数据的AUC为0.89)。

    Conclusion and perspective

    深度学习正在朝着最初的目标前进:人工智能。深度学习最先进的特征提取能力使其能够在广泛的领域中得到应用。许多深度学习框架都是开源的,包括常用的框架,如Torch、Caffe、Theano、MXNet、DMTK和TensorFlow。它们中的一些被设计成便于使用的高级包装器,例如KERAS、Lasagne和BLOCKS。免费的资源进一步促进了深度学习算法的应用。图4总结了Github(https://github.com/))中常用的框架,其中星号反映了框架的受欢迎程度。

    技术的突破,特别是下一代测序,正在产生大量的基因组数据。近年来,对这些数据的有效解释引起了人们的极大关注。在这种情况下,揭示基因组变异与疾病之间的关系,阐明细胞内基因的调控过程一直是重要的研究领域。在这篇综述中,我们用例子介绍了深度学习参与这些领域的方式。利用深层体系结构,这些模型可以模拟更复杂的转换并发现分层数据表示。另一方面,几乎所有这些模型都可以在GPU上并行训练,以实现快速处理。此外,深度学习可以提取数据驱动的特征并处理高维数据,而机器学习通常依赖于手工制作的特征,只适用于低维数据。因此,深度学习在基因组序列分析中受到越来越多的关注。

    深度学习以一组技术为代表(以下简称深度学习),在生物医学数据中得到了广泛的应用(在生物医学中的应用)。当与分类器[156]堆叠时,SAE和RBM可以从未标记数据[186]以及标记数据[156]中提取模式。它们还可以处理动态数据[187]。由于CNN在分析空间信息方面的突出能力,使其在生物医学图像分析领域得到了最广泛的应用。虽然在测序数据中使用的CNNs相对较少,但CNNs在组学分析[147]和生物医学信号[142]方面具有巨大的潜力。另一方面,基于RNN的体系结构是为顺序数据量身定做的,并且最常用于排序数据[154,157]和动态生物医学信号[144],但较少用于静态生物医学图像。目前,深度学习在生物医学信息中的应用越来越受到重视,每种模式都有可能在不久的将来发现新的应用。

    尽管深度学习具有显著的优势,但将深度学习应用于生物医学领域的挑战依然存在。以生物医学图像分析为例:我们使用眼底图像来举例说明深度学习是如何工作的,以定义糖尿病视网膜病变的程度,并以不同的方式检测病变区域。除了高准确度和高速度,接受场的智能使用也赋予了深度学习在图像识别方面的压倒性优势。此外,基于深度学习的端到端分类方法的发展为像素分类提供了新的思路。然而,深度学习在医学图像中的应用仍然具有挑战性。对于模型训练,我们需要大量带有标签的数据,有时还需要像素分类方面的标签。手动标记这些医学图像非常费力,而且需要专业专家。另一方面,医学图像与隐私高度相关,因此收集和保护数据要求很高。此外,生物医学数据通常是不平衡的,因为来自正常类的数据量比来自其他类的数据量要大得多。

    除了平衡挑战,所需的大量数据,以及生物医学数据的标签,深度学习还需要技术改进。与其他图像不同,医学图像中的细微变化可能预示着疾病。因此,分析这些图像需要高分辨率输入、高训练速度和大容量存储器。此外,很难为生物医学数据分类或预测找到统一的评估指标。与其他项目不同,我们可以在一定程度上容忍假阳性,并且在疾病诊断中拒绝很少或没有假阴性。对于不同的数据,需要仔细评估模型,并根据数据的特点对模型进行调整。幸运的是,具有初始模块的更深层次的网络加速了[188,189],并在生物医学图像分析中提供了更高的准确性[190]。另一方面,众包方法已经开始为收集注释铺平道路[191,192],这可能是未来几年的一个重要工具。这些双向驱动将促进深度学习在生物医学信息学中的应用。

    作为一个长期目标,精确医学研究需要从所有生物、生物医学和健康数据中主动学习。与医疗设备和仪器一起,可穿戴传感器和智能手机正在提供前所未有的海量健康数据。深度学习是对这些数据的一种很有前途的解释,服务于疾病预测、预防、诊断、预后和治疗。我们期望在流行病预测、疾病预防和临床决策方面有更多的深度学习应用。

    Processed: 0.013, SQL: 9