Google资深系统专家Jeff Dean在最近的湾区机器学习大会做了 Large-Scale Deep Learning for Inelligent Computer Systems 的演讲。
在大会上,Jeff Dean 解密了谷歌未曾在论文上发表过的第二代深度学习系统TensorFlow。
演讲slides:http://stanford.edu/~rezab/nips2014workshop/slides/jeff.pdf
仔细研读了TensorFlow的开源代码文档和slides,总体感觉是:又一个单机深度学习工具包,并无明显的理论和系统创新,开源版本不支持分布式,所以对大规模深度学习没有用处。
1. 编程模式。采用了一种称作“computation graph”的编程模式,这种模式早在2007年已被微软提出(Dryad, [1]), 后来的Spark采用的也是这种数据流编程模式。这种模式已经在大量实验(如,[2,3])中证明并不非常适合于高效机器学习训练。
2. 数据表示。称作为”Tensor“,统一来表示向量、矩阵、三维及以上张量。这一点也并无新意。大部分机器学习操作的对象(数据或者参数)都是以向量、矩 阵的形式存在的,少部分是张量,这一点做机器学习的人人皆知。Google将它们统一表征成tensor没有问题,但是这里没有任何概念或理论创新。而且 类似的抽象在之前很多系统与工具中已经实现。
3. 开源版本不支持分布式。单机的深度学习工具已经有很多了,Google这次又增加一个。市面上真正缺乏的是能够支持大规模深度学习的分布式框架或系统,而TensorFlow并没有提供。
当然也有值得学习和借鉴的地方: 1)支持多种编程语言; 2)提供了很多深度学习模型库。
[1] Dryad: Distributed Data-Parallel Programs from Sequential Building Blocks
[2] A Comparison of Lasso-type Algorithms on Distributed Parallel Machine Learning Platforms
[3] Petuum: A New Platform for Distributed Machine Learning on Big Data