2017-10-29 11:14:19 m0_37885286 阅读数 5564
  • 深度学习基础与TensorFlow实践教程

    本课程主要介绍了深度学习的基础原理和TensorFlow系统基本使用方法。TensorFlow是目前机器学习、深度学习领域优秀的计算系统之一,本课程将结合实例介绍使用TensorFlow开发机器学习应用的详细方法和步骤,着重讲解了用于图像识别的卷积神经网络和用于自然语言处理的循环神经网络的理论知识及其TensorFlow实现方法,并结合实际场景和例子描述了深度学习技术的应用范围与效果。 所有案例均来自讲师团队工作中的亲身实践,所选案例均是深度学习的经典应用,非常具有代表性。

    21447 人正在学习 去看看 AI100讲师

最近开始学习比较火的深度学习框架:TensorFlow,主要原因是看猪场招聘需要熟练TensorFlow框架(有点急功近利,嘿嘿),于是开始提前做准备。以下是读《TensorFlow:实战Google深度学习框架》的总结


1、人工智能、机器学习、深度学习三个概念的区分

首先,想了解深度学习框架先要区分人工智能、机器学习、深度学习这三个概念:

1.1 人工智能的概念
人工智能主要是一类非常广泛的问题,它主要解决一些人类通过直觉可以很快解决而计算机目前却很难解决的问题,这些问题包括自然语言理解、图像识别、语音识别等等。

1.2 机器学习的概念
卡内基梅隆大学的Tom Michael Mitchell教授在1997年出版的书籍Machine Learning 中对机器学习进行过非常专业的定义,这个定义在学术界内被多次引用。具体定义为:“如果一个程序可以在任务T上,随着经验E的增加,效果P也可以随之增加,则称这个程序可以从经验中学习
举例说明,比如在垃圾邮件分类问题中,“一个程序”指的是需要用到的机器学习算法,比如逻辑回归算法:“任务T”是指区分垃圾邮件的任务;“经验E”为已经区分过是否为垃圾邮件的历史邮件,在监督式机器学习问题中,这也被称之为训练数据;“效果P”为区分垃圾邮件任务的正确率

1.3 深度学习的概念
深度学习是机器学习的一个分支。深度学习解决的核心问题之一就是自动地将简单的特征组合成更加复杂的特征,并使用这些组合特征解决问题。深度学习除了可以从简单特征中提取更加复杂的特征,还可以学习特征和任务之间的关联。下图展示了深度学习和传统机器学习在流程上的差异。
这里写图片描述

形象的来说的话,就是人工智能的范围>机器学习>深度学习

2、深度学习的应用

深度学习最早兴起于图像识别,但是在短短几年时间内,深度学习推广到了机器学习的各个领域。

2.1 计算机视觉
计算机视觉是深度学习技术最早实现突破性成就的领域。最早是应用在图像分类比赛ILSVRC(ImageNet Large Scale Visual Recognition Challenge),深度学习AlexNet赢得ILSVRC的冠军。
之后应用于物体识别,人脸识别,光学字符识别等。

2.2 语音识别
深度学习之所以能在语音识别领域中完成这样的技术突破,最主要的原因是它可以自动地从海量数据中提取更加复杂且有效

的特征,而不是如高斯混合模型中需要人工提取特征。
基于深度学习的语音识别已被应用到了各个领域,如:苹果公司推出的Siri系统。

2.3 自然语言处理
深度学习已经在语言模型、机器翻译、词性标注、实体识别、情感分析、广告推荐以及搜索排序等方向上取得了突出成就。

2.4 人机博弈
比如:AlphaGo以总分比4:1战胜了韩国棋手李世石。然后,AlphaGo的开发团队DeepMind又打算和暴雪公司合作推出星际争霸2的人工智能系统。

3、深度学习工具TensorFlow的主要功能和特点

TensorFlow是谷歌于2015年11月9日正式开源的计算框架。TensorFlow计算框架可以很好地支持深度学习的各种算法。

关于TensorFlow平台本身的技术细节可以参考谷歌的论文TensorFlow:Large-Scale Machine Learning on Heterogeneous Distributed Systems.

2017-07-26 14:59:28 dengxing1234 阅读数 3556
  • 深度学习基础与TensorFlow实践教程

    本课程主要介绍了深度学习的基础原理和TensorFlow系统基本使用方法。TensorFlow是目前机器学习、深度学习领域优秀的计算系统之一,本课程将结合实例介绍使用TensorFlow开发机器学习应用的详细方法和步骤,着重讲解了用于图像识别的卷积神经网络和用于自然语言处理的循环神经网络的理论知识及其TensorFlow实现方法,并结合实际场景和例子描述了深度学习技术的应用范围与效果。 所有案例均来自讲师团队工作中的亲身实践,所选案例均是深度学习的经典应用,非常具有代表性。

    21447 人正在学习 去看看 AI100讲师

当2012年Facebook在广告领域开始应用定制化受众(Facebook Custom Audiences)功能后,“受众发现”这个概念真正得到大规模应用,什么叫“受众发现”?如果你的企业已经积累了一定的客户,无论这些客户是否关注你或者是否跟你在Facebook上有互动,都能通过Facebook的广告系统触达到。“受众发现”实现了什么功能?在没有这个系统之前,广告投放一般情况都是用标签去区分用户,再去给这部分用户发送广告,“受众发现”让你不用选择这些标签,包括用户基本信息、兴趣等。你需要做的只是上传一批你目前已有的用户或者你感兴趣的一批用户,剩下的工作就等着Custom Audiences帮你完成了。

Facebook这种通过一群已有的用户发现并扩展出其他用户的推荐算法就叫Lookalike,当然Facebook的算法细节笔者并不清楚,各个公司实现Lookalike也各有不同。这里也包括腾讯在微信端的广告推荐上的应用、Google在YouTube上推荐感兴趣视频等。下面让我们结合前人的工作,实现自己的Lookalike算法,并尝试着在新浪微博上应用这一算法。

调研

首先要确定微博领域的数据,关于微博的数据可以这样分类:

  • 用户基础数据:年龄、性别、公司、邮箱、地点、公司等。
  • 关系图:根据人↔人,人↔微博的关注、评论、转发信息建立关系图。
  • 内容数据:用户的微博内容,包含文字、图片、视频。

有了这些数据后,怎么做数据的整合分析?来看看现在应用最广的方式——协同过滤、或者叫关联推荐。协同过滤主要是利用某兴趣相投、拥有共同经验群体的喜好来推荐用户可能感兴趣的信息,协同过滤的发展有以下三个阶段

第一阶段,基于用户喜好做推荐,用户A和用户B相似,用户B购买了物品a、b、c,用户A只购买了物品a,那就将物品b、c推荐给用户A。这就是基于用户的协同过滤,其重点是如何找到相似的用户。因为只有准确的找到相似的用户才能给出正确的推荐。而找到相似用户的方法,一般是根据用户的基本属性贴标签分类,再高级点可以用上用户的行为数据。

第二阶段,某些商品光从用户的属性标签找不到联系,而根据商品本身的内容联系倒是能发现很多有趣的推荐目标,它在某些场景中比基于相似用户的推荐原则更加有效。比如在购书或者电影类网站上,当你看一本书或电影时,推荐引擎会根据内容给你推荐相关的书籍或电影。

第三阶段,如果只把内容推荐单独应用在社交网络上,准确率会比较低,因为社交网络的关键特性还是社交关系。如何将社交关系与用户属性一起融入整个推荐系统就是关键。在神经网络和深度学习算法出现后,提取特征任务就变得可以依靠机器完成,人们只要把相应的数据准备好就可以了,其他数据都可以提取成向量形式,而社交关系作为一种图结构,如何表示为深度学习可以接受的向量形式,而且这种结构还需要有效还原原结构中位置信息?这就需要一种可靠的向量化社交关系的表示方法。基于这一思路,在2016年的论文中出现了一个算法node2vec,使社交关系也可以很好地适应神经网络。这意味着深度学习在推荐领域应用的关键技术点已被解决。

在实现算法前我们主要参考了如下三篇论文:

第一篇论文是LinkedIn给出的,主要谈了针对在线社交网络广告平台,如何根据已有的受众特征做受众群扩展。这涉及到如何定位目标受众和原始受众的相似属性。论文给出了两种方法来扩展受众:

  1. 与营销活动无关的受众扩展;
  2. 与营销活动有关的受众扩展。

图片描述

图1 LinkedIn的Lookalike算法流程图

在图1中,LinkedIn给出了如何利用营销活动数据、目标受众基础数据去预测目标用户行为进而发现新的用户。今天的推荐系统或广告系统越来越多地利用了多维度信息。如何将这些信息有效加以利用,这篇论文给出了一条路径,而且在工程上这篇论文也论证得比较扎实,值得参考。

第二篇论文,主要讲的是node2vec,这也是本文用到的主要算法之一。node2vec主要用于处理网络结构中的多分类和链路预测任务,具体来说是对网络中的节点和边的特征向量表示方法。

简单来说就是将原有社交网络中的图结构,表达成特征向量矩阵,每一个node(可以是人、物品、内容等)表示成一个特征向量,用向量与向量之间的矩阵运算来得到相互的关系。

下面来看看node2vec中的关键技术——随机游走算法,它定义了一种新的遍历网络中某个节点的邻域的方法,具体策略如图2所示。

图片描述

图2 随机游走策略

假设我们刚刚从节点t走到节点v,当前处于节点v,现在要选择下一步该怎么走,方案如下:

图片描述

其中dtx表示节点t到节点x之间的最短路径,dtx=0表示会回到节点t本身,dtx=1表示节点t和节点x直接相连,但是在上一步却选择了节点v,dtx=2表示节点t不与x直接相连,但节点v与x直接相连。其中p和q为模型中的参数,形成一个不均匀的概率分布,最终得到随机游走的路径。与传统的图结构搜索方法(如BFS和DFS)相比,这里提出的随机游走算法具有更高的效率,因为本质上相当于对当前节点的邻域节点的采样,同时保留了该节点在网络中的位置信息。

node2vec由斯坦福大学提出,并有开源代码,这里顺手列出,这一部分大家不用自己动手实现了。https://github.com/aditya-grover/node2vec
注:本文的方法需要在源码的基础上改动图结构。

第三篇论文讲的是Google如何做YouTube视频推荐,论文是在我做完结构设计和流程设计后看到的,其中模型架构的思想和我们不谋而合,还解释了为什么要引入DNN(后面提到所有的feature将会合并经历几层全连接层):引入DNN的好处在于大多数类型的连续特征和离散特征可以直接添加到模型当中。此外我们还参考了这篇论文对于隐含层(FC)单元个数选择。图3是这篇论文提到的算法结构。

图片描述

图3 YouTube推荐结构图

实现

  • (a)数据准备

    • 获得用户的属性(User Profile),如性别、年龄、学历、职业、地域、能力标签等;
    • 根据项目内容和活动内容制定一套受众标签(Audience Label);
    • 提取用户之间的关注关系,微博之间的转发关系;
    • 获取微博message中的文本内容;
    • 获得微博message中的图片内容。
  • (b)用户标签特征处理

    • 根据步骤a中用户属性信息和已有的部分受众标签系统。利用GBDT算法(可以直接用xgboost)将没有标签的受众全部打上标签。这个分类问题中请注意处理连续值变量以及归一化。
    • 将标签进行向量化处理,这个问题转化成对中文单词进行向量化,这里用word2vec处理后得到用户标签的向量化信息Label2vec。这一步也可以使用word2vec在中文的大数据样本下进行预训练,再用该模型对标签加以提取,对特征的提取有一定的提高,大约在0.5%左右。
  • (c)文本特征处理
    将步骤a中提取到的所有微博message文本内容清洗整理,训练Doc2Vec模型,得到单
    个文本的向量化表示,对所得的文本作聚类(KMeans,在30w的微博用户的message上测试,K取128对文本的区分度较强),最后提取每个cluster的中心向量,并根据每个用户所占有的cluster获得用户所发微博的文本信息的向量表示Content2vec。

  • (d)图像特征(可选)
    将步骤a中提取到的所有的message图片信息整理分类,使用预训练卷积网络模型(这里为了平衡效率选取VGG16作为卷积网络)提取图像信息,对每个用户message中的图片做向量化处理,形成Image2vec,如果有多张图片将多张图片分别提取特征值再接一层MaxPooling提取重要信息后输出。

  • (e)社交关系建立(node2vec向量化)
    将步骤a中获得到的用户之间的关系和微博之间的转发评论关系转化成图结构,并提取用户关系sub-graph,最后使用node2Vec算法得到每个用户的社交网络图向量化表示。
    图4为简历社交关系后的部分图示。
    图片描述

    图4 用户社交关系
  • (f)将bcde步骤得到的向量做拼接,经过两层FC,得到表示每个用户的多特征向量集(User Vector Set, UVS)。这里取的输出单元个数时可以根据性能和准确度做平衡,目前我们实现的是输出512个单元,最后的特征输出表达了用户的社交关系、用户属性、发出的内容、感兴趣的内容等的混合特征向量,这些特征向量将作为下一步比对相似性的输入值。

  • (g)分别计算种子用户和潜在目标用户的向量集,并比对相似性,我们使用的是余弦相似度计算相似性,将步骤f得到的用户特征向量集作为输入x,y,代入下面公式计算相似性:
    图片描述
    使用余弦相似度要注意:余弦相似度更多的是从方向上区分差异,而对绝对的数值不敏感。因此没法衡量每个维度值的差异,这里我们要在每个维度上减去一个均值或者乘以一个系数,或者在之前做好归一化。

  • (h)受众扩展

    • 获取种子受众名单,以及目标受众的数量N;
    • 检查种子用户是否存在于UVS中,将存在的用户向量化;
    • 计算受众名单中用户和UVS中用户的相似度,提取最相似的前N个用户作为目标受众。

最后我们将以上步骤串联起来,形成如图5所示。

图片描述

图5 Lookalike算法示意图

在以上步骤中特征提取完成后,我们使用一个2层的神经网络做最后的特征提取,算法结构示意图如图6所示。

图片描述

图6 Lookalike算法结构图

其中FC1层也可以替换成MaxPooling,MaxPooling层具有强解释性,也就是在用户特征群上提取最重要的特征点作为下一层的输入,读者可以自行尝试,这里限于篇幅问题就不做展开了。

讲到这里,算法部分就已基本完结,其中还有些工程问题,并不属于本次主题探讨范围,这里也不做讨论了。

结果

我司算法团队根据Lookalike思想完整实现其算法,并在实际产品中投入试用。针对某客户(乳品领域世界排名前三的品牌主)计算出结果(部分):

图片描述

表1 部分计算结果

可以观察到以上微博ID的主题基本都是西点企业或西点培训企业,和品牌主售卖的乳品有很高的关联性:乳品是非常重要的西点原料,除终端用户外,西点相关企业就是乳品企业主需要寻找的最重要的受众之一。

探讨

特征表达

除了以上提到的特征外,我们也对其他的重要特征表达做了处理和变换:根据我们的需求,需要抽取出人的兴趣特征,如何表达一个人的兴趣?除了他自己生成的有关内容外,还有比较关键的一点是比如“我”看了一些微博,但并没有转发,大多数情况下都不会转发,但有些“我”转发了,有些“我”评论了;“我”转发了哪些?评论了哪些?这次距上次的浏览该人的列表时间间隔多久?都代表“我”对微博的兴趣,而间接的反应“我”的兴趣特征。这些数据看来非常重要,又无法直接取得,怎么办?

下面来定义一个场景,试图描述出我们对看过的内容中哪些是感兴趣的,哪些不是感兴趣的:

  • (a)用户A,以及用户A关注的用户B;
  • (b)用户A的每天动作时间(比如他转发、评论、收藏、点赞)起始时间,我们定义为苏醒时间A_wake(t);
  • (c)用户B每天发帖(转发、评论)时间:B_action(t);
  • (d)简单假设一下A_wake(t)> B_action(t),也就是B_action(t)的评论都能看到。这就能得到用户A对应了哪些帖子;
  • (e)同理,也可知用户A 在A_wake(t)时间内转发了、评论了哪些帖子;
  • (f)结合上次浏览间隔时间,可以描述用户A对哪些微博感兴趣(post ive),哪些不感兴趣(negative)。

全连接层的激活单元比对提升

在Google那篇论文中比对隐含层(也就是我们结构图中的FC层)各种单元组合产生的结果,Google选择的是最后一种组合,如图7所示。

图片描述

图7 YouTube推荐模型隐含层单元选择对比

我们初期选用了512 tanh→256 tanh 这种两层组合,后认为输入特征维度过大,512个单元无法完整的表达特征,故又对比了 1024→512组合,发现效果确实有微小提升大概在0.7%。另外我们的FC层输入在(-1,1)区间,考虑到relu函数的特点没有使用它,而是使用elu激活函数。测试效果要比tanh函数提升0.3%-0.5%。

附node2vec伪码:
图片描述


原文:http://geek.csdn.net/news/detail/200138

2017-05-27 17:17:31 lx530467 阅读数 4502
  • 深度学习基础与TensorFlow实践教程

    本课程主要介绍了深度学习的基础原理和TensorFlow系统基本使用方法。TensorFlow是目前机器学习、深度学习领域优秀的计算系统之一,本课程将结合实例介绍使用TensorFlow开发机器学习应用的详细方法和步骤,着重讲解了用于图像识别的卷积神经网络和用于自然语言处理的循环神经网络的理论知识及其TensorFlow实现方法,并结合实际场景和例子描述了深度学习技术的应用范围与效果。 所有案例均来自讲师团队工作中的亲身实践,所选案例均是深度学习的经典应用,非常具有代表性。

    21447 人正在学习 去看看 AI100讲师


什么是深度学习

深度学习是机器学习中的一个分支,是当今AI领域最热门最前沿的研究内容。它考虑的是用non-linear multiple processing layers来学习数据的multiple levels features的抽象表征用反向传播BP算法对计算模型训练,通过supervisedweakly supervised的特征学习和分层特征提取代替手工获取特征。

深度学习的应用

深度学习由于其不需要人工提取特征,只需要大量labelled data进行训练,从而在image, video, speech, text, audio等领域大放异彩。应用包含定位、识别、匹配、语音转文本、电商中的商品推荐等。当然还有GoogleAlphaGo

深度学习的框架

现在深度学习的框架已经有很多,如深度神经网络DNN、卷积神经网络CNN、深度置信网络DBN、递归神经网络RNN和生成对抗网络GAN等。其中以CNNGAN受关注度最高,前者不但可以通过得到候选区域来实现定位,而且可以通过减少参数加快训练速度;后者则是可以通过输入label得到输出数据(如image),从某种意义上相当于其它常用深度学习框架的逆过程。

CNN

卷积神经网络(Convolutional Neural Network)是目前应用最广泛的深度学习框架,其经典网络模型包括LeNet, AlexNet [1], GoogleNet [2], VGG [3], ResNet [4]
下面的四张图就可以清楚的描述CNN的结构:(取自[5]
这里写图片描述

这里写图片描述
Convolution中,可以看到一个batchNfeature maps输入,每张feature mapssize是宽为W、高为H、通道数为C。对于每一个batch的数据,使用的都是相同的共MC通道的卷积核filtersfilter sizeR x S。将每一组对应通道的filterfeature map卷积并相加得到E x F的一个通道的输出feature mapMfilters就可以得到一个M通道的feature mapsN张输入就可以得到NM通道的输出。卷积细节还有边缘补零padding, 步长stride等
这里写图片描述

这里写图片描述
BP算法需要与最优化optimize算法结合使用才能根据error对网络中的parameters进行update,目前效果比较好的最优化算法有Adagrad [6], AdagradDA [6] , Adadelta [7]Adam [8]


[1]: Krizhevsky A, Sutskever I, Hinton G E. Imagenet classification with deep convolutional neural networks[C]. Advances in neural information processing systems. 2012: 1097-1105.
[2]: Szegedy C, Liu W, Jia Y, et al. Going deeper with convolutions[C]. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2015: 1-9.
[3]: Simonyan K, Zisserman A. Very deep convolutional networks for large-scale image recognition[J]. arXiv preprint arXiv:1409.1556, 2014.
[4]: He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016: 770-778.
[5]: Sze V, Chen Y H, Yang T J, et al. Efficient processing of deep neural networks: A tutorial and survey[J]. arXiv preprint arXiv:1703.09039, 2017.
[6]: Duchi J, Hazan E, Singer Y. Adaptive subgradient methods for online learning and stochastic optimization[J]. Journal of Machine Learning Research, 2011, 12(Jul): 2121-2159.
[7]: Zeiler M D. ADADELTA: an adaptive learning rate method[J]. arXiv preprint arXiv:1212.5701, 2012.
[8]: Kingma D, Ba J. Adam: A method for stochastic optimization[J]. arXiv preprint arXiv:1412.6980, 2014.

2019-08-09 11:10:29 zaishuiyifangxym 阅读数 925
  • 深度学习基础与TensorFlow实践教程

    本课程主要介绍了深度学习的基础原理和TensorFlow系统基本使用方法。TensorFlow是目前机器学习、深度学习领域优秀的计算系统之一,本课程将结合实例介绍使用TensorFlow开发机器学习应用的详细方法和步骤,着重讲解了用于图像识别的卷积神经网络和用于自然语言处理的循环神经网络的理论知识及其TensorFlow实现方法,并结合实际场景和例子描述了深度学习技术的应用范围与效果。 所有案例均来自讲师团队工作中的亲身实践,所选案例均是深度学习的经典应用,非常具有代表性。

    21447 人正在学习 去看看 AI100讲师

在这里插入图片描述

注:转载请标明原文出处链接:https://xiongyiming.blog.csdn.net/article/details/98944012


1 什么是深度学习?

深度学习(DL, Deep Learning)是机器学习(ML, Machine Learning)领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标——人工智能(AI, Artificial Intelligence)。
深度学习是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字,图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。 深度学习是一个复杂的机器学习算法,在语音和图像识别方面取得的效果,远远超过先前相关技术。
深度学习在搜索技术,数据挖掘,机器学习,机器翻译,自然语言处理,多媒体学习,语音,推荐和个性化技术,以及其他相关领域都取得了很多成果。深度学习使机器模仿视听和思考等人类的活动,解决了很多复杂的模式识别难题,使得人工智能相关技术取得了很大进步。
(以上均来自百度百科)

下面了解一下人工智能、机器学习和深度学习之间的关系。下图是三者之间的关系,可以看出三者之间是包含和被包含的关系。

在这里插入图片描述



2 深度学习应用

2.1 机器学习的一般方法

机器学习按照方法主要可以分为两大类:监督学习和无监督学习。其中监督学习主要由分类和回归等问题组成,无监督学习主要由聚类和关联分析等问题组成。深度学习则属于监督学习当中的一种。下图为监督学习的一般方法。
在这里插入图片描述

2.2 深度学习的一般方法

随着深度学习的爆发,最新的深度学习算法已经远远超越了传统的机器学 习算法对于数据的预测和分类精度。深度学习不需要我们自己去提取特征,而是自 动地对数据进行筛选,自动地提取数据高维特征。下图为深度学习的一般方法,与传统机器学习中的监督学习一般方法(如上图)相比,少了特征工程,节约了工程师们大量工作时间。

在这里插入图片描述
神经网络应用的突破领域之一是控制论,神经网络有着一套完美的反馈机制,给控制论增添了不少色彩。而深度学习的出现就 如寒武纪生命大爆发一样,前几年我们或许听到更多的是大数据处理、数据挖掘, 而如今在科技创新的生态中,几乎每个人都在谈论深度学习、人工智能。下面简单 来介绍关于深度学习的应用。

(1) 图像处理

在这里插入图片描述

(2) 自动驾驶

在这里插入图片描述

(3) 机器人
波士顿动力机器人

在这里插入图片描述


在这里插入图片描述


(4) 医疗健康诊断

在这里插入图片描述


在这里插入图片描述
深度学习技术己经开始渗透到每一个领域当中,使得机器学习能够实现更多的应用场景,并且极大地拓展了人工智能的领域范畴。从无人驾驶汽车、无人驾驶飞机,到生物医学的预防性诊断、病理预测,甚至是更加贴近年轻一代的电影推荐、购物指南,几乎所有领域都可以使用深度学习。



3 GPU的迅速发展

GPU (Graphics Processing Unit, 图形处理器) 作为硬件加速器之一,通过大量图形处理单元与 CPU 协同工作,对深度学习、数据分析,以及大量计算的工程应用进行加速 。 从 2007 年 NVIDIA 公司发布了第一个支持 CUDA 的 GPU 后, GPU 的应用范围不断拓展,从政府实验室、大学、企业的大型数据中心,到现今非常火热的人工智能汽车、无人驾驶飞机和机器人等嵌入式平台, GPU 都发挥着巨大的作用。
CUDA (Compute Unified Device Architecture, 统一计算设备架构)。随着显卡的发展, GPU 越来越强大, GPU 开始主要为显示图像做优化,在计算上已经超越了通用的 CPU 。 如此强大的芯片如果只是作为显卡就太浪费了,因此 NVIDIA 推出 CUDA 这一通用并行计算架构,该架构使 GPU 能够解决复杂的计算问题 。

3.1 GPU与显卡的区别

GPU只是显卡上的一个核心处理芯片,是显卡的心脏,不能单独作为外接扩展卡使用,GPU因并行计算任务较重,所以功耗较大,只能焊接在显卡的电路板上使用。显卡上都有GPU,它是区分显性能的最主要元件,显卡也叫显示适配器,分为独立显卡和主板上集成显卡,独立显卡主要由GPU、显存和接口电路构成,集成显卡没有独立显存而是使用主板上的内存。
GPU是图形处理器,一般GPU就是焊接在显卡上的,大部分情况下,我们所说GPU就等于指显卡,但是实际情况是GPU是显示卡的“心脏”,是显卡的一个核心零部件,核心组成部分。它们是“寄生与被寄生”关系。GPU本身并不能单独工作,只有配合上附属电路和接口,才能工作。这时候,它就变成了显卡
参考链接: https://baijiahao.baidu.com/s?id=1607965696317204020&wfr=spider&for=pc

3.2 GPU 与 CPU 区别

比较 GPU 和 CPU ,就是比较它们两者如何处理任务。如下图图 1-9 所示, CPU 使用几个核心处理单元去优化串行顺序任务,而 GPU 的大规模并行架构拥有数以千计的更小、更高效的处理单元,用于处理多个并行小任务。
CPU 拥有复杂的系统指令,能够进行复杂的任务操作和调度,两者是互补关系,而不能相互代替。
在这里插入图片描述

GPU 是大规模并行架构,处理并行任务毫无疑问是非常快的,深度学习需要高
效的矩阵操作和大量的卷积操作, GPU 的并行架构再适合不过。简单来说,确实如此,但是为什么 GPU 进行矩阵操作和卷积操作会比 CPU 要快呢?真正原因是 GPU具有如下特性
(1) 高带宽
(2) 高速的缓存性能
(3) 并行单元多

在执行多任务时, CPU 需要等待带宽,而 GPU 能够优化带宽。举个简单的例子,我们可以把 CPU 看作跑车, GPU 是大卡车,如下图图 1-10 所示任务就是要把一堆货物从北京搬运到广州。 CPU(跑车〉可以快速地把数据(货物〉从内存读入 RAM 中,然而 GPU (大卡车〉装货的速度就好慢了。不过后面才是重点, CPU (跑车)把这堆数据(货物)从北京搬运到广州|需要来回操作很多次,也就是往返京广线很多次,而 GPU (大卡车)只需要一 次就可以完成搬运(一次可以装载大量数据进入内存)。换言之, CPU 擅长操作小的内存块,而 GPU 则擅长操作大的内存块 。 CPU 集群大概可以达到 50GB/s 的带宽总量,而等量的 GPU 集群可以达到 750GB/s 的带宽量。

在这里插入图片描述

如果让一辆大卡车去装载很多堆货物,就要等待很长的时间了,因为要等待大卡车从北京运到广州,然后再回来装货物。设想一下,我们现在拥有了跑车车队和卡车车队(线程并行〉,运载一堆货物(非常大块的内存数据需要读入缓存,如大型矩阵)。我们会等待第一辆卡车,但是后面就不需要等待的时间了,因为在广州会有一队伍的大卡车正在排队输送货物(数据),这时处理器就可以直接从缓存中读取数据了。在线性并行的情况下, GPU 可以提供高带宽,从而隐藏延迟时间。这也就是GPU 比 CPU 更适合处理深度学习的原因。


3.3 GPU种类

特别是最近几年,随着 GPU处理能力的飞速进步 ,在 2012 年需要 l 个月才能完成的深度学习训练,在 2015 年只需几天即可完成 。 在这样的背景下,深度学习的发展恰逢其时,将会引发进一步的革新和发展。

对于深度学习的加速器 GPU,现在市面上主要的品牌有 AMD 、 NVIDIA 、Intel 的 Xeon Phi,如下图所示。
在这里插入图片描述
NVIDIA公司的GUP使用最为广泛,NVIDIA 的计算加速标准库 cuDNN 使得工程师在 CUDA 平台中构建深度学习变得非常容易,而且在同 一张显卡的前提下比没有使用 cnDNN 的速度提升 5 倍之多。有良好的生态。下图是NVIDIA公司的三种类型的GPU。
在这里插入图片描述
其中,
(1) GeForce 系列面向大众,常见的有:GeForce GTX 1080, GeForce GTX 1080 Ti, GeForce GTX 2080 Ti
(2) Tesla 系列面向科学计算
(3) Tegra 系列面向嵌入式的 GPU 主板



参考资料

[1] 图解深度学习
[2] 深度学习原理与实践
[3] TensorFlow实战Google深度学习框架(第2版)

2019-01-09 10:08:20 qq_15698613 阅读数 186
  • 深度学习基础与TensorFlow实践教程

    本课程主要介绍了深度学习的基础原理和TensorFlow系统基本使用方法。TensorFlow是目前机器学习、深度学习领域优秀的计算系统之一,本课程将结合实例介绍使用TensorFlow开发机器学习应用的详细方法和步骤,着重讲解了用于图像识别的卷积神经网络和用于自然语言处理的循环神经网络的理论知识及其TensorFlow实现方法,并结合实际场景和例子描述了深度学习技术的应用范围与效果。 所有案例均来自讲师团队工作中的亲身实践,所选案例均是深度学习的经典应用,非常具有代表性。

    21447 人正在学习 去看看 AI100讲师

目录

机器学习的应用:

深度学习?

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

深度学习能用来干什么?

深度学习有哪些代表性的学术机构和公司?

深度学习的应用?


针对经验E(experience)和一系列的任务T(tasks)和一定表现的衡量P(performance),如果随着经验E的积累,针对定义好的任务T可以提高表现P,就说明计算机具有学习能力。

机器学习的应用:

语音识别

自动驾驶

语言翻译

计算机视觉

推荐系统

无人机

垃圾邮件识别

深度学习?

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

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

由Geoffery Hinton等人在2006年和2007年在《SCIENCE》上发表的文章。

深度学习能用来干什么?

应用于图像处理和计算机视觉、自然语言处理以及语音识别领域。

自2006年至今,有了突破性精湛,以ImageNet为数据库的竞赛为例,深度学习取得了前所未有的精度!

深度学习有哪些代表性的学术机构和公司?

多伦多大学、纽约大学、斯坦福

谷歌,脸书,百度硅谷

深度学习的应用?

类比机器学习的,但是深度学习加深了理解,比如对图片能够分析图片生成描述

深度学习

阅读数 502

没有更多推荐了,返回首页