MAISTR course: Deep Learning with Applications

The aim of this course if to introduce students to the fundamentals of deep learning and develop practical skills to implement various deep neural network based solutions for typical problems in machine learning and data mining. The course covers both theoretical and practical aspects of working with deep learning models.

Knowledge and understanding

The course will provide a basic understanding of machine learning and neural networks with a focus on deep architectures, how apply them for different machine learning problems and how to evaluate their pros & cons under various conditions.

Skills and abilities

  • Show how to use a convolutional neural network to classify images, including suitable choices of layers and kernel sizes.
  • Use a recurrent network, both deep and shallow, for problems with sequence data.

Judgement and approach

  • Develop an advanced deep learning project in a small work group.
  • Identify difficulties and requirements, and then search for alternative solutions to overcome problems by referring to the theoretical and technical aspects.
  • Analyse a typical problem within the subject area and deduce which method or methods that are most suitable to solve it.

Primary contents

The main content of the course concerns techniques for analysis, design and programming of deep learning algorithms. The content will cover basic principles of machine learning, multi-layer perceptrons (MLPs), spatio-temporal feature extraction with convolutional neural networks (CNNs) and recurrent neural networks (RNNs). The theoretical part of the course will introduce the principles and applications of deep learning. Each theoretical subject will be introduced together with various examples from real world applications. In addition, to increase the students’ interests, not only the motivation of each approach will be emphasized but the combination of various suitable approaches will also be formulated to solve real world problems. Laboratory exercises will be performed on world-wide known publicly available datasets to help the students face real world challenges in deep learning.

Key topics:

  • Machine learning
  • Deep learning
  • Supervised learning
  • Neural networks


  • Multi-layer perceprons
  • Convolutional neural networks
  • Recurrent neural networks
  • Autoencoder
  • Generative adversarial networks
  • Model selection

Learning outcome

  • Have a general understanding of machine learning.
  • Learn the basic theoretical concepts related to deep neural networks.
  • Identify the basic characteristics of deep networks and their real-world applications
  • Apply theoretical knowledge to implement various deep architectures while collaborating with peers in a small group.
  • Implement algorithms for segmentation, classification and regression using datasets from several domains, including autonomous vehicle and health-care domains.
  • Analyze the main problems in deep learning.

After finishing this course you will be able to:

  • Discuss the theoretical and practical aspects of deep neural networks.
  • Describe and understand the construction of different types of deep neural networks.
  • Implement a deep learning model to solve a typical classification or regression problem, including systematic choice of suitable model parameters to optimize the generalization performance.

Language and credits

English, 7.5 ECTS


Engineering Mathematics 7.5 credits, familiar with computer programming.


Fail or Pass will be awarded for the course. The course is graded based on results of project work and quality of students' presentations during the seminars.


The course will contain a project where the student will develop a deep neural network for a real world application.

Course director

Mattias Ohlsson, Professor in Information Technology