AI机器学习路线

2020-10-14 435点热度 1人点赞 0条评论

注:该学习路线是总结全网推荐路线而成,这里是初稿,要完整最新版的话欢迎在下方留言!

相关问题详情访问我的个人网站.
本文首发于耳壳网.

machine learning

数学知识

一般人如果想要把这些知识都补全再开始机器学习往往需要很长时间,容易半途而废。而且这些知识是工具不是目的,我们的目标不是成为优化大师。建议在机器学习的过程中哪里不会补哪里,这样更有目的性且耗时更低。

  • 微积分:偏微分,链式法则,矩阵求导等
  • 线性代数:矩阵/张量乘法、求逆,奇异值分解/特征值分解,行列式,范数等
  • 统计与概率:概率分布,独立性与贝叶斯,最大似然(MLE)和最大后验估计(MAP)等
  • 优化:线性优化,非线性优化(凸优化/非凸优化)以及其衍生的求解方法如梯度下降、牛顿法、基因算法和模拟退火等
  • 信息论、数值理论等

书籍

  • 微积分
  1. 《微积分学教程》 (F.M.菲赫金哥尔茨)俄罗斯的数学书
  2. 斯坦福大学机器学习的数学基础
  • 线性代数
  1. 《Linear Algebra and Its Applications,Third Edition (David C.Lay)》

讲得很实际,线性代数最重要的就是与实际应用相联系才能够理解其意义

  • 概率论与统计
  1. 《概率论与数理统计 (陈希孺)》

  2. 深入浅出统计学

视频

  • 微积分
  1. Essence of calculus(https://goo.gl/sfHext
  • 线性代数
  1. 3Blue1Brown的Essence of linear algebra

[https://www.bilibili.com/video/BV1ys41147

  1. MIT的 Gilbert Strang老爷子的课程

https://www.bilibili.com/video/BV1at411d79w

  • 概率论与统计
  1. 中科大 概率论与数理统计(http://t.cn/RmyKd8W)
  2. 可汗学院统计学

http://open.163.com/special/Khan/khstatistics.html

Python学习

Matlab和Python说实话做高端的机器学习肯定是不推荐的,但是如果你想的是机器学习快速入门,那这两门语言绝对是绝佳选择。

书籍

  1. 廖雪峰python学习笔记

https://blog.csdn.net/dawhale/article/category/7779959

  1. python入门笔记

作者李金,这个是jupyter notebook文件,把python的主要语法演示了一次,值得推荐。

视频

  1. 南京大学python视频教程

这个教程非常值得推荐,python主要语法和常用的库基本涵盖了。
查看地址:www.icourse163.org/course/0809…

看完这三个资料后python基本达到入门水平,可以使用scikit-learn等机器学习库来解决机器学习的问题了。

第一阶段:基础入门(3-6个月)

入门的第一步是学习一些经典课程并配套经典书籍,一般来说这个过程在半年之内比较合适。

视频

  1. Machine Learning | Coursera

入门首选,推荐只认识“机器学习”四个字但还不知道它是什么的学习
这些年机器学习的大多数年轻人靠这个入门。具体提纲我就不列了,免得增加篇幅。建议是直接按顺序一课课学,不要着急。在学完这个课程前,不要学后面的。> 中文视频:网易云课堂搬运了这门课,并由黄海广等人翻译了中文字幕。> 中文笔记及作业代码:https://github.com/fengdu78/Coursera-ML-AndrewNg-Notes

这门课每个知识点都会配套相应的练习题。大家可以在 Coursera 上下载,线下完成并提交。唯一的缺点可能是该习题都是基于 matlab 平台的。但是,Github 上已经有人把作业整理成为 Python 的形式了。有 .py 和 .ipynb 两种格式。
nsoojin/coursera-ml-py
kaleko/CourseraML

1、机器学习实战的书:《机器学习实战 (图灵程序设计丛书 72)》 [美]Peter Harrington, 李锐, 李鹏, 曲亚东, 王斌 书评 简介 电子书下载 Kindle电子书
2、Andrew Ng老师的视频教程:Machine Learning:斯坦福大学机器学习个人笔记完整版(附所有视频和字幕) (现在Andrew Ng老师没开新课了,这是一个同学自己下载的所有视频和相关资料,大家可以自行下载)
3、Andrew Ng老师早期的一个机器学习公开课:斯坦福大学公开课 :机器学习课程
4、Andrew Ng老师机器学习课的代码
Python版本:icrtiou/Coursera-ML-AndrewNg
Matlab版本:vugsus/coursera-machine-learning

  1. 公开课 吴恩达 CS229

吴恩达在斯坦福教授的机器学习课程 CS229 与 吴恩达在 Coursera 上的《Machine Learning》相似,但是有更多的数学要求和公式的推导,难度稍难一些。该课程对机器学习和统计模式识别进行了广泛的介绍。
课程主页:cs229.stanford.edu/
中文视频:open.163.com/special/ope…
中文笔记:kivy-cn.github.io/Stanford-CS…
速查表:这份给力的资源贡献者是一名斯坦福的毕业生 Shervine Amidi。作者整理了一份超级详细的关于 CS229的速查表zhuanlan.zhihu.com/p/56534902
作业代码:github.com/Sierkinhane…

作者:布客飞龙
链接:https://juejin.im/post/6844903832011423751
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  1. CS231n: Convolutional Neural Networks for Visual Recognition

Stanford最受欢迎的课之一。做图像识别的,就算不想搞图像识别,也会学到很多有用的通用的东西。

  1. 公开课 林轩田《机器学习基石》

台湾大学林轩田老师的《机器学习基石》课程由浅入深、内容全面,基本涵盖了机器学习领域的很多方面。其作为机器学习的入门和进阶资料非常适合。而且林老师的教学风格也很幽默风趣,总让读者在轻松愉快的氛围中掌握知识。这门课比 Ng 的《Machine Learning》稍难一些,侧重于机器学习理论知识
中文视频:www.bilibili.com/video/av367…
中文笔记:redstonewill.com/category/ai…
配套教材:配套书籍为《Learning From Data》,在线书籍主页:amlbook.com/

红色石头整理了这门课 16 节课的精炼笔记,供大家参考:
林轩田机器学习基石

书籍

在学习吴恩达的在线课程时,推荐同时阅读相关的机器学习书籍补充理论知识

  1. Python机器学习

这本书去掉了大量的数学推导的部分,仅保留了机器学习的核心应用。阅读本书可以快速对如何使用Python机器学习框架Sklearn有一个基本的了解,可以很快上手开始工作。

  1. Introduction to Statistical Learning with R(ISL)

ISL是ESL的入门版,不仅大量的去除了繁复的数学推导,还加入了R编程的部分,方便大家可以尽快上手。

  1. 周志华《机器学习》

建议把西瓜书作为参考书而不是主力阅读书,建议的用法是在学习网课和阅读ISL遇到疑惑时可以参考西瓜书的相关章节,但入门阶段没有必要一章一章的阅读,在这个阶段只阅读前十章即可。
配合《机器学习实战》一起学习,效果更好!
读书笔记:www.cnblogs.com/limitlessun…
公式推导:datawhalechina.github.io/pumpkin-boo…
课后习题:zhuanlan.zhihu.com/c_101385029…

  1. Machine Learning in action

(这里面的完成语言为Python)这是英文版本的。当然如果你觉得英文对你是一个完全过不去的坎,(虽然我建议做技术的人都必须至少要看得懂英文)现在有中文版本,叫“机器学习实践”。
这本书用尽量少的公式把机器学习的基本算法都过了一遍,而且还讲得很清楚,更为重要的是他将公式和代码结合了起来。因此,你的机器学习并没有那么的抽象了,你知道算法里的公式如何的转化为代码。
所以,第一步,你可以耐着性子将这本书看完。反正我当时,把书中的代码自己敲了一次,虽然代码有的下载,你也可以选择只是把代码看懂完事。但我还是建议,自己敲一次,运行运行,这样你会得到不一样的体会。

第二阶段:进阶学习(3-6个月)

在这个阶段,你已经对机器学习有了基本的了解。如果你认真的阅读了ISL并上完了吴恩达的课程,我相信你已经在理论上明白了什么是线性回归,什么是数据压缩,对特征工程以及简单的回归/预测问题有了理论上的基础。这个时候最重要的就是进行实践!

训练实践

  1. Kaggle挑战赛/练习

Kaggle(Your Home for Data Science)在数据分析领域早已大名鼎鼎,甚至可以说是数据分析第一社区。可以从Titanic这个比赛开始。Titanic: Machine Learning from Disaster

  1. 天池大数据竞赛

阿里云 天池大数据众智平台-数据科学家社区

Sklearn文档学习

Sklearn(scikit-learn: machine learning in Python)是Python上最流行的机器学习/数据科学工具包,上文介绍的Python Machine Learning书中就大量使用Sklearn的API。和使用Kaggle的目的一致,学习的Sklearn的文档也是一种实践过程。比较推荐的方法是把主流机器学习模型Sklearn中的例子都看一遍。

工具 Scikit-Learn 官方文档

Scikit-Learn 作为机器学习一个非常全面的库,是一份不可多得的实战编程手册。
官方文档:scikit-learn.org/stable/inde…
中文文档(0.19):sklearn.apachecn.org/#/

书籍

  1. scikit-learn

学习sklearn文档时同时配合着scikit-learn这本书,我会推荐参考这本19年的新书,是我见过的为数不多的把理论和实践相结合的比较棒的书,尤其是代码部分!

  1. 周志华机器学习

再次提到周老师是因为西瓜书是值得常常翻看的一本书,在kaggle挑战和阅读Sklearn文档的过程中你还会时不时的遇到一些新的名词,比如流形学习(manifold learning)等。这个时候你会发现西瓜书真的是一本中级阶段大而全的书籍。

  1. 《统计学习方法》

李航的这本《统计学习方法》堪称经典,包含更加完备和专业的机器学习理论知识,作为夯实理论非常不错。
讲课 PPT:github.com/fengdu78/li…
读书笔记:www.cnblogs.com/limitlessun…
github.com/SmirkCao/Li…
参考笔记:zhuanlan.zhihu.com/p/36378498
代码实现:github.com/fengdu78/li…

  1. 《Scikit-Learn 与 TensorFlow 机器学习实用指南》

在经过前面的学习之后,这本《Scikit-Learn 与 TensorFlow 机器学习实用指南》非常适合提升你的机器学习实战编程能力。
这本书分为两大部分,第一部分介绍机器学习基础算法,每章都配备 Scikit-Learn 实操项目;第二部分介绍神经网络与深度学习,每章配备 TensorFlow 实操项目。如果只是机器学习,可先看第一部分的内容。

全书代码:github.com/ageron/hand…

  1. 《机器学习实战》

学完了上述几门优秀的公开课之后,已经具备了比较不错的机器学习理论了。接下来就要注重实战。简单地说,最直接的方法就是自己实现一遍主流的机器学习算法。这里可能有的同学说不需要重复造轮子。但是我觉得简单地把所有机器学习算法使用python实现一遍还是很有必要的,至少是伪代码的形式。一方面能够加深自己对理论的深入理解,另一方面能够锻炼自己的代码实操能力。可以看下这本《机器学习实战》书:

这本书最大的特点就是从零开始,使用python实现主流的机器学习算法。可以借鉴和参考。但是这本书的缺点也很明显,比如代码基于python2,代码比较晦涩难懂,可读性不高。但整体了解下还是很不错的。

视频

  1. 公开课 林轩田《机器学习技法》

《机器学习技法》课程是《机器学习基石》的进阶课程。主要介绍了机器学习领域经典的一些算法,包括支持向量机、决策树、随机森林、神经网络等等。难度要略高于《机器学习基石》,具有很强的实用性。
中文视频:www.bilibili.com/video/av367…
中文笔记:redstonewill.com/category/ai…

第三阶段(可选*):深度学习(3-6个月)

因为深度学习是当下的热点,很多公司都在寻找深度学习人才。虽然深度学习只是机器学习的一个子集,但有兴趣朝这个方向发展的朋友可以在完成以上学习后单独学习一下深度学习。

视频

  1. 吴恩达深度学习课程

吴恩达在八月份的时候通过Deeplearning.ai和Coursera平台推出了最新系列的五门深度学习课程(deeplearning.ai)。有条件的朋友可以通过Coursera学习获得证书,最近网易云课堂也上线了这门课的翻译版。如果想要上其中的课程,需要先注册报名「深度学习工程师微专业」 深度学习工程师微专业 - 一线人工智能大师吴恩达亲研-网易云课堂 - 网易云课堂,之后就可以分别点开每门课单独进行学习。
整个专题共包括五门课程:01.神经网络和深度学习;02.改善深层神经网络-超参数调试、正则化以及优化;03.结构化机器学习项目;04.卷积神经网络;05.序列模型。
课程视频
网易云课堂:mooc.study.163.com/university/…

Coursera:www.coursera.org/specializat…

课程笔记

之前编写过吴恩达老师机器学习个人笔记黄海广博士带领团队整理了中文笔记:

github.com/fengdu78/de…

参考论文

吴恩达老师在课程中提到了很多优秀论文,黄海广博士整理如下:

github.com/fengdu78/de…

课程PPT及课后作业

吴恩达深度学习课程,包含课程的课件、课后作业和一些其他资料:

github.com/stormstone/…

从18年 8 月份开始,AI 界大IP吴恩达在 Coursera 上开设了由 5 门课组成的深度学习专项课程,掀起了一股人工智能深度学习热潮。关于该深度学习专项课程,红色石头非常推荐!它对于理解各种算法背后的原理非常有帮助,同时提供了大量的应用场景,涉及图像、语音、自然语言理解等各方面,还提供了一些工具函数、数据集。这个系列课程是从机器学习过渡到深度学习的必备课程!

今年,Ng 又在斯坦福大学又开设了高质量的深度学习课程 CS230。这门课的主页是:CS230: Deep Learning这门课是 deeplearning.ai 的线上、线下综合课程。这门课采用翻转课堂的教学形式,你可以在家观看教学视频,完成深度编程作业和在线测试,然后来到课程做进一步讨论并完成项目。这门课将以一个开放式的最终项目作为结束,此过程中教学团队会提供一些帮助。该门课的线上部分与deeplearning.ai一致,线下部分包含了一个课程项目。目前 CS230 的项目报告与 Poster 展示都已经发布。包含多种主题,如音乐生成、情绪检测、电影情感分类、癌症检测等。https://web.stanford.edu/class/cs230/proj-spring-2018.html

书籍

  1. Deep Learning - by Ian GoodFellow

深度学习这本书是由当下深度学习领域的几位领军人物所著,包含三大巨头之一的Bengio,还有教父Hinton来作序推荐。这本书的中文本翻译由张志华教授团队负责,在github上免费放出了翻译版本,印刷版也可以从亚马逊中国上买到。
英文版:Deep Learning
中文版:exacity/deeplearningbook-chinese

阅读建议:

  • 为了补充基础可以阅读第1-5章其中也包含了一些数学知识
  • 只关注主流神经网络知识可以阅读6-10章,介绍了DNN/CNN/RNN
  • 需要进一步了解一些调参和应用技巧,推荐阅读11和12章

另外,鉴于现在深度学习这么的火热,而且现在做机器学习也避免不了了解及应用深度学习,我这里也加入一些深度学习的内容。

1、入门的数学和编程基础和机器学习的要求是一样的。

2、入门读物还是推荐Andrew Ng老师组织的一个WIKI,UFLDL Tutorial - Ufldl , 非常建议大家老老实实花两个星期的时间把这个wiki的内容和相关程序自己实现一次。而且,这个wiki是有中文版本的,在每个页面的最下面都可以点击查看中文版本。(PS:我还很荣幸的当时参与了当时的翻译工作,为内容的中文化做了一点点微小的工作。)。

3、现在的深度学习应用最为广泛的就是卷积神经网络(Convolutional neural network, CNN),所以建议大家可以多看看这个方面的内容。正好这几天Fei Fei Li老师的CNN课程又开课了,大家有兴趣可以去看看。这个网站会同步更新,而且有中文翻译。

4、做深度学习避免不了的要选择一个平台,Tensorflow,Caffe,Torch,MxNet等等都是选择。如果是新手,尤其是基于Windows平台的新手,我还是比较建议用Tensorflow。具体的内容可以参见这个

5、最后,就是勤联系、勤联系、勤联系啦。

6、最后的最后,如果没有项目参与,那么最好的检验自己的学习成果的手段就是参加比赛啦。国外的Kaggle,KDD CUP,...。国内的天池大数据竞赛,...。

https://www.kaggle.com/
https://www.kdd.org/kdd-cup
https://tianchi.shuju.aliyun.com/

第四阶段:深入研究

恭喜你!如果你已经完成了上面的计划表,代表你已经有了相当的机器学习能力。这个阶段,最重要的就是不要贪多嚼不烂。如果你浏览知乎,会发现大家都说你必须读Elements of Statistical Learning, MLAPP之类的大部头。我承认阅读这样的书会有帮助,但在你有了一定的基础知识后,相信你已经知道自己需要接着做什么了也有了志同道合的朋友,我希望把选择权交还给你,而不是继续推荐成堆的课程和书籍。当然,如果你希望继续深入的话,中文可以继续阅读周志华老师的《机器学习》和李航老师的《统计学习基础》,英文可以入手《Elements of Statistical Learning》。**在这个阶段,重点要形成成体系的知识脉络,切记贪多嚼不烂,切记!

从阅读论文角度来说,订阅Arxiv,关注机器学习的顶级会议,如ICML/NIPS/KDD等,相关的方法在知乎上可以很容易搜索到,不在此赘述。

框架研究

TensorFlow。推荐一个简单的中文入门教程。主讲人是一个在美国读大学的中国留学生,讲得很有趣。(咦,youtube的没自动转)https://www.youtube.com/watch?v=8X9QUwtRSs0&list=PLwY2GJhAPWRcZxxVFpNhhfivuW0kX15yG&index=1墙内的朋友可以在bilibili看(一样的)哔哩哔哩 ( ゜- ゜)つロ 乾杯~ Bilibili

学习路线思维导图

机器学习

深度学习

更多问题请访问:我的个人网站(耳壳网)
大家一起学习交流!

close

订阅博客,及时获取文章更新通知

订阅博客,及时获取文章更新通知

古月弧

文章评论