分享到微博 分享到人人 分享到LinkedIn 分享到Email
威尔士柯基犬,计算机视觉,以及深度学习的力量
微软亚洲研究院
2014年7月18日

编者按:在上一篇博文中,我们介绍了Adam项目的效果及未来应用:用计算机视觉智能地识别物体。现在让我们走近这项技术,看大规模分布式系统如何有效地训练巨型深度神经网络(DNN),让这一切成为可能。

文章译自:On Welsh Corgis, Computer Vision, and the Power of Deep Learning (有删减)

你能说出两种威尔士柯基犬之间的区别吗?倘若作为爱狗之人,你大概能够回答上来这个问题。但对于大多数人而言,这就有点困难了。因为他们可能根本不知道世界上有这么一种狗,更别提知道世界上有两种——也只有两种——威尔士柯基犬了。其实,这两种狗都是以威尔士的郡名命名的——一种叫彭布罗克(Pembroke)威尔士柯基犬,一种叫卡迪根(Cardigan)威尔士柯基犬。能区分这两种狗的人可以说是寥寥无几。

但微软的Adam却能做到这一点。Adam是微软研究员和工程师发起的一个项目,旨在证明大规模商用分布式系统能有效训练巨型深层神经网络(DNN)。为实现这一目标,微软的研究员们打造了全球最先进的照片分类系统,使用了来自ImageNet图片数据库的1,400万幅图片,该数据库将收录的图片划分为22,000个类别,这些分属众多类别的图片中有一些与犬类相关。

Adam认识狗这种动物,能从图片中识别出狗。它能认出不同类型的狗,甚至能辨别具体的品种,比如分辨出一只柯基犬是彭布罗克犬还是卡迪根犬。

以上说的这些听起来好像似曾相识。几年前,美国《纽约时报》曾报道谷歌让一个由16,000台计算机组成的网络系统学会了辨认猫的图片。这对计算机来说是个艰难的任务,谷歌取得了一项了不起的成就。

目前关于Adam项目的论文正在进行学术审查,论文指出Adam的速度是上述谷歌网络系统的50倍,准确性则是其两倍以上。此外, Adam也极为高效,所用机器的数量仅为谷歌网络系统的三十分之一,兼具可扩展性,这些都是歌系统的短板。

带头发起Adam项目的微软研究员Trishul Chilimbi说道:我们最初的想法是利用商用PC构建一个极为高效且高度可扩展的分布式系统,它的训练速度、可扩展性以及任务准确性要达到世界一流水平,以便完成重要的大规任务。聚焦于视觉技术是因为我们在这方面拥有规模最大的公用数据集。

 “而后考虑到如果我们建成了一个真正具有可扩展性的系统,那就不妨证明一下它的可用性。挑战在于我们能否利用这套大规模的系统有效训练大规模的模型,使之掌握庞大的数据集。最后这一切都得到了解决。我们的系统是一种通用系统,能支持各类DNN架构的训练。它也能用来训练大型DNN完成语音识别和文本处理之类的任务。

Chilimbi表示:我们以前训练的机器学习模型都非常非常小,尤其是跟人脑的神经元连接数量相比。谷歌的项目已经表明,如果训练一个更大的模型、让它掌握更多的数据,就能更好地完成诸如图片分类的高难度人工智能(AI)任务。

Adam项目上,我们试图构建出一个可扩展性和效率都远远高于以往的系统,用它来训练更大的模型,使之掌握更多的数据,同时让任务准确性也得到提升。这项研究的总体目标,就是构筑一个可扩展的训练系统来证明,让系统通过训练掌握大量数据是一条前景广阔的道路,你不必成为机器学习专家也能十分准确地完成此类任务。利用强大的计算、模型规模和数据规模的系统驱动式方法确实是可行之道。

很多人都说这是一项不可能完成的任务,因此这一结果令微软更感欣喜。 

最初邀请机器学习专家利用分布式系统进行机器学习时,我们遭到了诸多质疑。Chilimbi说道。基本的机器学习训练算法是同步式的。它们通常都是始终在同一台机器上运行。当时有人质疑分布式的可行性,认为同步成本会使这个过程进展缓慢,它永远都不可能实现很高的性能或可扩展性。

致力于实现DNN异步算法的团队成员(从左至右):Karthik Kalyanaraman, Trishul Chilimbi, Johnson Apacible, Yutaka Suzue 

我们希望的是不仅构建出异步算法,而且还要把这项工作进行到底。最后,我们找到了一个让异步算法不仅能学习、而且还能学得更好的办法来帮助提升稳健性。学习的关键并不在于训练数据集,而是在于能有效地归纳看不见的数据。

异步技术还带来了另外一项优势。异步算法还帮助我们走出了无法有效改善任务准确性的停滞期,Chilimbi说道,这很像人类学习完成一项新任务时遇到的情形——在经历了快速进步期之后,人们往往会发现自己陷入了停滞。

微软研究院特别项目的工程经理Johnson Apacible详细阐述了Adam采取的方法。他解释道:用图片让小孩子识别汽车时,图片上必须是一辆完整的汽车。而如果是成年人,即使是只瞥见一辆车的某一部分,也能认出那是一辆车。因为你经过了训练。当汽车高速行驶时,图像会有点模糊,但你仍然知道那是辆汽车。” 

我们的系统就是要做到这一点。这能让系统针对不同类型的数据、不同类型的情况进行训练,并让模型变得更加鲁棒。

项目于18个月前启动,希望实现打造全功能系统的愿景。这个系统将包含端到端场景,并能够成功实现跨越数天的持续运行。另外,这个项目还要在模型数量、训练速度以及ImageNet海量数据的分类准确性上创造新的世界纪录。

不仅如此,Adam项目也证明了深度学习——这种先前已经在语音领域证实了自身效用的学习机制,也同样适用于视觉领域。此外,研究人员也对DNN的实际运行机制有了更加深入的了解。

Chilimbi说:我们发现,随着DNN层数的增加,准确性会得到提升,但到了一定层数后,准确性就不再提高。从两个卷积层增加到三个卷积层,再增加到五或六个卷积层,效果似乎最好。而有趣的是,科学家研究了人类视觉皮层,他们发现,人类视觉皮层位于大脑内部约六层神经元的深度。

之所以说有趣,是因为这个神经网络的每一层都会在上一层的基础上自动学习更高层次的功能。最上面的一层学习植物、书面文字或闪光物体等高层次的概念。似乎到了再深入下去反而会进入功能递减的阶段。从生物学角度来看,这似乎也是合情合理的。“ 

再回到Adam识别柯基犬的能力上,不同层次的工作原理如下:第一层学习狗的外形轮廓。第二层可能学习纹理和皮毛,第三层可能学习身体部位——耳朵和眼睛的形状。第四层会学习更为复杂的身体部位,第五层则用于学习狗的面孔之类的高等级可识别概念。信息逐级向上传递,最终到达最上层,在这个过程中逐渐形成越来越复杂的视觉理解。

当被问及DNN会在多大程度上颠覆当今的计算环境时,Chilimbi又一次提到了他所说的两个计算时代,速度越来越快的计算机和摩尔定律推动了第一个计算时代的发展,而第二个计算时代的主宰者则是互联网、通信和连接。

他表示:这两个时代都带来了深刻的变革,在这两个时代涌现出了许多发明。如今,我们正处在真正的人工智能时代的起始阶段,人工智将带来与上述两个时代类似的变革。当然,这些都离不开此前革命的基础。它需要强大计算能力提供支撑,也需要数据的连通性和可用性来支持计算机学习各种有趣的东西。

迄今为止,计算机一直表现出极佳的数据处理能力。现在,我们开始训练计算机识别图案,将这两者相结合将开启一个崭新的应用世界。试想一下,如果盲人用手机指向某个场景,手机就能描述出这个场景,帮助盲人观察周围的世界。如果我们拍下正要吃的食物,手机就能了解食物的营养信息,帮助我们做出更明智的选择。

关于深度学习带来的变革,Apacible认为其关键就在于规模。

计算机问世时,人们利用电子管进行编程,接下来出现了汇编语言,这给编程人员带来了一定的帮助。随后出现的C语言极大促进了代码的编写。如今,我们来到了数据时代,我们所能获得的数据越来越多。研发像必应这样的产品就需要数百次机器学习的经历,才能得出具有良好相关性的模型。

如果涉及到数以百万计规模的图片,光是开发一个模型可能就需要成百上千的机器学习专家。Adam系统的实现向我们证明了DNN可以掌控如此大的规模。我们不需要机器学习专家来找出是什么使这张图看起来像一只狗。系统会自动学习这一点。这就是规模大的优势。“ 

我们可以为系统提供图像、语音和文本等多种形式的海量数据,利用这种规模来训练系统,使之能够表现、理解并帮助我们阐释周围的世界。

如今一谈到DNN,总是会提到深度学习的神奇背后隐藏着怎样的奥秘。

Chilimbi说道:我们尚未了解清楚的是,当我们仅提供给DNN一张图片并告诉它这是一只彭布罗克威尔士柯基犬时,它是如何将这张图片分解为不同的特征层的?

我们没有提供任何这方面的指示。我们仅仅只是训练了算法,并指明这是图像,这是标签。它就能自动识别出这些层级特征。这仍然是个谜题,我们对这个过程知之甚少。但是,大自然花了数百万年的时间才奇迹般地塑造出了大脑,所以要揭开这个奥秘自然也需要费些时间。

但是,DNN并不是绝无仅有的个例。 

Chilimbi说:这就像20世纪初的量子物理学,实验主义者和实践工作者走在了理论家的前面,他们无法解释实验结果。

“DNN似乎正处于类似的阶段。我们正在实现DNN的强大能力和功能,但我们仍然不理解DNN的基本工作原理。我们往往会高估颠覆性技术的短期影响,却低估其长期影响,互联网就是这方面的一个有力例证。关于深度学习,我们仍然有很多理论工作要做。