Skip to main content

A framework for quantum machine learning in high energy physics

Project description

License: MIT Open Source Love

Python PyPI

Quple is a framework for quantum machine learning based on the Google Cirq and TensorFlow Quantum libraries. It contains implementation of a wide range of quantum machine learning algorithms, including:

  • Variational Quantum Classifier (VQC)
  • Quantum Support Vector Machine (QSVM)
  • Quantum Convolutional Neural Network (QCNN)
  • Quantum Generative Adversarial Network (QGAN)

Quple was originally developed for applications in high energy physics (HEP) analyses. The letter "Q" refers to the use of quantum computational methods in this framework. The homophone to the word "couple" references the concept in HEP which refers to the interaction between two objects - machine learning and high energy physics in this case.

Quple started as a Google Summer of Code (GSoC) project in 2020 and 2021 for the ML4Sci umbrella organization. References to related projects can be found in the descriptions below.

Installing the package

To install the current release, simply do

pip install quple

Tutorials

For GSoC 2020:

Tutorial-01 Quantum Circuit

  • Open In Colab

Tutorial-02 Parameterised Quantum Circuit (PQC)

  • Open In Colab

Tutorial-03 Interaction Graphs

  • Open In Colab

Tutorial-04 Encoding Function

  • Open In Colab

Tutorial-05 Encoding Circuit

  • Open In Colab

Tutorial-06 Variational Circuit

  • Open In Colab

Tutorial-07 Circuit Descriptors

  • Open In Colab

Tutorial-08 Variational Quantum Classifier

  • Open In Colab

For GSoC 2021:

Tutorial-09 Parameterized Quantum Circuit (PQC) layer

  • Open In Colab

Tutorial-10 Quantum Convolution 2D (QConv2D) layer

  • Open In Colab

Tutorial-11 Quantum Generative Adversarial Network (QGAN)

  • Open In Colab

Advanced Tutorial-01 QGAN High Energy Physics Application

  • Open In Colab

GSoC 2020 : Quple

The project archive can be found here.

For documentation and report, please check here.

GSoC 2021 : Quple - Quantum GAN

The proposed project Quple - Quantum GAN serves as an extension to the 2020 GSoC project with a major focus on the implementation of Quantum Generative Adversarial Networks (QGAN).

In this project, two major concepts are developed:

  • Quantum convolution using quantum filters (QFilter)
  • Quantum image generation and discrimination based on quantum convolution

Quantum Convolution using Quantum Filters

Relevant tutorial notebooks: Tutorial 09, Tutorial 10.

Quantum convolution uses a quantum filter as the basic building block. It replaces the classical filter by a Parameterised Quantum Circuit (PQC) which scan across the local regions (the receptive field) of an image.

In the classical case, an output pixel value (neuron) that are connected to a local region in the input image is computed as the dot product between the kernel weights of the classical filter and the pixel values in the local region.

In the quantum case, a quantum filter transforms the pixel values in the local region into the quantum states of its data circuit via a suitable feature map, hence projecting the data into a higher dimensional quantum (Hilbert) space. The quantum states are then propagated to the model circuit of the quantum filter which undergoes a sequence parameterised gate operations and outputs the expectation value of a given measurement operator.

Implementation of the above concept is done via the QConv2D class with API similar to the tf.keras.layers.Conv2D class. It borrows common concepts in traditional convolution such as filters, kernel_size, strides and padding.

Note that the kernel_size of a quantum filter does not refer to the number of trainable weights in the quantum filter but instead to the dimensions of the receptive field passed to the data circuit.

Quantum Image Generation and Discrimination

Relevant tutorial notebooks: Tutorial 11

The essence of a quantum version of the Generative Adversarial Network (GAN) is to replace the generator and discriminator neural networks with quantum neural networks made up of parameterized quantum circuits (PQCs).

Both quantum generator and discriminator neural networks consist of two key components. The first component is a data encoding circuit (i.e. the input layer) that maps classical input data of variables into a quantum state using a quantum feature map . The quantum state is then passed to a PQC layer (represented by the circuit ($W(\theta)$) made up of a series of parameterized local single-qubit rotations and two-qubit entagling operations in which the circuit parameters represent the weights of a neural network.

A pure quantum neural network therefore represents the combined circuit operation .

Finally a total of (repetitions) of measurements (via a measurement operator which usually is the Pauli operator acting on the i-th qubit) is made on one or multiple qubits of the combined circuit to measure the expectation values .

Application of GAN to HEP - Generation of Electromagnetic Calorimeter Energy Deposition

Relevant tutorial notebooks: Advanced Tutorial 01.

The dataset of interest is a set of 32 x 32 images that represent the energy deposition on the detector cells of an electromagnetic calorimeter (ECAL).

The local geometry of the energy deposition contains information about the properties of the particles that went through the detector cells which is crucial in identifying the particles of origin.

In this particular dataset, two class of particles are involved: photons (class label "0") and electrons (class label "1"). Each image correspond to a single particle of origin, either photon or electron. In total, there are 498,000 samples, equally distributed between the two classes.

The goal of a quantum GAN model in this case would be to generate images that simulate the given photon/electron images.

One potential application of this model would be to perform fast simulation of ECAL enery deposition which can be used as an alternative to standard Monte Carlo simulators like GEANT4. This is especially useful when the requirement on the quality of the generated samples are less stringent such as for evaluation of ECAL related systematics uncertainties.

Example photon images:

Example electron images:

The effective size of the images is roughly 8x8, so for demonstration purpose a cropped version of the images are used:

Some example training outputs using the QGAN class from Quple:

  • GAN with quantum generator + quantum discriminator using the modified mini-max loss function:
  • GAN with quantum generator + quantum discriminator using the Wasserstein loss function:

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

quple-0.9.2.7.tar.gz (73.6 kB view details)

Uploaded Source

Built Distribution

quple-0.9.2.7-py3-none-any.whl (101.7 kB view details)

Uploaded Python 3

File details

Details for the file quple-0.9.2.7.tar.gz.

File metadata

  • Download URL: quple-0.9.2.7.tar.gz
  • Upload date:
  • Size: 73.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.7.10

File hashes

Hashes for quple-0.9.2.7.tar.gz
Algorithm Hash digest
SHA256 f7eb6d527c9a4358d1a58226d9fb0e9e9b24de80ea1afca6a393a764148c7d53
MD5 2664f75ecf87bebe67b34cb4d9ed690f
BLAKE2b-256 f63365b40c9a72ce1105540e43f14b2321973602bbf0d427659f1530713d9e55

See more details on using hashes here.

File details

Details for the file quple-0.9.2.7-py3-none-any.whl.

File metadata

  • Download URL: quple-0.9.2.7-py3-none-any.whl
  • Upload date:
  • Size: 101.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.7.10

File hashes

Hashes for quple-0.9.2.7-py3-none-any.whl
Algorithm Hash digest
SHA256 a2d1e9c965273c1752e1c3b4b07aae9631140b2abb56c45f6f037ce49e670e2c
MD5 5dd2df0b4d48d82e232eb8ef0e5be507
BLAKE2b-256 e6e74180c22a75872022ecadd2a3f1c663c06ee82be1a2f769018836ad0433ec

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page