この記事は、量子サポートベクターマシーンを利用して、MNISTから配布されているデータベースの分類を行う方法をある程度略して説明するものです。変分量子計算の方法論は、機械学習における分類問題にも応用されています。その1つがQuantum Support Vector Machine(QSVM)です[1]。これはクラス分類問題において、評価関数に現れるカーネルを量子状態の内積で代用して、それを解くというものです。この方法において、過学習が抑えられるということが報告されています。本来ならば、実装してデータを採りたいところですが、手書き文字の認識分類をさせるだけでも画像を取り込んだ上に数字とアルファベットの全36種類の分類を行わなければならないため、私のパソコン環境では実装出来ないと判断しました。そのため、理論の話にとどめます。まずはタイトル通り、機械学習における2クラス分類の基礎から説明します。
機械学習の基礎:
機械学習の基本は、与えられたデータ に対するクラス分類を行うことです。もっとも簡単な例はn次元平面上における一次関数における評価関数の値の範囲の中に有るか無いかを判定する問題です。入力するデータをとして式で表せば、
となります。分類のうちどちらかを表す空間、i番目の入力データに対応するその分類を表す符号変数を導入し、のノルムで割りマージンを取ることで、
の関係が導かれます。ここで、は入力されるトレーニング用データの数です。こうして、データセットに対する評価関数の結果はかっこの中身の符号を返す関数を使って、
となります。これは異なる分類に属する距離(マージン)の最も大きい2点間をつなぐサポートベクトルのノルムを最小化する問題です。そのため、ラグランジュの未定乗数法と同じ形に表すことができ、
となります。
となるため計算機での処理が可能なように、
と変換できます。この関数は分類数空間をとして束縛条件、に従います。この関数はコスト関数と呼ばれる、多クラス分類において最も重要な式です。この関数を最大化するの組を見つけることでデータセットを正しく分類することがクラス分類の目的です。この中のは二値カーネルと呼ばれるもので、と表されます。
これを問題の特徴に応じて適切なものを選ぶことで、計算の精度が格段に上がることが知られています[2]。
QSVMにおいては、これは異なるデータセットから作った状態間の内積となります。
量子多クラス分類:
この節では、いよいよ量子多クラス分類の説明をしていきます。多少複雑ですが、それぞれのプロセスで行うことはそれほど複雑ではありません。このアルゴリズムの工程は主に3つです。
- 量子多クラス分類機にトレーニング用データセットt子を学習させます。
式(5)のコスト関数を計算します。
量子多クラス分類機における1,で最適化された変数θと経験的コスト関数$R _ { emp}$を基に、テストデータセットを分類させます。
1,と3,の大まかな工程を図1,2にそれぞれ示します。
2クラス分類の場合はそれらの図において、
を実現する回路は ゲート、 の回路で実装します。 も同様です。
を計算し、経験的コスト関数 と変数 を最適化します。 2, は2クラス分類の場合は少々異なり、量子ビット数を としてパウリゲート に対して、
から、
を量子ビット数 に対して計算します。また、 とします。
3,の量子カーネルはSWAP-test[3]で計算し、式(11)を とbの連立方程式として解くことで、計算出来ます。多クラス分類の場合は式(6)を、
としてあとは1対他あるいは1対1戦略で逐次分類することで図1,2の通りの方法で学習が完了します。 となります。MNISTデータセットも、計算時間と仕様ゲート数は2値分類に比べて大幅に増加しますが、この方法で分類が可能です。
編集後記: 今回は私自身機械学習はタイトル通りゼロから実装を学んだため、非常にざっくりとした説明になってしまいました。もしかしたら、内容に誤りがあるかもしれません。しかしながら、変分量子計算の応用の中で一番難しい部類に入るアルゴリズムの論文を解読し、その内容を分かりやすく説明することは、私にとっても有意義でした。量子機械学習はFault-Tolerant-Quantum-Computer(FTQC)における最有力応用候補として期待されており、更なる発展が期待されています。そしてすでに、量子化学計算においてもクラスターを機械学習で最適化する手法が出ています。なので、私もこれを機に、量子機械学習の研究を始めようと思います。
[1] Vojtech Havlicek, Antonio D. Córcoles, Kristan Temme, Aram W. Harrow, Abhinav Kandala, Jerry M. Chow, Jay M. Gambetta, arxiv, 1804.11326quant-ph
[2] Qiskitで量子SVMを実装して性能評価してみた - Qiita
[3] Juan Carlos Garcia-Escartin and Pedro Chamorro Posada, arxiv, 1304.4923quant-ph