0 总则
写这个介绍的目的是,现在有学习(尤其是自学)机器学习需求的人很多,同时ML作为开源氛围最好的CS社区,又有无数多的免费学习材料使用。初学者很容易面对茫茫多的东西觉得无从下手。
机器学习算法地图 by @graycode
另一方面,更重要的一点是,每个人的实际需求,以及每个人适合的学习方式是不一样的。就如机器学习模型“没有免费午餐定理”一样,不存在一个对所有人来说都最好的机器学习入门材料,只存在对每个人来讲各自最适合的东西。对于初学者,请记住:这个世界上只有你自己是最了解你的人,只有你自己能判断什么材料最适合自己。
不同初学者的背景是不一样的。有数理基础很好的本科生甚至高中生,有对微积分和线性代数的基本概念尚且懵懵懂懂的初学者,有非CS领域、几乎没接触过编程的研究者,也有CS科班上来,基础课组(编程、组成原理、汇编、编译、OS)都很熟悉的学生。对于每种背景都有适合的学习方法,但不要因为这一点尝试弥补自己和别人的差距并且照搬别人的学习路径。相信我,这样做是没有用的。
机器学习的自学过程也没有“免费午餐”
对于科班学生,你们的课内资源应该是足够的【但对于清华大学自动化系我持保留意见】,所以这篇小结仅供参考。非科班的初学者可能是这篇小结的主要受众。我可能会比较粗略的将初学者分为两类。一类是已经对机器学习的scheme已经有概念的同学,意味着你知道机器学习的基本概念及其关系【例如:任务、数据集、训练集、测试集、训练、模型、数学推导、metric等】。另一类是还对机器学习的scheme没有概念的同学。如果你对上面列举那些东西不够熟悉,不能一下子说出一段话把他们串联起来,那你就属于这一类。
对于前一类同学,你需要的是不同算法的深入理解、原理层面的认知,以及很多的编程训练确保你掌握了机器学习算法的实现方法。建议你关注以下介绍的材料里比较系统的、数学理论推导多的那些。对于后一类同学,建议你关注那些讲的详细的、建立直观多的、代码和推导结合的那些。
本文只对机器学习相关的成体系学习材料做介绍。但并不意味着能用的学习材料只有这些。比如有很多零散的,但写的很好的博客不在收录范围之内。此外,深入学习机器学习需要代码基础和数学基础。代码基础分为语言基础和程序设计基础,不仅要了解python语言的语法和使用方法,还要掌握(面向过程)程序设计的基本原理。数学基础不仅包括微积分(主要是求导的概念、原理、求导的规则)和线性代数,还包括概率论、凸优化等等。越高阶的机器学习算法涉及到的数学往往越复杂。这些程序设计和数学方面的材料不在本文的介绍范围之内。
1 视频材料
没错,信息时代了,当然先从视频开始。视频材料基本可以分为网课和非网课两类。网课的好处是全面、丰富、详细、权威,而且一般配有练习和作业。ML的网课一般看的人都很多,很容易在网上找到别人写的练习和作业(答案or代码),自己写不出来的话有参考。
1.1 斯坦福大学 吴恩达(Andrew Ng) 《机器学习》网课
内容:机器学习所有基本方法和基本概念的全面介绍优点缺点1.2 台湾大学 李宏毅 《机器学习》网课
不足1.3 @shuhuai008 《机器学习白板推导》系列视频
缺点1.4 各类讲书类视频
下一章的几乎每一本书都能找到讲书的视频,基本上就是一个人对着打开的pdf书一起朗读、划重点、推公式、评价。如果看书吃力的话可以作为补充。
比如在b站搜“西瓜书”就能搜到很多的视频
建议作为读书的辅助材料,有看不懂的地方来看视频,而不建议用看视频来代替看书。
优点:缺点:2 书籍材料
书的优点是,作为出版物都是编辑仔细校对的,学术上有严谨性保证。此外教科书的引用都很规范,可以查看参考文献的论文作为高阶阅读材料。但另一方面,书籍相对视频显然不够生动有趣,也缺乏一些直观的推导。此外就是教科书一般是没有代码的。
一般来讲,书籍尤其是教科书都是其他各类材料的生产源头。比如上网课的老师制作课件一般是参考某一本或几本教科书。很多博客会直接粘贴教科书里的图和公式。而对于学习者而言,书籍又省去了直接看原始论文的麻烦。教科书应当是最重要的学习资料。
2.1 南京大学 周志华《机器学习》【西瓜书】
内容:主要是各类常用的传统机器学习算法。优点缺点2.2 李航 《统计学习方法》
内容:几种最重要的传统ML方法的介绍,比较偏向NLP优点缺点2.3 Ian Goodfellow 《深度学习》【花书】
内容:机器学习基础、深度学习基础、主流深度学习网络的全面介绍,以及部分机器学习/深度学习高阶内容介绍优点缺点2.4 C.M.Bishop 《模式识别与机器学习》【PRML】
内容:主要是贝叶斯视角的概率统计类机器学习算法的全面介绍优点缺点2.5 复旦大学 邱锡鹏《神经网络与深度学习》
内容:介绍机器学习基础、深度学习的主要方法和模型、一些进阶ML和DL知识。优点作者邱锡鹏老师有知乎账号哦( @邱锡鹏)缺点2.6 魏欣然 《机器学习算法笔记》
开始夹带私货.jpg
全书主要机器学习算法的【思维导图】
概率方法部分的算法【总结索引表】
数学化的算法小结,可以作为代码指导3 课件材料
有很多大学尽管不上传课堂视频,但课件是可以公开访问的。这些课件一般都较为严谨充实,适合作为高阶学习的阅读材料。
3.1 清华大学 唐杰 Advanced Machine Learning
内容:包括概率图、自编码器、Auto ML、认知推理、GNN等高级机器学习主题特点3.2 UC Berkeley CS294-158 Deep Unsupervised Learning
内容:自回归模型、流模型、自监督学习、语言模型等非监督的深度学习内容特点
最后,祝大家都能找到适合自己的学习方法和学习资料哦!