【番外篇】谈谈机器学习数学基础的学习路径

在机器学习的算法中涉及到大量的数学基础内容,许多同学很想好好学习数学,为后面的算法学习做好准备。

在这一篇文章里,我们来仔细讲讲机器学习中所涉及到的数学知识吧。可以这么说:机器学习的数学基础主要萌发于三门课程, 高等数学、线性代数和概率统计。其中又以后两者更为居多

也许你会问了:这感觉像是没说,记得大学本科里咱们主要就是学了这三门数学课,考试也通过了,按理来说应该已经筑牢了基础,但是为什么感觉还是差点火候,使不上劲儿呢?

这确实是很多小伙伴们的共同心声,数学大家都学过了,为什么真正到用的时候就有些虚呢?我感觉问题在这三点:

1、本科课程中的知识点并没有完全覆盖机器领域学习所需。

我在第二段中说了,机器学习数学基础萌发于高等数学、线性代数和概率统计,注意我用了萌发这个词,意思是说需要的数学知识点来源于这三块领域,但绝不仅仅满足于本科的教学内容,事实上,线性代数(我们会在另一篇文章中仔细分析)所需的知识应该是本科的线性代数+研究生阶段的矩阵论的相关内容,而概率统计则更为广泛、深入一些。

回想一下本科概率统计的学习内容包含了什么?事件的概率、随机变量及其分布、数字特征、参数估计与假设检验。差不多就这些,很重要,很核心,但似乎是远远不够的吧。事实上,我们还需要补充随机过程、时间序列分析以及随机理论、信息论等一些重要的基础知识,才能说知识结构相对完整。

2、本科课程是数学基础理论课程,而不是面向机器学习的应用数学课程

这一点也很容易理解,因为大学开数学课的目的是讲授概率统计的基础理论,目的本来也不是为了给大家打牢机器学习的数学基础啊。

所以如果大家不专门针对性的分清重点,强化相关重点内容的学习,自然觉得平铺直叙没有针对性。

3、最后是吐槽一下国内本科教材自身固有的问题:重计算技巧,轻内在逻辑

大家一定都有这种感觉,学习本科数学的时候,线性代数,上来就是计算行列式,线性方程组的解,计算逆矩阵,矩阵的秩等等。概率统计呢,则是罗列了很多种分布,然后算期望、算方差。这样的结果就是数学变成了算术,还是在不停的做程序一秒钟就能做的事儿。至于说知识背后的内在逻辑和应用方法,基本上非常欠缺的,因此大家很容易考完就忘。

说了这么多,那应该如何重新来学习概率统计呢?你能设计一条知识路径么?

概率统计部分

行,那我来试试吧,我把机器学习急需学习和掌握的概率统计内容分为了八个部分,这八个部分一方面能够形成概率统计由浅入深、从核心延展到外围的一个知识体系,另一方面他能涵盖机器学习算法中所需的概率统计知识点。

第一部分:回顾概率核心理论

我们不必过多的纠缠于盒子里摸球,红的白的各有多少可能性这些基本问题,相信大家都懂。我认为最核心的是搞清楚条件概率的问题,并且理清联合概率、边缘概率、条件概率这几个核心概念。同时,在此基础上熟悉和掌握贝叶斯公式和相关理论。

第二部分:核心的几种随机变量的分布以及变量之间的关系

这一部分比较基础,我们需要掌握离散型随机变量的几种主要的分布,而连续型随机变量主要就是掌握正态分布即可。并且熟练运用程序的工具获取分布的期望、方差等数字特征,了解概率密度函数和累积分布函数。对多组不同的变量,熟悉协方差以及相关性的意义和计算方法。

第三部分:参数估计理论

这一部分的内容会在后续的算法中广泛的体现和运用,因此理论与方法显得格外重要。需要重点掌握最小偏差无偏估计、最大似然估计和贝叶斯估计的相关内容。并且学习EM算法。

第四部分:假设检验

了解基本的思想方法与程序工具的使用即可。

第五部分:建立随机理论的相关概念

这里首先需要掌握蒙特卡罗方法的基本思想。同时巩固贝叶斯的思想方法,接触一下马尔科夫蒙特卡洛(MCMC)算法,找一找处理实际问题的感觉。

第六部分:信息论

学习关于熵的一些理论,联合熵、条件熵、相对熵、互信息等概念,以及最大熵模型。

第七部分:随机过程初步理论和应用

随机过程本身是一门非常深的课程,素有随机过程随机过的江湖传闻。其实如果从应用的角度来讲,我们也不用在理论层面陷的太深,还是以基础知识和基本应用为主。

首先马尔科夫链是必须学习的,了解状态转移矩阵、多步转移、几种不同的状态分类、平稳分布等最基本的内容。然后在此概念基础上,学习隐马尔科夫链的相关内容,聚焦其基本概念,以及概率计算和参数学习的一些方法。

第八部分:时间序列分析

感觉这一块的内容相对更加独立,在借助pandas工具的基础上学习效果更好。重点是移动平均、相关性以及预测等内容。

看来内容比较全,远远超过了大学教材的范围,有些吓人呀。

其实不然,我想纠正一个误区,就是学习机器学习的数学基础和单纯学习数学比较起来是有一些不同的,基础二字就说明了在深度上适可而止、够用即可,反而更应注重知识体系的全面性。我们在学习的过程中,重点还是筑牢基础知识和概念,学会使用数学工具来研究更加实际的应用问题,而不是不停的纠结于工具本身。

top Created with Sketch.