Jij Tech Blog

Jij inc.の開発日記です

距離指標に基づいた分類器の量子回路実装

この記事の概要

この記事はShuld et al., 2017, "Implementing a distance-based classifier with a quantum interference circuit"を読んだので、その理解を深めるためのアウトプットとして作成したものです。

距離に基づいた分類器

教師データセットが D = \{ (x^1, y^1), (x^2, y^2), \dots , (x^M, y^M)\}のように M個のデータ点からなるとします。それぞれのデータ点は N次元であるとします( x^m \in \mathbb{R}^N)。 y^m \in \{ -1, 1\}は分類を表すラベルです。これに対してラベルが割り振られていない入力データ \tilde{\bf x} \in \mathbb{R}^Nのラベル \tilde{y} \in \{-1, 1\}を付与することを目標とします。

閾値と分類モデル

分類を量子回路で行うにあたり、以下の閾値関数を用います。

 \displaystyle{
\tilde{y} = {\rm sgn} \left\{ \sum_{m=1}^M y^m \left( 1-\frac{1}{4M} |\tilde{\bf x} -{\bf x}^m|^2\right) \right\} \tag{1}
}

距離指標

 \displaystyle{
\kappa ({\bf x}, {\bf x}') 
= 1-\frac{1}{4M} |{\bf x} -{\bf x}'|^2
}

をカーネルとして扱います。このカーネルはEpanechnikovカーネル

 \displaystyle{
K(u) = \frac{3}{4} (1-u^2)
}

に類似しています。この類似性から、(1)式はカーネル化したバイナリ分類

 \displaystyle{
\tilde{y} = {\rm sgn} \left( \sum_{m=1}^M w_m y^m \kappa ({\bf x}, {\bf x}') \right)
}

において w_m = 1としたものに等しいことがわかります。このような式はパーセプトロンから導かれるモデルで、 w_m = 1とした重みが学習データの拡張を表現していることがRepresenter theoremからわかります。

教師データと入力データの標準化と規格化

この論文ではIrisデータセットを用いて数値実験を行っています。その際に、予めデータの標準化と規格化を行っています。

Data standarization and normalization
データの標準化と規格化

左図は生データです。真ん中図は標準化し、平均0, 分散1にしたものです。右図は各データ点を原点から長さ1の場所に規格化したものです。

用いる量子ビットとその役割

距離指標を用いた分類器を量子回路で実現するには4種類の量子ビットを用います。

 \displaystyle{
 | \mathcal{D} \rangle 
= \frac{1}{\sqrt{2M}} \sum_{m=1}^M | m \rangle \left( | 0 \rangle | \psi_{\tilde{\bf x}} \rangle + | 1 \rangle | \psi_{{\bf x}^m} \rangle \right) | y^m \rangle
}

最初の | m \rangleは教師データのインデックスを表す量子ビット、2つ目の | 0 \rangle, | 1 \rangleは分類したい入力データ  | \psi_{\tilde{\bf x}} \rangleと教師データ | \psi_{{\bf x}^m} \rangleとにエンタングルさせておくための単一の補助量子ビット、3つ目の  | \psi_{\tilde{\bf x}} \rangle, | \psi_{{\bf x}^m} \rangleはすでに説明した通りそれぞれ入力データと教師データを表す量子ビット、そして最後の | y^m \rangle m番目の教師データがどちらの分類されているかを表す単一の量子ビットです。
ここで

 \displaystyle{
 | \psi_{\tilde{\bf x}} \rangle 
= \sum_{i=0}^{N-1} \tilde{x}_i | i \rangle \\
 | \psi_{{\bf x}^m} \rangle 
= \sum_{i=0}^{N-1} x_i^m | i \rangle
}

であり、 | i \rangleは次元のインデックスを表すベクトルです。

考え方

最初に、2つ目の補助量子ビットにアダマールゲートを作用させてみましょう。

 \displaystyle{
(I \otimes H \otimes I \otimes I) | \mathcal{D} \rangle 
= \frac{1}{2 \sqrt{M}} \sum_{m=1}^M | m \rangle \left\{ | 0 \rangle( | \psi_{\tilde{\bf x}} \rangle + | \psi_{{\bf x}^m} \rangle )+ | 1 \rangle ( | \psi_{\tilde{\bf x}} \rangle - | \psi_{{\bf x}^m} \rangle ) \right\} | y^m \rangle
}

この状態において補助量子ビットが | 0 \rangleとなる状態を測定したとき、それが測定される確率は

 \displaystyle{
p_{\rm acc} = \frac{1}{4M} \sum_{m=1}^M |\tilde{\bf x} + {\bf x}^m |^2
}

となります。この測定後の他の量子ビットの状態は

 \displaystyle{
\frac{1}{2\sqrt{Mp_{\rm acc}}} \sum_{m=1}^M \sum_{i=1}^N |m \rangle (\tilde{x}_i + x_i^m) | i \rangle | y^m \rangle
}

になります。この状態において最後の量子ビット | y^m \rangleを測定したとき、 |0 \rangleが測定される確率は

 \displaystyle{
p(\tilde{y} = 0) 
= \frac{1}{4Mp_{\rm acc}} \sum_{m | y^m = 0}  |\tilde{\bf x} + {\bf x}^m |^2
}

となります。これがラベル-1に分類される確率になります。よって途中で出てきた p_{\rm acc}をデータ前処理で高めることにより、正しく分類できるようになります。

数値実験

教師データと分類したい入力データ

教師データとして

 \displaystyle{
 | \psi_{{\bf x}^0} \rangle 
= | 1 \rangle, \ 
 | \psi_{{\bf x}^1} \rangle 
= 0.789 | 0 \rangle + 0.615 | 1 \rangle
}

の2つを用います。そして分類したい入力データには

 \displaystyle{
 | \psi_{\tilde{\bf x}'} \rangle 
= -0.549 | 0 \rangle + 0.836 | 1 \rangle
}

を用います。

量子回路

以下に、先ほどの教師データと分類したい入力データを用いた場合の量子回路を示します。

Quantum circuit for the distance-besed classifier
距離指標に基づいた分類器の量子回路

上から順に

 | a_0 \rangle: 補助量子ビット
 | m_0 \rangle : 教師データのインデックスを表す量子ビット
 | i_0 \rangle : 教師データと入力データを表す量子ビット
 | c_0 \rangle : 分類を表す量子ビット

です。では量子回路の各工程を見てみましょう。

step A: 補助量子ビットとインデックス量子ビットにアダマールゲートを作用させます。
step B: 入力データ \tilde{\bf x}'の偏角2.152の倍の角度の位相回転を行い、これと補助量子ビットの基底状態 | 0 \rangleをエンタングル状態にします。
step C: 教師データ {\bf x}^0と補助量子ビットの励起状態 | 1 \rangle及びインデックス量子ビットの基底状態をエンタングル状態にします。
step D: 教師データ {\bf x}^1の偏角0.662の倍の角度の位相回転を行い、これと補助量子ビットの励起状態 | 1 \rangleとインデックス量子ビットの励起状態をエンタングル状態にします。
step E: データ量子ビットと分類量子ビットをスワップし、さらに分類量子ビットをインデックス量子ビットの |1\rangleを用いてフリップします。
step F: 補助量子ビットにアダマールゲートを作用させ、補助量子ビットが | 0 \rangleの状態を測定します。その後、分類量子ビットを測定し、分類確率を得ます。

step A-Eまでは先ほど説明した | \mathcal{D} \rangleを作成し、step Fで確率の測定を行います。

数値実験結果
A numerical result
数値実験結果

上の表は無印がIBM Quantum Experience実機での結果、三角がシミュレーションによる結果、そしてアスタリスクが理論予想です。理論予想とシミュレーション結果は近しい値を示していますが、実機での結果は大きく外れた値が出ています。この主な理由として、エラー補正がないこと、補助量子ビットの横方向コヒーレンス時間が短いために初期の一様な重ね合わせが崩れてしまったこと、そして分類量子ビットの縦方向コヒーレンス時間が短いことがあります。

様々なタイプのデータセットでの実験

この距離指標に基づいた分類器がどのような分布のデータでも有用なのかを調べるために、様々な分布のデータセットの分類でシミュレーションを行っています。

Test error on different datasets
様々なテストデータでのエラー

Circlesデータセットでは正しく分類できていないことがわかります。

The circle dataset
Circle データセット

上左図がCirclesデータセットです。このままでは正しく分類することができません。しかし上右図のような特徴量ベクトルを表す量子状態のコピーを用いることで、分類器の力を向上させる多項式特徴量マップを実装することも可能です。

結言

今回は数ある分類器の中でも、距離指標に基づいた分類器とその量子回路実装をご紹介しました。

文責

中村翔、株式会社Jij
Sho K. NAKAMURA, Jij inc.
憂いの篩 -Pensieve-

※ 疑問点や間違いなどございましたら、お気軽にブログ上でご質問ください。