「我想通过和英特尔的合作,不仅会进一步推动我们在人工智能、机器学习算法方面的研究,同时也会进一步扩大这些研究对芯片硬件架构方面进一步发展的影响」,周志华表示,「此外,因为英特尔已经给各行各业的用户提供了技术支持和服务,通过这次合作,也有可能进一步把我们的研究成果进一步推向产业化应用,提供更好的发展空间。」
周志华与宋继强曾经是南京大学计算机科学与技术系的九年同窗,如今这两位昔日校友又分别以学界和业界的身份走到一起,一位带来了对深度神经网络结构的可替代方法的深入思考——「深度森林」,另一位带来了以英特尔至强系列处理器为代表的「一片多核」硬件架构,目标是给更大、更需要可解释性的任务提供不被数据规模局限的、更易训练也更容易分析的算法解决方案。
深度神经网络之外的深度学习
「很多外界的人有两个有失偏颇的观点。第一,会倾向于认为人工智能这一波进步完全是深度学习带起来的,但是其实深度学习只是背后的一部分,比如 AlphaGo 背后更重要的是强化学习。第二,会倾向于认为深度学习就是深度神经网络。我们的探索就是试图告诉大家:深度学习不光是深度神经网络,还有很多别的东西。」在揭牌仪式之后的采访上,周志华对于深度森林工作的意义这样解释道。同时他也讲述了自己对于深度学习的发展趋势的判断:「在未来,完全基于深度神经网络的『狭义深度学习』的空间可能逐渐地变小,因为它有用的范围我们逐渐都知道了。但是广义的深度学习可能会长期存在下去,甚至变成以后的机器学习系统的一个基本配置。」
什么是「广义深度学习」?周志华将其定义为「由更深更大的由子模型组成的解决复杂问题的模型」,这里的子模型可能是神经网络,可能是随机森林,也可能是其他的结构。
深度森林算法提出在去年年初,gcForest 也于去年六月开源。「『没有免费午餐』定理严格证明了没有一种模型适用于全部的数据类型。深度神经网络在图像、语音数据上特别有效,而我们的前期研究发现,森林结构在符号数据、离散数据混合建模上可能有特长。」正如 IJCAI 论文结尾所言,团队认为这项新方法能够为使用深度学习方法解决更多任务打开一扇深度神经网络之外的大门。
在过去一年多的时间里,周志华团队也一直在从不同角度「敲门」。在会后的采访中,周志华分享了一些团队进行过的尝试的方向:一方面探索深度森林的能力边界,比如探索深度森林是否具有传统认为只有神经网络才具有的的自编码能力;一方面研究如何调动更多计算资源,更好利用其自身的高并行性的特点,做任务级的并行;最后在应用层面,他的团队也和蚂蚁金服等合作,检验深度森林算法在一个真实场景下的真实任务(从有大量离散特征的网上金融交易数据中进行非法套现检测)里效果如何。如今三方面都有不错的进展。
CPU 与其他硬件的深度学习加速之路
在应用层面上,没有一套硬件解决方案能够适用于所有的场景已经是一个共识了。宋继强介绍了英特尔中国研究院的主要方向:面向未来无处不在的具备完整的外界感知、理解决策、以及行为能力的自主前端设备。这些设备对算力的需求可以说是五花八门。英特尔如今最新的至强处理器通过加强了单精度和可变精度浮点数的计算能力来对深度学习应用做了适应性的调整,但是可以进行的尝试还有更多。
「同样的人工智能算法在 100 个行业就有 100 种甚至更多的不同使用方式,每一种使用方式都可能有最好的软硬件搭配的方法。在前端、云端、边缘的计算对于计算资源的功耗、尺寸、实时性的要求都不一样。英特尔给出的答案是『混搭』,用多个芯片内核通过高级的集成封装技术进行 2D 和 3D 层面高速互联,实现异构计算。」宋继强介绍道。
应用层面不能在硬件上以「一」待劳,学术研究方向也是如此。
「深度森林和现在的深度神经网络不一样的一个地方在于,它不适合用 GPU 加速。」周志华坦言。
在「更大的模型会带来更好效果」的广义深度学习基本假设之下,想要将深度森林做得更大,就要进行一些不一样的尝试。
「一种是我们和在工业界的合作伙伴一起做分布式的计算系统,而另一种就是能否用其他硬件提高其可扩展性。经过大量的前期调研,我们认为英特尔的一片多核的结构极有可能对加速这样的模型有特别的帮助。」
在软件优化之外,如果能够在算法研究的前期直接从指令集层面乃至芯片布局层面进行思考与优化,对于模型效果会有怎样的帮助?能不能同时思考软硬件问题以实现最佳性能与效率?这是世界上的各个研究机构都在思考的问题,周志华团队也不例外。
「深度森林主要基于树架构,每一个模型可以视为由多棵树组成。第一,能不能进行任务级的并行,能不能同时做多棵树?第二,树结构很难在 GPU 上运行,因为它中间涉及到很多分支选择,这让它与一个片上多个 CPU 的结构非常契合。」
团队已经进行了一些实验,「我们利用一块英特尔至强融核的芯片(KNL),对一个特殊版本的深度森林做出了 64 倍的加速。」
同时,他们也有很多更远大的构想,比如投入到大规模任务中,利用硬件加速提供更好的性能和效率:「受限于现在的计算架构,一个特别大的任务进来,内存马上耗光了,计算也算不下去了。但是实际从计算开销来说,一个森林的开销比一个神经网络要小。神经网络能通过 GPU 加速获得性能的大幅提升,那深度森林能不能利用合适的芯片架构,获得类似的帮助?」
即使现有的芯片架构都不能完美地解决这一问题,研究者也十分乐于为硬件开发者提供一些下一步设计上的启发。
计算机人才的硬件能力与硬件研发的人才需求
在周志华看来,与英特尔的合作是让南大计算机学科「更进一步」方式。「原来南京大学的机器学习与人工智能的团队主要在理论和算法方面做一些工作,在应用技术方面的研究主要也集中在软件方面。南京大学作为一所综合性大学,『硬件』一直是我们的计算机科学所欠缺的一条腿。这一步光靠我们自己很难再迈进,我们希望能通过和英特尔的合作,在软硬件结合方面往前走一步。」
LAMDA 实验室的一些研究生已经从培养前期就介入了与英特尔的合作,「他们在进行工作的过程中获得了很多英特尔资深工程师的指点,现在他们的底层硬件的理解和操作能力,要远远超过一般课程培养出来的学生。」
而能够「往前一步」的,除了以博士生为主的研究人员,当然也包含本科生。成立于今年 3 月的南京大学人工智能学院刚刚迎来了第一批入学的本科生,之前公开的一年级课表里,引人注目的是数学课:既包含了原先只有数学系学生需要学的《数学分析》和《高等代数》,也包含了原先只有计算机系学生需要学的《离散数学》。而本次周志华还透露,之后的专业课里还有一门是关于「智能芯片」。
「我们希望能够培养出人工智能领域高水平的人才,其中一条就是希望他们能够兼备人工智能需要的软硬件能力。我们在考虑引进一些与芯片、硬件设计相关的课程,其中有一门课就是关于智能芯片的,而英特尔的合作为我们这方面的人才培养提供了一个非常好的支持。」
这是南京大学的角度。而从英特尔的角度,硬件的设计需要考虑「未来的算法」,因此除了从学界获得前沿的算法动向,培养了解硬件、能够同时思考软硬件问题的研究者也同样重要。
宋继强说「硬件的设计周期是很长的,我需要预先知道哪些运算模块在未来会非常重要,通过联合实验室的方式,我们挑选能够『看到未来』的领域开拓者,让学界在英特尔的硬件上进行重要的工作负载尝试,从他们的方向上去寻找未来的方向,为我们的硬件架构设计提供很好的指导。」
英特尔与南大的人工智能联合研究中心的合作框架以三年为期,届时南大人工智能学院的全学年学生均已入学,而英特尔对于如何调整芯片设计思路以使其更适应广义深度学习时代的思路,也会更明朗地体现在通用 CPU、专用于神经网络加速的 NNP、 为终端深度学习模型提供专门算力的 VPU 等等芯片中。届时深度森林以及其他「广义深度学习」方法的能力范围,会随着算力的升级有怎样的提升呢?我们对此拭目以待。