大白话入门深度学习---探索深度学习的发展路线:人脑神经网络-人工神经网络-深度神经网络_local recurrent connectivity-程序员宅基地

技术标签: 卷积神经网络  人工神经网络  大数据与人工智能  深度神经网络  神经网络  循环(递归神经网络)  

一. 引言:人脑神经网络

  • 人的大脑中存在着无数神经元,各个神经元相互连结,构成一个较大的神经网络,用来处理人脑从外界接收的信息。但是,人类的大脑并不是从一开始就能处理一些复杂的问题的。婴儿刚出生时,大脑的神经元已产生,并且迁移到大脑相关部位去了,但是此时的神经元还只有少量的突触,连接较为简单,仅能做出基本的神经反射。出生之后,面对外界的新环境,婴儿的大脑不断接收外部信息,各种信息刺激了婴儿的脑部发育,脑内的神经元之间不断重组、连接,形成更复杂的神经网络,使个体渐渐具有其他的活动能力。

  • 在幼儿发育初期,神经网络形成的过程中,大量突触不断产生和凋亡。此间,连接网络的突触的产生是随机的,但是凋亡却是由外界因素决定的。当信号传递进大脑时,引起神经元兴奋,兴奋传递到突触,突触释放神经递质给下一个神经元,同时释放某种化学因子,维持神经元之间的通路。当外界刺激消失时,神经元之间长久没有兴奋的信号传递,突触不被激活,失去维持通路的化学因子,于是渐渐凋亡消失。神经元这种自已决定与哪些神经元相连的特性,称为自组织特性。它构成了神经元的自主学习性,这与人工神经网络的模型训练是相对应的。

  • 当幼儿发育到成人阶段,神经网络渐渐固定下来,突触的产生和凋亡都较少发生,数目渐渐趋于稳定。后期随着年龄的增加,突触又会有所减少。

二. 人工神经网络

  • 人工神经网络(Artificial Neural Network, ANN)简称神经网络(NN),是基于生物学中神经网络的基本原理,在理解和抽象了人脑结构和外界刺激响应机制后,以网络拓扑知识为理论基础,模拟人脑的神经系统对复杂信息的处理机制的一种数学模型,通过该方法建立的数学模型,在精度方面已越来越高。

  • 1943年,McCulloch 和Pitts提出了沿用至今的“MP模型”,他们通过“MP模型”提出了关于神经元的数学描述,开创了神经网络研究的时代。20 世纪60年代,神经网络得到了进一步发展, 提出了包括感知器和自适应线性元件等更完善的神经网络。自20世纪80年代以来,从信息处理角度对人脑神经元进行抽象,神经网络成为人工智能的研究热点,并在模式识别、自动控制、医学、生物、智能机器人等领域有了很好的应用。

三. 深度神经网络

1. 整体架构
  • 早期的神经网络是一个浅层的学习模型,它有大量的参数,仅在训练集上有较好的表现。同时,神经网络在理论分析及训练方式上都存在一定的难度,于是自20世纪90年代开始,神经网络逐步走入低潮。这种现象直到2006年Hinton提出深度学习后才被打破。深度神经网络的复兴存在多方面的原因,其-,大规模的训练样本可以缓解过拟合问题:其二,网络模型的训练方法也有了显著的进步:其三,计算机硬件的飞速发展(如英伟达Tesla显卡的出现)使得训练效率能够以几倍、十几倍的幅度提升。

  • 此外,深度神经网络具有强大的特征学习能力。虽然浅层神经网络也能模拟出与深度学习相同的分类函数,但其所需的参数要多出几个数量级,以至于很难实现。深度学习发展到今天,学术界已经提出了多种网络模型,其中影响力较大的有卷积神经网络、深度置信网络、循环神经网络。

  • 深度学习是一个快速发展的领域,新的网络模型、分支及算法不断被提出,例如,由深度信念网络DBN改进而来的深度玻尔兹曼机,,卷积深度置信网络和深度能量模型,以及由循环神经网络RNN改进而来的双向循环网络、深度循环网络和回声状态网络等。这些改进模型都在各自的应用领域产生了深远的影响。

2. 卷积神经网络
  • 传统的神经网络已经成功地应用于某些图像分类任务中,例如,在手写数字识别方面可以达到98%以上的准确率(MNIST数据集),但是使用神经元间全连接的网络结构来处理图像任务存在若干缺陷。首先,全连接会导致维数灾难,无法很好地处理高分辨率图像;另外,这种传统的网络结构没有考虑到图像数据的空间结构,忽略了输入图像中像素间的相对位置信息;最后,在处理图像问题时,全连接会使得模型参数急剧增加,容易导致过拟合。

  • 在机器学习领域,卷积神经网络 (Convolutional Neural Network, CNN)属于前馈神经网络的一种,网络结构与普通的多层感知机相似,但是受到动物视觉皮层组织方式的启发,神经元间不再是全连接的模式,而是应用了被称为局部感受区域的策略。此外,卷积神经网络引入了权值共享及降采样的概念,大幅减少了训练参数的数量,在提高训练速度的同时有效防止过拟合。下面对卷积神经网络的三个主要特点进行介绍。

  • (1)局部感受区域

  • 在卷积神经网络中,神经元只对视野中的某一区域产生响应,被称为局部感受区域,所以,网络中的神经元只与前一层中的部分神经元相连,即局部连接(LocalConnectivity),也称为稀疏连接(Sparse Connectivity)。利用图像数据的空间结构,邻近像素间具有更强的相关性,所以,单个神经元仅对图像局部信息进行响应,相邻神经元的感受区域存在重叠,所以,综合所有神经元便可以得到全局信息的感知。此处,我们可以通过动物视觉皮层的组织方式来了解神经元局部感受区域工作的机理。首先摄入原始信号,即从瞳孔摄入像素。接着进行初步处理,大脑皮层的某些区域的细胞从中发现边缘方向等特征。然后抽象出物体的形状,例如这是个圆形。最后进一步抽象,得出这是个气球或其他圆形物体的结论。

  • (2)权值共享

  • 局部连接的卷积核会对全部图像数据进行滑动扫描,权值共享的思想就是一个卷积层中的所有神经元均由同一个卷积核对不同区域数据响应而得到的,即共享同一个卷积核(权值向量及偏置),使得卷积层训练参数的数量急剧减少,提高了网络的泛化能力。此外,权值共享意味着一个卷积层中的神经元均在检测同一种特征,与所处位置无关,所以,具有平移不变性。

  • (3)降采样

  • 一般在卷积层后面会进行降采样操作(也叫池化操作),对卷积层提取的特征进行聚合统计。一般的做法是将前一层的局部区域值映射为单个数值,与卷积层不同的是,降采样区域一般不存在重叠现象。降采样简化了卷积层的输出信息,进一步减少 了训练参数的数量,增强了网络的泛化能力。

3. 深度置信网络
  • 传统的神经网络,比如仅含有一两个隐藏层的网络结构,可以利用BP算法进行训练,对于包含多个隐藏层的深度神经网络,BP算法会出现梯度消失或者收敛到局部极小值等问题,无法有效地对深度神经网络进行训练,这一度使得深度神经网络的研究陷入低谷。2006年,Hinton 等提出深度置信网络 ( Deep Belief Network, DBN)。DBN是第一个可训练的非卷积结构深层网络,打破了深度神经网络难以训练的观点。深度置信网络可以看作由若干受限玻尔兹曼机( Restricted Boltzmann Machine,RBM )“堆叠”而成,一个标准的受限玻尔兹曼机由隐层h和可视层v组成,层内无连接,层间全连接,两层之间的连接权重用w表示,其隐层与可视层中的单元通常是二值数据。它在玻尔兹曼机学习到训练数据内部的复杂规则,可以进行无监督学习的基础上,克服了其训练时间长、不能准确估计数据的联合概率分布的缺点。如下图所示,为受限玻尔兹曼机模型示意图:
    在这里插入图片描述

  • 多个RBM层组成了深度置信网络DBN,DBM是一种生成模型,和传统神经网络相似,DBM网络中存在若干隐藏层,并且同一隐藏层内的神经元没有连接,隐藏层间的神经元全连接。最上面两层间为无向连接,其中包含标签神经元,称为联合记忆层。其他层间为有向连接,自上而下为生成模型,指定输出,神经网络经过“反向运行”得到输入数据,比如手写数字图像生成,通过手写数字数据集对网络进行训练,然后指定数字,网络反向生成该数字的图像。自下而上则为判定模型,可以用作图像识别等任务。DBN结构如下图所示。
    在这里插入图片描述

  • 经过训练的受限玻尔兹曼机可以视作对输入数据进行概率重建,或者将受限玻尔兹曼机看做特征提取器。深度置信网络中,将每两层视作一个受限玻尔兹曼机进行训练,然后将参数固定,作为下一个受限玻尔兹曼机的可视层。

  • 深度置信网络可以用做生成模型,但通常是利用它改进判定模型的性能。通过前期的逐层无监督学习,神经网络可以较好地对输入数据进行描述,然后把训练好的网络看做深度神经网络,联合记忆层中的标签神经元作为输出层,继而利用BP算法对除联合记忆层之外的参数进行微调,最后得到用于分类任务的深度神经网络。

  • 深度置信网络可以用于图像识别、图像生成等领域。近几年,随着卷积神经网络和循环神经网络等在众多领域的成功应用,深度置信网络已经较少被提及,但是深度置信网络可以进行无监督或者半监督的学习,利用无标记数据进行预训练,提高神经网络性能。

4. 循环(递归)神经网络
  • 传统神经网络及之前介绍的深度神经网络都是“静态的”,本质上是从输入到输出的静态映射,即输出仅与当前输入有关,没有考虑先前的输入和网络状态对当前输出的影响,可以视做对静态系统的模拟。这些典型的前馈神经网络不会对内部状态进行存储,所以,无法对动态系统进行描述。

  • 循环神经网络(Recurrent Neural Networks, RNNs) 与典型的前馈神经网络的最大区别在于网络中存在环形结构,隐藏层内部的神经元是互相连接的,可以存储网络的内部状态,其中包含序列输入的历史信息,实现了对时序动态行为的描述。下图所示为RNN示意图。
    在这里插入图片描述

  • 循环神经网络是一种专门用于处理时序数据的神经网络,这里的时序并非仅仅指代时间概念上的顺序,也可以理解为序列化数据间的相对位置,如语音中的发音顺序、某个英语单词的拼写顺序等,序列化输入的任务都可以应用循环神经网络来处理,如语音、文本、视频等。对于序列化数据,每次处理时输入为序列中的一个元素,比如单个字符、单词、音节,期望输出为该输入在序列数据中的后续元素。循环神经网络可以处理任意长度的序列化数据。下图所示为RNN网络架构展开示意图。
    在这里插入图片描述

  • 如果将循环神经网络按时序状态展开,可以更好地理解它的实现机制。如图上所示,可以将循环神经网络视作深层前馈神经网络,但是前后状态的隐藏层之间存在连接,隐藏层的输出循环反馈作为后续状态的输入,将先前状态信息进行传递。所以,在循环神经网络中,t 时刻的输出不仅与该时刻的输入有关,还与 t -1时刻的网络内部状态有关,而内部状态存储了所有先前输入的信息,所以,t 时刻的输出受到所有先前输入的影响。

  • 循环神经网络可以用于语音识别、机器翻译、连写手写字识别等。另外,循环神经网络和卷积神经网络结合可用于图像描述,将卷积神经网络用做“解码器”,检测并识别图像中的物体,将循环神经网络用做“编码器”,以识别出的物体名称为输入,生成合理的语句,从而实现对图像内容的描述。

  • 深度学习软件有:TensorFlow、Caffe、CNTK、MXNet、Theano、Torch、Deeplearning4j等。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_38132105/article/details/107103656

智能推荐

Sample Probability Space_probability space例题-程序员宅基地

文章浏览阅读66次。Sample Probability SpaceA simple probability space consist of a tuple (Ω\OmegaΩ,ε\varepsilonε,p)Ω\OmegaΩ is a finite set (with cardinality k= ∣\mid∣Ω\OmegaΩ∣\mid∣)ε\varepsilonε = { A : A ⊆\subseteq⊆ Ω\OmegaΩ } consist of all finite subsetsEach events _probability space例题

python分布式服务系统框架_Cola:一个分布式爬虫框架 - 系统架构 - Python4cn(news, jobs)...-程序员宅基地

文章浏览阅读348次。由于早先写的WeiboCrawler问题很多,而且当时我有提到,其实可以实现一个通用的爬虫框架。最近由于要抓取新的数据,于是我就写了这个cola。下面的文字来自wiki。Cola是一个分布式的爬虫框架,用户只需编写几个特定的函数,而无需关注分布式运行的细节。任务会自动分配到多台机器上,整个过程对用户是透明的。依赖由于Cola配置文件使用的yaml,所以Cola只依赖于pyyaml,安装easy_i..._cola爬虫

名悦集团国庆出行自驾游攻略-程序员宅基地

文章浏览阅读75次。在这个买车已经不是什么难事的年代,大多数人出行都会选择自驾方式,但自驾出游必然要面临一系列的问题以及做足准备工作。名悦集团小编给大家总结出了这次国庆假期出行自驾游攻略,为了保证自驾过程的安全顺利,玩得更加痛快,临行前的车辆检查时必不可少的,这些项目可以自己检查,如果实在是懒或者不懂,可以在临行前去4S店做个基础保养,以让爱车在最佳车况陪伴自己和家人朋友开始这段愉快的旅程。1.轮胎轮胎的检查是自驾前需要关键的检查之一,在自驾的旅程上不管是轮胎没气还是爆胎,都是非常令人揪心的,如果是在高速或者...

Android 输入法框架源码分析总结(1)_android 输入法源码-程序员宅基地

文章浏览阅读3.6k次,点赞3次,收藏7次。参考文档 https://blog.csdn.net/huangyabin001/article/details/28434989https://blog.csdn.net/huangyabin001/article/details/28435093#commentshttps://blog.csdn.net/jieqiong1/article/details/712629871..._android 输入法源码

Ubuntu下使用nnUNet 训练自己的数据集(只管实现,不讲原理,通俗易懂)_nnunet训练自己的数据集-程序员宅基地

本文介绍了如何在Ubuntu下使用nnUNet训练自己的数据集,不涉及原理解析,只提供实现步骤。包括nnUNet简介、修改训练参数和文件位置等操作。详细内容可参考Tina的博文。

SSM实现秒杀系统案例-程序员宅基地

文章浏览阅读9.9k次,点赞10次,收藏88次。对于抢购系统来说,首先要有可抢购的活动,而且这些活动具有促销性质,这种大型活动的负载可能是平时的几十倍,所以通过增加硬件、优化瓶颈代码等手段是很难达到目标的,所以抢购系统得专门设计。在这里我们说的库存不是真正意义上的库存,其实是该促销可以抢购的数量,真正的库存在基础库存服务。用户点击『提交订单』按钮后,在抢购系统中获取了资格后才去基础库存服务中扣减真正的库存;而抢购系统控制的就是资格/剩余数。传统方案利用数据库行锁,但是在促销高峰数据库压力过大导致服务不可用,目前采用redis集群(16分片)缓存促销信息,

随便推点

正则表达式匹配各种括号内内容_正则表达式 匹配多个括号-程序员宅基地

文章浏览阅读2.8w次,点赞10次,收藏9次。用正则表达式匹配两个字符中间的文本String skh ="(?<=\\《)[^\\》]+";//用于匹配《》里面的文本String str="但实际上《kajdwdej》孙大伟多";//测试字符串Pattern pattern=Pattern.compile(skh); Matcher matcher=pattern.matcher(str); boolean is=matche_正则表达式 匹配多个括号

Android 中的Shape_linear radial sweep分别代表的什么-程序员宅基地

文章浏览阅读553次。之前一直看项目用过这个东西,但是自己都不怎么熟悉,大概就知道可以画一些圆角之类的~ 今天就来好好了解一下吧~Shape里面有很多属性,依次学习一下第一步~首先来写一个Button这个布局文件就不贴了...太简单了~ (PS:说贴出来的站出来,我保证不打死你!)接下来开始学习第一个属性:Solid:(填充)在Drawable里面创建一个butt_linear radial sweep分别代表的什么

graphpad细胞增殖曲线_如何用GraphPad Prism绘制剂量反应曲线?-程序员宅基地

文章浏览阅读6.1k次。上图是Sci文献中的dose–response curves (剂量反应曲线),横坐标是药物GS-Se-SG浓度的对数值,纵坐标是Rrelative cell viability(相对细胞活性,% of control),从图注中可以知道IC50为5.1 μM。那么什么是IC50呢?IC50 (half maximal inhibitory concentration)是指被测量的拮抗剂的半抑制浓..._graphpad细胞增殖曲线

二叉查找树(非递归、递归遍历)_二叉排序树非递归查找-程序员宅基地

文章浏览阅读658次。二叉查找树(含递归、非递归遍历)_二叉排序树非递归查找

spark-sql 查询报错:Invalid method name: ‘get_table_req‘_invalid method name: 'get_table_req-程序员宅基地

文章浏览阅读3.1k次。spark-sql> select * from zps_d001 limit 1;Error in query: org.apache.hadoop.hive.ql.metadata.HiveException: Unable to fetch table zps_xxx. Invalid method name: 'get_table_req'org.apache.spark.sql.AnalysisException: org.apache.hadoop.hive.ql.metadata.H_invalid method name: 'get_table_req

unknown mutation type:-程序员宅基地

文章浏览阅读1.7w次。我这边使用得是vue+elementvue得状态组成actions 这个是异步请求 通过异步请求得话 然后在调用 mutations.jsmutations.js 将数据提交到这里 this.$commit(‘test’,testTemp)index.js 这个是将数据初始化getters 这个是将 this.$store.getters.test 就能获取到了 testTemp写法是这个写法最后得原因是因为我这在 index.js 和mutation.js 为定义常量##_unknown mutation type

推荐文章

热门文章

相关标签