关于深度学习理论和架构的最新综述(part1)

这篇综述探讨了深度学习(DL)的发展,包括深度神经网络(DNN)、卷积神经网络(CNN)、循环神经网络(RNN)等。DL在图像处理、语音识别等领域展现出优越性能。文章讨论了不同类型的深度学习方法,如监督、半监督和无监督学习,以及深度强化学习(DRL)。此外,还涵盖了DL面临的挑战和未来方向。
摘要由CSDN通过智能技术生成

摘要

近年来,深度学习在各种应用领域取得了巨大成功。这一新的机器学习领域一直在快速发展,并已应用于大多数传统应用领域,以及一些提供更多机会的新领域。已经基于不同类别的学习提出了不同的方法,包括监督学习,半监督学习和非监督学习。实验结果显示,与图像处理,计算机视觉,语音识别,机器翻译,艺术,医学成像,医学信息处理,机器人和控制等领域的传统机器学习方法相比,使用深度学习的最先进性能,生物信息学,自然语言处理,网络安全等等。本综述将从深度神经网络(CNN)开始简要介绍深度学习(DL)领域的进展。该综述还涵盖卷积神经网络(CNN),循环神经网络(RNN),包括长短期记忆(LSTM)和门控递归单位(GRU),自动编码器(AE),深度信念网络(DBN) ,生成性对抗网络(GAN)和深度强化学习(DRL)。另外,我们已经讨论了最近的发展,例如基于这些DL方法的高级变体DL技术。这项工作考虑了2012年之后发表的大部分论文,从深度学习的历史开始。此外,本综述还包括在不同应用领域中探索和评估的DL方法。我们还包括最近开发的框架,SDK和基准数据集,用于实施和评估深度学习方法。有些综述已经使用神经网络和强化学习(RL)综述在DL上发布。然而,这些论文尚未讨论用于训练大规模深度学习模型的个别先进技术和最近开发的生成模型方法。

关键词

深度学习(deep learning,DL); 卷积神经网络(convolutional neural network,CNN); 循环神经网络(recurrent neural network,RNN); 自动编码器(auto-encoder,AE); 受限玻尔兹曼机(restricted Boltzmann machine,RBM); 深层信念网络(deep belief network,DBN); 生成对抗网络(generative adversarial network,GAN); 深度强化学习(deep reinforcement learning ,DRL); 迁移学习(transfer learning,TL)

介绍

自20世纪50年代以来,人工智能(AI)的一小部分(通常称为机器学习(ML))在过去的几十年中彻底改变了几个领域。神经网络(NN)是ML的子域,正是这个子域产生了深度学习(DL)。自成立以来,DL一直在创造更大的中断,几乎在每个应用领域都取得了巨大的成功。图1显示了AI的分类。使用深度学习架构或分层学习方法的DL是一类ML,主要从2006年开始开发。学习是一种程序,包括估计模型参数,以便学习模型(算法)可以执行特定任务。例如,在人工神经网络(ANN)中,参数是权重矩阵。另一方面,DL由输入和输出层之间的若干层组成,这允许存在许多阶段的非线性信息处理单元,其具有用于特征学习和模式分类的分层体系结构12。 。基于数据表示的学习方法也可以定义为表示学习3。最近的文献指出,基于DL的表示学习涉及特征或概念的层次结构,其中高级概念可以从低级概念定义,而低级概念可以从高级概念定义。在一些文章中,DL被描述为一种通用学习方法,能够解决不同应用领域中的几乎所有类型的问题。换句话说,DL不是任务特定的4

在这里插入图片描述

深度学习方法的类型

深度学习方法可以分类如下:监督,半监督或部分监督,无监督。 此外,还有另一类学习方法,称为强化学习(RL)或深度远程教育(DRL),这些学习方法在半监督或有时无监督学习方法的范围内被讨论。 图2显示了图示。
在这里插入图片描述

深度监督学习

监督学习是一种使用标记数据的学习技术。在监督DL方法的情况下,环境具有一组输入和相应的输出 ( x t , y t ) ∼ ρ (x_t,y_t) \sim \rho (xt,yt)ρ 。例如,如果对于输入 x t x_t xt,智能代理体(Agent)预测 y ^ t = f ( x t ) \hat{y}_t = f(x_t) y^t=f(xt),代理体(Agent)将接受损失值 l ( y t , y ^ t ) l(y_t,\hat{y}_t) l(yt,y^t) ,然后,代理体(Agent)将迭代地修改网络参数,以更好地近似所需的输出。 成功培训后,代理人将能够从环境中获得正确的答案。 深度学习有不同的监督学习方法,包括深度神经网络(DNN),卷积神经网络(CNN),递归神经网络(RNN),包括长期短期记忆(LSTM)和门控递归单位(GRU)。 这些网络将在相应章节中详细描述。

深度半监督学习

半监督学习是基于部分标记的数据集进行的学习。在某些情况下,DRL和生成性对抗网络(GAN)被用作半监督学习技术。第7节讨论了GAN。第8节调查DRL方法。此外,RNN(包括LSTM和GRU)也用于半监督学习。

深度无监督学习

无监督学习系统是指不存在数据标签的系统。在这种情况下,代理学习内部表示或重要特征以发现输入数据中的未知关系或结构。通常,聚类,降维和生成技术被视为无监督学习方法。深度学习系列中有几个成员擅长聚类和非线性降维,包括自动编码器(AE),限制玻尔兹曼机器(RBM)和最近开发的GAN。此外,诸如LSTM和RL之类的RNN也用于许多应用领域中的无监督学习。第6节和第7节详细讨论了RNN和LSTM。

深度增强学习(RL)

Deep Reinforcement Learning是一种在未知环境中使用的学习技巧。 DRL始于2013年的Google Deep Mind 56。从那时起,基于RL提出了几种先进的方法。以下是RL的一个例子:如果环境样本输入: x t ∼ ρ x_t \sim \rho xtρ,代理体预测: y ^ t = f ( x t ) \hat{y}_t = f(x_t) y^t=f(xt),代理体接受成本: c t ∼ P ( c t ∣ x t , y ^ t ) c_t \sim P(c_t | x_t,\hat{y}_t) ctP(ctxt,y^t),其中P是未知概率分布,环境询问代理人一个问题,并给出一个嘈杂的分数作为答案。有时这种方法也称为半监督学习。基于这一概念已经实施了许多半监督和非监督技术(见第8节)。在RL中,我们没有直接的损失函数,因此与传统的监督方法相比,学习更加困难。 RL和监督学习之间的根本区别在于:首先,您无法完全访问要优化的功能;您必须通过交互查询它们,其次,您正在与基于状态的环境进行交互:输入 x t x_t xt取决于之前的操作。

根据问题范围或空间,可以决定需要应用哪种类型的RL来解决任务。如果问题有很多要优化的参数,DRL是最好的方法。如果问题具有较少的优化参数,则无推导RL方法是好的。这方面的一个例子是退火,交叉熵方法和SPSA。

特征学习

传统ML和DL之间的关键区别在于如何提取特征。 传统的ML方法通过应用多种特征提取算法来使用手工工程特征,然后应用学习算法。 另外,经常使用其他增强方法,其中将若干学习算法应用于单个任务或数据集的特征,并且根据来自不同算法的多个结果做出决定。

另一方面,在DL的情况下,自动学习特征并且以多个级别分层地表示特征。 这是DL对传统机器学习方法的强项。 表1显示了具有不同学习步骤的不同基于特征的学习方法。
在这里插入图片描述

为什么以及何时应用DL

DL适用于机器智能有用的几种情况(参见图3):

  • 没有人类专家(火星导航)
  • 人类无法解释他们的专业知识(语音识别,愿景和语言理解)
  • 问题的解决方案随时间而变化(跟踪,天气预报,偏好,库存,价格预测)
  • 解决方案需要适应特定情况(生物识别,个性化)。
  • 问题规模对于我们有限的推理能力来说太大了(计算网页排名,将广告与Facebook匹配,情绪分析)。

在这里插入图片描述
目前,DL正在几乎所有领域得到应用。 因此,这种方法通常被称为通用学习方法。

DL的最先进性能

如下所述,在计算机视觉和语音识别领域取得了一些突出的成就:

(a). ImageNet数据集上的图像分类。 其中一个大规模问题被称为大规模视觉识别挑战赛(LSVRC)。 CNN及其作为DL分支之一的变体在ImageNet任务中显示了最先进的准确性789101112 。 下图显示了在ImageNet-2012挑战中超时DL技术的成功案例。 图3显示ResNet-152的误码率达到 3.57 % 3.57% 3.57,超出了人类的准确度。

在这里插入图片描述
自动语音识别。 流行的TIMIT数据集(通用数据集通常用于评估)的语音识别领域的初步成功是小规模的识别任务13。 TIMIT Acoustic-Phonetic连续语音语料库包含来自美国英语八种主要方言的630个发言者,每个发言者阅读10个句子。 图4总结了错误率,包括这些早期结果,并以过去20年的电话错误率(PER)百分比来衡量。 条形图清楚地表明,与TIMIT数据集上的任何其他先前的机器学习方法相比,最近开发的DL方法(图的顶部)表现更好。

一些示例应用在图5和6中示出。

在这里插入图片描述
在这里插入图片描述

为什么是DL?

普遍学习方法

DL方法有时被称为通用学习,因为它几乎可以应用于任何应用领域。

强大的

深度学习方法不需要精确设计的功能。相反,为手头的任务自动学习最佳功能。结果,实现了对输入数据的自然变化的鲁棒性。

普遍化

相同的DL方法可以用于不同的应用程序或不同的数据类型。这种方法通常称为转移学习。此外,如果问题没有足够的可用数据,这种方法很有用。有许多文献讨论过这个概念(见第4节)。

可扩展性

DL方法具有高度可扩展性。微软发明了一种名为ResNet的深度网络11。该网络包含1202层,通常以超级计算规模实施。劳伦斯利弗莫尔国家实验室(LLNL)在开发类似网络的框架方面有一项重大举措,可以实现数千个节点13

DL的挑战

DL有几个挑战:

  • 使用DL进行大数据分析
  • DL方法的可扩展性
  • 能够生成数据,这些数据对于无法学习系统的数据非常重要(特别是对于计算机视觉任务,例如反向图形)。
  • 针对特殊用途设备的节能技术,包括移动智能,FPGA等。
  • 多任务和转移学习或多模块学习。这意味着要从不同的领域或不同的模型一起学习。
  • 处理学习中的因果关系。

DL社区已经考虑了上述大多数挑战。首先,对于大数据分析的挑战,2014年进行了一项很好的调查14。在本文中,作者解释了DL如何处理不同标准的细节,包括大数据问题的数量,速度,种类和准确性。在处理大数据问题时,作者还展示了DL方法的不同优势1516。图7清楚地表明,传统ML方法的性能对于较少量的输入数据表现出更好的性能。随着数据量增加超过一定数量,传统机器学习方法的性能变得稳定,而DL方法相对于数据量的增加而增加。

在这里插入图片描述

其次,在大多数解决大规模问题的案例中,该解决方案正在高性能计算(HPC)系统(超级计算,集群,有时被认为是云计算)上实施,这为数据密集型业务计算提供了巨大的潜力。 。随着数据在速度,种类,准确性和数量方面的爆炸式增长,使用企业级服务器和存储器随着增加而逐步扩展计算性能变得越来越困难。大多数文章都考虑了所有需求,并提出了使用异构计算系统的高效HPC。在一个例子中,劳伦斯利弗莫尔国家实验室(LLNL)已经开发了一个框架,称为利弗莫尔大人工神经网络(LBANN),用于DL的大规模实施(超计算规模),这明显取代了DL的可扩展性问题13

第三,生成模型是深度学习的另一个挑战。一个例子是GAN,它是一种出色的数据生成方法,适用于任何可以生成具有相同分布的数据的任务17。第四,我们在第7节中讨论过的多任务和转移学习。第四,关于网络架构和硬连线的节能深度学习方法已经进行了大量研究。第10节讨论了这个问题。

我们可以制作任何可以解决不同应用领域中多项任务的统一模型吗?就多模型系统而言,谷歌的一篇文章标题为“一种模式来学习它们”18就是一个很好的例子。这种方法可以从不同的应用领域中学习,包括ImageNet,多种翻译任务,图像字幕(MS-COCO数据集),语音识别语料库和英语解析任务。我们将通过本次调查讨论大部分挑战和各自的解决方案。在过去几年中已经提出了一些其他多任务技术192021

最后,提出了一个具有因果关系的学习系统,这是一个图形模型,定义了如何从数据中推断出因果模型。最近提出了一种基于DL的方法来解决这类问题22。然而,在过去几年中还有许多具有挑战性的问题已经解决,这些问题在这次革命之前无法有效解决。例如,图像或视频字幕23,样式使用GAN 24从一个域转移到另一个域,文本到图像合成25,以及更多26

最近在DL领域进行了一些调查27282930。这些论文调查了DL及其革命,但他们没有解决最近开发的称为GAN的生成模型17。此外,他们讨论的很少RL,并没有涵盖DRL方法的最新趋势128。在大多数情况下,已经进行的调查分别针对不同的DL方法。有一项很好的调查基于强化学习方法3031。有关转学的另一项调查32。已经对神经网络硬件进行了一项调查33。然而,这项工作的主要目的是提供关于深度学习及其相关领域的总体思路,包括深度监督(例如,DNN,CNN和RNN),无监督(例如,AE,RBM,GAN)(有时GAN也是用于半监督学习任务)和DRL。在某些情况下,DRL被认为是半监督或无监督的方法。此外,我们还考虑了该领域最近发展的趋势以及基于这些技术开发的应用。此外,我们还包括了通常用于评估深度学习技术的框架和基准数据集。此外,还包括会议和期刊的名称,这些会议和期刊被本社区考虑用于发表他们的研究文章。

本文的其余部分按以下方式组织:DNN的详细调查将在第2节第3节中讨论CNN。第4节描述了有效培训DL方法的不同先进技术。第5节讨论了RNN。第6节讨论了AE和RBM。第7节讨论了带有应用的GAN。第8节介绍了RL。第9节介绍了转移学习。第10节介绍了DL的节能方法和硬线。第11节讨论深度学习框架和标准开发工具包(SDK)。具有Web链接的不同应用程序域的基准在第12节中给出。结论在第13节中进行。

深度神经网络(DNN)

DNN历史

突出关键事件的神经网络的简史如图8所示。计算神经生物学已经对构建人工神经元的计算模型进行了重要的研究。 试图模仿人类大脑行为的人工神经元是构建人工神经网络的基本组成部分。 基本计算元素(神经元)称为节点(或单位)
它接收来自外部资源的输入,并具有产生输出的一些内部参数(包括在训练期间学习的权重和偏差)。 这个单位被称为感知器。 ANN的基础在参考文献13中讨论。
在这里插入图片描述
人工神经网络或一般神经网络由多层感知器(MLP)组成,其中包含一个或多个隐藏层,其中包含多个隐藏单元(神经元)。 有关MLP的详细信息,请参阅参考文献1334

随机梯度下降(SGD)

由于长训练时间是传统梯度下降法的主要缺点,因此SGD方法用于训练深度神经网络(DNN)135

反向传播(BP)

DNN采用流行的反向传播(BP)算法和SGD进行训练3134。 在MLP的情况下,我们可以使用作为指令非循环图的计算图来容易地表示NN模型。 对于DL的表示,我们可以使用链规则从BP有效地计算从顶层到底层的梯度,如参考文献343637383940所示。

动量

动量是一种有助于通过SGD方法加速训练过程的方法。 它背后的主要思想是使用渐变的移动平均值,而不是仅使用渐变的当前实际值。 我们可以用以下等式用数学表达:
v t = γ v t − 1 − η ∇ F ( θ t − 1 ) θ t = θ t − 1 + v t v_t = \gamma v_{t-1} - \eta \nabla \mathcal F(\theta_{t-1}) \\ \theta_t = \theta_{t-1} + v_t vt=γvt1ηF(θt1)θt=θt1+vt

这里 γ \gamma γ是动量, e t a eta eta是第 t t t轮训练的学习率。 在过去几年中引入了其他流行的方法,这些方法在第9节中在优化方法的范围内进行了解释。 在训练期间使用动量的主要优点是防止网络卡在局部最小值。 动量值为 γ ∈ ( 0 , 1 ) \gamma \in (0,1) γ(0,1)。值得注意的是,较高的动量值超过其最小值,可能使网络不稳定。通常, γ \gamma γ设置为0.5,直到初始学习稳定,然后增加到0.9 或更高37

学习率( η \eta η

学习率是培训DNN的重要组成部分。 学习率是训练期间考虑的步长,使训练过程更快。 但是,选择学习率的值是敏感的。 例如:如果为 η \eta η选择较大的值,网络可能会开始发散而不是收敛。 另一方面,如果为 η \eta η选择较小的值,则网络将需要更多时间来收敛。 此外,它可能很容易陷入局部最小值。 这个问题的典型解决方案是降低训练期间的学习率41

在训练期间,有三种常用方法可用于降低学习率:常数,因子和指数衰减。 首先,我们可以定义一个常数 ζ \zeta ζ,用于通过定义的步长函数手动降低学习率。 其次,可以在训练期间根据以下等式调整学习率:
η t = η 0 β t ϵ \eta_t = \eta_0 \beta^{\frac{t}{\epsilon}} ηt=η0βϵt
其中 η t \eta_t ηt是第 t t t轮学习率, η 0 \eta_0 η0是初始学习率, β \beta β是衰减因子,其值在 ( 0 , 1 ) (0,1) (0,1)的范围之间。
指数衰减的步进函数格式为:
η t = η 0 β ⌊ t ϵ ⌋ \eta_t = \eta_0 \beta^{\lfloor \frac{t}{\epsilon} \rfloor} ηt=η0βϵt
通常的做法是使用 β = 0.1 \beta= 0.1 β=0.1的学习率衰减,以在每个阶段将学习率降低10倍。

重量衰减

权重衰减用于训练深度学习模型作为 L 2 L2 L2正则化方法,这有助于防止过度拟合网络和模型泛化。 F ( θ , x ) \mathcal F(\theta,x) F(θ,x) L 2 L2 L2正则化可以定义为:
Ω = ∥ θ ∥ 2 ε ^ ( F ( θ , x ) , y ) = ε ( F ( θ , x ) , y ) + 1 2 λ Ω \Omega = \| \theta \| ^2 \\ \hat{\varepsilon} (\mathcal F(\theta,x),y) = \varepsilon(\mathcal F(\theta,x),y) + \frac{1}{2}\lambda \Omega Ω=θ2ε^(F(θ,x),y)=ε(F(θ,x),y)+21λΩ
权重 θ \theta θ的梯度为:
∂ 1 2 λ Ω ∂ θ = λ ⋅ θ . \frac{\partial \frac{1}{2} \lambda \Omega}{\partial \theta} = \lambda \cdot \theta . θ21λΩ=λθ.

一般的做法是使用值 λ = 0.0004 \lambda= 0.0004 λ=0.0004。较小的 λ \lambda λ将加速训练。

用于高效培训的其他必要组件,包括数据预处理和增强,网络初始化方法,批量标准化,激活功能,具有丢失的正则化以及不同的优化方法(如第4节中所讨论的)。

在过去的几十年中,已经提出了许多有效的方法来更好地训练深度神经网络。在2006年之前,培训深层架构的尝试失败了:训练深度监督的前馈神经网络往往会产生比浅层(带有1或2个隐藏层)更差的结果(包括训练和测试错误)。 Hinton在DBN上的革命性工作率先在2006年进行了改变4236

由于它们的组成,与浅层学习方法相比,许多层DNN更能代表高度变化的非线性函数42364236。此外,由于特征提取和分类层的组合,DNN更有效地用于学习。以下部分详细讨论了具有必要组件的不同DL方法。


  1. 1 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  2. 2 ↩︎

  3. 3 ↩︎ ↩︎ ↩︎

  4. 4 ↩︎

  5. 5 ↩︎

  6. 6 ↩︎

  7. 7 ↩︎

  8. 8 ↩︎

  9. 9 ↩︎

  10. 10 ↩︎

  11. 11 ↩︎ ↩︎

  12. 12 ↩︎

  13. 24 ↩︎ ↩︎ ↩︎

  14. 30 ↩︎

  15. 31 ↩︎

  16. 32 ↩︎

  17. 33 ↩︎ ↩︎

  18. 34 ↩︎

  19. 35 ↩︎

  20. 36 ↩︎

  21. 37 ↩︎

  22. 38 ↩︎

  23. 39 ↩︎

  24. 40 ↩︎

  25. 41 ↩︎

  26. 42 ↩︎

  27. 43 ↩︎

  28. 44 ↩︎ ↩︎

  29. 45 ↩︎

  30. 46 ↩︎ ↩︎

  31. 47 ↩︎ ↩︎

  32. 48 ↩︎

  33. 49 ↩︎

  34. 53 ↩︎ ↩︎ ↩︎

  35. 58 ↩︎

  36. 59 ↩︎ ↩︎ ↩︎ ↩︎

  37. 60 ↩︎ ↩︎

  38. 61 ↩︎

  39. 62 ↩︎

  40. 63 ↩︎

  41. 64 ↩︎

  42. 56 ↩︎ ↩︎ ↩︎

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值