单个的云TPU和完整的TPU舱均支持谷歌开源的TensorFlow机器学习系统。
第一代TPU于两年前开始在谷歌公司内部部署,并被用在谷歌的多款产品,例如谷歌搜索、基于机器学习的谷歌翻译、谷歌语音识别,以及谷歌照片之中。
谷歌大脑高级研究员Jeff Deam本周表示,谷歌仍在使用CPU和GPU去训练机器学习模型。不过他预计,未来谷歌将越来越多地使用TPU。
与此同时,谷歌还发布了“TensorFlow研究云”。这是由1000颗云TPU组成的簇,在满足某些条件的情况下谷歌将免费提供给研究者使用。如果希望使用,那么研究者必须同意公开发表研究成果,或许还需要开源研究中的相关代码。
谷歌推出TensorFlow研究云的目的是加速机器学习的研究进展,并计划将其分享给哈佛医学院等学术机构。
对参与非公开研究的人士,谷歌计划启动云TPU Alpha项目。
TensorFlow Lite
在I/O上谈到Android的未来时,谷歌工程副总裁宣布,他们将推出一个专门为移动设备而优化的TensorFlow版本,称为TensorFlow lite。
用这个新框架,开发者可以创造更简洁的深度学习模型,让它们运行在Android智能手机上。不过,深度学习的训练过程还是需要在云端完成。
谷歌打算今年晚些时候推出TensorFlow lite API并开源。
Facebook今年F8开发者大会发布的Caffe2,和去年推出的Caffe2Go,也是这个思路。
让AI设计AI
谷歌想让AI变得更加“平易近人”,简化神经网络模型的建造过程是个好办法。
CEO劈柴哥在官方博客上说,现在,设计神经网络非常耗时,对专业能力要求又高,只有一小撮科学家和工程师能做。为此,谷歌创造了一种新方法:AutoML,让神经网络去设计神经网络。
谷歌希望能借AutoML来促进深度学习开发者规模的扩张,让设计神经网络的人,从供不应求的PhD,变成成千上万的普通工程师。
手动设计神经网络的难点在于,所有可能的模型都有着巨大的搜索空间,一个典型的10层神经网络,变化形式高达约1010种。
△ 谷歌耗费数年探索出的GoogleNet网络架构
在AutoML中,一个主控的神经网络可以提出一个“子”模型架构,并用特定的任务来训练这个子模型,评估它的性能,然后,主控收到反馈,并根据反馈来改进下一个提出的子模型。
这个过程,简单来说就是:生成新架构-测试-提供反馈供主控网络学习。在重复上千次后,主控网络学会了哪些架构能够在已知验证集上得到更高的准确率。
谷歌用了两个经常作为基准的数据集来测试他们的模型,一个是图像识别领域的CIFAR-10,另一个是语言处理领域的Penn Treebank。在两个数据集上,自动设计的神经网络准确率都能与顶尖人类专家设计的网络媲美。
△ 两个用于在Penn Treebank上预测下一个词的神经网络:左图出自人类专家之手,右图由算法自动设计
要深入了解自动搭建神经网络的算法,可以看看谷歌今年的两篇会议论文:
进化算法:
Large-Scale Evolution of Image Classifiers
https://arxiv.org/abs/1703.01041
Esteban
Real, Sherry Moore, Andrew Selle, Saurabh Saxena, Yutaka Leon Suematsu,
Quoc Le, Alex Kurakin. International Conference>2017.
强化算法:
Neural Architecture Search with Reinforcement Learning