mitiq icon indicating copy to clipboard operation
mitiq copied to clipboard

New technique: Measurement error mitigation

Open crazy4pi314 opened this issue 3 years ago • 15 comments

New technique: Measurement error mitigation (by inverting confusion matrix)

Problem

Mitiq needs more error mitigation techniques.

Measurement error mitigation is based on Measurement Error Mitigation for Variational Quantum Algorithms, should be relatively easy to implement.

Rough requirements

  • Should be implemented in a way such that it is very easy to compose with existing techniques (e.g., ZNE).
  • Requires support for measurement results.

crazy4pi314 avatar Jul 10 '21 00:07 crazy4pi314

#844 added on technique for measurement error mitigation, more to come!

rmlarose avatar Aug 13 '21 16:08 rmlarose

RFC for this issue here, please review:

https://docs.google.com/document/d/1Mb-OoojXBm0k8VTapNUkQQi4YQR5vsUvNJqmVgFpIns/edit?usp=sharing

rmlarose avatar Sep 24 '21 17:09 rmlarose

This issue had no activity for 2 months, and will be closed in one week unless there is new activity. Cheers!

github-actions[bot] avatar Dec 22 '21 00:12 github-actions[bot]

I'd like to offer to take this on as part of a final project for QCourse511. Final deliverables are due January 11th though, so my question to the Mitiq team is whether it would be feasible to reach an agreement on the design to allow implementation time before that deadline? At the very least I could perform a preliminary implementation based on the current state of the design doc.

amirebrahimi avatar Dec 22 '21 03:12 amirebrahimi

Thanks @amirebrahimi. You are more than welcome to take this up but I have concerns about the Jan 11th date, especially with the holiday break - there are a few points that need to be worked out in the RFC, then once that is accepted, we need to review the PR(s).

As a practical suggestion for your final project, you may consider doing your own complete implementation on a fork so you are not slowed down by the review process. You can of course make a pull request with this at any time. I hesitate to promise it can be merged before Jan 11th though.

rmlarose avatar Dec 22 '21 20:12 rmlarose

Thanks @amirebrahimi. You are more than welcome to take this up but I have concerns about the Jan 11th date, especially with the holiday break - there are a few points that need to be worked out in the RFC, then once that is accepted, we need to review the PR(s).

As a practical suggestion for your final project, you may consider doing your own complete implementation on a fork so you are not slowed down by the review process. You can of course make a pull request with this at any time. I hesitate to promise it can be merged before Jan 11th though.

I think that is a good plan and anything after the 11th can be worked out as the RFC firms up.

amirebrahimi avatar Dec 22 '21 22:12 amirebrahimi

This issue had no activity for 2 months, and will be closed in one week unless there is new activity. Cheers!

github-actions[bot] avatar Feb 21 '22 00:02 github-actions[bot]

This issue had no activity for 2 months, and will be closed in one week unless there is new activity. Cheers!

github-actions[bot] avatar May 09 '22 00:05 github-actions[bot]

This a the new RFC by @amirebrahimi. Thanks Amir!

Manually converted from the md file in #1294. Given the new contribution policy discussed in #1194.

andreamari avatar May 17 '22 10:05 andreamari

Thanks @amirebrahimi, we can discuss together, whenever you can, during the Mitiq meetings, the timeframe and follow-up issues to implement the feature.

nathanshammah avatar Aug 17 '22 17:08 nathanshammah

Sounds good. I'll plan on joining tomorrow's meeting.

amirebrahimi avatar Aug 19 '22 01:08 amirebrahimi

@allcontributors please add @amirebrahimi for code, test, doc.

andreamari avatar Sep 12 '22 17:09 andreamari

@andreamari

I've put up a pull request to add @amirebrahimi! :tada:

allcontributors[bot] avatar Sep 12 '22 17:09 allcontributors[bot]

I would like to recommend the QCompute:QEP project, which implements a list of measurement error mitigation methods, including

  • the matrix inversion method ((by inverting confusion matrix),
  • the least square method,
  • the iterative Bayesian unfolding method,
  • the truncated Neumann method, and
  • the continuous time Markov process method.

kun-wang avatar Sep 28 '22 01:09 kun-wang

Thanks @kun-wang, very interesting! In this first stage we are probably going to just self-implement the matrix inversion method. However, in a second stage, we can consider using some of your advanced post-processing methods. Out of curiosity, is QCompute:QEP a self-contained PyPy package or is it instead a part of the full qcompute SDK?

andreamari avatar Sep 28 '22 13:09 andreamari

A MVP of the REM module is in Mitiq since we merged its main implementation PR https://github.com/unitaryfund/mitiq/pull/1449 . We are still working on some improvements (e.g. writing docs), but I would say that this issue can be closed.

andreamari avatar Dec 13 '22 14:12 andreamari