Recent Schrodin's Diary on Quantum Computing and Quantum Programming
AWSのAmazon Braketで量子機械学習:QCBM
別の記事に記載の通り、AWSの量子コンピューティングサービスであるAmazon Braketにおいては、Amazon Braket SDKと呼ばれる量子コンピューティングSDKを用いて各サービスを簡単に利用可能となります。この記事では、量子コンピュータを用いた機械学習である、量子機械学習アルゴリズムを実行する方法について説明します。
Amazon Braket学習コース この記事で登場する、量子ゲートや量子回路など、量子コンピュータの基本的な知識や、Amazon Braketの使い方についてはこちらのコースで効率的に学べます。
https://www.udemy.com/course/quantum-computing-on-aws-for-beginners-amazon-braket/?referralCode=F361C3FD774489A1B5B8 量子コンピュータやAWSの知識が無い方でも学び始められ、最終的には量子機械学習についても学べます。 こちらも利用し、量子技術のスキルを身につけましょう!
AWSのAmazon Braketで量子機械学習: QCBM 量子機械学習アルゴリズムはいくつかの方法が提案されておりますが、今回はQuantum Circuit Born Machine (QCBM)を実行します。 このアルゴリズムは、教師なし学習による生成モデルを構築できAmazon Braketのアルゴリズムライブラリに既に用意されています。
https://github.com/amazon-braket/amazon-braket-algorithm-library/tree/main/src/braket/experimental/algorithms/quantum_circuit_born_machine 今回はこちらのライブラリを使用します。
環境準備 まずは環境準備です。Amazon Braket Notebook上で実行する場合は特に実施する必要はありませんが、ご自身のPCや、サーバ上で実施する場合は、Amazon Braket SDKと、Jupyter Notebookをインストールします。またAmazon Braketアルゴリズムライブラリを利用するため、今回追加で以下も実行しています。以降の手順はJypyter Notebook上で実行しています。
git clone https://github.com/amazon-braket/amazon-braket-algorithm-library.git cd amazon-braket-algorithm-library pip install . 今回学習対象とするデータについて 4量子ビットが存在した場合、$2^4$通りのビット配列が表現可能です。このビット配列の中央付近にピークを持つガウス分布は以下で生成可能です。
import numpy as np n_qubits = 4 def gaussian(n_qubits, mu, sigma): x = np.arange(2**n_qubits) gaussian = 1.0 / np.sqrt(2 * np.pi * sigma**2) * np.exp(-((x - mu) ** 2) / (2 * sigma**2)) return gaussian / sum(gaussian) data = gaussian(n_qubits, mu=7, sigma=2) data = data / sum(data) 図で記載してみると以下の通りとなります。今回はこのデータを学習対象とします。
read more
Amazon Braketアルゴリズムライブラリインポート時のエラーについて
Amazon Braket学習コース AWSでの量子コンピューティングサービスであるAmazon braketについての学習コースを作成しました。
https://www.udemy.com/course/quantum-computing-on-aws-for-beginners-amazon-braket/?referralCode=F361C3FD774489A1B5B8 量子コンピュータやAWSの知識が無い方でも学び始められ、最終的には量子機械学習についても学べます。 こちらも利用し、量子技術のスキルを身につけましょう!
braket.experimentalのimportエラー 既に別の記事で紹介した通り、Amazon Braketではアルゴリズムライブラリを用いることで簡単に、量子フーリエ変換や、量子機械学習などのアルゴリズムが実行可能です。
しかし、Amazon Braket SDKをローカルにインストールし、pythonでimportしようとすると次のようなエラーが出力される場合があります。
--------------------------------------------------------------------------- ModuleNotFoundError Traceback (most recent call last) Cell In[2], line 4 2 import numpy as np 3 from braket.devices import LocalSimulator ----> 4 from braket.experimental.algorithms.quantum_circuit_born_machine import QCBM, mmd_loss 5 get_ipython().run_line_magic('matplotlib', 'inline') ModuleNotFoundError: No module named 'braket.experimental' このエラーはhttps://github.com/amazon-braket/amazon-braket-algorithm-library.gitに記載があるように、ローカルで以下を実行し、Amazon Braket algorithm libraryをインストールすることで解決します。
git clone https://github.com/amazon-braket/amazon-braket-algorithm-library.git cd amazon-braket-algorithm-library pip install . このインストールにより、様々なAmazon Braket algorithm libraryが使えるようになります。
Amazon Braket学習コース AWSでの量子コンピューティングサービスであるAmazon braketについての学習コースを作成しました。
read more
Amazon Braket SDKをインストールし、Jupyter Notebookで量子回路を実行する
別の記事に記載の通り、AWSの量子コンピューティングサービスであるAmazon Braketにおいては、Amazon Braket SDKと呼ばれる量子コンピューティングSDKを用いて各サービスを簡単に利用可能となります。 この記事ではAmazon Braket SDKをインストールし、Jypyter Notebook上で実行する方法について説明します。
Amazon Braket学習コース 本記事で言及されている、Amazon Braketについてより深く学びたい方へ、Amazon Braket学習コースの紹介です。
https://www.udemy.com/course/quantum-computing-on-aws-for-beginners-amazon-braket/?referralCode=F361C3FD774489A1B5B8 量子コンピュータやAWSの知識が無い方でも学び始められ、最終的には量子機械学習についても学べます。 こちらも利用し、量子技術のスキルを身につけましょう!
Amazon Braket SDKをインストールし、Jupyter Notebookで量子回路を実行する Amazon Braket SDKはAWSが提供する量子コンピューティングSDKで、pythonにより実行可能です。このSDKにより量子回路の記述や、実行が可能となります。
Amazon Braket SDKはAmazon Braket NotebookというAWS上のJupyter Notebookインスタンスから簡単に実行可能ですが、今回はこのAmazon Braket SDKを自分のPCや、サーバに直接インストールして実行する方法について説明します。
環境はWindows 10で、pythonはPython 3.9.9を利用しています。 まずはうまくいかなかった例についてです。 以下コマンドでAmazon Braket SDKをインストールしました。
pip install amazon-braket-sdk[braket-air,notebook] jupyter notebookコマンドで環境を起動後、以下コードを実行してみます。
from braket.circuits import Circuit from braket.devices import LocalSimulator circuit = Circuit().h(0).measure(0) device = LocalSimulator() result = device.run(circuit, shots=1000).result() counts = result.measurement_counts print(counts) 結果は以下のようなエラーメッセージで失敗します。
ModuleNotFoundError: No module named 'braket' 次に成功例を記載します。以下で環境を用意します。
read more