qiboteam / qibo

A framework for quantum computing
https://qibo.science
Apache License 2.0
284 stars 55 forks source link

Quantum Fisher Information Matrix #657

Open DiegoGM91 opened 1 year ago

DiegoGM91 commented 1 year ago

I think it would be useful to incorporate the computation of the Quantum Fisher Information Matrix (QFIM) in qibo. The QFIM is defined for parametrized (i.e. variational) quantum circuits, and it quantifies the distance traveled in Hilbert space for small variations of the variational parameters. Its rank is equal to the number of orthogonal directions that the circuit can have access to in Hilbert space.

Here is a lovely review about the QFIM: https://arxiv.org/abs/2103.15191

I already have a code that computes the QFIM, from a previous project, so I can try to give it a go.

But maybe a discussion with @scarrazza and @stavros11 would be useful for me before that.

renatomello commented 1 year ago

Adding to this, I think Qibo could have a module like Qiskit's quantum_info with several useful measures (e.g. fidelities and norms), and operators (e.g. Clifford and Pauli groups), and the QFIM would fit in the module IMO.

scarrazza commented 1 year ago

We have discussed this issue yesterday and we fully agree, Diego will have a go for QFIM.

renatomello commented 1 year ago

I (with @stavros11 major help) already have a few things up and running w.r.t. Pauli basis and operators. It could be added to the module. Also, I could have a go for the measures.

scarrazza commented 1 year ago

Great, @renatomello could you please coordinate this effort with @DiegoGM91 and @stavros11?

renatomello commented 1 year ago

Great, @renatomello could you please coordinate this effort with @DiegoGM91 and @stavros11?

Sure

stavros11 commented 1 year ago

We were discussing earlier with @DiegoGM91 and apparently the Fisher Information Matrix is calculated using the parameter shift rule. Given that this is a very useful tool for people working with variational circuits, I believe it would make sense to first implement this in qibo and then base the Fisher Information on top of it. @MatteoRobbiati already implemented the parameter shift in #654, but this is only an example that is not part of the main code. We should consider moving parts of this example to qibo core.

The main points during our discussion today: