[COURSE] Add UMich EECS 498-007: Deep Learning for Computer Vision (#476)

* feat: Add UMich EECS498-007: Deep Learning for Computer Vision

* feat: Improve overall format

* feat: Add English version for EECS498-007
This commit is contained in:
Xu 2023-07-03 23:15:16 +08:00 committed by GitHub
parent c36feaca99
commit 8262d0fe64
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 111 additions and 0 deletions

View File

@ -326,6 +326,8 @@ Berkeley 作为著名开源数据库 postgres 的发源地也不遑多让,[UCB
#### 计算机视觉
[UMich EECS 498-007 / 598-005: Deep Learning for Computer Vision](深度学习/EECS498-007.md)
[Stanford CS231n: CNN for Visual Recognition](深度学习/CS231.md)
#### 自然语言处理

View File

@ -0,0 +1,60 @@
# UMich EECS 498-007 / 598-005: Deep Learning for Computer Vision
## Course Introduction
- Offered by: UMich
- Prerequisites: Basic Python, Matrix Theory (familiarity with matrix derivation is sufficient), Calculus
- Programming Languages: Python
- Difficulty: 🌟🌟🌟🌟
- Class Hour: 60 ~ 80 hours
The University of Michigan's Computer Vision course is of exceptionally high quality, with its videos and assignments covering an extensive range of topics.
The assignments gradually increase in difficulty and cover all stages of mainstream CV model development, making this an excellent introductory course for Computer Vision.
In each assignment, you'll build and train models or frameworks mentioned in the lectures, following the provided handouts.
You don't need any prior experience with deep learning frameworks.
The course will teach you from scratch how to use Pytorch in the early assignments, and it can subsequently serve as a reference book for you.
As each assignment deals with different themes, you'll not only gain a first-hand understanding of the development of mainstream CV models through these progressive assignments but also appreciate the impacts of different models and training methods on final performance and accuracy.
Moreover, you'll get hands-on experience in implementing them.
In Assignment 1 (A1), you'll learn how to use Pytorch and Google Colab.
In Assignment 2 (A2), you will build a Linear Classifier and a two-layer neural network. Finally, you'll have the opportunity to work with the MNIST dataset, on which you will train and evaluate your neural network.
In Assignment 3 (A3), you'll encounter the classic Convolutional Neural Network (CNN) and experience the power of convolutional neural networks.
In Assignment 4 (A4), you'll have the opportunity to build an object detection model from scratch, following the handout to implement a One-Stage Detector and a Two-Stage Detector from two research papers.
By Assignment 5 (A5), you'll transition from CNN to RNN. You'll have the opportunity to build two different attention-based models, RNNs (Vanilla RNN & LSTM), and the famous Transformer.
In the final assignment (A6), you'll get a chance to implement two more advanced models, VAE and GAN, and apply them to the MNIST dataset. Finally, you'll implement two very cool features: network visualization and style transfer.
Beyond the assignments, you can also implement a Mini-Project, building a complete deep learning pipeline. You can refer to the course homepage for specifics.
All the resources involved in the course, such as lectures, notes, and assignments, are open source.
The only downside is that the Autograder is only available to students enrolled at the University of Michigan.
However, given that the correctness of the implementation and the expected results can already be confirmed in the provided *.ipynb (i.e., the Handout), I personally feel that the absence of Autograder doesn't affect the learning process.
It's worth mentioning that the main lecturer for this course, Justin Johnson, is a Ph.D. graduate of Fei-Fei Li and currently an Assistant Professor at the University of Michigan.
The open-source 2017 version of Stanford's CS231N was taught by Justin Johnson.
Because CS231N was mainly developed by Justin Johnson and Andrej Karpathy, this course also adopts some materials from CS231N.
Therefore, students who have studied CS231N might find some materials in this course familiar.
Lastly, I recommend every student enrolled in this course to watch the lectures on YouTube. Justin Johnson's teaching style and content are very clear and easy to understand, making them a fantastic resource.
## Course Resources
- Course Website<https://web.eecs.umich.edu/~justincj/teaching/eecs498/WI2022/>
- Course Video<https://www.youtube.com/playlist?list=PL5-TkQAfAZFbzxjBHtzdVCWE0Zbhomg7r>
- Course Materials: Only recommended textbooks, link: <https://www.deeplearningbook.org/>
- CourseworkSee the course homepage for details, six Assignments and one Mini-Project

View File

@ -0,0 +1,48 @@
# UMich EECS 498-007 / 598-005: Deep Learning for Computer Vision
## 课程简介
- 所属大学UMich
- 先修要求Python基础矩阵论(熟悉矩阵求导即可),微积分
- 编程语言Python
- 课程难度:🌟🌟🌟🌟
- 预计学时6080 小时
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。
在最后一个 AssignmentA6你将有机会实现两种更为 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 上面的 LecturesJustin 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

View File

@ -230,6 +230,7 @@ nav:
- "CMU 10-414/714: Deep Learning Systems": "机器学习系统/CMU10-414.md"
- "Machine Learning Compilation": "机器学习系统/MLC.md"
- 深度学习:
- "UMich EECS 498-007 / 598-005: Deep Learning for Computer Vision": "深度学习/EECS498-007.md"
- "Coursera: Deep Learning": "深度学习/CS230.md"
- "国立台湾大学:李宏毅机器学习": "深度学习/LHY.md"
- "Stanford CS231n: CNN for Visual Recognition": "深度学习/CS231.md"