**Deep Learning: Computing and Application**

# 深度學習：運算與應用

#### Course description

自從ImageNet LSVRC-2012競賽以來，深度學習（DL）便已成為眾多商業應用中作為預測的核心技術之一。 當前的人工智慧技（ANI）的成功歸因於：（i）標記大數據，（ii）GPU加速計算，（iii）開源軟體，以及（iv）成熟的演算法。 在本課程中，我們將討論什麼是AI和DL以及DL背後的數學基礎和統計理論。學生將學習有關Python程式語言的基礎，並使用TensorFlow / PyTorch應用神經網絡來識別圖像中的數字。。

#### Course Objectives

- Define Artificial Intelligence.
- Explain what Deep Learning is.
- Explain what an Artificial Neural Network is.
- Explain how Convolution works.
- Explain how Backpropagation works.
- Explain how Gradient descent works.
- Explain the architecture of a Deep Neural Network.
- Read and write Python code for TensorFlow/PyTorch.
- Apply a Neural Network to recognise digits

#### Anticipated Benefits

This course will give you three things:

- A concise introduction to Python with the aim of bringing even students that have never programmed in Python to an intermediate level.
- Experience applying deep learning in practice to recognise digits using the MNIST data set.
- A concise introduction to the mathematical and statistical foundation of Deep Learning.

#### Teaching Strategies

How this course is going to be taught

- Using online teaching 50%
- Case study 40%
- Discussion 10%

#### Course material

Short videos explaining a topic with companion lecture notes, suggested reading, exercises, and/or example code. All material is or will be freely available online. All material produced specifically for this course will be under the Creative Commons Attribution 4.0 International (CC BY 4.0) license with attribution to Prof. Nordling, Nordling Lab.

##### References

- Goodfellow, I., Bengio, Y. & Courville, A., 2016. Deep learning, Cambridge, MA, U.S.A.: MIT Press. Available at: http://www.deeplearningbook.org.
- Shaw, Z., 2017. Learn Python 3 the Hard way, Addison-Wesley, ISBN 9780134692883. http://learnpythonthehardway.org/book/
- PEP 8 https://www.python.org/dev/peps/pep-0008/

#### Course policy

- Group project (60%) – Examined based on final presentation during a synchronized (or physical) lecture, which should contain a demonstration of how well the trained Deep Neural Network performs on an independent test data set. A Jupyter notebook with both the training and prediction code, as well as the model specification and final model (saved in HDF5 format), need to be committed to the GIT repository before the last lecture.
- Final exam (40%) – The exam will be conducted online using Google forms. The final exam will consist of questions with multiple choice.

#### Course outline

1. Application of Deep Learning to digit recognition using MNIST: example

What is AI, ML, DL, Data Science, Data Mining, Statistics, and System Identification?

Digit recognition using Deep Learning

Nordling Lab – Python and Deep learning tutorial using TensorFlow/Pytorch in Colaboratory

2. Basic programming in Python (Getting help and comments, Printing, Conditional statements and loops, Variables and functions, Reading and writing files, Error handling)

Basic programming in Python

3. Introduction to Neural Networks, Gradient descent, Backpropagation, and loss functions

Introduction to Neural Networks

3Blue1Brown – But what *is* a Neural Network? (Last visited 2021-09-30)

3Blue1Brown – Gradient descent, how neural networks… (Last visited 2021-10-09)

3Blue1Brown – What is backpropagation really doing? (Last visited 2021-10-09)

4. Introduction to data preprocessing, model selection, regularization, activation functions, and neural network types, including convolution

Introduction to Model Selection

5. Introduction to Model validation (test/training split, cross-validation, under-/overfitting, bias variance tradeoff)

Introduction to Model Validation

6. Application of Deep Learning to digit recognition using MNIST: project

Instructions for the digit recognition group project

7. Intermediate programming in Python (List comprehension, Class definition and inheritance, Modules, Lambda functions, Function decorators, Async IO, Virtual environments and PIP)

Intermediate programming in Python

8. Application of Deep Learning to digit recognition using MNIST: project

9. Exam and project presentation

#### Course websites

**GIT repository**for sharing text files and code**Google drive**for sharing presentations and other material**NCKU syllabus****Google sheets**for signing up and reviewing scores**YouTube playlist**with course videos**Google Meet**