啸林 2017-08-04
周志华教授是蜚声国内外的机器学习专家,也是本届中国人工智能大会的主席之一。他的《机器学习》2016年1月出版之后,迅速成为这个领域的一本权威教材,在一年半的时间里重印十几次,发行逾16万册,并被冠以“西瓜书”的昵称,成为这一轮 AI 热潮的一个重要注脚。周志华教授潜心学术,为人低调,极少接受采访。这次中国人工智能大会上,由会议安排,他破例接受了AI科技大本营(微信ID:rgznai100)的专访,就很多重要问题坦率的谈了自己的看法。我们特将内容整理成文,以飨读者。
孟岩:感谢周教授接受采访。先谈谈当下最火的深度学习。河南大学的张重生教授在他的《深度学习》一书里摘录了你的一段话,是这么说的:
有点幽默,但很朴实,深度学习现在差不多就是民工活,调来调去,刷来刷去。文章发得飞快,貌似热闹,但有多少是能积淀下来的实质真进展,又有多少是换个数据就不靠谱了的蒙事撞大运?既缺乏清澈干净的内在美感,又不致力于去伪存真、正本清源,只图热闹好看,迟早把 arXiv 变成废纸堆。
看来,对今天深度学习火爆的局面,您有您的不以为然。能否详细的解释一下您的观点?
周志华:不要误会,深度学习技术本身确实非常有用,能解决很多难题。有问题的是我看到国内的一种态势,什么东西一热起来,大家一拥而上,把所有其他东西全部都忽略了,好像机器学习乃至人工智能里面只有深度学习,这是很大的问题。
深度学习中间还有很多困难而又重要的问题值得深入研究,但这些真正值得研究的问题,就我看到的情况而言,好像做的人非常少。大多数人在干什么呢?拿它做做应用,调调参数,性能刷几个点,然后发几篇文章。这样虽然容易发表文章,但恐怕很难产生有影响的成果。工业界倒是没什么,不管用什么技术,产品性能提升了就好,但是学术界这样就不太正常了,都去做深度学习的应用,不去研究深度学习机器学习里面更本质的问题,我担心很多年轻人的聪明才智被耽误了。
另一方面,如果所有的人都只看到深度学习,忽略了其他研究内容,这是相当危险的。例如我们回顾一下,2010年左右的时候,有多少人意识到神经网络技术很有用了?很少。但其实这方面早在2005年左右的时候就已经突破了。那么当时为什么意识不到呢?因为大家都在追热门,而神经网络当时是冷门。这样的事情会不会重演?也许10年之后很重要的技术,今天已经有苗头了,如果我们全都扑向深度学习,根本不去关心其他的东西,那会不会把未来丢掉了?
孟岩:现在很多人都想学习深度学习,沾沾仙气。一般来说学习深度学习,总还是要具备一个比较完整的机器学习基础。但现在很多人不学机器学习基础课,一上来就搞深度学习,好像也能学得会,您赞成这种速成法吗?
周志华:这要看学习的目的是什么。
如果仅仅是为了使用现有的深度学习工具去做应用、解决已经清楚定义好的任务,那么可以去学速成法。只不过,这样的工作很容易被其他人替代。如果学习的目的是为了深入理解,为了在深度学习的研究里面有自己的创新,或者为了自如地解决那些没人给你清楚定义好的任务,那么恐怕还是要从打好基础开始。这就像武侠小说里的“正宗功夫”要慢慢打基础,“邪门功夫”上手快、短期内更“厉害”,但是到了后来,邪门功夫到了一定程度就会上不去了。
孟岩:也就是说您认为深度学习是对传统方法的一次反转,而未来还会有别的方法来反转深度学习。您觉得这个可能性有多大?
周志华:“反转”这个词未必合适,但是必然会有更强的技术出现。
孟岩:会是什么?概率图模型还有戏吗?
周志华:我们没法准确的“预知未来”。我想我们应该去关注一些重要的问题,这些问题在什么时候能得到解决,就可能带来新的突破。这涉及到很多其他方面的因素甚至机遇,没法能够事先规划出来下一个东西爆发点在哪。所以我觉得我们千万不要把眼光局限在一个地方。至于概率图模型,它有它的短板,也有它擅长的问题。
孟岩:我知道您偏爱集成学习方法。现在的随机森林算法、XGBoost 算法,效果很好,非常流行。不过我们都知道机器学习有所谓的“No free lunch theorem”,也就是说对于一般的问题,任意两种机器学习算法的期望性能都相同,没有哪一种方法是有绝对优势的。可是现实情况是,在 Kaggle 和其他的机器学习大赛当中,深度学习和 XGBoost 基本上一统天下。这种情况为什么会出现?
周志华:机器学习技术解决现实问题的时候,通常要“度身定做”,根据问题的特性去对方法做改造、甚至设计出专门的新方法,才能有更好的效果。但是能这样做的人不多,需要很资深的专家。Kaggle之类的比赛里面,普通级别的玩家比较多,这时候比较热门流行的技术就比较容易被关注、被尝试,并且深度学习和XGBoost都有现成的工具,很容易就被拿来用。不过我们应该意识到,在某个比赛上获得优胜的方法,未必是在这个任务上最优秀的技术。因为比赛的名次和很多东西有关,例如两种不同的方法,使用的人经验不同、花的功夫不同、使用的资源不同,最后的名次是因为方法本身的差别导致的,还是其他因素导致的,很难说。
孟岩:您前一段时间发表了一篇文章,提出了 Deep Forest 算法,引起广泛的关注。它是怎么出来的?现在进行到什么阶段了?
周志华:这个工作是希望能打开一个新的方向。今天在很多涉及到图像、声音的任务中,深度学习表现很出色。我们可以从两方面来看。一方面,现在当大家说到深度学习的时候,基本上就是在谈深度神经网络,甚至很多人认为深度学习只能通过神经网络来做。那么,深度学习是不是只能通过神经网络做?用别的结构行不行?这在理论上是很重要的一个问题。因为神经网络基本部件是可微分的,这直接导致了后续误差逆传播等技术选择,而现实世界当中并不是所有的规律都是平滑可微分的,非要用可微分的部件来建模,一定是最佳路径吗?而且机器学习中有很多类型的部件,其中相当一部分是不可微分的,基于这些部件能不能进行深度学习?这些问题我们希望探索一下,可能会产生新的启发。
另一方面,从应用的角度看,虽然今天深度神经网络在很多任务上性能很好,但仍然有很多任务,像随机森林这样的技术表现出色,甚至比深度学习效果还好。那么,如果能做出深度森林来,会不会在这些任务上有更好的结果呢?从某种意义上说,相当于是把深度学习的适用范围推广到更多的任务上去,这是它在应用上的价值。
就这个工作来说,我们更关心的是这条路能不能走,毕竟这是一条新的道路。如果能走,性能改进和效率提升是后面的事,有很大的空间。至于能走多远,现在我们也不清楚。就像20来年前,卷积神经网络刚出来的时候,没人预料到它后来掀起了深度学习的热潮。
孟岩:所以 Deep Forest 不是小打小闹,是您战略性的研究方向,是不是这样?
周志华:这个工作确实考虑了很长时间。它主要是关于我关心的两个问题,第一个是基于不可微分的部件怎么做成深度模型,第二是对于集成方法和基于树的结构,我们有没有办法通过引入深度学习的思想把它的性能做的更好。这两个在机器学习中应该算是比较重要和基本的问题。
孟岩:我们谈您的书,现在大家昵称为西瓜书,我买的时候发行了7万册,现在有10万册了吧。
周志华:15、16万左右。
孟岩:那我估计是世界上发行量最大的一本机器学习专著了。这本书您说得很清楚,是一本教材。但是据我所知,还有很大一部分在职工程师甚至技术管理者也在读。我听到两个截然不同的评价。我有一个做计算机视觉的朋友,公司在国内还挺有名气,他喜欢直接从学校里面招人,招大三或者研二的优秀学生,拉过来培训、实习。培训的时候要讲机器学习大基础课,指定用您的书做教材,效果特别好。他们也跟一些国外的名著做了比较,发现就是西瓜书最好用。这是很好的正面的评价。另外一个评价,我有另一个朋友做移动互联网,他让他非常有经验的工程师买您的书学机器学习,结果这些工程师都叫苦,说看不懂。您怎么评价这两个截然不同的反馈?
周志华:这本书主要是希望在较少的篇幅内,以相对轻松的方式帮助读者对机器学习有一个全面的了解。
它最主要的用途,一是为初学者了解机器学习领域整体的轮廓,知道机器学习里大概有哪些东西,以便以后根据自己的需求和兴趣进一步深入学习,另一个是在读者阅读了许多材料之后,对知识体系做一个梳理。其实在机器学习里面,关于某个具体分支话题的书籍或阅读材料很多,但是以全面的、没有学派偏见的方式来介绍机器学习全貌,这样的读物不多,这本书算是这个方向的一个努力。
另外,由于着眼点是帮助读者建立机器学习大局观,这本书更多的是关于机器学习中的一些“思想”和“道理”,而不是一个算法速查手册,为了确保每章篇幅不要太长,不重要的细节会比较简略。
所以如同我在前言、后记里面一直强调的,这是一本教科书,老师可以根据学生的情况来决定如何发挥。如果自学的话,建议读者先不要纠缠在细节上,而是利用本书建立了整体框架之后,根据阅读材料的指引去做进一步了解,然后再回到本书做一个重新梳理。
如果是希望很短的时间内上手,学习使用现有的机器学习算法、工具去做应用,去解决已经清楚定义好的任务,那么这本书可能不是最合适的,直接面向速成应用的书可能更合适一些。另外,如果只希望知道一些算法是怎么工作的,不关心它为什么是这样,那么这本书可能也不是最合适的,一些算法速查手册类型的书更合适。
孟岩:现在类似 Scikit-learn这样的工具,已经做到了流水线化,把十几种模型串在一起,跑一晚上,早上起来,哪一个模型最好、哪一组参数匹配效果最佳,就都知道了。您那本书都不用看,看一下线上的手册就可以上工了,而且其实现在企业还愿意为这样的人付高薪。您觉得这样的人有什么问题吗?
周志华:没什么问题,取向不同而已。拿修大楼来打一个比方,建筑工人只要能照着现成的图纸把砖砌好就可以了,建筑工地需求量很大的时候,能砌好砖也许就能拿不错的工资。但有朝一日,你想自己设计大楼,就必须懂得一些思想。现在机器学习方面的人员需求量非常大,远远供不应求,所以一些相对低端的事情也可以拿到高薪,但我相信这方面的人员缺口很容易补上,多了之后,企业很自然会需要有更深入理解的人、专家级别的人,而这类人才的缺口补起来就很困难了。
孟岩:那如果我本身是个工程师,有工作,但是也想深入研究一下机器学习,不满足于就是用用工具,还是希望能够在这个领域达到一个比较高的水平,做一个有思想的人,有深入理解的人,我该怎么办?
周志华:可以先看一些操作型的材料,会用工具,能应付本职日常工作。然后有时间的话,阅读一些着眼于介绍某几种常用具体算法的书。如果还希望进一步理解算法背后的思想和道理以便融会贯通,那就再进一步阅读全面介绍机器学习的书籍,我的书在这方面可以作为一个基础读物。这样的学习过程对希望全面建构机器学习知识体系的读者不是最佳,但是对工程人员,考虑到平时能拿出来的完整时间不多,数理基础可能也相对生疏了,也许这样的过程比较可行。
孟岩:您会出视频教程吗?
周志华:教学需要因材施教。在课堂上我能看到学生有什么样的反应,我才知道下面应该怎么讲。每样材料都可以有多种阐述方式,要根据学生的反应来调整。视频上没法做到。
孟岩:您在西瓜书的序言里面写过,当年在图书馆里面翻到一本机器学习的书就决定投身机器学习这个行业里面了。您为什么当时看了这样一本机器学习的书就确定这是您的重要方向呢?我相信您不止看了一本书,有很多的方向摆在您面前,您怎么那么有先见之明就挑了这么个未来大热门?
周志华:那是一本文集,《机器学习:一种人工智能途径》,今天一般认为它是关于机器学习的第一本专门文献。里面有很多先驱写的文章。其实这样的“老读物”很值得读,里面的一些思想即便在今天也很有指导意义。
确实看过很多其他的书,在人工智能里面很多分支领域的材料都读过一些。我很赞同图灵奖得主Dijkstra的一句话,他说“计算机科学并不仅是关于计算机,就像天文学并不仅是关于望远镜”。天文学的研究早期是关注如何建造更好的望远镜,但是到了后来,主要是在关注如何“用”望远镜开展研究。计算机科学的研究一开始当然也是关注如何“造”计算机,让计算机更好地运转,但是未来当然是要关注如何“用”计算机去认识和改造世界。这里面最重要的无疑是用计算机来对数据进行分析,因为这是计算的主要目的,而这恰好是机器学习的主要用处。
孟岩:您当时就看得这么清楚了?这很不容易呀,九十年代的计算机科学也是琳琅满目,您怎么那么笃定?那个时候在国内搞机器学习是很孤独的,一般人很难支持,也需要很大的毅力,你怎么就那么笃信一定会起来。
周志华:坚持自己的判断,做自己认为重要的事吧。