1. 発見
日課でキャルちゃんのX
を見ていていて気になる論文を見かけました。
タイトル「How to Train Your Dragon: Quantum Neural Networks」…なんという題名。
2. 本手法と通常のNeuralNetworkの違い
2.1. 一般的なニューラルネットワーク
一般的なニューラルネットワークは入力層から、出力層に向けて処理が流れます。
フィードバックを行うタイプもありますが、基本的には入力から出力へデータが流れる形となります。
最も基本的な学習方法として誤差逆伝播(バックプロパゲーション)というものがあります。
簡単に言うと、あるウェイトの出力を計算して、教師データの正解と異なる場合はその差(誤差)を出力層→隠れ層→入力層と逆にたどって修正していきます。
しかしこの方法は、局所最小に陥るリスクや、多層化すると増大する計算コストが課題となります。
2.2. 本手法の平衡伝播
本論文が用いている手法は、推論方法と学習方法が上記に記載した、一般のニューラルネットワークと異なります。
推論時にイジングモデルでの平衡状態を用います。
簡単に説明すると入力に相当するノードにバイアスをかけ、ネットワークを平衡状態にします。そののち、出力層相当のスピンを読み取るというものです。
通常のNeuralNetworkのように順次計算されるわけではないので、バイアスで代替する形ですね。
頭いい!!
Nudged PhaseではOutputLayerに正解をBias(ナッジ)としてかけます。
2.3. なぜこれが量子アニーリングで有効なのか
量子アニーリング装置は、高速に複数の低エネルギー状態をサンプリングすることができます。
また、平衡状態にもっていく際に、従来コンピュータでは局所解に陥る可能性がありますが、量子アニーリングは局所解から抜け出すことができます。
量子アニーリングを用いたサンプリングを活用する機械学習手法として、サンプリング結果から確率分布を求めて利用するボルツマンマシン機械学習もありましたが、時間がかかるうえに精度もいまいちでした。
そもそもボルツマン分布になっていないので後処理が必要だったが、本論文の手法は最適化を目的としたサンプリング結果を直接的に使用することができます。
また、工夫として「ドラゴン訓練」と呼ぶ手法を提案し、一度に $m$ 個の“間違った”低エネルギー状態(ドラゴンの頭)をまとめて切り落とす(誤った解として学習させる)ことを実現。従来のバックプロパゲーション(スケーリング指数 $z=0.78$)を上回る $z=1.01$ を達成しています。
平衡伝播(Equilibrium Propagation)そのものは2017年に発表されていましたが、あまりメジャーではなく、機械学習で有名なライブラリScikitLearnにも実装がありません。
平衡伝播(Equilibrium Propagation)論文
理由は、平衡状態に持って行くのに時間がかかる、従来コンピュータは向かないという事があるからだと思います。
繰り返しになりますが、量子アニーリングを用いれば、そういった欠点をカバーして
- 学習の効率化・高速化
- 推論の高速化
を実現できる可能性があり、面白い手法だなと思いました。
ネットワークを介した処理が必要であること(Latencyが増える)から、トータル時間でみた高速化は現実的には難しいという欠点はありますが、推論時は繰り返しが不要になります。
量子アニーリングでは100回サンプリングすると、QPU_ACCESS_TIMEは52.568msです。
通信状態や前処理、後処理は除かれています。
一回当たりは0.5msとなり、AI推論としては十分高速と言えるのではないでしょうか。
3. 現時点の課題と発展
3.1. 現時点の課題
-
量子ビット数の少なさ
取り扱えるニューロン数が量子アニーラーのビット数に制限されるため、深いネットワークや大規模モデルへの適用には工夫が必要です。
MNIST(手書き文字入力)をBINARY入力するとして、それだけで700qubit使います。
3.2. 発展の予定
量子アニーリングに即した工夫も色々できそうです。
-
論文に記載されている内容
- 完全コヒーレントアニーリングにおけるAmplitude Amplification(Grover 系手法)を組み込むことで、さらなるスケーリング指数の向上を目指す
4. 実装
手元に実装はありますが、まだ公開レベルにはなっておらず、ブラッシュアップ後、きがむいたらGithubにでもアップロードします。
「私、いい感じに実装したよ!」という人がいらっしゃったら共有してください(笑)