(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023184526
(43)【公開日】2023-12-28
(54)【発明の名称】量子ニューラルネットワーク
(51)【国際特許分類】
G06N 3/08 20230101AFI20231221BHJP
G06N 10/40 20220101ALI20231221BHJP
G06F 7/38 20060101ALI20231221BHJP
G06G 7/60 20060101ALI20231221BHJP
【FI】
G06N3/08
G06N10/40
G06F7/38 510
G06G7/60
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023172891
(22)【出願日】2023-10-04
(62)【分割の表示】P 2021078683の分割
【原出願日】2018-06-01
(31)【優先権主張番号】62/514,475
(32)【優先日】2017-06-02
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ハルトムート・ネーヴェン
(72)【発明者】
【氏名】エドワード・ヘンリー・ファーリ
(57)【要約】
【課題】量子ニューラルネットワークアーキテクチャを提供する。
【解決手段】一態様では、機械学習タスクを実施するようにトレーニングされる量子ニューラルネットワークは、(i)機械学習タスクデータ入力を符号化した初期量子状態で準備された複数の量子ビット、および(ii)ターゲット量子ビットを備える、入力量子ニューラルネットワーク層と、複数の量子ビットおよびターゲット量子ビットに作用する複数の量子論理ゲートを各々が備える、一連の中間量子ニューラルネットワーク層と、ターゲット量子ビットに作用して機械学習タスクに対する解を表すデータを出力として提供する測定量子ゲートを備える、出力量子ニューラルネットワーク層とを含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
量子ニューラルネットワークをトレーニングするための方法であって、
複数のトレーニング例を取得するステップであって、前記トレーニング例の各々が、機械学習タスク入力についての既知の分類とペアにされた機械学習タスク入力を含む、ステップと、
前記トレーニング例で前記量子ニューラルネットワークをトレーニングするステップであって、トレーニングするステップは、前記トレーニング例の各々に対して、
初期量子状態において、初期量子状態の入力量子ニューラルネットワーク層の複数の量子ビットを準備して、前記機械学習タスク入力を符号化するステップと、
1つまたは複数の量子ニューラルネットワーク層を用いて前記機械学習タスク入力を処理するステップであって、前記量子ニューラルネットワーク層の各々が、前記複数の量子ビットに作用する複数の量子論理ゲートと、前記入力量子ニューラルネットワーク層の中にもあるターゲット量子ビットとを含み、前記処理するステップは、量子ニューラルネットワーク層の各々について順番に、前記量子ニューラルネットワーク層についての量子論理ゲートを、前記複数の量子ビットおよび前記ターゲット量子ビットを表す現在の量子状態に適用するステップを含む、処理するステップと、
出力量子ニューラルネットワーク層における測定量子ゲートにより前記ターゲット量子ビットを測定して、機械学習タスクに対する解を表す出力を生成するステップと、
前記生成された出力を前記既知の分類と比較して、1つまたは複数のゲートパラメータ調整値を決定するステップと、
ゲートパラメータの値を初期値からトレーニング後の値に調整するステップと
を含む、トレーニングするステップと
を含み、
前記生成された出力を前記既知の分類と比較して、1つまたは複数のゲートパラメータ調整値を決定するステップは、
前記生成された出力と、前記機械学習タスクについての前記既知の分類とを用いて、損失関数を計算するステップと、
前記決定された1つまたは複数のゲートパラメータ調整値に基づき、勾配降下法を実施して、前記ゲートパラメータの調整された値を決定するステップと
を含む、方法。
【請求項2】
量子コンピューティングシステムに実行される請求項1に記載の方法であって、前記量子コンピューティングシステムは、
複数の量子ビットと、前記複数の量子ビットに結合され、複数のパラメータ化された量子ゲートの前記複数の量子ビットへの前記適用を制御するように構成された1つまたは複数の制御デバイスとを備える、方法。
【請求項3】
前記機械学習タスク入力の処理の間に、前記量子論理ゲートの各々が、ゲートパラメータによってパラメータ化される、請求項1または2に記載の方法。
【請求項4】
前記測定が、前記1つまたは複数の制御デバイスによって行われる、請求項2に記載の方法。
【請求項5】
トレーニング例のサブセットを処理した後で、正規化を実施するステップをさらに含む、請求項1から4のうちのいずれか一項に記載の方法。
【請求項6】
前記正規化が、0-ノルムまたは1-ノルム正則化を含む、請求項5に記載の方法。
【請求項7】
機械学習タスクを実施するように量子ニューラルネットワークをトレーニングすることが、ブール関数f:{0,1}n→{0,1}を学習するように量子ニューラルをトレーニングすることを含む、請求項1から6のうちのいずれか一項に記載の方法。
【請求項8】
前記損失関数が、
Loss(s,θ)=(<ψ(θ, zs)|σy
out|ψ(θ, zs)> - ys)2
によって与えられ、ここでθは、量子ゲートパラメータを表し、ψ(θ, zs)は、前記複数の量子ビットおよびターゲット量子ビットの進展量子状態を表し、σy
outは、前記測定量子ゲートを表し、ysは、前記既知の分類を表す、請求項1から7のうちのいずれか一項に記載の方法。
【請求項9】
前記ブール関数は、パリティ関数、サブセットパリティ関数、サブセット多数決関数、または論理AND関数を含む、請求項7に記載の方法。
【請求項10】
請求項1から9のうちのいずれか一項に記載の方法を実行するように構成されたシステムであって、
複数の量子ビットと1つまたは複数の制御デバイスとを備え、
前記1つまたは複数の制御デバイスは、前記複数の量子ビットに結合されるとともに、複数のパラメータ化された量子ゲートの前記複数の量子ビットへの前記適用を制御するように構成される、システム。
【請求項11】
コンピュータ可読命令を含むコンピュータプログラムであって、
前記コンピュータ可読命令は、コンピューティングシステムにより実行されたときに、前記コンピューティングシステムに、請求項1から9のうちのいずれか一項に記載の方法を実行させ、
前記コンピューティングシステムは、複数の量子ビットと、前記複数の量子ビットに結合されるとともに、複数のパラメータ化された量子ゲートの前記複数の量子ビットへの前記適用を制御するように構成された1つまたは複数の制御デバイスとを備える、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、ニューラルネットワークアーキテクチャおよび量子コンピューティングに関する。
【背景技術】
【0002】
ニューラルネットワークは、非線形ユニットの1つまたは複数の層を用いて、受信した入力に対する出力を予測する、機械学習モデルである。一部のニューラルネットワークは、出力層に加えて、1つまたは複数の隠れ層を含む。各隠れ層の出力が、ネットワーク内の次の層、すなわち次の隠れ層または出力層への入力として使用される。ネットワークの各層は、受信した入力から、それぞれに対応するパラメータセットの現在値に従って、出力を生成する。
【発明の概要】
【課題を解決するための手段】
【0003】
本明細書では、1つまたは複数の量子プロセッサによって実装されたニューラルネットワークアーキテクチャについて説明する。
【0004】
一般に、本明細書において説明する本主題の一革新的態様は、1つまたは複数の量子プロセッサによって実装された量子ニューラルネットワークであって、(i)初期量子状態で準備され機械学習タスクデータ入力を符号化した複数の量子ビット、および(ii)初期状態で準備されたターゲット量子ビットを備える、入力量子ニューラルネットワーク層と、複数の量子ビットおよびターゲット量子ビットに作用する複数の量子論理ゲートを各々が備える、一連の中間量子ニューラルネットワーク層と、ターゲット量子ビットに作用して量子ニューラルネットワークが実施するようにトレーニングされた機械学習タスクに対する解を表すデータを出力として提供する測定量子ゲートを備える、出力量子ニューラルネットワーク層とを備える量子ニューラルネットワークにおいて、具現化することができる。
【0005】
本態様の他の実施形態は、対応するコンピュータシステム、装置、および1つまたは複数のコンピュータ記憶デバイス上に記録されたコンピュータプログラムを含む。1つまたは複数の古典的または量子コンピュータのシステムは、特定の動作またはアクションを、システム上に組み込まれた、動作の際にシステムにそのアクションを実施させることのできるソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せによって実施するように、構成することができる。1つまたは複数のコンピュータプログラムは、特定の動作またはアクションを、データ処理装置によって実行されると装置にそのアクションを実施させる命令を含むことによって実施するように、構成することができる。
【0006】
前述の実施形態および他の実施形態はそれぞれがオプションで、次の特徴のうちの1つまたは複数を単独で、または組み合わせて、含むことができる。いくつかの実装形態では、機械学習タスクが2値分類タスクを含む。
【0007】
いくつかの実装形態では、機械学習タスクデータ入力が、ブール関数入力{0,1}nを含み、機械学習タスクに対する解が、ブール関数出力{0,1}を含む。
【0008】
いくつかの実装形態では、各中間量子ニューラルネットワーク層が、(i)単一量子ビット量子論理ゲート、(ii)二量子ビット量子論理ゲート、または(iii)単一量子ビット量子論理ゲートと二量子ビット量子論理ゲートの両方を備える。
【0009】
いくつかの実装形態では、単一量子ビット量子ゲートが、exp(-iθXj)という形式の単一量子ビットゲートを備える。
【0010】
いくつかの実装形態では、二量子ビット量子ゲートが、exp(iθZjZk)という形式の二量子ビットゲートを備える。
【0011】
いくつかの実装形態では、一連の中間量子ニューラルネットワーク層が、符号化した機械学習タスクデータ入力をターゲット量子ビットの進展状態(evolved state)にマッピングする。
【0012】
いくつかの実装形態では、符号化した機械学習タスクデータ入力をターゲット量子ビットの進展状態にマッピングすることは、量子論理ゲートの量子論理ゲートパラメータによってパラメータ化されたユニタリ演算子を初期量子状態に適用することを含む。
【0013】
いくつかの実装形態では、複数の量子ビットを初期状態で準備することが、複数の量子ビットの各々のz方向を設定することを含む。
【0014】
いくつかの実装形態では、測定量子ゲートが、ターゲット量子ビットのy方向を測定する。
【0015】
いくつかの実装形態では、量子ニューラルネットワークが、機械学習タスクを実施するようにトレーニングされた古典的深層ニューラルネットワークのn個の上位層を置き換える。
【0016】
いくつかの実装形態では、機械学習タスクデータ入力が、古典的深層ニューラルネットワークからの出力を含む。
【0017】
いくつかの実装形態では、複数の量子ビットおよびターゲット量子ビットが、最近接相互作用をもつ2次元格子として配列される。
【0018】
一般に、本明細書において説明する本主題の別の革新的態様は、機械学習タスクを実施するようにトレーニングされた量子ニューラルネットワークを使用してデータ入力を処理するための方法であって、初期量子状態において、入力量子ニューラルネットワーク層の複数の量子ビットを初期量子状態で準備して、機械学習タスクデータ入力を符号化することと、1つまたは複数の中間量子ニューラルネットワーク層を使用して機械学習タスクデータ入力を処理することであって、各中間量子ニューラルネットワーク層が、複数の量子ビットおよびターゲット量子ビットに作用する複数の量子論理ゲートを備え、前記ターゲット量子ビットが、入力量子ニューラルネットワーク層内にもあり、前記処理することが、各中間量子ニューラルネットワーク層について順番に、中間量子ニューラルネットワーク層の量子論理ゲートを、複数の量子ビットおよびターゲット量子ビットを表す現在の量子状態に適用することを含む、処理することと、ターゲット量子ビットを、出力量子ニューラルネットワーク層内の測定量子ゲートによって測定して、機械学習タスクに対する解を表す出力を生成することとを含む方法において、具現化することができる。
【0019】
本態様の他の実施形態は、方法のアクションを実施するようにそれぞれが構成された、対応するコンピュータシステム、装置、および1つまたは複数のコンピュータ記憶デバイス上に記録されたコンピュータプログラムを含む。1つまたは複数のコンピュータのシステムは、特定の動作またはアクションを、システム上に組み込まれた、動作の際にシステムにそのアクションを実施させることのできるソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せによって実施するように、構成することができる。1つまたは複数のコンピュータプログラムは、特定の動作またはアクションを、データ処理装置によって実行されると装置にそのアクションを実施させる命令を含むことによって実施するように、構成することができる。
【0020】
前述の実施形態および他の実施形態はそれぞれがオプションで、次の特徴のうちの1つまたは複数を単独で、または組み合わせて、含むことができる。いくつかの実装形態では、機械学習タスクが2値分類タスクを含む。
【0021】
いくつかの実装形態では、機械学習タスクデータ入力が、ブール関数入力{0,1}nを含み、機械学習タスクに対する解が、ブール関数出力{0,1}を含む。
【0022】
いくつかの実装形態では、各中間量子ニューラルネットワーク層が、(i)単一量子ビット量子論理ゲート、(ii)二量子ビット量子論理ゲート、または(iii)単一量子ビット量子論理ゲートと二量子ビット量子論理ゲートの両方を備える。
【0023】
いくつかの実装形態では、単一量子ビット量子ゲートが、exp(-iθXj)という形式の単一量子ビットゲートを備える。
【0024】
いくつかの実装形態では、二量子ビット量子ゲートが、exp(iθZjZk)という形式の二量子ビットゲートを備える。
【0025】
いくつかの実装形態では、一連の中間量子ニューラルネットワーク層を使用して、データ入力を処理することが、符号化した機械学習タスクデータ入力をターゲット量子ビットの進展状態にマッピングすることを含む。
【0026】
いくつかの実装形態では、符号化した機械学習タスクデータ入力をターゲット量子ビットの進展状態にマッピングすることが、量子論理ゲートの量子論理ゲートパラメータによってパラメータ化されたユニタリ演算子を初期量子状態に適用することを含む。
【0027】
いくつかの実装形態では、複数の量子ビットの初期量子状態内にデータ入力を符号化することが、複数の量子ビットの各々のz方向を設定することを含む。
【0028】
いくつかの実装形態では、ターゲット量子ビットを測定して、機械学習タスクに対する解を表す出力を生成することが、ターゲット量子ビットのy方向を測定することを含む。
【0029】
一般に、本明細書において説明する本主題の別の革新的態様は、量子ニューラルネットワークをトレーニングするための方法であって、機械学習タスク入力と、それとペアにされた、機械学習タスク入力についての既知の分類とをそれぞれが含む、複数のトレーニング例を取得することと、トレーニング例に対して量子ニューラルネットワークをトレーニングすることであって、各トレーニング例について、初期量子状態において、入力量子ニューラルネットワーク層の複数の量子ビットを初期量子状態で準備して、機械学習タスク入力を符号化すること、1つまたは複数の中間量子ニューラルネットワーク層を使用して機械学習タスク入力を処理することであって、各中間量子ニューラルネットワーク層が、複数の量子ビットおよびターゲット量子ビットに作用する複数の量子論理ゲートを備え、前記ターゲット量子ビットが、入力量子ニューラルネットワーク層内にもあり、前記処理することが、各中間量子ニューラルネットワーク層について順番に、中間量子ニューラルネットワーク層の量子論理ゲートを、複数の量子ビットおよびターゲット量子ビットを表す現在の量子状態に適用することを含む、処理すること、ターゲット量子ビットを、出力量子ニューラルネットワーク層内の測定量子ゲートによって測定して、機械学習タスクに対する解を表す出力を生成すること、および生成された出力を既知の分類と比較して、1つまたは複数のゲートパラメータ調整値を決定すること、およびゲートパラメータの値を初期値からトレーニング後の値に調整することを含む、トレーニングすることとを含む方法において、具現化することができる。
【0030】
本態様の他の実施形態は、方法のアクションを実施するようにそれぞれが構成された、対応するコンピュータシステム、装置、および1つまたは複数のコンピュータ記憶デバイス上に記録されたコンピュータプログラムを含む。1つまたは複数のコンピュータのシステムは、特定の動作またはアクションを、システム上に組み込まれた、動作の際にシステムにそのアクションを実施させることのできるソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せによって実施するように、構成することができる。1つまたは複数のコンピュータプログラムは、特定の動作またはアクションを、データ処理装置によって実行されると装置にそのアクションを実施させる命令を含むことによって実施するように、構成することができる。
【0031】
前述の実施形態および他の実施形態はそれぞれがオプションで、次の特徴のうちの1つまたは複数を単独で、または組み合わせて、含むことができる。いくつかの実装形態では、生成された出力を既知の分類と比較して、1つまたは複数のゲートパラメータ調整値を決定することが、生成された出力、および機械学習タスクについての既知の分類を使用して、損失関数を計算することと、勾配降下法を実施して、ゲートパラメータの調整値を決定することとを含む。
【0032】
いくつかの実装形態では、方法は、トレーニング例のサブセットを処理した後で正則化を実施することをさらに含む。
【0033】
いくつかの実装形態では、正則化は、0-ノルムまたは1-ノルム正則化を含む。
【0034】
いくつかの実装形態では、機械学習タスクを実施するように量子ニューラルネットワークをトレーニングすることが、ブール関数f:{0,1}n→{0,1}を学習するように量子ニューラルネットワークをトレーニングすることを含む。
【0035】
いくつかの実装形態では、損失関数が、Loss(s,θ)=(<ψ(θ,zs)|σy out|ψ(θ,zs)>-ys)2によって与えられ、ただしθは、量子ゲートパラメータを表し、ψ(θ,zs)は、複数の量子ビットおよびターゲット量子ビットの進展量子状態を表し、σy outは、測定量子ゲートを表し、ysは、既知の分類を表す。
【0036】
いくつかの実装形態では、ブール関数が、パリティ関数、サブセットパリティ関数(subset parity function)、サブセット多数決関数(subset majority function)、または論理AND関数を含む。
【0037】
本明細書において説明する本主題は、以下の利点のうちの1つまたは複数を実現するように、特定の実施形態において実装することができる。
【0038】
現在説明している本開示は、古典的および量子ニューラルネットワークにおける現況技術に対する、著しい、広く適用可能な改善となっている。
【0039】
本明細書において説明する量子ニューラルネットワークは、機械学習タスクを、知られている他の古典的または量子ニューラルネットワークに比べて少ない時間計算量(time complexity)で実施することができる。例えば、本明細書において説明する量子ニューラルネットワークは、因数分解タスクを決定タスクとみなして、その決定タスクを、量子ニューラルネットワークを使用して実施することにより、因数分解タスクの実施に使用することが可能である。時間計算量がより少なくなり得るのは、知られているニューラルネットワークを使用して因数分解を実施するのに必要なニューラルネットワーク層の数と、現在説明している量子ニューラルネットワークを使用して因数分解を実施するのに必要なニューラルネットワーク層の数との差が、因数分解される数の長さに対して指数関数的に増加し得るためである。
【0040】
本明細書において説明する量子ニューラルネットワークは、機械学習タスクを、知られている他の古典的または量子ニューラルネットワークに比べて低いサンプル複雑度(sample complexity)で実施することができる。例えば、現在説明している量子ニューラルネットワークは機械学習タスクを、他のニューラルネットワークが同じ機械学習タスクを指数関数的サンプル複雑度で学習するのに比べて、多項式サンプル複雑度で学習することができる。
【0041】
本明細書において説明する量子ニューラルネットワークは、知られている他の古典的または量子ニューラルネットワークに比べて高い表現能力(ニューラルネットワークの構造特性が、それが計算することのできる関数にどのように影響を及ぼすかについての指標)を達成することもできる。例えば、Vapnik Chervonenkis次元が、現在説明している量子ニューラルネットワークでは、他のニューラルネットワーク、例えば畳み込みニューラルネットワークに比べて大きくなり得る。
【0042】
本明細書において説明する量子ニューラルネットワークは、知られている他の古典的または量子ニューラルネットワークに比べて高い、ラベルノイズに対する頑健性を達成することができる。例えば、現在説明している量子ニューラルネットワークは、パリティタスクを学習する際に、ラベルノイズに対するより高い頑健性を達成することができる。
【0043】
現在説明している量子ニューラルネットワークの特定のアーキテクチャのため、本明細書において説明する量子ニューラルネットワークは、バックプロパゲーション技法を使用せずに機械学習タスクを実施するようにトレーニングされ得る。これにより、トレーニングプロセスが簡素化され、量子ニューラルネットワークをトレーニングするのに必要な処理時間およびコストが低減し得る。例えば、バックプロパゲーション技法を使用することの悪評高いマイナス面、例えば勾配の消失および爆発的増加による学習プロセスの実際的な不安定性を被ること、またはバックプロパゲーションの順次的な性質による大規模ニューラルネットワークの並列化の困難さが、回避され得る。
【0044】
本明細書において説明する量子ニューラルネットワークは、古典的ニューラルネットワークと組み合わされてよい。古典的ニューラルネットワークの層を現在説明している量子ニューラルネットワークと置き換えることにより、ニューラルネットワークのトレーニング、および推測時の使用がそれにおいて可能な精度および時間が、すなわち単に古典的ニューラルネットワークを使用するのに比べて改善され得る。反対に、古典的ニューラルネットワークを使用して一部の事前計算を実施して、現在説明している量子ニューラルネットワークのための処理済みの入力を生成すると、量子ニューラルネットワークをトレーニングおよび使用する際に必要となる計算コストおよびリソースが、すなわち単に量子ニューラルネットワークを使用するのに比べて低減され得る。
【0045】
本明細書の本主題の1つまたは複数の実施形態の詳細については、添付の図面および下の説明中に記載されている。本主題の他の特徴、態様、および利点が、説明、図面、および特許請求の範囲から明らかとなろう。
【図面の簡単な説明】
【0046】
【
図1】例示的量子ニューラルネットワークアーキテクチャのブロック図である。
【
図2】量子ニューラルネットワークをトレーニングするための例示的プロセスの流れ図である。
【
図3】機械学習タスクを実施するようにトレーニングされた量子ニューラルネットワークを使用してデータ入力を処理するための例示的プロセスの流れ図である。
【発明を実施するための形態】
【0047】
さまざまな図面中の同様の参照番号および名称は、同様の要素を示す。
【0048】
本明細書は、1つまたは複数の量子プロセッサによって実装されたニューラルネットワークアーキテクチャについて説明する。以後量子ニューラルネットワーク(QNN)と呼ばれるニューラルネットワークは、機械学習タスク、例えば2値分類タスクを実施するようにトレーニングされ得る。例えば、QNNは、ブール関数f:{0,1}n→{0,1}、例えばパリティ関数、サブセットパリティ関数、またはサブセット多数決関数を学習するようにトレーニングされてよい。これらの例では、機械学習タスクデータ入力が、ブール関数入力{0,1}nを含む。機械学習タスクに対する解が、ブール関数出力{0,1}を含む。
【0049】
例示的ハードウェア
図1は、機械学習タスクを実施するための例示的量子ニューラルネットワークアーキテクチャ100を示す。量子ニューラルネットワークアーキテクチャ100は、1つまたは複数の位置にある1つまたは複数の古典的コンピュータまたは量子コンピューティングデバイス上の古典的または量子コンピュータプログラムとして実装されたシステムの一例であり、そこに下で説明するシステム、コンポーネント、および技法を実装することができる。
【0050】
量子ニューラルネットワークアーキテクチャ100は、量子ニューラルネットワーク102を含む。量子ニューラルネットワーク102は、入力として機械学習タスク入力データ、例えば入力データ150を受信するように、かつ受信した入力データを処理して、出力として機械学習タスクに対する解を表すデータ、例えば出力データ152を生成するように、構成される。データ入力は、トレーニング中または機械学習タスクを実施する際に受信され得、すなわちデータ入力は、トレーニング例または実行時入力を表すことができる。例えば、量子ニューラルネットワーク102は、トレーニング中にトレーニングデータセットからのデータ入力を受信してもよく、推論に基づく機械学習プロセス中にユーザデバイスからデータ入力を受信してもよい。量子ニューラルネットワークをトレーニングするための例示的プロセスについては下で、
図2を参照して詳細に説明する。例示的な、推論に基づく機械学習プロセスについては下で、
図3を参照して詳細に説明する。
【0051】
量子ニューラルネットワーク102は、入力量子ニューラルネットワーク層104、一連の中間量子ニューラルネットワーク層106a~106e、および出力量子ニューラルネットワーク層108を含む。簡単のため、例示的量子ニューラルネットワーク102は、5つの中間量子ニューラルネットワーク層106a~106eを含むものとして示されているが、いくつかの実装形態では、量子ニューラルネットワークは、より少ない層またはより多くの層を含んでよい。層の数は、量子ニューラルネットワークが実施するようにトレーニングされる機械学習タスクの複雑さ、および/または量子ニューラルネットワークによって生成される解の目標精度に応じて決まってよい。
【0052】
入力量子ニューラルネットワーク層104は、例えば最近接相互作用をもつ2次元格子として配列された複数個の量子ビット110を含む。入力量子ニューラルネットワーク層内に含まれる量子ビットの物理的実現のタイプは、さまざまでよい。例えば、いくつかの実装形態では、入力量子ニューラルネットワーク層104は、超伝導量子ビット、例えば超伝導電荷量子ビット、超伝導磁束量子ビット、または超伝導位相量子ビットを含んでよい。他の実装形態では、入力量子ニューラルネットワーク層104は、スピン、例えば電子スピン、核スピン、または原子スピンによって実現される量子ビットを含んでよい。
【0053】
複数個の量子ビット110は、機械学習タスクデータ入力150を符号化した初期量子状態で準備された複数の量子ビットを含む。例えば、1つまたは複数の制御デバイス114が、複数の量子ビットの初期量子状態内に機械学習タスクデータ入力を、量子ビットの各々のz方向を設定することによって符号化してよい。例えば、データ入力が長さnの2進列を含む場合、システムは、各2進数字に対応するn個の量子ビットのz方向を0または1に設定してよく、ただし0は、0の計算基底状態|0>とみなされ、1は、1の計算基底状態|1>とみなされる。複数個の量子ビットは、初期状態、例えば任意の重ね合わせ状態で準備されるターゲット量子ビットも含む。
【0054】
中間量子ニューラルネットワーク層106a~106eの各々は、複数個の量子ビット110(すなわち機械学習タスクデータ入力を符号化した初期状態で準備された複数の量子ビット、およびターゲット量子ビット)に作用する複数の量子論理ゲートを含む。各中間量子ニューラルネットワーク層内に含まれる量子論理ゲートは、単一量子ビット量子論理ゲート、二量子ビット量子論理ゲート、または単一量子ビット量子論理ゲートと二量子ビット量子論理ゲートの両方を含んでよい。例えば、例示的量子ニューラルネットワーク100では、第1の中間量子ニューラルネットワーク層106aが、複数個の量子ビット110の各々に作用する、複数の単一量子ビットゲート、例えば単一量子ビットゲート112を含む。後続の中間量子ニューラルネットワーク層106b~106eは、二量子ビットゲート、例えば二量子ビットゲート118を含む。いくつかの実装形態では、単一量子ビット量子ゲートは、exp(-iθjXj)という形式の単一量子ビットゲートを含んでよく、ただしθjは、ゲートパラメータを表し、Xjは、パウリX演算子を表す。いくつかの実装形態では、二量子ビット量子ゲートは、exp(iθZjZk)という形式の二量子ビットゲートを含んでよく、ただしZjは、パウリZ演算子、または2つのパウリ演算子の他の任意の積を表す。
【0055】
一連の中間量子ニューラルネットワーク層106a~106eは、複数個の量子ビット110に作用し、複数個の量子ビット110を表す量子状態を進展量子状態に進展させる。進展量子状態は、機械学習タスクに対する解を符号化している。より具体的には、一連の量子ニューラルネットワーク層104、106a~106eが、機械学習タスクデータ入力150を符号化した初期量子状態を、機械学習タスクに対する解を符号化したターゲット量子ビットの進展状態にマッピングする。
【0056】
複数の測定量子ゲート、例えばターゲット量子ビットに作用して機械学習タスクに対する解を表す測定結果を出力として提供する測定ゲート120を含む、出力量子ニューラルネットワーク層108。例えば、測定量子ゲート120は、ターゲット量子ビットのy方向を測定して機械学習タスクに対する解を取得するゲートであってよい。ターゲット量子ビットの位置はさまざまでよく、
図1は、複数の可能な位置のうちの1つを示す。
【0057】
量子ニューラルネットワークアーキテクチャ100は、1つまたは複数の制御デバイス114、および1つまたは複数の古典的プロセッサ116を含んでよい。制御デバイス114は、量子ニューラルネットワーク102およびその中のコンポーネントに作用するように構成されたデバイスを含む。例えば、制御デバイス114は、複数個の量子ビット、例えば、量子ビットの状態が制御されることを可能にする励起パルスを流す、複数個の量子ビットに結合された制御線を初期化するのに使用されるハードウェアを含んでよい。制御デバイス114は、複数個の量子ビットに適用される量子論理ゲートを制御するのに使用されるハードウェア、例えば量子論理ゲートパラメータの値を設定または調整するのに使用されるハードウェアをさらに含んでよい。いくつかの実装形態では、制御デバイスは、マイクロ波制御デバイスを含んでよい。
【0058】
古典的プロセッサ116は、古典的動作を実施するように構成されてよい。例えば、古典的プロセッサ116は、入力データの前処理または出力データの後処理を実施してよい。例えば、古典的プロセッサ116は、量子ニューラルネットワーク102から機械学習タスクに対する解を表す出力データを受信し、受信したデータを処理して、システム100のオペレータに表示するために提供され得るデータ出力を生成してよい。
【0059】
いくつかの実装形態では、量子ニューラルネットワーク100は、古典的プロセッサ116によって実装された古典的深層ニューラルネットワークと共に使用されてよい。例えば、量子ニューラルネットワーク100は、機械学習タスクを実施するようにトレーニングされた古典的深層ニューラルネットワークの上位(最終)n層を置き換えてよい。これらの例では、量子ニューラルネットワークによって受信される機械学習タスクデータ入力は、古典的深層ニューラルネットワーク内の(新たな)上位層からの出力を含む。
【0060】
ハードウェアのプログラミング
図2は、分類タスクを実施するように量子ニューラルネットワークをトレーニングするための例示的プロセス200の流れ図である。例えば、この例示的プロセスは、上で
図1を参照して説明した量子ニューラルネットワーク100をトレーニングするために使用されてよい。簡単のため、プロセス200については、1つまたは複数の位置に位置する1つまたは複数の古典的および/または量子コンピュータのシステムによって実施されるものとして説明する。
【0061】
システムは、機械学習タスク入力と、それとペアにされた、機械学習タスク入力についての既知の分類とをそれぞれが含む、複数のトレーニング例を取得する(ステップ202)。例えば、量子ニューラルネットワークがブール関数を学習するようにトレーニングされる場合、トレーニング例は、{zs,ys=f(zs)}s=1,…Sを含んでよく、ただしzsは、機械学習タスク入力を表し、ysは、その入力についての既知の分類を表す。
【0062】
システムは、トレーニング例に対して量子ニューラルネットワークをトレーニングして、ゲートパラメータの値を初期値からトレーニング後の値に調整する(ステップ204)。トレーニング例に対して量子ニューラルネットワークをトレーニングするために、システムは、入力量子ニューラルネットワーク層の複数の量子ビットを初期量子状態で準備して、その初期量子状態内に機械学習タスク入力を符号化する(ステップ204a)。システムは次いで、1つまたは複数の中間量子ニューラルネットワーク層を使用して機械学習タスク入力を処理する(ステップ204b)。各量子ニューラルネットワーク層は、複数の量子ビットおよびターゲット量子ビットに作用する複数の量子論理ゲートを含み、前記ターゲット量子ビットは、入力量子ニューラルネットワーク層内にもある。したがって、1つまたは複数の中間量子ニューラルネットワーク層を使用して機械学習タスク入力を処理することは、各中間量子ニューラルネットワーク層について順番に、中間量子ニューラルネットワーク層の量子論理ゲートを、複数の量子ビットおよびターゲット量子ビットを表す現在の量子状態に適用することを含んでよい。システムは次いで、出力量子ニューラルネットワーク層内でターゲット量子ビットに測定量子ゲートを適用することによって、ターゲット量子ビットを測定して、機械学習タスクに対する解を表す出力を生成する(ステップ204c)。
【0063】
システムは、生成された出力を既知の分類と比較して、1つまたは複数のゲートパラメータ調整値を決定する(ステップ204d)。生成された出力を既知の分類と比較することは、生成された出力、および既知の分類を使用して、関数、例えば損失関数を計算することを含んでよい。関数は、複数の量子ビットおよびターゲット量子ビットの進展量子状態に応じて決まり、同様に、進展量子状態は、1つまたは複数の中間量子ニューラルネットワーク層内に含まれる単一量子ビット量子論理ゲートおよび二量子ビット量子論理ゲートの量子ゲートパラメータに応じて決まり得る。例えば、量子ニューラルネットワークがブール関数f:{0,1}n→{0,1}、例えばパリティ関数、サブセットパリティ関数、サブセット多数決関数、または論理AND関数を学習するようにトレーニングされる場合、損失関数は、
Loss(s,θ)=(<ψ(θ,zs)|σy out|ψ(θ,zs)>-ys)2
によって与えられてよく、ただしθは、量子ゲートパラメータを表し、ψ(θ,zs)は、複数の量子ビットおよびターゲット量子ビットの進展量子状態を表し、σy outは、測定量子ゲートを表し、ysは、既知の分類を表す。この損失関数に対して勾配降下法、例えば確率的勾配降下法を次いで実施して、ゲートパラメータの調整値を決定してよい。
【0064】
本量子ニューラルネットワークの特定のアーキテクチャのため、1つまたは複数のパラメータ調整値を決定するためにバックプロパゲーション技法は必要とならない。これは、入力量子ニューラルネットワーク層、中間量子ニューラルネットワーク層、および出力量子ニューラルネットワーク層の構造によって、生成された出力を既知の分類と比較するために使用される進展量子状態の関数が、単に出力量子ニューラルネットワーク層内に含まれる量子論理ゲートパラメータのみならず、中間量子ニューラルネットワーク層内に含まれる量子論理ゲートの量子論理ゲートパラメータに応じて決まるためである。換言すれば、従来のニューラルネットワークとは異なり、複数の中間量子ニューラルネットワーク層を入力量子ニューラルネットワーク層出力に適用するというアクションは、入力量子ニューラルネットワーク層内に含まれる量子ビットの初期状態を、複数の中間量子ニューラルネットワーク層内に含まれる量子論理ゲートの量子論理ゲートパラメータによってパラメータ化される一連のユニタリ演算子の下で進展させることと等価である。対照的に、従来のニューラルネットワークは、それらのパラメータの高度にネストされた関数と考えることができる。したがって、進展初期状態は、全ての量子論理ゲートパラメータに応じて決まる。したがって、進展量子状態の関数に対する最適化を実施する際に、全ての量子論理ゲートパラメータのパラメータ調整値(すなわち全ての中間量子ニューラルネットワーク層のパラメータ調整値)を決定するには、ただ1つの勾配降下ルーチンまたは他の最適化ルーチンが実施されればよい。
【0065】
システムは次いで、ゲートパラメータの値を初期値からトレーニング後の値に調整する(ステップ204e)。
【0066】
いくつかの実装形態では、システムは、トレーニング例のサブセットを処理した後で、例えば100個のトレーニング例を処理した後で、正則化技法を実施してよい。正則化技法は、0-ノルムまたは1-ノルム正則化を含む。例えば、トレーニング例のサブセットを処理した後で、量子ゲートパラメータθが、任意のパラメータが0に近いかどうかを決定するために監視されてよい。パラメータが0に近い場合、ゲートは、学習が再循環され得るように、例えばZゲートをYゲートと置き換えることによって調整されてよい。
【0067】
図3は、機械学習タスクを実施するようにトレーニングされた量子ニューラルネットワークを使用してデータ入力を処理するための例示的プロセス300の流れ図である。例えば、例示的プロセス300は、
図2のプロセス200を使用して機械学習タスクを実施するようにトレーニングされた
図1の量子ニューラルネットワーク100を使用して、データ入力を処理するために使用されてよい。簡単のため、プロセス300については、1つまたは複数の位置に位置する1つまたは複数の古典的および/または量子コンピュータのシステムによって実施されるものとして説明する。
【0068】
システムは、入力量子ニューラルネットワーク層の複数の量子ビットを初期量子状態で準備して、その初期量子状態内にデータ入力を符号化する(ステップ302)。例えば、システムは、初期量子状態内にデータ入力を、入力量子ニューラルネットワーク層の複数の量子ビットの各々のz方向を設定することによって符号化してよい。入力量子ニューラルネットワーク層の複数の量子ビットを準備することは、入力量子ニューラルネットワーク層内に含まれるターゲット量子ビットを初期状態に、例えば、
【数1】
の重ね合わせ状態で準備することも含む。
【0069】
システムは、複数の量子ビットおよびターゲット量子ビットに作用する複数の量子論理ゲートをそれぞれが含む、1つまたは複数の中間量子ニューラルネットワーク層を使用してデータ入力を処理する(ステップ304)。各中間量子ニューラルネットワーク層は、単一量子ビット量子論理ゲート、例えばexp(-iθXj)という形式の単一量子ビットゲート、二量子ビット量子論理ゲート、例えばexp(iθZjZk)という形式の二量子ビットゲート、または単一量子ビット量子論理ゲートと二量子ビット量子論理ゲートの両方を含み、それらは、中間量子ニューラルネットワーク層内に含まれる量子ビットに作用する。したがって、1つまたは複数の中間量子ニューラルネットワーク層を使用してデータ入力を処理することは、各中間量子ニューラルネットワーク層について順番に、中間量子ニューラルネットワーク層の量子論理ゲートを、複数の量子ビットおよびターゲット量子ビットを表す現在の量子状態に適用することを含む。
【0070】
このように1つまたは複数の中間量子ニューラルネットワーク層を使用してデータ入力を処理すると、符号化されたデータ入力がターゲット量子ビットの進展状態にマッピングされる。すなわち、符号化されたデータ入力がターゲット量子ビットの進展状態に、ユニタリ演算子を初期量子状態に適用することを通じてマッピングされる。ユニタリ演算子は、中間量子ニューラルネットワーク層内に含まれる量子論理ゲートの1量子ゲート量子論理ゲートパラメータおよび2量子ゲート量子論理ゲートパラメータによってパラメータ化される。
【0071】
システムは、ターゲット量子ビットを測定して、機械学習タスクに対する解を表す出力を生成する(ステップ306)。例えば、機械学習タスクが2値分類タスクであり、ステップ302において初期量子状態内に符号化されたデータ入力がブール関数入力{0,1}nである場合、機械学習タスクに対する解を表す生成された出力は、ブール関数出力{0,1}を含んでよい。ターゲット量子ビットを測定することは、ターゲット量子ビットのy方向を測定することを含んでよい。
【0072】
本明細書において説明したデジタルおよび/または量子主題ならびにデジタル機能動作および量子動作の実装形態は、デジタル電子回路、適切な量子回路、もしくはより一般には、量子計算システムにおいて、有形に具現化されたデジタルおよび/もしくは量子コンピュータのソフトウェアもしくはファームウェアにおいて、本明細書において開示した構造およびそれらの構造的等価物を含むデジタルおよび/もしくは量子コンピュータハードウェアにおいて、またはそれらのうちの1つもしくは複数の組合せにおいて、実装することができる。「量子計算システム」という用語には、それらに限定されないが、量子コンピュータ、量子情報処理システム、量子暗号システム、または量子シミュレータが含まれてよい。
【0073】
本明細書において説明したデジタルおよび/または量子主題の実装形態は、データ処理装置によって実行できるように、またはデータ処理装置の動作を制御するために、有形の非一時的記憶媒体上に符号化された、1つまたは複数のデジタルおよび/または量子コンピュータプログラム、すなわちデジタルおよび/または量子コンピュータプログラム命令の1つまたは複数のモジュールとして、実装することができる。デジタルおよび/または量子コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、1つもしくは複数の量子ビット、またはそれらのうちの1つもしくは複数の組合せとすることができる。その代わりにまたはそれに加えて、プログラム命令は、デジタルおよび/または量子情報を、データ処理装置によって実行する目的で適切なレシーバ装置に送信できるように符号化するために生成される、デジタルおよび/または量子情報を符号化することの可能な人工的に生成された伝搬信号、例えば、機械により生成された電気信号、光信号、または電磁信号上に、符号化することができる。
【0074】
量子情報および量子データという用語は、量子系によって運ばれ、量子系内に保持または格納される情報またはデータを指し、ここで、最小の非自明な系は、量子ビット、すなわち量子情報の単位を定義する系である。「量子ビット」という用語は、対応する文脈の中で二準位系として適切に近似され得るあらゆる量子系を包含することが理解されよう。そのような量子系は、例えば2つ以上の準位をもつ多準位系を含んでよい。例として、そのような系は、原子、電子、光子、イオン、または超伝導量子ビットを含むことができる。多くの実装形態では、計算基底状態は、基底状態(ground state)および第一励起状態であるとみなされるが、計算状態がより高準位の励起状態であるとみなされる他の構成が可能であることが理解されよう。
【0075】
「データ処理装置」という用語は、デジタルおよび/または量子データ処理ハードウェアを指し、例としてプログラマブルデジタルプロセッサ、プログラマブル量子プロセッサ、デジタルコンピュータ、量子コンピュータ、複数のデジタルおよび量子プロセッサまたはコンピュータ、ならびにそれらの組合せを含む、デジタルおよび/または量子データを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。装置は、専用論理回路、例えばFPGA(フィールドプログラマブルゲートアレイ)、ASIC(特定用途向け集積回路)、または量子シミュレータ、すなわち特定の量子系についての情報をシミュレーションするかまたは生じさせるように設計された量子データ処理装置とすることもでき、またはそれをさらに含むこともできる。具体的には、量子シミュレータは、万能量子計算を実施する能力を有していない専用量子コンピュータである。装置はオプションで、ハードウェアに加えて、デジタルおよび/または量子コンピュータプログラムのための実行環境を作り出すコード、例えばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを構成するコードも含むことができる。
【0076】
プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも呼ばれるかまたは記載されることのあるデジタルコンピュータプログラムは、コンパイル型もしくはインタープリタ型言語、または宣言型もしくは手続き型言語を含む、任意の形態のプログラミング言語で記述することができ、またそれは、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはデジタルコンピューティング環境において使用するのに適した他のユニットとして、を含む、任意の形態でデプロイすることができる。プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも呼ばれるかまたは記載されることのある量子コンピュータプログラムは、コンパイル型もしくはインタープリタ型言語、または宣言型もしくは手続き型言語を含む、任意の形態のプログラミング言語で記述して、適切な量子プログラミング言語に変換することもでき、あるいは量子プログラミング言語、例えばQCLまたはQuipperで記述することもできる。
【0077】
デジタルおよび/または量子コンピュータプログラムは、その必要はないが、ファイルシステム内のファイルに対応してよい。プログラムは、他のプログラムもしくはデータを保持するファイルの一部分、例えばマークアップ言語ドキュメント内に格納された1つもしくは複数のスクリプト内に、当該のプログラムに専用の単一ファイル内に、または複数の連係されたファイル、例えばコードの1つもしくは複数のモジュール、サブプログラム、もしくは部分を格納するファイル内に、格納することができる。デジタルおよび/または量子コンピュータプログラムは、1つのデジタルコンピュータもしくは1つの量子コンピュータ上で、または1つのサイトに位置するかもしくは複数のサイトにわたって分散され、デジタルおよび/もしくは量子データ通信ネットワークによって相互接続された複数のデジタルおよび/もしくは量子コンピュータ上で実行されるように、デプロイすることができる。量子データ通信ネットワークは、量子データを、量子系、例えば量子ビットを使用して伝送することのできるネットワークであると理解される。一般に、デジタルデータ通信ネットワークは、量子データを伝送することができないが、量子データ通信ネットワークは、量子データとデジタルデータの両方を伝送することができる。
【0078】
本明細書において説明したプロセスおよび論理フローは、入力されたデジタルおよび量子データに作用し出力を生成することにより、機能を実施するための1つまたは複数のデジタルおよび/または量子コンピュータプログラムを実行する1つまたは複数のデジタルおよび/または量子プロセッサを用いて必要に応じて動作する、1つまたは複数のプログラマブルデジタルおよび/または量子コンピュータによって実施することができる。プロセスおよび論理フローは、専用論理回路、例えばFPGAもしくはASIC、または量子シミュレータによって、あるいは、専用論理回路または量子シミュレータと、1つまたは複数のプログラムされたデジタルおよび/または量子コンピュータとの組合せによって、実施することもでき、装置は、専用論理回路、例えばFPGAもしくはASIC、または量子シミュレータとして、あるいは、専用論理回路または量子シミュレータと、1つまたは複数のプログラムされたデジタルおよび/または量子コンピュータとの組合せによって、実装することもできる。
【0079】
1つまたは複数のデジタルおよび/または量子コンピュータのシステムが、特定の動作またはアクションを実施する「ように構成される」とは、システムがその上に、動作の際にシステムにその動作またはアクションを実施させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せを組み込まれる、ということを意味する。1つまたは複数のデジタルおよび/または量子コンピュータプログラムが、特定の動作またはアクションを実施するように構成されるとは、1つまたは複数のプログラムが、デジタルおよび/または量子データ処理装置によって実行されると装置にその動作またはアクションを実施させる命令を含む、ということを意味する。量子コンピュータは、量子コンピューティング装置によって実行されると装置にその動作またはアクションを実施させる命令を、デジタルコンピュータから受信することができる。
【0080】
デジタルおよび/または量子コンピュータプログラムの実行に適したデジタルおよび/または量子コンピュータは、汎用デジタルおよび/もしくは量子プロセッサまたは専用デジタルおよび/もしくは量子プロセッサ、またはその両方、あるいは他の任意の種類のデジタルおよび/または量子中央処理装置に基づいてよい。一般に、デジタルおよび/または量子中央処理装置は、読出し専用メモリ、ランダムアクセスメモリ、または量子データ、例えば光子を伝送するのに適した量子系、またはそれらの組合せから、命令ならびにデジタルおよび/または量子データを受信する。
【0081】
デジタルおよび/または量子コンピュータの必須要素は、命令を実施または実行するための中央処理装置、ならびに、命令と、デジタルおよび/または量子データとを格納するための1つまたは複数のメモリデバイスである。中央処理装置およびメモリは、専用論理回路または量子シミュレータによって補完するか、またはそれに組み込むことができる。一般に、デジタルおよび/または量子コンピュータはまた、デジタルおよび/または量子データを格納するための1つまたは複数の大容量記憶デバイス、例えば磁気ディスク、光磁気ディスク、光ディスク、または量子情報を格納するのに適した量子系を含むか、またはそこからデジタルおよび/または量子データを受信するか、もしくはそこにデジタルおよび/または量子データを転送するか、もしくはその両方を行うために、動作可能に結合される。しかし、デジタルおよび/または量子コンピュータは、そのようなデバイスを有している必要はない。
【0082】
デジタルおよび/または量子コンピュータプログラム命令ならびにデジタルおよび/または量子データを格納するのに適したデジタルおよび/または量子コンピュータ可読媒体としては、例として、半導体メモリデバイス、例えばEPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、例えば内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、CD-ROMディスクおよびDVD-ROMディスク、ならびに量子系、例えばトラップ原子またはトラップ電子を含む、あらゆる形態の不揮発性デジタルおよび/または量子メモリ、媒体、およびメモリデバイスがある。量子メモリは、量子データを長時間にわたって高い忠実度および効率で格納することのできるデバイス、例えば、光-物質インターフェースであり、ただし光は伝送に使用され、物質は、量子データの、重ね合わせや量子コヒーレンスなどの量子特徴を格納および維持するのに使用されることが理解されよう。
【0083】
本明細書において説明したさまざまなシステム、またはそれらの部分の制御は、1つまたは複数の非一時的機械可読記憶媒体上に格納され、かつ1つまたは複数のデジタルおよび/または量子処理デバイス上で実行可能な命令を含む、デジタルおよび/または量子コンピュータプログラム製品において実装することができる。本明細書において説明したシステム、またはそれらの部分はそれぞれ、1つまたは複数のデジタルおよび/または量子処理デバイスと、本明細書において説明した動作を実施するための実行可能命令を格納するためのメモリとを含むことのできる装置、方法、またはシステムとして実装することができる。
【0084】
本明細書は、実装形態の具体的詳細を多く含んでいるが、これらは、特許請求され得るものの範囲に対する限定と解釈するのではなく、特定の実装形態に特定的であり得る特徴についての説明と解釈すべきである。本明細書において別々の実装形態の文脈の中で説明される、ある特定の特徴は、単一実装形態において組み合わせて実装することもできる。反対に、単一実装形態の文脈の中で説明されるさまざまな特徴を、複数の実装形態において別々に、または任意の適切な部分組合せで実装することもできる。さらに、特徴については上で、ある特定の組合せにおいて作用するものと説明されていることがあり、そういうものとして最初に特許請求されていることさえあるが、特許請求された組合せからの1つまたは複数の特徴を、場合によっては、その組合せから削除することができ、特許請求された組合せが、部分組合せまたは部分組合せの変形を対象としてよい。
【0085】
同様に、動作については図面中に特定の順序で描かれているが、これは、望ましい結果を達成するために、そのような動作が図示の特定の順序で、もしくは順番に実施されること、または示された全ての動作が実施されることを必要とするものと理解すべきではない。ある特定の状況下では、マルチタスキングおよび並列処理が、有利となる場合がある。さらに、上で説明した実装形態におけるさまざまなシステムモジュールおよびシステムコンポーネントの分離は、全ての実装形態においてそのような分離を必要とするものと理解すべきではなく、説明したプログラムコンポーネントおよびシステムは一般に、単一ソフトウェア製品に一緒に統合するか、または複数のソフトウェア製品にパッケージ化できる、ということを理解されたい。
【0086】
以上、本主題の特定の実装形態について説明してきた。他の実装形態が、添付の特許請求の範囲に記載の範囲に含まれる。例えば、特許請求の範囲内に記述されたアクションを、異なる順序で実施し、それでもなお、望ましい結果を達成することができる。一例として、添付の図中に描かれたプロセスは、望ましい結果を達成するために、図示の特定の順序、または順番を必ずしも必要とするとは限らない。場合によっては、マルチタスキングおよび並列処理が、有利となる場合がある。
【符号の説明】
【0087】
100 量子ニューラルネットワークアーキテクチャ、例示的量子ニューラルネットワーク、システム
102 量子ニューラルネットワーク
104 入力量子ニューラルネットワーク層
106a 第1の中間量子ニューラルネットワーク層
106b 中間量子ニューラルネットワーク層
106c 中間量子ニューラルネットワーク層
106d 中間量子ニューラルネットワーク層
106e 中間量子ニューラルネットワーク層
108 出力量子ニューラルネットワーク層
110 量子ビット
112 単一量子ビットゲート
114 制御デバイス
116 古典的プロセッサ
118 二量子ビットゲート
120 測定ゲート、測定量子ゲート
150 入力データ、機械学習タスクデータ入力
152 出力データ
200 例示的プロセス
300 例示的プロセス
【手続補正書】
【提出日】2023-11-02
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
機械学習タスクを実行するように量子ニューラルネットワークをトレーニングするための方法であって、
複数のトレーニング例に対して前記量子ニューラルネットワークをトレーニングするステップを含み、
前記トレーニング例の各々は、機械学習タスク入力についての既知の分類とペアにされた前記機械学習タスク入力を含み、前記トレーニングするステップが、各トレーニング例に対して、
前記機械学習タスク入力を、入力量子ニューラルネットワーク層の複数の量子ビットの初期量子状態に符号化するステップと、
1つまたは複数の中間量子ニューラルネットワーク層を使用して、前記機械学習タスク入力を処理するステップであって、各中間量子ニューラルネットワーク層が、前記複数の量子ビットおよびターゲット量子ビットに作用する複数の量子論理ゲートを含み、前記ターゲット量子ビットも、入力量子ニューラルネットワーク層内にあり、前記処理するステップが、各中間量子ニューラルネットワーク層について順番に、前記中間量子ニューラルネットワーク層の量子論理ゲートを、前記複数の量子ビットおよび前記ターゲット量子ビットを表す現在の量子状態に適用するステップを含む、ステップと、
出力量子ニューラルネット層において前記ターゲット量子ビットを測定し、前記機械学習タスクに対する解を表す出力を取得するステップであって、
前記出力が、前記複数の量子ビットおよびターゲット量子ビットの発展量子状態に依存する測定結果を含み、
前記発展量子状態が、各中間量子ニューラルネットワーク層内の前記複数の量子ビットおよびターゲット量子ビットに作用する前記複数の量子論理ゲートに依存する、ステップと、
前記出力と前記既知の分類とを比較し、1つまたは複数の量子論理ゲートパラメータ調整値を決定するステップと、
前記1つまたは複数の量子論理ゲートパラメータ調整値に従って、量子論理ゲートパラメータの値を初期値からトレーニング後の値に調整するステップと
を含む、方法。
【請求項2】
各中間量子ニューラルネットワーク層が、(i)単一量子ビット量子論理ゲート、(ii)二量子ビット量子論理ゲート、または(iii)単一量子ビットおよび二量子ビット量子論理の両方を含む、請求項1に記載の方法。
【請求項3】
前記単一量子ビット量子論理ゲートが、exp(-iθX
j
)という形の単一量子ビットゲートを含む、請求項2に記載の方法。
【請求項4】
前記二量子ビット量子論理ゲートが、exp(iθZ
j
Z
k
)という形の二量子ビットゲートを含む、請求項2に記載の方法。
【請求項5】
前記1つまたは複数の中間量子ニューラルネットワーク層を使用して前記機械学習タスク入力を処理するステップが、前記符号化された機械学習タスク入力を、前記ターゲット量子ビットの進展状態にマッピングするステップを含む、請求項1に記載の方法。
【請求項6】
前記符号化された機械学習タスク入力を、前記ターゲット量子ビットの進展状態にマッピングするステップが、前記初期量子状態にユニタリ演算子を適用するステップを含み、前記ユニタリ演算子が、前記量子論理ゲートに対する前記量子論理ゲートパラメータによりパラメータ化される、請求項5に記載の方法。
【請求項7】
前記機械学習タスク入力を前記複数の量子ビットの初期量子状態に符号化するステップが、前記複数の量子ビットの各々のz方向を設定するステップを含む、請求項1に記載の方法。
【請求項8】
前記ターゲット量子ビットを測定し、前記機械学習タスクに対する解を表す出力を取得するステップが、前記ターゲット量子ビットのy方向を測定するステップを含む、請求項1に記載の方法。
【請求項9】
前記出力と前記既知の分類とを比較し、1つまたは複数の量子論理ゲートパラメータ調整値を決定するステップが、
前記出力、および前記機械学習タスクについての前記既知の分類を使用して、損失関数を計算するステップを含み、
前記1つまたは複数の量子論理ゲートパラメータ調整値に従って、量子論理ゲートパラメータの値を初期値からトレーニング後の値に調整するステップが、
勾配降下法を実行して、前記量子論理ゲートパラメータの調整値を決定するステップを含む、請求項1に記載の方法。
【請求項10】
前記損失関数が、前記複数の量子ビットおよび前記ターゲット量子ビットの進展状態に依存し、
前記進展状態は、前記中間量子ニューラルネットワーク層の各々についての前記量子論理ゲートに対する量子論理ゲートパラメータに依存する、請求項9に記載の方法。
【請求項11】
前記損失関数が、
【数1】
によって与えられ、ここで、θは、量子論理ゲートパラメータを表し、ψ(θ,z
s
)は、前記複数の量子ビットおよび前記ターゲット量子ビットの進展量子状態を表し、σ
y
out
は、測定量子ゲートを表し、y
s
は、前記既知の分類を表す、請求項9に記載の方法。
【請求項12】
トレーニング例のサブセットを処理した後に、正則化を実行するステップをさらに含み、前記正則化が、0-ノルムまたは1-ノルム正則化を含む、請求項1に記載の方法。
【請求項13】
前記機械学習タスクが、2値分類タスクを含み、前記機械学習タスク入力が、ブール関数入力{0,1}
n
を含み、前記機械学習タスクに対する前記解が、ブール関数出力{0,1}を含む、請求項1に記載の方法。
【請求項14】
前記ブール関数入力が、パリティ関数入力、サブセットパリティ関数入力、サブセット多数決関数入力、または論理AND関数入力を含む、請求項13に記載の方法。
【請求項15】
装置であって、
1つまたは複数の量子プロセッサにより実装される量子ニューラルネットワークと、
前記量子ニューラルネットワークとデータ通信する古典プロセッサと
を備え、前記装置が、機械学習タスクを実行するように前記量子ニューラルネットワークをトレーニングするための動作を実行するように構成され、
前記動作が、複数のトレーニング例に対して前記量子ニューラルネットワークをトレーニングする動作を含み、前記トレーニング例の各々は、機械学習タスク入力についての既知の分類とペアにされた前記機械学習タスク入力を含み、前記トレーニングする動作が、各トレーニング例に対して、
前記機械学習タスク入力を、入力量子ニューラルネットワーク層の複数の量子ビットの初期量子状態に符号化する動作と、
1つまたは複数の中間量子ニューラルネットワーク層を使用して、前記機械学習タスク入力を処理する動作であって、各中間量子ニューラルネットワーク層が、前記複数の量子ビットおよびターゲット量子ビットに作用する複数の量子論理ゲートを含み、前記ターゲット量子ビットも、入力量子ニューラルネットワーク層内にあり、前記処理する動作が、各中間量子ニューラルネットワーク層について順番に、前記中間量子ニューラルネットワーク層の量子論理ゲートを、前記複数の量子ビットおよび前記ターゲット量子ビットを表す現在の量子状態に適用する動作を含む、動作と、
出力量子ニューラルネット層において前記ターゲット量子ビットを測定し、前記機械学習タスクに対する解を表す出力を取得する動作であって、
前記出力が、前記複数の量子ビットおよびターゲット量子ビットの発展量子状態に依存する測定結果を含み、
前記発展量子状態が、各中間量子ニューラルネットワーク層内の前記複数の量子ビットおよびターゲット量子ビットに作用する前記複数の量子論理ゲートに依存する、動作と、
前記出力と前記既知の分類とを比較し、1つまたは複数の量子論理ゲートパラメータ調整値を決定する動作と、
前記1つまたは複数の量子論理ゲートパラメータ調整値に従って、量子論理ゲートパラメータの値を初期値からトレーニング後の値に調整する動作と
を含む、装置。
【請求項16】
各中間量子ニューラルネットワーク層が、(i)単一量子ビット量子論理ゲート、(ii)二量子ビット量子論理ゲート、または(iii)単一量子ビットおよび二量子ビット量子論理の両方を含む、請求項15に記載の装置。
【請求項17】
前記単一量子ビット量子論理ゲートが、exp(-iθX
j
)という形の単一量子ビットゲートを含む、請求項16に記載の装置。
【請求項18】
前記二量子ビット量子論理ゲートが、exp(iθZ
j
Z
k
)という形の二量子ビットゲートを含む、請求項16に記載の装置。
【請求項19】
前記1つまたは複数の中間量子ニューラルネットワーク層を使用して前記機械学習タスク入力を処理する動作が、前記符号化された機械学習タスク入力を、前記ターゲット量子ビットの進展状態にマッピングする動作を含む、請求項15に記載の装置。
【請求項20】
前記符号化された機械学習タスク入力を、前記ターゲット量子ビットの進展状態にマッピングする動作が、前記初期量子状態にユニタリ演算子を適用する動作を含み、前記ユニタリ演算子が、前記量子論理ゲートに対する前記量子論理ゲートパラメータによりパラメータ化される、請求項19に記載の装置。
【外国語明細書】