2022年7月6日水曜日

IBM Quantumで量子機械学習(MLBの5,000投球)を試す

 量子コンピュータのうち、今回はゲート型の代表格であるIBM Quantumマシンを用いて、「MLB投球5,000球のストライク/ボール判定」の量子機械学習を試してみました。

量子-古典ハイブリッドによる機械学習
 量子コンピュータで機械学習させる方式は種々あるようですが、ここでは、従来のニューラルネットワークによる機械学習の核心部(誤差逆伝搬法を含む)を量子回路で置き換えた量子機械学習を試します。

量子機械学習は非常に複雑
 一般にゲート型量子コンピュータは、現在、「商用化」はされているが「実用化」されているとはとても言えません。量子コンピュータをうまく利用するためのアルゴリズムやプログラミング手法はまだまだ開発途上にあるといえるでしょう。量子機械学習も同じく、研究は盛んになっているが、現状では、古典(従来)コンピュータと量子コンピュータの計算ルールの関係を理解したうえで相互接続が必要です。さらに、解くべき問題に対応する量子回路も明示的に書く必要があり、一般技術者にとって敷居は高いと言えましょう。

量子機械学習ライブラリPennyLane(by Xanadu)
 そのような状況において、Xanadu社が公開しているPennyLane(ビートルズの楽曲にちなんだ名前か否かは不明ですが)という量子機械学習ライブラリが注目されています。このライブラリを使う場合でも、古典ビットを量子状態に符号化することや、量子回路をCNOTゲートやY回転ゲートを適用して実装することなどが必要です。しかしながら、機械学習全体の枠組みは、従来のTensorflow/Kerasに近いものがあり、ちょっと安堵できました。
 また、優れた特徴なのですが、構成した量子回路を実行するデバイスとして、IBM Quantum用のシミュレータと実機を簡単に切り替えることが可能です。シミュレータは直ぐに実行開始されるが実行速度はとても遅い。逆に、実機は高速だが、実行されるまでの待ちが非常に長い(ただし無料枠利用の場合)という状況です。

MLB(大リーグ)5,000投球に対する量子機械学習
 以前、従来コンピュータでの深層学習例題として、MLB主審によるストライク/ボール判定の学習を実施しました。今回は、そのデータを若干変更して用います。投球(全5,000球=ストライク2,500球 + ボール2,500球)の判定結果は図1のとおりです。また、一球ごとのデータは、図2の通り、5項目から成っています。最後の項はストライク(+1)、ボール(-1)のラベルです。



 そして、必要な量子回路の設定は、(小生が十分に理解できていないこともあり)PennyLaneの公開デモで示されているある量子回路に準拠しました。(量子回路の実装の詳細については、ここには書けません。近々、別記事の中で理解した内容を書いて行くつもりです。)

 入力データを示す図3は、図1と同一内容ですが、量子機械学習向けに特別な正規化(スケーリング)を施したものです。赤と黒のドットは投球のxy座標に対応しています。

 入力データ全5,000球のうち、通例通り、75%を訓練用(train)、残り25%を検証用(validation)とし、60回(60 epochs相当)学習を繰り返した結果は図4、図5の通りです。図4は、各validation用データに対する正解/不正解を可視化しています。
 また、図5に示すとおり、検証用データについての正解率は約76%でした。あまり高くないようにも思えますが、図1や図3から分かるとおり、ストライクゾーン(打者により上限と下限が変動)の周辺では、ストライク/ボールが入り混じっていることを考えれば、おおむね妥当な学習結果といえるでしょう。さらに、幾つかのハイパーパラメータの調整でもう少し正解率は上がるかも知れません。

感想
 小生にとって、現時点では量子コンピュータの高速性は問題ではありません。従来と全く異なる量子コンピュータというマシンで、機械学習を実際に動かし結果を得られたという体験こそが大事なのです。これをきっかけに、量子コンピュータの仕組みにも少しづつ入って行けそうな気がしてきます。そして、量子アルゴリズムや量子機械学習用のソフトウェアのさらなる発展を期待する気持ちが高まったことをよしとしたい。

0 件のコメント:

コメントを投稿