Support Vector Regression with D-wave quantum annealer
The project aims at applying Quantum Annealing (QA) to the supervised learning algorithm of Support Vector Regression (SVR). Such implementation is then tested on both a synthetic and a real-world dataset of remote sensing. This repository is connected to a paper currently under revision.
Further information regarding the algorithm implementation could be found at the paper related to this repository:
Pasetto, Edoardo & Riedel, Morris & Melgani, Farid & Michielsen, Kristel & Cavallaro, Gabriele. (2022). Quantum SVR for Chlorophyll Concentration Estimation in Water with Remote Sensing. 10.36227/techrxiv.19619676.v1.
The increasing availability of quantum computers motivates researching their potential capabilities in enhancing the performance of data analysis algorithms. Similarly as in other research communities, also in Remote Sensing (RS) it is not yet defined how its applications can benefit from the usage of quantum computing. This paper proposes a formulation of the Support Vector Regression (SVR) algorithm that can be executed by D-Wave quantum computers. Specifically, the SVR is mapped to a Quadratic Unconstrained Binary Optimization (QUBO) optimization problem that is solved with Quantum Annealing (QA). The algorithm is tested on two different types of computing environments offered by D-Wave: The Advantage system, which directly embeds the problem into the Quantum Processing Unit (QPU), and a Hybrid solver that employs both classical and quantum computing resources. For the evaluation, we considered a biophysical variable estimation problem with RS data. The experimental results show that the proposed quantum SVR implementation can achieve comparable or in some cases better results than the classical implementation. This work is one of the first attempts to provide insight into how QA could be exploited and integrated in future RS workflows based on Machine Learning algorithms.
Leap access configuration
The solver used in the code are accessed through the Leap could service of D-wave(please note that is necessary to create an account on the Leap service in order to run the code) https://www.dwavesys.com/take-leap
To run the code it is also necessary to install the D-wave ocean software https://docs.ocean.dwavesys.com/en/latest/overview/install.html
It is possible to configure the access to the Leap solvers with the command "dwave config create" on the terminal.
Further information about how to access Leap could be found at: https://docs.ocean.dwavesys.com/en/stable/overview/sapi.html
Run the Experiments
In the folder GRSL two folders: QPU and Hybrid can be found. They contain the codes to run the experiments on the direct QPU solver and the hybrid solver, respectively (When running the code it is important to set the parameters in the Leap configuration file correctly in order to access the right solver). In each folder two Python files are present. "QSVR.py" and "utility.py" : the former contains the code to run the experiments whereas the latter is a library file containing the functions needed. The dataset is saved as a text file in the "Dataset" folder. The folder "Results" is where the results of the experiments are saved: the code contained in "QSVR.py" automatically generates a new folder containing the prediction results inside "Results" each time the code is run. Please note that the annealing procedure is very aleatory and is also dependent on the embedding used and therefore the results obtained when running the experiments might differ slightly from those of the paper
##Difference between IGARSS and GRSL This repository refers to two different works that investigated the application of QSVR to remote sensing use-cases. The implementation used in the two works is the same. The main difference is that the work of GRSL also run some experiments using a hybrid solver.
Important notes
In the code the variable k0 actually refers to the hyperparameter P in the manuscript(the value that appears in the exponent of B in the encoding procedure)