QCL
Quantum Circuit Learning (量子回路学習) 量子コンピュータを機械学習に応用するためのアルゴリズム。
VQE (Variational Quantum Eigensolver)と同様、量子古典ハイブリッドアルゴリズム。
メリット
過学習がないと予想される
古典だとデータが増えると指数関数的に処理が必要だが、量子だと抑えることができる。
/icons/hr.icon
例
0. 目的
例えば、シンプルな関数$ y=f(x)を考える。QCLにより、教師データを読み込ませることで、$ f(x)を明らかにする。
また、そのモデルの出力から、未知の$ xに対する解$ yを予想する。
1. 教師データ
$ \{ (x_i, y_i) \}_i
このとき、必要となる1件あたりのデータ形式は「$ (x,y)」である。
これをいくつか用意した「$ \{ (x_i, y_i) \}_i」を入力とする。
2. 回路設計
2-1. 入力を量子ビットにエンコード
$ \{ |\psi_{in}(x_i)\rangle \}_i = \{ U_{in}(x_i)|0\rangle \}_i
入力$ xを量子ビットにエンコードする。操作を$ U_{in}(x)と定義する。
例えば、古典ビットなら入力$ x=9を表現すると、$ 1001_{(2)}である。これを$ U_{in}(x)=U_{in}(9)=1001_{(2)}とする。
同様に、量子ビットでも入力$ xに対し、これを$ U_{in}(x)とする。状態ベクトルの計算なので、$ U_{in}(x)はユニタリ行列として扱う。計算式で示すと、量子ビットの初期状態$ |0\rangleを、入力$ xに変換するため、$ U_{in}(x)|0\rangleとなる。
2-2. 関数$ f(x)に該当する操作を適用
$ |\psi_{out}(x_i,\theta)\rangle = U(\theta)|\psi_{in}(x_i)\rangle
$ U(\theta)は$ f(x)を行列操作に置き換えたものである。$ \thetaを最適化することでら$ f(x)の近似解を明らかにする。
3. 測定
$ \langle Z_1 \rangle = \langle \psi_{out}|Z_1|\psi_{out} \rangle
なんでこれだけを測定したの??