深度学习的主要分类是什么呀?这些网络cnn dbn dnm rnn是怎样的关系

2024-05-06 10:58

1. 深度学习的主要分类是什么呀?这些网络cnn dbn dnm rnn是怎样的关系

简单来说:

1)深度学习(Deep Learning)只是机器学习(Machine Learning)的一种类别,一个子领域。机器学习 > 深度学习

2)大数据(Big Data)不是具体的方法,甚至不算具体的研究学科,而只是对某一类问题,或需处理的数据的描述

具体来说:

1)机器学习(Machine Learning)是一个大的方向,里面包括了很多种 approach,比如 deep learning, GMM, SVM, HMM, dictionary learning, knn, Adaboosting...不同的方法会使用不同的模型,不同的假设,不同的解法。这些模型可以是线性,也可以是非线性的。他们可能是基于统计的,也可能是基于稀疏的....

不过他们的共同点是:都是 data-driven 的模型,都是学习一种更加 abstract 的方式来表达特定的数据,假设和模型都对特定数据广泛适用。好处是,这种学习出来的表达方式可以帮助我们更好的理解和分析数据,挖掘数据隐藏的结构和关系。

Machine Learning 的任务也可以不同,可以是预测(prediction),分类(classification),聚类(clustering),识别(recognition),重建(reconstruction),约束(regularization),甚至降噪(denoising),超分辨(super-resolution),除马赛克(Demosaicing)等等....

2)深度学习(Deep Learning)是机器学习的一个子类,一般特指学习高层数的网络结构。这个结构中通常会结合线性和非线性的关系。

Deep Learning 也会分各种不同的模型,比如 CNN, RNN, DBN...他们的解法也会不同。

Deep Learning 目前非常流行,因为他们在图像,视觉,语音等各种应用中表现出了很好的 empirical performance。并且利用 gpu 的并行运算,在模型相当复杂,数据特别大量的情况下,依然可以达到很理想的学习速度。

因为 Deep Learning 往往会构建多层数,多节点,多复杂度的模型,人们依然缺乏多里面学习的结构模型的理解。很多时候,Deep Learning 甚至会被认为拥有类似于人类神经网络的结构,并且这种类似性被当做 deep learning 居然更大 potential 的依据。但答主个人认为,其实这略有些牵强...听起来更像是先有了这种 network 的结构,再找一个类似性。当然,这仅仅是个人观点...(私货私货)

3)大数据(Big Data,我们也叫他逼格数据....)是对数据和问题的描述。通常被广泛接受的定义是 3 个 V 上的“大”:Volume(数据量), Velocity(数据速度)还有 variety(数据类别)。大数据问题(Big-data problem)可以指那种在这三个 V 上因为大而带来的挑战。

Volume 很好理解。一般也可以认为是 Large-scale data(其实学术上用这个更准确,只是我们出去吹逼的时候就都叫 big data 了...)。“大”可以是数据的维度,也可以是数据的 size。一般 claim 自己是 big-data 的算法会比较 scalable,复杂度上对这两个不敏感。算法和系统上,人们喜欢选择并行(Parallel),分布(distributed)等属性的方法来增加 capability。
ITjob----采集

深度学习的主要分类是什么呀?这些网络cnn dbn dnm rnn是怎样的关系

2. 深度学习和cnn有什么区别?

应该说,CNN(convolutional neural network)只是深度学习中的一种算法,并且由于Lenet_5等模型的原因目前应用较为广泛。其实,除了CNN之外,深度学习中还有其他的网络算法,比如Hinton的DBNs,对于语音和自然语言处理还是不错的,CNN目前主要应用于图像识别和图像分类

3. 深度学习和神经网络的区别是什么

什么是神经网络,深度学习

深度学习和神经网络的区别是什么

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

深度学习与神经网络关系
2017-01-10 
最近开始学习深度学习,基本上都是zouxy09博主的文章,写的蛮好,很全面,也会根据自己的思路,做下删减,细化。
五、Deep Learning的基本思想
假设我们有一个系统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)的另外一种表示。现在回到我们的主题Deep Learning,我们需要自动地学习特征,假设我们有一堆输入I(如一堆图像或者文本),假设我们设计了一个系统S(有n层),我们通过调整系统中参数,使得它的输出仍然是输入I,那么我们就可以自动地获取得到输入I的一系列层次特征,即S1,…, Sn。
对于深度学习来说,其思想就是对堆叠多个层,也就是说这一层的输出作为下一层的输入。通过这种方式,就可以实现对输入信息进行分级表达了。
另外,前面是假设输出严格地等于输入,这个限制太严格,我们可以略微地放松这个限制,例如我们只要使得输入与输出的差别尽可能地小即可,这个放松会导致另外一类不同的Deep Learning方法。上述就是Deep Learning的基本思想。
六、浅层学习(Shallow Learning)和深度学习(Deep Learning)
浅层学习是机器学习的第一次浪潮。
20世纪80年代末期,用于人工神经网络的反向传播算法(也叫Back Propagation算法或者BP算法)的发明,给机器学习带来了希望,掀起了基于统计模型的机器学习热潮。这个热潮一直持续到今天。人们发现,利用BP算法可以让一个人工神经网络模型从大量训练样本中学习统计规律,从而对未知事件做预测。这种基于统计的机器学习方法比起过去基于人工规则的系统,在很多方面显出优越性。这个时候的人工神经网络,虽也被称作多层感知机(Multi-layer Perceptron),但实际是种只含有一层隐层节点的浅层模型。
20世纪90年代,各种各样的浅层机器学习模型相继被提出,例如支撑向量机(SVM,Support Vector Machines)、 Boosting、最大熵方法(如LR,Logistic Regression)等。这些模型的结构基本上可以看成带有一层隐层节点(如SVM、Boosting),或没有隐层节点(如LR)。这些模型无论是在理论分析还是应用中都获得了巨大的成功。相比之下,由于理论分析的难度大,训练方法又需要很多经验和技巧,这个时期浅层人工神经网络反而相对沉寂。
深度学习是机器学习的第二次浪潮。
2006年,加拿大多伦多大学教授、机器学习领域的泰斗Geoffrey Hinton和他的学生RuslanSalakhutdinov在《科学》上发表了一篇文章,开启了深度学习在学术界和工业界的浪潮。这篇文章有两个主要观点:1)多隐层的人工神经网络具有优异的特征学习能力,学习得到的特征对数据有更本质的刻画,从而有利于可视化或分类;2)深度神经网络在训练上的难度,可以通过“逐层初始化”(layer-wise pre-training)来有效克服,在这篇文章中,逐层初始化是通过无监督学习实现的。
当前多数分类、回归等学习方法为浅层结构算法,其局限性在于有限样本和计算单元情况下对复杂函数的表示能力有限,针对复杂分类问题其泛化能力受到一定制约。深度学习可通过学习一种深层非线性网络结构,实现复杂函数逼近,表征输入数据分布式表示,并展现了强大的从少数样本集中学习数据集本质特征的能力。(多层的好处是可以用较少的参数表示复杂的函数)

深度学习的实质,是通过构建具有很多隐层的机器学习模型和海量的训练数据,来学习更有用的特征,从而最终提升分类或预测的准确性。因此,“深度模型”是手段,“特征学习”是目的。区别于传统的浅层学习,深度学习的不同在于:1)强调了模型结构的深度,通常有5层、6层,甚至10多层的隐层节点;2)明确突出了特征学习的重要性,也就是说,通过逐层特征变换,将样本在原空间的特征表示变换到一个新特征空间,从而使分类或预测更加容易。与人工规则构造特征的方法相比,利用大数据来学习特征,更能够刻画数据的丰富内在信息。
七、Deep learning与Neural Network
深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。深度学习是无监督学习的一种。
深度学习的概念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。
Deep learning本身算是machine learning的一个分支,简单可以理解为neural network的发展。大约二三十年前,neural network曾经是ML领域特别火热的一个方向,但是后来确慢慢淡出了,原因包括以下几个方面:
1)比较容易过拟合,参数比较难tune,而且需要不少trick;
2)训练速度比较慢,在层次比较少(小于等于3)的情况下效果并不比其它方法更优;
所以中间有大约20多年的时间,神经网络被关注很少,这段时间基本上是SVM和boosting算法的天下。但是,一个痴心的老先生Hinton,他坚持了下来,并最终(和其它人一起Bengio、Yann.lecun等)提成了一个实际可行的deep learning框架。
Deep learning与传统的神经网络之间有相同的地方也有很多不同。
二者的相同在于deep learning采用了神经网络相似的分层结构,系统由包括输入层、隐层(多层)、输出层组成的多层网络,只有相邻层节点之间有连接,同一层以及跨层节点之间相互无连接,每一层可以看作是一个logistic regression模型;这种分层结构,是比较接近人类大脑的结构的。

而为了克服神经网络训练中的问题,DL采用了与神经网络很不同的训练机制。传统神经网络(这里作者主要指前向神经网络)中,采用的是back propagation的方式进行,简单来讲就是采用迭代的算法来训练整个网络,随机设定初值,计算当前网络的输出,然后根据当前输出和label之间的差去改变前面各层的参数,直到收敛(整体是一个梯度下降法)。而deep learning整体上是一个layer-wise的训练机制。这样做的原因是因为,如果采用back propagation的机制,对于一个deep network(7层以上),残差传播到最前面的层已经变得太小,出现所谓的gradient diffusion(梯度扩散)。这个问题我们接下来讨论。
八、Deep learning训练过程
8.1、传统神经网络的训练方法为什么不能用在深度神经网络
BP算法作为传统训练多层网络的典型算法,实际上对仅含几层网络,该训练方法就已经很不理想。深度结构(涉及多个非线性处理单元层)非凸目标代价函数中普遍存在的局部最小是训练困难的主要来源。
BP算法存在的问题:
(1)梯度越来越稀疏:从顶层越往下,误差校正信号越来越小;
(2)收敛到局部最小值:尤其是从远离最优区域开始的时候(随机值初始化会导致这种情况的发生);
(3)一般,我们只能用有标签的数据来训练:但大部分的数据是没标签的,而大脑可以从没有标签的的数据中学习;
8.2、deep learning训练过程
如果对所有层同时训练,时间复杂度会太高;如果每次训练一层,偏差就会逐层传递。这会面临跟上面监督学习中相反的问题,会严重欠拟合(因为深度网络的神经元和参数太多了)。
2006年,hinton提出了在非监督数据上建立多层神经网络的一个有效方法,简单的说,分为两步,一是每次训练一层网络,二是调优,使原始表示x向上生成的高级表示r和该高级表示r向下生成的x'尽可能一致。方法是:
1)首先逐层构建单层神经元,这样每次都是训练一个单层网络。
2)当所有层训练完后,Hinton使用wake-sleep算法进行调优。
将除最顶层的其它层间的权重变为双向的,这样最顶层仍然是一个单层神经网络,而其它层则变为了图模型。向上的权重用于“认知”,向下的权重用于“生成”。然后使用Wake-Sleep算法调整所有的权重。让认知和生成达成一致,也就是保证生成的最顶层表示能够尽可能正确的复原底层的结点。比如顶层的一个结点表示人脸,那么所有人脸的图像应该激活这个结点,并且这个结果向下生成的图像应该能够表现为一个大概的人脸图像。Wake-Sleep算法分为醒(wake)和睡(sleep)两个部分。
1)wake阶段:认知过程,通过外界的特征和向上的权重(认知权重)产生每一层的抽象表示(结点状态),并且使用梯度下降修改层间的下行权重(生成权重)。也就是“如果现实跟我想象的不一样,改变我的权重使得我想象的东西就是这样的”。
2)sleep阶段:生成过程,通过顶层表示(醒时学得的概念)和向下权重,生成底层的状态,同时修改层间向上的权重。也就是“如果梦中的景象不是我脑中的相应概念,改变我的认知权重使得这种景象在我看来就是这个概念”。
deep learning训练过程具体如下:
1)使用自下上升非监督学习(就是从底层开始,一层一层的往顶层训练):
采用无标定数据(有标定数据也可)分层训练各层参数,这一步可以看作是一个无监督训练过程,是和传统神经网络区别最大的部分(这个过程可以看作是feature learning过程):
具体的,先用无标定数据训练第一层,训练时先学习第一层的参数(这一层可以看作是得到一个使得输出和输入差别最小的三层神经网络的隐层),由于模型capacity的限制以及稀疏性约束,使得得到的模型能够学习到数据本身的结构,从而得到比输入更具有表示能力的特征;在学习得到第n-1层后,将n-1层的输出作为第n层的输入,训练第n层,由此分别得到各层的参数;
2)自顶向下的监督学习(就是通过带标签的数据去训练,误差自顶向下传输,对网络进行微调):
基于第一步得到的各层参数进一步fine-tune整个多层模型的参数,这一步是一个有监督训练过程;第一步类似神经网络的随机初始化初值过程,由于DL的第一步不是随机初始化,而是通过学习输入数据的结构得到的,因而这个初值更接近全局最优,从而能够取得更好的效果;所以deep learning效果好很大程度上归功于第一步的feature learning过程。

5. 咱们常说的深度学习(神经网络ann.cnn.rnn)训练,SVM分类训练,adaboost分类训练等等。。

一般使用框架。做工程需要考虑开发效率,尽量避免重复造轮子。

咱们常说的深度学习(神经网络ann.cnn.rnn)训练,SVM分类训练,adaboost分类训练等等。。

6. “深度学习”和“多层神经网络”的区别

“深度学习”和“多层神经网络”不存在区别关系。  深度学习的网络结构是多层神经网络的一种。深度学习中最著名的卷积神经网络CNN,在原来多层神经网络的基础上,加入了特征学习部分,这部分是模仿人脑对信号处理上的分级的。  广义上说深度学习的网络结构也是多层神经网络的一种。传统意义上的多层神经网络是只有输入层、隐藏层、输出层。其中隐藏层的层数根据需要而定,没有明确的理论推导来说明到底多少层合适。而深度学习中最著名的卷积神经网络CNN,在原来多层神经网络的基础上,加入了特征学习部分,这部分是模仿人脑对信号处理上的分级的。具体操作就是在原来的全连接的层前面加入了部分连接的卷积层与降维层,而且加入的是一个层级。输入层-卷积层-降维层-卷积层-降维层--.--隐藏层-输出层简单来说,原来多层神经网络做的步骤是:特征映射到值。特征是人工挑选。深度学习做的步骤是信号->特征->值。特征是由网络自己选择。  需要使用深度学习解决的问题有以下的特征:  深度不足会出现问题。  人脑具有一个深度结构。  认知过程逐层进行,逐步抽象。  深度学习的核心思想:  把学习结构看作一个网络,则深度学习的核心思路如下:  ①无监督学习用于每一层网络的pre-train;  ②每次用无监督学习只训练一层,将其训练结果作为其高一层的输入;  ③用自顶而下的监督算法去调整所有层

7. CNN和RNN在文本分类过程中的区别整理

用CNN卷积的情况,这里面有几个关键点:
一个是文本跟图片不一样,图片有长宽,然后还有深度(RGB)。对应到文本上,假设文章总共N个词,每个词嵌入维度K维,那么输入是N * 
K的,N可以理解为高度,K作为长度,深度为1。那么卷积的时候的特征抽取器(filter)高度h一般设置多大呢? 
一般可以从3开始,表示捕获住trigram特征。
更多的是使用几种不同的filter(比如有高度各为2,3,5的)。 特征抽取器(filter)的长度一般设置为词向量的维度,这样保证每个filter抽取出来一个N-h+1个特征点,而不是一个平面(想想为什么)。
最重要的,在文本上work的pooling层一般是max-pooling,对每个filter应用整个序列上的max-pooling得到一个特征点(也有用k-max-pooling得到k个点),组合多个filter就能得到一系列特征,最后一个全连接层做分类。
这里为什么是max-pooling而不是min-pooling呢?一般来说,pooling后我们引入非线性是用Relu,relu对于小于0的直接就不激活了。
然后我们对比图像的深度,文本一般深度只有一个,如何增加深度以及为什么增加呢? 
一般我们的词向量都是先预训练出来的,然后在一个特定任务上使用,梯度会回传回来进一步finetune,如果语料不是特别大,这个finetune过程只会对部分词进行更新,有些词就一直不动,这样在测试阶段,出现那些没finetune到的词就会有所偏差。我们可以同时使用两份词向量(相当于通道数为2,深度加深为2),一份finetune一份静态地不更新,来缓解前面提到的问题。

二) 
对于RNN做文本分类,相当于把每个词作为一个时间节点,把词向量作为每个单元的输入特征,一般会组合前向以及后向来构成双向特征,计算后每个单元有个状态特征以及输出特征,文本分类一般组合每一个单元的输出特征求个平均喂给全连接层来做分类。
 求平均这个操作可以替换为更通用的注意力机制,复杂度更高点,效果更好。 
复杂点的模型会分层来做,句子界别的rnn然后attention,最后文档级别在前一层的基础上再rnn+attention,效果据说能更进一步提升。

CNN和RNN在文本分类过程中的区别整理

8. 深度学习 是生成模型还是判别模型

深度学习的模型有很多,既有生成模式也有判别模式, 目前开发者最常用的深度学习模型与架构包括 CNN卷积神经网络、DBN深度信念网络、RNN循环神经网络、RNTN递归神经张量网络、自动编码器、GAN 生成对抗模型等。机器学习方法可以分为生成方法(generative approach)和判别方法(discriminative approach),所学到的模型分别称为生成式模型(generative model)和判别式模型(discriminative model)。生成方法通过观测数据学习样本与标签的联合概率分布P(X, Y),训练好的模型能够生成符合样本分布的新数据,它可以用于有监督学习和无监督学习。判别模型:将跟踪问题看成一个二分类问题,然后找到目标和背景的决策边界。它不管目标是怎么描述的,那只要知道目标和背景的差别在哪,然后你给一个图像,它看它处于边界的那一边,就归为哪一类。
最新文章
热门文章
推荐阅读