【在线直播】《TensorFlow实战》作者、PPmoney大数据算法总监黄文坚老师即将开课:《使用TensorFlow创建可自动玩游戏的DQN模型》,本次课程集中讲解Deep-Q Network及其TensorFlow的实现。点击报名
眼下深度学习是整个 IT 领域中最热门的技术之一。虽然它只是机器学习五大学派数十种算法之一,但从媒体关注度、论文发表数量和创业投资热度来说,在人工智能、数据科技领域大有力压群雄、独领风骚之势,以至于现在有些希望进入到这个领域的初学者,非常心急的问,是不是有了深度学习,其他的方法就都成了废柴?可不可以直接无视其他方法,只学深度学习?
要回答这个问题,我们得先梳理一下深度学习的“成名之路”。其实,深度学习能有现在这样的声势,一个重要的原因是半路截胡。截了谁的胡呢?大数据分析。
我们来梳理一下大数据分析这个技术方向的发展过程。大约十年前,在数据库领域里掠过一阵劲风,叫“商业智能(Business Intelligence,简称 BI)”。BI 以数据仓库为中心,用多维数据立方体、在线分析、数据挖掘和实时报表等技术为企业提供数据可视化服务,进行业务分析、预测和决策建议。因为 BI 确实能够带来商业收益,所以企业愿意投资买单。但是在 BI 中,能够体现“Intelligence”的数据分析(当时叫数据挖掘)其实只是配角,真正抓眼球的是实时报表,尤其是在中国。你随便抓一个当年做过企业应用系统的人问问,就知道一个漂亮的报表子系统在当时多么重要。至于数据挖掘,一则数据量不足、数据质量不高,二则领导们也不信任你推出来的那些结论,所以不太受待见。
数据分析咸鱼翻身还得归功于互联网。2009和2010年前后,移动互联网爆发,一部智能手机就相当于一个强大的数据采集器,数据量上来了,再加上 Hadoop 和 Nosql 数据库的大发展,互联网企业率先认识到数据里的价值,“数据分析”大潮涌动。因此当2012年“大数据”概念一叫起来,立刻蹿红。整个 IT 行业都认识到了,数据就是金矿。大数据、MapReduce 成了显学。但请注意,当时的大数据强调的是“大”和“快”,就是在大规模计算机集群上进行快速的数据处理和统计。我们直到今天还能看到很多非常“大数据”的分析文章,什么词汇分析,社交关系分析,内容极其详尽,可视化做得也漂亮,不过全都是关于已经发生的事情,没有预测能力。
不过到了2014年之后,企业走向“大数据分析”和“机器学习”的趋势就十分明显了。在国外,“数据科学”开始成为显学,企业看到了实实在在的收益,越来越舍得投资开发数据分析系统,各名校纷纷开设数据科学、机器学习课程甚至专业。这股数据科学热很快传到中国。
所以到了2016年的时候,一小部分公众对于大数据、数据科学、机器学习、数据挖掘这些技术已经有了一些了解和信任,并且有所期待,有些企业已经在其中获得了收益,就等着出现一个大的公关事件来引爆。但请注意,这条从十几年前一路走下来的商业大数据分析发展线路,实际上跟深度学习没什么关系。然而几乎就在一夜之间,这些了解、信任和期待就被深度学习截了胡。
深度学习又是怎么回事呢?深度学习其实就是大规模人工神经网络。最早的深度学习网络出现在1965年,五十多年几起几伏,但其影响力一直封闭在小小的学术圈子里。到了2006年的时候,也就是上面说 BI 劲风刮起前后,深度学习已经奄奄一息,全世界只有三个小的科研团队在研究深度学习。然后就出现了神剧情反转,2012年,多伦多大学 Jeff Hinton 教授的团队在 ImageNet 大赛中用深度卷积神经网络一举将图片识别错误率降低了将近10个百分点,轰动了整个机器学习圈子。随后就是大家可想而知的局面,在发现了这样一个富矿之后,一大波博士蜂拥而至,相关的论文爆发式增长。但是直到2016年之前,深度学习主要只是在计算机视觉、语音识别和自然语言处理几个科研圈子里的独门绝技,并不为外界所知。
深度学习在公众面前爆得大名,还是要归功于AlphaGo的胜利和自动驾驶汽车的进展。 AlphaGo战胜李世石之后,相关的媒体报道重点渲染了两个技术,一个是蒙特卡洛树搜索算法,一个是深度神经网络。公众记不住也理解不了什么蒙特卡洛,但是深度神经网络好像听起来似懂非懂的挺撩人。再一看特斯拉自动驾驶也用了深度学习,于是深度学习火了,成为机器智能、大数据分析的代表热词了,相关的博士拿到了天价年薪。在公众眼里,叫了这么多年的商业智能、数据分析、大数据、机器学习,你们终于捧出来一个真正牛叉的东西,能识别猫,能听懂语音,能跟人聊天,能战胜围棋九段。不用说了,this is it,就是它了,深度学习就是机器学习的集大成者,就是代表作,就是天网,就是 Matrix。之前人们对于大数据分析的那些憧憬、热情和恐惧,现在一并由深度学习截胡代领了。
但问题就在这里。实际上深度学习代表不了机器学习和数据科学的全貌。如果你不满足于只是刷刷论文,而是真的要在行业中应用深度学习,那么会发现很多问题。
从应用领域上说,深度学习主要用于计算机视觉、语音和自然语言处理,在其他领域的应用尚未打开局面。当然这几个领域具有巨大的实用价值,比如基于这几项技术就可以开发出自动驾驶、机器人、新的人机交互接口。李开复就曾经说,光自动驾驶一项,其创造的价值就不会亚于互联网。这是事实。但是另一方面,如果你要进行医疗诊断、预测商品价格、推荐商品、分析贷款风险、规划最佳旅游方案,深度学习就没什么优势了。
为什么呢?因为深度学习,或者说神经网络有三个突出的缺点。第一是不适合于“小数据”分析,第二是需要海量的有标注数据,第三是不透明。
首先,在现实应用中,我们经常会遇到的并不是大数据分析,而是小数据分析。特别是当特征比较多的时候,即便在我们看来很大量的数据,放在一个高维空间里,都是非常稀疏的“小数据”。所以哥伦比亚大学统计学教授 Andrew Gelman 有一句名言:“样本从来都不够大”。而在数据量较小的时候,无法“喂饱”深度学习,也就很难产生好的模型,这个时候支持向量机、集成方法甚至带惩罚项的线性模型都能够轻松超过深度学习。
其次,深度学习需要海量的有标注数据,对于初创企业和小团队来说成为难以逾越的障碍。深度学习有一个优点,就是不需要人手工选择特征集,而是可以通过自己学习来选择特征集,这就是所谓的表示学习,或称特征学习。2001年吴恩达创建 Google Brain 项目之后,在没有事先标注的情况下,仅通过观看 YouTube 上的视频,就能够建立起一些高层次的概念,比如“猫”。这一实验就是体现了表示学习的能力。但这并不是说深度学习可以全自动学习,事实上恰好相反,深度学习需要海量的标注数据。目前能够公开获得的有标注开源数据集寥寥无几,不过是 ImageNet、FDDB、LFW 等。所有的科研团队、创业企业都围着这几个数据集调参数、刷论文。相反,大型互联网公司能够获得大规模的标注数据,而它们显然不愿意将这些数据开放出来,这样就使得深度学习的技术竞争变成资金和资源的竞争了。
第三个问题是深度神经网络训练完成后,内部形成的模型极其复杂,几乎无人可以理解,如果一旦出错,很难可以给出合理的解释,也很难进行有效的调整。而在很多行业当中,这是不能被接受的。比如在医疗行业中,如果出现误诊,势必要求在模型中寻找问题的根源,进行调整,防止今后再现。而深度学习就很难做到这一点。相比之下,概率图模型(贝叶斯网络、马尔科夫随机场)不但可以构造复杂的模型,而且对每一个决策都可以进行清晰的解释,显然更适合这种场景。
因为有以上这几个缺点,深度学习没有、也不可能一统江湖,“灭”掉其他机器学习门派。事实上,在 Kaggle 的竞赛当中,深度学习只是在涉及到计算机视觉、语音和一部分自然语言处理相关的任务中表现出优势,而大多数竞赛项目被 XGBoost 统治。所以,如果你以为深度学习一出,就可以包打天下了,那你就想多了,还是塌下心来扎扎实实的把机器学习基础内容好好学一遍,未来才能真正处变不惊。
作者:孟岩
来源: AI100 http://mp.weixin.qq.com/s/jWcRspZFIcNFYYSatKaezg
欢迎人工智能领域技术投稿、约稿、给文章纠错,请发送邮件至[email protected]