前言:机器学习算法思想归类
在神经网络火起来之间前,其实由各种流派的存在,而不仅仅是神经网络一家独大。
在机器学习中,我们学过许多分类聚类问题的解决办法,比如:纯概率论的K均值聚类、基于先验知识的贝叶斯分类、支持向量机、神经网络等等。那为什么到了现在只有神经网络一家独大了呢?
其实以上个各种方法,可以归类为三种不同的思维流程:推理、演绎、归纳。
-
比如纯数学概率论的K均值聚类,就是一种从正面解决问题的推理过程。
-
又比如基于先验知识的贝叶斯分类,属于演绎推理的过程,不再单纯依赖数学概率逻辑解决问题。
-
又比如神经网络,典型的归纳逻辑,抛弃了概率论的所有规则与结论,从现有数据出发进行经验的总结。
推理:数学人的工作
这是一种纯理性的方法,一般都是由数学的严谨推理得出的一些前后逻辑关系,进而构成数学模型来解决实际问题。如果猫狗分类的过程,能用推理来完成,就是找到一种严谨的数学推理来做到对不同的类别(猫狗)进行准确无误的识别判断。一旦推导出猫狗识别的数学逻辑,从数学上进行证明,那么就建立了一个白箱模型,只要知道输入就可以得到满分输出。
以前的数学家们尝试过,也就是所谓的”规则库“构建那一派人,但是对于再过复杂的智能问题而言,则无法建立规则或理论的推导了。
演绎:贝叶斯流派的推崇
演绎是一种从特殊到一般的推理过程,比如基于某些特定的例子,找到例子之间的相同点抽象出共性,就可以演绎为:满足这种共性的模型都具有相同的特征。但是要注意,这只是一种或然性,也就是说,即使前提是真的,分类的结果也可以为假。如果猫狗分类的例子,能用演绎来完成,就是根据猫狗之间的共性,得到主要区分它们的关系特征,进而根据这种基准对待测试的样本进行分类。
但大量的数据都存在或多或少的偶然性,无法抽丝剥茧出具体的结论,因此“贝叶斯理论”这一派主张先验知识的人们落幕了,因此在深度学习的领域当中,演绎也无法作为可行的思路。
归纳:一开始不起眼的神经网络
说白了,现在使用的机器学习深度学习,都不满足上面两种条件,无法作为一个单纯的数学问题来通过推理建模进行解决,只能通过归纳现有的训练集数据内容,总结出一些特征(即模型训练后得到的权重),根据这些特征在测试集中进行识别分类。
归纳是什么呢?归纳是一种最不接近理性的思维方法,主要通过总结经验来达到分类或预测的目的。
如果前面两种思维方法可以看成是从问题的正向进行处理,那归纳就是一种逆向思维过程,从现有的结果中获取经验反过来解决其他问题的过程。所以我们也称神经网络是一种“数学黑箱模型”。
总结:为什么人工智能只用神经网络
也就是说,在机器学习那么多的智能计算方法中,只有神经网络这种“黑箱模型”脱颖而出,其他的机器学习方法仍无法踏足人工智能领域。我觉得有以下几个原因:
-
现实世界存在着大量的不确定性与模糊性。问题的描述都无法一成不变的准确描述,还谈什么精确的数学推导呢。比如在图像识别中,同一物体在不同的光照、角度下会存在很大差异,比如自然语言处理中,我们使用的语言就存在很大的模糊性(可以了解模糊集合)。
-
现实世界的关系太过复杂。现实世界问题十分复杂繁杂,不像数学模型中经常用到的“理想环境”,要将所有的现实逻辑用符号准确表达并建立联系是一件非常困难的事情,还不如由下至上用经验来概括。
-
数据的大量增长。就在人们一筹莫展的时候,随着机器硬件的升级,大量的数据喷涌而来,为神经网络这种需要训练集经验总结提取特征的归纳方法奠定了基础,也顺应了时代的趋势。
总之,在我看来,人工智能中推理、演绎方法无效的根本原因在于:现实世界不存在“理想环境”,存在大量的不确定性与模糊性,与数学推理这种纯理性的方法大相径庭。