従来の機械学習アルゴリズムをそのまま量子コンピュータで高速化できるわけではない。
現時点において、機械学習の世界の真の実用問題で、「計算速度」という面で、量子が古典を凌駕した報告はおそらく無い。それでも可能性を求めて、研究開発は進む!
古典的な数値計算は、圧倒的に従来コンピュータの得意分野なのである。量子コンピュータには、これまでも経験したことだが、特有の得意分野がある。機械学習にそれをどう展開していくのか。例えばすでに、データそのものを量子データ化して、量子アルゴリズムにかけるというアプローチもあるようだ。でも、まだまだ未知の世界だと思う。
量子機械学習に関する日本語の書籍はとても少ない。私の知るところでは、下記の2つの書籍がある。まだよく読んでいないが、いずれもなかなか優れた解説書のようである。
曽我部氏の著書のサブタイトルに「量子回路自動設計」という言葉があった。もしかすると、IBMのQASMで書かれたような量子プログラムを、量子的なデータとみなし、それを使った何らかの学習を行い、最適化するものかもしれない。違うかもしれない。よく読めばわかるだろうが。ともかく、主なアルゴリズムに関して、Pythonコードも公開されているので重宝するだろう。
曽我部東馬:Pythonではじめる量子AI入門
もう一冊は、嶋田氏によるものだ。「4.4 量子コンピュータと機械学習」、「5.3 パラメータ付き量子回路による機械学習」に、詳しい解説が数式展開とともに説かれている。難度は高そうだが精緻な叙述なので取り組めるだろう。
嶋田義皓:量子コンピューティング
だが、すぐにでも例題を動かしてみたい。話はそれからだ!という場合は、別の選択肢として、IBMのQiskitサイトには、Quatnum_Machine_Learningという、まとまった解説が載っている。シミュレータやIBM Quantum実機でもすぐに動かすことができる。まず動かして、次第に中身に迫る。それが私のやり方だ。
だが、ここで注意すべき点がある。最新のローカルQiskit環境、Qiskitライブリにしないと、すぐに大量のコンパイルエラーが出てめげてしまう。下記のように頻繁に更新したり、バージョンを確認することが必要である。Qiskitは頻繁にバージョンアップがなされ、その都度、それまでの量子プログラムは動かなくなることで有名だ。Migrationガイドはあるものの、いちいちそれを調べるのはとてもしんどい。でもやむを得ない。以下は、忘備録。
(1)Qiskitを最新版にする。
ターミナルで、pip install -U qiskit を実行
(2)量子機械学習関係ライブラリも最新版にする。
ターミナルで、以下のように更新しても良い。
pip uninstall qiskit-machine-learning
pip install qiskit-machine-learning
(3)ラリブラリ関係のバージョンを確認する。
現在(2025-02-12)の最新版:
qiskit 1.3.2、qiskit_machine_learning 0.8.2
ターミナルから、以下のようなコマンで現時点のローカル環境を確認。
pip list
pip show qiskit_machine_learning
(なお、Jupyterのコード内で行うには、pipの代わりに、!pipを使う。)
🔴実は、上記のような更新だけで済めば極めてラッキーだ。過去に作ったプログラムと現行Qiskitは整合が取れないことも多いからだ。
-----蛇足----
英語の書籍もあるのだろうが躊躇している。最近、量子コンピューティング関係の英語書籍には、粗雑というか、がっかりする内容のものも見受けられる。例えば、明らかにChatGPTなどを使って集めた知識の羅列を体裁を整えて出版しただけというのがあった。買ってしまって憤慨ということもあった。大手出版社ではない、個人出版のような書籍には特に要注意と思われる。