IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特開2024-146831メタ最適化を用いた量子ニューラルネットワークのトレーニング
<>
  • 特開-メタ最適化を用いた量子ニューラルネットワークのトレーニング 図1
  • 特開-メタ最適化を用いた量子ニューラルネットワークのトレーニング 図2
  • 特開-メタ最適化を用いた量子ニューラルネットワークのトレーニング 図3
  • 特開-メタ最適化を用いた量子ニューラルネットワークのトレーニング 図4
  • 特開-メタ最適化を用いた量子ニューラルネットワークのトレーニング 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024146831
(43)【公開日】2024-10-15
(54)【発明の名称】メタ最適化を用いた量子ニューラルネットワークのトレーニング
(51)【国際特許分類】
   G06N 10/80 20220101AFI20241004BHJP
   G06N 3/04 20230101ALI20241004BHJP
【FI】
G06N10/80
G06N3/04
【審査請求】未請求
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2024048132
(22)【出願日】2024-03-25
(31)【優先権主張番号】18/194598
(32)【優先日】2023-03-31
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ZIGBEE
2.BLUETOOTH
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】リィウ・シアオユアヌ
(72)【発明者】
【氏名】クルシュレスタ・アンキット
(72)【発明者】
【氏名】ウシジマ-ムウェシグワ・ハヤト
(57)【要約】      (修正有)
【課題】メタ最適化を使用した量子ニューラルネットワーク(QNN)のトレーニングする方法及び装置を提供する。
【解決手段】方法は、機械学習タスクに関連付けられたデータセットを受信するステップと、データセットに基づいて入力量子状態を準備するステップと、QNNとして機能するように量子コンピュータ上に変分量子回路(VQC)を準備し、状態バッファの内容を空か又はQNNのパラメータに関する過去の情報を含んでいるとして読み取り、内容に基づいてパラメータ値を選択し、パラメータ値に基づいて最適化ネットワークの入力を準備し、入力に最適化ネットワークを適用することによって出力を計算し、出力を使用してパラメータ値を更新し、更新したパラメータ値に基づいて現在のコスト関数値を取得し、現在のコスト関数値及び更新されたパラメータ値を使用して状態バッファを更新し、現在のコスト関数値が閾値を下回るまでQNNをトレーニングする。
【選択図】図3
【特許請求の範囲】
【請求項1】
電子装置のプロセッサによって実行可能な方法であって、
機械学習タスクに関連付けられたデータセットを受信するステップと、
受信したデータセットに基づき入力量子状態を準備するステップと、
量子ニューラルネットワーク(QNN)として機能するように量子コンピュータ上に変分量子回路(VQC)を準備するステップと、
一連の時間ステップのうちの現在の時間ステップについて、以下:
状態バッファの内容を読み取り、前記状態バッファが空であるか、又は前記QNNのパラメータに関する過去の情報を含むかを決定するステップと、
前記内容に基づいて前記QNNの前記パラメータの値を選択するステップと、
前記QNNの前記パラメータの前記選択された値に基づいて最適化ネットワークの入力を準備するステップと、
前記入力に前記最適化ネットワークを適用して出力を計算するステップと、
前記出力に基づいて前記QNNの前記パラメータの前記値を更新するステップと、
前記入力量子状態と前記パラメータの前記更新された値を前記QNNに渡して、前記量子コンピュータから前記QNNのコスト関数の現在の値を取得するステップと、
を含む動作を実行するステップと、
前記コスト関数の前記現在の値と前記パラメータの前記更新された値に基づいて前記状態バッファを更新するステップと、
前記コスト関数の前記現在の値がコスト閾値を下回るまで、前記パラメータの前記更新された値を使用して前記動作の実行を繰り返すことによって、前記機械学習タスクで前記QNNをトレーニングするステップと、
を含む方法。
【請求項2】
前記動作の実行前に、前記QNNの前記パラメータを初期値で初期化するステップと、
前記パラメータの初期化に基づいて前記状態バッファをインスタンス化するステップと、
を更に含み、
前記状態バッファは、前記QNNのパラメータが前記初期値で初期化されたときに空である両面キューである、請求項1に記載の方法。
【請求項3】
前記QNNの前記パラメータの値の選択は、前記状態バッファに含まれる前記QNNの前記パラメータの過去の値をサンプリングすることによって行われ、
前記サンプリングは、前記状態バッファが前記QNNの前記パラメータに関する前記過去の情報を含むという決定に基づいて行われる、請求項1記載の方法。
【請求項4】
前記一連の時間ステップのうちの前記現在の時間ステップに先行する2つの連続する時間ステップについて得られた前記コスト関数の過去の値を検索するステップと、
前記過去の値の間の差を計算するステップと、
前記差と前記パラメータの前記選択された値を連結することによって入力ベクトルを構築するステップと、
前記入力ベクトルへの指数スケーリングの適用及び正規化係数に基づいて前記最適化ネットワークのための前記入力を準備するステップと、
を更に含む、請求項1に記載の方法。
【請求項5】
前記最適化ネットワークは、長短期記憶(LSTM)ネットワークであって、前記LSTMネットワークは、メタパラメータに関連付けられ、前記LSTMネットワークの隠れ状態を維持するように構成される、請求項1記載の方法。
【請求項6】
前記最適化ネットワークの前記入力は、前記LSTMネットワークの前記隠れ状態を更に含む、請求項5記載の方法。
【請求項7】
前記QNNの前記パラメータの値は、以下:
前記最適化ネットワークの前記出力に非線形活性化関数を適用することによって前記出力を変換し、
前記変換された出力を学習率パラメータの値で乗算して、前記現在の時間ステップの更新値を生成し、
前記更新値を、前記現在の時間ステップにおける前記QNNの前記パラメータの前記選択された値に加算する、
ことによって更新される、請求項1に記載の方法。
【請求項8】
前記状態バッファは、前記現在の時間ステップに先行する1つ以上の時間ステップについての前記コスト関数の過去の値を更に含み、
前記過去の情報は、前記現在の時間ステップに先行する1つ以上の時間ステップについての前記QNNの前記パラメータの過去の値に対応する、請求項1に記載の方法。
【請求項9】
前記現在の時間ステップについての前記コスト関数の現在の値を、前記一連の時間ステップのうちの前記現在の時間ステップに先行する時間ステップについての前記コスト関数の過去の値と比較するステップ、を更に含み、
前記過去の値は前記電子装置のメモリに含まれ、
前記状態バッファは、前記比較に基づいて、前記コスト関数の現在の値及び前記パラメータの前記更新された値を含むように更新される、請求項1に記載の方法。
【請求項10】
前記動作の実行前に、前記最適化ネットワークのメタパラメータをメタパラメータ値で初期化するステップと、
前記一連の時間ステップのうちの各時間ステップについて得られた前記コスト関数の値に基づいて、前記一連の時間ステップの終了後に、前記最適化ネットワークのメタ損失関数を評価するステップと、
前記メタ損失関数に基づいて前記メタパラメータ値を更新するステップと、
を更に含む請求項1に記載の方法。
【請求項11】
前記VQCは、特定の配置の量子ゲートのセットを含むパラメータ化された量子回路であり、前記量子ゲートのセットは、前記量子コンピュータの量子ビットのセットに対して実行される動作のセットを表す、請求項1に記載の方法。
【請求項12】
命令を格納するように構成された非一時的コンピュータ可読記憶媒体であって、前記命令は、実行されることに応答して、電子装置に動作を実行させ、前記動作は、
機械学習タスクに関連付けられたデータセットを受信するステップと、
前記データセットに基づき入力量子状態を準備するステップと、
量子ニューラルネットワーク(QNN)として機能するように量子コンピュータ上に変分量子回路(VQC)を準備するステップと、
一連の時間ステップのうちの現在の時間ステップについて、以下:
状態バッファの内容を読み取り、前記状態バッファが空であるか、又は前記QNNのパラメータに関する過去の情報を含むかを決定するステップと、
前記内容に基づいて前記QNNの前記パラメータの値を選択するステップと、
前記QNNの前記パラメータの前記選択された値に基づいて最適化ネットワークの入力を準備するステップと、
前記入力に前記最適化ネットワークを適用して出力を計算するステップと、
前記出力に基づいて前記QNNの前記パラメータの前記値を更新するステップと、
前記入力量子状態と前記パラメータの前記更新された値を前記QNNに渡して、前記量子コンピュータから前記QNNのコスト関数の現在の値を取得するステップと、
を含む動作を実行するステップと、
前記コスト関数の前記現在の値と前記パラメータの前記更新された値に基づいて前記状態バッファを更新するステップと、
前記コスト関数の前記現在の値がコスト閾値を下回るまで、前記パラメータの前記更新された値を使用して前記動作の実行を繰り返すことによって、前記機械学習タスクで前記QNNをトレーニングするステップと、
を含む、非一時的コンピュータ可読記憶媒体。
【請求項13】
前記動作は、
前記動作の実行前に、前記QNNの前記パラメータを初期値で初期化するステップと、
前記パラメータの初期化に基づいて前記状態バッファをインスタンス化するステップと、
を更に含み、
前記状態バッファは、前記QNNのパラメータが前記初期値で初期化されたときに空である両面キューである、請求項12に記載の非一時的コンピュータ可読記憶媒体。
【請求項14】
前記QNNの前記パラメータの値の選択は、前記状態バッファに含まれる前記QNNの前記パラメータの過去の値をサンプリングすることによって行われ、
前記サンプリングは、前記状態バッファが前記QNNの前記パラメータに関する前記過去の情報を含むという決定に基づいて行われる、請求項12記載の非一時的コンピュータ可読記憶媒体。
【請求項15】
前記動作は、
前記一連の時間ステップのうちの前記現在の時間ステップに先行する2つの連続する時間ステップについて得られた前記コスト関数の過去の値を検索するステップと、
前記過去の値の間の差を計算するステップと、
前記差と前記パラメータの前記選択された値を連結することによって入力ベクトルを構築するステップと、
前記入力ベクトルへの指数スケーリングの適用及び正規化係数に基づいて前記最適化ネットワークのための前記入力を準備するステップと、
を更に含む、請求項12に記載の非一時的コンピュータ可読記憶媒体。
【請求項16】
前記最適化ネットワークは、長短期記憶(LSTM)ネットワークであって、前記LSTMネットワークは、メタパラメータに関連付けられ、前記LSTMネットワークの隠れ状態を維持するように構成される、請求項12記載の非一時的コンピュータ可読記憶媒体。
【請求項17】
前記QNNの前記パラメータの値は、以下:
前記最適化ネットワークの前記出力に非線形活性化関数を適用することによって前記出力を変換し、
前記変換された出力を学習率パラメータの値で乗算して、前記現在の時間ステップの更新値を生成し、
前記更新値を、前記現在の時間ステップにおける前記QNNの前記パラメータの前記選択された値に加算する、
ことによって更新される、請求項12に記載の非一時的コンピュータ可読記憶媒体。
【請求項18】
前記動作は、
前記現在の時間ステップについての前記コスト関数の現在の値を、前記一連の時間ステップのうちの前記現在の時間ステップに先行する時間ステップについての前記コスト関数の過去の値と比較するステップ、を含み、
前記過去の値は前記電子装置のメモリに含まれ、
前記状態バッファは、前記比較に基づいて、前記コスト関数の現在の値及び前記パラメータの前記更新された値を含むように更新される、請求項12に記載の非一時的コンピュータ可読記憶媒体。
【請求項19】
前記動作は、
前記動作の実行前に、前記最適化ネットワークのメタパラメータをメタパラメータ値で初期化するステップと、
前記一連の時間ステップのうちの各時間ステップについて得られた前記コスト関数の値に基づいて、前記一連の時間ステップの終了後に、前記最適化ネットワークのメタ損失関数を評価するステップと、
前記メタ損失関数に基づいて前記メタパラメータ値を更新するステップと、
を含む、請求項12に記載の非一時的コンピュータ可読記憶媒体。
【請求項20】
電子装置であって、
命令を格納するように構成されたメモリと、
前記メモリに結合され、前記命令を実行して処理を実行するよう構成されたプロセッサと、
を含み、前記処理は、
機械学習タスクに関連付けられたデータセットを受信するステップと、
受信したデータセットに基づき入力量子状態を準備するステップと、
量子ニューラルネットワーク(QNN)として機能するように量子コンピュータ上に変分量子回路(VQC)を準備するステップと、
一連の時間ステップのうちの現在の時間ステップについて、以下:
状態バッファの内容を読み取り、前記状態バッファが空であるか、又は前記QNNのパラメータに関する過去の情報を含むかを決定するステップと、
前記内容に基づいて前記QNNの前記パラメータの値を選択するステップと、
前記QNNの前記パラメータの前記選択された値に基づいて最適化ネットワークの入力を準備するステップと、
前記入力に前記最適化ネットワークを適用して出力を計算するステップと、
前記出力に基づいて前記QNNの前記パラメータの前記値を更新するステップと、
前記入力量子状態と前記パラメータの前記更新された値を前記QNNに渡して、前記量子コンピュータから前記QNNのコスト関数の現在の値を取得するステップと、
を含む動作を実行するステップと、
前記コスト関数の前記現在の値と前記パラメータの前記更新された値に基づいて前記状態バッファを更新するステップと、
前記コスト関数の前記現在の値がコスト閾値を下回るまで、前記パラメータの前記更新された値を使用して前記動作の実行を繰り返すことによって、前記機械学習タスクで前記QNNをトレーニングするステップと、
を含む、電子装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示で説明する実施形態は、メタ最適化を使用した量子ニューラルネットワークのトレーニングに関するものである。
【背景技術】
【0002】
量子コンピューティングと機械学習の分野における進歩により、量子コンピューティングを使用した機械学習タスク(パターン認識など)の実行を可能にするハイブリッド量子古典アルゴリズムが開発されている。機械学習の進化に伴い、機械学習タスクの規模と複雑さが増大している。このような機械学習タスクの実行には、古典的なドメインから量子ドメインへの拡張が必要になる場合がある。この拡張は、機械学習タスクの実行に関連する計算効率、精度、又は遅延の点で、(古典的な深層学習モデルをホストする)古典的なコンピュータを上回る可能性がある量子コンピュータによって促進される可能性がある。量子コンピューティングでは、従来のアプローチを超えたスケーリングが可能になる可能性があるが、高いゲートノイズ、スケーリングの制限(数百量子ビット)、信頼性の高いエラー検出と軽減アルゴリズムが利用できないなどの制限により、量子コンピュータは従来のものに対して競争相手にならない可能性がある。このような制限を克服するために、研究者は、量子アルゴリズムと古典的アルゴリズムの間のブリッジとして機能することができる量子古典アルゴリズム(例えば、変分量子アルゴリズム(Variational quantum algorithm (VQA))を開発した。ハイブリッド量子古典アルゴリズムは、古典的コンピュータを使用する量子コンピュータの最適化に基づいて、量子コンピュータ上でより大規模な複雑な機械学習タスクを実行するために使用することができる。
【0003】
本開示で請求される主題は、任意の欠点を解決する又は上述のような環境でのみ動作する実施形態に限定されない。むしろ、この背景技術は、本開示に記載の幾つかの実施形態が実施され得る一例である技術領域を説明するためにのみ提供される。
【発明の概要】
【0004】
本発明の態様によると、方法は動作セットを含んでよい。動作セットは、機械学習タスクに関連付けられたデータセットを受信し、受信したデータセットに基づいて入力量子状態を準備することを含む。動作セットは、量子ニューラルネットワーク(Quantum Neural Network (QNN))として機能するように量子コンピュータ上の変分量子回路(Variational Quantum Circuit (VQC))を準備し、一連の時間ステップのうちの現在の時間ステップについて動作を実行することを更に含むことができる。動作は、状態バッファの内容を読み取って、状態バッファが空であるか、又はQNNのパラメータに関する過去の情報を含むかを決定することを含むことができる。動作は、状態バッファの内容に基づいてQNNのパラメータの値を選択し、QNNのパラメータの選択された値に基づいて最適化ネットワークの入力を準備することを更に含むことができる。動作は、準備された入力に最適化ネットワークを適用することによって出力を計算し、計算された出力に基づいてQNNのパラメータの値を更新し、入力量子状態及びパラメータの更新された値をQNNに渡して、量子コンピュータからQNNのコスト関数の現在の値を取得することを更に含むことができる。動作セットは、コスト関数の現在の値及びパラメータの更新された値に基づいて状態バッファを更新し、QNNのコスト関数の現在の値がコスト閾値を下回るまで、QNNのパラメータの更新された値を使用して動作の実行を繰り返すことによって機械学習タスクでQNNをトレーニングすることを更に含むことができる。
【0005】
実施形態の目的及び利点は、請求項において特に指摘される要素、特徴、及び組み合わせにより少なくとも実現され達成される。
【0006】
前述の一般的説明及び以下の詳細な説明は両方とも例として与えられ、説明のためであり、請求される本発明の限定ではない。
【図面の簡単な説明】
【0007】
例示的な実施形態は、以下の添付の図面の使用を通じて更なる特殊性及び詳細事項により記載され説明される。
【0008】
図1】メタ最適化を使用した量子ニューラルネットワークのトレーニングに関連する例示的な環境を表す図である。
【0009】
図2】メタ最適化を使用した量子ニューラルネットワークのトレーニングのための例示的なシステムを説明するブロック図である。
【0010】
図3】メタ最適化を用いた量子ニューラルネットワークのトレーニング方法の例示的な方法のフローチャートを示す図である。
【0011】
図4】量子ニューラルネットワークのパラメータの更新された値の生成及び量子ニューラルネットワークのコスト関数の最小化のための例示的なシナリオを示す図である。
【0012】
図5】メタ最適化を使用した量子ニューラルネットワークのトレーニングのための実行パイプラインを説明する図である。
【0013】
全図は、本開示に記載される少なくとも1つの実施形態に従う。
【発明を実施するための形態】
【0014】
本開示に記載される幾つかの実施形態は、メタ最適化を使用して量子ニューラルネットワークをトレーニングするための方法及びシステムに関する。ここでは、量子デバイス(例えば、変分量子回路(variational quantum circuit (VQC))を量子ハードウェア(例えば量子コンピュータ)上に準備して、量子ニューラルネットワーク(quantum neural network (QNN))を実装することができる。QNNをトレーニングするために、VQCのための最適化されたパラメータのセットを決定することができる。この決定は、古典的ハードウェア上でのメタ最適化アルゴリズムの実行に基づくことができる。メタ最適化アルゴリズムは、メタ最適化ネットワークに関連するメタ損失関数が最小化されるように、古典的ハードウェア上で実装されるメタ最適化ネットワークをトレーニングして、VQCのための最適化されたパラメータのセットを決定することができる。決定された最適化されたパラメータのセットを使用して、QNNに関連するコスト関数が最小化されるように、QNNの出力を決定することができる。コスト関数は、QNNを実装するVQCを使用して、量子コンピュータ上で決定することができる。
【0015】
量子コンピューティングは、QNNを使用した機械学習タスクの実行を可能にすることができる。QNNは、トレーニングデータセットを使用してトレーニングすることができる。これは、量子状態に符号化され、量子ハードウェア上のパラメータ化された量子回路を使用して実装することができる。ハイブリッド量子古典(Hybrid quantum-classical)アルゴリズム(例えば、変分量子アルゴリズム(variational quantum algorithm (VQA))は、機械学習タスクを実行するためのVQCの最適なパラメータセットの決定に基づいて、パラメータ化された量子回路(例えば、変分量子回路(variational quantum circuit (VQC)))の最適化を実現することができる。従来、パラメータ化された量子回路は、古典的ハードウェアで実行できる勾配ベースのアルゴリズム(勾配降下法など)を使用して最適化することができる。勾配ベースのアルゴリズムは、量子ハードウェア上のQNNに関連付けられた以前に計算されたコスト関数に関する勾配の計算を含むことができる。その後、勾配は、最適化されたパラメータのセットを決定するための入力として古典的なハードウェアに提供することができる。最適化されたパラメータのセットに基づいて、パラメータ化された量子回路は、QNNに関連付けられた現在のコスト関数が最小化されるように出力を生成することができる。ただし、勾配の計算はスケーラブルでない可能性があり、量子ハードウェアのサンプリングノイズの影響を受ける可能性がある。
【0016】
更に、勾配ベースのアルゴリズムを使用して最適なパラメータのセットを決定することに関連する最適化問題の計算コストは、O(N)により測定できる。ここで、Nは、VQCのパラメータの数である。従って、勾配ベースのアルゴリズムに基づくパラメータ化された量子回路(すなわちVQC)の最適化は、計算コストのスケーリングのために困難である可能性がある。二次的な計算コストは、古典的なハードウェアでは、パラメータ化された量子回路の最適化を実行不可能にする可能性がある。更に、現在のQNNトレーニングレジームでは、QNNは、オプティマイザのコスト関数を生成するブラックボックスとして機能する可能性がある(これは、古典的なハードウェアでホストされ、QNNの最適化されたパラメータセットを決定するように構成することができる)。より大規模な複雑な機械学習タスクの実行は、ゲートノイズの存在、スケーリングの制限(例えば、数百量子ビット)、信頼性の高いエラー検出及び軽減アルゴリズムが利用できないなどの量子ハードウェアの制約により、現在の世代の量子ハードウェア(例えば、Noisy Intermediate Scale Quantum (NISQ)デバイス)では実現できない可能性がある。
【0017】
本開示の1つ以上の実施形態によれば、量子機械学習の技術分野は、QNNとして機能することができる量子回路を準備し、ニューラルネットワークに基づくメタ最適化ネットワークを使用してQNNを最適化することによって改善することができる。本開示は、機械学習タスクを実行するためにQNNをトレーニングする方法及びプロセッサを含む電子装置を提供する。動作中、電子装置は、機械学習タスクに関連付けられたデータセット(例えば、トレーニングデータセット)を受信することができる。量子コンピュータを使用してデータセットを処理するために、データセットを入力量子状態に符号化することができる。入力量子状態は、受信したデータセット上の符号化回路の適用に基づいて準備することができる。その後、電子装置は、QNNとして機能するように、量子コンピュータ上に変分量子回路(VQC)を準備することができる。QNNは、VQC及び入力量子状態に関連付けられたパラメータのセットに基づいて、出力量子状態を生成することができる。その後、生成された出力量子状態は、古典的な出力にマップすることができる。古典的な出力及び受信したデータセットに対応するラベルのセットは、QNNに関連付けられたコスト関数値の決定に使用することができる。QNNは、コスト関数値の最小化に基づきトレーニングされてよい。コスト関数値は、VQCに関連付けられたパラメータのセットの最適化された値の決定に基づいて最小化することができる。
【0018】
VQCの準備の後、状態バッファの内容を読み取ることができる。状態バッファは、VQCに関連付けられたパラメータのセットの以前に決定された値、QNNに関連付けられた以前に決定されたコスト関数値、及びメタ最適化ネットワークに関連付けられた以前の隠れ状態を含むことができる。読み取った内容に基づいて、VQCに関連付けられたパラメータの値を選択して、パラメータの更新された値を決定することができる。選択された値は、メタ最適化アルゴリズムのための入力の準備のために使用することができる。メタ最適化アルゴリズムは、出力を計算するためにメタ最適化ネットワーク上で実行することができる。出力は、メタパラメータの最適なセットを使用して、準備された入力に対するメタ最適化ネットワークの適用に基づいて計算することができる。メタパラメータの最適なセットは、メタ最適化ネットワークのメタ損失関数の最小化に基づいて決定することができる。メタ最適化アルゴリズムの出力に基づいて、パラメータのセットの更新された値を計算することができる。パラメータのセットの更新された値は、コスト関数の現在の値を得るために使用することができる。コスト関数の現在の値は、以前に決定されたコスト関数の値よりも小さくすることができる。電子装置は、コスト関数の現在の値がコスト閾値よりも小さい値に最小化されるまで、パラメータのセットと(量子コンピュータを使用して決定される)コスト関数の反復的決定に基づいてQNNを更にトレーニングすることができる。コスト関数の最小の可能な値は、パラメータのセットの決定された値がパラメータのセットの最適化された値である場合に得ることができる。
【0019】
本開示の実施形態は、添付の図面を参照して説明される。
【0020】
図1は、本開示に記載される少なくとも1つの実施形態による、メタ最適化を用いた量子ニューラルネットワークのトレーニングに関連する例示的な環境を表す図である。図1を参照すると、コンピューティング環境100が示される。コンピューティング環境100には、システム102、ユーザ装置104、及びディスプレイ装置106が示されている。システム102、ユーザ装置104、及びディスプレイ装置106は、通信ネットワーク108を介して互いに通信可能に結合することができる。システム102は、量子コンピュータ110、及び電子装置112を含んでよい。更に示すように、量子ニューラルネットワーク(QNN)114を量子コンピュータ110上に実装し、最適化ネットワーク116を電子装置112上に実装することができる。
【0021】
システム102は、オンプレミスコンピューティング環境又はクラウドコンピューティング環境の一部であってもよい。システム102は、機械学習タスクを実行するためにQNN114をトレーニングすることに関連する動作を実行するように構成することができる適切なロジック、回路、及びインタフェースを含むことができる。QNN114は、最適化ネットワーク116を使用して、QNN114として機能するVQCの最適化を可能にすることができるハイブリッド量子古典アルゴリズムを使用してトレーニングすることができる。VQC(すなわちQNN114)の最適化は、最適化ネットワーク116の最適メタパラメータに基づく、VQCに関連する一組の最適化されたパラメータセットの決定に対応し得る。システム102は、QNN114に関連するコスト関数が最小化されるように、最適化ネットワーク116に関連するメタ損失関数を最小化することによって最適メタパラメータを決定するように構成することができる。コスト関数は、VQCに関連する最適化されたパラメータのセットの決定に基づいて最小化することができる。より具体的には、コスト関数は、一連の時間ステップに対応する動作のセットの反復実行に基づいて最小化することができる。各時間ステップにおいて、パラメータのセットを決定するために動作のセットを実行することができ、QNN114に関連するコスト関数を決定することができる。一連の時間ステップの終了時に(すなわち、動作セットの実行の事前定義された回数の反復の後)、システム102は、QNN114に関連するコスト関数の最小値に対応することができる最適化されたパラメータのセットを決定することができる。
【0022】
ユーザ装置104は、QNN114のトレーニングに関連することができるデータセット(すなわち、入力データ点及び入力データ点に対応するラベル)を構成及び送信するためのオプションを備えたユーザインタフェース(UI)をレンダリングするように構成することができる適切なロジック、回路、及びインタフェースを含むことができる。UIは、各時間ステップにおいて決定することができるQNN114に関連するコスト関数値及びQNN114のパラメータを更にレンダリングすることができる。ユーザ装置104は、ネットワークインタフェースを介してシステム102と通信することができる。ユーザ装置104の例としては、モバイル装置、デスクトップコンピュータ、ラップトップ、仮想機械、コンピュータワークステーション、又はクラウドサーバのようなサーバが挙げられるが、これらに限定されるものではない。
【0023】
ディスプレイ装置106は、ユーザ装置104によって提供される入力及びシステム102によって生成される出力を表示するように構成することができる適切なロジック、回路、及びインタフェースを含むことができる。特定の実施形態では、ディスプレイ装置106は、ユーザがディスプレイ装置106を介してユーザ入力を提供することを可能にすることができる。ディスプレイ装置106は、液晶ディスプレイ(LCD)ディスプレイ、発光ダイオード(LED)ディスプレイ、プラズマディスプレイ、又は有機LED(OLED)ディスプレイ技術、又は他のディスプレイ装置などの幾つかの既知の技術によって実現され得るが、これらに限定されない。一実施形態によれば、ディスプレイ装置106は、ヘッドマウント装置(HMD)、スマート眼鏡装置、シースルーディスプレイ、プロジェクションベースディスプレイ、エレクトロクロミックディスプレイ、又は透明ディスプレイのディスプレイ画面を指すことができる。
【0024】
通信ネットワーク108は、システム102、ユーザ装置104、及びディスプレイ装置106が相互に通信できる通信媒体を含むことができる。通信ネットワーク108は、有線接続又は無線接続のうちの1つであってよい。通信ネットワーク108の例としては、インターネット、クラウドネットワーク、セルラ又はワイヤレスモバイルネットワーク(Long-Term Evolution及び5G New Radioなど)、ワイヤレスフィデリティ(Wi-Fi)ネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、又はメトロポリタンエリアネットワーク(MAN)が挙げられるが、これらに限定されるものではない。コンピューティング環境100内の種々の装置は、種々の有線及び無線通信プロトコルに従い、通信ネットワーク108に接続するよう構成されてよい。このような有線及び無線通信プロトコルの例は、限定ではないが、TCP/IP(Transmission Control Protocol and Internet Protocol)、UDP(User Datagram Protocol)、HTTP(Hypertext Transfer Protocol)、FTP(File Transfer Protocol)、ZigBee、EDGE、IEEE802.11、Li-Fi(light fidelity)、802.16、IEEE802.11s、IEEE802.11g、マルチホップ通信、無線アクセスポイント(AP)、装置間通信、セルラ通信プロトコル、及びBT(Bluetooth)通信プロトコルを含んでよい。
【0025】
量子コンピュータ110は、入力を受信し、ユニタリ動作(量子論理ゲート動作及び測定のシーケンスとして定義することができる)に従って入力を変換するように構成することができるゲートベースの量子コンピュータであってもよい。動作は、QNN114として機能するように量子コンピュータ110上に準備することができるVQCによって表すことができる。
【0026】
本開示の1つ以上の実施形態では、量子コンピュータ110は、クラウド最適化システム上でホストすることができる一般化された量子コンピューティング装置として実装することができる。クラウド最適化システムは、プライベートクラウド、パブリッククラウド又はハイブリッドクラウドの1つとして実装され得る。このような実装では、一般化された量子コンピューティング装置は、アプリケーション層で専用の最適化解決ソフトウェアアプリケーション又はシミュレーションソフトウェアを使用して、最適化ネットワーク116からQNN114に関連付けられた最適化されたパラメータのセットを受信し、最適化されたパラメータのセットに基づいてVQC(QNN114として機能する)を最適化するためのハイブリッド量子古典アルゴリズムを実装することができる。
【0027】
汎用量子コンピューティング装置は、トランジスタベースのデジタル回路に基づくデジタルデバイスのような、デジタルビットベースのコンピューティング装置とは異なる場合がある。汎用量子コンピューティング装置は、量子ビット(以下では、量子ビット(qubit)という)を使用して異なる情報処理アプリケーションのための計算を実行する1つ以上の量子ロジックゲートを含む場合がある。一般に、量子ビットは、「0」、「1」、又は「0」と「1」の両方の重ね合わせを表すことができる。ほとんどの場合、汎用量子コンピューティング装置が適切に機能するには、慎重に制御された極低温環境が必要になる場合がある。汎用量子コンピューティング装置は、量子ゆらぎ、固有状態の量子重ね合わせ、量子トンネリング、量子もつれなど、量子力学システムに見られる特定の特性を使用することができる。これらの特性は、一般化された量子コンピューティング装置が、量子の利点を示すために特定の数学的問題を解決するための計算を実行するのに役立つ場合がある。通常、これらの問題は、古典コンピューティング装置(例えば、トランジスタベースの回路を使用する古典的なコンピュータ)では計算が困難な場合がある。汎用量子コンピューティング装置の例には、シリコンベースの核スピン量子コンピュータ、トラップされたイオン量子コンピュータ、キャビティ量子電気力学(cavity quantum-electrodynamics (QED))コンピュータ、核スピンに基づく量子コンピュータ、量子ドット内の電子スピンに基づく量子コンピュータ、超伝導ループとJosephson接合を使用する超伝導量子コンピュータ、及び核磁気共鳴量子コンピュータが含まれるが、これらに限定されない。
【0028】
他の幾つかの実施形態では、量子コンピュータ110は、量子機械学習タスクを実行するように設計され、ハードウェア/ソフトウェアが最適化された、特別な目的の量子コンピュータであってもよい。汎用量子コンピューティング装置と同様に、特定目的量子コンピュータは、量子ビットを使用してもよく、適切に機能するために慎重に制御された極低温環境を必要としてもよい。
【0029】
幾つかの他の実施形態では、量子コンピュータ110は、デジタル量子コンピューティングプロセッサであってもよい。より具体的には、量子コンピュータ110は、半導体ベースのプロセッサを備えたデジタルコンピュータ上で実行可能な量子シミュレーションソフトウェアとして実装されてもよい。量子シミュレーションソフトウェアは、デジタル回路上の量子コンピュータ110の機能をモデル化するように設計されてもよい。デジタルコンピュータは、室温で動作し、機能するために極低温環境を必要としなくてもよい。
【0030】
幾つかの他の実施形態では、量子コンピュータ110は、QNN114として機能するVQCのサブルーチンのようなソフトウェア命令を実行するためのプロセッサを含んでよい。プロセッサの実装の例としては、縮小命令セットコンピューティング(RISC)プロセッサ、特定用途向け集積回路(ASIC)プロセッサ、複合命令セットコンピューティング(CISC)プロセッサ、グラフィック処理装置(GPU)、コプロセッサ、及び/又はそれらの組み合わせが挙げられるが、これらに限定されるものではない。
【0031】
電子装置112は、最適化ネットワーク116に関連付けられたプログラム命令を実行するように構成されてもよい適切なロジック、回路、及びインタフェースを含んでもよい。電子装置112は、機械学習タスクを実行するようにQNN114をトレーニングするために量子コンピュータ110とタンデムで又は関連して動作する古典的コンピュータ(すなわち、半導体ベースのデジタル回路を備えたトランジスタベースのコンピュータ)であってもよい。
【0032】
QNN114(すなわちVQC)は、量子ビットなどの量子データに対するコヒーレント量子演算をリアルタイムの古典計算と組み合わせる計算ルーチン(すなわち、命令セット)に対応することができる。VQCは、リアルタイム古典計算ですべて調整することができ、古典計算から収集されたデータを使用することができる、順序付けられた一連の量子論理ゲート、測定、及びリセットを含むことができる。一実施形態によれば、VQCは、演算子(例えば、位相及び混合演算子)のための量子論理ゲートのセットと、演算子及び量子論理ゲートが動作するように構成することができる量子ビット(例えば、物理量子ビットを表す論理量子ビット)のセットとを含む、パラメータ化された量子回路であることができる。量子論理ゲートは、例えば、1つ以上のHadamardゲート、Rx及びRzゲート(つまり、Rotation Operator)、及びCNOTゲートを含むことができる。仮説(ansatz)は、QNN114をトレーニングするために使用することができるデータセットに応じて変化することができる。
【0033】
最適化ネットワーク116は、電子装置112によって実行されると、QNN114に関連付けられたコスト関数の値に基づいて、(QNN114として機能する)VQCのパラメータの値を計算することができるソフトウェアプログラム、ルーチン又はサブルーチンであることができる。最適化ネットワーク116は、機械学習で使用されるオプティマイザと同様であることができる。最適化ネットワーク116は、ハイパーサーフェス(すなわち、コスト状況(cost landscape))を定義することができ、オプティマイザのタスクは、ランドスケープをナビゲートし、ハイパーサーフェス上のグローバルな最大値(又は最小値)を見つけることであることができる。最適化ネットワークの例には、長短期記憶(LSTM)ネットワークLSTMネットワークであって、メタパラメータに関連付けられ、LSTMネットワークの隠れ状態を維持するように構成されるLSTMネットワークが含まれるが、これに限定されない。最適化ネットワーク116としてLSTMネットワークを使用することにより、勾配ベースのアルゴリズムを使用することなく、量子コンピュータ110におけるVQCの最適化を可能にすることができる。
【0034】
動作において、システム102は、機械学習タスクに関連付けられたデータセットを受信することができる。一実施形態によれば、受信したデータセットを使用して、機械学習タスク(分類、クラスタリング、強化機械学習、識別機械学習など)を実行するようにQNN114をトレーニングすることができ、データポイントのセットと、データポイントのセットに対応するラベルのセットとを含むことができる。限定ではなく一例として、データポイントのセットは、アイリスデータセット、ガウス2Dデータセット、及びスパイラル2Dデータセットに属することができる。QNN114は、データセットの各データポイントのラベルと、受信したデータセットとは異なる新しいデータセットの未知のデータポイントとを予測するようにトレーニングする必要がある場合がある。
【0035】
システム102は、受信したデータセットに基づいて入力量子状態を準備することができる。一実施形態によれば、入力量子状態を準備するために、受信したデータセットに符号化回路を適用することができる。符号化回路は、データポイントのセットの各データポイントの各コンポーネント(すなわち、受信したデータセット)を量子状態に符号化することができる。例えば、各データポイントが「D」コンポーネントを含む場合(すなわち、各データポイントは「D」次元データベクトルである)、符号化回路は、対応するデータポイントを「log(D)」個の量子ビットを含む入力量子状態に符号化することができる。
【0036】
システム102は、QNN114として機能することができる量子コンピュータ110上にVQCを更に準備することができる。VQCは、QNN114として機能するパラメータ化された量子回路であってもよい。VQCの準備は、所定の数のユニタリゲートの構成の形成に基づいてもよい。従って、QNN114として機能するVQCは、所定の数のパラメータ化されたユニタリ行列の積として表すことができる。VQCのユニタリゲートは、実数値パラメータ(すなわち、QNN114のパラメータ)を使用してパラメータ化されてもよい。準備されたVQCは、トレーニングされたQNN(例えば、QNN114)として機能してもよく、パラメータの最適な実数値の決定及び決定された最適な実数値を使用したユニタリゲートのパラメータ化に基づいて、機械学習タスクを実行するように構成されてもよい。準備されたVQCは、パラメータの最適値及び入力量子状態に基づいて量子出力を生成してもよい。量子出力は、スケーリングされてもよく、QNN114のコスト関数は、ラベルのセット及びスケーリングされた量子出力に基づいて決定されてもよい。コスト関数がグローバル最小値に最小化される場合、QNN114のトレーニングは完了したものとして決定されてもよい。
【0037】
システム102は、一連の時間ステップのうちの現在の時間ステップに対して、動作を実行してもよい。一実施形態によれば、システム102は、コスト関数が一連の時間ステップ(例えば、有限の時間枠)にわたって最小化されるように、最適化ネットワーク116に関連付けられたメタ損失関数を最小化してもよい。動作は、一連の時間ステップにわたって所定の回数実行され、状態バッファの内容を読み出して、状態バッファが空であるか、又はQNN114のパラメータに関する過去の情報を含むかを決定することを含んでもよい。状態バッファは、動作が最初に実行される場合、空であってもよい。状態バッファは、QNN114のパラメータの過去の値、QNN114のコスト関数の過去の値、及び最適化ネットワーク116の隠れ状態の過去の値が状態バッファに含まれていることの決定に基づいて、過去の情報を含んでもよい。QNN114の過去の値パラメータ、コスト関数、及び隠れ状態は、現在の時間ステップより前の(一連の時間ステップのうちの)時間ステップで決定されてもよい。状態バッファは、一連の時間ステップのうちの現在の時間ステップより前の連続する時間ステップで決定されたコスト関数の値の差に対応するコスト関数の差の包含に基づいて、過去の情報を含んでもよい。
【0038】
動作は、更に、その内容に基づいてQNN114のパラメータの値を選択することを含んでもよい。状態バッファが空である場合、選択された値は、QNN114のパラメータの初期値及び最適化ネットワーク116の隠れ状態の初期値を含んでもよい。更に、コスト関数の差が「1」であることを選択してもよい。状態バッファが空でない場合、選択された値は、現在の時間ステップより前の時間ステップで決定されたQNN114のパラメータの値、現在の時間ステップより前の連続する2つの時間ステップで得られたコスト関数の値に基づいて決定されたコスト関数の差の値、及び現在の時間ステップより前の時間ステップで決定された最適化ネットワーク116の隠れ状態の値を含んでもよい。パラメータの選択された値は、QNN114のコスト関数の最小値が得られる値であってもよい。
【0039】
動作は、QNN114のパラメータの選択された値に基づいて、最適化ネットワーク116に対する入力を準備することを更に含むことができる。一実施形態によれば、QNN114のパラメータの選択された値とコスト関数差の選択された値との連結、連結を正規化することができる非線形関数、及び非線形関数によって適用される正規化の強度を制御することができるパラメータに基づいて、入力を準備することができる。非線形関数は、正規化された出力(すなわち、正規化された連結)を生成するために連結に適用することができる。その後、正規化された出力の結果とパラメータとの比を、入力の準備のために決定することができる。準備された入力は、QNN114の更新されたパラメータを決定するために、最適化ネットワーク116に提供することができる。最適化ネットワーク116に提供される入力は、最適化ネットワーク116の隠れ状態(例えば、LSTMネットワークの隠れ状態)の選択された値を更に含むことができる。
【0040】
動作は、準備された入力に最適化ネットワーク116を適用することによって出力を計算することを更に含むことができる。出力は、最適化ネットワーク116の隠れ状態の選択された値に基づいて更に計算することができる。動作は、計算された出力に基づいてQNN114のパラメータの値を更新することを更に含むことができる。一実施形態によれば、QNN114のパラメータの値は、一連の時間ステップのうちの前の時間ステップにおいて決定され得るQNN114のパラメータの値、ハイパーパラメータ、及び計算された出力に対する非線形活性化関数の適用に基づいて得られ得る結果に基づいて更新することができる。システム102は、ハイパーパラメータに基づいて(QNN114のパラメータの値の)更新の強度を更に制御することができる。最適化ネットワーク116は、最適化ネットワーク116の隠れ状態の更新された値を更に生成することができる。
【0041】
動作は、QNN114のコスト関数の現在の値を量子コンピュータ110から取得するために、入力量子状態及びパラメータの更新された値をQNN114に渡すことを更に含むことができる。(QNN114として機能する)VQCのユニタリゲートは、QNN114のパラメータの更新された値を使用してパラメータ化することができる。QNN114は、パラメータの更新された値及び入力量子状態へのQNN114の適用に基づいて量子出力を生成することができる。システム102は、生成された量子出力をスケーリングし、ラベルのセット及びスケーリングされた量子出力に基づいてコスト関数の現在の値を決定することができる。
【0042】
システム102は、コスト関数の現在の値及びパラメータの更新された値に基づいて状態バッファを更新することができる。更新は、コスト関数の現在の値及びパラメータの更新された値を状態バッファに含めることに対応することができる。状態バッファは、最適化ネットワーク116の隠れ状態の更新された値及び現在の時間ステップで決定されたコスト関数の値と一連の時間ステップのうちの前の時間ステップで決定されたコスト関数の値との差に対応するコスト関数差に基づいて更に更新することができる。従って、更新は、隠れ状態の更新された値及びコスト関数差を状態バッファに含めることに更に対応することができる。
【0043】
システム102は、QNN114のコスト関数の現在値がコスト閾値を下回るまで、更新された値を使用して動作の実行を繰り返すことによって、機械学習タスクについてQNN114をトレーニングすることができる。一連の時間ステップに渡って動作を繰り返し実行した後にコスト関数が最小化される場合、QNN114のコスト関数の現在値は、コスト閾値を下回ることができる。最小化は、コスト関数の現在値が設定されたグローバル最小値以下になるようにすることができる。この段階で、QNN114のトレーニングフェーズを完了したものとして識別することができる。
【0044】
変更、追加、又は省略が、本開示の範囲から逸脱することなく図1に対して行われてよい。例えば、ネットワーク環境100は、図示され本開示で説明されるよりも多数又は少数の要素を含んでよい。
【0045】
図2は、本開示に記載されている少なくとも1つの実施形態に従って、メタ最適化を使用して量子ニューラルネットワークをトレーニングするための例示的なシステムを示すブロック図である。図2は、図1の要素と関連して説明される。図2を参照すると、システム102のブロック図200が示される。システム102は、量子コンピュータ110、及び電子装置112を含んでよい。示されるように、例えば、量子コンピュータ110は、QNN114(すなわちVQC)、量子コンパイラ202a、及び量子プロセッサ202bを含むゲートベースの量子コンピュータであってもよい。同様に、電子装置112は、プロセッサ204a、メモリ204b、永久データ記憶装置204c、及び最適化ネットワーク116を含むトランジスタベースのコンピュータ(すなわち古典的コンピュータ)であってもよい。特定の実施形態では、最適化ネットワーク116は、メモリ204bに格納されてもよい。量子プロセッサ202b及びプロセッサ204aは、システム102の1つ以上のプロセッサと呼ばれてもよい。
【0046】
通常、コンパイラは、2つの言語、すなわちソース言語とターゲット言語の間でコンピュータコードを翻訳するように構成されたコンピュータプログラムである。量子アルゴリズムはエラーのない量子ビット及び論理ゲートを必要とするため、量子コンパイラ202aは、量子で使用される量子ゲート動作を機械レベルの動作に翻訳し、デコヒーレンスによる量子情報の損失を減らすように構成されてもよい。ゲートベースの量子コンピュータのコンパイラは、物理層と論理層の両方で量子ゲートの合成を実行してもよい。量子コンパイラ202aは、一連の命令(例えば、QNN114又はVQC)に対して動作し、そのような命令が量子コンピュータ110上で実行可能であることを保証してもよい。そのような命令は、量子命令セットを利用して、高水準アルゴリズムを量子プロセッサ202b上で実行可能な物理命令に変換してもよい。
【0047】
量子プロセッサ202b(量子処理ユニット(quantum processing unit (QPU))とも呼ばれる)は、相互接続された量子ビットのセットを含むことができる物理装置(例えばチップ)を表してもよい。量子プロセッサ202bは、通常、ハウジング環境(例えば、極低温を達成するための冷却機構)、量子プロセッサ202bの制御システムなどを含むことができる。
【0048】
図示されていないが、量子コンピュータ110は、物理層、仮想層、エラー訂正層、論理層、及びアプリケーション層などの層を含む階層アーキテクチャを有することができる。物理層には、物理量子ビット及び制御動作を含むが、これらに限定されないハードウェアを含めることができる。仮想層は、エラーキャンセルを組み込むことができ、量子ビットの量子ダイナミクスを収集し、仮想量子ビット及び量子ゲートに整形する役割を果たすことができる。エラー訂正層は、フォルトトレラント量子コンピューティングのための量子エラー訂正ロジックを組み込むことができる。論理層は、ハードウェアに依存しない層として機能することによって、ユニバーサル量子コンピューティングをサポートすることができる。アプリケーション層は、論理量子ビットに依存するハードウェアに依存しない層であってもよい。アプリケーション層は、QNN114を含むハイレベル動作のシーケンスとして量子アルゴリズムを受け取ることができる。
【0049】
プロセッサ204aは、システム102によって実行される異なる動作に関連付けられたプログラム命令を実行するように構成することができる適切な論理、回路、及び/又はインタフェースを含むことができる。プロセッサ204aは、任意の適切な特殊目的又は汎用コンピュータ、コンピューティングエンティティ、又は様々なコンピュータハードウェア又はソフトウェアモジュールを含む処理装置を含むことができ、任意の適用可能なコンピュータ可読記憶媒体に格納された命令を実行するように構成することができる。例えば、プロセッサ204aは、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、又はプログラム命令を解釈し及び/又は実行し及び/又はデータを処理するよう構成される任意の他のデジタル若しくはアナログ回路を含んでよい。図2には単一のプロセッサとして示されるが、プロセッサ204aは、個々に又は集合的に本開示に記載のようなシステム102の任意の数の動作を実行する又は実行を指示するよう構成される任意の数のプロセッサを含んでよい。
【0050】
幾つかの実施形態では、プロセッサ204aは、プログラム命令を解釈し及び/又は実行し、及び/又はメモリ204b及び/又は永久データ記憶装置204cに格納されたデータを処理するよう構成されてよい。幾つかの実施形態では、プロセッサ204aは、プログラム命令を永久データ記憶装置204cからフェッチし、プログラム命令をメモリ204bにロードしてよい。プログラム命令がメモリ204bにロードされた後に、プロセッサ204aは、プログラム命令を実行してよい。プロセッサ204aの例のうちの幾つかは、GPU、CPU、RISCプロセッサ、ASICプロセッサ、CISCプロセッサ、コプロセッサ、及び/又はそれらの組み合わせであってよい。
【0051】
メモリ204bは、プロセッサ204aにより実行可能なプログラム命令を格納するよう構成され得る、適切なロジック、回路、及び/又はインタフェースを含んでよい。特定の実施形態では、メモリ204bは、機械学習タスクに関連するデータセット、QNN114に関連するパラメータ(すなわちVQC)、及びQNN114に関連するコスト関数の値(すなわちVQC)を格納するように構成することができる。メモリ204bは、格納されたコンピュータ実行可能命令又はデータ構造を運ぶ又は有するコンピュータ可読記憶媒体を含んでよい。このようなコンピュータ可読記憶媒体は、プロセッサ204aのような汎用又は専用コンピュータによりアクセスされ得る任意の市販の媒体を含んでよい。
【0052】
例として、限定ではなく、このようなコンピュータ可読記憶媒体は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電気的消去可能なプログラマブル読み出し専用メモリ(EEPROM)、コンパクトディスク読み出し専用メモリ(CD-ROM)、又は他の光ディスク記憶装置、磁気ディスク記憶装置、又は他の磁気記憶装置、フラッシュメモリ素子(例えば、個体メモリ装置)、又はコンピュータ実行可能命令若しくはデータ構造の形式で特定のプログラムコードを運ぶ又は格納するために使用され得る且つ汎用又は専用コンピュータによりアクセスされ得る任意の他の記憶媒体、を含む有形又は非一時的コンピュータ可読媒体を含んでよい。上記の組み合わせも、コンピュータ可読記憶媒体の範囲に含まれてよい。コンピュータ実行可能命令は、例えば、プロセッサ204aに、システム102に関連付けられた特定動作又は一群の動作を実行させるよう構成される命令及びデータを含んでよい。
【0053】
永久データ記憶装置204cは、プロセッサ204aにより実行可能なプログラム命令、オペレーティングシステム、及び/又はログ及び特定用途データベースのような特定用途情報を格納するよう構成され得る、適切なロジック、回路、及び/又はインタフェースを含んでよい。永久データ記憶装置204cは、QNN114(すなわちVQC)のパラメータの最適化に関連する数式のセット及び最適化ネットワーク116に関連するメタパラメータなどの情報を格納するように構成することができる。永久データ記憶装置204cは、格納されたコンピュータ実行可能命令又はデータ構造を運ぶ又は有するコンピュータ可読記憶媒体を含んでよい。このようなコンピュータ可読記憶媒体は、プロセッサ204aのような汎用又は専用コンピュータによりアクセスされ得る任意の市販の媒体を含んでよい。
【0054】
例として、限定ではなく、このようなコンピュータ可読記憶媒体は、CD-ROM(Compact Disc Read-Only Memory)又は他の光ディスク記憶装置、磁気ディスク記憶装置、又は他の磁気記憶装置(例えばHDD(Hard-Disk Drive))、フラッシュメモリ装置(例えば、SDD(Solid State Drive)、SD(Secure Digital)カード、他の個体メモリ装置)、又は特定のプログラムコードをコンピュータ実行可能命令又はデータ構造の形式で運び又は格納するために使用されてよい且つ汎用又は専用コンピュータによりアクセスされ得る任意の他の記憶媒体を含む有形又は非一時的コンピュータ可読記憶媒体を含んでよい。上記の組み合わせも、コンピュータ可読記憶媒体の範囲に含まれてよい。コンピュータ実行可能命令は、例えば、プロセッサ204aに、システム102に関連付けられた特定動作又は一群の動作を実行させるよう構成される命令及びデータを含んでよい。
【0055】
変更、追加、又は省略が、本開示の範囲から逸脱することなくシステム102に対して行われてよい。例えば、幾つかの実施形態ではシステム102は、明示され又は記載されないことのある任意の数の他のコンポーネントを含んでよい。
【0056】
図3は、本開示に記載れている少なくとも1つの実施形態に従って、メタ最適化を使用して量子ニューラルネットワークをトレーニングするための例示的な方法のフローチャートを示す図である。図3Aは、図1及び図2の要素と関連して記載される。図3を参照すると、フローチャート300が示される。フローチャート300に示される方法は、302で開始してよく、任意の適切なシステム、機器、又は装置、により、例えば図1の例示的なシステム102又は図2のプロセッサ204aにより、実行されてよい。別個のブロックにより示したが、フローチャート300のブロックのうちの1つ以上に関連するステップ及び動作は、の実装に依存して、追加ブロックに分けられ、少ないブロックに結合され、又は削除されてよい。
【0057】
302で、機械学習タスクに関連するデータセットを受信することができる。一実施形態では、プロセッサ204aは、機械学習タスクに関連するデータセットを受信するように構成することができる。データセットは、機械学習タスク(分類、クラスタリング、強化機械学習、識別機械学習など)を実行するためにQNN(例えば、QNN114)をトレーニングするために使用することができるトレーニングデータセット(アイリスデータセット、ガウス2Dデータセット、スパイラル2Dデータセットなど)であってもよい。例えば、データセット「D」は、「m」個のサンプルを含むことができ、次のように表すことができる:
【数1】
各サンプルは、データポイント「xI」及び対応するラベル「yI」を含むことができる。QNN114は、入力データポイントに基づいて出力を生成するようにトレーニングすることができる。出力は、例えば、グランドトゥルースと比較して、データポイント当たりのコストを測定することができる。
【0058】
304において、入力量子状態は、受信されたデータセットに基づいて準備され得る。一実施形態では、プロセッサ204は、受信したデータセットに基づいて入力量子状態を準備するように構成することができる。準備は、受信したデータセットへの符号化回路の適用に基づいてよい。適用は、量子コンピュータ110による受信したデータセットの処理を可能にすることができる。準備された入力状態は、以下であってよい:
【数2】
ここで、
【数3】
は、「d」次元データベクトルの各成分を、「q=log(d)」個の量子ビットを含む入力量子状態へと符号化することができるユニタリであってよい。「d」次元データベクトルは、受信されたデータセットに含まれるデータポイント「xI」を表すことができる。更に、「G」は、エルミート行列を生成し得る量子コンピュータ110内のパラメータ化された量子回路の量子ゲートであってもよい。
【0059】
306において、量子コンピュータ110上にQNN114として機能するVQCを準備することができる。一実施形態では、プロセッサ204aは、QNN114として機能するように量子コンピュータ110上にVQCを準備するように構成することができる。VQCの準備は、ユニタリゲートの構成の形成に基づいてもよい。VQCは、「n」個のパラメータ化されたユニタリ行列の積であってもよい。各ユニタリ行列は、ユニタリゲートを表すことができ、積は、ユニタリゲートの構成を表すことができる。パラメータ化されたユニタリ行列は、次のように表すことができ:
【数4】
VQCは、次のように表すことができる:
【数5】
ここで、「U」は、次式によってパラメータ化されたユニタリ行列であり:
【数6】
「θ」は、VQC(すなわちQNN114)のパラメータに対応することができる。準備されたVQCによって実装されるQNN114は、次のように表すことができ:
【数7】
ここで、
【数8】
は、QNN114によって生成された量子出力をスカラ出力にマッピングすることができる量子観測可能であり(quantum observable)、
【数9】
は、ユニタリ行列「U」の複素共役であってよい。
【0060】
一実施形態によれば、プロセッサ204aは、QNN114のパラメータを初期値「θt」で初期化し、入力量子状態及び初期化されたパラメータに基づいて以下を決定することができる:
【数10】
その後、プロセッサ204aは、誤差:
【数11】
を決定し、その誤差に基づいてQNN114のコスト関数の初期値を算出する。コスト関数の初期値は、受信したデータセットに対する平均二乗誤差に基づいて計算することができる。従って、コスト関数の初期値は次のように表すことができる:
【数12】
プロセッサ204aは、コスト関数の初期値をメモリ204bに格納してもよい。
【0061】
QNN114のコスト関数は、QNN114のパラメータを更新することによって更新され得る(すなわち、初期コスト関数値から最小化される)。プロセッサ204aは、パラメータの最適化された値に基づいてコスト関数の最小値を得ることができる。QNN114のコスト関数は、以下の式(1)に基づいて任意の時間ステップで得ることができる:
【数13】
ここで、
C(θ)は、QNN114のコスト関数を表すことができる。
mは、データセット「D」におけるサンプルのサイズ又は数を表すことができる。
yIは、データセット「D」の中のi番目の入力データポイントに対応することができるi番目のラベルを表すことができ、
fθ(xi,θ)は、QNN114の出力を表すことができる。
プロセッサ204aは、コスト関数を最小化するために最適化ネットワーク116を使用してθ*(最適化されたパラメータ値)を決定するように構成することができる。各時間ステップで得られたQNN114のコスト関数は、コスト関数の過去の値としてメモリ204bに格納することができる。
【0062】
ステップ308では、一連の時間ステップのうちの現在の時間ステップに対して動作を実行することができる。一実施形態では、プロセッサ204aは、一連の時間ステップのうちの現在の時間ステップに対して動作を実行するように構成することができる。動作は、一連の時間ステップのうちの各時間ステップにおいて、(最適化ネットワーク116を使用して)QNN114のパラメータを更新し、(式(1)を使用して)QNN114のコスト関数を(最小化するために)実行することができる。
【0063】
ステップ308Aにおいて、状態バッファの内容を読み取ることができる。一実施形態では、プロセッサ204aは、状態バッファの内容を読み取って、状態バッファが空であるか、又はQNN114のパラメータに関する過去の情報を含むかを決定するように構成することができる。プロセッサ204aは、QNN114のパラメータの初期化に基づいて状態バッファをインスタンス化することができる。状態バッファは、QNN114のパラメータが初期値で初期化されるとき、すなわち、現在の時間ステップが一連の時間ステップのうちの第1時間ステップであるとき、空であることができる両面キューであることができる。状態バッファは、QNN114のパラメータに関する過去の情報を含むことができ、これは、現在の時間ステップに先行する時間ステップにおける動作の実行に基づくことができる。状態バッファに含まれる過去の情報は、現在の時間ステップに先行する一連の時間ステップのうちの1つ以上の時間ステップにおいて決定することができるQNN114のパラメータの1つ以上の過去の値に対応することができる。過去の情報は、更に、現在の時間ステップに先行する1つ以上の時間ステップにおいて決定することができる最適化ネットワーク116の隠れ状態の過去の値に対応することができる。状態バッファは、一連の時間ステップのうちの、現在の時間ステップに先行する1つ以上の時間ステップで決定され得るコスト関数の1つ以上の過去の値を更に含むことができる。状態バッファは、一連の時間ステップのうちの、現在の時間ステップに先行する2つの連続する時間ステップで決定され得る過去のコスト関数値に関連するコスト関数差分値を更に含むことができる。
【0064】
308Bで、QNN114のパラメータの値は、読み出した内容に基づいて選択され得る。一実施形態では、プロセッサ204aは、QNN114のパラメータの値を選択するように構成され得る。QNN114のパラメータの初期化に使用される初期値は、状態バッファが空であるという決定に基づいて、パラメータの値として選択され得る。一方、状態バッファがQNN114のパラメータの過去の情報を含むと決定された場合、QNN114のパラメータの値の選択は、状態バッファに含まれるQNN114のパラメータの過去の値をサンプリングすることによって行われ得る。サンプリングは、現在の時間ステップより前の時間ステップで決定されたパラメータの過去の値を返すサンプリング関数を使用して行われ得る。サンプリング関数によって返されたパラメータの過去の値は、パラメータの値として選択され得る。返された過去の値は、QNN114のコスト関数の対応する過去の値が最も低くなり得るパラメータの値であり得る。コスト関数の対応する過去の値は、他の先行する時間ステップで決定され得るコスト関数の過去の値の中で最も低くなり得る。
【0065】
サンプリング関数は更に、現在の時間ステップに先行する時間ステップで決定され得る最適化ネットワーク116の隠れ状態の過去の値、及び現在の時間ステップに先行する2つの連続する時間ステップで得られた過去のコスト関数値に基づいて決定され得るコスト関数差を返してもよい。隠れ状態の過去の値及びコスト関数差は、状態バッファが過去の情報を含むという決定に基づいて返されてもよい。
【0066】
ステップ308Cにおいて、最適化ネットワーク116のための入力が準備されてもよい。一実施形態では、プロセッサ204aは、QNN114のパラメータの選択された値に基づいて最適化ネットワーク116のための入力を準備するように構成されてもよい。最適化ネットワーク116のための入力は、サンプリング関数によって返され得るコスト関数差に基づいて更に準備されてもよい。コスト関数差は、状態バッファが空である場合、又は現在の時間ステップが一連の時間ステップのうちの第1時間ステップである場合、「1」に初期化されてもよい。状態バッファが過去の情報を含む場合、プロセッサ204aは、一連の時間ステップのうちの現在の時間ステップの直前の2つの連続する時間ステップで得られたコスト関数の過去の値を取り出すことができる。その後、コスト関数の過去の値の間の差が計算されてもよい。計算された差は、サンプリング関数によって返されたコスト関数差に対応してもよい。
【0067】
プロセッサ204aは、更に、コスト関数の過去の値とQNN114のパラメータの選択された値との間の計算された差を連結することによって入力ベクトルを構築してもよい。最適化ネットワーク116の入力は、入力ベクトルへの指数スケーリングの適用及び正規化係数に基づいて準備されてもよい。指数スケーリングの適用は、正規化されたベクトルの生成をもたらし得る。指数スケーリングは、入力ベクトルの各成分が[0、1]の範囲内にあるように、入力ベクトルを正規化し得る。正規化係数は、指数スケーリングにより達成される正規化の強度を制御し得る。例えば、正規化係数は、50であり得る。最適化ネットワーク116に対する準備された入力は、正規化ベクトルと正規化係数との比であり得る。
【0068】
一実施形態によれば、最適化ネットワーク116は、長短期記憶(Long-Short Term Memory (LSTM))ネットワークであり得る。LSTMネットワークは、メタパラメータに関連付けられてもよく、LSTMネットワークの隠れ状態を維持するように構成されてもよい。最適化ネットワーク116に対する入力は、LSTMネットワークの隠れ状態を更に含んでもよい。LSTMネットワークの隠れ状態は、状態バッファが空である場合、又は現在の時間ステップが一連の時間ステップのうちの第1時間ステップである場合、最適化ネットワーク116の隠れ状態の初期化値に対応してもよい。一方、LSTMネットワークの隠れ状態は、最適化ネットワーク116の隠れ状態の過去の値に対応してもよい。サンプリング関数は、状態バッファが過去の情報を含むという決定に基づいて、最適化ネットワーク116の隠れ状態の過去の値を返すことができる。
【0069】
308Dにおいて、最適化ネットワーク116の出力が計算されてもよい。一実施形態では、プロセッサ204aは、準備された入力に対する最適化ネットワーク116の適用に基づいて、最適化ネットワーク116の出力を計算するように構成することができる。出力は、LSTMネットワークの隠れ状態に基づいて更に計算することができる。計算された出力は、現在の時間ステップにおけるQNN114の更新されたパラメータを決定するために使用することができる。最適化ネットワーク116又はLSTMネットワークは、LSTMネットワーク(すなわち、最適化ネットワーク116)の隠れ状態の現在の値を更に計算することができる。
【0070】
308Eにおいて、QNN114のパラメータの値を更新することができる。一実施形態では、プロセッサ204aは、計算された出力に基づいてQNN114のパラメータの値を更新するように構成することができる。パラメータの初期値は、現在の時間ステップが第1時間ステップである場合に更新することができる。その他の場合、(現在の時間ステップより前の時間ステップで決定された)パラメータの過去の値を更新することができる。
【0071】
QNN114のパラメータの初期値又は過去の値を更新するために、最適化ネットワーク116の計算された出力に非線形活性化関数を適用することによって、計算された出力を変換することができる。例えば、非線形活性化は、双曲線正接関数(「tanh()」)であってもよい。その後、プロセッサ204aは、変換された出力を学習率パラメータの値により乗算して、現在の時間ステップの更新値を生成することができる。学習率パラメータは、QNN114のパラメータの更新の強度を制御することができる。プロセッサ204aは、更に、生成された更新値を、現在の時間ステップにおけるQNN114のパラメータの選択された値(すなわち、パラメータの初期値又は現在の時間ステップより前の時間ステップで決定されたパラメータの過去の値)に加算して、QNN114のパラメータの更新dされた値を決定することができる。限定ではなく一例として、QNN114のパラメータの値は、次のように与えられる式(2)に基づいて更新することができる:
【数14】
ここで、
θtは、現在の時間ステップにおけるQNN114のパラメータの選択された値を表すことができ、
σは、非線形活性化関数を表すことができる。
Ωt uは、最適化ネットワーク116の計算された出力を表すことができる。
αは学習率パラメータを表し、
θt+1は、QNN114のパラメータの更新された値を表すことができる。
【0072】
308Fにおいて、入力量子状態及びQNN114のパラメータの更新された値をQNN114に渡して、QNN114のコスト関数の現在値を取得することができる。一実施形態では、プロセッサ204aは、入力量子状態及びパラメータの更新された値をQNN114に渡して、量子コンピュータ110からQNN114のコスト関数の現在値を取得するように構成することができる。具体的には、プロセッサ204aは、入力量子状態及びQNN114のパラメータの更新された値に基づいて以下を計算することができる:
【数15】
その後、プロセッサ204aは、受信されたデータセットに関する平均二乗誤差を計算することによって、QNN114のコスト関数の現在値を得ることができる。平均二乗誤差は、グランドトゥルース(yi)と(fθ(xit+1))との間の比較(差)の二乗を表すことができる。限定ではなく一例として、コスト関数の現在値は、次のように与えられる式(3)を使用して量子コンピュータ110から得ることができる。
【数16】
ここで、
C(θt+1)は、コスト関数の現在値を表すことができる。
mは、データセット「D」の中のサンプルのサイズ又は数を表すことができる。
yIは、データセット「D」の中のi番目の入力データポイントに対応するi番目のラベルを表すことができ、
fθ(xi,θt+1)は、QNN114の出力を表すことができる。
【0073】
ステップ310において、状態バッファを更新することができる。一実施形態では、プロセッサ204aは、コスト関数の現在の値及びパラメータの更新された値に基づいて状態バッファを更新するように構成することができる。状態バッファを更新するために、プロセッサ204aは、現在の時間ステップのコスト関数の現在の値「C(θt+1)」を、一連の時間ステップのうちの現在の時間ステップに先行する時間ステップのコスト関数の過去の値(又は初期化された値)(例えばC(θt))と比較することができる。コスト関数の過去の値は、電子装置112のメモリ204b内に存在することができる。プロセッサ204aは、比較のためにメモリ204bからコスト関数の過去の値(又は初期化された値)を取り出すことができる。状態バッファは、比較に基づいて、コスト関数の現在の値及びパラメータの更新された値(θt+1)を含むように更新することができる。コスト関数の現在の値C(θt+1)がコスト関数の過去の値(又は初期化された値)(C(θt))よりも小さいと決定された場合、コスト関数の現在の値及びパラメータの更新された値は、状態バッファに含めることができる。更に、状態バッファは、現在の時間ステップ(又は一連の時間ステップのうちの各時間ステップ)において更新され、最適化ネットワーク116の隠れ状態の現在値及びコスト関数差分値を含むことができる。コスト関数差分値は、コスト関数の現在値C(θt+1)とコスト関数の過去値(又は初期化値)(C(θt))との間の差に対応することができる。
【0074】
312において、QNN114は、機械学習タスクについてトレーニングされることができる。一実施形態では、プロセッサ204は、コスト関数の現在値がコスト閾値(又はグローバル最小値)未満であると決定されるまで、QNN114のパラメータの更新された値を使用して動作(すなわち、308A~308F)の実行を繰り返すことによって、機械学習タスクについてQNN114をトレーニングするように構成することができる。QNN114のトレーニングは、期間「T」の間、継続することができる。従って、期間「T」は、一連の時間ステップについての動作の実行中に経過することができる。各時間ステップにおける動作の実行に基づいて、QNN114のパラメータを更新し、QNN114のコスト関数の値を最小化することができる。期間を通じて動作を繰り返すことにより、コスト関数の現在の値がコスト閾値を下回るように、コスト関数を最小化することができる。QNN114は、(特定の時間ステップ後の)コスト関数の値がコスト閾値を下回る場合、機械学習タスクを実行するためにトレーニングされている(又はVQCパラメータが最適化されている)と考えることができる。
【0075】
フローチャート300は、302、304、306、308、308A、308B、308C、308D、308E、308F、310、及び312のような個別の動作として図示された。しかしながら、特定の実施形態では、開示の実施形態の本質を損なうことなく、実装に依存して、このような個別の動作は、追加動作に更に分けられ、より少数の動作に結合され、又は削除されてよい。
【0076】
図4は、本開示に記載された少なくとも1つの実施形態による、量子ニューラルネットワークのパラメータの更新された値の生成及び量子ニューラルネットワークのコスト関数の最小化のための例示的なシナリオを示す図である。図4は、図1図2及び図3の要素と関連して記載される。図4を参照すると、例示的なシナリオ400が示される。例示的なシナリオ400には、QNN114及びLSTMネットワーク404をトレーニングするためのメタ学習アプローチのブロック図402が示されている。LSTMネットワーク404は、図1の最適化ネットワーク116の例示的な実装であってもよい。図402は、量子処理ユニット(QPU)406を含むことができ、これは、図2の量子プロセッサ202bの例示的な実装であってもよい。動作中、QPU406は、VQC(すなわちQNN114)を実行することができる。これは、特定の配置における量子ゲートのセットを含むことができるパラメータ化された量子回路であってもよい。量子ゲートのセットは、量子コンピュータ(量子コンピュータ110など)の量子ビットのセットで実行することができる一連の動作を表すことができる。
【0077】
図402には、第1ゲート408、第2ゲート410、第3ゲート412、及び第4ゲート414が更に示されており、各々が異なる動作を示すために図4に異なる記号で示されている。第1ゲート408はデルタ計算演算を表し、第2ゲート410は連結演算を表し、第3ゲート412はQNN114のパラメータの値を更新する演算を表す更新ゲートであり、第4ゲート414はコスト関数の現在の値をコスト関数の過去の値と比較する演算を表す条件真ゲートである。
【0078】
更に、QNNのパラメータに関する過去の情報、コスト関数の過去の値、LSTMネットワーク404の隠れ状態の過去の値、及びコスト関数差分値を含む状態バッファ416が示されている。コスト関数差分値は、現在の時間ステップについて得られたコスト関数の現在の値と、現在の時間ステップより前の時間ステップについて得られたコスト関数の過去の値との差に基づいて計算されてもよい。状態バッファ416は、コスト関数の現在の値がコスト関数の過去の値よりも小さいと決定された場合に更新されてもよい。一方で状態バッファ416は、コスト関数の現在の値がコスト関数の過去の値よりも大きいと決定された場合に更新されてはならない。これは、コスト関数の現在の値がコスト関数の過去の値よりも大きい場合には、QNN114のパラメータ(LSTMネットワーク404の出力に基づいて決定されてもよい)が最適でない可能性があるためである。従って、QNN114のパラメータは、状態バッファ416に含まれなくてもよい。
【0079】
一実施形態によれば、時間ステップ「t」(すなわち、現在の時間ステップ)において、プロセッサ204aは、初期値を使用してQNN114のパラメータを初期化するように構成されてもよい。QNN114は、初期値のセットを使用して初期化されてもよいパラメータのセットを含んでもよい。パラメータのセットは、次のように表すことができる:
【数17】
【数18】
【0080】
LSTMネットワーク404への入力は、θt-1、ΔC(θ)、及び正規化係数に基づいて準備されてもよい。第2ゲート410は、準備のためにθt-1とΔC(θ)との連結を行ってもよい。準備された入力に対するLSTMネットワーク404の適用と、LSTMネットワーク404の隠れ状態(すなわちht-1)の初期値とに基づいて、出力が計算されてもよい。更に、そのような適用に基づいて、隠れ状態の更新された値が生成されてもよい。出力はΩt uで表され、隠れ状態の更新された値はhtで表されてもよい。その後、パラメータのセットは、θt-1、Ωt u、σ、及びαに基づいて更新されてもよい。時間ステップ「t」におけるパラメータのセットの更新された値は、次式を用いて表すことができる:
【数19】
【0081】
パラメータのセットの更新された値(すなわちθt)及び(データポイントのセットに基づき準備された)入力量子状態は、入力としてQNN114(すなわち、QPU406)に渡されてもよい。このような入力に基づいて、コスト関数の現在値が得られてもよい。コスト関数の現在値は、C(θt)によって表されてもよく、第1ゲート408を用いてC(θt-1)と比較されてもよい。その後、第4ゲート414を用いて、C(θt)がC(θt-1)未満であるか否かを決定する。C(θt)がC(θt-1)未満であると決定された場合、状態バッファ416を更新する。この更新は、C(θt)、ht、θt、及びΔC(θ)(すなわち、C(θt)がC(θt-1)の比較結果)を状態バッファ416に含めることに対応する。θtのパラメータは、QNN114のパラメータセットの(θt-1からθtへの)更新がコスト関数の(C(θt-1)からC(θt)への)最小化につながるので、θtのパラメータは、θt-1のパラメータと比較して最適である。
【0082】
実施形態によれば、時間ステップ「t+1」において、C(θt)はコスト関数の過去の値であり、θtはパラメータセットの過去の値(又はQNN114のパラメータセットの過去の情報)を表し、htはLSTMネットワーク404の隠れ状態の過去の値である。QPU406は、状態バッファ416の内容を読み取り、状態バッファ416からθt及びΔC(θ)を選択する。その後、θt、ΔC(θ)(すなわち、C(θt)とC(θt-1)の比較結果)、及び正規化係数に基づいて、LSTMネットワーク404の入力を準備することができる。準備された入力に対するLSTMネットワーク404の適用と、LSTMネットワーク404の隠れ状態(すなわちht)の過去の値とに基づいて、出力が計算されてもよい。更に、そのような適用に基づいて、隠れ状態の更新された値が生成されてもよい。出力はΩt+1 uで表され、隠れ状態の更新された値はht+1で表されてもよい。その後、パラメータのセットは、θt、Ωt+1 u、σ、及びαに基づいて更新されてもよい。時間ステップ「t+1」におけるパラメータのセットの更新された値は、次のように表すことができる:
【数20】
【0083】
図4のシナリオ400は例示的な目的のためのものであり、開示の範囲を制限すると解釈されてはならないことに留意されたい。
【0084】
図5は、本開示に記載された少なくとも1つの実施形態による、メタ最適化を使用して量子ニューラルネットワークをトレーニングするための実行パイプラインを示す図である。図5は、図1図2図3、及び図4の要素と関連して記載される。図5を参照すると、実行パイプライン500が示される。例示的な実行パイプライン500は、システム102のような図1の1つ以上の構成要素によって実行され得る動作セット(例えば502~518の動作)を含むことができる。動作セットは、システム102のプロセッサ204aにより実行されてよい。
【0085】
502において、QNN(例えば、QNN114)のパラメータが初期化され得る。少なくとも一実施形態では、プロセッサ204aは、QNN114のパラメータを初期化するように構成され得る。QNN114は、VQCにより実装されてよい。VQCは、所定の数のユニタリゲートを含む、パラメータ化された量子回路とすることができる。VQCは、所定の数のユニタリゲートに対応する、所定の数のパラメータ化されたユニタリ行列の積として表すことができる。各パラメータ化されたユニタリ行列は、QNN114のパラメータの関数とすることができる。従って、VQC(すなわちQNN114)は、QNN114のパラメータに基づいてパラメータ化することができる。QNN114は、QNN114のパラメータの最適化に基づいて機械学習タスクを実行するようにトレーニングすることができる。パラメータの最適化のために、プロセッサ204aは、一連の時間ステップの第1時間ステップでQNN114のパラメータを初期化し、最適化ネットワーク116を使用して、後続の時間ステップにおいてパラメータの過去の値に基づいてパラメータの値を更新することができる。パラメータの初期化に基づいて、QNN114のトレーニングの効率を改善することができ、QNN114のトレーニングに伴う遅延を短縮することができる。更に、パラメータの最適化に基づいて達成することができるコスト関数の最小値は、QNN114のパラメータの初期化に依存することができる。
【0086】
504で、最適化ネットワーク116のメタパラメータ及び隠れ状態を初期化することができる。少なくとも一実施形態では、プロセッサ204aは、最適化ネットワーク116のメタパラメータ及び最適化ネットワーク116の隠れ状態を初期化するように構成することができる。メタパラメータは、動作(すなわち、308A~308F)の実行前にメタパラメータ値で初期化することができる。最適化ネットワーク116は、メタパラメータ(すなわち、最適化ネットワーク116のメタパラメータ)と関連付けることができるLSTMネットワークとすることができ、LSTMネットワークの隠れ状態(すなわち、最適化ネットワーク116の隠れ状態)を維持するように構成することができる。メタパラメータは、初期値を使用して初期化することができ、隠れ状態は、正規分布を使用して初期化することができる。このような初期化により、LSTMネットワークのメタ損失関数が効率的な最小値に収束するように、LSTMネットワーク及び隠れ状態をトレーニング可能にすることができる。
【0087】
LSTMネットワークは、入力メタ特徴及び初期値からのLSTMネットワークのメタパラメータの調整に基づいて、QNN114の更新されたパラメータを示す出力を計算することができる。一連の時間ステップのうちの第1時間ステップでは、入力メタ特徴は、QNN114のパラメータの初期値及び初期コスト関数差分値(すなわち「1」)であることができる。後続の時間ステップでは、入力メタ特徴は、QNN114のパラメータの過去の値及びQNN114のコスト関数の過去の値に関連付けられたコスト関数差分値に基づいて決定することができる。LSTMネットワークのメタパラメータは、LSTMネットワークのトレーニング中に(初期値から)調整することができる。プロセッサ204aは、一連の時間ステップの間にメタ損失関数に基づいてLSTMネットワークをトレーニングすることができる。トレーニングデータセット(例えば、機械学習タスクに関連付けられているデータセット(302を参照))及びQNN114として機能する準備されたVQCについては、一連の時間ステップの間にトレーニングされたLSTMネットワークを生成するためにメタ損失関数を最小化することができる。メタ損失関数の最小化は、最適メタパラメータの決定を可能にすることができる。最適メタパラメータに基づいて、QNN114のコスト関数が最小化されるように、QNN114のパラメータを更新することができる(すなわち、QNN114は、機械学習タスクを実行するようにトレーニングされる)。従って、LSTMネットワークは、(QNN114として機能する)VQCのパラメータ化のためのパラメータを出力することができる。
【0088】
506において、状態バッファをインスタンス化することができる。少なくとも一実施形態では、プロセッサ204aは、QNN114のパラメータの初期化に基づいて状態バッファをインスタンス化するように構成することができる。QNN114のパラメータが初期値で初期化されるとき、状態バッファは空であってもよい。各時間ステップにおいて、QNN114のパラメータの更新された値の決定及び対応する時間ステップに対して決定されたQNN114のコスト関数の値に基づいて、状態バッファを更新することができる。更新は、パラメータの更新された値及びコスト関数の値を含むことに対応してもよい。従って、一連の時間ステップのうちの時間ステップの経過とともに、状態バッファは、QNN114のパラメータの過去の値及びコスト関数の過去の値に対応する過去の情報を含むように更新されてもよい。時間ステップの経過とともに、状態バッファは、現在の時間ステップの前の連続する2つの時間ステップで得られるコスト関数の過去の値に関連するコスト関数差分値及びLSTMネットワークの隠れ状態の過去の値を含むように更に更新されてもよい。
【0089】
508において、一連の時間ステップについての動作(すなわち、308A~308F)の実行が完了したかどうかを決定することができる。少なくとも一実施形態では、プロセッサ204aは、動作の実行が完了したかどうかを決定するように構成することができる。
【0090】
510において、メタ損失関数を評価することができる。少なくとも一実施形態では、プロセッサ204aは、一連の時間ステップについての動作(すなわち、308A~308F)の実行が完了したという決定に基づいて、メタ損失関数を評価するように構成することができる。メタ損失関数は、一連の時間ステップの終了後(すなわち、一連の時間ステップのうちの各時間ステップに対する動作308A~308Fの実行後)に、一連の時間ステップのうちの各時間ステップについて得られるコスト関数の値に基づいて、最適化ネットワーク116(すなわちLSTMネットワーク)について評価することができる。メタ損失関数は、各時間ステップにおいて得られるコスト関数の各値に関連する重み値に基づいて、更に評価することができる。限定ではなく一例として、メタ損失関数は、次のように与えられる式(4)を使用して評価することができる。
【数21】
ここで、
【数22】
は、LSTMネットワークのメタパラメータを表すことができ、
「wt」は、一連の時間ステップのうちの「t番目」の時間ステップにおいて得られたコスト関数の値に関連する重みを表すことができ、
「C(θt)」は、「t」の時間ステップで得られたコスト関数の値を表すことができる。
【0091】
一連の時間ステップは、「T」個の時間ステップを含むことができる。プロセッサ204aは、メタ損失関数の評価値に基づいてメタパラメータ値を更新することができる。メタパラメータ値は、メタ損失関数の評価値が期待値に最小化されない場合に更新することができる。更新されたメタパラメータ値に基づいて、動作(すなわち、308A~308F)を、一連の時間ステップに対して再度実行することができる。一方、QNN114のトレーニングフェーズは、メタ損失関数の評価値が期待値に最小化される場合に完了したと決定することができる。
【0092】
512において、動作(すなわち、308A~308F)を、一連の時間ステップのうちの現在の時間ステップに対して実行することができる。少なくとも一実施形態では、プロセッサ204は、現在の時間ステップに対して動作(すなわち、308A~308F)を実行するように構成することができる。実行は、一連の時間ステップに対する動作(すなわち、308A~308F)の実行が完了していないという決定に基づくことができる。
【0093】
514において、コスト関数の現在の値がコスト関数の過去の値より小さいかどうかを決定することができる。少なくとも一実施形態では、プロセッサ204は、現在の時間ステップに対する動作(すなわち、308A~308F)の実行に基づいて得られたコスト関数の現在の値が、一連の時間ステップのうちの現在の時間ステップに先行する時間ステップにおいて得られるコスト関数の過去の値よりも小さいかどうかを決定するように構成されてもよい。プロセッサ204aは、コスト関数の現在の値がコスト関数の過去の値よりも大きい場合、一連の時間ステップに対する動作(すなわち、308A~308F)の実行が完了したかどうかを決定してもよい(508)。
【0094】
ステップ516において、状態バッファを更新することができる。少なくとも一実施形態では、プロセッサ204は、コスト関数の現在の値がコスト関数の過去の値よりも小さいという決定に基づいて状態バッファを更新するように構成されてもよい。更新は、コスト関数の現在の値をコスト関数の過去の値として状態バッファに含めることに対応してもよい。更新は、更に、LSTMネットワークの隠れ状態の現在の値、及びQNN114のパラメータの更新された値を状態バッファに含めることに対応してもよい。パラメータの更新された値は、現在の時間ステップに対する動作308Eの実行に基づいて決定され、QNN114のパラメータに関する過去の情報として格納されてもよい。
【0095】
状態バッファの更新に基づいて、LSTMネットワークに提供される入力メタ特徴が決定されてもよい。入力メタ特徴は、現在の時間ステップが一連の時間ステップのうちの最後の時間ステップでない場合に決定されてもよい。決定された入力メタ特徴は、現在の時間ステップに続く時間ステップに対するLSTMネットワークに対する入力の準備(すなわち、動作308Cの実行)に使用されてもよい。
【0096】
518で、QNN114はトレーニングされてよい。少なくとも一実施形態では、プロセッサ204は、状態バッファの更新に基づいてQNN114をトレーニングするように構成することができる。QNN114のトレーニングは、コスト関数の現在の値、現在の時間ステップの前の時間ステップで得られたコスト関数の過去の値、及び状態バッファに格納されたパラメータの過去の値に基づいて行うことができる。現在の時間ステップが一連の時間ステップのうちの最後の時間ステップである場合、メタ損失関数を評価することができる(510)。プロセッサ204aは、現在の時間ステップが最後の時間ステップであるかどうかを、一連の時間ステップに対する動作(すなわち、308A~308F)の実行が完了したかどうかの決定に基づいて決定することができる(508)。
【0097】
本開示の様々な実施形態は、実行されることに応答して電子装置(電子装置112など)に一連の動作を実行させる命令を格納するように構成された、1つ以上の非一時的コンピュータ可読記憶媒体を提供することができる。一連の動作は、機械学習タスクに関連付けられたデータセットを受信することを含むことができる。一連の動作は、受信したデータセットに基づいて入力量子状態を準備することを更に含むことができる。一連の動作は、QNN(QNN114等)として機能するように量子コンピュータ(例えば、量子コンピュータ110)上でVQCを準備することを更に含むことができる。一連の動作は、一連の時間ステップのうちの現在の時間ステップに対して、動作を実行することを更に含むことができる。動作は、状態バッファの内容を読み取って、状態バッファが空であるか、又はQNN114のパラメータに関する過去の情報を含むかどうかを決定すること、内容に基づいてQNN114のパラメータの値を選択すること、QNN114のパラメータの選択された値に基づいて最適化ネットワーク(最適化ネットワーク116など)のための入力を準備すること、入力に最適化ネットワーク116を適用することによって出力を計算すること、出力に基づいてQNN114のパラメータの値を更新すること、及び量子コンピュータ110からQNN114のコスト関数の現在値を得るためにQNN114に入力量子状態及びパラメータの更新された値を渡すことを含み得る。一連の動作は、コスト関数の現在の値及びパラメータの更新された値に基づいて状態バッファを更新することを更に含むことができる。一連の動作は、コスト関数の現在の値がコスト閾値を下回るまで、パラメータの更新された値を使用して動作の実行を繰り返すことによって、機械学習タスクについてQNN114をトレーニングすることを更に含むことができる。
【0098】
本開示で使用されるとき、用語「モジュール」又は「コンポーネント」は、モジュール又はコンポーネントの動作を実行するよう構成される特定ハードウェア実装、及び/又は、コンピューティングシステムの汎用ハードウェア(例えば、コンピュータ可読媒体、処理装置、等)により格納され及び/又は実行され得るソフトウェアオブジェクト又はソフトウェアルーチンを表してよい。幾つかの実施形態では、本開示に記載されたものと異なるコンポーネント、モジュール、エンジン、及びサービスが、コンピューティングシステム上で実行するオブジェクト又はプロセス(例えば、別個のスレッド)として実装されてよい。本開示に記載されたシステム及び方法のうちの一部は、概して(汎用ハードウェアに格納される及び/又はそれにより実行される)ソフトウェアで実装されるとして記載されたが、専用ハードウェア実装又はソフトウェア及び専用ハードウェア実装の組み合わせも、可能であり想定される。この記載において、「コンピューティングエンティティ」は、本開示において前述した任意のコンピューティングシステム、又はコンピューティングシステム上で実行する任意のモジュール若しくはモジュールの組み合わせであってよい。
【0099】
本開示で及び特に添付の特許請求の範囲(例えば、添付の請求項本体)で使用される用語は、通常、「広義」の用語として意図される(例えば、用語「含む」は「含むが、これに限定されない」と解釈されるべきであり、用語「有する」は「有するが、これに限定されない」と解釈されるべきである、等)。
【0100】
更に、特定数の導入された請求項の列挙が意図される場合、このような意図は、請求項中に明示的に示され、このような列挙のない場合、このような意図は存在しない。例えば、理解の支援として、以下の添付の請求項は、請求項の列挙を導入するために、導入フレーズ「少なくとも1つ」及び「1つ以上」の使用を含み得る。しかしながら、このようなフレーズの使用は、同じ請求項が導入フレーズ「1つ以上」又は「少なくとも1つ」及び不定冠詞「a」又は「an含むときでも(例えば、「a」及び/又は「an少なくとも1つ」又は「1つ以上」を意味すると解釈されるべきである)、不定冠詞「a」又は「an」による請求項の列挙の導入が、このような導入された請求項の列挙を含む任意の特定の請求項を、1つのこのような列挙のみを含む実施形態に限定することを意味すると考えられるべきではない。つまり、同じことが、請求項の列挙を導入するために使用される定冠詞の使用にも当てはまる。
【0101】
更に、特定数の導入された請求項の列挙が明示的に記載される場合、当業者は、このような列挙が、少なくとも列挙された数を意味すると解釈されるべきであることを理解する(例えば、他の修飾のない「2つの列挙」の記載は、少なくとも2つの列挙、又は2以上の列挙を意味する)。更に、「A、B、及びC等のうちの少なくとも1つ」又は「A、B、及びC等のうちの1つ以上」と同様の記載が使用される例では、通常、このような構成は、A単独で、B単独で、C単独で、A及びBを一緒に、A及びCを一緒に、B及びCを一緒に、又はA、B、及びCを一緒に、等を含むことを意図する。
【0102】
更に、2以上の選択的な用語を表す任意の離接的な語又はフレーズは、説明、請求項、又は図面にあるかにかかわらず、用語のうちの1つ、用語のうちのいずれか、又は両方の用語を含む可能性を想定すると理解されるべきである。例えば、フレーズ「A又はB」は、「A」又は「B」又は「A及びB」の可能性を含むと理解されるべきである。
【0103】
本開示に記載された全ての例及び条件付き言語は、読者が本開示及び本開示が技術を更に発展させることに貢献する概念を理解するのを支援する教示目的を意図しており、そのような具体的に列挙された例及び条件に限定されないと解釈されるべきである。本開示の実施形態は詳細に記載されたが、本開示の精神及び範囲から逸脱することなく、これらに種々の変更、代替、及び選択が行われ得る。
【0104】
以上の実施形態に加えて、更に以下の付記を開示する。
(付記1)
電子装置のプロセッサによって実行可能な方法であって、
機械学習タスクに関連付けられたデータセットを受信するステップと、
受信したデータセットに基づき入力量子状態を準備するステップと、
量子ニューラルネットワーク(QNN)として機能するように量子コンピュータ上に変分量子回路(VQC)を準備するステップと、
一連の時間ステップのうちの現在の時間ステップについて、以下:
状態バッファの内容を読み取り、前記状態バッファが空であるか、又は前記QNNのパラメータに関する過去の情報を含むかを決定するステップと、
前記内容に基づいて前記QNNの前記パラメータの値を選択するステップと、
前記QNNの前記パラメータの前記選択された値に基づいて最適化ネットワークの入力を準備するステップと、
前記入力に前記最適化ネットワークを適用して出力を計算するステップと、
前記出力に基づいて前記QNNの前記パラメータの前記値を更新するステップと、
前記入力量子状態と前記パラメータの前記更新された値を前記QNNに渡して、前記量子コンピュータから前記QNNのコスト関数の現在の値を取得するステップと、
を含む動作を実行するステップと、
前記コスト関数の前記現在の値と前記パラメータの前記更新された値に基づいて前記状態バッファを更新するステップと、
前記コスト関数の前記現在の値がコスト閾値を下回るまで、前記パラメータの前記更新された値を使用して前記動作の実行を繰り返すことによって、前記機械学習タスクで前記QNNをトレーニングするステップと、
を含む方法。
(付記2)
前記動作の実行前に、前記QNNの前記パラメータを初期値で初期化するステップと、
前記パラメータの初期化に基づいて前記状態バッファをインスタンス化するステップと、
を更に含み、
前記状態バッファは、前記QNNのパラメータが前記初期値で初期化されたときに空である両面キューである、請求項1に記載の方法。
(付記3)
前記QNNの前記パラメータの値の選択は、前記状態バッファに含まれる前記QNNの前記パラメータの過去の値をサンプリングすることによって行われ、
前記サンプリングは、前記状態バッファが前記QNNの前記パラメータに関する前記過去の情報を含むという決定に基づいて行われる、請求項1記載の方法。
(付記4)
前記一連の時間ステップのうちの前記現在の時間ステップに先行する2つの連続する時間ステップについて得られた前記コスト関数の過去の値を検索するステップと、
前記過去の値の間の差を計算するステップと、
前記差と前記パラメータの前記選択された値を連結することによって入力ベクトルを構築するステップと、
前記入力ベクトルへの指数スケーリングの適用及び正規化係数に基づいて前記最適化ネットワークのための前記入力を準備するステップと、
を更に含む、請求項1に記載の方法。
(付記5)
前記最適化ネットワークは、長短期記憶(LSTM)ネットワークであって、前記LSTMネットワークは、メタパラメータに関連付けられ、前記LSTMネットワークの隠れ状態を維持するように構成される、請求項1記載の方法。
(付記6)
前記最適化ネットワークの前記入力は、前記LSTMネットワークの前記隠れ状態を更に含む、請求項5記載の方法。
(付記7)
前記QNNの前記パラメータの値は、以下:
前記最適化ネットワークの前記出力に非線形活性化関数を適用することによって前記出力を変換し、
前記変換された出力を学習率パラメータの値で乗算して、前記現在の時間ステップの更新値を生成し、
前記更新値を、前記現在の時間ステップにおける前記QNNの前記パラメータの前記選択された値に加算する、
ことによって更新される、請求項1に記載の方法。
(付記8)
前記状態バッファは、前記現在の時間ステップに先行する1つ以上の時間ステップについての前記コスト関数の過去の値を更に含み、
前記過去の情報は、前記現在の時間ステップに先行する1つ以上の時間ステップについての前記QNNの前記パラメータの過去の値に対応する、請求項1に記載の方法。
(付記9)
前記現在の時間ステップについての前記コスト関数の現在の値を、前記一連の時間ステップのうちの前記現在の時間ステップに先行する時間ステップについての前記コスト関数の過去の値と比較するステップ、を更に含み、
前記過去の値は前記電子装置のメモリに含まれ、
前記状態バッファは、前記比較に基づいて、前記コスト関数の現在の値及び前記パラメータの前記更新された値を含むように更新される、請求項1に記載の方法。
(付記10)
前記動作の実行前に、前記最適化ネットワークのメタパラメータをメタパラメータ値で初期化するステップと、
前記一連の時間ステップのうちの各時間ステップについて得られた前記コスト関数の値に基づいて、前記一連の時間ステップの終了後に、前記最適化ネットワークのメタ損失関数を評価するステップと、
前記メタ損失関数に基づいて前記メタパラメータ値を更新するステップと、
を更に含む請求項1に記載の方法。
(付記11)
前記VQCは、特定の配置の量子ゲートのセットを含むパラメータ化された量子回路であり、前記量子ゲートのセットは、前記量子コンピュータの量子ビットのセットに対して実行される動作のセットを表す、請求項1に記載の方法。
(付記12)
命令を格納するように構成された非一時的コンピュータ可読記憶媒体であって、前記命令は、実行されることに応答して、電子装置に動作を実行させ、前記動作は、
機械学習タスクに関連付けられたデータセットを受信するステップと、
前記データセットに基づき入力量子状態を準備するステップと、
量子ニューラルネットワーク(QNN)として機能するように量子コンピュータ上に変分量子回路(VQC)を準備するステップと、
一連の時間ステップのうちの現在の時間ステップについて、以下:
状態バッファの内容を読み取り、前記状態バッファが空であるか、又は前記QNNのパラメータに関する過去の情報を含むかを決定するステップと、
前記内容に基づいて前記QNNの前記パラメータの値を選択するステップと、
前記QNNの前記パラメータの前記選択された値に基づいて最適化ネットワークの入力を準備するステップと、
前記入力に前記最適化ネットワークを適用して出力を計算するステップと、
前記出力に基づいて前記QNNの前記パラメータの前記値を更新するステップと、
前記入力量子状態と前記パラメータの前記更新された値を前記QNNに渡して、前記量子コンピュータから前記QNNのコスト関数の現在の値を取得するステップと、
を含む動作を実行するステップと、
前記コスト関数の前記現在の値と前記パラメータの前記更新された値に基づいて前記状態バッファを更新するステップと、
前記コスト関数の前記現在の値がコスト閾値を下回るまで、前記パラメータの前記更新された値を使用して前記動作の実行を繰り返すことによって、前記機械学習タスクで前記QNNをトレーニングするステップと、
を含む、非一時的コンピュータ可読記憶媒体。
(付記13)
前記動作は、
前記動作の実行前に、前記QNNの前記パラメータを初期値で初期化するステップと、
前記パラメータの初期化に基づいて前記状態バッファをインスタンス化するステップと、
を更に含み、
前記状態バッファは、前記QNNのパラメータが前記初期値で初期化されたときに空である両面キューである、請求項12に記載の非一時的コンピュータ可読記憶媒体。
(付記14)
前記QNNの前記パラメータの値の選択は、前記状態バッファに含まれる前記QNNの前記パラメータの過去の値をサンプリングすることによって行われ、
前記サンプリングは、前記状態バッファが前記QNNの前記パラメータに関する前記過去の情報を含むという決定に基づいて行われる、請求項12記載の非一時的コンピュータ可読記憶媒体。
(付記15)
前記動作は、
前記一連の時間ステップのうちの前記現在の時間ステップに先行する2つの連続する時間ステップについて得られた前記コスト関数の過去の値を検索するステップと、
前記過去の値の間の差を計算するステップと、
前記差と前記パラメータの前記選択された値を連結することによって入力ベクトルを構築するステップと、
前記入力ベクトルへの指数スケーリングの適用及び正規化係数に基づいて前記最適化ネットワークのための前記入力を準備するステップと、
を更に含む、請求項12に記載の非一時的コンピュータ可読記憶媒体。
(付記16)
前記最適化ネットワークは、長短期記憶(LSTM)ネットワークであって、前記LSTMネットワークは、メタパラメータに関連付けられ、前記LSTMネットワークの隠れ状態を維持するように構成される、請求項12記載の非一時的コンピュータ可読記憶媒体。
(付記17)
前記QNNの前記パラメータの値は、以下:
前記最適化ネットワークの前記出力に非線形活性化関数を適用することによって前記出力を変換し、
前記変換された出力を学習率パラメータの値で乗算して、前記現在の時間ステップの更新値を生成し、
前記更新値を、前記現在の時間ステップにおける前記QNNの前記パラメータの前記選択された値に加算する、
ことによって更新される、請求項12に記載の非一時的コンピュータ可読記憶媒体。
(付記18)
前記動作は、
前記現在の時間ステップについての前記コスト関数の現在の値を、前記一連の時間ステップのうちの前記現在の時間ステップに先行する時間ステップについての前記コスト関数の過去の値と比較するステップ、を含み、
前記過去の値は前記電子装置のメモリに含まれ、
前記状態バッファは、前記比較に基づいて、前記コスト関数の現在の値及び前記パラメータの前記更新された値を含むように更新される、請求項12に記載の非一時的コンピュータ可読記憶媒体。
(付記19)
前記動作は、
前記動作の実行前に、前記最適化ネットワークのメタパラメータをメタパラメータ値で初期化するステップと、
前記一連の時間ステップのうちの各時間ステップについて得られた前記コスト関数の値に基づいて、前記一連の時間ステップの終了後に、前記最適化ネットワークのメタ損失関数を評価するステップと、
前記メタ損失関数に基づいて前記メタパラメータ値を更新するステップと、
を含む、請求項12に記載の非一時的コンピュータ可読記憶媒体。
(付記20)
電子装置であって、
命令を格納するように構成されたメモリと、
前記メモリに結合され、前記命令を実行して処理を実行するよう構成されたプロセッサと、
を含み、前記処理は、
機械学習タスクに関連付けられたデータセットを受信するステップと、
受信したデータセットに基づき入力量子状態を準備するステップと、
量子ニューラルネットワーク(QNN)として機能するように量子コンピュータ上に変分量子回路(VQC)を準備するステップと、
一連の時間ステップのうちの現在の時間ステップについて、以下:
状態バッファの内容を読み取り、前記状態バッファが空であるか、又は前記QNNのパラメータに関する過去の情報を含むかを決定するステップと、
前記内容に基づいて前記QNNの前記パラメータの値を選択するステップと、
前記QNNの前記パラメータの前記選択された値に基づいて最適化ネットワークの入力を準備するステップと、
前記入力に前記最適化ネットワークを適用して出力を計算するステップと、
前記出力に基づいて前記QNNの前記パラメータの前記値を更新するステップと、
前記入力量子状態と前記パラメータの前記更新された値を前記QNNに渡して、前記量子コンピュータから前記QNNのコスト関数の現在の値を取得するステップと、
を含む動作を実行するステップと、
前記コスト関数の前記現在の値と前記パラメータの前記更新された値に基づいて前記状態バッファを更新するステップと、
前記コスト関数の前記現在の値がコスト閾値を下回るまで、前記パラメータの前記更新された値を使用して前記動作の実行を繰り返すことによって、前記機械学習タスクで前記QNNをトレーニングするステップと、
を含む、電子装置。
【符号の説明】
【0105】
102 システム
104 ユーザ装置
106 ディスプレイ装置
108 通信ネットワーク
110 量子コンピュータ
112 電子装置
116 最適化ネットワーク
図1
図2
図3
図4
図5