量子コンピューティングEXPOに向けて④
2024.05.02
量子コンピューティングEXPOで行う予定の、
弊社の展示に向けての事前情報その4です。
量子機械学習の環境
色々な形態が研究されていますが、「量子ニューラル・ネットワークを学習させる」ことを想定した環境をご紹介します。
※(狭義には4層以上の)ニューラル・ネットモデルを誤差逆伝播法(BP:Backpropagation)で学習させる機械学習手法が深層学習(Deep Learning)
学習データを再現するように、
量子回路のパラメータを最適化
学習データを再現するように、
数理モデルのパラメータを最適化
■ PyTorch単体での量子化
PyTorchには、Deep Learningのモデルを量子化する以下の方法が用意されています。
・ Dynamic Quantization
・ Static Quantization
・ Quantization Aware Training
詳細は以下のドキュメントをご参照ください。
https://pytorch.org/docs/stable/quantization.html
■ PyTorchの学習モデルとしてQiskitの量子機械学習層を組み込む(TorchConnector)
IBM社のQiskitは、オープンソースの量子コンピュータ用フレームワークです。量子回路の記述・シミュレータの実装・最適化などを行うための汎用性の高いSDKです。IBM社の量子コンピュータIBMQだけではなく、NVIDIA製GPU搭載の古典コンピュータ環境で、cuQuantumを使用して高速に回路シミュレーションを行うこともできます。
https://qiskit-community.github.io/qiskit-machine-learning/locale/ja_JP/tutorials/05_torch_connector.html
■ TensorFlow Quantum(TFQ)
量子機械学習用の Python フレームワークです。NISQデバイス向けにGoogleが開発したフレームワーク「Cirq」を、既存のTensorFlowライブラリに統合したものです。TensorFlow 内から Google の量子コンピューティングフレームワークを活用できます。古典コンピュータ環境では、Intel製マルチコアプロセッサに最適化(AVX/FMA、OpenMPでのマルチスレッドサポート)された高性能な量子回路シミュレータである「qsim」を採用し、マルチコアプロセッサで量子シミュレーションが可能です。GPUはサポートしていません(GPU対応版のqsimも存在しています)。
https://www.tensorflow.org/quantum?hl=ja
Cirq https://quantumai.google/cirq
qsim https://quantumai.google/qsim
■ PennyLane
量子機械学習に特化した、ゲート型量子コンピュータ用の量子回路の記述・シミュレータの実装・最適化などを行うためのSDKです。TensorFlow や PyTorch へのインタフェースが用意されています。特に、ニューラル・ネット―ワークで使用される誤差逆伝搬法の量子版が用意されています。C++で書かれた独自のバックエンドを持ち、導入された古典コンピュータ環境で回路シミュレーションができます。またQunasys製のC++で書かれた高速なQulacs SDKもバックエンドとして利用可能です。
Keras(TensorFlow)やNVIDIA cuQuantumを通じてGPUを使用したシミュレーションも可能です。
https://pennylane.ai/
https://github.com/PennyLaneAI/PennyLane
TensorFlow
Kerasで簡単に実装でき、運用サポートが手厚く、実用/ビジネス方面に強い。
Python以外の多くの言語をサポート。DeepLearingフレームワーク。
PyTorch
カスタマイズやロジックの把握がしやすく、特に研究方面に強い。
DeepLearingフレームワーク。
scikit-learn
データ解析や、Deep Learning以外のさまざまな機械学習の実装をより簡単に試すことができる。
★ 弊社サイト内 NexTech Week 2024[春]開催案内ページへ