{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Practical Characterization and Control of Quantum Systems" ] }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "Cassandra Granade
\n", "Institute for Quantum Computing" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Joint Work with** Christopher Ferrie, Nathan Wiebe, Ian Hincks, Troy Borneman and D. G. Cory" ] }, { "cell_type": "heading", "level": 3, "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "Abstract" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "As quantum information processing experiments grow in scale and complexity,\n", "new techniques are required to characterize and control quantum devices.\n", "Here, we provide an algorithm for applying Bayesian techniques to\n", "quantum information processing experiments.\n", "We introduce and demonstrate an open-source software library implementing our\n", "approach and show an example of these advances as applied in nitrogen vacancy\n", "centers.\n", "\n", "We also discuss advances in control, demonstrating an algorithm for\n", "incorporating realistic physical models of non-linear systems\n", "into the design of control sequences.\n", "Finally, we show how both of these algorithms can be extended\n", "with the use of quantum resources to allow for application\n", "to much larger systems." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Slides and references are available at [https://www.cgranade.com/research/talks/sandia-2014/](https://www.cgranade.com/research/talks/sandia-2014/).\n", "\n", "References like `10/abc` can be looked up using `http://doi.org/abc`.\n", "$\\renewcommand{\\vec}[1]{\\boldsymbol{#1}}$\n", "$\\renewcommand{\\matr}[1]{\\mathbf{#1}}$\n", "$\\newcommand{\\bra}[1]{\\left\\langle#1\\right|}$\n", "$\\newcommand{\\ket}[1]{\\left|#1\\right\\rangle}$\n", "$\\newcommand{\\braket}[2]{\\left\\langle#1\\mid#2\\right\\rangle}$\n", "$\\newcommand{\\dd}{\\mathrm{d}}$\n", "$\\newcommand{\\ii}{\\mathrm{i}}$\n", "$\\newcommand{\\ee}{\\mathrm{e}}$\n", "$\\newcommand{\\expect}{\\mathbb{E}}$\n", "$\\newcommand{\\matr}[1]{\\mathbf{#1}}$\n", "$\\newcommand{\\T}{\\mathrm{T}}$\n", "$\\newcommand{\\Cov}{\\operatorname{Cov}}$\n", "$\\newcommand{\\Tr}{\\operatorname{Tr}}$\n", "$\\newcommand{\\real}{\\mathbb{R}}$\n", "$\\renewcommand{\\Re}{\\operatorname{Re}}$" ] }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "Compling and Hosting" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "To compile these slides, we use **nbconvert**." ] }, { "cell_type": "code", "collapsed": false, "input": [ "!ipython nbconvert --to slides --template slides.tpl slides.ipynb\n", "!mv slides.slides.html slides.html" ], "language": "python", "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[NbConvertApp] Using existing profile dir: u'/home/cgranade/.config/ipython/profile_default'\r\n", "[NbConvertApp] Converting notebook slides.ipynb to slides\r\n", "[NbConvertApp] Support files will be in slides_files/\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "[NbConvertApp] Loaded template slides.tpl\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "[NbConvertApp] Writing 378978 bytes to slides.slides.html\r\n" ] } ], "prompt_number": 14 }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "If you want to view them in your browser complete with speaker notes, remote control support, etc., then you need to host the slides. The [instructions for Reveal.js](https://github.com/hakimel/reveal.js/#full-setup) include directions for hosting via a library called Grunt. Unfortunately, this doesn't work well with [remot.io](http://remot.io/), as that tool requires that you serve from port 80." ] }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "Configuration" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "Since we're going to display some ``'.format(src))" ], "language": "python", "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "prompt_number": 28 }, { "cell_type": "heading", "level": 1, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Introduction" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This talk will proceed in two parts:\n", "\n", "- Using sequential Monte Carlo for practical characterization\n", "- Extending optimal control theory algorithms to include realistic models of classical electronics" ] }, { "cell_type": "heading", "level": 1, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Part 1: Practical Characterization" ] }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Limits of Traditional Characterization" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Quantum information experiments are pushing the limits of traditional characterization techniques.\n", "\n", "- Large numbers of parameters to estimate.\n", "- Errors in estimated parameters can be highly correlated.\n", "- Can be hard to extract confidence and credible regions.\n", "- Can be difficult to incorporate practical experimental effects." ] }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Example: Hyperfine Measurement in NV Centers" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\n", "
Image courtesy of Ian Hincks.
\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Electronic spin $\\vec{S}$ in NV center coupled to a nearby carbon spin $\\vec{I}$:\n", "$$\n", "H = \\Delta_{\\text{zfs}} S_z^2 + \\gamma_e (\\vec{B} + {\\color{red} \\vec{\\delta B}}) \\cdot \\vec{S} + \\gamma_C (\\vec{B} + {\\color{red} \\vec{\\delta B}}) \\cdot \\vec{I} + \\vec{S} \\cdot {\\color{red} \\mathbf{A}} \\cdot \\vec{I},\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "${\\color{red} \\vec{\\delta B}}$ causes large errors in ${\\color{red} \\matr{A}}$, making it difficult to characterize $H$ using spectroscopic methods." ] }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Enabling Characterization with Simulation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Bayes' Rule relates estimation to simulation:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$\n", " \\Pr(\\text{hypothesis} | \\text{data}) = \\frac{\\color{red}{\\Pr(\\text{data} | \\text{hypothesis})}}{\\Pr(\\text{data})} \\Pr(\\text{hypothesis})\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The posterior distribution describes what we learn from our data about hypotheses." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "$\\Rightarrow$ Practical characterization can be enabled using *sequential Monte Carlo*.\n", "\n", "- Classical Bayesian algorithm\n", "- Uses *simulation* to *estimate* parameters\n", "- Numerical algorithm\u2014 doesn't assume analytic solution" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "\n", "For instance, to learn about a Hamiltonian $H$ given a measurement $d$:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$\\begin{align}\n", "\\Pr(H) & \\approx \\sum_{i=0}^N w_i \\delta(H - H_i) \\\\\n", "\\Pr(H | d) & \\approx \\sum_{i=0}^N w_i \\delta(H - H_i) \\times \\Pr(d | H_i) / \\mathcal{N}\n", "\\end{align}$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$\\mathcal{N}$: normalization factor (can be found implicitly)\n", "\n", "Set $w_i \\gets w_i \\Pr(d | H_i) / \\mathcal{N}$ to be new prior.\n", "\n", "- **Iterative** $\\Rightarrow$ SMC can be used *online* as data arrives.\n", "- Also reduces overhead for postprocessing large datasets.\n", "\n", "Estimate of $H$ is then\n", "$$\n", "\\hat{H} = \\expect[H] = \\sum_i w_i H_i.\n", "$$\n", "\n", "(Doucet et al., Stat. & Comp. **10** 3 197-208; Husz\u00e1r and Houlsby, PRA **85** 052120; Granade et al. [10/s86](http://doi.org/s86), NJP **14** 10 103013 [10/s87](http://doi.org/s87))" ] }, { "cell_type": "heading", "level": 3, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Generality of Simulation-Based Characterization" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Simulation $\\Pr(d|H_i)$ with hypothesis $H_i$ allows for additional experimental details in our simulation, at the trade off of computational cost.\n", "\n", "Examples:\n", "\n", "- Finite and unknown $T_1$, $T_2$.\n", "- Unknown visibility.\n", "- Uncertainty in control fields." ] }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Parameter Reduction" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We often need not consider all possible Hamiltonians, but can consider a set of physically reasonable Hamiltonians.\n", "\n", "Let $H = H(\\vec{x})$ be a *parameterization*, where $\\vec{x} \\in \\real^d$.\n", "\n", "Example (*Ising model*):\n", "\n", "$$\n", "H(\\vec{x}) = \\sum_{\\langle i,j \\rangle} x_{i,j} \\sigma_z^{(i)} \\sigma_z^{(j)}\n", "$$" ] }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Prior Knowledge" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "SMC is Bayesian, and thus incorporates prior knowledge.\n", "\n", "Modeled by a *prior distribution* $\\Pr(\\vec{x}) := \\pi(\\vec{x})$.\n", "\n", "Examples:\n", "\n", "- Secondary experiment gives rough estimate of a parameter.\n", "- Physical arguments place limits on feasible parameter values.\n", "- *Ab initio* calculations give expected range for parameters." ] }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Characterizing Uncertainty" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since we have the posterior, we can calculate the mean and covariance easily:\n", "\n", "$$\\begin{align}\n", " \\expect[\\vec{x}] & = \\sum_i w_i \\vec{x}_i \\\\\n", " \\Cov(\\vec{x}) & = \\expect[\\vec{x}\\vec{x}^\\T] - \\expect[\\vec{x}]\\expect[\\vec{x}]^\\T\n", "\\end{align}$$\n", "\n", "- SMC replaces integrals over $\\Pr(\\vec{x})$ with finite sums.\n", "- Covariance describes uncertainty in estimate." ] }, { "cell_type": "heading", "level": 3, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Ambiguity in Approximation" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from numpy.random import multivariate_normal\n", "from scipy.stats import norm" ], "language": "python", "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "xs, ys = multivariate_normal([0, 0], identity(2), size=(200,)).T\n", "xs2, ys2 = 8 * np.random.random((2, 200)) - 4\n", "\n", "figure(figsize=(12,6))\n", "subplot(1,2,1); scatter(xs, ys); ylim(-4, 4)\n", "subplot(1,2,2); scatter(xs2, ys2, s=norm.pdf(xs2) * norm.pdf(ys2) * 1000);" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n661FfPXVVxVes2DBZ+TnjwYq+/RwICdOnOLo0cpvmhaiRrTsuIX2tmzZovz86qnate9QHh51FfS/\nsjSZj8996s03Z9v0/GVlZTW6IjNkyIMKghSUXNm4AuorT09flZOTY/WcmzZtUiZToKpdu6cyGhup\nRx55otL1gseOHaeMxk4K3lfe3g+pFi06qKKiIqvnEfbjbjXM3cYrrlZWVqYGDhyqTKYmSqebqmCu\n8vPrqwIDQ9WBAweu+brbbuuu4LNKrxDDfNW795AKr4mJ6a1g1TVeo1StWu2rXBJViMpUVcNuek5v\ndZx9fpg7uHDhAgcOHCA7O5tHHnkCpWJQKpPwcD07dmzE19dX64gVbN26lR49RlNe/sPlIwoI5tFH\nB7Jw4Xs2OWdmZiZ79uwhKCiI0NBQHnxwNDt3ptCwYSiffDKX1q1b4+9fF7M5E6gLKPz9u/Kf/7zA\ngAEDbJLpepWWlrJgwQKOHz9JTExn7rvvPoeag+XI3K2Gudt4RUVKKb799lv+858EcnML6NatCw88\n8ECVPwvq1g3ml1++BUIqeXQft976ICdO7L/q6LhxLzB3rpmysjcrec1ZfHxacvbsCWrVqnVT4xHu\npaoaJk2vkygvL+fo0aMYjUZCQ0Ntdp4zZ86wdetWTCYT8fHxGAwGm53rZhQVFdG8eSSZmQ9iNt+H\nTvcJDRr8j5Mnf8DTs8bLT18XpRQdO97J/v2dKC8fB3yNv/84du/+hoiI9pSX5wBeAPj792fRokcZ\nPLjyfd8vXLjAiBGjSUnZQYMGDfn443/TpUsXq+YtLy/nzjv7sHevJ0VFd2AyLeWpp4YwY8YrVj2P\nq3K3GuZu43UmZWVlwKUpV46mSZNIjh9/F+hayaNJdOjwNrt3b77q6LFjx2jTpjNFRclAm989YsHb\neyRDh/qyePF824UWLsmmN7JVxw6ncHmZmZmqWbNIZTI1Vj4+t6ihQx+VmzSUUidOnFB3332vCg5u\npfr2vV9lZGTY5bxZWVnKy8vvqhvb/P0HqoSEBNW9+wDl4zNcQYrS6WargIBgdeHChWu+V6dOccrL\n62kFJxUsV35+9VR6erpV827cuFH5+UX+7maRs8rT01cVFBRY9Tyuyt1qmLuN11lMnPiK8vT0Vp6e\n3uqf/5yidZwKZs2arXx97/nDjdFKQbkyme5SCxcurPR1//nPMuXrG6i8vMYrWKtgsfLzi1VRUXeo\n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\nSUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 12 }, { "cell_type": "heading", "level": 3, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Avoiding Impoverishment" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- The number of samples $N$ must be large to represent $\\Pr(\\vec{x} | \\text{data})$.\n", "- As more data is collected, posterior becomes sharper.\n", "- Initial particles are unlikely to have support in posterior, reducing *effective* $N$.\n", "\n", "Solution: **resampling**. Replace SMC samples with different samples that better represent the same distribution.\n", "\n", "Uses that information can be stored in weights $\\{w_i\\}$ or positions $\\{\\vec{x}_i\\}$." ] }, { "cell_type": "heading", "level": 3, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Liu-West Resampling Algorithm" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Sample new $\\vec{x}_i'$ from kernel density estimate such that $\\expect[\\vec{x}]$ and $\\Cov(\\vec{x})$ are preserved.\n", "- Set new weights to uniform $w_i' = 1/ N$.\n", "\n", "Liu-West distribution:\n", "$$\n", " \\Pr(\\vec{x}'_i) = \\sum_i w_i \\frac{1}{\\sqrt{(2\\pi)^k |\\matr{\\Sigma}|}} \\exp\\left(\n", " -\\frac{1}{2} (\\vec{x}' - \\vec{\\mu}_i)^\\T \\matr{\\Sigma}^{-1} (\\vec{x}' - \\vec{\\mu}_i)\n", " \\right)\n", "$$\n", "where\n", "$$\\begin{align*}\n", " \\vec{\\mu}_i & = a \\vec{x}_i + (1 - a) \\expect[\\vec{x}] \\\\\n", " \\matr{\\Sigma} & = (1- a^2) \\Cov[\\vec{x}] \\\\\n", " a & \\in [0, 1],\n", "\\end{align*}$$\n", "\n", "(West, J. Royal Stat B **55** 2 409-422; Liu and West 2001)" ] }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Putting it Together: The SMC Algorithm" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1. Draw $N$ \"particles\" $\\{\\vec{x}\\}_{i=0}^{N-1}$ from $\\pi(\\vec{x})$.\n", "2. Set $w_i = 1 / N$ for each particle.\n", "3. For each new measurement $d$:\n", "\n", " a. Let $w_i \\gets w_i \\Pr(d | \\vec{x}_i)$.\n", " b. Normalize $w_i$ to be a distribution.\n", " c. If $1 / \\sum_i w_i^2 < 0.5 N$, resample.\n", " \n", "(Doucet et al., Stat. & Comp. **10** 3 197-208)" ] }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Software Implementation" ] }, { "cell_type": "code", "collapsed": false, "input": [ "prior = UniformDistribution([[0.9, 1], [0.4, 0.5], [0.5, 0.6]])\n", "updater = SMCUpdater(\n", " RandomizedBenchmarkingModel(), 10000,\n", " prior, resampler=LiuWestResampler()\n", ")\n", "\n", "# As data arrives:\n", "# updater.update(datum, experiment)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 29 }, { "cell_type": "markdown", "metadata": {}, "source": [ "(Granade et al., [arXiv:1404.5275](https://scirate.com/arxiv/1404.5275); [github.com/csferrie/python-qinfer](https://github.com/csferrie/python-qinfer))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Provides an infrastructure for rapidly deploying SMC. User defines:\n", "\n", "- Parameterization of model and experiments\n", "- Possible outcomes\n", "- Likelihood of data" ] }, { "cell_type": "heading", "level": 3, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Built-In Plotting" ] }, { "cell_type": "code", "collapsed": false, "input": [ "updater.plot_posterior_contour(0, 1, res1=50, res2=50)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 12, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nI8DOvMUAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 12 }, { "cell_type": "heading", "level": 3, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Built-In Plotting" ] }, { "cell_type": "code", "collapsed": false, "input": [ "updater.plot_posterior_marginal(0)\n", "ylim(ymin=0)" ], "language": "python", "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 10, "text": [ "(0, 12.0)" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 10 }, { "cell_type": "heading", "level": 3, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Estimation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**QInfer** handles drawing estimates from the current SMC distribution:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "print updater.est_mean()\n", "print sqrt(diag(updater.est_covariance_mtx()))\n", "print updater.est_entropy()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[ 0.95020288 0.45062089 0.5505005 ]\n", "[ 0.02895919 0.02872952 0.02877011]" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "9.21034037198\n" ] } ], "prompt_number": 31 }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Region Estimation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Credible region $X_{\\alpha}$: $\\Pr(\\vec{x} \\in X_{\\alpha}) \\ge \\alpha$\n", "\n", "Several ways to choose $X_{\\alpha}$:\n", "\n", "- covariance ellipses\u2014 if approx. normal\n", "- convex hulls\u2014 very general, but long description\n", "- minimum volume enclosing ellipse (MVEE) for the hull\u2014 approximate, but easy to represent" ] }, { "cell_type": "code", "collapsed": false, "input": [ "cov = updater.est_covariance_mtx()\n", "hull_faces, hull_vertices = updater.region_est_hull()\n", "ellipse_mtx, ellipse_centroid = updater.region_est_ellipsoid()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "(Granade et al., NJP **14** 10 103013 [10/s87](http://doi.org/s87); Ferrie, NJP **16** 2 023006 [10/tb4](http://doi.org/tb4))" ] }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "State-Space Methods" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "SMC can also be used to *track* the state of a parameter that fluctuates in time.\n", "\n", "![](files/figures/specdens-tracking.svg)\n", "\n", "Here, the true value of $\\omega$ is drawn from a Gaussian process. After each measurement, SMC particles are *moved* to track $\\omega$, $\\vec{x}(t_{k + 1}) \\sim \\mathrm{N}(\\vec{x}(t_k), \\sigma^2)$.\n", "\n", "(Doucet and Johansen 2011)" ] }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Robustness of SMC: Finite Sampling" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "When using SMC without exact likelihoods, finite sampling of simulator introduces finite error $\\epsilon$:\n", "\n", "$$\n", " w_i \\mapsto w_i (\\Pr(d | \\vec{x}_i) + \\epsilon) / \\mathcal{N}\n", "$$\n", "\n", "**Example** (noisy coin): risk for 1000 experiments vs number of samples.\n", "\n", "\n", "\n", "(Ferrie and Granade 2014, PRL **112** 13 130402 [10/tdj](http://doi.org/tdj))" ] }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Robustness of SMC: Incorrect Model" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We also want SMC to be robust against errors in the simulator. Below: risk when Ising simulator neglects terms of order $10^{-4}$.\n", "\n", "![](files/figures/badmodel.svg)\n", "\n", "(Wiebe et al. PRA **89** 4 042314 [10/tdk](http://doi.org/tdk))" ] }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Other Features" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Model selection and (coming soon) model-averaged estimation\n", "- Parallelization with IPython\n", "- Example of GPU-based model\n", "- Improved resampling\n", "- Robustness-testing tools (ex.: erroneous models)" ] }, { "cell_type": "heading", "level": 3, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Documentation" ] }, { "cell_type": "code", "collapsed": false, "input": [ "iframe(\"http://python-qinfer.readthedocs.org/en/latest/\")" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "" ], "metadata": {}, "output_type": "pyout", "prompt_number": 21, "text": [ "" ] } ], "prompt_number": 21 }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "SMC and QInfer in Action: Randomized Benchmarking" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Randomized benchmarking: apply random Clifford gates $\\{S_i\\}$ to learn average fidelity of a gateset $\\{U_j\\}$:\n", "\n", "![](files/figures/benchmarking-overview.svg)\n" ] }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "SMC and QInfer in Action: Randomized Benchmarking" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "- Fidelity exposed as *decay* of survival probability $\\Tr(ES_{\\vec{i}}[\\rho])$; removes effect of preparation $\\rho$ and measurement $E$ (SPAM).\n", "- Can interleave with gate of interest.\n", "- Least-squares fitting often used to extract fidelity.\n", "\n", "![](files/figures/ex-signal-interleaved.svg)\n", "\n", "(Knill et al., PRA **77** 1 012307 [10/cxz9vm](http://doi.org/cxz9vm); Magesan et al., PRL **109** 8 080505 [10/s8j](http://doi.org/s8j))" ] }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "SMC and QInfer in Action: Randomized Benchmarking" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "SMC can be used to accelerate interleaved RB experiments.\n", "\n", "- Interpret randomized benchmarking as a **likelihood**.\n", "\n", "**Example** (zeroth-order model):\n", "$$\n", "\\Pr(\\text{survival} | A, B, \\tilde{p}, p_{\\text{ref}}; m, \\text{mode}) = \\begin{cases}\n", " A (\\tilde{p} p_{\\text{ref}})^m + B & \\text{interleaved} \\\\\n", " A (p_{\\text{ref}})^m + B & \\text{reference}\n", "\\end{cases}\n", "$$\n", "\n", "- $\\tilde{p}$ and $p_{\\text{ref}}$: interleaved and reference depolarizing parameters (resp)\n", "- $A$ and $B$: constants describing SPAM\n", "\n", "Advantages:\n", "\n", "- $0 \\le p_{\\text{ref}}, \\tilde{p} \\le 1$ manifest in prior\u2014 avoids instability as $\\tilde{p} \\to 1$.\n", "- Using prior information and correlations between different data can drastically reduce data requirements." ] }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "SMC and QInfer in Action: Randomized Benchmarking" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Straightfoward to implement in QInfer:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from qinfer.abstract_model import Model\n", "\n", "class RandomizedBenchmarkingModel(Model):\n", " # ...\n", " \n", " def likelihood(self, outcomes, modelparams, expparams):\n", " p_tilde, p, A, B = modelparams.T[:, :, np.newaxis]\n", " \n", " p_C = p_tilde * p\n", " p = np.where(expparams['reference'][np.newaxis, :], p, p_C)\n", " \n", " m = expparams['m'][np.newaxis, :]\n", " \n", " pr0 = 1 - (A * (p ** m) + B)\n", " \n", " return Model.pr0_to_likelihood_array(outcomes, pr0)\n", " \n", " # ..." ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 16 }, { "cell_type": "markdown", "metadata": {}, "source": [ "(*Granade* et al., [arXiv:1404.5275](https://scirate.com/arxiv/1404.5275))" ] }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "SMC and QInfer in Action: Randomized Benchmarking" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "\n", "(Left: $m = 1, 2, \\dots, 100$; Right: $10^3$ shots/sequence length, $m = 1, 11, \\dots, m_{\\max}$)" ] }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "SMC and QInfer in Action: Hyperfine Measurement" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "With SMC, we can easily integrate data from many different kinds of measurements and control parameters:\n", "\n", "- Rabi, Ramsey and SPAM experiments\n", "- Several different $\\vec{B}$ fields\n", "\n", "Experimental variety is a resource for decorrelating errors in static controls from hyperfine parameters.\n" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Electronic spin in an NV center coupled to a nitrogen spin:\n", "$$\n", "H = \\Delta_{\\text{zfs}} S_z^2 + \\gamma_e (\\vec{B} + \\vec{\\delta B}) \\cdot \\vec{S} + \\gamma_N (\\vec{B} + \\vec{\\delta B}) \\cdot \\vec{I}_N + {A}_N S_z I_{N,z}\n", "$$\n", "Using 5000 particles, we can get accurate estimates of both $\\vec{\\delta B}$ and $\\matr{A}_N$. Shown below for 163M total shots (about 300k photons).\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Simulations show that we can hyperfine couplings to carbon spins as well:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "heading", "level": 1, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Part 2: Control of Quantum Devices with Non-Linear Electronics" ] }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Pulse Engineering" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Modern optimal control theory (OCT) algorithms allow for designing pulses with many desired properties, including\n", "\n", "- Robustness to distributions over Hamiltonians\n", "- Bandwidth and power limits\n", "- Ringdown compensation\n", "\n", "Utility functional:\n", "$$\\begin{align*}\n", " \\Phi(\\vec{p}) & = \\Tr(U_{\\text{target}}^{\\dagger} U(\\vec{p})) / \\dim^2\\mathcal{H}, \\text{where} \\\\\n", " U(\\vec{p}) & := \\prod_{i=N}^{1} \\ee^{-\\ii \\Delta t (H_0 + \\sum_{k=1}^K p_{i,k} H_k)}\n", "\\end{align*}$$\n", "\n", "- $H_0$: internal Hamiltonian\n", "- $\\{H_k\\}$: control Hamiltonians\n", "- $\\Delta t$: timestep" ] }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "GRAPE" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "*Gradient-ascent pulse engineering* (GRAPE) is a commonly used OCT algorithm.\n", "\n", "- Provides fast evaluation of $\\vec{\\nabla}\\Phi$.\n", "- Uses gradient-ascent or conjugate-gradient to maximize $\\Phi$.\n", "\n", "However, GRAPE assumes linearity of classical control electronics (transfer function).\n", "\n", "(Khaneja et al., JMR **172** 2 296-305 [10/cg8cdh](http://doi.org/cg8cdh))" ] }, { "cell_type": "heading", "level": 3, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Calculating Gradients" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Khaneja gives the gradients wrt the controls $\\{p_k(t)\\}$ in terms of unitary time steps:\n", "\n", "$$\\begin{align}\n", " \\frac{\\partial \\Phi}{\\partial p_k(t_j)} & = -2 \\Re\\left\\{\\braket{P_j}{\\ii \\Delta t\\, H_k X_j} \\braket{X_j}{P_j} \\right\\} \\\\\n", " X_j & := U_j \\cdots U_1 \\\\\n", " P_j & := U_{j+1}^\\dagger \\cdots U_{n}^\\dagger U_{\\text{target}} \\\\\n", " U_j & := \\exp\\left(-\\ii \\Delta t (H_0 + \\sum_{k=1}^{K} p_k(t_j) H_k )\\right)\n", "\\end{align}$$" ] }, { "cell_type": "heading", "level": 3, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Nonlinear Conjugate Gradient Method" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1. Choose initial pulse $\\vec{p}$.\n", "2. Let $\\beta = 0$, $\\vec{s} = 0$.\n", "3. Until utility goal is met:\n", " 1. Calculate $\\Phi(\\vec{p})$, $\\vec{\\nabla}\\Phi(\\vec{p})$.\n", " 2. Update $\\beta$ using Polak\u2013Ribi\u00e8re formula.\n", " 3. $\\vec{s} \\gets -\\vec{\\nabla}\\Phi + \\beta \\vec{s}$.\n", " 4. Search along $\\vec{s}$, $\\vec{p} + \\alpha \\vec{s}$ for a step size $\\alpha > 0$.\n", " 5. $\\vec{p} \\gets \\vec{p} + \\alpha \\vec{s}$\n", " \n", "Gradient information used to update search directions, line search used to determine step sizes." ] }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Example: Non-Linear Resonators" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Superconducting resonators admit *kinetic inductance* $L = L(I_L) = L_0 (1 + \\alpha_L \\|I_L\\|^2)$ and a nonlinear resistance $R = R(I_R) = R_0 (1 + \\alpha_L \\|I_R\\|^\\eta)$.\n", "\n", "
\n", "![](files/figures/rlc.svg)\n", "
Image courtesy of Ian Hincks.
\n", "
\n", "\n", "(Maas 2003; Benningshof et al., JMR **230** 84-87 [10/s8m](http://doi.org/s8m); Mohebbi et al., JAP **115** 9 094502 [10/s8n](http://doi.org/s8n))\n", "\n", "Therefore, the resonance frequency, quality factor and coupling are all functions of current, frustrating linear approximations." ] }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Distortions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let $\\vec{p}$ be a discretization of $p_k(t)$. Then, the effect of classical electronics (e.g.: a high-$Q$ resonator) can be modeled as an *operator* $g : \\vec{p} \\mapsto \\vec{q}$.\n", "\n", "
\n", "![](files/figures/discrete_conv_op.svg)\n", "
Image courtesy of Ian Hincks.
\n", "
" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Since $\\vec{\\nabla}_\\vec{p}\\Phi(g[\\vec{p}]) = \\vec{\\nabla}_\\vec{q}\\Phi(\\vec{q}) \\cdot J_g(\\vec{p})$, if we can find the Jacobian of a distortion operator, we can include it into GRAPE.\n", "\n", "- Control search is thus for un-distorted pulse.\n", "- Can get higher fidelity controls by including distortion.\n", "- Allows driving at higher powers\u2014 don't need to limit to linear regime." ] }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Simulation of Non-Linear Control Systems" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Including the nonlinear inductance and resistance gives us a system of differential equations\n", "$$\\begin{align}\n", " \\frac{\\dd}{\\dd t} \\left[\\begin{matrix}\n", " I_L \\\\ V_{C_m} \\\\ V_{C_t}\n", " \\end{matrix}\\right] & = \\matr{A}(I_L, I_R) \\left[\\begin{matrix}\n", " I_L \\\\ V_{C_m} \\\\ V_{C_t}\n", " \\end{matrix}\\right] + \\vec{y} V_s(t),\n", "\\end{align}$$\n", "where $\\matr{A}$ and $\\vec{y}$ describe the circuit and driving term, respectively.\n", "\n", "This system is nonlinear since $\\matr{A} = \\matr{A}(I_L, I_R)$.\n", "\n", "**Note**: rescaling the driving term does not just rescale the output current." ] }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Simulation of Non-Linear Control Systems" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To simulate the distortion introduced by this system, we let $g : \\vec{V}_s \\mapsto \\vec{I}_L$ be the solution to the DEs for a given driving term.\n", "\n", "The Jacobian can then be approximated perturbatively,\n", "$$\n", " \\frac{\\partial g_{m,l}}{\\partial p_{n,k}} \\approx \\left[\\frac{g(\\vec{p} + \\epsilon \\vec{e}_{n,k}) - g(\\vec{p})}{\\epsilon}\\right].\n", "$$\n", "\n", "Taking a small $\\epsilon$ allows us to find a good direction for the conjugate gradient step." ] }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Example: Finding a $\\pi/2)_x$ Gate" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For a strongly non-linear resonator, we find the following 99.1% fidelity $\\pi/2)_x$ gate using GRAPE. The un-distorted pulse is shown in red." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\n", "\n", "
" ] }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Robustness to Distributions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We want to relax that $H_0$ and $\\{H_k\\}$ be known with certainty.\n", "\n", "Let $\\overline{\\Phi} = \\expect_{H_0, \\{H_k\\}}[\\Phi]$\n", "\n", "- $H_0$: internal\n", "- $\\{H_k\\}$: control\n", "\n", "By linearity of $\\expect$: $$\n", " \\vec{\\nabla}_\\vec{p} \\overline{\\Phi}(g[\\vec{p}]) = \\expect_{H_0, \\{H_k\\}} [\\vec{\\nabla}_{\\vec{q}} \\Phi(\\vec{q})] \\cdot J_g(\\vec{p})\n", "$$\n", "\n", "To optimize pulses for $\\overline{\\Phi}$, we represent $\\Pr(H_0, \\{H_k\\}) =: \\Pr(H_0(\\vec{x}), \\{H_k(\\vec{x})\\}) \\approx \\sum_i w_i \\delta(\\vec{x} - \\vec{x}_i)$.\n", "\n", " > Robust GRAPE thus can take an SMC approximation as input.\n", "\n", "(Borneman et al., JMR **225** 120-129 [10/cksg3v](http://doi.org/cksg3v))" ] }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Ringdown Optimization and Heuristic" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Decay dominated by $\\ee^{-t / t_c}$, even in non-linear case. Can add a timestep $p(t_{i+1}) = -g[\\vec{p}](t_i)/(\\ee^{\\delta t / t_c} - 1)$ to drive pulse ringdown to zero.\n", "\n", "- For non-linear, only an approximation.\n", "- Multiple steps or optimization can improve ringdown compensation.\n", "\n", "Using two timesteps for compensation:\n", "\n", "\n", "\n", "\n", "(Borneman and Cory, JMR **207** 2 220-233 [10/s8p](http://doi.org/s8p))" ] }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Putting it Together: Robust Pulses for Non-Linear Resonators" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Using these techniques, we can readily design a pulse that is robust over $\\pm 2\\text{ MHz}$ in the static field ($\\delta\\omega$) and several percent in the control fields $\\kappa$. \n", "
\n", "![](files/figures/example-robustness-plot.svg)\n", "
" ] }, { "cell_type": "heading", "level": 1, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Conclusions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Bayesian methods allow for including prior information in characterization\n", " - Simulation is a resource for inference\n", "- SMC allows for using Bayesian inference in a *practical* manner\n", " - Robust to common errors (finite sampling, approximations in simulation)\n", "- Can extend GRAPE with simulations of classical systems\n", " - Allows for control of even strongly non-linear devices\n", "- GRAPE can optimize over SMC-like distributions for practical control." ] }, { "cell_type": "heading", "level": 1, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "References" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "Full reference information is available on [Zotero](https://www.zotero.org/cgranade/items/collectionKey/2NQVPRK9)." ] }, { "cell_type": "code", "collapsed": false, "input": [ "iframe('https://www.zotero.org/cgranade/items/collectionKey/VSWSNCCA')" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "" ], "metadata": {}, "output_type": "pyout", "prompt_number": 13, "text": [ "" ] } ], "prompt_number": 13 }, { "cell_type": "heading", "level": 1, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Thank You" ] } ], "metadata": {} } ] }