2022年6月号 Interface の「ゲートレベルから実装する機械学習」を試してみた その1

Interface6月号の5章:古典-量子ハイブリッド・アルゴリズムで2ち分類問題の加速化にトライ。ゲートレベルから実装する量子機械学習を実行してみました。

 

量子下記学習ライブラリPennyLaneの準備

 

PennyLaneはオープンソース・ソフトウェアで、公開されておりPythonで動作します。

詳細は、以下に記載されています。

pennylane.ai

1.インストール

Google Colabで以下を実行し、インストールします。

 

!pip install pennylane

 

インストール後、以下を実行するとバージョン情報等が表示されます。

import pennylane as qml

qml.about()

 

PennyLane バージョン確認

 

量子回路書き方の例

PennyLaneを用いた量子回路の書き方をサンプルで説明します。

(CNOTゲートはXORゲートと同様)

(RYゲートはY軸周りをθ度回転させた値)

 

#PennyLaneモジュールをqmlという名でimport

import pennylane as qml

#量子回路を実行するデバイス指定
#default.qubitはデフォルトで用意されているシミュレータ
#引数wires=2は2量子ビット使用する
dev = qml.device("default.qubit",wires=2)
#デコレータ
@qml.qnode(dev)
#CNOTとY回転ゲートw使用した回路
#PauliZはQiskitのmeasureと同等
def circuit(x):
  qml.CNOT(wires=[0,1])
  qml.RY(x,wires=1)
  return qml.expval(qml.PauliZ(1))

result = circuit(0.543)
print(result)

 

 

実行結果

 

上記回路を可視化すると、

量子回路の可視化

 

 

デコレータについて

デコレータはそのまま訳すと修飾ですが、メソッドを修飾するメソッドという意味となります。

デコレータ サンプル

 

 

/* -----codeの行番号----- */