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

但是,Rosenblatt的单层感知机有一个严重得不能再严重的问题,即它对稍复杂一些的函数都无能为力(比如最为典型的“异或”操作)。连异或都不能拟合,你还能指望这货有什么实际用途么o(╯□╰)o

随着数学的发展,这个缺点直到上世纪八十年代才被Rumelhart、Williams、Hinton、LeCun等人(反正就是一票大牛)发明的多层感知机(multilayerperceptron)克服。多层感知机,顾名思义,就是有多个隐含层的感知机(废话……)。好好,我们看一下多层感知机的结构:

多层感知机可以摆脱早期离散传输函数的束缚,使用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],神经网络真正意义上有了“深度”,由此揭开了深度学习的热潮。这里的“深度”并没有固定的定义——在语音识别中4层网络就能够被认为是“较深的”,而在图像识别中20层以上的网络屡见不鲜。为了克服梯度消失,ReLU、maxout等传输函数代替了sigmoid,形成了如今DNN的基本形式。单从结构上来说,全连接的DNN和图1的多层感知机是没有任何区别的

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

我们看到全连接DNN的结构里下层神经元和所有上层神经元都能够形成连接,带来的潜在问题是参数数量的膨胀。假设输入的是一幅像素为1K*1K的图像,隐含层有1M个节点,光这一层就有10^12个权重需要训练,这不仅容易过拟合,而且极容易陷入局部最优。另外,图像中有固有的局部模式(比如轮廓、边界,人的眼睛、鼻子、嘴等)可以利用,显然应该将图像处理中的概念和神经网络技术相结合。此时我们可以祭出题主所说的卷积神经网络CNN。对于CNN来说,并不是所有上下层神经元都能直接相连,而是通过“卷积核”作为中介。同一个卷积核在所有图像内是共享的,图像通过卷积操作后仍然保留原先的位置关系。两层之间的卷积传输的示意图如下:
通过一个例子简单说明卷积神经网络的结构。假设图3中m-1=1是输入层,我们需要识别一幅彩色图像,这幅图像具有四个通道ARGB(透明度和红绿蓝,对应了四幅相同大小的图像),假设卷积核大小为100*100,共使用100个卷积核w1到w100(从直觉来看,每个卷积核应该学习到不同的结构特征)。用w1在ARGB图像上进行卷积操作,可以得到隐含层的第一幅图像;这幅隐含层图像左上角第一个像素是四幅输入图像左上角100*100区域内像素的加权求和,以此类推。同理,算上其他卷积核,隐含层对应100幅“图像”。每幅图像对是对原始图像中不同特征的响应。按照这样的结构继续传递下去。CNN中还有max-pooling等操作进一步提高鲁棒性。

转载于:https://www.cnblogs.com/timlong/p/11088469.html

CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的内部网络结构区别...相关推荐

  1. 【预测模型】基于DNN深度神经网络实现minist数据集预测matlab源码

    一.DNN深度神经网络介绍 神经网络简史 神经网络技术起源于上世纪五.六十年代,当时叫感知机(perceptron),拥有输入层.输出层和一个隐含层.输入的特征向量通过隐含层变换达到输出层,在输出层得 ...

  2. DL之ANN/DNN: 人工神经网络ANN/DNN深度神经网络算法的简介、应用、经典案例之详细攻略

    DL之ANN/DNN: 人工神经网络ANN/DNN深度神经网络算法的简介.应用.经典案例之详细攻略 相关文章 DL:深度学习(神经网络)的简介.基础知识(神经元/感知机.训练策略.预测原理).算法分类 ...

  3. CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的内部网络结构有什么区别?...

    2019独角兽企业重金招聘Python工程师标准>>> 科言君 每周六提供一份高质量回答. 首先,我感觉不必像 @李Shawn 同学一样认为DNN.CNN.RNN完全不能相提并论.从 ...

  4. 深度学习——神经网络(NN)、深度神经网络(DNN)、卷积神经网络(CNN)等概念介绍

    刚接触深度学习时,我们经常会看到神经网络.深度神经网络.卷积神经网络这些词.初看可能一头雾水,没关系,下面我们就来了解一下这些词背后的意义吧. 图1 神经元的结构 神经元(Neuron): 从生物上来 ...

  5. DNN(深度神经网络)

    深度神经网络(Deep Neural Networks, 以下简称DNN) 神经网络发展 第一代神经网络又称为感知器,由科学家Frank Rosenblatt发明于1950至1960年代,它的算法只有 ...

  6. 卷积神经网络图片滤镜_使用深度神经网络创建艺术性的实时视频滤镜

    卷积神经网络图片滤镜 将CoreML用于iPhone的复杂视频滤镜和效果 (Using CoreML for complex video filters and effects for iPhone) ...

  7. 吴恩达卷积神经网络 笔记,吴恩达 深度神经网络

    如何评价吴恩达的学术地位 吴恩达(AndrewNg),斯坦福计算机系的副教授,师从机器学习的大师级人物MichaelI.Jordan. 同门师兄弟包括ZoubinGhahramani,TommiJaa ...

  8. 一文读懂 CNN、DNN、RNN 内部网络结构区别

    http://network.51cto.com/art/201610/519446.htm 从广义上来说,NN(或是更美的DNN)确实可以认为包含了CNN.RNN这些具体的变种形式.在实际应用中,所 ...

  9. CNN、DNN、RNN 内部网络结构区别

    转自:https://www.zhihu.com/question/34681168 从广义上来说,NN(或是更美的DNN)确实可以认为包含了CNN.RNN这些具体的变种形式.在实际应用中,所谓的深度 ...

  10. 深度神经网络课程总结_了解深度神经网络如何工作(完整课程)

    深度神经网络课程总结 Even if you are completely new to neural networks, this course from Brandon Rohrer will g ...

最新文章

  1. Windows7下OpenGL简单使用举例
  2. 半导体到底靠什么导电?
  3. opencv ocr字符识别_OCR深度实践系列:图像预处理
  4. 2003 resource kit之Robocopy 高效文件复制工具
  5. NHibernate 与Oracle 点滴
  6. 通过Dapr实现一个简单的基于.net的微服务电商系统(四)——一步一步教你如何撸Dapr之订阅发布...
  7. Java--PATH环境变量
  8. 去除标签_有效去除“狗皮膏药”标签,快学起来吧
  9. 数据结构-图的基础代码
  10. java移位运算符有哪些_java中有三种移位运算符
  11. 苹果手机通过iCloud导出通讯录导入到安卓手机 教程
  12. 中国传统美食网页HTML代码 学生网页课程设计期末作业下载 美食大学生网页设计制作成品下载 DW餐饮美食网页作业代码下载
  13. JS中如何删除li节点
  14. Python - 面向对象编程 - 实战(4)
  15. XOR Guessing
  16. CSR867x — TWS模式音量调节的交互流程
  17. 强强联合!武汉大学与腾讯成立大数据联合实验室
  18. ARMv7 与 ARMv8的区别
  19. 如何通过AWS Route53注册域名
  20. Dubbo分布式服务框架入门(附工程)

热门文章

  1. 基于密度的异常值检测方法整理
  2. PHP Fatal error: Uncaught think\\exception\\ErrorException: error_log相关解决方法
  3. python知识图谱可视化_知识图谱可视化
  4. c++中计算2得n次方_《一元二次方程》单元试卷,从中总结出5个考点,初三学生应知道...
  5. eclipse IDE中無法打開android模擬器
  6. 背景透明度 下拉菜单
  7. python中列表字典和字符串的相互转化
  8. pip安装报错处理+PyPi源切换教程
  9. iOS 里const在修饰对象时候的用法
  10. C#-ToString格式化