CS29-深度学习
Stanford Coursera: Deep Learning
课程简介
- 所属大学:Stanford
- 先修要求:机器学习基础 + Python
- 编程语言:Python
- 课程难度:🌟🌟🌟🌟
- 预计学时:80 小时
吴恩达在 Coursera 开设的另一门网红课程,学习者无数,堪称圣经级的深度学习入门课。深入浅出的讲解,眼花缭乱的 Project。从最基础的神经网络,到 CNN, RNN,再到最近大热的 Transformer。学完这门课,你将初步掌握深度学习领域必备的知识和技能,并且可以在 Kaggle 中参加自己感兴趣的比赛,在实践中锻炼自己。
课程资源
- 课程网站:https://www.coursera.org/specializations/deep-learning
- 课程视频:https://www.coursera.org/specializations/deep-learning,B站有搬运
- 课程教材:无
- 课程作业:https://www.coursera.org/specializations/deep-learning
TWU: 李宏毅机器学习
课程简介
- 所属大学:國立台灣大學
- 先修要求:熟练掌握 Python
- 编程语言:Python
- 课程难度:🌟🌟🌟🌟
- 预计学时:80 小时
李宏毅老师是国立台湾大学的教授,其风趣幽默的授课风格深受大家喜爱,并且尤其喜欢在 PPT 中插入宝可梦等动漫元素,是个非常可爱的老师。
这门课挂着机器学习的牌子,但其课程内容之广实在令人咋舌,其作业一共包含 15 个 lab,分别是 Regression、Classification、CNN、Self-Attention、Transformer、GAN、BERT、Anomaly Detection、Explainable AI、Attack、Adaptation、 RL、Compression、Life-Long Learning 以及 Meta Learning。可谓是包罗万象,能让学生对于深度学习的绝大多数领域都有一定了解,从而可以进一步选择想要深入的方向进行学习。
大家也大可不必担心作业的难度,因为所有作业都会提供助教的示例代码,帮你完成数据处理、模型搭建等,你只需要在其基础上进行适量的修改即可。这也是一个学习别人优质代码的极好机会,大家需要水课程大作业的话,这里也是一个不错的资料来源。
课程资源
- 课程网站:https://speech.ee.ntu.edu.tw/~hylee/ml/2022-spring.php
- 课程视频:https://speech.ee.ntu.edu.tw/~hylee/ml/2022-spring.php,每节课的链接参见课程网站
- 课程教材:无
- 课程作业:https://speech.ee.ntu.edu.tw/~hylee/ml/2022-spring.php,15 个 lab,几乎覆盖了主流深度学习的所有领域
UMich EECS 498-007 / 598-005: Deep Learning for Computer Vision
课程简介
- 所属大学:UMich
- 先修要求:Python基础,矩阵论(熟悉矩阵求导即可),微积分
- 编程语言:Python
- 课程难度:🌟🌟🌟🌟
- 预计学时:60~80 小时
UMich 的 Computer Vision 课,课程视频和作业质量极高,涵盖的主题非常全,同时 Assignments 的难度由浅及深,覆盖了 CV 主流模型发展的全阶段,是一门非常好的 Computer Vision 入门课。
你在每个 Assignment 里会跟随 Handouts 搭建与训练 Lectures 中提到的模型/框架。
你不需要有任何的深度学习框架的使用经验,在开始的 Assignment 里,这门课会从零开始教导每个学生如何使用 Pytorch,后续也可以当成工具书,随时翻阅。
同时由于每个 Assignment 之间涉及到的主题都不同,你在递进式的 Assignment 中不仅可以亲身体会到 CV 主流模型的发展历程,领略到不同的模型和训练的方法对最终效果/准确率的影响,同时也能 Hands On 地实现它们。
在 A1 中,你会学习 Pytorch 和 Google Colab 的使用。
在 A2 中你会亲自搭建 Linear Classifier 以及一个两层的神经网络,最后你有机会亲自接触 MNIST 数据集并在此基础上训练并评估你搭建起的神经网络。
在 A3 中,你会接触到最为经典的 Convolutional Neural Network (A.K.A. CNN),亲自感受卷积神经网络的魅力。
而在 A4 中,你将实际触及搭建物体检测模型的全流程,同时跟随 Handout 实现两篇论文中的 One-Stage Detector 和 Two-Stage Detector。
到了 A5,就是从 CNN 到 RNN 的时刻了,你将有机会亲自搭建起两种不同的基于注意力的模型,RNNs (Vanilla RNN & LSTM) 和大名鼎鼎的 Transfomer。
在最后一个 Assignment(A6)中,你将有机会实现两种更为 Fancy 的模型,VAE 和 GAN,并应用在 MINST 数据集上。最后,你会实现网络可视化和风格迁移这两个非常酷炫的功能。
在 Assignments 之外,你还可以自己实现一个 Mini-Project,亲自搭建起一个完整的深度学习 Pipeline,具体可以参考课程主页。
课程所涉及的资源,如 Lectures/Notes/Assignments 都是开源的,美中不足的是 Autograder 只对本校 Enrolled 的学生开放,但因为在提供的 *.ipynb
(也就是 Handout) 中已经可以确定实现的正确性,以及预期的结果,所以我个人觉得 Autograder 的缺失没有任何影响。
值得一提的是,这门课的主讲教授 Justin Johnson 正是 Fei-Fei Li 的博士毕业生,现在在 UMich 当 Assistant Professor。
而现在开源的 2017 年版本的 Stanford CS231N 的主讲人就是 Justin Johnson。
同时因为 CS231N 主要是由 Justin Johnson 和 Andrej Karpathy 建设起来的,这门课也沿用了 CS231N 的一些材料,所以学过 CS231N 的同学可能会觉得这门课的某些材料比较熟悉。
最后,我推荐每一个 Enroll 这门课的同学都去看一看 Youtube 上面的 Lectures,Justin Johnson 的讲课方式和内容都非常清晰和易懂,是非常棒的参考。
课程资源
- 课程网站:https://web.eecs.umich.edu/~justincj/teaching/eecs498/WI2022/
- 课程视频:https://www.youtube.com/playlist?list=PL5-TkQAfAZFbzxjBHtzdVCWE0Zbhomg7r
- 课程教材:仅有推荐教材,链接:https://www.deeplearningbook.org/
- 课程作业:见课程主页,6 个 Assignment 和一个 Mini-Project
资源汇总
@Michael-Jetson 本人所做的二三十万字的笔记(并没有包括作业等),可以当做一个参考Michael-Jetson/ML_DL_CV_with_pytorch
Stanford CS231n: CNN for Visual Recognition
课程简介
- 所属大学:Stanford
- 先修要求:机器学习基础
- 编程语言:Python
- 课程难度:🌟🌟🌟🌟
- 预计学时:80 小时
Stanford 的 CV 入门课,由计算机领域的巨佬李飞飞院士领衔教授(CV 领域划时代的著名数据集 ImageNet 的研究团队),但其内容相对基础且友好,如果上过 CS230 的话可以直接上手 Project 作为练习。
课程资源
- 课程网站:http://cs231n.stanford.edu/
- 课程视频:https://www.bilibili.com/video/BV1nJ411z7fe
- 课程教材:无
- 课程作业:http://cs231n.stanford.edu/schedule.html,3个编程作业
Stanford CS224n: Natural Language Processing
课程简介
- 所属大学:Stanford
- 先修要求:深度学习基础 + Python
- 编程语言:Python
- 课程难度:🌟🌟🌟🌟
- 预计学时:80 小时
Stanford 的 NLP 入门课程,由自然语言处理领域的巨佬 Chris Manning 领衔教授(word2vec 算法的开创者)。内容覆盖了词向量、RNN、LSTM、Seq2Seq 模型、机器翻译、注意力机制、Transformer 等等 NLP 领域的核心知识点。
5 个编程作业难度循序渐进,分别是词向量、word2vec 算法、Dependency parsing、机器翻译以及 Transformer 的 fine-tune。
最终的大作业是在 Stanford 著名的 SQuAD 数据集上训练 QA 模型,有学生的大作业甚至直接发表了顶会论文。
课程资源
- 课程网站:http://web.stanford.edu/class/cs224n/index.html
- 课程视频:B 站搜索 CS224n
- 课程教材:无
- 课程作业:http://web.stanford.edu/class/cs224n/index.html,5 个编程作业 + 1 个 Final Project
资源汇总
@PKUFlyingPig 在学习这门课中用到的所有资源和作业实现都汇总在 PKUFlyingPig/CS224n – GitHub 中。
Stanford CS224w: Machine Learning with Graphs
课程简介
- 所属大学:Stanford
- 先修要求:深度学习基础 + Python
- 编程语言:Python, LaTeX
- 课程难度:🌟🌟🌟🌟
- 预计学时:80 小时
Stanford 的图神经网络入门课,这门课我没有上过,但众多做 GNN 的朋友都向我力荐过这门课,想必 Stanford 的课质量还是一如既往地有保证的。另外就是这门课的授课老师非常年轻帅气:)
课程资源
- 课程网站:http://web.stanford.edu/class/cs224w/
- 课程视频:https://www.youtube.com/watch?v=JAB_plj2rbA
- 课程教材:无
- 课程作业:http://web.stanford.edu/class/cs224w/,6 个编程作业,3 个 LaTeX 书面作业
UCB CS285: Deep Reinforcement Learning
课程简介
- 所属大学:UC Berkeley
- 先修要求:CS188, CS189
- 编程语言:Python
- 课程难度:🌟🌟🌟🌟
- 预计学时:80 小时
CS285 这一课程现由 Sergey Levine 教授讲授,课程内容覆盖了深度强化学习领域的各方面内容,适合有一定机器学习基础的同学进行学习,具体要求包括了解马尔可夫决策过程(MDP)等。整门课程中含有较多的公式,上课前需要有一定的心理准备。此外,教授会根据每年最新的研究进展更新课程内容以及作业,课程中能感受到教授尝试将深度强化学习领域的所有基础知识以及最近的发展在短短的数节课中进行传达。
有关课程内容获取,22Fall 的授课方式为课前观看提前录制的视频,课上主要为 Q&A 环节,教授选择部分或者所有视频内的知识进行讲解同时回答学生现场提出的问题,因此所提供的课程视频链接实际上是已经包含了所有内容。课程作业则由5个编程作业组成,每一次作业主要为复现经典模型以及进行模型间的对比,偶尔也包含一些对最近提出的模型的复现,最后递交一份报告。考虑到作业本身已经提供了框架,且都是根据 hint 进行代码填空,因此作业难度并不大。
总的来说,该课程适合新手入门深度强化学习。虽然学到后面越来越感觉到难,但整门课下来个人感觉还是收获颇丰。
(另外 Levine 教授人真的很 nice)
课程资源
- 课程网站:http://rail.eecs.berkeley.edu/deeprlcourse/
- 课程视频:https://www.youtube.com/playlist?list=PL_iWQOsE6TfX7MaC6C3HcdOf1g337dlC9
- 课程教材:无
- 课程作业:http://rail.eecs.berkeley.edu/deeprlcourse/,5个编程作业