因为之前有不少朋友在微信或 QQ 上问我,机器学习、深度学习应该如何入门呢?对应这一问题,红色石头碰巧也在知乎上看到有人提问,就把自己的入门学习经验好好总结了一番,包括各种资源、课程笔记和建议,以及红色石头切身经历的机器学习路线图。希望对你有所帮助。
1. 放弃海量资料!
没错,就是放弃海量资料!在我们想要入门机器学习的时候,往往会搜集很多资料,什么 xx学院机器学习内部资源、机器学习从入门到进阶百 G 资源、xx 人工智能教程,等等。很多时候我们拿着十几 G、几百 G 的学习资源,然后踏踏实实地放到了某云盘里存着,等着日后慢慢学习。殊不知,有 90% 的人仅仅只是搜集资料、保存资料而已,放在云盘里一年半载也忘了打开学习。躺在云盘的资料很多时候只是大多数人“以后好好学习”的自我安慰和“自我”安全感而已。而且,面对海量的学习资料,很容易陷入到一种迷茫的状态,最直接的感觉就是:天啊,有这么多东西要学!天啊,还有这么多东西没学!简单来说,就是选择越多,越容易让人陷入无从选择的困境。
所以,第一步就是要放弃海量资料,放弃你的云盘!
2. 放弃从零起步!
说到入门,很多人会想着那就要从最基础的知识开始学起!机器学习是一门融合概率论、线性代数、凸优化、计算机、神经科学等多方面的复杂技术。学好机器学习需要的理论知识很多,有些人可能基础不是特别扎实,就想着从最底层的知识开始学起,概率论、线性代数、机器学习凸优化公式推导,等等。但是这样做的坏处是比较耗时间,而且容易造成“懈怠学习”,打消学习的积极性。因为啃书本和推导公式相对来说是比较枯燥的,远不如自己搭建一个简单的回归模型更能激发自己的学习积极性。当然,不是说不需要钻研基础知识,基础理论知识非常重要!只是说,在入门的时候,最好先从顶层框架上有个系统的认识,然后再从实践到理论,有的放矢的查缺补漏机器学习知识点。从宏观到微观,从整体到细节,更有利于机器学习快速入门!而且从学习的积极性来说,也起到了“正反馈”的作用。
3. 机器学习入门学习路线
好了,谈完了机器学习入门之前的两个“放弃”之后,我就来系统介绍下红色石头整理的机器学习入门路线。
1)Andrew Ng《Machine Learning》
首先,非常推荐吴恩达(Andrew Ng)在 Coursera 上开设的机器学习入门课《Machine Learning》,授课地址是:
https://www.coursera.org/learn/machine-learning
关于这门课的官方介绍是:本课程将广泛介绍机器学习、数据挖掘和统计模式识别。相关主题包括:(i) 监督式学习(参数和非参数算法、支持向量机、核函数和神经网络)。(ii) 无监督学习(集群、降维、推荐系统和深度学习)。(iii) 机器学习实例(偏见/方差理论;机器学习和AI领域的创新)。课程将引用很多案例和应用,您还需要学习如何在不同领域应用学习算法,例如智能机器人(感知和控制)、文本理解(网络搜索和垃圾邮件过滤)、计算机视觉、医学信息学、音频、数据库挖掘等领域。
这门课基本涵盖了机器学习的主要知识点,例如:线性回归、逻辑回归、支持向量机、神经网络、K-Means、异常检测等等。而且课程中没有复杂的公式推导和理论分析。Ng 的目的是让机器学习初学者能够快速对整个机器学习知识点有比较整体的认识,便于快速入门。
红色石头整理了这门课所有知识点的思维导图:
这门课每个知识点都会配套相应的练习题。大家可以在 Coursera 上下载,线下完成并提交。唯一的缺点可能是该习题都是基于 matlab 平台的。但是,Github 上已经有人把作业整理成为 Python 的形式了。有 .py 和 .ipynb 两种格式。
https://github.com/nsoojin/coursera-ml-py
https://github.com/kaleko/CourseraML
这门课所有的视频、课件PPT、作业,红色石头都放在了百度云盘上,需要的请在本公众号后台回复:ng 即可获得。
2)台大林轩田《机器学习基石》
台湾大学林轩田老师的《机器学习基石》课程由浅入深、内容全面,基本涵盖了机器学习领域的很多方面。其作为机器学习的入门和进阶资料非常适合。而且林老师的教学风格也很幽默风趣,总让读者在轻松愉快的氛围中掌握知识。这门课比 Ng 的《Machine Learning》稍难一些,侧重于机器学习理论知识。 首先附上这门课的主页:
https://www.csie.ntu.edu.tw/~htlin/
林轩田机器学习基石这门课有一个配套教材:《Learning From Data》,林轩田也是编者之一。这本书的主页为:
红色石头整理了这门课 16 节课的精炼笔记,供大家参考:
【11】Linear Models for Classification
【14】Regularization
【15】Validation
3)台大林轩田《机器学习技法》
《机器学习技法》课程是《机器学习基石》的进阶课程。主要介绍了机器学习领域经典的一些算法,包括支持向量机、决策树、随机森林、神经网络等等。难度要略高于《机器学习基石》,具有很强的实用性。
首先附上这门课的主页:
https://www.csie.ntu.edu.tw/~htlin/
课程视频在B站上可以直接观看哦~这里附上传送门:
https://www.bilibili.com/video/av12469267/
红色石头整理了这门课 16 节课的精炼笔记,供大家参考:
【1】Linear Support Vector Machine
【2】Dual Support Vector Machine
【3】Kernel Support Vector Machine
【4】Soft-Margin Support Vector Machine
【10】Random Forest
【11】Gradient Boosted Decision Tree
【12】Neural Network
【13】Deep Learning
【14】Radial Basis Function Network
【16】Finale
关于《机器学习基石》和《机器学习技法》的所有资源请在本公众号后台回复:lin 即可获得。
4)Andrew Ng 《深度学习专项课程》
从去年 8 月份开始,AI 界大IP吴恩达在 Coursera 上开设了由 5 门课组成的深度学习专项课程,掀起了一股人工智能深度学习热潮。这里附上 deeplearning.ai 的官网:
关于该深度学习专项课程,红色石头非常推荐!它对于理解各种算法背后的原理非常有帮助,同时提供了大量的应用场景,涉及图像、语音、自然语言理解等各方面,还提供了一些工具函数、数据集。这个系列课程是从机器学习过渡到深度学习的必备课程!该专项课程分为五门课,每门课的读书笔记汇总:
神经网络与深度学习:
【1】深度学习概述
【2】神经网络基础之逻辑回归
【4】浅层神经网络
【5】深层神经网络
优化神经网络:
【1】深度学习的实用层面
【2】优化算法
构建机器学习项目:
【1】机器学习策略(上)
【2】机器学习策略(下)
卷积神经网络CNN:
【1】卷积神经网络基础
【2】深度卷积模型:案例研究
【3】目标检测
【4】人脸识别与神经风格迁移
序列模型RNN:
【1】循环神经网络(RNN)
【3】序列模型和注意力机制
今年,Ng 又在斯坦福大学又开设了高质量的深度学习课程 CS230。这门课的主页是:
https://web.stanford.edu/class/cs230/
这门课是 deeplearning.ai 的线上、线下综合课程。这门课采用翻转课堂的教学形式,你可以在家观看教学视频,完成深度编程作业和在线测试,然后来到课程做进一步讨论并完成项目。这门课将以一个开放式的最终项目作为结束,此过程中教学团队会提供一些帮助。
该门课的线上部分与 deeplearning.ai 一致,线下部分包含了一个课程项目。目前 CS230 的项目报告与 Poster 展示都已经发布。包含多种主题,如音乐生成、情绪检测、电影情感分类、癌症检测等。
https://web.stanford.edu/class/cs230/proj-spring-2018.html
关于 CS230 所有的课程资料 pdf 文件,包括最终项目等文件请在本公众号后台回复:CS230 即可获得。
4. 进阶
基本上完成上述课程就算是入门了。接下来可以根据自己的兴趣和方向,有的放矢。例如主攻 CV 方向,可以继续学习斯坦福 CS231n 课程:
如果主攻 NLP 方向可以学习斯坦福 CS224n 课程:
http://web.stanford.edu/class/cs224n/
当然,台大李宏毅的课程也很不错: