机器学习入门指南

作者:Leon

链接:https://www.zhihu.com/question/20691338/answer/102249162

来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


我自己总结了一个机器人学习、机器人的学习资料。需要的可以点击以下链接下载:

http://mp.weixin.qq.com/s/bH0Ev7icqzqTwZ38a8c4MQ

我看到有人在问,Andrew Ng的视频,还有代码这些的资料。再次整理一下:

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、入门的数学和编程基础和机器学习的要求是一样的。

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

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

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

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

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


这几年,机器学习绝对是计算机领域最热门的话题和方向。笔者不属于专门研究机器学习,但是平时的工作会经常用到一些相关的算法。因此,对于机器学习也仅仅是入门的水平。但是我想也正是因为我只是一个入门汉,所以能够从我们入门者的角度来总结如何入门,希望对还在门外的同学有一些帮助。

数学

很多人翻看任何一本机器学习的书,看到一推的数学公式就开始打退堂鼓了。开始搜索,提问“机器学习需要哪些数学知识?”然后得到的结果可能会是“矩阵分析,概率论,优化设计……”而且还会有大量的人推荐一些例如“All of Statistics”,“Convex Optimation”等等外文教材。至少我当时面对的情况就是这样的。这种情况很可能后面会朝以下画风发展。

看到上述推荐的那些经典教材,你像看待圣经一样看待他们。抱着一种学会了那些课,我再看机器学习的书简直就会是探囊取物的想法,你下载了巨多相关材料。但是,慢慢你会发现,除了把他们下载了下来,你并没有任何的进步。你并没有完完整整的看完一本,你并没有在机器学习方面卓越超群。

入门阶段真的需要这么多的数学储备吗?未必。

入门阶段我感觉你只要有普通工科专业大一大二那几门基础数学课“线性代数”,“高数”,“概率论与数理统计”就可以让你入门了。

所以,千万别被机器学习中的数学所吓倒而不知道该如何下手。

只要有上述的几门课的基础,你完全可以看懂很大一部分机器学习算法。

程序语言

机器学习入门最佳的方法其实就是理论和代码一起学习。一边看相应的理论推导,一边看并且实践经典代码。所以,为了更快入门,我推荐你最好能够懂点MATLAB或者是Python语言。

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

第一步

有了上述基础后,你可以开始看点机器学习的相关内容了。我看很多人推荐elements of machine learning。我想说,你想让一个基础为零的人去看这本书,真的合适吗???

所以,我推荐的是Machine Learning in action,(这里面的完成语言为Python)这是英文版本的。当然如果你觉得英文对你是一个完全过不去的坎,(虽然我建议做技术的人都必须至少要看得懂英文)现在有中文版本,叫“机器学习实践”。

这本书用尽量少的公式把机器学习的基本算法都过了一遍,而且还讲得很清楚,更为重要的是他将公式和代码结合了起来。因此,你的机器学习并没有那么的抽象了,你知道算法里的公式如何的转化为代码。

所以,第一步,你可以耐着性子将这本书看完。反正我当时,把书中的代码自己敲了一次,虽然代码有的下载,你也可以选择只是把代码看懂完事。但我还是建议,自己敲一次,运行运行,这样你会得到不一样的体会。

第二步

**学习Coursera上面Andrew Ng老师的machine learning的课程。**这门课造福了众多机器学习的入门者,不仅仅是因为课程全面,内容由浅入深。更加重要的是这门课程每次课都有课堂作业,作业不需要你写出来所有的代码,但是关键代码要你写出来,而且还会教你如何调试代码。

初学者学这门课的时候很可能会买有耐心,又是英文的,又有进度要求,又有作业。没关系,你可以把视频下载下来(很多网盘里都有下载好的视频),然后慢慢的去啃。作业也是,可能你自己不能一口气写出来,没关系,在自己做了大量尝试后,去Github上面下载一些别人写好的代码看一看,找找自己的问题到底出在了哪里。

总之,一定要耐着性子过一遍甚至是几面这个课程。

第三步

这时候你已经对机器学习很多简单的算法比较清楚了,但是可能还没有一种大的全局观。所以,我建议大家可以看看这两本中文教材。周志华老师的西瓜书《机器学习》和李航老师的《统计学习方法》,这两本书都是作者花了大量心思编写的,也是在中国众多科技书籍中难得的两本佳作。

英文书籍,可以推荐《Patten Recognition and Machine Learning》,《Elementsof Statistical Learning》(但是这本书难度比较大,如果你有足够的耐心,可以慢慢啃,多次的啃。相信每次都会有不同的收获。我自己已经看了好几次,但是确实每次都没有完全看完,但是目前我遇到很多问题,我去翻这本书,还是能找到很多答案,尤其是我做稀疏相关的工作,里面的相关内容讲解非常清楚。)

第四步

这时候,机器学习你已经可以说大概入门了。后面的事情,就得根据你的需求来制定相关的学习路线。

比如,做大数据分析的,得去学学spark,Hadoop等计算框架;

另外,图模型,深度学习……等等内容,都是一些方向。

自然语言处理、图像识别、语音识别等等也是一些应用方向,更有大量的领域知识需要结合。

在前沿部分和第一到第三步的内容,如果你能按照这几步走下来,入门是肯定可以的。至于后面的机器学习精通部分,我也只能说:Good Luck and Have Fun

猜你喜欢

转载自my.oschina.net/jallenkwong/blog/1795579