专栏名称: 爱数据原统计网
中国统计网(www.itongji.cn),国内最大的数据分析门户网站。提供数据分析行业资讯,统计百科知识、数据分析、商业智能(BI)、数据挖掘技术,Excel、SPSS、SAS、R等数据分析软件等在线学习平台。
目录
相关文章推荐
51好读  ›  专栏  ›  爱数据原统计网

机器学习中需要哪些知识,你知道吗?

爱数据原统计网  · 公众号  · BI  · 2017-01-10 18:03

正文


机器学习最近几年火、很火、非常火。特别是去年AlphaGo完虐韩国围棋第一人李世石以后,大数据、机器学习、人工智能、深度学习等专业领域名词瞬间“飞入寻常百姓家”,成为街头巷间的热门话题。越来越多的人也对这个学科产生极大的兴趣,想一窥内中门道。

    


那么想要对机器学习有比较深入的了解,需要哪些知识呢?机器学习以数学理论为基础,所以无论你是想把机器学习作为一个研究课题,还是作为一个职业方向发展,拥有扎实的数学基础都是必不可少的。笔者本科是数学系的,硕士阶段的方向是机器学习,现在在一家互联网公司从事数据分析工作,就这个问题也有一些浅薄的认知,与大家分享一下。

 

微积分


 再切入微积分的重要性之前,我们先看看机器学习领域的顶级学者周志华教授对于机器学习的一个说明:机器学习是做一个什么事情呢?


我们拿到一些数据x,然后建立一些模型f,就是f(x)


我们希望这个模型f特别准确,也就是说f(x)和真实结果y非常接近,那么怎么算接近呢?就是他们之前的区别非常小,小于一个很小的值。


我们不能保证每次预测都完美,只能希望以大概率得到得到好结果,所谓大概率就是,其中这里是个非常小的量。


从上述表述我们不难发现,其实机器学习学习的模型实质是构建一个函数(或映射),而系统性的阐述函数相关的性质的学科就是微积分。

    


大学阶段如果是就读的理科专业,应该都会上过微积分相关的课程。一般而言数学专业这门课程会叫数学分析,而在其它的理科专业会叫高等数学。区别在于数学分析会偏重于证明(知其所以然),而高等数学会偏重于应用(知其然)。


如果你在大学阶段上过这些课并且已经把课本都还给老师了,在要学习机器学习算法之前,可以把书拿出来翻翻,了解诸如函数求导法则、导数运算法则、多元函数求极值、拉格朗日乘子法、泰勒公式展开等性质。如果完全没有微积分的知识,可以推荐先看下视频教学网站的课程(慕课网上有大量各校名师的微积分课程),除了视频,建议还是好好找本高等数学的教材学习下,推荐同济大学的教材。如果有更高的要求,想学习数学分析的相关知识,推荐看Principle of Mathematical Analysis。

 

线性代数


线性代数是了解机器学习必备的基础。为什么这么说呢?机器学习中最核心的一块内容:分类。分类理论上是生成一个分类器:这是一个系统,系统的输入是若干的离散或连续的向量,输出为一个离散值,即类别。现在关于分类,其实已经有很多很多的算法,不同的分类算法对应于不同的分类器,但是本质上所有的分类器都是将“临近”的样例归类到同一类别之中,关键的不同之处在于“临近”的定义。




而如何定义“临近”,本质是定义距离,而距离就是线性代数中最核心的一个概念。而构建一个好的分类器,实质就是为数据建立向量空间,并对这一空间进行映射变换,而变换以后新的向量空间中,需要具有同类的样本距离比较近,不同类的样本距离比较远。了解到这个实质,你就会发现机器学习的各类问题,无论是在问题的建模、求解、优化中,都要用到大量线性代数的知识。

    

线性代数的内容比较广泛,包括行列式、矩阵、线性方程等初等内容,也包括欧式空间、线性空间、线性变换、矩阵特征值等比较深入的内容。那么如何学习线性代数呢?书本方面比较推荐:Introduction to Linear Algebra,4th Edition。除了看书,强烈推荐一个线性代数的课程,是MIT的一个老教授Gilbert Strang讲授的,非常风趣幽默,且能直指线代核心的内容和思想,视频可以在网易公开课找到:搜索即可。

 

概率论与数理统计

  

业界的学者普遍认为机器学习里有两大派别。一个派别是把机器学习看做人工智能分支的一个群体,这群人的主体是计算机科学家。另一个派别把机器学习看做“应用统计学”的一个群体,这群人的主体是统计学家。机器学习虽然应用到各种各样的数学,但是要分析大量数据中蕴含的规律,统计学是必不可少的。而概率论又是统计学的基础,所以学好概率论和数理统计,对于掌握很多机器学习的核心算法至关重要。


一般而言,对于非数学专业的学生,概率论与数理统计就是一门课(数学系一般会分成两门,分两学期教授),国内比较经典的是浙大版的概率论与数理统一的教材。当然MIT的相关课程的教材也非常好,只是难度非常高,应该有中译版本。



除了上面的这些数学知识。如果对于机器学习有更大的野心,也推荐学习一些更高深的数学知识,比如随机过程、图论、傅里叶变换、泛函分析、流形理论等。


讲了那么多,并不是说研究或者应用机器学习一定要掌握这么多数学知识,只是说掌握了这些,可以帮你在真正需要用机器学习去解决问题的时候,事半功倍。对于初学者而言,如果觉得学习上面的一些数学知识非常痛苦,其实也建议知识略作了解,可以在实际掌握技术和算法的过程中继续学习,也许有了一个明确的目标,有助于更好的理解那些数学知识。


End.


作者:jason(中国统计网特邀认证作者)


本文为中国统计网原创文章,需要转载请联系中国统计网(小编微信:itongjilove),转载时请注明作者及出处,并保留本文链接。