
After completing this course, you will be able to:
 implement basic deep learning models from scratch.
 implement deep neural networks and training algorithms using PyTorch.
 implement the stochastic gradient descend algorithm, and describe and use its variants.
 understand, train, and use convolutional neural networks.
 understand, train, and use recurrent neural networks.
 understand, train, and use transformer networks.
 understand, train, and use selfsupervised neural network methods.
 understand, train, and use generative neural network models.
 decide which neural network methods are appropriate for a given use case.
 evaluate neural networks, to diagnose problems and to compare different methods.
 read and understand academic literature about deep learning.


Deep Learning is a flavor of machine learning that uses deep artificial
neural networks, meaning networks with many layers and often millions of
parameters. Over the last couple of years Deep Learning has shown huge
successes in different applications such as image and speech
recognition, game playing agents, image synthesis, computational
biology, etc.
In this course you will learn both how to apply Deep Learning to solve
problems, as well as how these deep neural networks are implemented and
how they work. We will treat many different architectures, and show
which ones are appropriate in which situations. Because this is a very
broad field that is continuously developing, we will not be focusing on
any specific application, but rather lay the groundwork on which all
deep learning techniques are built.

 
This is a masters level machine learning course, and prior machine learning knowledge is expected. It is sufficient to have previously taken the course Data Mining (NWIIBI008), or an equivalent course in another bachelor's program.
In addition, students are expected to have a working knowledge of
 Linear algebra (vectors, matrices, matrix multiplication)
 Calculus (derivatives, chain rule)
 Probability theory (distributions, Bayes rule)
Some programming experience is required. Familiarity with Python is helpful, but is not expected.


The final grade is determined by
 Written exam (50%)
 Practical assignments (50%)
The grades for the written exam and the practical assignment must both be at least a 5. The final grade must be at least 5.5 (which will be rounded up to 6).


This course succeeds the 3ec course NWIIMC058 Deep Learning.




 