贾伟中科院合肥 发表于 2015-11-6 10:09:58

谷歌第二代深度学习系统TensorFlow首次解密

PPT下载:


谷歌第二代深度学习系统TensorFlow首次解密(70PDF下载) 2015-11-05 新智元 新智元 新智元 微信号 AI_era 功能介绍 智能+中国的资讯社交平台,致力于推动中国从互联网+迈向智能+新纪元。重点关注人工智能、机器人、大数据、虚拟现实、量子计算、智能医疗等前沿领域发展,关注人机融合、人工智能和机器人革命对人类社会与文明进化的影响,领航中国新智能时代。


http://mmbiz.qpic.cn/mmbiz/UicQ7HgWiaUb2UYeWfria7bXthz8eNI0btzYcTV9mNGJR9JOYz88RRcTy4UMostR9iaZUrH6pmrmhoibDqEP8K2Fzfg/640?wx_fmt=jpeg&wxfrom=5
1新智元推荐1
PDF来自微博@王威廉

Google资深系统专家Jeff Dean在最近的湾区机器学习大会做了 Large-Scale Deep Learning for Inelligent Computer Systems 的演讲。

在大会上,Jeff Dean 解密了谷歌未曾在论文上发表过的第二代深度学习系统TensorFlow。

【Jeff Dean】在过去的几年间,我们已经建立了两代用于训练和部署神经网络的计算机系统,并且将这些系统应用于解决很多在传统上来说对计算机而言很难的问题。我们对许多这些领域的最新技术做了很大的改进,我们的软件系统和算法已经被Google的很多小组采用,运用在语音识别、图像识别、视觉检测任务、语言建模、语言翻译和许多其它任务的模型训练上。在这次讲演中,我会介绍我们从第一代分布式训练系统中得到的经验教训,并讨论在设计第二代系统时的一些选择。然后我会讨论一下我们将通过哪些方式把它运用到Google的大量产品上,在这方面通常我们会与其他小组有密切的合作。

第一代系统DistBeliet在可扩缩性上表现很好,但在用于研究时灵活性达不到预期。对问题空间的更深理解让我们可以做出一些大幅度的简化。

这也是第二代系统的研发动机,用 TensorFlow 表达高层次的机器学习计算。它是C++语言编写的核心,冗余少。而不同的前端,现有Python和C++前端,添加其他语言的前端也不是难题。

在2015年10月5日,谷歌为TensorFlow提交了注册商标申请(登记编号86778464),这样描述它:

1.用以编写程序的计算机软件;

2.计算机软件开发工具;

3.可应用于人工智能、深度学习、高性能计算、分布式计算、虚拟化和机器学习这些领域;

4.软件库可应用于通用目的的计算、数据收集的操作、数据变换、输入输出、通信、图像显示、人工智能等领域的建模和测试;

5.软件可用作应用于人工智能等领域的应用程序接口(API)。


以下是关于TensorFlow的图文介绍
http://mmbiz.qpic.cn/mmbiz/UicQ7HgWiaUb2UYeWfria7bXthz8eNI0btzo5kl9TOJkoicZjiaeeJ2BVvmX1maiaX3ibNDkM8ia5Iibu4N9xia6dZhia34Pw/640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

http://mmbiz.qpic.cn/mmbiz/UicQ7HgWiaUb2UYeWfria7bXthz8eNI0btzEY4myEtlgdmpUT7RicvXSZ2KZoOicuC5ia2jicq6ft4ibGY2W7t53x9ibCoA/640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

Google 在 Deep Learning 上已经有很多使用,例如Android、Apps、Gmail等。前段时间Google刚出了一个产品,邮箱通过人工智能技术,自动回复信息。

http://mmbiz.qpic.cn/mmbiz/UicQ7HgWiaUb2UYeWfria7bXthz8eNI0btzFbxwXfmc3dnBF9iatwicDT5vSCNlicgfF3cY6XC9UibwYIfz0NLqTznUiaA/640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

这篇演讲从两个方面谈:
1、对第一代深度学习系统的总结
2、介绍第二代深度学习系统 TensorFlow。

http://mmbiz.qpic.cn/mmbiz/UicQ7HgWiaUb2UYeWfria7bXthz8eNI0btzF9uwHwhqnk1jAic1aBvicea8MBZIkfLsa14sMGmBhosnYG4pZSfkDicicg/640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

TensorFlow:第二代深度学习系统

http://mmbiz.qpic.cn/mmbiz/UicQ7HgWiaUb2UYeWfria7bXthz8eNI0btz6OJiahSDfneDuXTNkibe0icL2MkicldfmBnu2NgEfeq4hrEGQumm9RricVQ/640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

研发动机:
第一代系统DistBeliet在可扩缩性上表现很好,但在用于研究时灵活性达不到预期。对问题空间的更深理解让我们可以做出一些大幅度的简化。

http://mmbiz.qpic.cn/mmbiz/UicQ7HgWiaUb2UYeWfria7bXthz8eNI0btzgkfo0mUt2KerliapjFcxBr27NGEYLQMmaX2DxbTTS52bfYm1PQhb4aw/640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

TensorFlow:表达高层次的机器学习计算
C++语言编写的核心,冗余少。
不同的前端,现有Python和C++前端,添加其他语言的前端也不是难题。

http://mmbiz.qpic.cn/mmbiz/UicQ7HgWiaUb2UYeWfria7bXthz8eNI0btzbTKib2C8SvY18CM7qHGe8IVEzvbP3CSMsHRtOZAS1qsYODloibc21icpA/640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1
http://mmbiz.qpic.cn/mmbiz/UicQ7HgWiaUb2UYeWfria7bXthz8eNI0btz4MVu31R9ofxBzcNSz2sIicgqLlOXib5rm8DxhxSuibsgHm05GkqIPXKHQ/640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

TensorFlow代码举例(批量逻辑回归)

http://mmbiz.qpic.cn/mmbiz/UicQ7HgWiaUb2UYeWfria7bXthz8eNI0btzibXnu87bS1lvea7ibIM01ef5pPYIOTm5RhB4HVw61hBA2VUrrggpQLkQ/640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

计算可以用一张数据流图来理解。
我们输入数据、权重、误差以及标签,在不同节点进行不同的运算。

http://mmbiz.qpic.cn/mmbiz/UicQ7HgWiaUb2UYeWfria7bXthz8eNI0btz7DYeNBRUECHnLeXTrYiaws5lOQfDFolyMNOkxibVP6ZYxVofCN1HlvUg/640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

这是使用张量计算的示意图。

http://mmbiz.qpic.cn/mmbiz/UicQ7HgWiaUb2UYeWfria7bXthz8eNI0btzQfkCljTM4IlrG3m90VicN6ZWfNiczpaYOByiayibSPFmIcaoTmiaIyTus4Q/640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

这是使用状态计算的示意图。

http://mmbiz.qpic.cn/mmbiz/UicQ7HgWiaUb2UYeWfria7bXthz8eNI0btzyfYodPNZV0C5UtTEwZsmzTnJkqFakywpClhnDyFd4RuKfFMvIgicjpw/640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

这是使用分布式计算的示意图。

http://mmbiz.qpic.cn/mmbiz/UicQ7HgWiaUb2UYeWfria7bXthz8eNI0btzicbQ94bwf251dE5icYyxjHyYsXOgSwibeqoPGWmZZCgZ1XphtdFlxicMMw/640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

它能够在各个平台上自动运行模型:电话上,单个机器上(CPU或GPU),由成百上千的GPU卡组成的的分布式系统

http://mmbiz.qpic.cn/mmbiz/UicQ7HgWiaUb2UYeWfria7bXthz8eNI0btzv7Xeey0MHiaVJTV7LibGjKEwp3librztVnfaeKHk4AibWgVJpWumKS2ibbg/640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

TensorFlow名字的意义
Tensor(张量)意味着N维数组。1维时就是向量,2维时就是矩阵;通过图像可以代表更高维的数据流,比如,图像可以用三维张量(行,列,颜色)来表示。
Flow(流)意味着基于数据流图的计算。有许多运算(图中的节点)应用在数据流上。
张量从图象的一端流动到另一端,这就是“TensorFlow”。“边”代表张量(数据),节点代表运算处理。

http://mmbiz.qpic.cn/mmbiz/UicQ7HgWiaUb2UYeWfria7bXthz8eNI0btzG04pXkAshPoZib2p8aTSkTPh9ezbHaVc4YFcwXjGQ6OWicJR7YuS7Y9Q/640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

它的灵活性体现在它通用的计算基础设施上,包括:在内核之上有一组库支持深度学习;对其他机器学习算法也很有用;也有可能胜任高性能计算的任务;抽象出潜在的设备或计算性硬件

http://mmbiz.qpic.cn/mmbiz/UicQ7HgWiaUb2UYeWfria7bXthz8eNI0btzLZGOnCdSqbnGCzW7T3EWIfZCva5sH2NOvdoxJkYursttEibPckvDaXA/640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

它的可延展性体现在它的核心系统定义了大量的标准运算函数和内核函数(实现对特定设备的操作)以及它易于定义新的运算函数和/或内核函数。

http://mmbiz.qpic.cn/mmbiz/UicQ7HgWiaUb2UYeWfria7bXthz8eNI0btzBQge24XckSicia110ge6KYB0O9tkabMIzP4yEr4N0JAvGNTAmxjmH9gQ/640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

TensorFlow中的深度学习:
1. 典型的神经网络的每一“层”会对应到一个或多个张量运算。
2. 专用于深度学习运算的库,包括了:许多高层次的运算,如2D 和3D卷积,池化(Pooling), Softmax回归等等;标准损失函数,如交叉熵(Corss Entropy),L1,L2等等;多种优化方法,如梯度下降(Gradient Descent), AdaGrad, L-BFGS等等。
3. 自动微分。
4. 易于使用(甚至混合使用)许多种不同的模型,包括LSTMs,卷积模型,注意力模型, 强化学习,Embedding模型, 类图灵机模型等等。

http://mmbiz.qpic.cn/mmbiz/UicQ7HgWiaUb2UYeWfria7bXthz8eNI0btz4tq9WpXBesLKQZzZtFUQASnsMeDBibbW003En9vhjt95kvjiaknwUalw/640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

没有明确的参数服务器子系统时:
1、参数是图像中的节点。
2、数据并行训练画出来的示意图不过是更复杂一点而已。

http://mmbiz.qpic.cn/mmbiz/UicQ7HgWiaUb2UYeWfria7bXthz8eNI0btzIiaib4KibBN8NV2XVAbFKTWiaPvYCV8RoClotP9pqoWt6OXUpnw0oTN1IA/640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

这是同步变量的情况。

Jeff Dean 还对第一代谷歌深度学习系统的应用以及出现的问题进行了总结,也阐述了第二代深度学习系统之所以要出现的重要原因。

如需了解更多,请下载PDF全文阅读。



页: [1]
查看完整版本: 谷歌第二代深度学习系统TensorFlow首次解密