Advertisement

双向卷积神经网络_CNN(卷积神经网络)、RNN(循环神经网络)和DNN(深度神经网络)

阅读量:

本文转载修改自:知乎-科言君

感知机(perceptron)

神经网络技术源自上世纪五、六十年代,在当时被称作perceptron模型。该模型架构包括输入层、输出层以及一个潜在层。特征向量通过潜在层进行变换以达到输出结果。该模型的主要开发者是Rosenblatt先生。然而,在面对较为复杂的函数时(如异或操作),他的单层感知机模型却无能为力

随着数学的发展,在一定时期内出现了诸多挑战与问题。这些缺点直至上世纪八十年代才得以消除。MLP(多层感知机)本质上是由多个隐含层组成的网络模型。让我们来探讨一下其结构:

图1 上下层神经元全部相连的神经网络——多层感知机

能够突破传统离散传输框架限制

神经网络(Neural Network)

尽管众多专家早已预见神经网络需要更加深层的发展路径,然而却始终困扰着

2006年,Hinton提出了一种基于预训练模型的方法,成功解决了深层神经网络中常见的局部最优问题,通过提升隐含层的数量达到了7层,使神经网络具备了"深度",从而拉开了深度学习研究的新热潮.值得注意的是,"深度"这一概念具有相对性:在语音识别领域,即使4层网络也能够被视为"较深";而在图像识别等复杂任务中,通常需要20层以上的网络才能称得上"深度".为了缓解梯度消失问题,ReLU、maxout等激活函数替代了传统的sigmoid函数,从而奠定了现代深度神经网络(DNN)的基本架构.从结构层面来看,全连接型的DNN与图1所示的多层感知机并无本质区别.

值得注意的是,在今年引入的高速路网体系与深度残差网络技术并行发展的情况下

展现出卓越的技术优势

其总层数超过了以往任何一层

图2 缩减版的深度残差学习网络,仅有34层,终极版有152层

如图1所示,在全连接型DNN架构中观察到,在下层神经元与上层神经元之间能够建立联系。这种结构带来的主要问题是参数数量急剧增加。假设接收的是一个分辨率高达1K×1K像素级别的图像数据,并且隐含层拥有数量达百万级的单元,则该单一层就需要训练数量规模达到十亿级的权重参数。这不仅会导致严重的过拟合现象出现,并且容易陷入局部最优解的情况难以自拔。此外,在图像数据中固有的局部模式(例如边缘、轮廓、五官等)可以通过特定的方法被提取并利用起来。显然,在图像处理领域所掌握的概念和技术应该与神经网络模型进行深度整合才能取得更好的效果。此时我们可以引出卷积神经网络CNN的概念来进一步探讨这一问题。对于CNN来说,并不是所有上下文之间的神经元都能直接相连通而是通过一种称为"卷积核"的操作来进行间接联系实现信息传递的过程)。同一个卷积核在所有图像位置都是共享使用的机制使得经过卷积操作后依然保留原始的空间关系特征)。两者的卷积传输过程示意图如下:

图3 卷积神经网络隐含层(摘自Theano教程)

举例说明卷积神经网络的基本架构。假设图3所示的m-1层为输入层(其中m-1=1),为了识别一张彩色图像(该图像包含四个通道:ARGB),其中透明度通道与红绿蓝通道分别对应四幅相同尺寸的子图像。在这里,默认设定每个卷积核尺寸为100×100像素,并配置了编号从w₁到w₁₀₀的不同卷积核(从直觉上讲,每个卷积核应能够学习到独特的特征结构)。将其中一个特定的卷积核(如w₁)应用于该ARGB图像进行卷积操作后,则可获得隐含层的第一幅特征图;这幅特征图在左上角对应位置处的像素值是原始四幅输入图像在相应区域像素值按权重相加的结果。同理类推地计算后可得到隐含层共生成了第一至第十幅特征图(每副特征图代表原始图像中某种特定特征的表现)。经过这样的结构设计后,在后续层中不断递送这些特征图进行进一步处理。同时,在CNN中引入最大池化操作能够进一步提升模型对平移不变性的鲁棒性。

图4所示的典型卷积神经网络架构中,在该网络的最后一层确实采用了全连接层配置(参考Theano教程)。

在这个例子里,在输入层到隐含层之间发生了参数骤降至1\times 1\times 1\times 1亿个(即1\times 1\times 1\times 2=2e9)。这样就能借助现有的训练数据构建出一个性能良好的模型。这一发现表明,在面对大量参数时仍然能够保持高效训练的能力。这暗示着基于卷积神经网络的方法在图像处理中展现出强大的表现力。卷积神经网络之所以能够在图像识别中取得成功,则是因为其能够有效地限制网络参数的数量并提取出图像中的局部特征。同样地,在语音识别领域中也是如此——通过关注语音信号中的局部特征和时间序列信息,卷积神经网络也展现出卓越的应用潜力。

尽管全连接型的人工神经网络在许多方面表现出色,但它们在处理基于时间序列的数据时存在局限性。然而,在自然语言处理、语音识别以及手写体识别等应用场景中,样本的时间顺序特性往往携带重要信息。为了应对上述需求,人们开发了一种能够有效捕捉时间依赖性的神经网络模型——循环神经网络(RNN)。

在传统的全连接网络或卷积神经网络(CNN)架构中,在每一层的人工神经元仅能将信号传递给上一层结构。不同时间点相互独立地进行样本处理的行为也使这类模型被统称为前馈型人工神经网络(Feed-forward Neural Networks)。与之相比,在循环神经网络(RNN)中,人工神经元的时间序列特性使得当前时间点i的状态不仅由前一层的时间点i的结果决定,在当前时间点m处的输入还来源于自身在上一个时间戳m-1处的状态影响!这可以通过下图来直观展示。

图5 RNN网络结构

能够观察到在隐含层节点之间建立了连接。为便于分析,在时间上展开了空间上的铺排,并获得了如图6所示的结构。

图6 RNN在时间上进行展开

在(t+1)时刻的输出结果O(t+1),是该时刻输入信号与之前全部历史信息综合作用的效果展示,在此基础上实现了时间序列建模的任务目标。

可以发现,RNN本质上是一个在时间上传递的神经网络结构,在这里其深度与时间序列长度保持一致!如前所述,“梯度消失”现象又出现了,在这次情况下它沿着时间轴延伸并持续积累误差信号。对于t时刻而言,在经过若干层传播后其产生的误差梯度最终在经过若干层传播后完全消失。因此,在理论上"所有历史"信息都对当前状态产生影响是合理的假设;但在实际应用中由于计算限制和模型限制其影响仅局限于有限的时间范围。

为了应对时间上的梯度消失问题,在机器学习领域中,长短时记忆单元(LSTM)被发展出来。这些模型通过门控机制来实现对时间上信息的记忆,并且能够有效防止梯度消失。一个LSTM单元的结构如下:

图7 LSTM

除了上述三种网络之外,在此之外还有其他许多不同的结构体系存在。举例来说,在序列信号分析中若要提高识别能力是否能够结合过去与未来的部分信息?因为在序列信号分析中若能预知未来的变化趋势对于提高识别准确性是有帮助的。由此发展出了双向RNN和双向LSTM模型同时利用了历史信息与未来信息的优势

图8 双向RNN

实际上,在各种网络体系中,在应用环境里通常会综合运用不同体系,在进入上层输出前通常会附加一个全连接层,在实际应用环境中通常会综合运用不同体系,在进入上层输出前通常会附加一个全连接层,在进入上层输出前通常会附加一个全连接层;难以准确归类;展望当前深度学习的发展态势;尽管其形式多样且复杂;但研究者们的出发点肯定都是为了解决特定的问题;对于这一领域感兴趣的人士来说;深入分析这些架构的特点及其功能途径;入门的话可以参考:

Ng的Ufldl以及

Theano内自带的教程

全部评论 (0)

还没有任何评论哟~