LoginSignup
7
3

More than 1 year has passed since last update.

PennyLaneで量子機械学習

Last updated at Posted at 2021-03-31

量子機械学習

何らかの意味で量子計算を取り入れた機械学習を 量子機械学習 といいます。
一口に量子機械学習といっても「量子計算をどこに取り入れたか」で様々あります。

  • 古典機械学習において、計算が重い部分を量子アルゴリズムで高速計算する (計算結果は古典と同じ)
  • 古典機械学習において、カーネルを、量子状態という高次の空間を用いて定義する(計算結果は古典と異なるが、高速性は不明)
  • ブラックボックスモデルをニューラルネットワークからパラメータ付き量子回路へ変更して機械学習を行う(計算結果は古典と異なるが、高速性は不明)
  • ブラックボックスであるニューラルネットワークを2つ用意して、固定の量子回路を挟み込み、ニューラルネットワーク部分だけ学習させる(計算結果は古典と異なるが、高速性は不明)

などなど。
量子機械学習は古典機械学習と量子計算の両方を使うので、プログラミングが結構大変です。
ライブラリが使いたいですよね。
そんなあなたにPennyLane!

PennyLaneとは?

PennyLaneは、光量子コンピューターの大家であるXANADU社が開発しているオープンソースのpython SDKです。
古典機械学習ユーザーでも使えるように、Tensor flow およびその抽象化であるKerasをベースにしています。
PennyLaneは連続量量子計算(光量子)でも離散量量子計算(超電導やイオントラップ)でも扱えますし、
実行させるバックエンドとしてもIBMQやIonQなど一通り指定できるようです。
すごいですね。
連続量のほうはStrawberry field, 離散量のほうはCirqが裏で動いているぽいです。

チュートリアルは、日本語版はないですが、アプリケーション毎に最先端のものが公開されています。
(https://pennylane.ai)

PennyLaneでの量子機械学習

ニューラルネットワーク部分だけ学習させるタイプのデモがあります。
https://pennylane.ai/qml/demos/tutorial_qnn_module_tf.html

ここでは分類問題ですが、改造すれば色々出来ると思います。
ちなみに量子回路学習とは違って、全量子ビットを測定し、それを後段の古典NNで処理して値を1つ取り出す形になっていますね。

量子回路学習的なやつ(ブラックボックスモデルとして量子回路を使う)は、以下のようです。
https://pennylane.ai/qml/demos/quantum_neural_net.html
連続量量子の変分回路で書かれてますが、たぶん離散量の量子に書き換えるのはそれほど大変ではないです。

PennyLaneのすごいところとして、まだqiskitも対応していない「量子勾配による勾配降下」が既に入っています。

勾配計算の方法も色々あるようです。

  • parameter shift rule に基づくもの。パラメータの数値微分に似た方法。
  • back propagation に類似の方法を使うもの。

parameter shift ruleのほうは、コスト関数の計算をパラメータ数程度繰り返す必要があることがネックです。
back propagation類似のほうは、コスト関数の計算は1度だけでよいですが、”中間状態を測定”する必要があるので、実機では使えません。
(中間状態を測定すると量子状態は破壊されて、計算結果が変わるため)

PennyLaneの難点?

  • そもそも量子計算が最低限わかってないと無理。(基礎があまり説明ない)
  • 連続量量子と離散量量子がデモによって混ざっていて、もどかしい。
  • 全部英語。
  • 日本では、マニアック。(そもそも"PennyLane"タグでのQiita記事は、本記事が初めてである)

まぁ、qiskitのtutorialが読めるレベルであれば、全く問題なく使えます。

まとめ

量子機械学習がやりたいKerasユーザーはPennyLaneがいいかも。
(Tensor flow Quantum でも良いと思うけど)

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3