LoginSignup
4
1

More than 1 year has passed since last update.

Kernel型量子SVMのFeature map の良し悪しを考える

Last updated at Posted at 2021-08-01

Feature map

量子カーネルを用いたSVMを考えます。
https://qiita.com/notori48/items/a54a5219ffd1ed6666df

上記の記事では、カーネル(を決める量子ゲート)としては深く考えずに決め打ちでやっています。
Angle embedding (=RXゲート) を用いています。

def kernel(x1, x2):
    """The quantum kernel."""
    AngleEmbedding(x1, wires=range(n_qubits)) #S(x)
    qml.adjoint(AngleEmbedding)(x2, wires=range(n_qubits)) #S^{\dagger}(x')
    return qml.expval(qml.Hermitian(projector, wires=range(n_qubits)))

これは、
$|\phi(\vec{x}) \rangle = (RX(x_{1}) \otimes RX(x_{2})|00 \rangle$に対して
$K(\vec{x},\vec{y})= |\langle \phi(\vec{x}) | \phi(\vec{y}) \rangle |^{2}$ としてカーネル$K(\vec{x},\vec{y})$を決めたことに相当します。
埋め込みのパターンは Feature map  と呼ばれます。

果たして、このカーネルの決め方(Feature map)が最適なのでしょうか?
もちろんそうとは限りません。
カーネルがどんな定義のときに、SVMがどんな分類能力を持つかということを考えたいです。
それが以下の論文にあります。

これをみていきます。

論文のキーアイデア

キーアイデアは、量子ゲートは古典データをブロッホ球上に写像しており、SVMはそのブロッホ球上の分離平面を決めているとみなせるということです。以下でみていきます。

カーネルが何で決まるか

古典データ$\vec{x}$を、ある量子ゲート$U$で$|\Phi(\vec{x}) \rangle = U|0..0 \rangle$ と埋め込んだとします。
このとき、$|\Phi(\vec{x}) \rangle$に対する密度行列表示を$\rho(\vec{x})$とすると、カーネル$K$は
image.png

このように表されます。
カーネル$K$は、内積を取る対象の2つのベクトルの密度行列表示で決まります。
つまるところ、カーネルの表現力とは、古典データ$\vec{x}$を与えた時に、$\rho(\vec{x})$がどうなるかで決まっています。
そこで、$\rho$を調べればよいということになります。

密度行列の実数表示

密度行列$\rho$はその名の通り行列です。$n$量子ビットに対しては、状態ベクトルでは$N = 2^{n}$次元ですが、密度行列は$2^{n} \times 2^{n}$次元のエルミート行列となります。
エルミート行列は、一般に、パウリ行列の積を基底として展開できます。
このときの展開係数は $N^{2}-1$ 個の実数になることが知られています。
2量子ビットですと、15個の実数となります。
これを15次元ベクトル1つとみなしたものを、ブロッホベクトルといいます。
ブロッホベクトル全体のなす空間を、ブロッホ球といいます。
球といっていますが、15次元上の部分空間です。

なお、よく見かけるZZ feature map の場合は、古典データからブロッホベクトルへの写像は以下のようになるそうです。

image.png

ブロッホ球上の分離平面

カーネルはブロッホベクトル同士の関係性から決まっているということですから、
古典SVMのアナロジーから、量子SVMはブロッホ球上で分離平面を求めていると考えられます。
論文では、ブロッホベクトルを$\vec{a}$として、図解されています。

image.png

ここまでくると、もはや機械学習せず数値的に分離平面を求めることができます。(計算量はおいといて)
実際、そのように数値的に求めた分離平面から予測される性能と、機械学習させた場合の性能は、よく相関しています。

image.png

良いカーネルの決め方とは

で、結局、よいカーネルの決め方とはなんでしょうか。
答えはないのですが、少なくともブロッホベクトルの一部の次元にしかデータを埋め込まないようなゲート構成はダメでしょう。
例えば、量子ゲート間にCNOTをひとつもいれないゲートの場合、一部にしかデータを埋め込めません。ので、性能が悪いことは予想できます。

論文では、少し進んで、アンサンブル学習が提案されています。
つまり異なった構成の量子回路(=カーネル)を用意して、それらのカーネル関数の和を1つのカーネル関数とみなして使用することで、
表現力を向上させます。
カーネルの欠点同士を補うような合成が起こることが期待される・・・ということです。

まとめ

カーネル型のQSVMについて、論文を勉強した。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1