Introduction to Deep Learning
5 Dec 2022
8 Dec 2022
This is an hands-on introduction to the first steps in Deep Learning, intended for researchers who are familiar with (non-deep) Machine Learning.
The use of Deep Learning has seen a sharp increase of popularity and applicability over the last decade. While Deep Learning can be a useful tool for researchers from a wide range of domains, taking the first steps in the world of Deep Learning can be somewhat intimidating. This introduction aims to cover the basics of Deep Learning in a practical and hands-on manner, so that upon completion, you will be able to train your first neural network and understand what next steps to take to improve the model.
We start with explaining the basic concepts of neural networks, and then go through the different steps of a Deep Learning workflow. Learners will learn how to prepare data for deep learning, how to implement a basic Deep Learning model in Python with Keras, how to monitor and troubleshoot the training process and how to implement different layer types such as convolutional layers.
The workshop is based on the teaching style of the Carpentries, and learners will follow along while the instructors write the code on screen. More information can be found on the workshop website.
The workshop is open and free to all researchers in the Netherlands at PhD candidate level and higher. We do not accept registrations by Master students. The workshop is aimed at PhD candidates and other researchers or research software engineers.
Learners are expected to have the following knowledge:
- Basic Python programming skills and familiarity with the Pandas package.
- Basic knowledge on Machine learning, including the following concepts: Data cleaning, train & test split, type of problems (regression, classification), overfitting & underfitting, metrics (accuracy, recall, etc.).
- Recall the sort of problems for which Deep Learning is a useful tool
- List some of the available tools for Deep Learning
- Recall the steps of a Deep Learning workflow
- Explain why it is important to test the accuracy of Deep Learning system
- Identify the inputs and outputs of a Deep Learning system
- Test that we’ve correctly installed the Keras, Seaborn and Sklearn libraries
Classification by a Neural Network using Keras
- Use the deep learning workflow to structure the notebook
- Explore the dataset using pandas and seaborn
- Use one-hot-encoding to prepare data for classification in Keras
- Describe a fully connected layer Implement a fully connected layer with Keras
- Use Keras to train a small fully connected network on prepared data
- Plot the loss curve of the training process
- Use a confusion matrix to measure the trained networks’ performance on a test set
Monitor the training process
- Explain the importance of splitting the training data
- Use the data splits to plot the training process
- Set the training goal for your deep neural network
- Measure the performance of your deep neural network
- Interpret the training plots to recognize overfitting – Implement basic strategies to prevent overfitting
Networks are like onions
- Understand why convolutional and pooling layers are useful for image data
- Use normalization as preparation step for Deep Learning
- Implement a convolutional neural network on an image dataset
- Plot and interpret the training process
- Do a visual inspection of the results of your neural network
- Understand strategies to improve your model based on the plots