计算机视觉已经是日常生活的一部分。借助这种技术,Facebook可以识别你上传到社交网络的照片上的人物;Google Photo能够自动在收藏行列中找出特定的图片,以及识别出各种各样的东西……这样的应用已经在互联网中流行已久。
所有这些“识别”都源自于一种被称为深度学习的人工智能技术。但就在这种技术被大肆炒作的几年时间中,来自微软研究院的一项新实验证明这只是人工智能的开始——深度学习还可以更深度。
深层神经网络的突破:152个层级
计算机视觉革命是一场持久的斗争。2012年,这项技术迎来了关键的转折点,那时加拿大多伦多大学人工智能研究者赢得了一场叫作ImageNet的比赛。ImageNet让一群机器PK图像内容识别,对图片中的小猫、小狗和白云,看看哪台计算机的识别准确率更高。当时,由研究员Alex Krizhevsky和教授Geoff Hinton组成的多伦多大学团队在比赛中使用了深层神经网络技术,这种技术的算法可以让机器基于目前最大的图像数据库进行分类识别,而不是依靠人为制定的规则。
多伦多大学团队使用非监督的逐层贪心训练算法取得的成果,为训练深度神经网络带来了希望。从那时候开始,包括Facebook、Google、Twitter和微软在内的互联网巨头纷纷开始使用相似的科技来建造自己的计算机视觉系统。微软研究院主管Peter Lee表示:“还不能说我们的系统能够像人类眼睛一样进行观察,但我敢说,在某些特定的、狭义的任务上,计算机视觉可以媲美人类。”
粗略地说,神经网络兼用硬件和软件来模拟近似人类的大脑神经元网络。这个想法诞生于上世纪80年代,但直到2012年,Krizhevsky和Hinton基于图像处理单元、GPU运行的神经网络技术才算真正地推动了这项技术的发展。这些专门的处理器和其他高度图形化软件最初都是为了游戏中的图像渲染而设计,但事实证明,它们也适合于神经网络。Google、Facebook、Twitter、微软等公司如今都使用GPU来驱动人工智能来处理图像识别,以及包括互联网搜索、安全防御等其他任务。现在,Krizhevsky和Hinton都已经加入了Google。
如今,最新一届ImageNet的赢家正在探求计算机视觉的下一个突破点——以及人工智能更加广泛的应用。上个月,微软研究院团队摘得了ImageNet的桂冠,他们使用了一个“深层残差系统”来指导神经网络结构的设计。目前普遍使用的神经网络层级能够达到20到30层,在此次挑战赛中该团队应用的神经网络系统实现了152层。ImageNet挑战赛去年获胜的系统错误率为6.6%,而今年微软系统的错误率已经低至3.57%。
而这也表明,在未来几年里,利用大型的GPU集群和其他专属的处理器,我们不仅能够改善图像识别,而且还能解决对话识别、自然语言理解等人工智能服务。换句话说,目前深度学习所能达到的发展程度愈加接近其本应具有的潜力了。Lee表示,微软正致力于发掘更巨大的设计空间。
深度神经网络以“层”的形式分布。每一层都具有不同系列的运算——也就是算法。某一层的输出会成为下一层的输入。笼统地说,如果一个神经网络是设计用来进行图像识别的,其中某一层神经将负责寻找图片的一系列特性——边、角、形状或者纹理——而下一层神经则负责寻找另一个系列的特性。这些层级就构成了神经网络的”深度“。负责监督ImageNet大赛的北卡罗来纳大学研究员Alex Berg介绍:“一般而言,神经网络越深度,机器学习就越容易。”
所以,微软研究院团队应用的152层神经网络系统能够识别出更多的对象属性,大大提高了图像识别的准确率。“它们可以学习到更多微妙的东西。”
事实上,过去这种很深的神经网络并不可行。部分原因是,在通过每一层级的反传训练中,反传监督信号幅度会迅速衰减甚至消退,这让整个神经网络系统的训练极为困难。根据Lee的介绍,微软通过使用深度残差网络解决了这个困难——这个深度残差网络可以在不需要时跳过某些层级,而需要用到时又可以重新拾回。“跳过某些不需要的层级,有助于保持反传监督信号的幅度。”“残差学习”最重要的突破在于重构了学习的过程,并重新定向了深层神经网络中的信息流,很好地解决了此前深层神经网络层级与准确度之间的矛盾。
Berg表示,这个新的设计不同于以往的神经网络系统,相信其他大公司和研究者都会效仿。
“深层”的困难
另一个问题是,构建这样一个宏大的神经网络是非常困难的。落地于一套特定的算法——决定每一个层级应该如何运作、如何与下一个层级进行传递——可以说是一个史诗级的任务。不过,在这里微软同样有个诀窍——它设计了一个计算系统,可以帮助构建这些神经网络。
微软研究院团队成员之一孙坚解释称,研究人员可以为大规模的神经网络寻找出可行的排列,然后系统可以对一系列相似的可能性进行循环运算,直到计算出最有效的排列。“大多数情况下,在经过一定次数的尝试后,研究人员会从中总结、反馈,然后为下一轮的尝试给出新的决策。我们可以将这种方式成为‘人工辅助搜索’。”
深度学习创业公司Skymind首席研究员Adam Gibson表示,这样的做法越来越流行,“这叫做‘超参数优化算法’。”“人们可以加速机器集群的运算,一次同时运行10个模型,然后找出效果最优的一个。”
“归根结底是一个关于硬件的问题”
按照孙坚和Peter Lee的描述,这种方法并不是在这个问题上“蛮干”。“在有着大量的计算资源后,系统自然就可以计算出一个庞大的组织,然后在这个具有无限可能的空间内进行搜索。只是,目前世界上还具备这样充足的计算资源,因此我们主要还是依靠像孙坚这样聪明的研究员。”
但Lee强调说,多亏了新的技术以及计算机数据中心,才使得发展深度学习有了巨大的可能性。如今,微软的重要任务之一是创造出开发这些可能性的时间和计算机系统。这就是微软为何不仅努力改进GPU集群的运算能力,还开发其他诸如现场可编程门阵列(FPGA)等专用处理器的原因之一。而除此之外,微软研究员还需要开发更多试验性的硬件平台。
如Gibson所言,深度学习愈加变成为一个“硬件问题”。确实,我们仍需要高级研究员来指导神经网络的构建,但所谓寻找新的途径更多地是开发适用于更多硬件平台的新算法,而更多更好的硬件支撑可以说是一个捷径。
via Wired