人工智能、机器学习和深度学习的关系
在智能科学领域,有一个初学者很爱问的问题:人工智能、机器学习和深度学习三者有什么联系和区别?
这个是既简单又复杂的问题。这个问题是有标准答案的。答:三者是包含关系,即人工智能包含机器学习,机器学习包含深度学习。
可是,如果你一旦细究,就会发现这个问题远比标准答案要复杂得多。
先说一个很容易产生的误区。我们在新闻上经常能看到:某某产品使用了人工智能技术,就具备了怎样“叹为观止”的能力,让人很容易产生一种错觉,以为人工智能和涡轮增压一样,就是一种技术,所有的“人工智能”产品,用到的都是同一种叫“人工智能”的技术。
但实际上,人工智能是一片森林,森林里的每一棵树,都是一条技术原理完全不同的路线。为什么会有这么多不同的路线呢?原因很简单,别看一说人工智能,许多大V都能侃侃而谈,其实大家都在盲人摸象,直到现在也还不知道到底哪一条才是通往真正智能的康庄大道。可能都是,也可能都不是,怎么办呢?那就多路并举。
有多少路呢?总的来说可以分为三路,或者叫三种主流学派:符号主义、连接主义和行为主义。你随便去翻一本人工智能的教材,你就能看到这三种主义都是什么。
不过,这并非唯一的分法。一些文献会将主要路线分为两条:基于规则和基于统计。我更喜欢这种分法——清晰、易懂、好落地。
基于规则的想法很朴素,譬如说语法分析:如果我把所有的语法规则都穷尽了,做出来的语法分析器不就“智能”了吗?理想很丰满,现实很骨感,最大的问题就在于“大”——工作量大。基于规则的路线很多人试了,结论就是:哪怕只是语法,不同的情况也非常多,要穷尽所有规则只能是挂一漏万,人力不可能为之。
目前的赢家是基于统计,优势是成本低,不需要人肉写规则,而且效果还好。机器学习就是基于统计的智能算法。
初学者经常爱问的另一个问题是“机器学习的本质是什么”。我认为很简单,就是用模型拟合数据的分布。对于机器学习来说,数据很重要,非常重要,学过机器学习的同学可能听过一句话,叫“数据决定了性能的天花板”,而选择哪款模型,则决定你与天花板的距离。
可是,为什么呢?就是因为:机器学习的本质是拟合数据的分布。
如果你得到的数据质量并不好,样本分布和真实分布存在偏差,模型的性能就一定好不了。这就相当于,你考试前背答案,但是答案本身就错了,你背得越熟,结果只能错得越离谱。
机器学习也不是某一种技术,而是一筐技术。
譬如有支持向量机、决策树、最近邻等等,单拎出来都可以算是一条技术路线,其中有一路叫神经网络,有的人觉得应该和生物学的神经网络有所区别,应该叫人工神经网络(ANN)——以生物学的神经网络为蓝本设计的机器学习算法。
光听名字,就让人感觉这个算法非常有前途,实际上也确实很有前途,现在大名鼎鼎的深度学习,就是神经网络的Plus版。
从神经网络到深度学习
神经网络和深度学习的关系是个热门话题,甚至干脆就叫这个名字的书我都翻过好几本。相关的内容我也写过几次分享,最近在看一本书,是Charu C.Aggarwal写的《神经网络与深度学习》,对这个话题又有更深的了解。
我们知道,近几年人工智能又成了热议的话题和投资的风口,而推高这一波热潮的技术叫深度学习。前面介绍了人工智能、机器学习和深度学习三者是包含关系,不过还是有不少不严谨的媒体,俨然把深度学习当作了人工智能的代名词,那接下来就专门聊聊,这个深度学习到底是怎么一回事。
上面我们提到了神经网络,从技术脉络来说,深度学习就是神经网络这一支系下的一条分叉。所谓深度,其实就是神经网络层数很多的意思。神经网络的发展历程非常曲折,经历了两次大低谷,每次都被打上“此路不通”的标签。
第一次是在1960年代,当时出了一本书叫《感知机》,这是一本在神经网络上具有里程碑意义的著作,在数学上证明了(单层)神经网络无法学习异或,也就是我们熟知的XOR操作。我看过有些教材上直接就写是“神经网络无法学习异或”,这是误导,我们现在使用的多层神经网络是可以学习异或的,严谨的表示应该是单层神经网络无法学习异或。
不过,当时的神经网络都是单层神经网络,所以这个证明结论在很多人看来是直接宣判神经网络的死刑,连很多神经网络领域的领军人物都纷纷另寻他路。
大家看到这里理应产生一个问题:现在深度学习大行其道,所有人都知道多层神经网络是完全可行的,单层神经网络的出路就是把层数加深,这么简单的破局之道,为什么连当时的大牛都看不到?
因为多层神经网络会导致误差难以传导。依靠误差调整权重是神经网络,乃至很多机器学习算法的所谓“学习”过程。简单增加神经网络的层数会导致什么问题呢?梯度消失。简单来说就是传回去的误差为0了,权重也就没法通过学习来调整了。这个问题至今仍然是困扰深度学习的一大难题。