@yuichirominato 2018.12.09更新 2425views

【機械学習】量子コンピュータで量子機械学習

VQE ディープラーニング 機械学習 深層学習 量子アニーリング 量子ゲート 量子コンピュータ

はじめに

量子コンピュータで期待されているアプリケーションは多数ありますが、その中でも、機械学習は様々な産業の中で効率化を果たしてくれます。その効率性をより高めるために、アルゴリズムや計算資源が日々改善されています。既存の計算機における機械学習も十分に性能のいいものですが、量子コンピュータでもこれまでの計算機とは異なる原理での量子機械学習が期待されています。それらのコンセプトや背景をなるべく確認しながら量子機械学習の流れを把握したいと思います。なるべくたくさん紹介します。

方式について

量子コンピュータか、量子アニーラかは問いません。部分的な量子効果を使うのか、そもそも量子計算で行うのかどうかというのは大事なことではありますが、使えるものは使って選択肢を狭めないということで色々調べます。今後は細かい実装をどんどん進めてみます。また、タイトルの後ろにかっこで書いてあるのは方式の違いで、量子アニーリング型と量子ゲート型の計算で分けてあります。

量子アニーリングについては下記参照
http://blog.mdrft.com/post/6

量子ゲートについては下記参照
http://blog.mdrft.com/post/620

量子ボルツマンマシン(量子アニーリング)

量子ボルツマンマシンはD-Waveなどの量子アニーラを使ってサンプリングを行い学習を行うモデルでもっとも有名なのがRBM(制限付きボルツマンマシン)です。D-Waveマシンのようにイジングモデルを扱うマシンは01の二値で扱う必要がある、ネットワーク構成がundirected graphであるなどの理由で、RBMはD-Waveのような量子アニーリングと相性がいいです。

初期の応用は、シミュレーションでD-WaveマシンにRBMを搭載できるかどうかというYoshua Bengio先生が行なった2013年の論文から始まります。

On the Challenges of Physical Implementations of RBMs
Vincent Dumoulin, Ian J. Goodfellow, Aaron Courville, Yoshua Bengio(Submitted on 18 Dec 2013 (v1), last revised 24 Oct 2014 (this version, v2))
https://arxiv.org/abs/1312.5258

この論文の中では、実際にはシミュレーションで量子アニーリングマシンを使ってイジングにRBMを実装できるかどうかの評価が行われました。実際には接続数をきちんと確保すればある程度のノイズがあっても学習はできるという結論において実装は可能であるという結論に達しました。

その後、2015年にロッキードマーチン社のSteven Adachi氏による評価によって、ハミルトニアン的にどのように具体的に量子アニーリングマシンがRBMに使えるのかという評価が進められました。

Application of Quantum Annealing to Training of Deep Neural Networks
https://arxiv.org/abs/1510.06356

こちらでは実際にD-Waveを使ってどのようにRBMをつかってMNISTの学習や推論を行うかどうかという検討が行われました。それにより、実際にD-Waveのマシンをつかってボルツマンマシンが実行できるということがわかりました。

実際の実行や学習には量子アニーリングの機能である最小値問題を解くという性能以外のサンプリングを使ったボルツマン分布を利用するというボルツマンサンプリングが行われ、その後のD-Waveの利用用途の拡大に一躍買いました。

強化学習における試みなども進んでいます。
Reinforcement Learning Using Quantum Boltzmann Machines
https://arxiv.org/pdf/1612.05695.pdf

やり方は別のブログに書いてあるので参照いただければと思います。

D-Waveの量子ボルツマンマシンの逆温度パラメータ最適化でPFNのOptunaつかってみた
http://blog.mdrft.com/post/717

ボルツマンマシンは計算量が多いため、現在のNNモデルではあまり利用されることがありませんが、アナログでそれを実行できるのは研究として面白いと思います。現在でもボルツマンマシンの研究開発は進んでいると思います。

Variational Quantum Eigensolver(量子ゲート)

Variational Quantum Eigensolver、略してVQEは現在の量子コンピュータにおける重要な位置を占めています。現在の開発中の中規模エラー付きマシン(NISQ)では、従来考えられていた重要な量子計算用のアルゴリズムが実質的に実行が難しく、実質的に量子古典ハイブリッドで短い回路での実行+古典計算機での補正もしくは計算を経て全体で解を求める必要があります。その際に、重要になるのが従来考えられた位相推定アルゴリズム(PEA)の代替アルゴリズムです。PEAは重ね合わせ、コントロールユニタリ変換、逆量子フーリエ変換を組み合わせることで、あるハミルトニアンの固有値の位相を求めるという機能を実現しますが、実際に出来上がってきた量子コンピュータでは、2量子ビットゲートの計算のエラーが多かったり、位相回転の精度が厳しかったりと実行が困難であることがわかってきました。

ハミルトニアンの固有値を求めるのはとても基本的な機能なのでそれができないと結構困ってしまいますが、その代替としてVQEが2013年に開発されました。

A variational eigenvalue solver on a quantum processor
https://arxiv.org/abs/1304.3061

当時はフォトニクス回路を使って量子計算と古典計算を繰り返しおこなってハミルトニアンの固有値を求めるという試みでした。その後超電導チップでも同様のことが行われて、現在の量子ゲートマシンでの主要アルゴリズムとなっています。このvariational methodも使いやすいのでVQEに限らず類似アルゴリズムが多数出ています。

仕組みは非常にシンプルです。量子変分原理と呼ばれる原理があり、測定を通じて得られるハミルトニアンの下限値が決まっています。そのため、初期状態の波動関数を変化させて手当たり次第に測定をすれば固有値を下回ることがありませんので、この初期状態の波動関数・状態ベクトル(固有ベクトルに相当)をパラメータによってたくさん生成し、ハミルトニアンの最小値を探していくというものです。

Variational Methodはとても都合がいいので様々な場面で利用できますが、繰り返し計算が必要なので実質的に収束に時間がかかったり、最適化するための初期状態の波動関数の調整や途中のパラメータの最適化には古典計算を利用するなど、量子古典ハイブリッド計算の過渡期の最適化作業が膨大にあるので、何かしたい人向けにはネタには困らないと思います。

参考:量子コンピュータゲートモデルの量子古典ハイブリッド計算のVariational Quantum Eigensolverの古典パラメータ最適化にPFNのOptuna使ってみた。
http://blog.mdrft.com/post/708

maxcut+ベイズ最適化(量子ゲート)

上記のVQEと下で紹介するQAOAを組み合わせた上、古典最適化にベイズ最適化を使ったのがrigettiが量子ゲートの実機でおこなった機械学習の例です。実際には機械学習部分はmax-cut問題なのでとても基礎的な話ですが、ゲートマシンでの機械学習の実装という点でとても注目を浴びました。

Unsupervised Machine Learning on a Hybrid Quantum Computer
https://arxiv.org/pdf/1712.05771.pdf

参考:量子ゲートで組合せ最適化問題を解くQAOAの実装
http://blog.mdrft.com/post/229

また、RigettiのGroveという量子ゲートマシン向けのライブラリがあるのですが、そちらでも詳しく説明されています。
https://grove-docs.readthedocs.io/en/latest/qaoa.html

実際に大事なところは、使用されているアルゴリズムは、QAOAという量子アニーリングを量子ゲートで実行する似たようなアルゴリズムがあり、それにより簡単なmaxcutの組合せ最適化問題を解いています。

組合せ最適化問題を解く際には、実質的にハミルトニアンの最小値を求めますので、QAOAを使って最小値を求めますが、パラメータを調整することで、最小値に近づけることができます。このパラメータ調整は一度量子計算を終了したら古典計算機で集計をして次のパラメータを割り振りますが、このパラメータの推定にベイズ最適化を使っています。

ベイズ最適化を使って最適化が早くなるのか、それともランダムの方が結局早いのかどうかというのを論文の中でも書いてあります。

QAOAではないですが、同じようなパラメータの最適化をベイズ最適化に近いアルゴリズムを使って最適化してみたので参考にみてみてください。基本的にはこちらはシミュレータですが、Rigettiはこれと似たようなことを実機でおこなっています。

参考:量子コンピュータゲートモデルの量子古典ハイブリッド計算のVariational Quantum Eigensolverの古典パラメータ最適化にPFNのOptuna使ってみた。
http://blog.mdrft.com/post/708

Qboost(量子アニーリング)

2017年NASAが衛星写真の二値分類に利用したアルゴリズムで元々はGoogleとD-Waveが2009年に開発したアルゴリズムをリバイバルしています。

Deploying a quantum annealing processor to detect tree cover in aerial imagery of California
https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0172505

NIPS 2009 Demonstration: Binary Classification using
Hardware Implementation of Quantum Annealing
https://static.googleusercontent.com/media/www.google.com/ja//googleblogs/pdfs/nips_demoreport_120709_research.pdf

こちらは基本的にはboostingという弱学習機を組み合わせて1つの学習機を作るという方式で、量子アニーリングの組合せ最適化問題の機能をうまく使って衛星写真からカリフォルニアの地表の緑地を識別するという試みを行なっています。

単純に多数決で済ませてしまうと面白くないので、相互作用項を利用した二次のハミルトニアンに落としているあたりが量子アニーリングを活用したアルゴリズムぽくてとても面白いです。2009年の際のマシンではマシンの制約で理想的な形式が取れませんでしたが、2017年の最新のD-Waveマシンでようやく理想的な計算手法が採用され、実際に分類問題で特徴量の数を調整しながらの分類ができてますので、大きな進歩ではないでしょうか。

応用範囲もとても広いと思います。

組合せ最適化問題(量子アニーリング)

単純に量子アニーリングはもともと組合せ最適化問題の最小値問題を解くような用途でスタートしました。量子アニーリングではシミュレーテッドアニーリングのような温度で探索を行って最小値問題を解く代わりに、横磁場を活用してポテンシャルエネルギーの形状を変えて計算を行います。

最初に横磁場を採用して、だんだんと横磁場を弱めて元のハミルトニアンに交代しています。最終的には量子断熱計算で横磁場基底状態からハミルトニアンの基底状態に向かいます。

実際にはD-Waveなどのカナダのベンチャー企業が開発したように実機で実用化が進んでおり、イジングモデルに問題を落としこんで組合せ最適化問題を解きます。イジングモデルに問題を落とし込むところもなかなかあれですが、実際には下記のような例題がありますので、その例題を参照してイジングモデルを作ることができます。

NP問題のイジング
http://blog.mdrft.com/post/42

実例はとてもたくさんあり、最小基底状態に持っていくことで社会問題などを解くことができます。その中でも最も有名なのがドイツのフォルクスワーゲン社から出された社会問題を小問題に分割してD-Waveマシンで解いた交通最適化の問題かと思います。

参考:D-WaveでVW社の交通最適化アプリケーションの実装を解く
http://blog.mdrft.com/post/176

量子アニーリングを利用した最適化事例はたくさん出てきます。

参考:量子アニーリング、イジングモデルとフレームワーク
http://blog.mdrft.com/post/6

Matrix Factorization(量子アニーリング)

行列の次元削減はとても大事な要素で、Matrix Factorization(以下MF)は実用的に大事です。リコメンドシステムなどの巨大なユーザーとアイテムの行列を次元削減を行う際には、通常の次元削減の効率が落ちるので、MFが利用されます。

実際にはMFを利用した巨大な行列の分解ができますが、潜在変数を利用して、行うMFでD-Waveは二値の行列の分解を行うことができます。

Nonnegative/binary matrix factorization with a D-Wave quantum annealer
https://arxiv.org/abs/1704.01605

D-Waveが扱えるのはQUBOの0,1もしくはイジングの-1,1です。ここでは、nonnegative/binaryをあつかって、QUBOで01のMFをおこなっています。MFの方法は通常のMFと同じで、n*mの行列Vをkの潜在変数を使って、n*kの行列Wとk*mの行列Hに分解をします。ハミルトニアンはシンプルです。

このように大きな行列の次元削減を量子アニーラによって実行しています。次元削減は種類がありますが、特定の問題にはMFが効果的だったりしますので、とても有用な研究ではないでしょうか。

Quantum Approximate Optimization Algorithm(量子ゲート)

QAOAアルゴリズムは組合せ最適化問題を解くためのアルゴリズムです。ハミルトニアンというコスト関数を作り、それをアルゴリズムに入れ込んで計算を行います。

計算原理は量子断熱計算に近く、初期状態をすべて|+>のsuperpositionからスタートし、量子断熱計算のステップ数を活用して離散的にシミュレーションを行います。最終的に求めるハミルトニアンを最終状態として、|+>状態から断続的に入れ替えを行います。

ステップ数と入れ替える2つのハミルトニアンについて、ステップ数*2の数だけ最適すべきパラメータが出現するのが特徴で、このパラメータに関しては古典のアルゴリズムで最適化する必要があります。

Rigettiが実機で実装をして話題となりました。

Unsupervised Machine Learning on a Hybrid Quantum Computer
https://arxiv.org/pdf/1712.05771.pdf

参考:量子ゲートで組合せ最適化問題を解くQAOAの実装
http://blog.mdrft.com/post/229

また、RigettiのGroveという量子ゲートマシン向けのライブラリがあるのですが、そちらでも詳しく説明されています。
https://grove-docs.readthedocs.io/en/latest/qaoa.html

上記max-cutのところで紹介しています。QAOAで取り扱えるのは主に古典計算のハミルトニアンでZZと呼ばれる古典スピンの計算が主体で、量子断熱計算を使いながら古典ハミルトニアンを解くためのシミュレーションをします。組合せ最適化問題などで威力を発揮します。

Quantum Neuron(量子ゲート)

量子アニーラは基本的に無向グラフで、Jij=Jjiのため、バックプロパゲーション、フォワードプロパゲーションの区別をつけるのが難しいです。デジタル式の量子ゲートでは、初期状態|0>からスタートし、ゲートを使って入力データを量子状態として作成し、フォワードプロパゲーションとしてデジタルで推論ができます。その回路を提案したのが、Quantum Neuronです。

基本的に量子ゲート回路は線形の回路ですので、一番問題になるのは、非線形の活性化関数をどのようにゲート回路で表現するかということです。

Quantum Neuron: an elementary building block for machine learning on quantum computers
https://arxiv.org/abs/1711.11240

こちらの記事がとても詳しいです。

量子コンピュータでニューラルネットワークな論文紹介 〜量子ニューロンの実装〜
https://qiita.com/piyo7/items/2104fe7084c95ed4b97b

まず、ニューロンの結合は回転角を使って、コントロールユニタリ変換で角度として足し合わせます。その後、回転角をうまく使って非線形な関数を導き出し活性化関数を実現します。

バックプロパゲーションについては課題だと思いますが、最適化アルゴリズムなどを利用することが想定されているようです。

このように、日々新しい試みが行われていますが、回転角をうまく使って数学的な変換でニューロン計算をするのはとても面白いです。

量子オートエンコーダ(量子ゲート)

次元圧縮のためのオートエンコーダを量子回路を使って実現しています。まだ詳しく読んでないので、今度別途まとめます。

Quantum autoencoders for efficient compression of quantum data
https://arxiv.org/pdf/1612.02806.pdf

QVECTOR(量子ゲート)

読みきれていません(><)が、誤り訂正に関するエラー補正のアルゴリズムです。

QVECTOR: an algorithm for device-tailored quantum error correction
https://arxiv.org/pdf/1711.02249.pdf

Google翻訳
オーバヘッドを削減することを目的とした量子誤り訂正の代替アプローチを提案します。これは既存の量子ハードウェアや無数の量子コンピューティングアーキテクチャに実装できます。この方法は、人工的または近似的なノイズモデルとは対照的に、デバイス内の実際のノイズに関して、符号化および回復回路の平均忠実度を最適化することを目的とする。量子変動誤差補正器(QVECTOR)アルゴリズムは、符号化およびエラー回復ゲートシーケンスを学習するために、デバイスの量子サンプリングに由来する処理されたデータに従って変動最適化されたパラメータを有する量子回路を使用する。

こちらも近々確認して実装をしてみたいと思います。

量子深層学習・RBM(量子ゲート)

Microsoft Researchによる量子回路を使ったRBMの実装ですが、論文が長くて難しいので読んでません。。。興味ある方は読んでみてください。

Quantum Deep Learning
https://arxiv.org/pdf/1412.3489.pdf

Quantum Machine Learning(論文)

こちらはQuantum Machine Learningに関するさまざまな記事をまとめたまとめ論文です。

Quantum Machine Learning
https://arxiv.org/pdf/1611.09347.pdf

今回は多すぎて紹介しきれないので時間がある方はこちらを読んでみてください。

Vanqver(量子ゲート)

Vanqverアルゴリズムについては、NISQマシンでのVariational Methodが活用されています。みんなよくいろいろ考えますね。。。QAOAに近い、量子断熱計算系ですが、ハミルトニアンの形式が違います。

VanQver: The Variational and Adiabatically Navigated Quantum Eigensolver
https://arxiv.org/abs/1810.11511

詳しい内容に関しては下記が詳しいです。

1Qbit の VanQver アルゴリズム
https://qiita.com/ymurata/items/e01ddc953f6d27628c64

具体的な方法として、従来のAQCのハミルトニアンに新しくnavigatorハミルトニアンを導入します。

特徴としては初期のHiniとHfinに加えてHnavを導入し、Hnavに角度のパラメータθを採用しています。初期状態では、A(0)=1,B(0)=0,C(0)=0として導入し、最終状態は、A(T)=0,B(T)=1,C(0)=0として、Hfinが残るように設定します。

アニーリング時間Tを設定し、Tの最適化も必要になります。これまでのQAOAでは、navigatorハミルトニアンがなく、途中経過のアニーリングスケジュールの設定もステップ数のみでしたので、シミュレーション経過を細かく設定できるという点で、パラメータは増えましたがやることは多くて楽しいのではないでしょうか。

これまでのゲートの研究者だけでなく、アニーリングに取りかかっていた方々も気軽にゲートに参加できる基盤でアニーリングの研究成果をゲートに応用するいい機会だと思いました。

Reverse Annealing(量子アニーリング)

こちらはノーベル賞のシミュレーション再現論文として有名です。

Observation of topological phenomena in a programmable lattice of 1,800 qubits
https://www.nature.com/articles/s41586-018-0410-x

Reverse Quantum Annealing for Local Renement of Solutions
https://www.dwavesys.com/sites/default/files/14-1018A-A_Reverse_Quantum_Annealing_for_Local_Refinement_of_Solutions.pdf

KT相転移という渦を導入した2次元の磁気相転移のシミュレーションをD-waveを使って行ったというものですが、渦を表現するために角度に古典スピンの上下を利用してやっています。モデルは特殊ですが、アルゴリズムはReverse Annealingという、通常は横磁場ありから横磁場なしへもっていきますが、横磁場なしから横磁場あり、最後に再度横磁場なしへ持っていく手法です。

https://www.dwavesys.com/sites/default/files/14-1018A-A_Reverse_Quantum_Annealing_for_Local_Refinement_of_Solutions.pdf

リバースアニーリングは通常ランダムから始まる古典スピンの状態を特定の状態からスタートし、横磁場を強くしていきます。そして再度横磁場を弱めることで、再度最終の古典状態を求めます。もしこれを繰り返す場合、強める横磁場の強さによって渡っていく局所解の範囲を決めることができ、連続で最適化を行いながら、求めたいより良い局所解をもとめることができます。

実際にD-Waveをつかってみると、やはり毎回最適解とはいかないという現実的な問題があります。このようなリバースアニーリングを利用して古典状態を連続してシミュレーションしていくのも面白い試みだと思います。

Anneal , Pause and Quench(量子アニーリング)

アニーリングスケジュールを操作して様々な量子状態をとりだそうという取り組みが主にD-Waveによって行われています。スピングラスシミュレータとして、アニーリングした途中の特定の熱平衡状態に落ち着かせて、最終的にquenchで状態を確定します。多分理想的にはquenchはなしでやりたいんでしょうけど、横磁場は0にして取り出さないといけないと思いますので、シミュレーションと違って、少し結果はずれそうです。

https://www.dwavesys.com/sites/default/files/14-1013A-A_WP_Performance_Advantage_in_Quantum_Boltzmann_Sampling.pdf

スピングラスシミュレータやボルツマンサンプリングに応用できそうです。下記の論文では、8*8*8の三次元イジングモデルをこのpause+quenchによってシミュレーションして再現できたということで、新しい量子アニーラの使い方を提案しています。

Phase transitions in a programmable quantum spin glass simulator
http://science.sciencemag.org/content/361/6398/162

最後に

どうしても量子アニーラの研究が先行しているのでそちらの紹介が増えてしまいましたが、汎用性の高い量子ゲートでは量子アニーリングの研究成果を吸収しながら急激に応用範囲を広げています。今後は量子ゲート分野でさらに多くの研究成果が発表されて多くの機械学習が発表されると思います。実用面では古典の深層学習にはまだ及ばないですが、着実に未来の技術が日々構築されている感があります。また、どうしても現場では量子アニーリングだ量子ゲートだの論争がありますが、これを見る限りは量子ゲートの固有値計算の最適化プロセスには量子アニーリングの知識や経験が大きく貢献していてアプリケーションとして量子アニーリングを応用する場合には、古典よりもできることが多いので、量子ゲートの方に統合されていく感じを受けました。以上です。

Recommended


CONTACT

info@mdrft.com

ブログトップへ Wikiへ移動

量子コンピュータ一般

量子ゲートアルゴリズム

量子アニーリング一般

量子アニーリングアルゴリズム

BlueqatSDKの使い方