# ML&DEV[1] | 机器学习数学基础入门线路
【ML&DEV】
这是大家没有看过的船新栏目!ML表示机器学习,DEV表示开发,本专栏旨在为大家分享作为算法工程师的工作,机器学习生态下的有关模型方法和技术,从数据生产到模型部署维护监控全流程,预备知识、理论、技术、经验等都会涉及,欢迎大家关注!
往期回顾:
我曾经不止一次说过"计算机能力决定你在算法中的下限,数学能力决定你在算法中的上限",在现在这个竞争激烈的场景下,数学能力将会成为你战胜其他人的一件锋利道具,因此我非常建议大家认证扎实数学基础,让数学从你的拖油瓶变成你的拖油瓶转为你进步的动力,丢掉调包侠和调参师的帽子,你可以从下面的内容开始。开始之前说几点:
下面内容是学机器学习方面的必备基础,基本不涉及机器学习本身,如果你能够完美掌握,那数学就不会成为你的后腿了。
如果达不到高中数学水平,我很中肯的劝你好好想好这个方向的规划,下面内容是从高中数学开始谈起。
有关材料推荐,我推荐的比较少,而且是网络上比较好找的东西,不必屯个几十个G的材料看,没必要,找最适合自己的,看懂看完就好,大家觉得不合适我可以调整更新(后续可能会做成一个看板之类的东西供大家阅读学习)。
下面涉及的时间安排均按照每天2小时自学时间来估计,具体时间安排以自己为准,以学会为准,不要特地赶时间,只是个建议用时。
不必完全拿着数学书啃,不必整本啃完,我已经根据机器学习中需要的数学知识进行过筛选,省去大家学习的压力,但是值得关注的是,你走的捷径是会可能在未来给你留下坑的,捷径越快,坑越多。
基础中的基础——高中数学
很多人可能已经发现自己忘了很多高中知识,这会导致很多学习可能推进不下去,此时最好先补补高中数学,补充一句,复习高中数学不丢人,扎实学习有收获才是关键,而且数学学习有很强的连续性,一个点没过去可能后面会有连锁反应。下面是在算法领域混需要的一些高中数学知识,已经在原有的高中数学基础上进行了削减:
集合:集合的基本概念。交并补等。(难度不是很高,1周内解决)
函数:定义,各种类型函数,三角恒等变换,单调性,导数(微分)和积分的基本概念。(应该是这几块里面难度最高的,2周,理解基本概念即可,需要少量做题)
不等式:基本计算,解不等式等。(1周内完成,快的话和下面平面解析几何一起1周就也可以)
平面解析几何:直线表达式,平行和垂直的判断,倾斜角斜率。(知道基本概念即可,扎实的话1周吧)
概率与统计。(内容比较繁杂,需要掌握概念并且会应用,高考题水平刚好,1周半到2周吧)
建议材料:
粗暴的话,找一本比较常见的高中一轮复习资料过一遍即可,注意是理科数学就好了。重在知识点要全面,和题目本身没关系,几乎不用管。
视频的话,我看的其实不是很多,从B站的口碑上看,有这么几个,选自己适合的,然后挑着章节看就好了。
《李永乐老师高中数学》,评论中有百度网盘视频和材料
《高中数学-高一、高二、高三【专题】(基础篇+提高篇)》,有对应公众号"数学微课帮"
《六十课时学完高中数学》,课程目录在评论中
学习建议:
经历过高中的同学,内容基本都有接触,要复习的话,按照平均每天2小时学习时间标准,最好在一个月内完成
给的B站视频是口碑较好的几个,根据自己的接受程度选择,由于都是总复习类似的课程,加上是快速过,所以不需要太细
不要纠结于高考的压轴题之类的难题,就是简单理解概念和原理其实就够了。
从速度看,文字资料>视频,从扎实程度看,视频>文字。
入门级数学——大学数学基础
其实就是大学的几门基础数学课,你要是想进一步走下去,肯定躲不开。
高等数学(数学系叫做数学分析),简单地说重点在于微积分。(1个月)
极限有一定难度,但是要求倒是不是很高。(1周)
微分与导数,导数的概念与求导计算,基本函数的导数,复合函数求导与链式法则,多元函数求导,偏导偏微分。(2周)
积分,一元定积分不定积分的概念与计算。多元积分用的不是很多,后续遇到了卡了再回来学,难度不高但是繁杂。(1周)
线性代数(数学系叫做高等代数)(只学下面的内容,半个月-3周左右完成)
矩阵的定义与计算,特征值与特征向量。(2周)
线性方程组的求解。(半周-1周)
概率论与数理统计(1个月到1个半月)
古典概型、几何概型,重要的分布(如两点分布、二项分布、泊松分布、正态分布等)及其特点。(1周-1周半)
离散型随机变量和连续型随机变量。(内容少,半周)
条件概率、全概率公式和贝叶斯公式。(内容少,半周)
几种特别地数字特征数学期望、方差、协方差的计算,重要分布的数字特征。(要求这些基本会推,当做练习,一周)
点估计,包括矩估计和极大似然估计。(都是属于方法,半周)
假设检验部分,在机器学习一块用的不是很多。(可以先不着急看)
建议材料:
书本方面看这些:
高等数学个人更加喜欢浙江大学的。数分我看的是华东师大的。
线性代数我比较喜欢中国人民大学那本,褐色封面的,想挑战的看黄色封面的吧。高等代数的话首推王萼芳老师的,另外如果要做工具书且资金比较充裕,丘维声老师的上下版也不错,广度很高。另外额外提一个,就是文哥写的一篇线性代数长文,做简单复习和过知识点,很不多:https://www.jianshu.com/p/21aea5108d83
概率统计推荐茆诗松老师的,另外我的母校也出了一本,范玉梅、汪飞星等老师出的,我学的就是这本。
视频,我看的其实也不是很多,但是还是有些比较出名的,还是可以了解一下。
高等数学,B站上海交大的老师,目前这位老师似乎已经退休,有关资料可以在评论上找到。https://www.bilibili.com/video/av28161594?from=search&seid=4398193102141911334
线性代数,推荐李宏毅老师的课程,目前似乎还有在更新,最新版是18年秋季的,另外他的其他课程同样值得看。
概率论与数理统计。个人感觉其实不太需要看视频额,要是想看的话,感觉这个链接还行:https://www.bilibili.com/video/av21527602/?p=1,课程信息也可以关注评论的内容。
学习建议:
难度真的是不低,你能不能跨进这个门,这一步很关键,算是条分水岭吧,坚持下去,毕竟出得了江湖,挨得了刀。
其一,着急没用,其二,要扎实,这个扎实不是指你的题目做的怎么样(当然基本的还是要会点,不要抠难题,抠知识点本身),而是你能不能理解这个概念以及完成后续的应用,举个例子你理解了求导的含义,才能知道为什么梯度下降法这里要求导。
有带入数字计算的例子好理解,但是不要轻易用这招,否则到了没有数字例子可以举出,就很难过去,所以在前期对自己有所训练其实有好处。
多看公式,自己尝试去推,可能没有你想的复杂,看文字资料的更要注意,别看睡着了。
视频资料确实会带着你去推导,但是事后建议你自己还是再推一遍,很重要
一个材料看不懂,就多换几个材料比对着看,你可能会有不同的理解,材料不局限在上面的资料,多去图书馆看看,这个不局限于在校生,职场人也可以多去图书馆看看的。
重在概念的理解,基本的推导也要会,对于复杂定理的证明,可以挑战,甚至鼓励你挑战,这是一个逼着你看懂公式的训练,类似含义可以参考第三条。
一般例题级别难度即可,但是建议把证明也要看懂,因为后续机器学习深度学习方面的推导,基本需要这些思维方式,看证明当做训练时一个不错的选择。
进阶级数学——理论加速器
这里面的数学并非必学,但是学会了会对你理解很多模型会有帮助,上面的基础越扎实,这块学的越快。
多元统计分析(数学系专门开了这个,别的专业不清楚)(都是方法类的,所以很快,只要上面扎实,这些加起来一周就够了)
聚类分析,现在被包装为所谓的”无监督学习“,但其实两者不同,统计学中的聚类分析其实是”无监督学习“下的一个问题方向。k-means、层次聚类之类的都可以了解一下。
因子分析,独立成分分析,主成分分析。
判别分析,可以看看统计学上的分类是怎么整的。
最优化方法——尤其是凸优化,SGD整个家族都离不开这个最优化方法理论(理论有些难理解,多给点时间,2周)
最优化问题的定义(就是一句定义)
最速下降法,划重点是理解导数方向和下降方向直接的关系(2-3小时)
牛顿法(最速下降法理解后这个也很快,1小时)
KKT条件(知道是什么就够,用得少但是有的时候会直接拿这个出来,不要求知道证明)
离散数学——被誉为”计算机数学“(2周)
集合论(结合高中学的那块,真块几个小时就够)
图论(数据结构了解的同学能知道他有多重要)(数据结构好的,可以一天过完,不熟悉的,可能单独要一周时间)
数理逻辑(主要是训练你的思维逻辑吧,直观用处不大,背后的理解有利于你日后推理)
随机过程甚至是概率图模型(2周左右)
一般随机过程书前面的预备知识非常建议get,条件期望、自相关之类的(单独给一周)
泊松过程(概念足够,1天)
马尔科夫过程(概念足够,1天)
隐马尔可夫过程(不需要可不看,难度高内容量大,时间充裕的一周才能完成)
矩阵论:其实这个不专门学也可以,在你需要的时候几乎都会谈及
各种矩阵分解,划重点是SVD吧
建议材料,视频不推了,重点建议还是看书,一个是不好找,还要高质量,另一个是不需要大面积了解,看视频会绕弯路,所以给精,基本比较好的教材,当然的,不局限,这只是参考,最适合自己的是最好的。
多元统计分析:个人推荐何晓群老师的《多元统计分析》
最优化方法和运筹学一起推:运筹学与最优化方法,吴祈宗
离散数学:屈婉玲的,很厚但是感觉写的很清楚
随机过程:罗斯的《应用随机过程 概率模型导论》,有点小贵额,但是值吧
矩阵论:不建议看书了,有需要的直接百度、知乎、简书之类的看博客吧,哪些知识点遇到了就查就好了,不用做专题
学习建议:
是的,有更加经典的教材,但是经典的不一定适合自己,深度都很高,对于只是把数学当做工具的我们来说真没必要啃到那个程度,所以基础的,然后在里面挑着看自己需要的,最高效。
速度上不去,个人感觉前面的基础还不透,公式还看不懂真的有点说不过去,哪一块卡的比较久回去看那一块,常看常新。
能走完的,在各种压力下能抗住的,我表示由衷的佩服,数学都不怕,好多东西都不会怕了。
希望大家看到这里能有收获,各位大神如果有更好的选择,欢迎告诉我,接受批评哈~