Machine Learning for Neuroscience

Translational Machine Intelligence Lab

Update: Content for January 2026 has been uploaded and is now available.

Teaching Staff

Members of the Translational Machine Intelligence Lab delivering this module:

  • Nan Fletcher-Lloyd

  • Anastasia Gailly De Taurines

  • Antigone Fogel

  • Iona Biggart

  • Payam Barnaghi

Alumni

Past members who helped prepare and deliver this module:

We would like to thank Alex Capstick, Yu Chen, Marirena Bafaloukou, Anastasia Ilina, Tianyu Cui, Ruxandra Mihai, Olivia Li, and Francesca Palermo.


Content

This course is designed to deepen your understanding of machine learning and its applications in neuroscience. This course introduces both supervised and unsupervised learning techniques, alongside classical machine learning methods and modern deep learning approaches.

What will you do in this course?

You will explore a range of machine learning methods and discuss their applications in neuroscience. The module covers key concepts from traditional algorithms to advanced neural networks.

By the end of this module, you will be able to:

  • Critically evaluate and compare machine learning techniques to determine their suitability for specific problem settings.
  • Develop machine learning models using widely adopted libraries and tools.
  • Apply computational and machine learning techniques to analyse diverse datasets and interpret the results.
  • Design and implement neural networks to deliver end-to-end solutions for data analysis challenges.
  • Justify your choice of machine learning models based on suitability, generalisation capability, and limitations.

Essential Course Material

Before taking this module, we advise that you work through the following video tutorials:

(Videos and slides for the Python tutorial are created by Nan Fletcher-Lloyd, Iona Biggart, and Antigone Fogel)

If you have any problems installing anaconda or VSCode, please do not hesitate to contact us.

We also suggest that you complete the Python for Beginners Tutorial. If you have any difficulty/questions arising from this, we would be happy to work through these with you during the first lab.

Reading List

A good place to start is Kevin Murphy's book on Probabilistic Machine Learning. You might find it helpful to read the following sections:

  • The Introduction
  • Foundations: Probability: Univariate Models
  • Foundations: Linear Algebra

If you get through this list and would like some additional reading, let us know and we can recommend more!

Optional Course Material

In addition to the essential course material, a knowledge of linear algebra, probability theory and calculus will give you the best chance of success.


Assessments

What are you being assessed on?

We will assess your ability to apply the knowledge you have learnt during the lectures. Questions will test your understanding of key machine learning concepts as well as your ability to apply machine learning methods in Python to a series of real-world problems.

How will this be assessed?

Throughout this course, your assessment will consist of two pieces of coursework:

Assessment One:

This includes two parts, both completed during lab sessions. Detailed assessment criteria will be provided in advance.

Assessment Two:

You will work with a real-world dataset from a clinical study. Your task is to develop one or more analytical models to predict a clinical outcome. This will involve writing the code, performing evaluations, and reporting your results.

Your code and models will be assessed based on:

  • The rationale behind your model development choices.
  • Different performance evaluation metrics.

Additionally, the project will be evaluated on its performance using a held-out dataset.


Schedule

Please note that all lecture sessions will be recorded and made available internally. Laboratory sessions, however, will not be recorded.

Week 1 - Starting January 12, 2026
Date Time Content Files Activity Lecturer
Mon 10:30 - 12:30 1: Introduction to Machine Learning | Lecture P. Barnaghi
13:30 - 16:30 Key Machine Learning Techniques ☆
Lab P. Barnaghi
Tue 10:30 - 12:30 2: Linear Models | Lecture P. Barnaghi
13:30 - 16:30 Linear Models - Regression and Classification Models Lab P. Barnaghi
Wed 10:30 - 12:30 3: Probability and Information Theory | Lecture P. Barnaghi
13:30 - 16:30
Thur 10:30 - 12:30 4: Bayesian Models | Lecture P. Barnaghi
13:30 - 16:30 Bayesian Models Lab P. Barnaghi
Fri 10:30 - 12:30 5: Ensemble Models and Kernel Based Models | Lecture P. Barnaghi
13:30 - 16:30 Ensemble Models and Kernel Based Models Lab P. Barnaghi

★: Marked labs
;
☆: Optional formative lab
;
: Slides
;
: Notes
;
: Download lab
;
: Open lab in Colab

Week 2 (January 2026)
Date Time Content Files Activity Lecturer
Mon 10:30 - 12:30 6: Neural Networks ★ | Lecture P. Barnaghi
13:30 - 16:30 Neural Networks Lab
P. Barnaghi
,
I. Biggart
Tue 10:30 - 12:30 7: Convolutional Neural Networks (CNNs) | Lecture P. Barnaghi
13:30 - 16:30 Convolutional Neural Networks (CNNs) Lab P. Barnaghi
Wed 10:30 - 12:30 8: Applications and Neuroscience Inspired Machine Learning | Lecture P. Barnaghi
13:30 - 16:30
Thur 10:30 - 12:30 9: Responsible Machine Learning | Lecture
P. Barnaghi
,
A. Fogel
13:30 - 16:30 Use-case Evaluation ★ Lab P. Barnaghi
Fri 10:30 - 12:30 Guest Lecture - Ethical AI: Principles and Practices Lecture N. Fletcher-Lloyd
13:30 - 16:30 Debate 1: Should AI be used to make diagnostic decisions in healthcare?
Debate 2: AI for AI: Opportunity or Overreach?
Lab N. Fletcher-Lloyd,
A. Gailly de Taurines

★: Marked labs
;
: Slides
;
: Notes
;
: Download lab
;
: Open lab in Colab

: Guest Lecture: Introduction to Pytorch, Iona Biggart

: Guest Lecture: Building a Machine Learning Model for Predicting Pathways and Trajectories in Alzheimer's Disease, Antigone Fogel

Week 3 (February 2026)
Date Time Content Files Activity Lecturer
Mon 10:30 - 12:30 Review and Project (Q/A) Lecture P. Barnaghi
13:30 - 16:30 Project Lab P. Barnaghi
Tue 10:30 - 12:30 Project Lab P. Barnaghi
13:30 - 16:30 Project Lab P. Barnaghi
Wed 10:30 - 12:30 Project Lab P. Barnaghi
13:30 - 16:30

March/April 2026

In March/April 2026, we will try to organise an optional series on Generative AI and Large Language Models (LLMs) covering the topics:

  • Variational Auto-encoders
  • Transformers and Large Language Models
  • Diffusion Models

Past year's slides and recordings are available here.


Lectures

The slides are by Payam Barnaghi, and the notes are prepared by Nan Fletcher-Lloyd.

Content to get you started:

The lecture slides are available here:

Click here to download PDF handouts of the slides.
Click here to download the notes as one PDF document.
Annotated slides (Notes will be added after each lecture): GitHub link.

Labs

Labs and assessments are prepared by Payam Barnaghi, Nan Fletcher-Lloyd, Alex Capstick, Yu Chen, Marirena Bafaloukou, Anastasia Ilina, Anastasia Gailly de Taurines, Antigone Fogel, and Iona Biggart.

The following links are to the individual labs, already run and stored in GitHub. Clicking any of the "Open in Colab" buttons will open that lab in Google Colab, which allows you to run code from your browser with a GPU if selected.

Lab Notebooks:


Setting Up Your Conda Environment

The following are the steps to set up your environment if you will be running the labs locally:

  1. Install Miniconda here.
  2. On Windows open Anaconda Prompt and on Mac/Linux open Terminal.
  3. To create an environment for the course, run:
    conda create -n ml4ns python=3.11.5
            
  4. Download the the requirements.txt file (from here) and place it in your root directory.
  5. Activate your environment:
    conda activate ml4ns
            
  6. Install the requirements:
    pip install -r requirements.txt
            
  7. If you're on Mac or Windows (without a GPU), you can install Pytorch using the below. If you have a GPU, you can install Pytorch using the command on the Pytorch website.
    pip3 install torch torchvision torchaudio
            
  8. Install Transformers using:
    pip install transformers
            
  9. Recommended: Install VScode here.
  10. Open VSCode and open the Jupyter Notebook files, or open Jupyter Lab using the below and then open the Jupyter Notebook files:
    jupyter lab
            
  11. If you are using VSCode, you need to install the Jupyter Notebook extension.
  12. In VScode, select the Python interpreter for your environment (top right, usually!).
  13. If everything has worked then in the Python environment you should be able to run:
    
                  import torch
                
    Then:
    
                  torch.cuda.is_available()
                
    And if you have a GPU, you should see True, otherwise False.

Each session:

  • If you're using Jupyter Lab, every time you go to work on this project you'll need to activate your environment by running conda activate ml4ns using either the Terminal (Mac) or Anaconda Prompt (Windows). Then you may enter the command jupyter lab to open Jupyter Lab.

  • If you're using VSCode, you'll need to select the Python environment for each new file you open.


GitHub

The GitHub repository for this course is available here: GitHub


A Machine Learning Demo

This is a simple demo that shows you how cool machine learning is! This model is running in your browser and will predict the number of stars from a film review. Try it out!


Contact Us

If you want to contact Payam Barnaghi, send an email to: p.barnaghi@imperial.ac.uk or use the links on the staff images to contact a specific person.


Affiliation


Licensing

This work is licensed under a CC BY 4.0 License:

Software elements are additionally licensed under the BSD (3-Clause) License.