Quantum Bayesian Networks

February 26, 2019

Seth Lloyd invented PennyLane. It’s a well known fact.

Filed under: Uncategorized — rrtucci @ 6:01 pm

I forgot to mention that Seth Lloyd invented PennyLane. The other people at Xanadu are all identical worker ants faithfully following his brilliant instructions on what to do, according to a Xanadu press release

Excerpt from press release:

“Deep learning libraries like TensorFlow and PyTorch opened up artificial intelligence to the world by providing an interface to powerful GPU hardware. With PennyLane, Xanadu is now doing the same for machine learning on quantum hardware,” said Seth Lloyd, Xanadu’s chief scientific advisor, MIT professor and a founding figure in both quantum computing and quantum machine learning. “We’re going to see an explosion of ideas, now that everyone can train quantum computers like they would train deep neural networks.”

Xanadu is a company whose “chief scientific advisor, MIT professor and a founding figure in both quantum computing and quantum machine learning”, Prof. Seth Lloyd, has promised to build a “continuous values” quantum computer device, which is a device invented by Seth Lloyd, according to him. This would be a quantum computer that is more analog and more classical than DWave’s. DWave, a qc company which was founded in 1999, 20 years ago, has never been able to provide error correction for its qc, so many experts believe that Xanadu’s Lloydian qc will be very difficult to error correct too. But if anyone can solve this prickly conundrum, it’s Seth Lloyd, who, according to him, is the original inventor of DWave’s device too.

Addendum:

Wow wee! Seth Lloyd’s invention, an optical computer that runs Tensorflow, is really taking off at MIT. I just came across this news report on a company called LightMatter, funded by some heavyweights like Google Ventures, that proposes to do just that.

https://www.cnbc.com/2019/02/25/alphabet-gv-invests-in-lightmatter-optical-ai-chip-startup.html

Excerpts:

Lightmatter just picked up its first backing from a corporate investor: GV, a venture arm of Google parent company Alphabet.

In 2014, Nick Harris and Darius Bunandar were trying to combine optical technology with quantum computing at the Massachusetts Institute of Technology, where they were doing Ph.D. work in the same research group.

But in 2015, Harris and Bunandar began looking at fields beyond quantum computing, including AI. “Our feeling is that there are a huge number of challenges that remain to be solved” for their quantum approach, Harris said.

“There is a lot of effort that goes into making this kind of device plug and play and making it look a lot like the experience of an Nvidia GPU,” Harris said. The team wants to ensure the chips work with popular AI software such as the Google-backed open-source project TensorFlow.

February 24, 2019

Welcome to the Era of TensorFlow and PyTorch Enabled Quantum Computer Simulators

Filed under: Uncategorized — rrtucci @ 8:40 pm

In my previous blog post, I unveiled a new Jupyter notebook explaining how to use Qubiter (a quantum computing simulator managed by me) to do hybrid quantum-classical (HQC) quantum computing. In that prior blog post, I admitted that even though that meant that Qubiter could now do a naive type of HQC, Qubiter could not yet do fully fledged HQC, which I defined as (1) using distributed computing/back propagation driven by TensorFlow or PyTorch (2) using as backend a physical qc device such as those which are already accessible via the cloud, thanks to IBM and Rigetti. I pointed out that the wonderful software PennyLane by Xanadu can now do (1) and (2).

This blog post is to unveil yet another Jupyter notebook, this time showing how to use Qubiter to translate potentially any quantum circuit written in Qubiter’s language to the language of PennyLane, call it Pennylanese. This means Qubiter can now act as a front end to PennyLane, PennyLane can act as an intermediary link which is TensorFlow and PyTorch enabled, and Rigetti’s or IBM’s qc hardware can act as the backend.

So, in effect, Qubiter can now do (1) and (2). Here is the notebook

https://github.com/artiste-qb-net/qubiter/blob/master/qubiter/jupyter_notebooks/Translating_from_Qubiter_to_Xanadu_PennyLane.ipynb

I, Nostradamucci, foresee that PennyLane will continue to improve and be adopted by many other qc simulators besides Qubiter. Those other qc simulators will be modified by their authors so that they too can act as frontends to PennyLane. Why not do it? It took me just a few days to write the Qubiter2PennyLane translator. You can easily do the same for your qc simulator!

I, Nostradamucci, also foresee that many competitors to PennyLane will crop up in the next year. It would be very naive to expect that everyone will adopt PennyLane as their method of achieving (1) and (2).

In particular, Google will want to write their own (1)(2) tool. Just like Google didn’t adopt someone else’s quantum simulator, they started Cirq instead, it would be naive to expect that they would adopt PennyLane as their (1) (2) tool, especially since TensorFlow is their prized, scepter of power. Just like Google rarely adopts someone else’s app for Android, they write their own, Google rarely adopts someone else’s app for TensorFlow (and Cirq, and OpenFermion), they write their own.

And of course, the Chinese (and the independence-loving French, Vive La France!) prefer to use software that is not under the control of American monopolies.

I see PennyLane as a brilliant but temporary solution that allows Qubiter to achieve (1) and (2) right now, today. But if Google provides a (1)(2) tool in the future, I will certainly modify Qubiter to support Google’s tool too.

In short, welcome to the era of TensorFlow and PyTorch Enabled Quantum Computer Simulators.

February 21, 2019

Qubiter can now do Hybrid Quantum-Classical Computation, kind of

Filed under: Uncategorized — rrtucci @ 11:33 am

Habemus papam…kind of. So here is the scoop. Qubiter can now do Hybrid Quantum-Classical Computation…kind of. It is not yet of the most general kind, but we are getting there. “The journey of a thousand miles begins with one step.” (a saying attributed to Chinese philosopher Laozi, 600 BC)

The most general, what the Brits would call The Full Monty, would be if Qubiter could
(1) use distributed computing and back-propagation supplied by TensorFlow, PyTorch, and

(2) run a hybrid quantum-classical simulation on a physical hardware backend such as those already available to the public via the cloud, thanks to the companies IBM and Rigetti.

At this point, Qubiter cannot do either (1) or (2). Instead of (1), it currently does undistributed computing executed by the Python function scipy.optimize.minimize. Instead of (2), it uses Qubiter’s own built-in simulator as a backend.

Amazingly, the wonderful open-source software Pennylane by Xanadu already does (1) and (2). So far, they are the only ones that have accomplished this amazing feat. None of the big 3: Google Cirq, IBM Qiskit, and Rigetti Pyquil can do (1) yet either so we are in good company. I am sure that eventually, the big 3 will succeed in coaxing their own software stacks to do (1) and (2) too. But probably not for a while because large companies often suffer from infighting between too many generals, so they tend to move more slowly than small ones. They also almost always shamelessly copy the good ideas of the smaller companies.

I too want to eventually add features (1) and (2) to Qubiter, but, for today, I am happy with what I already have. Here is a jupyter notebook explaining in more detail what Qubiter can do currently in the area of hybrid-quantum classical computation

https://github.com/artiste-qb-net/qubiter/blob/master/qubiter/jupyter_notebooks/MeanHamilMinimizer_native_scipy.ipynb

February 15, 2019

Derivative of matrix exponential wrt each element of Matrix

Filed under: Uncategorized — rrtucci @ 1:26 am

In the quantum neural net field, in order to do backpropagation, one often wishes to take the derivative of a unitary matrix with respect to a parameter it depends on. The wonderful software PennyLane by Xanadu evaluates such derivatives using a simple formula which gives an exact answer, albeit only in special cases. Here I will discuss a simple formula that is fully general, albeit only an approximation, although reputedly a very good approximation, probably due to its symmetric nature and the smoothness of exponential functions. The method is a simple symmetric finite difference approximation.

In a StackExchange question with exactly the same title as this post, somebody called Doug suggested what he calls Higham’s “Complex Step Approximation”, to wit:

If $A$ is a Real matrix and $E_{rs}$ is the matrix which is 1 at position $r,s$ and zero elsewhere,

$\frac{d}{dA_{rs}}e^{A} \approx \frac{ e^{A + ihE_{rs}} - e^{A-ihE_{rs}} }{2ih} = \frac{{\rm Im}(e^{A + ihE_{rs}})}{h}$

But what if $A$ is a Hermitian matrix and we want the derivative of $exp(iA)$? Here is a simple adaptation of Higham’s formula to that case.

Let $E^\pm_{rs} = E_{rs} \pm E_{sr}$. Note that $(E^\pm_{rs})^\dagger = \pm E^\pm_{rs}$.

Define a matrix $M(A)$ by

$M(A) = \left[ \begin{array}{cc} 0 &-e^{-iA}\\ e^{iA} & 0 \end{array}\right]$

Then

$M(A+ih) = \left[ \begin{array}{cc} 0 &-e^{-iA+h}\\ e^{iA-h} & 0 \end{array}\right]$

so

$M(A+ih)^\dagger = \left[ \begin{array}{cc} 0 &e^{-iA-h}\\ -e^{iA+h} & 0 \end{array}\right] =-M(A-ih)$

From this, one learns the following simple recipe: the effect of the dagger on $M(A)$ is to put a minus sign in front of the $M$ and to take the Hermitian of the argument too.

Therefore,

$\frac{d}{d{\rm Re\;}A_{rs}}M(A) \approx \frac{ M(A + ihE^+_{rs}) - M(A-ihE^+_{rs}) }{2ih}= \frac{{\rm Re\;}[M(A + ihE^+_{rs})]}{ih}$

and

$\frac{d}{d{\rm Im\;}A_{rs}}M(A) \approx \frac{ M(A + hE^-_{rs}) - M(A-hE^-_{rs}) }{2h}= \frac{{\rm Re\;}[M(A + hE^-_{rs})]}{h}$.

Since

$\frac{d}{dx}M(A) = \left[ \begin{array}{cc} 0 &-\frac{d}{dx}e^{-iA}\\ \frac{d}{dx}e^{iA} & 0 \end{array}\right]$,

it follows that

$\frac{d}{dx}e^{iA} = \left[\frac{d}{dx}M(A)\right]_{10}$

for $x = {\rm Re\;} A_{rs}, {\rm Im\;} A_{rs}$

Note:
When $A$ is Hermitian, $A_{rs}$ and $A_{sr} = A^*_{rs}$ are complex conjugates so they are not independent, but the real and imaginary parts of $A_{rs}$ are independent, so one can treat $A_{rs}$ and $A^*_{rs}$ as independent and do a change of variables from $(A_{rs}, A^*_{rs})$ to $({\rm Re}A_{rs}, {\rm Im}A_{rs})$.

For discussion about this topic, in the context of quantum neural networks, see the following thread of the Pennylane discourse website
https://discuss.pennylane.ai/t/when-does-autograd-need-help/82

February 9, 2019

Extra, extra, read all about it! Next Toronto Quantum Computing Meetup event just announced. The speaker will be physicist and tech start-up entrepreneur Wojtek Burko

Filed under: Uncategorized — rrtucci @ 6:13 pm

The Toronto Quantum Computing Meetup is the second largest meetup in the world dedicated to quantum computing, so we claim the silver medal of Quantum Meetup Supremacy, at least for now. (currently we have 1565 Supremos as members. The biggest club is in London with a distinguished 1756 Brexiters members. We used to be the biggest, but, oh well, sic transit gloria mundi).

Those poor Brexiters. We don’t envy them one bit, or one qubit. They are in a though spot. We are so worried for them that we will soon be shipping to them a few “brexit boxes”, just in case. Just like in quantum physics, their predicament can be illustrated very well using cats. The perilous Brexit cat jump

But I digress. The main purpose of this blog post is to cordially invite you to our next meeting on Thursday, February 21, 2019. At the usual outstanding venue, Rotman School, Univ. of Toronto. Our speaker is quite impressive. I will just quote the writeup:

We are delighted to have physicist and tech start-up entrepreneur Wojtek Burko to talk about the challenges to build a venture based on the current state of the art in quantum computing.

Wojtek not only co-funded Beit.tech and succeeded in making it cash-flow positive in less than a year, but also co-launched the Bitspiration Booster VC practice, which invests in and incubates deep tech start-ups.

Before that he served as Engineering Director at Google until 2014, Chief Technology Officer at Allegro until 2015, entrepreneur, mentor, advisor, angel investor; member of the Board in several start-ups incl. EGZOTech, JAM Vehicles, Airly; chairman of the Board at ASPIRE – representing the multinational corporate scene in Poland.

Microsoft reacquires ProjectQ

Filed under: Uncategorized — rrtucci @ 9:03 am

Huawei is a major Chinese company that produces smart phones, telecommunications equipment used in 5G, etc. This company has been much in the news recently because the founder’s daughter, Meng Wanzhou, who is also the CFO of the company, was arrested at the airport in Vancouver, Canada, at the request of the US government.

As far as the subject of quantum computing is concerned, on Oct 12, 2018, Huawei promised in a conference and accompanying press release, that it would soon provide a quantum computing cloud service named HiQ. As far as I know, HiQ hasn’t been opened yet to the general public. I have searched in vain for it on the internet. According to the press release, “Huawei also showcased its quantum programming framework for the first time, which is compatible with the ProjectQ.” As you can see by the two linkedin screenshots below (slightly cropped to omit my personal info), Huawei was employing, at the time of the press release, the two authors of projectQ, Haner and Steiger, whose thesis advisor at ETH Zurich was Matthias Troyer, a Microsoft star employee.

Seems like Haner and Steiger duped Huawei, they only stayed with Huawei for 3 months, while they were secretly looking for a job at Microsoft. They were hired in the last 1-2 months as Senior Quantum Computing Researchers by Microsoft. So ProjectQ was owned by Huawei for just 3 months and is now back in the hands of the evil empire Microsoft.

Huawei and China must feel “slightly” disrespected by Microsoft for hiring those two. What if the Chinese government bans Azure from China for this slight and for the arrest of Huawei’s founder’s daughter? And what about ProjectQ versus Q#? Does this mean, if we read the tea leaves, that ProjectQ/Troyer is back again in the ascendancy at Microsoft and Q#/Krysta is in the decline? It’s like a power struggle inside the Third Reich of Microsoft

February 8, 2019

Quantum Complexity Theory for Fish

Filed under: Uncategorized — rrtucci @ 6:29 am

(This graphic was inspired by a slide in a talk by John Preskill. His version makes no allusion to sea or fish. It just uses Venn diagrams)

February 4, 2019

Translating Between Quantum Programming Languages, The Importance of Being Qubiter

Filed under: Uncategorized — rrtucci @ 7:05 am

The United Nations has 6 official languages: English, French, Spanish, Chinese, Russian and Arabic. I think the more languages you learn, the smarter you become. Don’t you?

Qubiter, a computer program/quantum programming language that I wrote, can translate from itself to the 3 most popular quantum languages that currently have a hardware backend: IBM Qiskit, Rigetti Pyquil, and Google Cirq. Here is a Jupyter notebook illustrating this feature of Qubiter.

https://github.com/artiste-qb-net/qubiter/blob/master/qubiter/jupyter_notebooks/translating-qubiter-english-file-to-AnyQasm.ipynb

I’ve recently noticed that others, both in Academia and in Industry, are attempting to write their own translators between quantum languages, so there seems to be a lot of interest out there for this sort of thing. Many quantum computerists are interested in running the same quantum program side by side on the 3 hardware devices just mentioned (and others soon to come) to compare performance and final results, a worthy scientific goal.

I want to argue briefly here that Qubiter does it better 😎

Qubiter has ALL the features that each of the big 3 quantum programming languages has and then some. This makes it the most expressive tool in town. You get a more succinct, efficient translation if you using a more expressive computer language to express a command in a less expressive one. For example, if you

use more expressive to express less expressive,
less expressive -> more expressive
you might find
10 lines of code -> 10 lines of code,

whereas if you go in the opposite direction,

use less expressive to express more expressive,
more expressive -> less expressive
you might find
10 lines of code -> 30 lines of code,

because you are “trying to reinvent the wheel” in the second case.

So if Qubiter is to maintain its edge as a translator of quantum programming languages, it must always try to surpass all the other languages in expressiveness. This is what I have done so far and will try to do in the future. (For example, I recently added to Qubiter, placeholders and loops at the English file level. And take a look at the feature comparison table that I gave in a previous, recent blog post).

February 3, 2019

My Mini-Talk in absentia for FOSDEM 2019 Feb 2-3 (this weekend)

Filed under: Uncategorized — rrtucci @ 1:19 am

As I mentioned in the previous blog post, Henning Dekant, CEO of our startup Artiste-qb.net, will be speaking for our company at FOSDEM 2019 this weekend. I can’t be there so I prepared a mini-talk to be delivered long distance, via the old fashioned internet, as opposed to that new fangled technique that some are calling tête à tête. Henning is speaking mainly about Quantum Fog and Bayesian networks so I made my mini talk about a different topic; it’s a progress report on Qubiter, about the fact that Qubiter now supports Placeholders and loops at the English file level. Here is my mini-talk:

http://www.ar-tiste.com/jan2019QubiterPlaceholderAndLoops.pdf

its front page:

Blog at WordPress.com.