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