## Admission requirements

#### Assumed prior knowledge

Elementary calculus and linear algebra; basics of probability theory and statistics. Fluency in Python; basic commands of Linux.

## Description

The course provides an introduction to key concepts, algorithms and architectures for neural networks, with strong emphasis on Deep Learning and its applications. It covers the following topics:

Part One: Classical Neural Networks

Basics of Machine Learning and Pattern Recognition

Linear models: Linear Separability, Perceptron, Convergence Theorem, Cover's Theorem, Multi-Class Perceptron

Multi-layer Perceptron

Algorithms for training Deep Networks: Stochastic Gradient Descent and its variants; Backpropagation

Alternative activation and loss functions; Regularization, Dropout, Batch Normalization

Introduction to GPU-computing, Keras, TensorFlow

Part Two: DeepLearning

Convolutional Networks; key architectures and applications

Recurrent Neural Networks; LSTM and GRU Networks; Word Embeddings

Autoencoders

GAN Networks

Deep Learning for Reinforcement Learning

During the course several state-of-the-art applications of Deep Learning to image recognition, computer vision, language modeling, game playing programs, etc., will be discussed. The course consists of weekly lectures, three programming assignments (in Python, TensorFlow, Keras) and the final written exam.

## Course objectives

The objective of this course are:

to provide a general introduction to the field of deep neural networks and their applications

to develop practical skills for designing and training neural networks for tasks like image classification, speech recognition, modeling sequential data, game playing

to master a popular system for developing deep networks: TensorFlow with Keras

## Timetable

The most recent timetable can be found at the Computer Science (MSc) student website.

## Mode of instruction

Lectures

Computer Labs

Practical Assignments

### Course load

Total hours of study 6 EC course: 168 hrs.

## Assessment method

The final grade will be the weighted average of grades for:

programming assignments (60%)

written exam (40%)

The teacher will inform the students how the inspection of and follow-up discussion of the exams will take place.

## Reading list

- Aurélien Géron, Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems (Second Edition)

## Registration

You have to sign up for courses and exams (including retakes) in uSis. Check this link for information about how to register for courses.

## Contact

Lecturer: dr. Wojtek Kowalczyk