例子 深度学习_深度学习 例子 - CSDN
  • 机器学习——深度学习(Deep Learning)

    万次阅读 多人点赞 2013-05-09 16:17:12
    Deep Learning是机器学习中一个非常接近AI的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,最近研究了机器学习中一些深度学习的相关知识,本文给出一些很有用的资料和心得。Key Words:有监督学习与无监督...

    Deep Learning是机器学习中一个非常接近AI的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,最近研究了机器学习中一些深度学习的相关知识,本文给出一些很有用的资料和心得。


    Key Words:有监督学习与无监督学习,分类、回归,密度估计、聚类,深度学习,Sparse DBN,


    1. 有监督学习和无监督学习


    给定一组数据(input,target)为Z=(X,Y)。

    有监督学习:最常见的是regression & classification

    regression:Y是实数vector。回归问题,就是拟合(X,Y)的一条曲线,使得下式cost function L最小。


    classification:Y是一个finite number,可以看做类标号。分类问题需要首先给定有label的数据训练分类器,故属于有监督学习过程。分类问题中,cost function L(X,Y)是X属于类Y的概率的负对数。

    ,其中fi(X)=P(Y=i | X);


    无监督学习:无监督学习的目的是学习一个function f,使它可以描述给定数据的位置分布P(Z)。 包括两种:density estimation & clustering.

    density estimation就是密度估计,估计该数据在任意位置的分布密度

    clustering就是聚类,将Z聚集几类(如K-Means),或者给出一个样本属于每一类的概率。由于不需要事先根据训练数据去train聚类器,故属于无监督学习。

    PCA和很多deep learning算法都属于无监督学习。



    2. 深度学习Deep Learning介绍

       Depth 概念:depth: the length of the longest path from an input to an output.

       Deep Architecture 的三个特点:深度不足会出现问题;人脑具有一个深度结构(每深入一层进行一次abstraction,由lower-layer的features描述而成的feature构成,就是上篇中提到的feature hierarchy问题,而且该hierarchy是一个稀疏矩阵);认知过程逐层进行,逐步抽象

       3篇文章介绍Deep Belief Networks,作为DBN的breakthrough


    3.Deep Learning Algorithm 的核心思想:

        把learning hierarchy 看做一个network,则

        ①无监督学习用于每一层网络的pre-train;

        ②每次用无监督学习只训练一层,将其训练结果作为其higher一层的输入;

        ③用监督学习去调整所有层

    这里不负责任地理解下,举个例子在Autoencoder中,无监督学习学的是feature,有监督学习用在fine-tuning. 比如每一个neural network 学出的hidden layer就是feature,作为下一次神经网络无监督学习的input……这样一次次就学出了一个deep的网络,每一层都是上一次学习的hidden layer。再用softmax classifier去fine-tuning这个deep network的系数。



    这三个点是Deep Learning Algorithm的精髓,我在上一篇文章中也有讲到,其中第三部分:Learning Features Hierachy & Sparse DBN就讲了如何运用Sparse DBN进行feature学习。


    4. Deep Learning 经典阅读材料:

    阐述Deep learning主要思想的三篇文章:
    06年后,大批deep learning文章涌现,感兴趣的可以看下大牛Yoshua Bengio的综Learning deep architectures for {AI},不过本文很长,很长……

    5. Deep Learning工具—— Theano

         Theano是deep learning的Python库,要求首先熟悉Python语言和numpy,建议读者先看Theano basic tutorial,然后按照Getting Started 下载相关数据并用gradient descent的方法进行学习。

    学习了Theano的基本方法后,可以练习写以下几个算法:

    有监督学习:

    1. Logistic Regression - using Theano for something simple
    2. Multilayer perceptron - introduction to layers
    3. Deep Convolutional Network - a simplified version of LeNet5


    无监督学习:




    最后呢,推荐给大家基本ML的书籍:



    关于Machine Learning更多的学习资料将继续更新,敬请关注本博客和新浪微博Sophia_qing


    References:

    1. Brief Introduction to ML for AI

    2.Deep Learning Tutorial

    3.A tutorial on deep learning - Video




    展开全文
  • 深度学习常见算法的介绍和比较

    万次阅读 多人点赞 2018-02-08 22:00:06
    很多人都有误解,以为深度学习比机器学习先进。其实深度学习是机器学习的一个分支。可以理解为具有多层结构的模型。具体的话,深度学习是机器学习中的具有深层结构的神经网络算法,即机器学习>神经网络算法>深度神经...

    很多人都有误解,以为深度学习比机器学习先进。其实深度学习是机器学习的一个分支。可以理解为具有多层结构的模型。具体的话,深度学习是机器学习中的具有深层结构的神经网络算法,即机器学习>神经网络算法>深度神经网络(深度学习)。
    关于深度学习的理论推导,太大太复杂,一些常见的深度学习算法本人也是模模糊糊的,看过好多次的,隔断时间就会忘记,现在对其系统的整理一下(从历史,致命问题出发,再看具体算法的思想,框架,优缺点和改进的方向,又总结了CNN和RNN的比较)。

    一、历史:多层感知机到神经网络,再到深度学习

    神经网络技术起源于上世纪五、六十年代,当时叫感知机(perceptron),拥有输入层、输出层和一个隐含层。输入的特征向量通过隐含层变换达到输出层,在输出层得到分类结果。(扯一个不相关的:由于计算技术的落后,当时感知器传输函数是用线拉动变阻器改变电阻的方法机械实现的,脑补一下科学家们扯着密密麻麻的导线的样子…)
    心理学家Rosenblatt提出的单层感知机有一个严重得不能再严重的问题,即它对稍复杂一些的函数都无能为力(比如最为典型的“异或”操作)。
    这个缺点直到上世纪八十年代才被Rumelhart、Williams、Hinton、LeCun等人发明的多层感知机解决,多层感知机解决了之前无法模拟异或逻辑的缺陷,同时更多的层数也让网络更能够刻画现实世界中的复杂情形。
    多层感知机可以摆脱早期离散传输函数的束缚,使用sigmoid或tanh等连续函数模拟神经元对激励的响应,在训练算法上则使用Werbos发明的反向传播BP算法。这就是我们现在所说的【神经网络】,BP算法也叫BP神经网络具体过程可参见我转载的文章(http://blog.csdn.net/abc200941410128/article/details/78708319)。
    但是BP神经网络(多层感知机)面临在致命问题(见下节)。随着神经网络层数的加深,有两个重大问题:一是优化函数越来越容易陷入局部最优解,并且这个“陷阱”越来越偏离真正的全局最优。利用有限数据训练的深层网络,性能还不如较浅层网络。同时,另一个不可忽略的问题是“梯度消失”现象更加严重。
    2006年,Hinton利用预训练方法缓解了局部最优解问题,将隐含层推动到了7层,神经网络真正意义上有了“深度”,由此揭开了深度学习的热潮,随后的DBN、CNN、RNN、LSTM等才逐渐出现。
    这里的“深度”并没有固定的定义——在语音识别中4层网络就能够被认为是“较深的”,而在图像识别中20层以上的网络屡见不鲜。
    为了克服梯度消失,ReLU、maxout等传输函数代替了sigmoid,形成了如今DNN的基本形式。单从结构上来说,全链接的多层感知机是没有任何区别的。

    二、深度神经网络的致命问题

    随着神经网络层数的加深,有三个重大问题:一是非凸优化问题,即优化函数越来越容易陷入局部最优解;二是(Gradient Vanish)梯度消失问题;三是过拟合问题。

    2.1 非凸优化问题

    线性回归,本质是一个多元一次函数的优化问题,设f(x,y)=x+y
    多层神经网络,本质是一个多元K次函数优化问题,设f(x,y)=xy
    在线性回归当中,从任意一个点出发搜索,最终必然是下降到全局最小值附近的。所以置0也无妨(这也是为什么我们往往解线性回归方程时初值为0)。
    而在多层神经网络中,从不同点出发,可能最终困在局部最小值。局部最小值是神经网络结构带来的挥之不去的阴影,随着隐层层数的增加,非凸的目标函数越来越复杂,局部最小值点成倍增长,利用有限数据训练的深层网络,性能还不如较浅层网络。。避免的方法一般是权值初始化。为了统一初始化方案,通常将输入缩放到[−1,1],但是仍然无法保证能够达到全局最优,其实这也是科学家们一直在研究而未解决的问题。
    所以,从本质上来看,深度结构带来的非凸优化仍然不能解决(包括现在的各类深度学习算法和其他非凸优化问题都是如此),这限制着深度结构的发展。

    2.2 (Gradient Vanish)梯度消失问题

    这个问题实际上是由激活函数不当引起的,多层使用Sigmoid系函数,会使得误差从输出层开始呈指数衰减。在数学上,激活函数的作用就是将输入数据映射到0到1上(tanh是映射-1到+1上)。至于映射的原因,除了对数据进行正则化外,大概是控制数据,使其只在一定的范围内。当然也有另外细节作用,例如Sigmoid(tanh)中,能在激活的时候,更关注数据在零(或中心点)前后的细小变化,而忽略数据在极端时的变化,例如ReLU还有避免梯度消失的作用。通常,Sigmoid(tanh)多用于全连接层,而ReLU多用于卷积层。
    Sigmoid
    Sigmoid
    ReLU
    ReLU
    “梯度消失”现象具体来说,我们常常使用sigmoid作为神经元的输入输出函数。对于幅度为1的信号,在BP反向传播梯度时,每传递一层,梯度衰减为原来的0.25。层数一多,梯度指数衰减后低层基本上接受不到有效的训练信号。
    幸运的是,这个问题已经被Hinton在2006年提出的逐层贪心预训练权值矩阵变向减轻,最近提出的ReLu则从根本上提出了解决方案。
    2012年,Hinton组的Alex Krizhevsky率先将受到Gradient Vanish影响较小的CNN中大规模使用新提出的ReLu函数。
    2014年,Google研究员贾扬清则利用ReLu这个神器,成功将CNN扩展到了22层巨型深度网络,见知乎。
    对于深受Gradient Vanish困扰的RNN,其变种LSTM也克服了这个问题。

    2.3 过拟合问题

    这就是神经网络的最后一个致命问题:过拟合,庞大的结构和参数使得,尽管训练error降的很低,但是test error却高的离谱。
    过拟合还可以和Gradient Vanish、局部最小值混合三打,具体玩法是这样的:
    由于Gradient Vanish,导致深度结构的较低层几乎无法训练,而较高层却非常容易训练。
    较低层由于无法训练,很容易把原始输入信息,没有经过任何非线性变换,或者错误变换推到高层去,使得高层解离特征压力太大。
    如果特征无法解离,强制性的误差监督训练就会使得模型对输入数据直接做拟合。
    其结果就是,A Good Optimation But a Poor Generalization,这也是SVM、决策树等浅层结构的毛病。
    Bengio指出,这些利用局部数据做优化的浅层结构基于先验知识(Prior): Smoothness
    即,给定样本(xi,yi),尽可能从数值上做优化,使得训练出来的模型,对于近似的x,输出近似的y。
    然而一旦输入值做了泛型迁移,比如两种不同的鸟,鸟的颜色有别,且在图像中的比例不一,那么SVM、决策树几乎毫无用处。
    因为,对输入数据简单地做数值化学习,而不是解离出特征,对于高维数据(如图像、声音、文本),是毫无意义的。
    然后就是最后的事了,由于低层学不动,高层在乱学,所以很快就掉进了吸引盆中,完成神经网络三杀。

    三、深度学习里面的基本模型

    深度学习里面的基本模型大致分为了3类:多层感知机模型;深度神经网络模型和递归神经网络模型。其代表分别是DBN(Deep belief network) 深度信念网络、CNN(Convolution Neural Networks)卷积神经网络、RNN(Recurrent neural network) 递归神经网络。

    3.1 DBN(Deep belief network) 深度信念网络

    2006年,Geoffrey Hinton提出深度信念网络(DBN)及其高效的学习算法,即Pre-training+Fine tuning,并发表于《Science》上,成为其后深度学习算法的主要框架。DBN是一种生成模型,通过训练其神经元间的权重,我们可以让整个神经网络按照最大概率来生成训练数据。所以,我们不仅可以使用DBN识别特征、分类数据,还可以用它来生成数据。

    3.1.1 网络结构

    深度信念网络(DBN)由若干层受限玻尔兹曼机(RBM)堆叠而成,上一层RBM的隐层作为下一层RBM的可见层。
    (1) RBM
    这里写图片描述
    一个普通的RBM网络结构如上图所示,是一个双层模型,由m个可见层单元及n个隐层单元组成,其中,层内神经元无连接,层间神经元全连接,也就是说:在给定可见层状态时,隐层的激活状态条件独立,反之,当给定隐层状态时,可见层的激活状态条件独立。这保证了层内神经元之间的条件独立性,降低概率分布计算及训练的复杂度。RBM可以被视为一个无向图模型,可见层神经元与隐层神经元之间的连接权重是双向的,即可见层到隐层的连接权重为W,则隐层到可见层的连接权重为W’。除以上提及的参数外,RBM的参数还包括可见层偏置b及隐层偏置c。RBM可见层和隐层单元所定义的分布可根据实际需要更换,包括:Binary单元、Gaussian单元、Rectified Linear单元等,这些不同单元的主要区别在于其激活函数不同
    (2) DBN
    这里写图片描述
    DBN模型由若干层RBM堆叠而成,如果在训练集中有标签数据,那么最后一层RBM的可见层中既包含前一层RBM的隐层单元,也包含标签层单元。假设顶层RBM的可见层有500个神经元,训练数据的分类一共分成了10类,那么顶层RBM的可见层有510个显性神经元,对每一训练数据,相应的标签神经元被打开设为1,而其他的则被关闭设为0

    3.1.2 训练过程和优缺点

    DBN的训练包括Pre-training和Fine tuning两步,其中Pre-training过程相当于逐层训练每一个RBM,经过Pre-training的DBN已经可用于模拟训练数据,而为了进一步提高网络的判别性能, Fine tuning过程利用标签数据通过BP算法对网络参数进行微调。
    对DBN优缺点的总结主要集中在生成模型与判别模型的优缺点总结上。
    1、优点:

    • 生成模型学习联合概率密度分布,所以就可以从统计的角度表示数据的分布情况,能够反映同类数据本身的相似度;
    • 生成模型可以还原出条件概率分布,此时相当于判别模型,而判别模型无法得到联合分布,所以不能当成生成模型使用。

    2、缺点:
    - 生成模型不关心不同类别之间的最优分类面到底在哪儿,所以用于分类问题时,分类精度可能没有判别模型高;
    - 由于生成模型学习的是数据的联合分布,因此在某种程度上学习问题的复杂性更高。
    - 要求输入数据具有平移不变性。

    关于 判别模型与生成模型可以参看(http://blog.csdn.net/erlib/article/details/53585134)

    3.1.3 改进模型

    DBN的变体比较多,它的改进主要集中于其组成“零件”RBM的改进,有卷积DBN(CDBN)和条件RBM(Conditional RBM)等。
    DBN并没有考虑到图像的二维结构信息,因为输入是简单的将一个图像矩阵转换为一维向量。而CDBN利用邻域像素的空域关系,通过一个称为卷积RBM(CRBM)的模型达到生成模型的变换不变性,而且可以容易得变换到高维图像。
    DBN并没有明确地处理对观察变量的时间联系的学习上,Conditional RBM通过考虑前一时刻的可见层单元变量作为附加的条件输入,以模拟序列数据,这种变体在语音信号处理领域应用较多。

    3.2 CNN(Convolution Neural Networks)卷积神经网络

    卷积神经网络是人工神经网络的一种,已成为当前语音分析和图像识别领域的研究热点。它的权值共享网络结构使之更类似于生物神经网络,降低了网络模型的复杂度,减少了权值的数量。该优点在网络的输入是多维图像时表现的更为明显,使图像可以直接作为网络的输入,避免了传统识别算法中复杂的特征提取和数据重建过程。
    全链接DNN的结构里下层神经元和所有上层神经元都能够形成连接,带来了参数数量的膨胀问题。例如,1000*1000的像素图像,光这一层就有10^12个权重需要训练。此时我们可以用卷积神经网络CNN,对于CNN来说,并不是所有上下层神经元都能直接相连,而是通过“卷积核”作为中介。同一个卷积核在所有图像内是共享的,图像通过卷积操作后仍然保留原先的位置关系。图像输入层到隐含层的参数瞬间降低到了100*100*100=10^6个
    卷积网络是为识别二维形状而特殊设计的一个多层感知器,这种网络结构对平移、比例缩放、倾斜或者共他形式的变形具有高度不变性。

    3.2.1 网络结构

    卷积神经网络是一个多层的神经网络,其基本运算单元包括:卷积运算、池化运算、全连接运算和识别运算。
    这里写图片描述

    • 卷积运算:前一层的特征图与一个可学习的卷积核进行卷积运算,卷积的结果经过激活函数后的输出形成这一层的神经元,从而构成该层特征图,也称特征提取层,每个神经元的输入与前一层的局部感受野相连接,并提取该局部的特征,一旦该局部特征被提取,它与其它特征之间的位置关系就被确定。l
    • 池化运算:能很好的聚合特征、降维来减少运算量。它把输入信号分割成不重叠的区域,对于每个区域通过池化(下采样)运算来降低网络的空间分辨率,比如最大值池化是选择区域内的最大值,均值池化是计算区域内的平均值。通过该运算来消除信号的偏移和扭曲。
    • 全连接运算:输入信号经过多次卷积核池化运算后,输出为多组信号,经过全连接运算,将多组信号依次组合为一组信号。
      识别运算:上述运算过程为特征学习运算,需在上述运算基础上根据业务需求(分类或回归问题)增加一层网络用于分类或回归计算。

    3.2.2 训练过程和优缺点

    卷积网络在本质上是一种输入到输出的映射,它能够学习大量的输入与输出之间的映射关系,而不需要任何输入和输出之间的精确的数学表达式,只要用已知的模式对卷积网络加以训练,网络就具有输入输出对之间的映射能力。卷积网络执行的是有监督训练,所以其样本集是由形如:(输入信号,标签值)的向量对构成的。

    1、优点:
    - 权重共享策略减少了需要训练的参数,相同的权重可以让滤波器不受信号位置的影响来检测信号的特性,使得训练出来的模型的泛化能力更强;
    - 池化运算可以降低网络的空间分辨率,从而消除信号的微小偏移和扭曲,从而对输入数据的平移不变性要求不高。

    2、缺点:
    - 深度模型容易出现梯度消散问题。

    3.2.3 改进模型

    卷积神经网络因为其在各个领域中取得了好的效果,是近几年来研究和应用最为广泛的深度神经网络。比较有名的卷积神经网络模型主要包括1986年Lenet,2012年的Alexnet,2014年的GoogleNet,2014年的VGG,2015年的Deep Residual Learning。这些卷积神经网络的改进版本或者模型的深度,或者模型的组织结构有一定的差异,但是组成模型的机构构建是相同的,基本都包含了卷积运算、池化运算、全连接运算和识别运算。

    3.3 RNN(Recurrent neural network) 递归神经网络

    全连接的DNN除了以上问题以外还存在着另一个问题——无法对时间序列上的变化进行建模。然而,样本出现的时间顺序对于自然语言处理、语音识别、手写体识别等应用非常重要。对了适应这种需求,就出现了题主所说的另一种神经网络结构——循环神经网络RNN(不知道为什么很多叫循环的。计算机术语里循环一般是同一层次的,Recurrent 其实是时间递归,所以本文叫他递归神经网络)。
    在普通的全连接网络或CNN中,每层神经元的信号只能向上一层传播,样本的处理在各个时刻独立,因此又被成为前向神经网络(Feed-forward Neural Networks)。而在RNN中,神经元的输出可以在下一个时间戳直接作用到自身。
    即:(t+1)时刻网络的最终结果O(t+1)是该时刻输入和所有历史共同作用的结果。RNN可以看成一个在时间上传递的神经网络,它的深度是时间的长度!正如我们上面所说,“梯度消失”现象又要出现了,只不过这次发生在时间轴上
    为了解决时间上的梯度消失,机器学习领域发展出了长短时记忆单元(LSTM),通过门的开关实现时间上记忆功能,并防止梯度消失。

    3.3.1 网络结构

    这里写图片描述
    左侧是递归神经网络的原始结构,如果先抛弃中间那个令人生畏的闭环,那其实就是简单“输入层=>隐藏层=>输出层”的三层结构,但是图中多了一个非常陌生的闭环,也就是说输入到隐藏层之后,隐藏层还会输入给自己,使得该网络可以拥有记忆能力。我们说递归神经网络拥有记忆能力,而这种能力就是通过W将以往的输入状态进行总结,而作为下次输入的辅助。可以这样理解隐藏状态:h=f(现有的输入+过去记忆总结)

    3.3.2 训练过程和优缺点

    递归神经网络中由于输入时叠加了之前的信号,所以反向传导时不同于传统的神经网络,因为对于时刻t的输入层,其残差不仅来自于输出,还来自于之后的隐层。通过反向传递算法,利用输出层的误差,求解各个权重的梯度,然后利用梯度下降法更新各个权重。
    1、优点:

    • 模型是时间维度上的深度模型,可以对序列内容建模。

    2、缺点:
    - 需要训练的参数较多,容易出现梯度消散或梯度爆炸问题;
    - 不具有特征学习能力。

    3.3.3 改进模型

    递归神经网络模型可以用来处理序列数据,递归神经网络包含了大量参数,且难于训练(时间维度的梯度消散或梯度爆炸),所以出现一系列对RNN优化,比如网络结构、求解算法与并行化。
    近年来bidirectional RNN (BRNN)与 LSTM在image captioning, language translation, and handwriting recognition这几个方向上有了突破性进展 。

    3.4 混合结构

    除了以上三种网络,和我之前提到的深度残差学习、LSTM外,深度学习还有许多其他的结构。举个例子,RNN既然能继承历史信息,是不是也能吸收点未来的信息呢?因为在序列信号分析中,如果我能预知未来,对识别一定也是有所帮助的。因此就有了双向RNN、双向LSTM,同时利用历史和未来的信息。双向RNN、双向LSTM,同时利用历史和未来的信息。
    事实上,不论是那种网络,他们在实际应用中常常都混合着使用,比如CNN和RNN在上层输出之前往往会接上全连接层,很难说某个网络到底属于哪个类别。
    不难想象随着深度学习热度的延续,更灵活的组合方式、更多的网络结构将被发展出来。尽管看起来千变万化,但研究者们的出发点肯定都是为了解决特定的问题。如果想进行这方面的研究,不妨仔细分析一下这些结构各自的特点以及它们达成目标的手段。

    3.5 CNN和RNN的比较

    RNN的重要特性是可以处理不定长的输入,得到一定的输出。当你的输入可长可短, 比如训练翻译模型的时候, 你的句子长度都不固定,你是无法像一个训练固定像素的图像那样用CNN搞定的。而利用RNN的循环特性可以轻松搞定。
    在序列信号的应用上,CNN是只响应预先设定的信号长度(输入向量的长度),RNN的响应长度是学习出来的。

    CNN对特征的响应是线性的,RNN在这个递进方向上是非线性响应的。这也带来了很大的差别。

    CNN 专门解决图像问题的,可用把它看作特征提取层,放在输入层上,最后用MLP 做分类。
    RNN 专门解决时间序列问题的,用来提取时间序列信息,放在特征提取层(如CNN)之后。

    RNN,递归型网络,用于序列数据,并且有了一定的记忆效应,辅之以lstm。
    CNN应该侧重空间映射,图像数据尤为贴合此场景。

    CNN 卷积擅长从局部特征逼近整体特征,
    RNN 擅长对付时间序列。

    四、一些基本概念和知识

    4.1 线性回归、线性神经网络、Logistic/Softmax回归

    这个参考http://blog.csdn.net/erlib/article/details/53585134
    或者其他资料。

    4.2 关于卷积、池化、激活函数等

    入门参考:http://blog.csdn.net/u010859498/article/details/78794405
    详细了解可自己谷歌百度

    4.3 推荐一个比较好的入门资料

    台大电机系李宏毅教授的讲义《一天搞懂深度学习》
    有人做简略的翻译过
    https://www.jianshu.com/p/c30f7c944b66

    参考资料:
    http://blog.csdn.net/erlib/article/details/53585134
    https://www.zhihu.com/question/34681168/answer/156552873
    http://blog.csdn.net/u010859498/article/details/78794405

    展开全文
  • [深度学习]如何选择深度学习框架

    千次阅读 2019-04-03 20:47:53
    不管是前端技术框架还是后端技术框架以及在深度学习技术框架,我们在决定使用前,都需要考虑以下几个方面,也就是我们在选型上通用的依据,这里以深度学习框架选型举例子: 1) 性能方面 性能方面一部分主要由实现...

    不管是前端技术框架还是后端技术框架以及在深度学习技术框架,我们在决定使用前,都需要考虑以下几个方面,也就是我们在选型上通用的依据,这里以深度学习框架选型举例子:
    在这里插入图片描述
    1) 性能方面
    性能方面一部分主要由实现该框架的语言决定,还有一小部分原因该框架的实现的架构决定。理论上说,运行最快的仍旧是C或C++一类,离着CPU指令近些语言效率要高很多。
    之前有篇文章专门介绍过深度学习流行的框架比较,有Torch,TensorFlow,Caffe等多种框架,在相同的条件下Torch运行速度要快很多,而TensorFlow在这几个框架中是比较慢的,但是在真正的工程应用中造成差距大大多来自于样本的数量和网络设计等方面,这个方面的差距往往是10倍或者100倍,而语言的效率与其相比几乎可以忽略不计了。所以语言的性能就不是最主要的参考标准了。
    2)社区的活跃度
    这些技术框架,各自的社区的活跃度是个非常重要的参考因素。活跃的社区就意味着很多人在使用这个框架,会有更多人贡献代码,提交bug,修复bug,因此用它做起项目的风险就非常小,而我们学起来也比较容易,因此也会少踩很多坑。
    3)深度学习语言
    深度学习框架几乎都支持Python的“驱动“”,或者俗称之为接口。也不排除少部分框架只支持原生接口,例如Torch只支持Lua脚本,CNTK只支持C++。。。

    综上所述:应该说TensorFlow在这些方便做的都是非常不错的:
    1)有着非常活跃的社区
    2)来自于世界最大软件公司谷歌支持开发和维护,比较有保障
    2)语言Python,性能虽然并不快,但是满足目前绝大多数工作已经非常足够了,往往那种数量级效率的提升是无法通过变更一个框架实现的。
    所以总的来讲TensorFlow应该是现有深度学习框架中比较适合用来进行工程应用的

    资源下载
    资源下载
    在这里插入图片描述

    展开全文
  • 机器学习算法已经基本学习完了,在这一系列,佛爷将开始着手学习深度学习的各种算法和应用,由于本身难度偏大,我会不定期的更新,基本清楚和更加深入的研究深度学习。代码方面我基本会使用Tensorflow框架去写,原生...

    机器学习算法已经基本学习完了,在这一系列,佛爷将开始着手学习深度学习的各种算法和应用,由于本身难度偏大,我会不定期的更新,基本清楚和更加深入的研究深度学习。代码方面我基本会使用Tensorflow框架去写,原生代码我尽力去完成,查看资料,看看自己能不能搞定。完成的例子和项目,尽量我会设计一个别人都没有实现和想到的项目。因为但凡学习深度学习的同学,一上来肯定会遇到手写数字识别,这是基础。遇到MNIST数据集。
    今天这一篇文章就介绍深度学习到底是什么?

    什么是深度学习?(Deep Learning)

    • 深度学习是基于机器学习延伸出来的一个新的领域,由以人大脑结构为启发的神经网络算法为起源加之模型结构深度的增加发展,并伴随大数据和计算能力的提高而产生的一系列新的算法。
      这里写图片描述

    深度学习什么时间段发展起来的?

    • 其概念由著名科学家Geoffrey Hinton等人在2006年和2007年在《Sciences》等上发表的文章被提出和兴起。
      这里写图片描述这里写图片描述

    深度学习能用来干什么?为什么近年来引起如此广泛的关注?

    • 深度学习,作为机器学习中延伸出来的一个领域,被应用在图像处理与计算机视觉,自然语言处理以及语音识别等领域。自2006年至今,学术界和工业界合作在深度学习方面的研究与应用在以上领域取得了突破性的进展。以ImageNet为数据库的经典图像中的物体识别竞赛为例,击败了所有传统算法,取得了前所未有的精确度。
      这里写图片描述这里写图片描述

    深度学习目前有哪些代表性的学术机构和公司走在前沿?人才需要如何?

    • 学校以多伦多大学,纽约大学,斯坦福大学为代表,工业界以Google, Facebook, 和百度为代表走在深度学习研究与应用的前沿。Google挖走了Hinton,Facebook挖走了LeCun,百度硅谷的实验室挖走了Andrew Ng,Google去年4月份以超过5亿美金收购了专门研究深度学习的初创公司DeepMind, 深度学习方因技术的发展与人才的稀有造成的人才抢夺战达到了前所未有激烈的程度。诸多的大大小小(如阿里巴巴,雅虎)等公司也都在跟进,开始涉足深度学习领域,深度学习人才需求量会持续快速增长。
      这里写图片描述

    深度学习如今和未来将对我们生活造成怎样的影响?

    • 目前我们使用的Android手机中google的语音识别,百度识图,google的图片搜索,都已经使用到了深度学习技术。Facebook在去年名为DeepFace的项目中对人脸识别的准备率第一次接近人类肉眼(97.25% vs 97.5%)。大数据时代,结合深度学习的发展在未来对我们生活的影响无法估量。保守而言,很多目前人类从事的活动都将因为深度学习和相关技术的发展被机器取代,如自动汽车驾驶,无人飞机,以及更加职能的机器人等。深度学习的发展让我们第一次看到并接近人工智能的终极目标。
      这里写图片描述这里写图片描述这里写图片描述

    深度学习范畴
    这里写图片描述

    深度学习基本模型
    这里写图片描述

    深度学习与传统机器学习
    这里写图片描述

    深度学习系列参考资料来源:

    1. 深度学习进阶:算法与应用(https://www.youtube.com/playlist?list=PLO5e_-yXpYLDyeADG7xbFaJxvYyeAjHah
    2. 莫烦 Python(https://morvanzhou.github.io/):一个志同道合的机器学习爱好者。
    3. 《TensorFlow实战Google深度学习框架》才云科技 郑泽宇 顾思宇 著
      (顺带手附上彩云科技的在bitTiger平台上的招聘视频【https://www.youtube.com/watch?v=ow4NQR4fdDA】)
    展开全文
  • 深度学习(1): 深度学习简介

    千次阅读 2019-08-09 11:16:39
    文章目录1 什么是深度学习?2 深度学习应用2.1 机器学习的一般方法2.2 深度学习的一般方法3 GPU的迅速发展3.1 GPU与显卡的区别3.2 GPU 与 CPU 区别3.3 GPU种类参考资料 注:转载请标明原文出处链接:...
  • [深度学习概念]·深度学习简介

    千次阅读 2019-01-20 11:13:05
    目录 有监督的学习 半监督学习 无监督学习(又名Hebbian学习...从社交网络过滤到自动驾驶汽车,再到电影推荐,金融欺诈检测,药物发现……深度学习影响着我们的生活和决策。 在这一文章中,将尽可能简单易懂地解...
  • 深度强化学习1——强化学习深度强化学习

    万次阅读 多人点赞 2019-06-20 15:20:31
    开讲前,先给大家看个深度强化学习的例子,下面是深度学习cnn和强化学习结合玩吃豆人的游戏 看图像我们会发现吃豆人会,吃掉一闪一闪的豆子来消灭怪物,仔细观察会发现,经过训练的吃豆人,甚至会停在某个角落来...
  • 图像识别中的深度学习

    万次阅读 2016-05-11 15:46:33
    图像识别中的深度学习 来源:《中国计算机学会通讯》第8期《专题》 作者:王晓刚 深度学习发展历史 深度学习是近十年来人工智能领域取得的重要突破。它在语音识别、自然语言处理、...
  • 机器学习&深度学习系统实战!

    万人学习 2020-07-06 11:37:45
    数学原理推导与案例实战紧密结合,由机器学习经典算法过度到深度学习的世界,结合深度学习两大主流框架Caffe与Tensorflow,选择经典项目实战人脸检测与验证码识别。原理推导,形象解读,案例实战缺一不可!具体课程...
  • 深度学习工作原理

    千次阅读 2019-01-18 21:21:49
    机器学习的三个要素: 输入数据点;例如,如果你的任务是为图像添加标签,则这些数据点可能是图像 预期输出的示例;例如,对于图像标记任务来说,...机器学习和深度学习的核心问题就在于有意义的变换数据,即学习...
  • AI必知的十大深度学习算法

    万次阅读 多人点赞 2018-04-04 15:30:10
    首先先让我们来定义一下什么是“深度学习”。对很多人来说,给“深度学习”下一个定义确实很有挑战,因为在过去的十年中,它的形式已经慢慢地发生了很大的变化。先来在视觉上感受一下“深度学习”的地位。下图是AI、...
  • 这篇文章对深度学习在工程级别应用上遇到的问题进行了很好地总结,并且提出一些有建设性的解决方案,很有实际意义。 当我们需要用深度学习处理现实问题时,除了相关的技术和数据,你还需要掌握一系列的小诀窍...
  • 机器学习和深度学习概念入门

    万次阅读 多人点赞 2017-12-26 22:16:02
     对于很多初入学习人工智能的学习者来说,对机器学习、深度学习、人工智能的概念和区别还不是很了解,那么接下来就给大家从概念和特点上进行阐述。先看下三者的关系。  人工智能包括了机器学习,机器学习包括...
  • 本文旨在解释一些深度学习中的基本概念,并通过一些实践中的例子帮助理解,可能个人解读有误,还望指正。本文提纲参照参考文献【2】进行,对其简练的内容加以了丰富和扩展,确保零基础的新手也可以有比较清晰的认识...
  • 深度学习新手入门课

    千次阅读 2019-07-05 10:12:18
    伴随人工智能时代的到来,越来越多的人开始关注深度学习,且希望能够入行深度学习,其中不乏一些行业小白、非计算机专业的人士。 本达人课,共计11篇文章,涵盖了入行深度学习所涉及到的大多数疑问,以及行业介绍、...
  • 深度学习是指由许多层组成的人工神经网络。“深”是指层数多。相比深度学习,其他的许多机器学习算法是浅的,例如SVM,因为它们没有多层的深架构。多层的架构允许后面的计算建立在前面的计算之上。目前的深度学习...
  • 深度学习基本概念

    千次阅读 2017-06-16 10:55:41
    深度学习并没有你想象的那么难,本课程将会一边讲解深度学习中的基本理论,一边通过动手使用python实现一个简单的深度神经网络去验证这些理论,让你从原理上真正入门深度学习。 本次实验将会带大家学习深度学习中的...
  • Halcon 深度学习分类之工业缺陷检测

    千次阅读 2020-05-12 19:36:07
    上两篇文章分别介绍了Halcon深度学习的框架,例子的详细分析,以及在Mnist上的应用等。通过这两个例子的上手,想必大家已经对Halcon深度学习的分类原理基本掌握。是不是有点兴奋?是不是想要在工业缺陷检测上小试...
  • 5分钟搞懂什么是深度学习

    千次阅读 2018-12-18 16:52:45
    现在各种名词非常火,什么人工智能、机器学习、深度学习,那么我要学习它,当然是要在一个大的方向、轮廓上看到它。比如爬一座山,先远远的看看,对它有一个大致的了解。 好了,先上一张图,远远的看一下: 如何...
  • ◆介绍 机器学习和深度学习现在风靡一时!...如果你想了解机器学习和深度学习之间的区别,请继续阅读这篇以简单的外行语言进行详细比较机器学习和深度学习的文章。我将会详细的解释这些术语。然后比较它们...
1 2 3 4 5 ... 20
收藏数 130,880
精华内容 52,352
关键字:

例子 深度学习