锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

AI程序员必看,一文带你啃透CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的内部网络...

时间:2023-01-28 23:00:00 电阻100w100k电阻w100

首先,我觉得没必要认为DNN、CNN、RNN完全无法相比。广义上说,NN(或更美DNN)它确实可以被认为是包含的CNN、RNN这些具体的变种形式。在实际应用中,所谓深度神经网络DNN,往往融合了多种已知的结构,包括卷积层或是LSTM单元。但从题主的意思来看,这里的DNN应指全连接的神经元结构,不包括卷积单元或时间关联。所以,大家一定要做到DNN、CNN、RNN等进行对比,也未尝不可。

事实上,如果我们遵循神经网络技术的发展背景,就很容易找出这些网络结构发明的初衷和本质区别,我希望大家有所帮助。

文末有250备了250G 人工智能学习资料礼包!希望大家认真阅读本文!


神经网络技术起源于上世纪五六十年代,当时被称为感知机(perceptron),具有输入层、输出层和隐含层。输入的特征向量通过隐含层转换到输出层,并在输出层中得到分类结果。早期感知机的驱动力是Rosenblatt。(扯一个不相关的:由于计算技术的落后,当时感知器传输函数是用线拉动变阻器改变电阻的方法机械实现的,脑补一下科学家们扯着密密麻麻的导线的样子…)

但是,Rosenblatt单层感知机有一个严重的问题,不能再严重了,那就是它对稍微复杂的函数无能为力(比如最典型的不同或不同操作)。你能指望这个产品有什么实际用途吗?o(╯□╰)o

随着数学的发展,这一缺点直到20世纪80年代才出现Rumelhart、Williams、Hinton、LeCun等人(反正是一票大牛)发明的多层感知机(multilayer perceptron)克服。顾名思义,多层感知机是多层感知机(废话)……)。好吧,我们来看看多层感知机的结构:

图1上下神经元连接的神经网络-多层感知机

多层传感器可以摆脱早期离散传输函数的束缚sigmoid或tanh在训练算法中使用连续函数模拟神经元对激励的响应Werbos反向传播发明BP算法。是的,这就是我们现在所说的神经网络NN——神经网络听起来不知道哪里比感知机高端!这再次告诉我们一个好名字来研究(zhuang)究(bi)很重要!

多层感知机解决了以前无法模拟不同或逻辑的缺陷,更多的层数也使网络更能描绘现实世界中的复杂情况。我相信年轻人就像Hinton当时一定是春风得意。

多层感知机的启示是,神经网络的层数直接决定了它描绘现实的能力——用每层较少的神经元拟合更复杂的函数[1]。

(Bengio如是说:functions that can be compactly represented by a depth k architecture might require an exponential number of computational elements to be represented by a depth k ? 1 architecture.)

尽管牛们早就预料到神经网络需要变得更深,但总有一场噩梦萦绕在他们身边。随着神经网络层数的加深,优化函数越来越容易陷入局部最优解,而这个陷阱越来越偏离了真正的整体优势。使用有限数据训练的深层网络不如浅层网络好。与此同时,另一个不可忽视的问题是,随着网络层数的增加,梯度消失现象更加严重。具体来说,我们经常使用它sigmoid作为神经元的输入输出函数。范围为1的信号在BP当反向传输梯度时,梯度衰减为原来的0.25.层数多,梯度指数衰减后,低层基本无法接受有效的训练信号。

2006年,Hinton利用预训练方法缓解局部最优问题,将隐含层推向7层[2],神经网络真正意义上有深度,从而开启了深度学习的热潮。这里的深度没有固定的定义——语音识别中的四层网络可以被视为深度,而图像识别中的20层以上网络并不少见。为克服梯度消失,ReLU、maxout替换传输函数sigmoid,形成了如今DNN基本形式。单从结构上看,全连接的DNN和图1多层感知机没有区别

值得一提的是,今年出现的高速公路网络(highway network)学习深度残差(deep residual learning)进一步避免梯度消失,网络层数达到前所未有的100多层(深度残差学习:152层)[3,4]!具体结构题主可自行搜索了解。如果你之前在怀疑是不是有很多方法打上了“深度学习”的噱头,这个结果真是深得让人心服口服。

图2缩减版只有34个深度残差学习网络层,终极版152层,自己感受一下

如图1所示,我们可以看到全连接DNN下层神经元和所有上层神经元都可以形成连接,潜在的问题是膨胀参数。假设输入像素为1K*1K图像,隐含层1M光这一层就有10个节点^12个权重需要训练,不仅容易过拟合,而且容易陷入局部最佳。此外,图像中还有固有的局部模式部模式(如轮廓、边界、眼睛、鼻子、嘴巴等)。显然,图像处理的概念应该与神经网络技术相结合。在这个时候,我们可以牺牲说的卷积神经网络CNN。对于CNN并非所有上下神经元都能直接连接,而是以卷积核为中介。同一卷积核在所有图像中共享,图像在卷积操作后仍保留原始位置关系。两层之间的卷积传输示意图如下:

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

简要说明卷积神经网络的结构。假设图3中m-1=1是输入层,我们需要识别一个有四个通道的彩色图像ARGB假设卷积核大小为100*100卷积核共100个w1到w100(从直觉上看,每个卷积核都要学习不同的结构特征)。用w1在ARGB在图像上进行卷积操作,可以获得隐含层的第一个图像;这个隐含层图像左上角的第一个像素是左上角的四个输入图像*以此类推,100区域内像素的加权求和。同样,包括其他卷积核,隐含层对应100幅图像。每个图像对原始图像中不同特征的响应。继续按照这样的结构传递。CNN中还有max-pooling等操作进一步提高鲁棒性。

图4一个典型的卷积神经网络结构,注意到最后一层实际上是一个全连接层(摘自)Theano教程)

在这个例子中,我们注意到了输入层到隐含层的参数瞬间降低到100*100*100=10^6!这使得我们能够利用现有的训练数据获得良好的模型。正是因为图像识别适用于主题所说的,才适用于图像识别CNN模型限制了参数的数量,并挖掘了局部结构的特征。使用语音语谱结构中的局部信息,CNN它仍然可以应用于语音识别。

全连接的DNN还有一个问题——时间序列上的变化无法建模。样本出现的时间顺序对自然语言处理、语音识别、手写识别等应用非常重要。为了适应这一需求,有另一种神经网络结构—循环神经网络RNN。

在普通的全连接网络或CNN在中间,每层神经元的信号只能在上层传播,样本的处理在每时每刻都是独立的,因此成为前向神经网络(Feed-forward Neural Networks)。而在RNN在中间,神经元的输出可以直接作用于下一次,即在m时输入第一层神经元,除了(i-1)除此时此刻的输出外,层神经元还包括其自身(m-1)时刻输出!表示图片是这样的:

图5 RNN网络结构

我们可以看到隐含层节点之间增加了互连性。为了便于分析,我们经常RNN展开时间,得到图6所示的结构:

图6 RNN及时展开

Cool,t 1)时刻网络的最终结果O(t 1)这是当时输入和所有历史共同作用的结果!这就达到了建模时间序列的目的。

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

为了解决时间上的梯度消失,机器学习领域发展出了长短时记忆单元LSTM,通过门的开关实现时间上记忆功能,并防止梯度消失,一个LSTM单元长这个样子:

图7 LSTM的模样

除了题主疑惑的三种网络,和我之前提到的深度残差学习、LSTM外,深度学习还有许多其他的结构。举个例子,RNN既然能继承历史信息,是不是也能吸收点未来的信息呢?因为在序列信号分析中,如果我能预知未来,对识别一定也是有所帮助的。因此就有了双向RNN、双向LSTM,同时利用历史和未来的信息。

图8双向RNN

事实上,不论是那种网络,他们在实际应用中常常都混合着使用,比如CNN和RNN在上层输出之前往往会接上全连接层,很难说某个网络到底属于哪个类别。不难想象随着深度学习热度的延续,更灵活的组合方式、更多的网络结构将被发展出来。尽管看起来千变万化,但研究者们的出发点肯定都是为了解决特定的问题。题主如果想进行这方面的研究,不妨仔细分析一下这些结构各自的特点以及它们达成目标的手段。入门的话可以参考:

Ng写的Ufldl:UFLDL教程 - Ufldl

也可以看Theano内自带的教程,例子非常具体:Deep Learning Tutorials

欢迎大家继续推荐补充。

当然啦,如果题主只是想凑个热闹时髦一把,或者大概了解一下方便以后把妹使,这样看看也就罢了吧。

为感谢大家的支持~,(只要是关注了迪迦的朋友,250G人工智能学习大礼包免费领取!内含:两大Pytorch、TensorFlow实战框架视频、图像识别、OpenCV、计算机视觉、深度学习与神经网络等视频、代码、PPT以及深度学习书籍) 

只需要你点个关注,然后扫码添加助手小姐姐VX即可无套路领取!

扫码添加即可

参考文献:

[1] Bengio Y. Learning Deep Architectures for AI[J]. Foundations & Trends® in Machine Learning, 2009, 2(1):1-127.

[2] Hinton G E, Salakhutdinov R R. Reducing the Dimensionality of Data with Neural Networks[J]. Science, 2006, 313(5786):504-507.

[3] He K, Zhang X, Ren S, Sun J. Deep Residual Learning for Image Recognition. arXiv:1512.03385, 2015.

[4] Srivastava R K, Greff K, Schmidhuber J. Highway networks. arXiv:1505.00387, 2015.

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章