Google展示AI新实力:让神经网络设计神经网络

单个的云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