Proposed learning Outcomes
Students that complete this course will be able to:
ML ‘philosophy’/variants
- Understand the difference between the concepts of “Artificial Intelligence”,
“Machine Learning”, “Neural Networks”, “Deep Learning”
- Understand the difference between different types of learning (e.g.
supervised, unsupervised, reinforcement) and recognise which applies to
their own problem
- Understand the difference between linear and non-linear approaches and
recognise which is best suited for application to their own problem
- Understand the difference between classification and regression
ANN building blocks
- Describe what a feed-forward neural network (FFNN) is, along with its
components (neurons, layers, weights, bias, activation functions,
cost functions)
- Understand how training of a FFNN works from a mathematical point of view
(gradient descent, learning rate, backpropagation)
- Execute with pen and paper a few steps of training of a very simple
FFNN model
- Understand why non-linear optimisation is sometimes necessary over
linear optimisation
- Understand the difference between a shallow and a deep network
- Implement and train on given data sets simple FFNNs in python with
Keras and tensorflow
Programming packages
- Remember how to set up a conda environment, including installation of
relevant packages (R/python, keras, tensorflow, etc.) to perform own
experiments, in a new workstation
- Recall how to use python packages (keras, tensorflow) to implement,
train and test neural networks either on Jupyter Notebook or with
custom scripts
- (optionally) translate python code that implements architectures in
Keras to R
Other network architectures
- Explain broadly how different NN architectures (convolutional,
recurrent, autoencoders, GANs, etc) are wired and how they work
- Apply the most appropriate architecture to a given problem/dataset
- Implement different architectures in python with Keras and train them
on given datasets
- Analyze training curves and prediction outputs to evaluate if the
training has been successful
- Debug possible issues with the training and suggest changes to fix them
Good practices in project design
- Understand how cross-validation is using in NN training
- Understand the difference between training, validation and testing
- Understand what overfitting is from a mathematical point of view,
and what issues it causes
- Recognise overfitting by looking at training curves
- Apply the right tools to curb/fix overfitting issues