分享

深度 | TensorFlow工程设计主任Rajat Monga问答:计算能力是深度学习发展的主要瓶...

 天道酬勤YXJ1 2016-10-02

选自Quora

机器之心编译

参与:Rick、刘婷娜、吴攀

Rajat Monga 是谷歌 TensorFlow 的工程设计主任,同时也是一位深度学习技术研究者。近日,他在 Quora 上进行了一场专题问答,谈及了深度学习的瓶颈和 TensorFlow 社区的发展情况。下面是机器之心对 Rajat Monga 的问答内容的编译整理。

1. 使深度学习更有效的主要瓶颈是什么(在 2016 年)?

由于三个事物的共同进展,深度学习似乎在最近几年取得了成功:

  • 算法:这一领域已经有了一些改进,但早期的大多数成就来自于相当老旧的思想。现在深度学习也有所成就,我们正看到的一些良好进展。

  • 数据集:没有足够大的数据集很难训练大的网络。MNIST 只是向前推进了这一限制。类似 ImageNet 的数据集确实有助于推动视觉方面的最先进的技术发展。

  • 计算:我相信这是近年来作用最大的一个方面。以我的专业背景来看我是有些偏见的,但计算在一些深度学习所取得的早期成就中发挥了一个很大的作用。Google Brain 2011 年的关于猫的论文和 Krizhevsky 等人在 2012 年在 ImageNet 上取得的成果将深度学习带到了计算机视觉领域的最前沿。

也就是说要想使深度学习变得更有效,所有这些都还有很长的路要走。

  • 计算:即使我们已经有了定制化芯片,但我们依然还要面对持续需求更多的挑战。

  • 数据集:由于目前的算法在很大程度上是监督型的,因而还需要更大的数据集来继续推动新研究的进展。我们正在谷歌中积极致力于数据集的改进,并且最近已经发布了一个视频数据集(参考阅读《谷歌发布 YouTube-8M:单个 GPU 一天就能完成训练的最大视频数据集》)和两个用于机器人的数据集(参考阅读《谷歌公开两个机器人研究数据集:Grasping + Push》)。

  • 算法:不要轻视算法部分,比如 ReLU、 Dropout、Sequence to Sequence 和 GANs 这些思想就带来了巨大变革。回到计算这一点,我们不可能由于传统的、纯硬件方面的提高就在计算上实现 1000 倍的提升。这需要的是算法与计算的协同设计,例如我们能够用 1000 倍的参数而仅用 10 倍的计算来创建一个模型吗?我认为建立稀疏模型来解决这个问题会是一个能带来重大成果的方法。

2.Google Brain 的主要招聘渠道是什么?

Google Brain 是一个非常多样化的团队。我们的许多研究人员拥有机器学习背景,并且是该领域的著名专家,比如 Geoffrey Hinton、Samy Bengio 和 Quoc Le。然而,我们也有一些项目会从非机器学习专业领域聘请研究人员和工程师。此类项目的信息来自于目前一些比较特殊的团队成员。我们还有其他一些招聘方式——全职、访问学者、实习生和 Brain Residency 项目。我们在 2016 年启动了 Brain Residency 项目以培养和支持下一代深度学习研究者。

3. 有什么还未建立的对深度学习来说有价值的工具?

作为一个程序员,我将构建深度学习的模型看作是编程和实验。所有应用于那些领域的工具都与这点息息相关。用于深度学习的 TensorFlow 就像一门编程语言。该生态系统中其余部分的建立还有大量工作要做。

例如更好的调试工具将有助于研究人员了解为什么他们的模型没有在学习,更好的实验管理将使他们能够更容易地运行和分析更多的实验。

4. 深度学习在系统方面最需要的突破是什么?

正如我在深度学习的瓶颈那个问题中所回答的,我们不可能由于传统的、纯硬件方面的提高而在计算中得到一个 1000 倍的提升,或者甚至是使用更好的软件和通信技术来集成更多的芯片。这需要的是算法和计算的协同设计,例如我们能够用 1000 倍的参数而仅用 10 倍的计算来创建一个模型吗?我认为可以解决问题的稀疏模型以及能够利用这些限制的系统能发挥很大的作用。

按照 GPU 和定制 ASIC 目前的发展状态,这不是大多数团队需要优先考虑的问题,但是由于这各方向的改进开始放慢了步伐,所以我希望看到这方面有更多研究出现。

5. 面对人工智能研究领域出现的无数挑战,Google Brain 团队主要致力于哪些问题?

我们相信我们所研究的问题将有助于打造出那些能帮助人们的生活的智能机器这个使命。我们目前的一些研究领域包括机器学习算法、机器人、医疗和自然语言理解。有关我们的所有研究领域和文献发表的更多信息可以参看网站 https:///brain。我们通过从这每一领域中挑出那些困难的挑战来追求对机器智能更广泛的理解。

6. 深度学习在视频方面有哪些潜在应用?

视频在许多方面都很有趣。虽然我们已经运用 ImageNet 的成果在人类的水平上取得了视觉方面的巨大进展,但距离真正的人类视觉还很遥远。部分原因是:

  • 我们在图像中获得的单张快照只提供有限的可用信息。

  • 缺乏大的标记数据集。ImageNet 虽然又一次提供了很多帮助,但要想放大到人类可识别到的所有不同类别则很困难。


视频有可能解决这两个问题,并帮助机器获得人类的视觉。通过每个相关联视频中的帧序列,它提供了一个看待现实世界更为丰富的视角,允许模型创建一个 3D 的世界视图,而无需立体视觉。此外,所有帧的连续性也允许无监督学习算法不通过标签来提取有价值的图像信息。

应用方面,Google Photos 是一个很好展现更优视觉应用可能的例子。人类在其中花费很多时间执行例行任务的所有领域都是商业游戏的所在之处,例如驾驶(自动驾驶汽车)在今天很受欢迎,但也有许多简单的家庭任务比如整理衣物,由于它过于依赖我们的视觉因而目前还不能实现自动化。

7. 由于昂贵的计算成本需求,我们如何让更多人获得研究深度学习的机会?

在一个大数据集上从零开始训练一个模型很昂贵。然而大多数人并不需要从头开始。我们目前有一些训练于大数据集之上先进模型,比如人们可以从我们的图片和文本解析开始,然后基于他们自己的数据做出调整。

Pete Warden 有一篇很棒的博文(《TensorFlow for Poets》)展示可以如何实现一个图像模型。我希望在更多领域看到这样的例子,因为我们正在使我们自己的 GitHub 模型库(https://github.com/tensorflow/models)中的模型公开可用,也欢迎我们的用户带来他们的贡献。)

比如来自 Google Cloud ML 中那些处理繁重工作的 API 也将允许很多人使用深度学习方面的成果去打造更智能的应用程序,而不需要训练自己的模型。

8.TensorFlow 从 DistBelief 带走的最有价值的东西是什么?

现今的深度学习框架有三个关键性要求,我将通过探讨我们如何从 DistBelief 进化到 TensorFlow 来切入这个问题。

  • 可扩展性: DistBelief 通过使用大量的 CPU 来进行拓展。例如,我们的关于猫的论文采用了 16000 个处理器内核。这在 2011 年是很了不起的,但是随着硬件的发展以及 GPU 和 TPU 的出现,我们的数据中心能够支持其他平台也是十分重要的。我们就如何扩展到其他机器这个问题研究了很多,例如我们在异步 SGD(Asynchronous SGD)的工作和最近的同步 SGD(Synchronous SGD)的工作,两者都始于 DistBelief,且时至今日依然可应用这些技术。

  • 灵活性: DistBelief 允许我们扩展,但它是在我们做系统的这部分人对深度学习足够了解之前建立的。对于那些急需在大数据集上进行训练的实际产品,以及在更大的数据集上进行的研究,DistBelief 的作用十分显著,但它却难以适用于新的想法。前端层也随着时间不断更新演变,我们能够把从这一过程中学到的东西,运用到对 TensorFlow 的新的设计中。

  • 便携性:在过去的几年里,在手机以及其它设备中部署深度学习模型已成为一种潮流。再次强调,DistBelief 最初并不是为此设计的,这最终导致我们的用户通过实现他们自己的库以支持这些深度学习模型。在 TensorFlow 的设计开发过程中,我们不断从我们的用户那里学习,实际上一些这些开发者加入了我们,使得 TensorFlow 可以运行在手机以及嵌入式平台,其中包括安卓、iOS、树莓派以及其他的很多平台上。

9. 如果计算能力能够增加十倍,这将对现今的人工智能研究有何影响?

正如我在前面的一个回答中所提到的:计算能力将继续作为人工智能进步的瓶颈。

一个实验如果仅需一天而非一周,或者一小时而非一天,那会让我们能完成多少实验、尝试多少新想法啊。这仍然还在研究阶段,许多新想法在获得成功以及推动领域发展之前,仍然需要尝试和提升。拥有更加强大的计算能力可以使得研究者们进行更多同一类型的实验,或者在相同时间内训练更大的模型。

有趣的注释:训练一个模型通常需要一周——这似乎是研究者为了好结果而愿意等待的时间的上限。我相信我们可以利用甚至是 1000 倍的计算能力的提升给人工智能的发展带来重大影响。

刚从斯坦福大学毕业的 OpenAI 研究科学家 Andrej Karpathy 也对该问题进行了回答,这里也随带附上他的答案:

这是一个有趣的思维训练。我喜欢思考阻碍进步的四个因素。

  • 计算(最明显的因素:摩尔定律,GPU,ASIC)

  • 数据(有良好的格式,而不仅是网上一些随便的数据——例如 ImageNet)

  • 算法(研究和想法,例如:反向传播 (,CNN,LSTM)

  • 基础设施(底层软件-Linux, TCP/IP, Git, ROS, PR2, AWS, AMT, TensorFlow, 等)

你会注意到计算只是这 4 项中的 1 项。所以我认为如果给我十倍的计算能力,不会有什么重大改变。当我以十倍的速度得到实验结果时,我的迭代周期一定会提升,所以也许我可以提高第三点(开发算法)的速度。我也将可以拓展许多现有实验(但这还不清楚,因为我们的许多模型是受存储限制的),所以一些现有的模型可能会因此给出一些稍好的结果。但我不认为会立即有激动人心的结果发生。

我认为第四点目前是一个较大且较慢的限制因素,这也就是我认为在 OpenAI 工作很激动人心的原因,在这里我们真的可以向其投入资源,以及建立许多专门服务于人工智能的基础设施。最后,第三点是最重要的——即使我拥有所有的计算资源,所有的数据以及梦想中的基础设备,我依旧不知道在上面跑些什么才能得到一个可以思考、说话、学习、探索的人工智能。

10.TensorFlow 多大程度上受到了 Theano 的启发?

我们从先前 DistBelief 的经验中学到了很多,并将其应用于 TensorFlow。但在重新开始的时候,我们考察了所有现存的深度学习框架,并且我们很多团队成员是那些框架的开发者,包括 Theano、Torch 和 Caffe。其中我们的设计在很多方面与 Theano 最接近:比如,我们如何支持自动微分(auto differentiation)、如何运用符号表达式、以及在基础数学和线性代数的基础上铺设专门的神经网络层。

它们都是十分优秀的框架,我们很幸运能够有机会从其中学习以及推动领域向前发展。

11. 如何将 TensorFlow 运用于计算机视觉?

我推荐 Pete Warden 的博客 TensorFlow for Poets(https:///2016/02/28/tensorflow-for-poets)作为开始计算机视觉模型开发最好的起点。对于 TensorFlow 新手来说,这是一个绝佳的起点,它能帮助你从安装 TensorFlow 开始直到为一个小的图像数据集制作视觉模型。

12.TensorFlow 用户最大的痛点是什么,以及你认为可以如何解决它们?

TensorFlow 用户要求了两点,一是模型实现的集合,二是用以构建模型的更高级的库。我们正在这两点上取得巨大进步。

模型:在我们的社区的帮助下,我们在 GitHub 上有一个愈发壮大的模型集合。此外,TensorFlow 用户和一些研究论文的作者也用 TensorFlow 实现了大量由研究论文提出的模型。这些在 GitHub 上简单搜索一下都能被找到。

库:我们的 tf.learn 正取得长足进步且被广泛使用。此外,Keras 是另一个 TensorFlow 用户经常使用的很好的库。

13. 非美国公民学生可以申请谷歌的 Brain Residency 项目吗?

可以,我们的现有项目里有许多非美国公民,我们鼓励全世界的申请者申请该项目。详情请参见 Brain Residency 网站:https://research.google.com/teams/brain/residency/

本文由机器之心编译,转载请联系本公众号获得授权

------------------------------------------------

加入机器之心(全职记者/实习生):hr@almosthuman.cn

投稿或寻求报道:editor@almosthuman.cn

广告&商务合作:bd@almosthuman.cn

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多