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

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次。

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)和正则化项

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值