Lecture notebooks and coding assignments for the quantum machine learning MOOC created by Peter Wittek on EdX in the Spring 2019
Note: this a fork of the original Gitlab repository of the MOOC, along with the official solutions. Since Peter Wittek, the creator of the MOOC, disappeared in an avalanche in October 2019, the future of the MOOC on edX is uncertain. This repository, along with the videos, should allow his work to survive and benefit everyone who wants to learn about quantum machine learning! Enjoy!
The pace of development in quantum computing mirrors the rapid advances made in machine learning and artificial intelligence. It is natural to ask whether quantum technologies could boost learning algorithms: this field of enquiry is called quantum machine learning. This massively open online online course (MOOC) on edX is offered by the University of Toronto on edX with an emphasis on what benefits current and near-future quantum technologies may bring to machine learning. These notebooks contain the lecture notes and the code for the course. The content is organized in four modules, with an additional introductory module to the course itself.
Since the course is hands-on, we found it important that you can try the code on actual quantum computers if you want to. There isn't a single, unified programming framework that would allow to address all available quantum hardware. For this reason, the notebooks are available in two versions: one in Qiskit targeting the IBM Q hardware and the Forest SDK targetting the Rigetti quantum computer. The notebooks also cover quantum annealing -- for that, the D-Wave Ocean Suite is used. For more details on setting up your computational environment locally, refer to the notebooks in Module 0.
The code snippets in the notebooks are licensed under the MIT License. The text and figures are licensed under the Creative Commons Attribution 4.0 International Public License (CC-BY-4.0).
Python and a good command of linear algebra are necessary. Experience with machine learning helps.
Module 0: Introduction
Module 1: Quantum Systems
Module 2: Quantum Computation
Module 3: Classical-quantum hybrid learning algorithms
Module 4: Coherent Learning Protocols
The assignments are included, but without the solutions. The master version is developed in a separate private repository. If you are an interested in using them for your own lectures, please contact us to give you access.
We welcome contributions - simply fork the repository, and then make a pull request containing your contribution. We would especially love to see the course extended to other open source quantum computing frameworks. We also encourage bug reports and suggestions for enhancements.