5 月 23 日周三晚,TensorFlow 中国研发负责人、Google 搜索架构技术总监李双峰受邀参与北京大学“人工智能前沿与产业趋势”系列座谈会,分享了深度学习的发展与应用、TensorFlow 从研究到实践的相关内容。
感谢作为北京大学“人工智能前沿与产业趋势”系列座谈会合作媒体的量子位旗下公众号“吃瓜社”俞晶翔、张康对活动的记录,演讲嘉宾李双峰也参与本文的联合撰写和修改。
主讲嘉宾:李双峰,TensorFlow 中国研发负责人、Google 搜索架构技术总监。Google 中国最早期的工程师之一,目前在 Google 领导了涉及人工智能、搜索架构和移动应用领域的多个项目。他负责 TensorFlow 中国研发团队,并总体推动 TensorFlow 在中国的发展。
用深度学习解决最具挑战性的问题
深度学习带来机器学习的革命。我们看到“深度学习”这个词在搜索中的热度近年来快速提升。
在 arXiv 上的机器学习论文数量急剧增长,增长速度居然赶上了摩尔定律。
我们先看一个图片分类的例子:给一张图片,识别这张图是一只猫还是一条狗。它是多层的神经网络结构,里面有很多的参数,经过很多的训练之后,能识别出这张图是一只猫。
深度学习不仅仅能够解决图像识别的问题,它拥有非常强大的学习能力。把深度神经网络比喻成一个函数,这个函数非常强大,可以处理多种输入和输出,而深度学习算法可以自动学习这个函数。
用相似的简单方法,解决多个问题,这是产业界特别喜欢的东西,因为他们大大减少了工程方面的复杂度。
深度学习并不是全新的东西,但为什么在过去的几年当中带来了极大的突破?
我们看到两条线:一条是基于深度神经网络的解决方案,一条是基于其他机器学习方法。在八九十年代之前,神经网络就已经出现了,不过那个时候受限于计算能力,模型的规模比较小,所以它的表现不如一些经过优化过的其他机器学习方法,这样就很难解决真实的大规模问题。
随着计算能力的增加,可以看到深度学习解决问题的精度,已经超过了其他机器学习方法。
以图片识别问题为例,在 2011 年的时候,它的错误率是 26%,而人只有 5%,所以这个时候离实用有非常大的距离。到 2016 年为止,它的错误率已经减少到了 3% 左右,深度学习在该领域呈现出非常惊人的能力,这就是为什么深度学习在图像识别领域吸引了产业界的大量关注。
我们看看深度学习如何帮助解决工程界的重大挑战。
2008 年美国工程院发布了 21 世纪的一系列重大挑战,其中包括:便宜的太阳能、药物工程优化、虚拟现实、和个性化学习等等。
我们也许还可以加上两个:跨语言的自由交流,更通用的人工智能系统。回到 2008 年,机器翻译的提升遇到了瓶颈,而大家也觉得AI要战胜围棋高手,要需要很多年。
回头来看,随着深度学习的发展,很多领域都有一些重大突破,包括健康医疗、语言交流方面等方面。下面我们仔细看看深度学习如何推动解决这些重大挑战。
提高城市基础设施
交通是一个面临重大挑战的问题。Google 的母公司 Alphabet 旗下有一家公司叫 Waymo,专注于自动驾驶。他们已经做了大量的真实道路测试,以及模拟环境的测试。他们的车能够识别路上各种移动的对象,以及交通灯。
我们发现自动驾驶离真实应用越来越近,有了无人驾驶之后,城市基础设施会有一个巨大的突破。
跨语言的交流和信息流动
过去十年中,Google 在机器翻译领域的工作在业界领先,但是之前都是基于短语统计的方式 ,质量提升遇到了瓶颈。
过去两年,Google 推出了基于神经网络的机器翻译技术(GNMT),大大提高了翻译质量。在多个语言的质量评估上,平均质量提高 50% 到 80% 以上,这超过了过去十年的工作。在若干语言的翻译上,机器翻译已经接近人类水平。这是促进人类沟通和交流的一个重要突破。
更重要的是,Google 不仅把该技术的论文发表,而且开放了基于 TensorFlow 的源代码。开发者使用这些代码非常简单,一两百行代码就可以做一些类似于 GNMT 的基于神经网络的机器翻译系统。
这让一些小公司也有能力做出不错的机器翻译系统。比如欧洲某个公司,之前是传统翻译公司,但是拥有很多翻译数据,基于这些开源系统,很快就能做出很不错的结果。
基于神经网络的机器翻译还有一些非常有意思的特性,比如说,当我们把英文翻译成日文,然后再翻译回英文的时候,传统的方式可能在翻译回英文这个阶段会出现措辞与原文不太一样,但基于神经网络的翻译能保证部分还原性。
另外一个意义是在工程上。从工程的角度来说,希望用尽量简单的方案,去解决复杂问题;而不是为每一种语言对的翻译都设计不同的系统和模型。从这个角度来说,基于神经网络机器翻译能够带来明显优势。
举个例子,假设有很多训练的数据,他们是一对一对的,从英文到韩文有对应,我们适当地做了一些编码,也就是翻译之前把语言标注了。那么,同样一个模型在解决不同语言之间的翻译都会起作用,这样语言之间可以通过统一的简单方式来实现。
特别是对 Google 来说这很有价值,因为我们的目标是一百多种语言对之间相互翻译,这是一个非常复杂的问题,对工程人员来说非常麻烦。用同一个基于神经网络的模型去翻译不同的语言,使得在工程上工作量得到了大大简化。
另外:假设我们学习到英文到韩文翻译的同时,也学习英文到日文之间的翻译,那么基于神经网络的翻译模型,就能够自动学习到从日文到韩文之间的翻译,这也证明神经网络翻译具有更强的学习能力。
AI 与医疗
医疗是 Google AI 研究投入的一个重要方向,因为我们认为医疗领域是 AI 应用一个非常重要的场景,也对造福人类具有深远意义。
比如AI检测眼科疾病:左边是正常的视网膜照片,右边是糖尿病可能导致的视网膜病变照片,它可能会导致糖尿病患者失明。如果我们能够尽早发现这些病变,就可以使用较为廉价的药物进行治疗。
我们在一个权威的美国医学杂志上发表的研究表明:AI 识别这些有病变的视网膜照片的精度,水平超过了眼科医生的平均水平。
图像识别是一类问题,包括刚才提到的视网膜照片监测问题,还有 X 光拍片的识别。
更难的问题是能不能基于已知的个人医疗信息,对整个信息做预测,比如预测未来需要住几天院,需要吃什么药。这样诊断的是比较难的问题。Google 已经与斯坦福医学院等好几个学校的医学机构合作,开展了相关工作,初步取得不错的预测效果。
科学的发展
下一步看看科学的发展。
工具在人类历史的发展中扮演重要角色,比如区分石器时代和青铜时代的重要依据是人类使用的工具。今天科学研究会做很多实验,大家也制作了很多实验仪器。
不过,有没有一些工具,能够帮助加速科学发现的进程呢?
这是我们推出 TensorFlow 这样的开源机器学习平台的重要原因,希望它能够极大地促进深度学习发展,促进用深度学习技术解决科学上的一些重大发现。
TensorFlow 的目标是成为人人可用的机器学习平台,能够帮助机器学习的研究者、开发者,去表达自己的想法,去进行探索性研究,去建立自己的系统,去实现基于具体场景的AI应用和产品。有了通用的平台,才能更好的促进行业交流,推动行业创新。Google 内部大规模使用 TensorFlow 来做研究和产品,而业界可以基于 Google 的实践和经验。
大概在 2015 年底我们开源了 TensorFlow,在过去两年当中它的发展速度非常快,基本上现在一两个月就有新的版本发布。比如,我们增加了更多的平台能力、更多的工具,以及更简单的 API。
到今天为止,全球有超过 1100 万的 TensorFlow 下载量,这也说明了全球开发者的热情。
深度学习有不同的模型,如何更好地训练模型参数,需要不少机器学习的经验,这对于普通公司而言,仍然有不小的挑战。AutoML 是一个很重要的话题,它的基本想法是能够更加自动化地做机器学习。Google 有一个相关工作,叫做 Learning to Learn,目前取得不错的进展。
今天,我们现在做机器学习的解决方案,需要机器学习方面的专家,需要数据,也需要很多的计算。
解决方案=机器学习专家 + 数据 + 计算
机器学习专家需要很多时间来培养,我们开始思考,能不能让更多的计算能力来解决人才的缺口问题?那么:
解决方案=数据 + 100倍的计算
我们使用强化学习的方式来搜索神经网络结构:以一定概率产生一些模型,训练若干小时,然后对生成的几个模型在测试集上做评估,并利用模型的损失作为强化学习的信号,促进下一次迭代时选择更好的模型。
这张图是通过神经网络搜索找到的模型结构,模型结构看起来很复杂,让人很难以理解,它并没有人类设计的模型那么有层次化,并不直观。不过实际测试的效果却非常好,差不多比目前人类所找到的模型都要好。
机器学习专家在过去的好多年中做了很多研究,手工设计了不同的精巧的模型,这些模型会平衡运算的复杂度以及模型精度。
如果我们追求比较高的精度,那么运算量更大,比如 ResNet;如果模型比较简单,比如 Google 的 MobileNet,精度会低一点,但运算量小,很适合用在移动设备上;中间也有一系列计算和精度适中的模型。在这些年的发展过程中,顶尖的机器学习专家一直在基于前人成果不停地做结构优化。
而通过 AutoML 所得到的新模型,比人类的多年研究成果都要好。在同样精度的情况下可以做到计算量更小一点,而在同样的计算量下精度更好。Google 通过 AutoML 学习到的模型也公布了,叫做 NASNet。
这是一个鼓舞人心的开局,让我们看到 AutoML 的巨大前景。
AutoML 的工作也为计算带来了更大的挑战。不过计算还有很大的可提升空间,我们可以针对深度学习做一些定制化的优化。
比如传统 CPU 上的运算讲究精度,而进行深度学习时,我们可以丢弃一些精度要求,让运算更快一些。
另一方面,我们发现神经网络运算主要是矩阵运算,这样就可以设计一些特别的硬件来加速矩阵运算。
比如 Google 针对深度学习,特别设计了新的硬件 TPU。第一代 TPU 只能做一些推理的工作,第二代就既能推理又能训练,而今年 5 月份 Google I/O 推出的第三代 TPU,计算速度比第二代又快了 8 倍,计算能力不断地在提升。
我们也把 TPU 的能力通过 Google 云平台开放出来,给产业界和学术界使用。特别是,我们开放了 TensorFlow Research Cloud,有许多 TPU,免费开放给顶级的研究学者使用,共同来推动开放的机器学习研究。大家可以通过 g.co/tpusignup 申请。
总结上面所讲的,深度神经网络和机器学习已经带来了非常大的突破。我们可以考虑如何用深度神经网络,帮助解决世界上的一些重大挑战。
第二部分,我们来谈谈基于 TensorFlow 的应用。
AI 领域一个很重大的突破,就是 AlphaGo 战胜人类顶尖围棋选手,之前大家普遍认为这还需要多年。DeepMind 的 AlphaGo 也是基于 TensorFlow 实现的,早期版本使用了大量的 TPU,需要大量的计算。
初始版本的 AlphaGo 需要人类的经验,比如以历史上的围棋棋谱作为输入,但是最后的 AlphaGo Zero 并不需要人类经验就能自我学习。
AlphaGo 的工作也发表了论文,我们看到有国内公司基于公开论文,基于 TensorFlow,很快就重现了高水平的围棋系统。
这很好地说明了 TensorFlow 的意义,有了这样的开放平台,全球的研究者和开发者都能很方便交流,快速提高机器学习的水平,并且能够基于前人的优秀成果,快速开发出新的产品和系统。
自动驾驶是另一例子,利用 TensorFlow 可以自动识别移动中的人和物体,包括交通灯。
科学发展史当中,天文学有很多非常有挑战的问题。如何在浩瀚的星空当中,发现有意思的信号,比如寻找一个像地球一样的行星,围绕像太阳一样的恒星转,这是一件非常有挑战的事情。
天文学家利用基于 TensorFlow 的深度学习技术,在太空的大量信号中搜索到类似地球的行星,叫做 Kepler-90i,这个是迄今为止发现的第八个。
农业方面,荷兰的养殖场监测奶牛的行为和身体数据,使用 TensorFlow 来分析奶牛健康状况,比如是否运动,是否生病等等。
巴西亚马逊丛林的护林人员,使用 TensorFlow 来识别丛林中的声音,来判断是否有盗伐者。
在非洲,开发者使用 TensorFlow 制作出判断植物是否生病的手机应用,只要对植物进行拍照,就能进行鉴定。
Google 开源了基于 TensorFlow 的 Magenta 项目,一个功能是能够自动生成音乐,你输入一个音符,程序能够建议下一个音符。
在艺术和文化领域,你可以拍一个照片,程序能找出和你相似的艺术照片。
谷歌翻译可以在没有联网的情况下实时进行翻译。有这样一个上面印有“Milk”的包装盒,你只要打开谷歌翻译并用手机对准它,谷歌翻译就能自动识别文字,自动翻译出“牛奶”,并把翻译的结果贴在原来这个照片上。这样的例子对于出国旅游者非常实用。
Google 的大量产品使用了 TensorFlow。比如在语音方面,包括语言的识别和合成,像 DeepMind 发布的语音合成算法 WaveNet,合成的效果非常好。对人机对话,Google I/O 发布了 AI 打电话预定的 Demo,叫做 Google Duplex。
在视觉方面,Google Photos 能自动把所有照片做分析,识别里面的人和物体,自动得到一些标签,你可以直接搜索这些照片,不再需要手动加标签。还有 Google 的 Pixel 系列手机,拍照模式中,自动把前景突出一些,背景模糊化处理。
这就是机器学习带来的产品的突破。
在机器人领域,可以使用 TensorFlow 让四脚机器人学习如何站立和平衡。
最后,还能使用 TensorFlow 来帮助 Google 数据中心做能耗优化。当机器学习控制的开关开启后,能耗明显降低,而一旦关闭,能耗快速上升。
第三部分,讲一讲 TensorFlow 的一些基础知识。
机器学习越来越复杂,构造的网络也越来越复杂,作为研究者,如何管理这种复杂度是一个很大的挑战。比如 Inception v3 模型,有 2500 万个参数。
模型越复杂,对计算要求就越高,需要大量的计算,往往不是一台计算机就能满足,需要做很多分布式的计算,那分布式计算怎么去管理,这是一个难题。
更进一步,传统的机器学习运算都发生在服务器端,而现在越来越多的计算在手机端或者是在设备端,怎么去管理这些多元的设备和异构的系统,是一个挑战。
我们希望 TensorFlow 能够帮助管理这些复杂度,让研究者专注做研究,让做产品的专注做产品。
TensorFlow 是一个开源的软件平台,它的目标是促进人人可用的机器学习,推动机器学习的发展。
一方面,TensorFlow 希望快速地帮助大家去尝试一些新的想法,进行前沿探索。另一方面,也希望非常灵活,既能满足研究的需求,也能满足产业界做大规模产品的需求。面对多元的需求,怎么让大家能够用同一个框架来表达自己的想法,这是 TensorFlow 的重要设计目标。
研究可能会是小规模的,但在做产品的时候,可能涉及到成百上千的服务器,怎么去管理这些分布式计算,TensorFlow 需要有很好的支持。
一开始设计人员就把这些因素都考虑进去,最重要的原因是,TensorFlow 实际上是配合 Google 内部的产品需求设计的,经历过 Google 大量产品和团队的大规模考验。在它开放之前还有一个内部版本叫做 DisBelief,我们总结了DisBelief 的经验,做了新的版本,并且在大量的项目中经过真实的验证,也根据产品的真实需求在做一些新的特性。
Google Brain 有很多研究人员,他们不断发表论文,同时他们的研究工作也会转化成产品。大家都用 TensorFlow 这样的语言去表达,就极大地促进了研究成果的转换。
到目前为止,GitHub 上 TensorFlow 项目的提交已经超过 3 万次,超过 1400 多个贡献者,6900 多个 pull request。
TensorFlow 提供了一个完整的机器学习工具集。下面我们来整体看看 TensorFlow 的架构。
TensorFlow 有一个分布式执行引擎,可以让 TensorFlow 程序运行在不同硬件平台上,比如 CPU、GPU、TPU,移动端的一些硬件如 Android 和 iOS,以及各种异构的一些硬件。
执行引擎之上,有不同的前端语言的支持,最常用的是 Python,也支持 Java,C++ 等等。
前端之上,提供了一系列丰富的机器学习工具包。除了大家所知道的神经网络支持,还有决策树,SVM,概率方法,随机森林等等,很多是大家在各种机器学习竞赛中常用的工具。
TensorFlow 非常灵活,既有一些高层 API,简单易用,也有一些底层 API,方便构造一些复杂的神经网络,比如,你可以基于一些基本的算子去定义网络。
Keras 是一个定义神经网络的高层 API,在社区中很流行,TensorFlow 对 Keras 有非常好的支持。
进一步,我们也封装了 Estimator 系列 API,你可以定制训练和评估函数,这些 Estimator 可以高效地分布式执行,和 TensorBoard 以及 TensorFlow Serving 有很好的集成。
最上层,有一些预定好的 Estimator,开箱即用。
TensorFlow 提供了全面的工具链,比如 TensorBoard 可以让你非常容易去展示 Embedding,多层次呈现复杂的模型结构,以及展示机器学习过程中的性能数据。
它支持很多移动平台,比如 iOS,Android,以及树莓派等嵌入式平台。
支持的语言包括 Python,C++,Java,Go,R 等语言。最近,我们也发布了 JavaScript 和 Swift 的支持。
很多学校和机构都发布了 TensorFlow 课程,比如北京大学,中科大等学校就开设了 TensorFlow 相关课程,国外顶尖大学比如斯坦福、伯克利等,在线教育机构比如 Udacity,Coursera、DeepLearning.ai 上都有 TensorFlow 课程。我们也在支持教育部产学合作项目,支持高校开设机器学习课程,国内会有越来越多基于 TensorFlow 的原创课程。
下面讲一下 TensorFlow 的 API。
TensorFlow 可以帮助用户定义计算图,图代表了计算,图的每个节点代表了某个计算或者状态,而计算可以运行在任何设备上。数据随着图的边流动。而图可以用不同的程序语言比如 Python 来定义,并且这个计算图可以被编译和优化。通过这样的设计,可以把图的定义和实际计算过程分离开来。
TensorFlow 可以让你非常容易地表达线性回归,可以使用 LinearRegressor,这是封装好的 Estimator。深度神经网络同样可以很方便的表达,比如使用 DNNClassifier,你只需要说明每一个隐层的节点数。
TensorFlow 可以自动执行梯度下降过程,实现反向传播算法。并且这些计算可以分布在多个设备上,这样图的执行是一个分布式的过程。
?是另一类 API,可以对应到神经网络的层的概念,比如一个 CNN 网络,你有多个 CONV 层和多个 MAX POOLING 层,每一层都有一个对应的函数,方便你把多层组织起来。这些封装好的层包含了一些最佳工程实践。
进一步,?是社区中非常流行的 API。比如你想构造一个能够自动去理解视频,并且回答问题的玩具程序。你可以问:这个女孩在做什么?程序回答:打包。问:这个女孩穿什么颜色的 T-shirt?程序回答:黑色。
你可能会构造一个网络来实现:左边是视频处理逻辑,使用 InceptionV3 来识别照片,然后加上 TimeDistributed 层来处理视频信息,之上是 LSTM 层;右边是 Embedding 来处理输入的问题,然后加上 LSTM,之后把两个网络合并起来,再加上两层的 Dense。这就可以实现一个具有一定智能的程序,是不是很神奇?
使用?,你用几十行程序就可以完成核心的代码逻辑,比如 InceptionV3 的使用你只需要一行代码。
进一步,除了前面讲的静态图的方式,我们还有动态图的支持,叫做即刻执行(Eager Execution)。它可以减少一些冗余的代码,让你的程序更加简单,同时立即报错。
当然,静态图有它的优势,比如它允许我们提前做很多优化,不管是基于图的优化还是编译优化;可以部署到非 Python 的服务器或者手机上;还可以大规模的分布式执行。
而即刻执行的优点是让你快速迭代,方便 debug。
好消息是,在 TensorFlow 当中,即刻执行和静态图执行可以非常容易的进行转换,平衡了效率和易用性。
第四部分,我们来谈谈关于 TensorFlow 的高级知识。
TensorFlow Lite 是为移动或嵌入式设备特别设计的轻量级机器学习库,它更小,也更快。我们提供了工具,很方便的把 TensorFlow 模型转换成 TensorFlow Lite 格式的模型,然后在移动端,提供了 TensorFlow Lite 解释器去执行这些模型。
在 Android 上,我们利用了 Android 的 NN API,利用硬件加速。TensorFlow Lite 也对 iOS 有很好的支持。
TensorFlow.js 是最新公布的基于 JavaScript 的 TensorFlow 支持库,它可以利用浏览器特性比如 WebGL 来加速计算。这意味着更进一步让 TensorFlow 程序可以运行在不同的环境当中,让 AI 无处不在。
比如我们可以用 TensorFlow.js 来实现吃豆人游戏,电脑摄像头捕捉你的头像,来控制吃豆人的移动。这一切都运行在浏览器当中。
TensorFlow 的分布式执行对于大规模的模型非常重要。TensorFlow 可以很方便地实现数据并行工。举个例子:你可以写一个 Cluster 的描述文件,分配哪些是计算资源“worker”,哪些是参数的服务器“ps”,这样可以在我们定义图的时候可以把这些计算分配在不同的设备上,进行分布式的执行。
更进一步,谷歌支持了开源的 Kubernetes 项目,来管理大规模计算资源,它被业界广泛采纳,特别是一些云平台。而为了更好地让机器学习运行在大规模集群上,谷歌也带头推动了 KubeFlow 的项目,大家可以关注。
而在 Benchmarks 方面,谷歌也公开了测试的程序。我们可以看到 TensorFlow 系统的可扩展能力非常强,基本上机器的数量和能力是线性正相关的。
在最近一个月,公司也发布了一个 MLPerf,便于大家公开地比较机器学习的性能,这样可以推进产业的发展。
为了更好的促进模型共享,我们发布了 TensorFlow Hub (TF Hub)。例如,一个人设计机器学习模型,他可以从 GitHub 中找到不同的模型,进行组合,从而形成更强大的能力。
我们可以看到,一个模块包含了训练好的权重和图,这就是一个简单的模型,我们可以将这个模型组装,重用,或者再训练。
目前我们已经公开了很多模型,包括图像,语言相关等等,这些都需要大量的 GPU 训练才能得到。开发者可以在这些基础上,做一些迁移学习的工作,用很小的代价,就可以利用现有的模型帮助解决自己的问题。
另外一个是关于提高机器学习的技巧,叫?。举个例子,在 CPU 上,训练速度是很大的限制,但当我们加上 GPU后,训练速度就得到了极大的提升,但是 CPU 输入变成了一个瓶颈。数据需要做一些转换使得可以加载,进行训练。
大家知道,计算机体系结构研究中一个主要的问题是如何加速并行化,而提高 CPU 和 GPU 的运行效率,是提高机器学习系统很重要的问题。而提供了一系列工具,帮助开发者更好的并行地输入和处理数据。
更进一步,和 TensorFlow 训练相关的 Packages/Features 还有很多,例如 Estimators, Feature Engineering, XLA, TensorFlow Serving 等等,这些可以在很多行业上都可以得到方便的应用。
当构建一个真实的端到端的机器学习系统时,除了上面讨论的核心机器学习算法之外,还有大量相关系统需要构建,比如数据的获取,数据的分析,模型部署,机器学习资源管理等等问题。
谷歌内部有一个大规模的系统 TFX (TensorFlow Extended) ,它是基于 TensorFlow 的大规模部署的机器学习平台,相关论文已经发表在 2017 年的 KDD。目前我们已经开源了一些重要的部件,更多的部件开源正在进展当中,做产业界的朋友可以关注下。
最后,谈谈 TensorFlow 在中国的发展。
基本上,我们看到中国领先的技术公司大都在使用 TensorFlow,来解决多种多样的问题,比如:广告推荐、点击预测,OCR,语音识别,自然语言理解等等。包括很多家知名公司,像京东,小米,网易,搜狗,360,新浪,联想等等;也包括很多的创业公司,比如知乎,出门问问,云知声,Kika,流利说等等。
还有一些研究机构,比如清华大学的朱军老师,将贝叶斯网络和深度学习结合起来,开源了基于 TensorFlow 的系统,叫“珠算”。
另一个例子也是来自清华大学,开源了一些基于 TensorFlow 的知识图谱工具。
在中国,TensorFlow 社区活动非常丰富。比如,这是三月底在谷歌北京办公室举办的 TensorFlow 开发者峰会北京分会场活动,凌晨 1 点,Jeff Dean 和 TensorFlow 中国开发者视频互动的场景:
另外还有我们在重庆的活动,支持教育部产学合作协同育人项目,有上百位大学老师参加,奥斯卡经典电影我们希望培训更多大学老师来教机器学习等。
更多官方中文文档,可以访问:
https://tensorflow.google.cn/
不久前,我们还开源了 Google 内部使用的两天机器学习速成课程(MLCC),过去几年大量 Google 工程师学习了该课程。大家可以访问:
https://developers.google.cn/machine-learning/crash-course/
另外,推荐 TensorFlow 微信公众号,大家可以在微信上搜索“TensorFlow”找到。
你也可以加入 TensorFlow 中文社区,和业界一起来学习和探讨 TensorFlow 技术,访问:
https://www.tensorflowers.cn
TensorFlow 社区的基本理念是:开放,透明,参与。
我们希望尽量开放,所以发布了 TensorFlow 的开发路线图,使技术更加透明化,增加社区人员的参与感,共同推动技术的发展。Google 内部使用的 Tensorlow 也和外部也一样,我们每周都在不断同步。
在这个开放的社区里,不管是初学者,研究者还是产业界开发者,每个人都可以分享自己的问题,发布自己的代码、数据和教程,帮助其他社区成员,组织线下技术小组聚会等等。更一步,可以申请成为谷歌开发者专家(GDE)荣誉称号。
TensorFlow 作为一个机器学习的平台,那其在未来发展上,大概有哪些方向呢?
我们公开了 Tensorlow 开发路线图,大家可以在下面网站找到:
https://tensorflow.google.cn/community/roadmap
另外,也可以加入相关兴趣小组,给 Tensorlow 提出发展建议。
总结而言,我觉得有以下几个方向:
Q: 基于 TensorFlow 这个平台,极大的降低了深度学习的难度,那么是不是稍微懂技术的人,经过一些学习和打磨,就可以借助这个平台做深度学习或者AI相关开发,还是说背后还需要很多工作才能成为这方面的人才?
首先这是 TensorFlow 的设计目标,让尽可能多的人能用上深度学习技术,托福算分尝试新的研究想法,做产品,解决难题。
这样一方面可以推动深度学习技术的发展,加快很多方面的 AI 应用。而这些 AI 应用,更需要拥有广阔背景的众多开发者来一起推动。
另一方面,从简单地用到一些模型,到比较专业的深度优化,还是有不少距离。如果你只是达到平均水平,付出可以比较少,但要达到更高水平的突破,还需要很多的经验。
大家需要有一点工匠的精神,对问题的理解程度,参数的调节,数据的清洗和处理等等,这些都是需要积累的。
我们希望可以降低 TensorFlow 使用的难度,也提供一系列的工具集来辅助用户,希望可以让初级用户更多的探索应用场景,而高级用户可以做更多的前沿科技研究。
Q: 深度学习融入Google的每一个部门,那么每一个部门都会因为AI产生效应吗?有没有什么意想不到的效果?
我个人的感受是,加入了深度学习,确实带来了很大的突破。像机器翻译,语音,自然对话,图片翻译,搜索排序,广告预估等等,Google 的众多产品都有深度学习的深刻影响。
Q: 机器学习,深度学习这些年发展的很快,从技术到应用,在未来几年在哪些地方会有一些突破?
个人认为:无人驾驶领域,医疗诊断方面,还有,比如语言对话方面,让人充满期待。我个人更期待AI能推动人类重大问题上的发展,比如农业,环境,教育,跨语言的自由交流等等方面,希望可以借助 TensorFlow 获取突破的契机。
Q: Google 中怎么平衡研究和产品,到底是谁在推动谁往前走?大家是做自己喜欢的课题呢还是由需求来驱动做一些实用的研究?
研究是基于真实的问题,而产品化紧密协作,把研究成果落实到产品上去,并且获得真实世界的大量反馈,这是一个快速迭代的过程。研究和产品是比较紧密的结合过程,可以由真实问题的驱动去寻找解决方案。某种意义上,Google 的工程师,混合了研究和产品的角色,既要研究问题,也要实现产品。
查看更多 TensorFlow 和人工智能相关的内容,请关注谷歌官方“TensorFlow”微信公众号:
文章来源:https://blog.csdn.net/jILRvRTrc/article/details/80578131