[要旨]データのクラス分けに関する量子的手法の研究用として、ad_hoc_datasetがある。これに、KPCA法 (Kernel Principal Component Analysis)を適用する例が、IBMのチュートリアル "Qiskit Machine Learning 0.8.3"にある。その中で、Gaussianカーネル(古典rbfカーネル)と量子カーネル(ZZFeatureMapに基づく)を適用した場合の比較がある。結果として、量子優越性を示す例となっていた。本記事では、これを再確認した。
🔴入力データセット ad_hoc_dataの特徴
これは、古典的な方法では線形分離(クラス分け)が難しいが、量子的手法ではそれが容易になるように設計された人工的データセットである。実用性はないが、量子優位性(quantum advantage)の研究などで利用される。すなわち、古典的なカーネル(GaussianカーネルRBF等)では分類が難しいが、量子特徴マップ(ZZFeatureMap等)に基づく量子カーネルではうまく分類できるように構成されている。主にバイナリ分類用のデータセット(ラベル 0 と 1)であり、トレーニングセットとテストセットに分けられる。
このデータセットの生成用のパラメータの一つであるgapは、クラスの分離性を決める。この値が大きいほど、クラス分けは容易になる傾向となる。Fig.1にそのデータサンプルの分布を示す。クラス0とクラス1のデータがそれぞれ小さなグループとなって散在しており、線形分離は困難のように見える。
🔴KPCA(Kernel Principal Component Analysis)の仕組みとクラス分け
KPCAは、"非線形構造データ"の分類に有効なように、通常の主成分分析PCAをKernel Tickによって拡張したものである。すなわち、まず、カーネルを使って、入力データを暗黙的に高次元空間に写像し、その空間での特徴表現(データサンプル間の類似度の計算)を行う。結果としてFig.2に示すようなカーネル行列が得られる。カーネルとしては、古典カーネル(Gaussianカーネルrbf等)や量子カーネル(Quantum Feature mapに基づく)を使うことができる。これに続けて、主成分分析PCAの手法を適用して、その空間での主成分への射影(または次元削減)を行う。
ここまでは、クラス分類のための準備であり、分類学習はしていない。クラスを示すラベル情報も全く使っていない。しかし驚くべきことに、ad hoc datasetのような量子カーネル向きのデータセットに対して、ZZFeatureMap を用いた fidelity(類似度) に基づくカーネル行列を構成すると、クラス構造(クラスタリング的な構造)が浮かび上がる場合がある。つまり、ラベル情報がなくても、カーネル行列のヒートマップを見ると、ブロック構造(クラスタ)が現れる。
Fig.2(a)は、まさにそれを示している!すなわち、ラベル0のデータ(番号0〜49)のペアは、ほとんどが高い類似度(濃い緑色)を示すブロックになっている。ラベル1(番号50〜99)についても同様である。しかし、これに反して古典Gaussianカーネルの場合(FIg.2(b))は、そのようなブロック構造が明瞭でない。
さて、この後、カーネル行列に加えて、ラベル情報を用いた教師付き学習を行う。その際の分類学習器としてSVCを使っても良いのだが、ここでは、より軽量でZZFeatureMapとの相性も良いとされるLogistic Regression(ロジスティック回帰)を使った。
Fig.3にその結果を示す。この結果は、Fig.2に示したカーネル行列の構造がそのまま反映されているように見える!つまり、テストデータに対する分類精度は、量子カーネルの場合0.95(Fig.3(a))、古典カーネルの場合0.6(Fig.3(b))であった。量子カーネルの可能性を示唆する一例となった!
🔴参考資料 [Qiskit Machine Learning 0.8.3]
0 件のコメント:
コメントを投稿