笔者是自学机器学习相关的知识, 在学习过程中, 完成了多门机器学习/深度学习相关的课程, 由于很多朋友会咨询课程相关的问题, 通过这篇文章将所有笔者完成或正在学习的课程进行总结, 希望对诸位有所帮助。

先说一下, 我认为一门优秀的机器学习相关课程, 至少要考虑以下几点:

1, 一个方向一个级别(入门, 进阶, 实践等)只选择一门课程

课不在多, 能扎扎实实全程跟下来才是王道。

2, 高清视频

一些老旧的视频, 视频不清晰, 板书看不清, 徒增学习曲线, 除非实在没有可替代的高清视频, 否则尽量优先选择高清视频。

3, 至少拥有英文字幕

学习机器学习,不是练习听力, 课程已经有难度了, 我们当然不希望英语听力继续增加学习曲线, 所以, 一门好课, 英文字幕是必须的(在下面的罗列中, 我会分别列出是否有中英文字幕)

4, 有作业!!!

这一点非常重要, 没有作业或者只有一个大作业的课程, 学下来就是囫囵吞枣, 做作业才是最核心的部分。

5, 选择主流的编程语言和框架

一些较陈旧的视频使用了注入matlab, R这些非主流的编程语言, 或是PaddlePaddle, NMTK这样非主流的编程框架, 尽量避开这些课程。 不要浪费时间在这些语言和框架学习上。

优质课经验材料博客_优质课经验交流_优质课获奖经验发言稿题目

好的, 进入正题。 下面我会分门别类列出笔者认为非常优秀的公开课。 相关资料也会一并列出。同时, 内容罗列的顺序也是我推荐的学习顺序。

1, 机器学习入门

推荐课程:

林轩田 台湾大学 《机器学习基石 上下》

推荐指数: ★★★★

编程语言: 无规定

作业形式: 大作业

建议学习时长:3个月

优点:

1, CalTech机器学习课程的中文版本, 相比原版, 内容基本复刻, 齐全有一定深度, 但视频高清,资料齐全,中文, 论坛活跃。可以说学习曲线大幅降低了。

缺点:

1, 只有几次大作业。 但编程语言可以自选, Python完成没有问题。机器学习入门类课程理论远多于实践, 数学多于计算机, 所以作业少影响不大。

其他课程:

How about Andrew Ng的Mooc课程?

Mooc版本内容过于简单, 看看热闹还行(如果你确实零基础, 也可以考虑先Andrew Ng的Mooc再林轩田)。 同时, 作业和课件使用非常冷门的Octave编程, 没有必要, 浪费时间。

推荐书籍:

《机器学习实践》

推荐指数: ★★★★★

非常优秀的入门级编程实践课程, 每个章节介绍一个算法, 附带了带数据的例程, 跑完全书的例子, 就能掌握大量基础学习算法, 为后续深度挖掘机器学习的理论知识打下好的编程基础。

2, 深度学习入门/图像识别入门

个人觉得学习完机器学习入门课程之后, 没有必要直接进入更难的进阶课程, 可以先入门深度学习。 毕竟再工业界深度学习已经渗透渗入所有机器学习的场景, 不学习深度学习的机器学习很难有用武之地。

推荐课程:

Stanford Li Feifei CS231N

推荐指数: ★★★★★

编程语言: Python/Tensorflow/PyTorch

作业形式: 三次小作业+一次大作业

建议学习时长: 4个月

优质课经验材料博客_优质课获奖经验发言稿题目_优质课经验交流

优点:

1, 没有什么比CS231N更好的机器学习入门课程了。 你只需要有基本的机器学习常识, 这门课程会带着你从一个简单的神经元开始, 一步步构造复杂的神经网络, 包括DNN, CNN, RNN等。

2, 这门课最大的财富是三次作业的源代码。认真跟完三次作业, 从零开始用Python/Numpy构造神经网络, 你就能对CNN, DNN, RNN的原理和实现有充分的认识, 之后再使用Tensorflow/Pytorch(课程同时提供了这两种框架的代码和讲义)进行应用, 学习GAN等更先进的算法, 事半功倍。

3, 值得庆祝的是, 国内一批小伙伴自发翻译了这门课的中文字幕。 膜拜。 我使用的是视频自带的英文字幕, 中文字幕质量如何请看过的小伙伴在评论补充。

缺点:

没有缺点。

可能会有小伙伴质疑, 为什么要学习一门视觉课程来学习深度学习, 为什么不是NLP, 或者更纯粹的深度学习课程。

我个人的理解是, 因为深度学习一开始本身就是在视觉领域被创造出来的, 在理论上, 解决视觉问题和深度网络天然适配(如果你理解了卷积核, 就会明白我在说什么)。 而其他领域, 比如NLP, 推荐系统等, 是因为视觉取得了成绩,才拿过来尝试的。 虽然也取得了非常好的效果, 但理论上不如视觉那么自然。所以, 要想理解透彻DNN, CNN, 最好从视觉开始。

为什么不选择Andrew Ng 深度学习。

Again, 这么课太浅了, 没什么意义。 而且这么课里奇怪的理论和数学部分, 我不觉得是简化, 只会越学越糊涂。

进阶部分:

学完CS231N后, 基本上你就对机器学习和深度学习有了一定的认识了。 接下来可以根据自己的兴趣, 学习一些专门领域的进阶课程, 以下课程不分先后。

3, NLP

推荐课程:

CS224N Stanford

推荐指数:★★★★

编程语言: Python/Tensorflow

作业形式: 四次作业+一次大作业

建议学习时长: 4个月

优质课经验交流_优质课获奖经验发言稿题目_优质课经验材料博客

CS224N和231N作为Stanford的两门深度学习入门课程, 一门以视觉为背景, 一门以NLP为背景。 理论上, 也可以用224来入门, 但笔者学完了这两门课的经验来看, 224N的理论性不如231N, 要想更充分的理解神经网络, 建议先上231, 把224当作深度学习在NLP领域的应用课来学习, 效果更好。

优点:

1, 四次作业。 作业是宝藏, 做完作业一, 推完各种积分, 可以说才算真真正正理解什么是word2vec.

2, 理论详细, 资料齐全, 笔者从业NLP若干年, PPT常年备查。

缺点:

Again, 我觉得神经网络理论讲的不如231透彻。 主要是NLP用DNN的方法本质上还是有一点hack的感觉, 比较tricky.

4, RL入门

RL部分首推Deepmind的UCL RL课程。

推荐指数:★★★★

编程语言: 无编程

作业形式: 一次大作业

建议学习时长: 2个月

优质课经验交流_优质课经验材料博客_优质课获奖经验发言稿题目

优点:

1, 理论详细, 资料齐全。

缺点:

1, 没作业。

2, 这门课工程感还是比较重的, 毕竟是工业界出品。 有很多地方用intuition代替了theory。 这一方面是好处, 降低理解难度。 一方面, 有些地方不是很严谨, 听完会糊涂。

学习RL这门课确实不能错过, 但如果只学这门课, 会有种学完等于没学的感觉, 好像懂了但没法应用, 建议无缝接入RL进阶课程继续学习。

5, RL进阶

Stanford CS294

推荐指数:★★★★★

编程语言: Python/Tensorflow

作业形式: 五次作业+一次大作业

建议学习时长: 5个月

优质课获奖经验发言稿题目_优质课经验材料博客_优质课经验交流

RL领域最好的课程, 理论扎实, 编程详细, 提供了一整套各个RL算法的TF Trainer. 但难度较高, 对RL完全没理解的话, 可能完全听不懂, 建议进阶阶段学习。

6, 机器学习进阶--统计学习

这个部分我还在看。目前在跟的课程有两个, 待我学完后才来总结。

Option 1:

CS229T/STATS231 Statistical Learning

这门课没有视频, 只有书/PPT/作业。

Option 2:

Introduction to Statistical Learning

STATS 216 Introduction to Statistical Learning

以上。


本文由转载于互联网,如有侵权请联系删除!