CS565600 Deep Learning

Fundamentals of machine learning, deep learning, and AI.

Description

This class introduces the concepts and practices of deep learning. The course consists of three parts. In the first part, we give a quick introduction to classical machine learning and review some key concepts required to understand deep learning. In the second part, we discuss how deep learning differs from classical machine learning and explain why it is effective in dealing with complex problems such as image and natural language processing. Various CNN and RNN models will be covered. In the third part, we introduce deep reinforcement learning and its applications.

This course also gives coding labs. We will use Python 3 as the main programming language throughout the course. Some popular machine learning libraries such as Scikit-learn and Tensorflow 2.0 will be used and explained in details.

Syllabus

Teaching Assistants

Shih-Yu Teng
鄧仕榆

Zhong-Ming Guo
郭忠明

Shao-che Feng
馮卲哲

Tzu-Ling Hsieh
謝紫翎


Mail: dl2025@datalab.cs.nthu.edu.tw


Time & Location

  • Tue. 3:30-5:20pm at Delta 104
  • Thu. 3:30-4:20pm at Delta 104
  • Office hour: Thu. 4:20pm-5:10pm at Delta 729

Grading Policy

  • Quiz: 10%
  • Lab Assignments: 20%
  • Competition: 45%
  • Final Exam: 25%
  • Bonus: 10%

Prerequisites

This course is intended for senior undergraduate and junior graduate students who have a proper understanding of

  • Python Programming Language
  • Calculus
  • Linear Algebra
  • Probability Theory
Although it would be helpful, knowledge about classical machine learning is NOT required.

IMPORTANT

Students will group (2~4 people a group). This class requires each group of students to prepare a GPU card to perform the necessary computing. You can follow this link to decide which GPU card to go for. NO GPU CARD PROVIDED IN THE CLASS.

Announcement

Curriculum

If you have any feedback, feel free to contact: shwu [AT] cs.nthu.edu.tw

Lecture 01

Introduction

What's ML? | What’s Deep Learning? | About This Courses | FAQ

Slides Notation

Scientific Python 101 (No Assignment)

This lab guides you through the setup of scientific Python environment and provides useful references for self-reading.

Notebook

Lecture 02

Linear Algebra

Span & Linear Dependence | Norms | Eigendecomposition | Singular Value Decomposition | Traces & Determinant

Video Slides

Data Exploration & PCA (Bonus)

This lab guides you through the process of Exploratory Data Analysis (EDA) and discuss how you can leverage the Principle Component Analysis (PCA) to visualize and understand high-dimensional data.

Notebook

Lecture 03

Probability & Information Theory

Random Variables & Probability Distributions | Multivariate & Derived Random Variables | Bayes’ Rule & Statistics | Principal Components Analysis | Technical Details of Random Variables | Common Probability Distributions | Common Parametrizing Functions | Information Theory | Decision Trees & Random Forest

Video Slides

Decision Trees & Random Forest (Bonus)

In this lab, we will apply the Decision Tree and Random Forest algorithms to the classification and dimension reduction problems using the Wine dataset.

Notebook

Lecture 04

Numerical Optimization

Numerical Computation | Optimization Problems | Gradient Descent | Newton's Method | Stochastic Gradient Descent | Perceptron | Adaline | Constrained Optimization | Linear & Polynomial Regression | Generalizability & Regularization | Duality

Video Slides

Perceptron & Adaline (Bonus)

In this lab, we will guide you through the implementation of Perceptron and Adaline, two of the first machine learning algorithms for the classification problem. We will also discuss how to train these models using the optimization techniques.

Notebook

Regression (Bonus)

This lab guides you through the linear and polynomial regression using the Housing dataset. We will also extend the Decision Tree and Random Forest classifiers to solve the regression problem.

Notebook

Resources

Following provides links to some useful online resources. If this course starts your DL journey, don't stop here. Enroll yourself in advanced courses (shown below) to learn more.

Other Course Materials

For more course materials (such as assignments, score sheets, etc.) and online forum please refer to the eeclass system.

eeclass System

Reference Books

  • Ian Goodfellow, Yoshua Bengio, Aaron Courville, Deep Learning, MIT Press, 2016, ISBN: 0387848576

  • Trevor Hastie, Robert Tibshirani, Jerome Friedman, The Elements of Statistical Learning: Data Mining, Inference, and Prediction, Second Edition, Springer, 2009, ISBN: 0387848576

  • Christopher M. Bishop, Pattern Recognition and Machine Learning, Springer, 2006, ISBN: 0387310738

  • Sebastian Raschka, Python Machine Learning, Packt Publishing, 2015, ISBN: 1783555130

Online Courses