この記事の概要
2019年9月にarXivに投稿された論文、Khan et al., "K-Means Clustering on Noisy Intermediate Scale Quantum Computers"を読むための前提知識を学習するために作成した記事です。
序章: K-Means法
アルゴリズム
与えられたデータをいくつかのグループにグループ分けすることをクラスタリングと呼びます。ここでは数あるクラスタリングアルゴリズムの中から、基本的なものであるK-Means法を復習しましょう。
以下のように与えられたデータを5つのグループにクラスタリングします。
この図上に5つの色付き点をランダムに配置します。
各点から一番近い色付き点を線で繋ぎます。どの点がどの色付き点と線で結ばれているか、わかりやすくするために色で塗り分けしてあります。
次に、各色付き点を自分の色のついているデータ点の重心に移動させます。
色付き点が移動したため、各データ点からの距離が変わりました。そこで、再び各データ点から一番近い色付き点を線で繋ぎ直しましょう。それに伴って、いくつかのデータ点の色も変わります。
再び各色付き点を自分の色のついているデータ点の重心に移動させ、さらにデータ点から一番近い色付き点を線で繋ぎ直します。
この操作を色付き点が移動しなくなるまで繰り返します。これにより与えられたデータ点を5つにグループ分けできます。これをK-Means法と呼びます。
K-Means法はそのアルゴリズムの性質上、色付き点の初期位置によって結果が大きく変わります。またデータによって直感と反する結果になることも多々あります。
計算量
入力データの特徴量の数(次元数)を, 入力データ数を, そしてクラスタリング数をとすると、計算時間はとなります。
量子K-Means法
量子K-Meansのアルゴリズムの流れを以下に示します。
量子状態の準備
以下の二つの量子状態を準備します。
オーバーラップの計算
Swap Testを用いて、オーバーラップを計算します。
Swap Test
1. Controlled-swap
Swap Testの量子回路を考える前に、Controlled-swap(別名フレドキンゲート)と呼ばれる以下のようなものを考えます。
controlled-swapは一つ目の量子ビットが状態1であれば、残りの2つの状態を入れ替えます。
量子回路
Swap Testの量子回路をご説明します。
上のHはアダマールゲート、そして真ん中の量子ゲートは先ほど説明したcontrolled-swapゲートです。それではこの回路の挙動を見ていきましょう。最初に一つ目の量子ビットにアダマールゲートを作用させるので
となります。次にcontrolled-swapによって、一つ目の量子ビットが状態1であれば2つ目と3つ目の状態を交換します。
さらに一つ目の量子ビットにアダマールゲートを作用させます。
最後に1番目の量子ビットを観測し、を得る確率を求めます。この場合の測定演算子はと書けるので
これによりが求まります。
距離の計算
オイラー距離を計算します。
グローバーのアルゴリズム
グローバーのアルゴリズムを用いて、データ点がどのクラスターに属するか、最も近いクラスター中心を見つける操作を行います。
古典に比べてどのくらい高速化されているのか?
古典アルゴリズムの場合、次元データの距離を計算するためにの計算時間がかかります。しかし量子並列化によってそれがになるため、全体の計算量はとなります。
結言
今回はK-Meansアルゴリズムと量子K-Meansアルゴリズムをご紹介しました。
参考文献
- Khan et al., 2019, "K-Means Clustering on Noisy Intermediate Scale Quantum Computers"
- 量子k-means法のはなし
- Swap testとquantum neuronについて
- Nielsen & Chuang, "Quantum Computation and Quantum Information"
- Quantum Native Dojo, 1-3, 複数量子ビットの記述, 複数量子ビットの一部分だけを測定した場合