close
当前位置: 物联网在线 > 物联网设计开发 > 技术文章 >

【科普】CNN(卷积神经网络)、RNN(递归神经网络)、DNN(深度神经网络)内部网络结构的区别

 【科普】CNN(卷积神经网络)、RNN(递归神经网络)、DNN(深度神经网络)内部网络结构的区别

先说DNN,从结构上来说他和传统意义上的NN(神经网络)没什么区别,但是神经网络发展时遇到了一些瓶颈问题。

一开始的神经元不能表示异或运算,科学家通过增加网络层数,增加隐藏层可以表达。并发现神经网络的层数直接决定了它对现实的表达能力。但是随着层数的增加会出现局部函数越来越容易出现局部最优解的现象,用数据训练深层网络有时候还不如浅层网络,并会出现梯度消失的问题。

我们经常使用sigmoid函数作为神经元的输入输出函数,在BP反向传播梯度时,信号量为1的传到下一层就变成0.25了,到最后面几层基本无法达到调节参数的作用。值得一提的是,最近提出的高速公路网络和深度残差学习避免梯度消失的问题。

DNN与NN主要的区别在于把sigmoid函数替换成了ReLU,maxout,克服了梯度消失的问题。

下图为深度网络DNN结构图

CNN(卷积神经网络)、RNN(递归神经网络)、DNN(深度神经网络)内部网络结构的区别

深度学习的深度没有固定的定义,2006年Hinton解决了局部最优解问题,将隐含层发展到7层,这达到了深度学习上所说的真正深度。不同问题的解决所需要的隐含层数自然也是不相同的,一般语音识别4层就可以,而图像识别20层屡见不鲜。但随着层数的增加,又出现了参数爆炸增长的问题。假设输入的图片是1K*1K的图片,隐含层就有1M个节点,会有10^12个权重需要调节,这将容易导致过度拟合和局部最优解问题的出现。为了解决上述问题,提出了CNN。

CNN最大的利用了图像的局部信息。图像中有固有的局部模式(比如轮廓、边界,人的眼睛、鼻子、嘴等)可以利用,显然应该将图像处理中的概念和神经网络技术相结合,对于CNN来说,并不是所有上下层神经元都能直接相连,而是通过“卷积核”作为中介。同一个卷积核在所有图像内是共享的,图像通过卷积操作后仍然保留原先的位置关系。卷积神经网络隐含层,通过一个例子简单说明卷积神经网络的结构。假设m-1=1是输入层,我们需要识别一幅彩色图像,这幅图像具有四个通道ARGB(透明度和红绿蓝,对应了四幅相同大小的图像),假设卷积核大小为100*100,共使用100个卷积核w1到w100(从直觉来看,每个卷积核应该学习到不同的结构特征)。用w1在ARGB图像上进行卷积操作,可以得到隐含层的第一幅图像;这幅隐含层图像左上角第一个像素是四幅输入图像左上角100*100区域内像素的加权求和,以此类推。同理,算上其他卷积核,隐含层对应100幅“图像”。每幅图像对是对原始图像中不同特征的响应。按照这样的结构继续传递下去。CNN中还有max-pooling等操作进一步提高鲁棒性。

一个典型的卷积神经网络结构,注意到最后一层实际上是一个全连接层。在这个例子里,我们注意到输入层到隐含层的参数个数瞬间降低到了,这使得我们能够用已有的训练数据得到良好的模型。适用于图像识别,正是由于模型限制参数了个数并挖掘了局部结构的这个特点,顺着同样的思路,利用语音语谱结构中的局部信息,CNN照样能应用在语音识别中。

CNN结构图如下:

CNN(卷积神经网络)、RNN(递归神经网络)、DNN(深度神经网络)内部网络结构的区别

全连接的DNN还存在着另一个问题——无法对时间序列上的变化进行建模。然而,样本出现的时间顺序对于自然语言处理、语音识别、手写体识别等应用非常重要。对了适应这种需求,就出现了另一种神经网络结构——循环神经网络RNN。在普通的全连接网络或CNN中,每层神经元的信号只能向上一层传播,样本的处理在各个时刻独立,因此又被成为前向神经网络(Feed-forward Neural Networks)。而在RNN中,神经元的输出可以在下一个时间戳直接作用到自身,即第i层神经元在m时刻的输入,除了(i-1)层神经元在该时刻的输出外,还包括其自身在(m-1)时刻的输出!表示成图就是这样的:

CNN(卷积神经网络)、RNN(递归神经网络)、DNN(深度神经网络)内部网络结构的区别

我们可以看到在隐含层节点之间增加了互连。为了分析方便,我们常将RNN在时间上进行展开,得到如图所示的结构

CNN(卷积神经网络)、RNN(递归神经网络、DNN(深度神经网络)内部网络结构的区别


RNN可以看成一个在时间上传递的神经网络,它的深度是时间的长度!正如我们上面所说,“梯度消失”现象又要出现了,只不过这次发生在时间轴上。对于t时刻来说,它产生的梯度在时间轴上向历史传播几层之后就消失了,根本就无法影响太遥远的过去。因此,之前说“所有历史”共同作用只是理想的情况,在实际中,这种影响也就只能维持若干个时间戳。为了解决时间上的梯度消失,机器学习领域发展出了长短时记忆单元。


(责任编辑:ioter)

用户喜欢...

英国伯明翰大学团队使用Theano,Python,PYNQ和Zynq开发定点Deep Recurrent神经网络

可编程逻辑(PLD)是由一种通用的集成电路产生的,逻辑功能按照用户对器件编程来确定,用户可以自行编程把数字系统集成在PLD中。经过多年的发展,可编程逻辑器件由70年代的可编程逻辑阵...


机器学习方法:从线性模型到神经网络

发现模式 一个模型实际上都是一个从输入到输出的函数,我们希望用这些模型发现数据中的模式,发现数据中存在的函数依赖,当然前提是数据中本身就存在这样的函数依赖。数据集有很多...


神经网络—面向妈妈级的入门说明

作者:Jen Bernier 我的母亲是一名护士,目前已经退休。她是一个非常聪明的人,对自己的工作业务非常的尽职尽责。几天前我和她说我正在研究Imagination最新的神经网络加速器,她诧异的说:...


遥遥领先的PowerVR与神经网络加速器

近来,如果你对神经网络有所关注,那么你一定会发现神经网络的市场如日中天。实际上,机器学习和深度学习已经成为了人人所熟知的技术。如果你还对此很陌生,那么你可以看看我的另一...


神经网络入门指南

人工神经网络(ANN)是一种从信息处理角度对人脑神经元网络进行抽象从而建立的某种简单模型,按不同的连接方式组成不同的网络。其在语音识别、计算机视觉和文本处理等方面取得的突破...


从图像到知识:深度神经网络实现图像理解的原理解析

摘要:本文将详细解析深度神经网络识别图形图像的基本原理。针对卷积神经网络,本文将详细探讨网络中每一层在图像识别中的原理和作用,例如卷积层(convolutional layer),采样层(pooling la...


为什么说PowerVR 2NX NNA是神经网络加速器的未来?

作者:Benny Har-Even 从早期的桌面PC游戏到街机游戏机,到后来的家庭游戏机以及移动设备端等,PowerVR一直都与图形技术密切相关,今年是PowerVR 25周年,近期我们发布了一系列的文章来庆祝。...


深度卷积神经网络在目标检测中的进展

近些年来,深度卷积神经网络(DCNN)在图像分类和识别上取得了很显著的提高。回顾从2014到2016这两年多的时间,先后涌现出了R-CNN,Fast R-CNN, Faster R-CNN, ION, HyperNet, SDP-CRC, YOLO,G-CNN, SSD等越来...


[深入剖析]递归神经网络

递归神经网络(RNN)是一类神经网络,包括一层内的加权连接(与传统前馈网络相比,连接仅馈送到后续层)。因为 RNN 包含循环,所以它们可以在处理新输入的同时存储信息。这种记忆使它...


神经网络算法的优势与应用

人工神经网络(ANN)以大脑处理机制作为基础,开发用于建立复杂模式和预测问题的算法。 首先了解大脑如何处理信息: 在大脑中,有数亿个神经元细胞,以电信号的形式处理信息。外部信...