本文作者在多年研究在线学习图景、在不同平台注册大量机器学习课程后,收集了目前最好的 5 门机器学习课程。
选自Medium,作者:LearnDataSci,机器之心编译。
机器学习根植于统计学,正在逐渐成为最有趣、发展最快的计算机科学领域之一。机器学习可应用到无数行业和应用中,使其更加高效和智能。
聊天机器人、垃圾邮件过滤、广告服务、搜索引擎和欺诈检测,这些都是机器学习模型在日常生活中的应用实例。机器学习使我们为人类力不能及的事找到模式、创建数学模型。
与涉及探索性数据分析、统计学、通信和可视化技术的数据科学课程不同,机器学习课程主要讲授机器学习算法、数学原理,以及如何使用某种编程语言写算法。
本文介绍了 top 5 机器学习课程:
-
吴恩达《机器学习》课程:https://www.learndatasci.com/out/coursera-machine-learning/
-
吴恩达《深度学习专项课程》:https://www.learndatasci.com/out/coursera-deep-learning-specialization/
-
SAEED AGHABOZORGI 主讲的 Machine Learning with Python 课程:https://www.learndatasci.com/out/coursera-ibm-machine-learning-python/
-
Advanced Machine Learning 专项课程:https://www.learndatasci.com/out/coursera-advanced-machine-learning-specialization/
-
哥伦比亚大学的 Machine Learning 课程:https://www.learndatasci.com/out/edx-columbia-machine-learning/
筛选标准
本文介绍的 5 门机器学习课程遵循以下标准:
-
严格专注于机器学习领域。
-
使用免费开源的编程语言,如 Python、R 或 Octave。
-
使用免费开源的库。
-
包含编程作业和实践。
-
解释算法运行的数学原理。
-
学员可以自己调节进度,大约每月可以获取新的课程。
-
讲师有趣、课堂有趣。
-
在不同网站和论坛上的评分和评价高于平均值。
-
若想尽快全面地学习机器学习,那么学习者还应该在在线学习之外看一些相关书籍。作者推荐了以下两本书籍,这两本书对作者的学习带来了很大影响。
书籍
1. An Introduction to Statistical Learning: with Applications in R
免费在线版地址:http://www-bcf.usc.edu/~gareth/ISL/
这本书具备清晰直接的解释和示例,可以帮助读者提升对基础机器学习技术的数学理解。这本书更加偏重理论,但仍然包含一些使用 R 语言的练习和示例。
2. Hands-On Machine Learning with Scikit-Learn and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems
这本书是对上一本书的良好补充,它主要涉及使用 Python 的机器学习应用。这本书搭配以下任意一门课程,可以帮助大家强化编程技能,了解如何直接将机器学习应用到项目中。
以下是本文的重头戏:top 5 机器学习课程。
一、吴恩达《机器学习》课程
这门课适合初学者,其讲师和创建者是斯坦福大学教授、谷歌大脑联合创始人、Coursera 联合创始人吴恩达。
这门课的作业要求使用开源编程语言 Octave,而不是 Python 或 R。这对于很多人来说有些怪异,但对于新手而言,Octave 是学习机器学习基础的简单方式。
整体来看,这门课程的材料翔实,直接由吴恩达授课,详细解释了每个算法必需的所有数学知识,还涉及了一些微积分知识和线性代数知识。这门课程基本上是独立的,不过提前了解一些线性代数知识会很有帮助。
-
课程提供者:吴恩达,斯坦福大学
-
费用:免费;如需课程证书,则需 79 美元
课程结构:
-
单变量 线性回归
-
线性代数概要
-
多变量线性回归
-
Octave/Matlab 教程
-
Logistic 回归
-
神经网络:表征
-
神经网络:学习
-
使用机器学习的建议
-
机器学习系统设计
-
降维
-
异常检测
-
推荐系统
-
大规模机器学习
-
应用案例:Photo OCR
该课程持续时间为 11 周。如果可以坚持上完整个课程,你将在大约四个月内对机器学习有一个较好的基本了解。
之后,你可以再学习感兴趣的高阶或专项课程,如深度学习、机器学习工程等。
这门课程对于新手来说无疑是最好的课程。
参考文章: 资源 | 吴恩达《机器学习》笔记,哥大研究生献上
二、吴恩达深度学习专项课程
该课程同样是吴恩达开设的。这是一个更高级的课程系列,适用于任何对机器学习、深度学习及其原理和应用感兴趣的人。
该课程共包括 5 门课,每门课的作业和授课都使用 Python 编程语言和 TensorFlow 神经网络库。该课程是吴恩达机器学习课程的良好后续,因为授课风格类似,而且你还可以学习使用 Python 进行机器学习。
-
课程提供者:吴恩达,deeplearning.ai
-
费用:免费;如需课程证书,则 49 美元/月
课程结构:
1. 神经网络和深度学习
-
深度学习简介
-
神经网络的基本概念
-
浅层神经网络
-
深度神经网络
2. 改善神经网络:调参、正则化和优化
-
深度学习的实践
-
优化算法
-
超参数调整、批归一化和编程框架
3. 构建机器学习项目
-
机器学习策略(1)
-
机器学习策略(2)
4. 卷积神经网络
-
卷积神经网络基础
-
深度卷积模型:案例研究
-
特殊应用:人脸识别和神经风格迁移
5. 序列模型
-
循环神经网络
-
自然语言处理和词嵌入
-
序列模型和注意力机制
要想理解该课程中介绍的算法,你应该先熟悉线性代数和机器学习。如果你需要关于学习所需数学知识的建议,可以参阅文末的学习指南(Learning Guide)。
参考文章:
三、用 Python 进行机器学习
这也是一个适合初学者的课程,只关注最基本的机器学习算法。讲师、幻灯片动画和对算法的解释结合得非常好,能让你对基本概念有直观的了解。
该课程使用 Python,但对算法背后的数学知识讲得较少。通过每个模块,你将有机会在浏览器中下载一个交互式 Jupyter notebook 来实践你学到的新概念。每个 notebook 会巩固你的知识,并提供了在真实数据上使用算法的具体说明。
-
课程提供者:IBM, Cognitive Class
-
费用:免费;如需课程证书,则 39 美元/月
课程结构:
-
机器学习导论
-
回归
-
分类
-
聚类
-
推荐系统
-
期末专题
这门课提供的最大好处之一是为每个算法提供了实用的建议。在讲授新算法时,讲师会介绍它的工作原理、优缺点以及你应该在什么样的情况下使用它。其它课程很少会涉及这些,但这些信息对于初学者理解更广泛的背景很重要。
四、高阶机器学习专项课程
这是关于机器学习的另一个高阶课程。如果你想尽可能多地学习机器学习技术,该专项课程就是一个很好的选择。
这门课程的教学非常好:很精彩,而且简明扼要。由于这是一门高级课程,因此你需要更多的数学知识。如果你已经参加了一门初级课程,并且复习了线性代数和微积分,这门课将是你补充机器学习其它专业知识的很好选择。
本课程涵盖的大部分内容对许多机器学习项目至关重要。
-
课程提供者:俄罗斯国家研究型高等经济大学(National Research University Higher School of Economics,HSE)
-
费用:免费;如需课程证书,则 49 美元/月
课程结构:
1. 深度学习导论
-
优化简介
-
神经网络简介
-
图像深度学习
-
无监督表征学习
-
序列深度学习
-
最终项目
2. 如何在数据科学竞赛中获胜:向顶尖 kaggler 学习
-
介绍和回顾
-
模型的特征处理和生成
-
最终项目说明
-
探索性数据分析
-
验证
-
数据泄露
-
度量优化
-
高级特征工程 1
-
超参数优化
-
高级特征工程 2
-
集成
-
竞赛介绍
-
最终项目
3. 机器学习贝叶斯方法
-
贝叶斯方法和共轭先验简介
-
期望最大化算法
-
变分推断和隐含狄利克雷分布(LDA)
-
马尔科夫链蒙特卡洛
-
变分自编码器
-
高斯过程和贝叶斯优化
-
最终项目
4. 实用强化学习
-
简介
-
强化学习核心:动态规划
-
无模型方法
-
基于近似值的方法
-
基于策略的方法
-
探索
5. 计算机视觉中的深度学习
-
图像处理和计算机视觉简介
-
视觉识别的卷积特征
-
目标检测
-
目标跟踪和动作识别
-
图像分割与合成
6. 自然语言处理
-
概念介绍和文本分类
-
语言建模和序列标注
-
语义向量空间模型
-
序列到序列任务
-
对话系统
7. 用机器学习应对大型强子对撞机的挑战
-
面向数据科学家的粒子物理学导论
-
粒子鉴别
-
在稀有衰变中探索新物理学
-
在新 CERN 实验中用机器学习寻找暗物质暗示
-
检测器优化
完成该系列课程大概需要 8-10 个月的时间,所以如果你从今天开始学习,在近一年的时间里,你将学到大量关于机器学习以及前沿应用的知识。
在这几个月里,你还将创建几个真正的项目。这些项目将极大丰富你的简历,让你的 GitHub 更吸引人。
五、机器学习
这是数学基础要求最高的一门高级课程。你的线性代数、微积分、概率、编程基础都需要非常牢固。该课程的有趣编程作业可以使用 Python 或 Octave 完成,但不提供关于这两种语言的课程。
该课程最大的亮点在于其涵盖了机器学习的概率方法。如果你之前读过《Machine Learning: A Probabilistic Perspective》等教科书,那么这门课程将成为良好的补充。
-
课程提供者:哥伦比亚大学