起因

因为学习机器学习需要数学,所以把大学里的数学书又重新买回来。从微积分、线性代数到概率与数理统计都重新学了一遍,自我感理能理解一半左右。但是因为期间要赶项目,有二个月没有去回顾数学,等再次回到数学里,才发现什么都忘记了。

其实在学习的过程中也会出现这样的情况,学了后面忘记了前面,这样的效率令我非常沮丧,甚至于怀疑自己。

这个过程很痛苦,真的是苦学,我想要摆脱这种状态,提高学习的效率。于是我停了下来,花了三天的时间来思考。

反思

小学数学入门是从九九乘法表开始,死记硬背下来,就能解决考试里很多题目。到后面中学习其实我也有这样的学习习惯,死背公式,定理,考试也能得高分,到了大学习,这样的方法就行不通了,因为高等数学的公式太复杂,不容易记得住,所以学习起来特别吃力,而且一毕业,那些公式,定理就统统忘光了。

我想这绝对不是我一个人的悲哀!那些高数拿高分的,一毕业后,有几个还能记得的?

转机

转职做游戏开发的工作后,在项目中就经常遇到一些实际问题,需要用数学来解决的。比如其中一个游戏中,需要做一个雷达图,显示游戏角色的5个属性,经过抽象,这个雷达图就可以转化为一个数学问题:已知正五边形五点的坐标{p1,p2,p3,p4,p5},求中心点c1至各点距离为d时的坐示{x1,x2,x3,x4,x5}.

这个问题找了二个几何公式,写到代码里很快就解决了。通过很多次这样的经验,我发现:

在解决实际问题时,我做的最多的工作,是把实际问题抽象成数学问题,然后再翻书或者搜索引擎找解法,最后用计算机算出结果。

于是我想,中学这二个几何公式学那么久,做那么多习题,并没有太多用处,其实我只需要理解向量,正弦这几个概念只用来解决什么问题的就行了,根本没有必要记下来,也不必要自己算出来,这样并不影响我用它们解决实际问题,因为有计算机。

这时我又有点不自信,这样是不是投机取巧了?相比那些能随手写一推公式,定理,并算出结果的人,我是不是数学水平差很多? 这样基础是不是就很差了?这样的基础能学会机器学习吗?

答案

我感觉教科书里不会有我想要的答案,我于是各种百度搜索。 《数学发展史》让我明白,数学的发展就是人类生产力的发展,数学是人类发展生产力的工具,只不过这个工具是人脑通过现实世界抽象出来的,摸不着的真实存在的工具。

是的,我认为数学就是我用来解决问题的工具,这个工具有各种牌子,有欧拉牌的,有莱布尼茨牌的,有斐波那契牌的。不管是什么牌子的工具,我只需要知道这个工具是用来干什么的,是用来解决什么问题的就行了,剩下的事情(计算)就交给计算机去完成吧。就好像,我知道锤子是用来砸东西的,在我需要砸钉子的时候,我会想起它。

验证

为了确保我这个观点不会影响我的机器学习的过程,我提前学了python,以及台湾大学林老师的<机器学习的基石>。python里有很多数学计算库,比如numpy,matplotlib等,像矩阵运算和微积分运算,真接调api,传参数,一行代码的事情。 林老师课程里的几个实战案例,都没有那怕一点点教学生怎么算的,全部是在教怎么抽象成数学问题,然后数学问题用那些已知的数学工具可以解决,最终得到一个近似于目标函数f的函数g.