关于深度学习理论和架构的最新综述-part4
贝叶斯深度学习(BDL)
DL方法一直为不同的应用提供最先进的精度。然而,由于模型的不确定性,DL方法无法处理给定任务的不确定性。这些学习方法需要输入并且没有理由地假设类概率1 ’ 2。 2015年,两名非洲裔美国人被认为是带有图像分类系统的大猩猩3。有几个应用领域可以提高不确定性,包括自动驾驶汽车,生物医学应用。然而,BDN是DL和贝叶斯概率方法之间的交集,在不同的应用中表现出更好的结果,并且理解问题的不确定性,包括多任务问题1 ’ 2。通过在模型权重上应用概率分布或映射输出的概率来估计不确定性1 ’ 2。
BDL在DL研究界越来越受欢迎。此外,已经提出了使用CNN技术的BDL方法,其中概率分布应用于权重。这些技术有助于处理模型过度拟合问题和缺乏训练样本,这是DL方法的两个公共挑战4 ’ 5。最后,最近发表了一些其他研究论文,其中一些先进技术已经在BDL6 ’ 7 ’ 8 ’ 9上提出。
迁移学习
迁移学习
解释迁移学习的一个好方法是看看师生关系。 在收集有关该主题的详细知识后,教师提供课程[^48]。 随着时间的推移,这些信息将通过一系列讲座传达。 可以认为教师(专家)正在向学生(学习者)传递信息(知识)。 同样的事情发生在深度学习的情况下,网络训练有大量数据,并且在训练期间,模型学习权重和偏差。 这些权重可以迁移到其他网络,以测试或重新训练类似的新模型。 网络可以从预先训练的权重开始,而不是从头开始训练。 传递学习方法的概念图如图44所示。
什么是预先训练的模型?
预训练模型是已经在与预期域相同的域中训练的模型。例如,对于图像识别任务,可以下载已经在ImageNet上训练的Inception模型。然后,可以将初始模型用于不同的识别任务,而不是从头开始训练,可以将权重保留为具有一些学习特征的权重。当缺少样本数据时,这种训练方法很有用。在以下链接中,模型动物园中有许多预先训练的模型(包括不同数据集上的VGG,ResNet和Inception Net)。
为什么要使用预先训练过的模型?
使用预训练模型有很多原因。首先,它需要大量昂贵的计算能力来训练大型数据集上的大型模型。其次,培训大型模型可能需要长达数周的时间。使用预先训练的权重训练新模型可以加速收敛,并有助于网络泛化。
你将如何使用预先训练过的模型?
当使用表3中所示的预训练权重时,我们需要考虑以下关于相应应用领域和数据集大小的标准。
使用推理
专门研究推理应用程序的研究小组研究包括模型压缩在内的优化方法。模型压缩在移动设备或专用硬件领域非常重要,因为它使模型更节能,速度更快。
关于深度学习的神话
有一个神话;您是否需要一百万个标记样本来培训深度学习模型?答案是肯定的,但在大多数情况下,迁移学习方法用于训练深度学习方法而无需大量标签数据。例如,下面的图44详细说明了迁移学习方法的策略。这里主要模型已经使用大量标记数据(ImageNet)进行训练,然后权重用于训练PASCAL数据集。实际情况是:
- 可以从未标记的数据中学习有用的表示。
- 迁移学习可以帮助从相关任务中学习表示10。
我们可以为不同的域采用训练有素的网络,该网络可以适用于目标任务的任何其他域11 ’ 12。首先训练具有紧密域的网络,使用标准反向传播很容易获得标记数据,例如,ImageNet分类,来自增强数据的伪类。然后切断网络的顶层,并替换目标域的监督目标。最后,使用带有目标域标签的反向传播来调整网络,直到验证丢失开始增加11 ’ 12。有一些调查论文和书籍在迁移学习上发表13 ’ 14。迁移学习的自学式学习15。促进迁移学习的方法16。
DL的节能方法和硬件
概观
DNN已经成功应用,并在不同的应用领域实现了更好的识别精度,如计算机视觉,语音处理,自然语言处理,大数据问题等等。然而,大多数情况下,正在图形处理单元(GPU)上执行训练以处理大量数据,这在功率方面是昂贵的。
最近,研究人员一直在使用越来越广泛的网络进行训练和测试,以达到更好的分类准确度,以在某些情况下达到人类或超出人类的识别准确度虽然神经网络的大小正在增加,但它变得更强大并且提供更好的分类准确性。但是,存储消耗,存储器带宽和计算成本呈指数增长。另一方面,具有大量网络参数的这些类型的大规模实现不适用于低功率实现,无人机(UAV),不同医疗设备,低存储系统,例如移动设备,现场可编程门阵列(FPGA)等。
有许多研究正在开发更好的网络结构或网络,计算成本更低,低功耗和低内存系统的参数数量更少,而不降低分类精度。设计高效的深层网络结构有两种方法:
- 第一种方法是通过有效的网络结构优化内部运营成本;
- 第二个设计具有低精度操作的网络或硬件高效的网络。
通过对卷积层使用低维卷积滤波器,可以减少网络结构的内部操作和参数[^71] ’ [^99]。
这种方法有很多好处。首先,整改操作的卷积使得决策更具辨别力。其次,这种方法的主要好处是大大减少了计算参数的数量。例如,如果一个层具有
5
×
5
5 \times 5
5×5维滤波器,可以用两个
3
×
3
3 \times 3
3×3维滤波器替换(之间没有汇集层)以便更好地进行特征学习;三个
3
×
3
3 \times 3
3×3维滤波器可用作7×7维滤波器的替代品等。使用低维滤波器的好处是假设当前的卷积层都具有C通道,对于
3
×
3
3 \times 3
3×3滤波器的三个层,参数的总数是权重:
3
×
(
3
×
3
×
C
×
C
)
=
27
C
2
3\times (3 \times 3 \times C \times C )= 27C^2
3×(3×3×C×C)=27C2权重而在滤波器的尺寸为
7
×
7
7 \times 7
7×7时,参数总数为
7
×
7
×
C
×
C
=
49
C
2
7 \times 7 \times C \times C = 49C^2
7×7×C×C=49C2,与三个
3
×
3
3 \times 3
3×3滤波器参数相比几乎是两倍。此外,在网络中以不同的间隔放置层,例如卷积,汇集,丢失,对整体分类准确性有影响。最近提出了一些优化网络架构的策略来设计稳健的深度学习模型[^99] ’ [^100] ’ 17以及在FPGA平台上有效实现CNN 18。
策略1:用1×1滤波器替换
3
×
3
3 \times 3
3×3滤波器。使用较低维度过滤器来减少参数总数的主要原因。通过用1×1替换
3
×
3
3 \times 3
3×3滤波器可以减少
9
x
9x
9x参数数量。
策略2:将输入通道的数量减少到
3
×
3
3 \times 3
3×3滤波器。对于图层,计算输出要素图的大小,其与使用N 1的网络参数相关,其中N是输入图的大小,F是过滤器大小,S是用于步幅。为了减少参数的数量,它不仅足以减小滤波器的尺寸,而且还需要控制输入通道的数量或具有尺寸。
策略3:在网络后期进行下采样,使卷积层具有激活图:当前卷积层的输出可以是至少
1
×
1
1 \times 1
1×1或通常大于
1
×
1
1 \times 1
1×1。输出宽度和高度可以通过一些标准来控制:(1)输入样本的大小(例如,
256
×
256
256 \times 256
256×256)和(2)选择后下采样层。最常见的汇集层是使用平均或最大汇集层,有一个带卷积的替代子采样层(
3
×
3
3 \times 3
3×3滤波器)和步长为2。如果大多数早期层具有更大的步幅,则大多数图层将包含少量激活贴图。
二进制或三元连接神经网络
乘法精度低,乘法下降很少,可以大大降低计算成本19 ’ 20。这些论文还介绍了二进制连接神经网络(BNN)三元连接神经网络(TNN)。通常,通过实值激活(在前向传播中)和梯度计算来乘以实值权重
(在向后传播中)是深度神经网络的主要操作。二进制连接或BNN是通过将前向传播中使用的权重转换为二进制来消除乘法运算的技术,即,仅约束为两个值(0和1或-1和1)。结果,乘法运算可以通过简单的加法(和减法)来执行,并使训练过程更快。有两种方法可以将实际值转换为相应的二进制值,例如确定性和随机性。在确定性技术的情况下,直接阈值技术应用于权重。另一种方法是随机方法,其中基于使用硬S形函数的概率将矩阵转换为二进制,因为它在计算上是便宜的。实验结果显示出非常好的识别准确度21 ’ 22 ’ 23。 BNN有以下几个优点:
- 据观察,GPU上的二进制乘法几乎是GPU上传统矩阵乘法的七倍
- 在正向传递中,BNN大大减少了存储器大小和访问,并且通过逐位操作取代了大多数算术运算,从而大大提高了功效
- 二进制内核可用于CNN,可降低约60%的专用硬件复杂性。
- 还观察到,与算术运算相比,存储器访问通常消耗更多能量,并且存储器访问成本随着存储器大小而增加。 BNN在两个方面都是有益的。
在过去几年中已经提出了一些其他技术24 ’ 25 ’ 26 ’ 27。已经针对具有XNOR操作的CNN提出了另一种节能且硬件友好的网络结构。在基于XNOR的CNN实现中,滤波器和卷积层的输入都是二进制的。这导致卷积运算速度提高了58倍,节省了32倍的内存。在同一篇论文中,提出了Binary-Weight-Networks,节省了大约32倍的内存。这使得在CPU上实现最先进的网络以实现实时使用而不是GPU成为可能。这些网络在ImageNet数据集上进行了测试,与全精度AlexNet相比,分类精度仅提高了2.9%(在前1%的测量中)。该网络需要更少的功率和计算时间。这可以使加速深度神经网络的训练过程成为可能,专门的硬件实现[^273] ’ [^274]。 2016年,神经形态系统首次提出了节能深度神经网络(EEDN)架构。此外,他们还发布了一个名为EEDN的深度学习框架,该框架几乎可以提供最先进精度的精确度。除了ImageNet数据集28 ’ 29之外的流行基准测试。
DL的硬件
随着DL方法的算法开发,在过去几年中已经提出了许多硬件架构30。关于深度学习硬件的当前趋势的细节最近已经发表[^49] ’ 30。麻省理工学院提出Eyeriss作为深度卷积神经网络(DCNN)的硬件31。还有另一种称为Dadiannao的机器学习架构32。谷歌开发了名为Tensor Processing Unit(TPU)的硬件用于深度学习,并于2017年发布33。 2016年,斯坦福大学发布并提出了用于推理的高效硬件,称为高效推理引擎(EIE)34。 IBM于2015年发布了名为TrueNorth的神经形态系统28。
深度学习方法不仅限于HPC平台,已经开发了许多在移动设备上运行的应用程序。移动平台提供与用户的日常活动相关的数据,通过使用收集的数据重新训练系统,可以使移动系统更有效和更强大。有一些研究正在为DL开发硬件友好算法35 ’ 36 ’ 37。
其他主题
有几个重要的主题,包括框架,SDK,基准数据集,相关的期刊和会议都包含在附录A中。
总结
在本文中,我们对过去几年的深度学习及其应用进行了深入的回顾。回顾了不同类别学习中不同的最先进的深度学习模型,包括监督,无监督和强化学习(RL),以及它们在不同领域的应用。此外,我们已经详细解释了不同的监督深度学习技术,包括DNN,CNN和RNN。详细审查了非监督的深度学习技术,包括AE,RBM和GAN。在同一部分中,我们已经考虑并解释了基于LSTM和RL提出的无监督学习技术。在第8节中,我们使用称为Q-Learning的基本学习技术提出了深度强化学习(DRL)的调查。最近开发的贝叶斯深度学习(BDL)和转移学习(TL)方法也分别在第9节和第10节中讨论。此外,我们还开展了一项关于节能深度学习方法,DL传输学习以及DL硬件开发趋势的调查。此外,我们还讨论了一些DL框架和基准数据集,这些数据集通常用于深度学习方法的实施和评估。最后,我们已经收录了相关的期刊和会议,DL社区已经发布了他们有价值的研究文章。