文章来源:matroid 作者:Jeff Dean 编译:凌媛博士
谷歌大脑团队简介
谷歌大脑团队(GoogleBrain team)的负责人Jeff Dean对谷歌大脑团队在利用tensorflow实现大规模机器学习的相关工作进行了概述。谷歌大脑团队的长期任务(Mission)是使机器智能化,改善人类的生活。从2012年至今,大脑团队在顶级的机器学习会议上发表了130多篇研究论文。
其中一些研究亮点包括:
2012年,提出了一个深度网络的分布并行训练的框架DistBelief,并在该框架中发现了一些有效的分布优化策略(参加论文:Large ScaleDistributed Deep Networks)。提出了一种非监督的猫脸识别模型(参见论文:BuildingHigh-level Features Using Large Scale Unsupervised Learning)。
2013年,开源了词向量(word2vec)模型。(参见论文:Distributed Representationsof Words and Phrases and their Compositionality)
2014年,提出了序列到序列的神经网络学习(sequence to sequence learning)(参见论文:Sequence toSequence Learning with Neural Networks),也可用于生成图片标题(参见论文:Show andTell: A Neural Image Caption Generator)。
2015年,开源了Inception,一种新的图像分类卷积神经网络模型(参见链接:https://github.com/tensorflow/models/blob/master/slim/README.md)。推出了一款图像识别工具Deep Dream(参见链接:https://deepdreamgenerator.com/generator-style)。开源了TensorFlow(参加链接:https://www.tensorflow.org/)。
2016年,提出了神经网络机器翻译系统(neural translation)(参见论文:Google’s Neural Machine Translation System: Bridging the Gap betweenHuman and Machine Translation)。医学图像的研究(Development and Validation of a Deep Learning Algorithm forDetection of Diabetic Retinopathy in Retinal Fundus Photographs)。神经架构搜索(ArchitectureSearch)
主要的研究方向包括:
机器学习的算法和技术
机器学习系统
自然语言理解
感知(Perception)
医疗卫生(healthcare)
机器人技术
音乐和艺术创作
更多研究细节,可以参见谷歌大脑团队对2016年的回顾博文 :https://research.googleblog.com/2017/01/the-google-brain-team-looking-back-on.html
从八九十年代到现在,随着数据和模型规模的增长,神经网络以及其他的一些机器学习方法对计算的要求越来越高。
谷歌内部对深度学习的需求增长迅速,覆盖了各个产品领域: Android, Apps, drug discovery, Gmail, Image understanding,Maps, Natural language understanding, Photos, Robotics research, Speech,Translation, YouTube等等。
TensorFlow平台功能及发展简介
2015年11月9日,Google发布人工智能系统TensorFlow并宣布开源(官方网站:http://tensorflow.org/,Github主页:https://github.com/tensorflow/tensorflow)。TensorFlow适用于机器学习和深度神经网络方面的研究。
TensorFlow是一个编程系统,用数据流图(dataflow graph)来表示计算任务(Computation)。图中的节点(node)被称之为ops(operation的缩写), 图中的线(edges)用来表示在节点间相互联系的多维数据数组(N-dimensional arrays),即张量(tensor)。
以下给出一段TensorFlow的代码,创建一个图来计算神经网络的推理(inference):
如下图所示,偏差(Biases)是一个变量,一些ops节点用来计算梯度(gradients),进而更新偏差变量。
Tensorflow可以在图中加入发送/接收(Send/Recv)ops节点来将tensor分发到诸如CPU或GPU之类的设备上,接收节点(Recv ops)从发送节点(Sendops)上获取数据。
同时,TensorFlow还提供了一些机制来支持大规模的分布式系统的实现。计算可以分布到成百的机器和成千的GPU上运行。
更多关于TensorFlow在分布式系统上实现大规模机器学习的研究可以参考以下两篇论文:
TensorFlow: Large-Scale Machine Learning on HeterogeneousDistributed Systems (http://download.tensorflow.org/paper/whitepaper2015.pdf)
TensorFlow: A System for Large-Scale Machine Learning (https://www.usenix.org/system/files/conference/osdi16/osdi16-abadi.pdf)
谷歌在多领域的应用贡献
此部分应用实例覆盖了谷歌在医疗卫生、语言理解模型的规模化、自动化机器学习等方面的研究。
1. 医疗卫生(healthcare)
计算机领域的发展给医疗卫生领域带来了深远的影响。谷歌大脑团队的两篇代表作如下:
(1)用深度学习诊断糖尿病视网膜病变
在医学影像方面,VarunGulshan等人在《美国医学学会杂志》(Journalof the American Medical Association, JAMA)上发表了一篇论文《Development and Validation of a Deep Learning Algorithm forDetection of Diabetic Retinopathy in Retinal Fundus Photographs》,并证明了用于图像诊断视网膜糖尿病视网膜病变(diabetic retinopathy)的机器学习系统可以与职业认证的眼科医生达到同等的程度 (F-score 0.95 对比 0.91)。具体论文细节参见:https://research.googleblog.com/2016/11/deep-learning-for-detection-of-diabetic.html
(2)在千兆像素病理图像上检测癌症转移
病理学家在查看病人切片时,需要处理非常大规模的图像数据(大于1000 多个百万像素的图片)。YunLiu等人的论文《DetectingCancer Metastases on Gigapixel Pathology Images》将深度学习应用到数字病理学(digitalpathology),用来辅助病理学家(pathologist)对癌症的检测。论文提出的算法可用来确定是扩散到淋巴结的乳腺癌还是扩展到临近乳房的乳腺癌。
在只使用270个训练样本的基础上,论文取得了比病理学家更好的结果。算法的 FROC 得分达到了 89%,超过了病理学家无时间限制进行诊断的得分(73%)。
具体论文细节参见:https://arxiv.org/abs/1703.02442
博客链接:https://research.googleblog.com/2017/03/assisting-pathologists-in-detecting.html
2. 语言理解模型的规模化(scalinglanguage understanding models)
(1) 序列到序列模型(Sequence-to-sequence model)
Sutskever & Vinyals & Le 在NIPS 2014发表的序列到序列的神经网络学习(Sequence toSequence Learning with Neural Networks)的论文,论证了机器翻译技术的可行性。
具体论文细节参见:https://papers.nips.cc/paper/5346-sequence-to-sequence-learning-with-neural-networks.pdf。
YonghuiWu 等人在论文Google'sNeural Machine Translation System: Bridging the Gap between Human and MachineTranslation中详细介绍了谷歌神经网络机器翻译模型。谷歌的神经网络机器翻译模型的参数分布式的部署到了不同的服务器,实现的数据的并行式处理。
神经网络翻译使谷歌的翻译系统有了质的提升,使得全世界的沟通交流更加通畅。
具体论文细节参见:https://arxiv.org/abs/1609.08144
博文链接:https://research.googleblog.com/2016/09/a-neural-network-for-machine.html
3. 自动化机器学习(Automated machinelearning)
自动化机器机器学习又可以称为学习如何学习(learningto learn)。
目前我们的解决方案是:
方案=机器学习专家+数据+计算(Solution = ML expertise + data + computation)
值得思考的是,我们能否转化为:
方案=数据+100X倍的计算(Solution = data + 100X computation)
我们进行了不同的探索,在以下两个方面取得了初步的成果:
(1) 基于增强学习的架构搜索(RL-based architecture search)
BarretZoph和QuocV. Le 即将在ICLR2017上发表的基于增强学习的神经架构搜索(Neural Architecture Search with Reinforcement Learning)一文提出了基于增强学习的模型生成模型(model-generating model),包括了三个步骤:首先生成10个模型,然后对模型进行几个小时的训练,最后将生成模型的损失(loss)作为增强学习的信号(signal)。该方法在CIFAR-10 图像识别任务(CIFAR-10 Image Recognition Task)和Penn Tree Bank 语言建模任务(Penn Tree Bank Language Modeling Task)上都取得了不错的结果。
更多关于此论文的细节请参见原文:https://arxiv.org/abs/1611.01578
(1) 架构的演进(architecture evolution)
Esteban Real 等人在大规模图像分类器的演进(Large-Scale Evolution of Image Classifiers)一文中提出了通过演进算法演变模型的思想。模型包括DNA,模型(model),训练模型(trained model),和合格度(fitness)四个部分。演进步骤如图所示:
更多关于此论文的细节请参见原文:https://arxiv.org/abs/1703.01041
谷歌将在未来进行大型模型动态学习
对未来的研究,主要考虑以下几个点的结合:大型模型与稀疏的激活(Large model, butsparsely activated),单一模型用于多重任务(Single model to solve many tasks),以及通过大型模型动态学习和发展路径。
我们需要更强大的计算能力,深度学习正在改变我们设计电脑的方式。谷歌推出了定制的谷歌设计芯片用于神经网络的计算。可以用于神经机器翻译,AlphaGo匹配等等。
更多细节请参见4月5号在计算机历史博物馆的演讲,链接:http://sites.google.com/view/naeregionalsymposium
未来,我们需要更多的计算。
结语
深度神经网络在语音、视觉、语言、搜索、机器人、医疗保健等研究领域都取得了重大进展。如果你正在考虑如何利用深度神经网络解决你的问题,那就不用在犹豫,赶紧用起来吧。
关于谷歌大脑团队的更多信息可以访问链接:g.co/brain
本文资源链接:https://www.matroid.com/scaledml/2017/jeff.pdf
联系客服