机器学习最近几年火、很火、非常火。特别是去年AlphaGo完虐韩国围棋第一人李世石以后,大数据、机器学习、人工智能、深度学习等专业领域名词瞬间“飞入寻常百姓家”,成为街头巷间的热门话题。越来越多的人也对这个学科产生极大的兴趣,想一窥内中门道。
那么想要对机器学习有比较深入的了解,需要哪些知识呢?机器学习以数学理论为基础,所以无论你是想把机器学习作为一个研究课题,还是作为一个职业方向发展,拥有扎实的数学基础都是必不可少的。笔者本科是数学系的,硕士阶段的方向是机器学习,现在在一家互联网公司从事数据分析工作,就这个问题也有一些浅薄的认知,与大家分享一下。
再切入微积分的重要性之前,我们先看看机器学习领域的顶级学者周志华教授对于机器学习的一个说明:机器学习是做一个什么事情呢?
我们拿到一些数据x,然后建立一些模型f,就是f(x)
我们希望这个模型f特别准确,也就是说f(x)和真实结果y非常接近,那么怎么算接近呢?就是他们之前的区别非常小,小于一个很小的值。
我们不能保证每次预测都完美,只能希望以大概率得到得到好结果,所谓大概率就是,其中这里是个非常小的量。
从上述表述我们不难发现,其实机器学习学习的模型实质是构建一个函数(或映射),而系统性的阐述函数相关的性质的学科就是微积分。
大学阶段如果是就读的理科专业,应该都会上过微积分相关的课程。一般而言数学专业这门课程会叫数学分析,而在其它的理科专业会叫高等数学。区别在于数学分析会偏重于证明(知其所以然),而高等数学会偏重于应用(知其然)。
如果你在大学阶段上过这些课并且已经把课本都还给老师了,在要学习机器学习算法之前,可以把书拿出来翻翻,了解诸如函数求导法则、导数运算法则、多元函数求极值、拉格朗日乘子法、泰勒公式展开等性质。如果完全没有微积分的知识,可以推荐先看下视频教学网站的课程(慕课网上有大量各校名师的微积分课程),除了视频,建议还是好好找本高等数学的教材学习下,推荐同济大学的教材。如果有更高的要求,想学习数学分析的相关知识,推荐看Principle of Mathematical Analysis。