怎么入门机器/深度学习?
回答这个问题,最先要考虑的问题是:你有多少时间?
准备用三个月入门,和想要一个月速成,肯定是截然不同的路径。当然我建议大家稳扎稳打,至少可以拿出五个月的时间来学好机器学习的基础知识。
基础很重要,知其所以然很重要。毕竟工具总在进步,每个月都会出现更好的深度学习技术,但基础知识是不变的。
如何用五个月时间入门?下面分三个部分,详细指南。(以及,如果你确实时间有限,最后还有一个速成指南)
五个月入门
Part 1:从机器学习开始(两个月)
最好的入门教程,就是吴恩达讲授的机器学习。吴恩达这套课程发布很久了,虽然有些地方稍微过时,但相信我,现在没有任何公开的课程,能比吴恩达讲得更好。真的,课程结束时我几乎哭了出来。
这个课程可以说适合任何水平的学生,当然,你最好还是得知道两个矩阵如何相乘,以及对编程有一些基本的了解。
这套课程可以前往Coursera学习,传送门:
https://www.coursera.org/learn/machine-learning
也可以上网易公开课收看,传送门:
http://open.163.com/special/opencourse/machinelearning.html
如果你有时间,一定要听完全部的课程。如果时间紧张,至少要听完前五节课程,后面的可以暂时跳过。
吴恩达的机器学习课程深入讲解了经典的机器学习模型,如线性回归、逻辑回归、神经网络、支持向量机、PCA、无监督学习等等。大部分重要概念,都以简单易懂的方式进行了介绍。
课程延伸
当你学习到第五节课,也就是开始讲述神经网络时,建议开始查看与课程平行的外部资料。比方3bule1brown推出的神经网络讲解视频。推荐必看。
YouTube传送门:
https://youtu.be/aircAruvnKk?list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi
或者可以前往B站查看:
http://space.bilibili.com/88461692/#/
以及,我觉得吴恩达在讲神经网络时有点快,所以建议补充阅读一些资料。比如有关神经网络和深度学习的在线书籍,免费的就很好了。
传送门:
http://neuralnetworksanddeeplearning.com/
作者Michael A. Nielsen以一种简单直观的方式,深入探究了神经网络的每个细节。建议阅读这本书的前两章,与吴恩达的课程并行。当你熟悉更多概念后,开始搞深度学习时,可以再看书中的其余部分。
如果你英文不好,这本《神经网络与深度学习》也有中文翻译版本,可以免费在线查看。
传送门在此:
https://tigerneil.gitbooks.io/neural-networks-and-deep-learning-zh/content/
这个部分的学习结束之后,你就能明白机器/深度学习的许多概念。最后推荐阅读Christopher Olah的博客,很有意思。
传送门: http://colah.github.io/
Part 2:涉足深度学习(1个月)
开始研究深度学习之前,最好重温一下大学数学。Ian Goodfellow传奇般的“花书”《深度学习》,简明扼要的概括了大部分重要主题。
建议大家尽可能深入地阅读线性代数、概率、信息理论的章节。每当读论文遇到深度学习概念时,都可以在书中找到参考。
以及,这本书有在线的版本。
例如英文版在此:
https://github.com/janishar/mit-deep-learning-book-pdf/blob/master/complete-book-bookmarked-pdf/deeplearningbook.pdf 。
而中文翻译版本在此:
https://github.com/exacity/deeplearningbook-chinese
关于深度学习的在线资料有很多,你可能会挑花了眼。
再一次,我觉得最好的选择,还是听吴恩达的《深度学习专项系列课程(Deep Learning Specialization)》。
Coursera传送门:
https://www.coursera.org/specializations/deep-learning
网易云课堂的传送门:
https://mooc.study.163.com/smartSpec/detail/1001319001.htm/
这门课程包括五大章节。其实不是免费的,你可以按照50美元/月购买。当然,如果你负担不起,还能申请“助学金”。申请时请详细阐明理由,处理的时间大概需要15天左右。
当然不付费,大部分内容都是可以看的。以及视频的部分,在很多地方也能免费收看。
这五门课程主要讲的是:
1、神经网络和深度学习(4周)
2、改善深度神经网络(3周)
3、结构化机器学习项目(2周)
4、卷积神经网络(4周)
5、序列模型(3周)
前三门课程涉及一般的神经网络和深度学习,第四、第五门课程涉及特定主题。如果你打算搞视觉,第四课必听;如果你搞NLP、音频等,第五课必听。但如果你需要听第五课,那么建议也把第四课好好听一下。
这里鼓励大家一下,课程里每周的内容,实际上一两天就能学完,所以不要被课程表吓倒。劳逸集合、提升效率。
学到这个地步,其实就可以再去http://neuralnetworksanddeeplearning.com/ ,查看第三到第六章的内容,来强化你的概念。如果你有什么还没搞懂的,请前往Olah的博客。
以及,这时候你要开始看深度学习的论文了,从中学习知识。深度学习有个强烈的特点,那就是内容都非常新,阅读论文是跟上时代唯一的方法。不想被抛下,那么还是养成阅读论文的好习惯吧。
Part 3:深度学习上手练(两个月)
学到这里,你应该对机器学习和深度学习中的大多数概念有了正确的理解,现在是时候投入沸腾的实际生活中了。
练手深度学习,最好的资源在fast.ai。
传送门在此: http://course.fast.ai/
他们在流行的深度学习工具PyTorch上构建了一个库,只需要几行代码,就能实现世界级的性能。
fast.ai的理念有点不同。吴恩达等老师的教授方法是自上而下,先讲再做。而fast.ai倡导自下而上,先做再讲。
所以在他们的课程中,第一节就带你建立一个强大的图像分类器。自己训练模型的快感,刺激着你去完成其余的课程。
除此以外,还要推荐两门课。
斯坦福大学的CS231n和CS224n。CS231n专注于计算机视觉的深度学习,而CS224n专注于序列建模。
CS231n,李飞飞等主讲。
官网传送门: http://cs231n.stanford.edu/
CS224n,目前是Richard Socher主讲。
官网传送门: http://web.stanford.edu/class/cs224n/
此前的课程,网上也有中文字幕版本,大家可自行搜索。
到这里,为期五个月的机器/深度学习入门就结束了。
希望大家都能稳扎稳打,夯实基础。
以及最后,兑现一个开头的承诺。如果你确实时间很紧张,必须尽快入门机器/深度学习,那么请看——
速成指南
我最多只有俩月
1、完成吴恩达机器学习课程的前五周,要做编程练习。
2、看完3Blue1Brown的视频。
3、完成吴恩达的深度学习专项系列课程,做练习。
4、如果你想搞图像,看专项课程第四讲,搞NLP或序列数据,看第五讲。
5、搜索你感兴趣的开源实现。如果你还没想好用什么语言,推荐Keras。然后根据需要,再迁到TensorFlow或者PyTorch框架。
我,只有一个月
想要在30天完成入门超级困难。除非,你只是想了解机器学习的工作原理,然后应用到自己的项目中。
如果是这样的话,速成建议如下:
1、略读吴恩达机器学习课程第1-5周的课程,只看视频,掌握概念即可。第三周可以跳过MATLAB/Octave课程。
2、看完3Blue1Brow的视频。
3、略读吴恩达深度学习专项系列课程的第一课,也就是神经网络和深度学习。
4、如果你想做图像处理项目,看一下Nielsen书中的第六章:http://neuralnetworksanddeeplearning.com/chap6.html
如果你需要序列建模的一些想法,可以看看Olah的博客:http://colah.github.io/posts/2015-08-Understanding-LSTMs/
5、Siraj Raval拍了很多有趣的视频,涉及大多数机器/深度学习的主题。传送门在此:https://www.youtube.com/channel/UCWN3xxRkmTPmbKwht9FuE5A
6、搜索跟你感兴趣的开源实现,随时调整以满足你的需求。如前所述,我推荐你先用带有TensorFlow后端的Keras语言。
其他资源
YouTube上有一个两分钟读论文的系列视频,可以帮你快速了解全球深度学习的最热门进展。
如果你关注进机器学习领域的进展,Twitter是个绝佳的工具。
遇到困境的时候,记得reddit和Facebook上有很多志同道合的人,不要犹豫,在社区里寻求帮助,大家会伸出援手。
结论
机器学习和深度学习是当今世界最具魅力的技术之一。而且这个领域的深度学习专家总是处于稀缺的状态。从职业前景来看,深度学习非常吸引人。
需要提醒的是,与计算机学科的其他领域不同,深度学习的资源还不够丰富。很多时候你会遇到失败挫折,千万不要灰心丧气,你可以向更多人寻求帮助,很多人都愿意伸出援手,大家都在学习。
关于机器/深度学习,有一个误解是需要计算机科学的背景才能学习。这不是真的,你确实需要一些编程的思维才好入手,但也仅限于此。现在机器学习领域的很多专家,都来自其他研究领域。
如果你有计算机科学的背景,这是一个非常好的开始。但如果你出身其他学科,想要迎头赶上并不难。
感谢看到这里。
原作:Masum Hasan
问耕 编译整理
原作地址:
欢迎大家关注我们的专栏:量子位 - 知乎专栏
另外一篇文章,交叉参考一下
感谢@Venn的补充
年三十简单写了一下,没想到过百赞了,太粗糙了重新组织和修改一下。
————————————————————
首先不建议购买国内的那些培训班的课程,质量堪忧。还有题主应该是初学者,所以建议题主还是先入个门感受一下机器学习,不是说听说这个现在很火跟风去学,机器学习是一门数学和计算机交叉的学科,想要深入的话理论和工程要求都很高,只是简简单单的调用API是不能触摸到其本质成为优秀的算法工程师。计算机科学有这么多领域,不一定死磕机器学习,在任何一个方向深耕十几年的话定会成为大牛。
入门的话建议看Coursera上吴恩达教授的《机器学习》课程,真真切切的感受一下机器学习,请自己把作业认真做完,收获定会很多。
如果上完上面这门课程,确实喜欢并且想深入学习,可以看看吴教授最新出的《Deep Learning》,刷完我想你对现在最火的深度学习有所了解。
接下来我不建议刷课了,而是去Kaggle上刷比赛,将自己所学运用到实际的问题中,题主在参加比赛中可能需要学习TensorFlow,建议看斯坦福大学CS20si。个人认为一名优秀的工程师最重要的是解决实际的问题而不是陷于低质量重复性地刷课中。如果在比赛中发现自己基础不扎实,可以通过《Pattern Recognition and Machine Learning》和 《Deep Learning》(最近新出的一本叫做《Neural Network Methods for Natural Language Processing》也是极好,在学习中。。。)查漏补缺,慢慢前行,不断地实践不断地夯实基础。机器学习正处于第三次大爆发时期,有许多学界的研究者在贡献自己的力量,题主基础扎实以后,可以紧跟学界的论文,将最新的研究成果应用到实际的问题中。
再附上一些知名的课程,如果题主有时间和兴趣可以继续学习:
斯坦福大学CS231n,中文翻译: 斯坦福深度学习课程CS231N 2017中文字幕版
斯坦福大学CS224n, B站视频地址: 斯坦福2017季CS224n深度学习自然语言处理课程
斯坦福大学CS234: Reinforcement Learning
台湾大学林轩田教授 《机器学习基石上》, 《机器学习基石下》,《机器学习技法》(技法C站还没出,等出了再补充)
台湾大学《Applied Deep Learning/Machine Learning and Having It Deep and Structured》
CMU 11-785 Deep Learning 视频; https://www.youtube.com/channel/UC8hYZGEkI2dDO8scT8C5UQA
切记一定要自己动手实现课程的作业以及参加Kaggle的比赛,纸上得来终觉浅,绝知此事要躬行。请不要陷入刷课的泥潭中,不忘记学习机器学习的初心,方能始终。
————————————————————
补充
Amazon 李沐大神出的《动手学深度学习》 ,一门零基础,着重动手实践的深度学习免费中文课程。
数学基础不够或者忘完的小伙伴们有福了,可以学习C站出品的《Mathematics for Machine Learning 》课程。
Berkeley出品的《Deep Reinforcement Learning》
C站出品的《高级机器学习 专项课程》
Yandex出品的《Natural Language Processing》,PyTorch版的《Deep earning》以及《Reinforcement Learning》
C站出品的机器学习应用类课程《Guided Tour of Machine Learning in Finance》和《Self-Driving Cars》
**计算机视觉**
首先是冈萨雷斯的数字图像处理
入门视频有三个
http://vision.stanford.edu/teaching/里面的cs131 cs231a cs231n
视频有的话可以找一找,没有就不看了 然后可以看看这俩本书
1.计算机视觉,这个强烈推荐
Computer Vision: Models, Learning, and Inference
http://www.computervisionmodels.com/
2.Computer Vision: Algorithms and Applications,适合用作工具书
最后附上一个论文整理过的网址,特别好
http://www.visionbib.com/bibliography/contents.html
反正最主要的就是看论文和回顾书本学习,实践,kaggle
反而书本显得不是特别重要