写这篇文章很久想了很久,到底该怎么写?
关于数学与机器学习的关系,观点很多。
写本文的目的,希望结合众家之长,试图解决数学对机器学习入门的困扰。
现在数学困扰大家主要有这几个方面:
1、 机器学习需要的数学知识是不是很难,网上的公式都看不懂?
2、 很多人都说工作后就是调参,调包,不太需要用到数学吧?
3、 零基础究竟该怎么自学数学,学到哪个程度?
观点:
1、数学是必须的。
数学对于机器学习来说是必备基础,数学是内功,你要理解一个算法的内在逻辑,没有数学是不行的。以后跑算法的时候,你可能就是调参、调包,不会用到数学。但是你发现效果不好的时候,如果你数学不懂,就很难作优化,数学是你在机器学习路上的天花板。
2、数学也不是很难。
但是,数学真的很难吗?说实话,对于一般人来说,是有点门槛的,但没有你想的那么难。这里假设你上过大学的数学课,你就具备了机器学习的数学入门门槛了,之后的数学啃一啃是可以下来的。如果说你没有上过大学的数学,emmm,挺难的,这说明你除了跟别人付出同样的努力之外,还要多付出一些大学数学的学习。
3、 相比于数学,实际项目能力更重要。
这句话没错,可是大部分人在没接触到实际项目的时候,就已经被挡在门外了。很多从事机器学习的你问他数学,他可能也不是很懂,可是你能咋办。人家面试你的时候就要问你这些,问你对算法的理解,你不会那你就过不了面试啊。
4、 学习是枯燥的,但是有办法缓解。
在学习算法的时候,我们会看到很多推导,学着学着就怕了,就失去兴趣了,这里有个方法可以有效缓解。我之前的系列中有本书叫做机器学习实战,跟着上面的代码敲一敲,很容易出成果,你会看到在现实中的实际应用,很有成就感。
5、 数学的学习是可以“取巧”的
这里说的取巧指的是,数学的学习是有迹可循的,因为入门阶段的数学实际上就需要那些,列出来,你自己啃一下就可以了。具体的学习方法不是等你把数学都学好了再去学算法知识。而是你在学习算法的时候,看到你数学缺哪块再去补哪块,这是最高效的。当然了,在这之前你可以通读一遍数学的基础,对学习有个大概是更好的。
数学必备知识点
1、 线性代数
标量、向量、矩阵和张量;矩阵向量的运算;单位矩阵和逆矩阵;行列式;方差,标准差,协方差矩阵;范数;特殊类型的矩阵和向量;特征分解以及其意义;奇异值分解及其意义
Moore-Penrose 伪逆;迹运算
2、 概率统计
概率学派和贝叶斯学派;何为随机变量和何又为概率分布;条件概率,联合概率和全概率公式;边缘概率;独立性和条件独立性;期望、方差、协方差和相关系数;常用概率分布;贝叶斯及其应用;中心极限定理;极大似然估计;概率论中的独立同分布
3、 优化
计算复杂性与NP问题;上溢和下溢;导数,偏导数及两个特殊矩阵;方向导数和梯度;梯度下降法;牛顿法;仿射集,凸集和凸锥;超平面,半空间及凸集分离定理;不改变凸性的运算;凸函数及凸优化简述;无约束的优化,等式约束优化,不等式约束优化;线性规划中对偶理论;拉格朗日对偶理论
4、 信息论及其他
信息熵;条件熵;相对熵 (KL散度);互信息;几种常用的距离度量;图论;树论
上面数学基本上就是我们所要学的数学的全部了,看上去有点吓人是不?不要慌,没有那么难,一点点啃下去就可以了。
推荐资料:
资料一:机器学习王牌课程CS229课后配套数学,专门配套机器学习的。
链接:https://pan.baidu.com/s/1Fh__7N7rqGEgjsyb4YpNSg 密码:48n4
资料二:Yoshua Bengio的《深度学习》书,网上公开的,前面有一部分是对数学的专门讲解,很基础很全面。
链接:https://pan.baidu.com/s/1A9mcO8_ORQmTJ-V7z9bLdw 密码:hwjn
资料三:知乎答主的优秀回答,很细致,适合初学者
线代专栏:https://zhuanlan.zhihu.com/p/30191876
概率统计:https://zhuanlan.zhihu.com/p/30314229
优化(上):https://zhuanlan.zhihu.com/p/30383127
优化(下):https://zhuanlan.zhihu.com/p/30486793
信息论及其他:https://zhuanlan.zhihu.com/p/30383356
我看过很多数学材料,上面三个是我总结过来最好的,必看。但是每个人基础不同,可能看完上面三个后,还是有需要去看别的。
数学实在太弱怎么办?
如果你上面三个材料看起来很吃力,或者说你的数学没有达到大学的水平。那就是数学基本功的问题了。针对这种情况,我觉得只能把相关的大学数学书拿出来翻一翻,基本概念要弄懂,什么是矩阵、导数等等,偷不了懒。
1、数学分析与概率论
同济大学数学教研室,高等数学,高等教育出版社,1996
王松桂、程维虎、高旅端,概率论与数理统计,科学出版社,2000
2、矩阵和线性代数
同济大学数学系编,工程数学线性代数(第五版),高等教育出版社2007
以上三本数学书,如果你对基础概念忘了的话,可以选择性看下相应的篇章。
重申:
最好的数学学习方式是边学边补,没必要百分之百看懂数学的推导过程,初级阶段懂个70%也就够了,有些实在太难的,就没必要钻牛角尖了。