大家好啊!
好久不见,是不是早就把这个公众号给忘了?
这篇推送我们来讨论这个问题
如果你没有学过机器学习的话,可能你并不能看懂这几张图,哎哎哎,别丢砖头鸡蛋啊…………
回归正题,前段时间舍友问了我一个问题:如何学习机器学习?一番讨论之后,所有人都赞同机器学习依赖强大的调包编程基础,但是当今的相关岗位(国内一般指算法工程师)的面试,对于理论和理解部分的考察越来越多,对于代码面也更加侧重于考察对leetcode部分的掌握程度,因此如何更加好的理解机器学习,应对面试,成了我们所有人都要思考的问题。
张志华老师是机器学习界的元老级人物之一,之前在上交,目前在北大任职(还有一位元老是周志华老师,在南大任职,二人合称“北张南周”)。张老师在学校内开设了多门机器学习相关的理论课程,b站的很多up主都有上传,统一来看,他一共开了四门课(以B站关键字搜索为准):《机器学习导论》,《统计机器学习》,《应用数学基础》,《强化学习基础》。
这么多课,到底都在关注什么内容?又应该怎么样食用呢?这篇推送以这几门课出发,先帮助大家区分这四门课的重点,再简要说一些我最近在B站更新的动态。希望大家看完这篇推送之后,能够更好地规划好自己学习这一门有趣的学科的学习路径~
01
课程简介:这四门课各自讲了什么?
01-1
机器学习导论
《机器学习导论》开设于上交,B站有大量相同资源,也有目录(但是目录的顺序有些混乱,评论区的位置有小伙伴做了指正)。其重点主要是在于关注机器学习中的降维,分类,聚类,矩阵补全等问题。难度较大,非常具有深度(当然这也是他四门课的共有特性),比方说对于主成分分析,他会将其拓展到主坐标分析,也会引入一点统计的思维,讲一些核主元分析和概率主成分分析等。
这一门课的重点在于全程依赖矩阵论(线性代数)进行模型的含义解释,比方说对于聚类,从K-means出发,引入了平方和分解,谱聚类和矩阵优化等内容,相关内容高度依赖矩阵论中的矩阵微分,投影,奇异值分解,特征值等内容。
由于张志华老师的课程多半以深入为主,所以在广度上往往不够,所以他的这一门课不足以涵盖机器学习所需要掌握的所有内容(比方说这一门课他对于回归就基本上没有提到,这也可能是因为回归是统计的概念有关)。当然了这也是他的课程共性,我们后面还会提到这一点。
01-2
统计机器学习
《统计机器学习》也开设于上交,在B站的视频也具有目录,其重点在于关注机器学习中,与统计机器学习相关的统计性质,原理与工具,而很少关注模型本身。比方说线性模型(当然这个部分在《机器学习导论》中也有提到),贝叶斯统计,EM算法,MCMC等,其内容更像是统计系中的计算统计这门课(前一半感觉更像数学系的《数理统计》……)。也就是说,课程更加关注于,将模型使用统计的工具建模之后(比方说给定一些更加高级的分布,我希望求解它的数学期望),如何利用统计的方法去求解这些模型。与《机器学习导论》相比,它的统计味浓了很多,但是对于矩阵论的部分几乎不强调。因为现实中,计算统计的很多方法也会被用到一些机器学习模型的修正中,所以对于统计方法的掌握,会使得对机器学习的理解更深,拥有这一方面的更加广阔的视野。
如果要将它与《机器学习导论》相对比,那么先修课的要求是一个不错的切入点。个人认为,学习《机器学习导论》需要高等数学与线性代数的基础(线性代数的所有内容,比方说正交,合同,相似,特征值等概念)。而学习《统计机器学习》,则需要概率论与数理统计的基础(需要说明的是,有些学科开设一学期的《概率统计》,这个基础可能不够……)。
01-3
应用数学基础
《应用数学基础》是张志华老师去北大之后开设的,在B站最近才有up主上传,目前还没有目录(BV13T4y1g7Bz)。我在B站评论区评论说这一门课不应该起这个名字,更贴切的说法应该是《人工智能的数学基础》。内容比较像《机器学习导论》与《统计机器学习》的一个综合,既有提到凸优化,最优化等应用数学的内容,也有提到多元高斯分布,充分统计量等统计的内容。但是这一门课比较有意思的地方在于他是为了深度学习服务的(老师有说过这一门课叫《深度学习基础》),因此提到了诸如神经网络等深度学习的内容(大约在中后部分)。另外这一门课有几节是从旷视找了一些大佬来做分享和讲座,讲的内容也主要是CNN为基础的图像处理,计算机视觉方向的一些模型应用。
01-4
强化学习基础
《强化学习基础》也是张志华老师在北大开设的课,在B站同样没有目录。顾名思义,这一门课关注的是机器学习中,有监督学习与无监督学习以外的第三个部分——强化学习。主要关注了强化学习中的马尔科夫决策过程,以隐马尔可夫模型(HMM)出发,到马尔科夫决策过程(MDP),再到部分可观测马尔科夫决策过程(POMDP),中间穿插着讲了一些策略梯度(Policy Gradient),Q-Learning等强化学习独有的内容。这一门课主要用到的知识点是概率论与泛函分析(其实也就一个压缩映射原理),出发的视角也就是贝叶斯学派的先验后验的统计观点,数学味很浓。
不过这一门课单独拿来学习《强化学习》还是不足够的(张老师的课的共性),可以结合一些其它的偏计算机(CS)的课程来学习,比方说B站上有Stanford的资源,还有周博磊老师的《强化学习概要》,都是可以参考的内容。
01-5
总结:这几门课的特点
- 四门课的重点各不一样,这一点对于初学者来说不是很友好。
- 每一门课都有非常浓的数学味,会将一个模型用数学的方式讲的很深,因此在广度上做得不够,也几乎没有机器学习的应用部分。这一个特点使得初学者会比较容易陷入繁杂的数学细节中,而忽视大的布局。但是对于比较希望更深的了解学习机器学习的同学来说,这一点是一个很大的优点,因为张志华老师对于每一个数学细节的推导都解释的比较清楚,对于加深理解和拓宽视野很有帮助。
- 课程中重视各个部分的联系,但要理解这些联系,需要一定的基础(比方说在讲Fisher判别分析的时候,提到的优化方法在主坐标分析中就经常使用,而主坐标分析又是主成分分析的另一种形式)。
02
回归正题:初学者不配学习张志华老师的课?
有人可能要急了:总结似乎在透露出一种“我不配”的意思?不不不,我没有在说不配,没有任何这个意思。回到之前那个问题:如何学习机器学习?每个人的基础都不一样,每个人的需求也不一样,从各个方面来看,我觉得可以这么来:
- 如果完全没有任何《机器学习》和数学的基础,那么自学容易迷失方向。在这种情况下,我们更推荐先看吴恩达的Coursera课程,先了解一个大的框架(机器学习在干什么,关注哪些问题,各自有哪些方法)。也可以先看 An Introduction to Statistical Learning,对于入门也比较有帮助(这本书还配套了R语言的实践)。
- 如果有了框架,有了了解,想继续做更深的了解和复习,也有相关的基础,那么可以不看《强化学习基础》(因为它关注的是相对独立的一部分),先看《机器学习基础》了解和学习模型,再看《应用数学基础》补充一下神经网络的内容,最后可以根据自己学习的情况,有针对性的去补充统计基础,《统计机器学习》这一门课足够了。这几门课跟下来之后,对于矩阵论,数理统计的很多内容也会有所了解。
- 如果希望关注机器学习的实际应用,或者希望速成“机器学习”,那么不建议从张志华老师的课入手,因为理解原理需要时间,速成不具备这样的条件,这几门课也并没有关注到机器学习的实际操作和应用。所以这个时候,可以了解一些常见包的使用,Python的语法等等,如果已经有所经验,可以结合实际生活中的项目(可以知乎或者在github搜索相关问题)自己去模仿造轮子。在这个时候,重点在于学会写代码而不在于了解原理。
03
《手把手教会机器学习与数据挖掘理论》动态
最近在整理之前XMU俱乐部分享的材料,陆陆续续的会把各个内容上传到B站。
B站搜索:BV1ZK4y1b7Xt
总体来说,我希望这个系列做到在深度与广度之间找到一个平衡。最终版我们希望在牺牲一定深度的情况下,覆盖到所有面试官都会考察到的知识点(大概来说,可以分为分类,回归,降维,聚类,优化。像张志华老师提到的矩阵补全这一部分,属于比较偏学术界的内容,非专业方向的岗位是不会考察到的)。也正如B站开头所说,我们努力做到的是让仅有一点微积分,线性代数,概率统计基础的同学能够听懂所有内容,并了解这个领域的大致全貌,即使毫无数学基础,也能够听得下去。
这一个系列的第一节有介绍一些推荐的视频和书籍,所以这里我们不再多说。我们也会在这一系列的内容中大量参考张志华老师的这几个系列的数学内容,并做一定的删减和压缩,以达到降低难度的目的(比方说有些性质,可能大家知道就足够了解模型本身的含义和设计的思路了,并不需要知道更深的细节,那就不用细说)。关于coding的部分,我自己也不怎么会,所以自然也不能够随意的上传视频了,等以后学有所成,再来回馈大家~