common.title

Docs
Quantum Circuit
TYTAN CLOUD

QUANTUM GAMING


Desktop RAG

Overview
Terms of service

Privacy policy

Contact
Research

Sign in
Sign up
common.title

23年春のblueqatインターン(5/5) 量子ディープラーニングによる強化学習

Yuichiro Minato

2023/04/05 09:31

1

これまでは、量子回路の基本、テンソルについて、PQCを利用した機械学習、テンソルの近似などを見ました。今回は主にPQCを利用した機械学習においてハミルトニアンの期待値や損失関数について、OpenAIGymのCart Poleというカートを左右に移動させて棒が倒れないようにする問題を解いてみます。

ベースの記事はGoogleのTensorFlow Quantumとなっています。

https://www.tensorflow.org/quantum/tutorials/quantum_reinforcement_learning

3回目のインターン記事ではハミルトニアンの期待値は特に工夫せずZとしました。今回は二種類の強化学習を見て、ハミルトニアンの期待値と損失関数の設計を考えます。

1、方策ベースの強化学習

2、Q関数ベースのDeep-Q-Learning強化学習

TensorFlow Quantumでも参考にしている論文は下記のようです。ちょっとまだ目を通せてないので、部分的な情報で今回は書いてしまいます。

Parametrized Quantum Policies for Reinforcement Learning

https://arxiv.org/abs/2103.05577

Quantum agents in the Gym: a variational quantum algorithm for deep Q-learning

https://arxiv.org/abs/2103.15084

の2種類をみます。方策ベースの強化学習はどのように行動するか方策自体を学習し、価値ベース(後者)は方策は固定し、将来価値を最大にするような行動を選びます。

まずは全体の構成を見て、その後、二つの方式についてのハミルトニアンの期待値と損失関数の違いを確認して終わりです。

ちなみに利用するアプリケーションはCartPoleと呼ばれるもので、4つの環境の変数から2つの行動を選びます。

https://www.gymlibrary.dev/environments/classic_control/cart_pole/

今回は上記のパラメータを規格化したものを入力値として、出力値に左右のどちらかを選択するというものを実行します。

まず、量子回路を組み立てる前に3回目のPQC回路の拡張についてみます。y=sinxのfittingが単一の量子ビットの単一のレイヤーでうまくいかなかった例をベースに、複数回量子回路方向にデータ入力+スケーリング調整により、複素フーリエ級数を利用した異なる波長と振幅の波を組みあわせて複雑な関数を表現できます。下記はその辺りをフォローしています。

The effect of data encoding on the expressive power of variational quantum machine learning models

https://arxiv.org/abs/2008.08605

Data re-uploading for a universal quantum classifier

https://quantum-journal.org/papers/q-2020-02-06-226/#

今回はその辺りを鑑みて、複数回同じデータを入力し、それの振幅と波長を調整することで複雑な波を表現して機械学習に応用します。

今回の強化学習では環境の変数が4つあるので、4量子ビット必要です。

また、PQC回路を繰り返し利用します。

下記はtensorflow quantumからですが、前半のRX-RY-RZとCZのゲートがPQC回路。RXからあとはデータ入力&スケーリング調整レイヤーとなっています。

https://www.tensorflow.org/quantum/tutorials/quantum_reinforcement_learning

最後に測定をします。測定以降は今回に種類の測定結果の利用方法があります。

方策ベースの強化学習では方策を学びます。

今回はsoftmax-VQC (Variational Quantum Circuit)を利用しています。softmax関数を利用しています。ベータは逆温度パラメータです。それぞれ期待値が入ります。

期待値はZ0*Z1*Z2*Z3と、4量子ビット全部の測定結果をかけた値を使っています。

損失関数は方策勾配定理から決まるようです。

あとは回路を回して学習をすれば良いだけのようです。

今回の方策ベースも、次のQ学習についても、今回のPQC回路について変数がいくつかありますが、それを三種類の変数のグループに分けています。

1、PQC回路内部の変数

2、data re-uploadingによる繰り返しデータ入力に対応するスケーリングパラメータ変数

3、期待値にかける重み変数

この三つに対して勾配はそれぞれ更新が変わるはずなのでそれぞれ異なる最適化をかけ、学習率などのハイパラを変更しています。方策ベースの関数については逆温度パラメータの最適化が必要となり、一見Q関数ベースについては不要のように見えますが、規格化のための変数として扱うと性能が上がるようで共通して三種類の最適化が適用されています。

Q関数ベースについてはactionに関して、直接測定の期待値から値を取るようで、Z0*Z1の値がaction0に対応し、Z2*Z3がaction1に対応するように設計されています。損失関数は、

となります。

実際に実行してみるとわかりますが、かなり計算が重たいです。量子機械学習自体にはまだ優位性はありませんが、とりあえずPQCとハミルトニアン期待値から強化学習が実行できることはわかりました。また、複雑な関数をdata re-uploadみたいな手法でfittingできることも確認できました。以上です。

© 2025, blueqat Inc. All rights reserved