Qiskit Machine Learningの概要#
概要#
Qiskit Machine Learningは、分類や回帰など、さまざまなアプリケーションで使用される基本的な計算ビルディングブロック、量子カーネル (Quantum Kernel) や 量子ニューラルネットワーク (Quantum Neural Networks) など、を導入しています。 この設計は非常に使いやすく、ユーザーは量子コンピューティングの深い知識がなくても最初のモデルのプロトタイプをすばやく作成できます。 一方、Qiskit Machine Learningは非常に柔軟性があり、ユーザーはそれを簡単に拡張して最先端の量子機械学習研究をサポートできます。
Qiskit Machine Learningは、Qiskitで導入された BaseStateFidelity
アルゴリズムを利用する FidelityQuantumKernel
クラスクラスを提供し、与えられたデータセットのカーネルマトリクスを直接計算するために簡単に使用でき、分類または回帰問題の解決を迅速に開始するために量子サポートベクター分類器 (QSVC
) や量子サポートベクター回帰 (QSVR
) に渡すことが可能です。また、既存の古典的なフレームワークのカーネルベースの機械学習アルゴリズムと併用することもできます.
Qiskit Machine Learningは、異なる量子ニューラルネットワークによって実装されるニューラルネットワークの汎用インタフェースを定義しています。 EstimatorQNN
と SamplerQNN
の2つのコア実装が用意されています。 EstimatorQNN
はQiskitの BaseEstimator
primitive を活用し、パラメーター化された量子回路と量子力学的観測量を組み合わせることができます。回路は、例えばQiskitの回路ライブラリーからビルディングブロックを使用して構築することができ、QNNの出力は観測量の期待値で与えられます。 SamplerQNN
はQiskitに導入されたもう一つの primitive で ある BaseSampler
primitive を利用しています。このニューラルネットワークは、primitive によって推定されたビット列の準確率を、目的の出力に変換します。この変換ステップは、与えられたビットストリングを特定の文脈で解釈するために使用されます(例えば、クラスの集合に変換するなど)。
ニューラルネットワークには、特定の入力に対してそれらを評価する機能と、対応する勾配を計算する機能が含まれています。これは、効率的なトレーニングに重要です。 ニューラルネットワークをトレーニングして使用するために、Qiskit Machine Learningは、 NeuralNetworkClassifier
や NeuralNetworkRegressor
などのさまざまな学習アルゴリズムを提供します。 どちらもQNNを入力として受け取り、分類または回帰のコンテキストで使用します。 簡単に開始できるように、2つの便利な実装が提供されています。変分量子分類 (Variational Quantum Classifier、 VQC
) と変分量子回帰 (Variational Quantum Regressor、 VQR
) です。 どちらも特徴マップと ansatz を取り、基礎となるQNNを自動的に構築します。
Qiskit Machine Learningで直接提供されるモデルに加えて、 TorchConnector
があり、ユーザーはすべての量子ニューラルネットワークをオープンソースの機械学習ライブラリ PyTorch に直接統合できます。Qiskit Algorithmの勾配アルゴリズムのおかげで、これには自動微分が含まれます。誤差逆伝播中に PyTorch によって計算される全体的な勾配は、量子ニューラルネットワークも考慮に入れます。 柔軟な設計により、将来的に他のパッケージへのコネクタを構築することもできます。