Topic outline

  • This course is fully online*. 

    This introductory course is intended for wide audience and aims to introduce Deep Learning as a field of computer science with theoretical and experimental frameworks, rather than “black box” machine which magically solves the problems. 

    In this course, you will learn how to use state-of-the-art deep learning methods with the programming language Python. We will discuss key concepts of deep learning, such as artificial neural networks, data augmentation and transfer learning in a hands-on fashion. By the end of the course you will be familiar with main principles of deep learning and will be able to build simple neural networks and apply them to your own specific task.

    The course material is in the form of Jupyter notebooks that contain code snippets along with their explanations. We will be mainly using Keras python library to build our models. The grading is based on coding assignments.

    After successfully completing the course, the student:

    • understands how ANNs can be used for learning and evaluating high-dimensional non-linear models
    • understands the basic principle of gradient descent
    • is able to build, and train ANNs using the Python package Keras
    • is able to diagnose the learning process by comparing training with validation loss
    • is able to use data augmentation to synthetically enlarge the training set
    • is able to implement transfer learning by fine-tuning a pre-trained deep net

    Course is divided into 6 topics/ rounds:

    1. Artificial neural networks
    2. Gradient descent algorithm
    3. Convolutional neural networks
    4. Regularization 
    5. Transfer Learning
    6. Generative adversarial networks

    * Welcome lecture will be held at Aalto lecture hall (Undergraduate Centre Otakaari 1, lecture hall A) and recording will be made available. All other lectures and sessions are held via Zoom.
    In addition to online meetings, students can get face-to-face help at Aalto campus (see section Lectures).

    Materials:

    Lectures and jupyter notebooks

    Additional reading: F. Chollet, “Deep Learning with Python” and A. Géron, “Hands-on Machine Learning with Scikit-Learn, Keras, and TensorFlow “. With your aalto email you can get access to ebooks via O'Reilly website.

    Workload of this course:

    2 credits approx. 60 hours of work

    • Lectures 6 x 2h
    • Python sessions 6 x 2h
    • Notebooks 6 x 5h
    • Reading books/ extra materials 6 x 1h

    Grading: Pass-Fail.

    Difficulty level: beginner - intermediate

    Prerequisite courses:

    This course is intended as a follow-up for CS-EJ3211 Machine Learning with Python and/or CS-C3240 - Machine Learning.

    General prerequisites: 

    • High-school math (functions, derivatives, vectors)
    • Basic Python programming (variables, functions, loops)

    Advanced students (with knowledge of linear algebra, probability theory, optimization methods) advised to take CS-E4890 - Deep Learning (spring 2023).