第一次听说机器学习是在超哥的线代课上,大概是开学第一课吧,以微积分,线代,概率论为基础,构建了一个庞大的知识体系。具体细节已经记不清了,现在还有一些印象的就是下面这个关系了:
image.png
后来在数学建模学习中接触到了一些机器学习的内容,再后来囫囵吞枣地看完了西瓜书,知道了一些 ML 方法,算个半吊子。最近看了佩德罗·多明戈斯的《终极算法》,对机器学习有了更加清晰自顶向下的认识,摘记一些内容,分享浅见,欢迎批评指正。

为什么机器学习

机器学习是基于数据的学习,从数据中学习一切法则。与之对应的是知识工程,将一切知识翻译成计算机程序。但是很多知识,很难依靠我们的大脑进行编码。比如一个224×224×3的矩阵(这么说是因为计算机看到的是矩阵,而非图片)里有哪种动物,人类无法把判断的方法直接告诉机器,但是可以让机器自己学习。作者相信,存在基于机器学习的终极算法,在足够的数据支持下可以掌握世界上所有的规则。作者介绍了机器学习(监督学习)的五大学派,以及无监督学习和强化学习,为寻找终极算法提供了一些线索。
五种学派从不同的角度探索如何学习,他们有自己的评价标准,并为了达到更好的评价,提出了各自的优化方法。
image.png

符号学派:归纳问题

符号的概念比较抽象,说是属性或者特征或许更容易理解。比如西瓜的脐部状态可以看做一个符号,他有3个值:凹陷、稍凹和平坦。归纳和演绎是逻辑思维中的两种最基本的推理方法,符号学派的方案由此展开。
符号学派获得最优的推理模式的方法是逆向演绎。演绎是由一般到特殊的过程。比如:
《终极算法》 阅读笔记 - 图3
逆向演绎,也就是归纳,是从特殊到一般的过程。比如:
《终极算法》 阅读笔记 - 图4
符号学派使用符号、规则和逻辑来进行知识表征和推理。比如西瓜书中的这棵决策树,用它来判断好瓜还是坏瓜是演绎,而得到这棵树的过程是归纳。
image.png
具体地说,如果脐部平坦的瓜大多数(这反应了符号学派的评价标准——准确度)是坏瓜,我们就可以归纳出:脐部平坦的瓜都是坏瓜。这是不完全归纳,但是在有限的规则下能得到较为准确的答案。那么如何定量地从数据中学习到最佳的规则和逻辑呢?归纳的目的是减小信息的不确定性,寻找一个能最大程度减小不确定性的属性即可。熵是不确定性的度量,在寻找决策树的分支时,每次选取熵最小的那种属性就可以了,这便是定量归纳的方法。

联结学派:大脑如何学习

联结学派认为,能够用逻辑来定义的概念只是冰山一角,底下的形式推理无法看到,而大脑可以完成复杂的任务。二者的区别主要在:

  • 符号学派中,符号和他们代表的概念之间有一一对应的关系;而大脑中,每个概念由多个神经元表示,每个神经元又和其他神经元一起表示多个概念。
  • 符号学派串行推理,在逆向演绎中一步一步弄明白,而所有的神经元会一起学习,并行运算。

神经网络是对神经元传递消息的模拟,树突接受信息,细胞体通过线性叠加处理信息,轴突输出信息。通过非线性的激活函数来完成非线性的任务。(图源周志华《机器学习》)
image.png
权重的学习来自于梯度下降法,神经元层层叠加,通过导数的链式法则,将误差从输出层逐层向前传递,更新权重。

进化学派:自然的学习算法

大脑的具备的所有能力学习从何而来?答案是进化。于是,模拟染色体交叉变异的遗传算法就诞生了。我觉得,遗传算法的本质是一种优化算法,而不是像其他学派一样有他们自己的描述知识表征的方法。这或许是多数机器学习的著作里并没有提到遗传算法的原因。类似采用自然的学习算法还有模拟退火、粒子群、蚁群算法等等,但我想,抛开适用场景和假设不谈,生物进化给人的感觉好像更贴近“终极”一点吧。
遗传算法的优化目标,也就是评价指标,是适应度函数,这也只是一种偏向生物学的叫法。决策变量可以是任何东西,只要能将其编码成合适数据结构,用计算机表述出来就可以。遗传算法通过不同个体的编码段的交换、添加突变来模拟染色体的交叉和变异,舍去适应度低的个体,再进行循环,来模拟自然选择。和一般的优化算法相比,遗传算法可以处理非线性、不连续的优化问题。但比起梯度下降这样有明确方向的算法,靠随机的交叉和变异来迭代似乎不是一种高效率的方法。

贝叶斯学派:证据决定概率

贝叶斯学派用概率来表示世界,从“观察者知识不完备”这一出发点开始,用收集到的证据来进行概率推理。在贝叶斯公式中,P(B) 是在获取到某些证据之前对事件 B 的不确定性的猜测,称为先验概率。条件概率 P(A|B) 就是收集到的证据,也叫似然。似然是文言的译法,说成可能性或许更容易理解。我理解的贝叶斯公式的内涵,是在已有的证据(A发生)下,去修正先验概率,推理出 B 发生的概率,即后验概率 P(B|A)。这样,我们就可以在一张事件的网络中,根据已知的信息进行概率推理。
《终极算法》 阅读笔记 - 图7

类推学派:像什么就是什么

像什么就是什么来自很朴素的假设:有已知属性相似的实体,其未知属性也相似。两个样本之间的相似度可以用距离来衡量。K-邻近算法,就是直接计算新数据和哪个已知样本的距离最近,那就认为他的未知属性就和这个样本的一样。另一种运用距离划分的思路,是求解能够正确划分训练数据集并且几何间隔最大的分离超平面,即支持向量机。优化求解过程在西瓜书里有详细的介绍,此处便不赘述。

我的感受

如果要说五个学派之间的关系如何,在我看来,他们像五位面壁者,对世界有着自己的假设,在此之下提出各自的方法进行实践。在 Google Scholar 上搜索相关论文便知,近来来神经网络是几个学派中最热门的研究。其他方向上,比如符号学派和贝叶斯学派,都有和神经网络相结合的研究。
这本书举了大量的例子,但对于没有任何机器学习基础的中文读者来说还是比较难懂的,有读者指出了翻译的问题,希望以后有时间阅读英文原著。由于文化的差异和我的数理基础不够扎实,有些内容我确实没有看懂。当然,作者能把高深的理论用浅显的语言娓娓道来,已经做得相当不错了。我最大的收获就是对几大学派的中心思想和有了更多的了解人生,当然还有这些机器学习算法在生物、金融等等大数据分析中的广泛应用。
最后,关于终极算法在哪,有知乎博主给出了看法:终极算法依赖于终极算力。我觉得,算法、数据和算力缺一不可。单从算法来说,现有算法的融合、创新都可能使我们离这个最终目标越来越近。

  • 听君一席话,如听一席话

ed6383d40f1d21551cc0ab659af1d6f.jpg