当前位置: 首页 > news >正文

深度神经网络的特征表示,深度神经网络通俗理解

神经网络与深度神经网络有什么区别

谷歌人工智能写作项目:神经网络伪原创

深度学习与神经网络有什么区别

找深度学习和神经网络的不同点,其实主要的就是:原来多层神经网络做的步骤是:特征映射到值写作猫。特征是人工挑选。深度学习做的步骤是信号->特征->值。特征是由网络自己选择。

另外,深度学习作为机器学习的领域中一个新的研究方向,在被引进机器学习后,让机器学习可以更加的接近最初的目标,也就是人工智能。

深度学习主要就是对样本数据的内在规律还有表示层次的学习,这些学习过程中获得的信息对诸如文字,图像和声音等数据的解释有很大的帮助。

它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。深度学习是一个复杂的机器学习算法,在语音和图像识别方面取得的效果,远远超过先前相关技术。

深度学习在搜索技术,数据挖掘,机器学习,机器翻译,自然语言处理,多媒体学习,语音,推荐和个性化技术,以及其他相关领域都取得了很多成果。

深度学习使机器模仿视听和思考等人类的活动,解决了很多复杂的模式识别难题,使得人工智能相关技术取得了很大进步。而神经网络则是可以分为两种,一种是生物神经网络,而另一种则是人工神经网络。

生物神经网络就是生物的大脑神经元、主要是由细胞以及触点组成的,主要的作用就是让生物产生意识,或者是帮助生物实现思考还有行动的目的。神经网络可以指向两种,一个是生物神经网络,一个是人工神经网络。

人工神经网络(ArtificialNeuralNetworks,简写为ANNs)也简称为神经网络(NNs)或称作连接模型(ConnectionModel),它是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。

这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。人工神经网络:是一种应用类似于大脑神经突触联接的结构进行信息处理的数学模型。

在工程与学术界也常直接简称为“神经网络”或类神经网络。

计算机视觉中,深层网络的概念是什么,求通俗易懂的回答 20

在深度学习中的各类神经网络都是基于同样的基本原理,就是模拟人的神经细胞之间的联络方式。以人脸识别应用为例,深度学习理论中不再给出具体的通过人脸识别人类身份的算法,而是构造一套神经网络。

通过大量的已标定数据对神经网络进行训练,该神经网络能够总结出一套如何通过人脸来识别人类身份的模型。

通俗的说法就是类似训练婴儿识别人脸,家长并不会教给婴儿通过哪些要素去识别人脸,但是通过长时间的接触,让婴儿大量的接触人脸并获得相应激励(婴儿对妈妈哭可以喝到奶,对爸爸哭可以被抱起来)婴儿的大脑就能总结出一套通过人脸识别人类身份的方法(模型)。

如果妈妈的同事来看望婴儿了,婴儿就能记住该同事的人脸,下次如果在街上再次遇到该同事,婴儿就能认出该同事的身份了。

而你说的深层网络,其实是神经网络的一种,人们在基本的神经网络上进一步拓展该理论,就出现深层神经网络、循环神经网络、卷积神经网络等等类型的神经网络。

深度神经网络具体的工作流程是什么样的?

第一,深度神经网络不是黑盒,个人电脑开机直到神经网络运行在内存中的每一比特的变化都是可以很细微的观察的。没有任何神秘力量,没有超出科学解释的现象发生。

第二,深度神经网络的工作方式是基于传统的电脑架构之上的,就是数据+算法。但人们确实从中窥探到了一种全新的电子大脑方式。所以目前有研究提炼一些常用神经网络算法加速硬件。微软等巨头则在开发量子计算。

第三,深度神经网络是一个很初级的特征自动提取器。说初级因为简单粗暴。以前为了节约算力特征关键模型都是人工亲自设定。而现在这部分工作随着算力的提高可以自动化。

所以从某种意义上来说深度神经网络也是一种自动编程机,但和人们相比,一点点小小的自动化都需要很多很多的计算力支持,这一点也不重要,重要的是,它能工作(手动英文)。那么深度神经网络究竟是什么呢?

它是一个能迭代更新自己的特征提取算法。现在这个算法可是像全自动高级工厂,数据往里一丢,不得了!整个工厂里面所有机器都动了起来。没见过的小伙伴当场就被吓呆瓜了,用流行的话说叫懵住。

几千只机械手把数据搬来搬去,拿出魔方一样的盒子装来装去又倒出来。整个场面就叫一个震撼。算法运行规模也更大了。

卷积神经网络通俗理解

卷积神经网络(ConvolutionalNeuralNetworks,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(FeedforwardNeuralNetworks),是深度学习(deeplearning)的代表算法之一。

卷积神经网络具有表征学习(representationlearning)能力,能够按其阶层结构对输入信息进行平移不变分类(shift-invariantclassification),因此也被称为“平移不变人工神经网络。

深度学习与神经网络有什么区别

深度学习与神经网络关系2017-01-10最近开始学习深度学习,基本上都是zouxy09博主的文章,写的蛮好,很全面,也会根据自己的思路,做下删减,细化。

五、DeepLearning的基本思想假设我们有一个系统S,它有n层(S1,…Sn),它的输入是I,输出是O,形象地表示为:I=>S1=>S2=>…..=>Sn=>O,如果输出O等于输入I,即输入I经过这个系统变化之后没有任何的信息损失(呵呵,大牛说,这是不可能的。

信息论中有个“信息逐层丢失”的说法(信息处理不等式),设处理a信息得到b,再对b处理得到c,那么可以证明:a和c的互信息不会超过a和b的互信息。这表明信息处理不会增加信息,大部分处理会丢失信息。

当然了,如果丢掉的是没用的信息那多好啊),保持了不变,这意味着输入I经过每一层Si都没有任何的信息损失,即在任何一层Si,它都是原有信息(即输入I)的另外一种表示。

现在回到我们的主题DeepLearning,我们需要自动地学习特征,假设我们有一堆输入I(如一堆图像或者文本),假设我们设计了一个系统S(有n层),我们通过调整系统中参数,使得它的输出仍然是输入I,那么我们就可以自动地获取得到输入I的一系列层次特征,即S1,…,Sn。

对于深度学习来说,其思想就是对堆叠多个层,也就是说这一层的输出作为下一层的输入。通过这种方式,就可以实现对输入信息进行分级表达了。

另外,前面是假设输出严格地等于输入,这个限制太严格,我们可以略微地放松这个限制,例如我们只要使得输入与输出的差别尽可能地小即可,这个放松会导致另外一类不同的DeepLearning方法。

上述就是DeepLearning的基本思想。六、浅层学习(ShallowLearning)和深度学习(DeepLearning)浅层学习是机器学习的第一次浪潮。

20世纪80年代末期,用于人工神经网络的反向传播算法(也叫BackPropagation算法或者BP算法)的发明,给机器学习带来了希望,掀起了基于统计模型的机器学习热潮。这个热潮一直持续到今天。

人们发现,利用BP算法可以让一个人工神经网络模型从大量训练样本中学习统计规律,从而对未知事件做预测。这种基于统计的机器学习方法比起过去基于人工规则的系统,在很多方面显出优越性。

这个时候的人工神经网络,虽也被称作多层感知机(Multi-layerPerceptron),但实际是种只含有一层隐层节点的浅层模型。

20世纪90年代,各种各样的浅层机器学习模型相继被提出,例如支撑向量机(SVM,SupportVectorMachines)、Boosting、最大熵方法(如LR,LogisticRegression)等。

这些模型的结构基本上可以看成带有一层隐层节点(如SVM、Boosting),或没有隐层节点(如LR)。这些模型无论是在理论分析还是应用中都获得了巨大的成功。

相比之下,由于理论分析的难度大,训练方法又需要很多经验和技巧,这个时期浅层人工神经网络反而相对沉寂。深度学习是机器学习的第二次浪潮。

2006年,加拿大多伦多大学教授、机器学习领域的泰斗GeoffreyHinton和他的学生RuslanSalakhutdinov在《科学》上发表了一篇文章,开启了深度学习在学术界和工业界的浪潮。

这篇文章有两个主要观点:1)多隐层的人工神经网络具有优异的特征学习能力,学习得到的特征对数据有更本质的刻画,从而有利于可视化或分类;2)深度神经网络在训练上的难度,可以通过“逐层初始化”(layer-wisepre-training)来有效克服,在这篇文章中,逐层初始化是通过无监督学习实现的。

当前多数分类、回归等学习方法为浅层结构算法,其局限性在于有限样本和计算单元情况下对复杂函数的表示能力有限,针对复杂分类问题其泛化能力受到一定制约。

深度学习可通过学习一种深层非线性网络结构,实现复杂函数逼近,表征输入数据分布式表示,并展现了强大的从少数样本集中学习数据集本质特征的能力。

(多层的好处是可以用较少的参数表示复杂的函数)深度学习的实质,是通过构建具有很多隐层的机器学习模型和海量的训练数据,来学习更有用的特征,从而最终提升分类或预测的准确性。

因此,“深度模型”是手段,“特征学习”是目的。

区别于传统的浅层学习,深度学习的不同在于:1)强调了模型结构的深度,通常有5层、6层,甚至10多层的隐层节点;2)明确突出了特征学习的重要性,也就是说,通过逐层特征变换,将样本在原空间的特征表示变换到一个新特征空间,从而使分类或预测更加容易。

与人工规则构造特征的方法相比,利用大数据来学习特征,更能够刻画数据的丰富内在信息。

七、Deeplearning与NeuralNetwork深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。

深度学习是无监督学习的一种。深度学习的概念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。

Deeplearning本身算是machinelearning的一个分支,简单可以理解为neuralnetwork的发展。

大约二三十年前,neuralnetwork曾经是ML领域特别火热的一个方向,但是后来确慢慢淡出了,原因包括以下几个方面:1)比较容易过拟合,参数比较难tune,而且需要不少trick;2)训练速度比较慢,在层次比较少(小于等于3)的情况下效果并不比其它方法更优;所以中间有大约20多年的时间,神经网络被关注很少,这段时间基本上是SVM和boosting算法的天下。

但是,一个痴心的老先生Hinton,他坚持了下来,并最终(和其它人一起Bengio、Yann.lecun等)提成了一个实际可行的deeplearning框架。

Deeplearning与传统的神经网络之间有相同的地方也有很多不同。

二者的相同在于deeplearning采用了神经网络相似的分层结构,系统由包括输入层、隐层(多层)、输出层组成的多层网络,只有相邻层节点之间有连接,同一层以及跨层节点之间相互无连接,每一层可以看作是一个logisticregression模型;这种分层结构,是比较接近人类大脑的结构的。

而为了克服神经网络训练中的问题,DL采用了与神经网络很不同的训练机制。

传统神经网络(这里作者主要指前向神经网络)中,采用的是backpropagation的方式进行,简单来讲就是采用迭代的算法来训练整个网络,随机设定初值,计算当前网络的输出,然后根据当前输出和label之间的差去改变前面各层的参数,直到收敛(整体是一个梯度下降法)。

而deeplearning整体上是一个layer-wise的训练机制。

这样做的原因是因为,如果采用backpropagation的机制,对于一个deepnetwork(7层以上),残差传播到最前面的层已经变得太小,出现所谓的gradientdiffusion(梯度扩散)。

这个问题我们接下来讨论。

八、Deeplearning训练过程8.1、传统神经网络的训练方法为什么不能用在深度神经网络BP算法作为传统训练多层网络的典型算法,实际上对仅含几层网络,该训练方法就已经很不理想。

深度结构(涉及多个非线性处理单元层)非凸目标代价函数中普遍存在的局部最小是训练困难的主要来源。

BP算法存在的问题:(1)梯度越来越稀疏:从顶层越往下,误差校正信号越来越小;(2)收敛到局部最小值:尤其是从远离最优区域开始的时候(随机值初始化会导致这种情况的发生);(3)一般,我们只能用有标签的数据来训练:但大部分的数据是没标签的,而大脑可以从没有标签的的数据中学习;8.2、deeplearning训练过程如果对所有层同时训练,时间复杂度会太高;如果每次训练一层,偏差就会逐层传递。

这会面临跟上面监督学习中相反的问题,会严重欠拟合(因为深度网络的神经元和参数太多了)。

2006年,hinton提出了在非监督数据上建立多层神经网络的一个有效方法,简单的说,分为两步,一是每次训练一层网络,二是调优,使原始表示x向上生成的高级表示r和该高级表示r向下生成的x'尽可能一致。

方法是:1)首先逐层构建单层神经元,这样每次都是训练一个单层网络。2)当所有层训练完后,Hinton使用wake-sleep算法进行调优。

将除最顶层的其它层间的权重变为双向的,这样最顶层仍然是一个单层神经网络,而其它层则变为了图模型。向上的权重用于“认知”,向下的权重用于“生成”。然后使用Wake-Sleep算法调整所有的权重。

让认知和生成达成一致,也就是保证生成的最顶层表示能够尽可能正确的复原底层的结点。

比如顶层的一个结点表示人脸,那么所有人脸的图像应该激活这个结点,并且这个结果向下生成的图像应该能够表现为一个大概的人脸图像。Wake-Sleep算法分为醒(wake)和睡(sleep)两个部分。

1)wake阶段:认知过程,通过外界的特征和向上的权重(认知权重)产生每一层的抽象表示(结点状态),并且使用梯度下降修改层间的下行权重(生成权重)。

也就是“如果现实跟我想象的不一样,改变我的权重使得我想象的东西就是这样的”。2)sleep阶段:生成过程,通过顶层表示(醒时学得的概念)和向下权重,生成底层的状态,同时修改层间向上的权重。

也就是“如果梦中的景象不是我脑中的相应概念,改变我的认知权重使得这种景象在我看来就是这个概念”。

deeplearning训练过程具体如下:1)使用自下上升非监督学习(就是从底层开始,一层一层的往顶层训练):采用无标定数据(有标定数据也可)分层训练各层参数,这一步可以看作是一个无监督训练过程,是和传统神经网络区别最大的部分(这个过程可以看作是featurelearning过程):具体的,先用无标定数据训练第一层,训练时先学习第一层的参数(这一层可以看作是得到一个使得输出和输入差别最小的三层神经网络的隐层),由于模型capacity的限制以及稀疏性约束,使得得到的模型能够学习到数据本身的结构,从而得到比输入更具有表示能力的特征;在学习得到第n-1层后,将n-1层的输出作为第n层的输入,训练第n层,由此分别得到各层的参数;2)自顶向下的监督学习(就是通过带标签的数据去训练,误差自顶向下传输,对网络进行微调):基于第一步得到的各层参数进一步fine-tune整个多层模型的参数,这一步是一个有监督训练过程;第一步类似神经网络的随机初始化初值过程,由于DL的第一步不是随机初始化,而是通过学习输入数据的结构得到的,因而这个初值更接近全局最优,从而能够取得更好的效果;所以deeplearning效果好很大程度上归功于第一步的featurelearning过程。

如何更好的理解分析深度卷积神经网络

作者:杨延生链接:来源:知乎著作权归作者所有,转载请联系作者获得授权。"深度学习"是为了让层数较多的多层神经网络可以训练,能够work而演化出来的一系列的新的结构和新的方法。

新的网络结构中最著名的就是CNN,它解决了传统较深的网络参数太多,很难训练的问题,使用了逗局部感受野地和逗权植共享地的概念,大大减少了网络参数的数量。

关键是这种结构确实很符合视觉类任务在人脑上的工作原理。新的结构还包括了:LSTM,ResNet等。

新的方法就多了:新的激活函数:ReLU,新的权重初始化方法(逐层初始化,XAVIER等),新的损失函数,新的防止过拟合方法(Dropout,BN等)。

这些方面主要都是为了解决传统的多层神经网络的一些不足:梯度消失,过拟合等。

----------------------下面是原答案------------------------从广义上说深度学习的网络结构也是多层神经网络的一种。

传统意义上的多层神经网络是只有输入层、隐藏层、输出层。其中隐藏层的层数根据需要而定,没有明确的理论推导来说明到底多少层合适。

而深度学习中最著名的卷积神经网络CNN,在原来多层神经网络的基础上,加入了特征学习部分,这部分是模仿人脑对信号处理上的分级的。

具体操作就是在原来的全连接的层前面加入了部分连接的卷积层与降维层,而且加入的是一个层级。

输入层-卷积层-降维层-卷积层-降维层--....--隐藏层-输出层简单来说,原来多层神经网络做的步骤是:特征映射到值。特征是人工挑选。深度学习做的步骤是信号->特征->值。

特征是由网络自己选择。

 

相关文章:

  • 南大通用GBase 8a MPP Cluster管理工具简介
  • 前端700行代码项目练习--小米官网(仅html、css实现)
  • 简单入门linux命令
  • Spring Cloud Gateway 服务器性能异常,以及优化策略
  • 云原生中间件RocketMQ-核心原理之同步_异步刷盘,同步_异步复制解析
  • 计算机网络——数据链路层の选择题整理
  • joi:定义多个自定义错误信息
  • 限流相关算法
  • java计算机毕业设计阳明湖风景区订票系统源码+数据库+系统+lw文档+mybatis+运行部署
  • Java 中所有的锁
  • 【基于Arduino的垃圾分类装置开发教程二传感器执行器操作】
  • java中static关键字具有什么功能呢?
  • springcloud 之gateway配置注意事项
  • JS BOM
  • 领英工具-领英精灵群发消息功能解析
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • co.js - 让异步代码同步化
  • github指令
  • Invalidate和postInvalidate的区别
  • Java Agent 学习笔记
  • JavaScript DOM 10 - 滚动
  • Java新版本的开发已正式进入轨道,版本号18.3
  • java正则表式的使用
  • JS基础之数据类型、对象、原型、原型链、继承
  • Linux CTF 逆向入门
  • Python实现BT种子转化为磁力链接【实战】
  • React Transition Group -- Transition 组件
  • vue中实现单选
  • 马上搞懂 GeoJSON
  • 前端存储 - localStorage
  • 前嗅ForeSpider采集配置界面介绍
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 白色的风信子
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • # 数据结构
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (编译到47%失败)to be deleted
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (生成器)yield与(迭代器)generator
  • (转)【Hibernate总结系列】使用举例
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • .apk 成为历史!
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .NET 8.0 中有哪些新的变化?
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .NET业务框架的构建
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法