(57)【特許請求の範囲】
【請求項１】
1つまたは複数の量子プロセッサによって実装された量子ニューラルネットワークのシステムであって、
(i)初期量子状態で準備され、機械学習タスクデータ入力を符号化した複数の量子ビット、および(ii)初期状態で準備されたターゲット量子ビットを備える、入力量子ニューラルネットワーク層と、
前記複数の量子ビットおよび前記ターゲット量子ビットに作用する複数の量子論理ゲートを各々が備える、一連の中間量子ニューラルネットワーク層と、
前記ターゲット量子ビットに作用し、前記量子ニューラルネットワークが実施するようにトレーニングされた機械学習タスクに対する解を表すデータを出力として提供する測定量子ゲートを備える、出力量子ニューラルネットワーク層と
を備える、システム。
【請求項２】
前記機械学習タスクが2値分類タスクを含む、請求項1に記載のシステム。
【請求項３】
前記機械学習タスクデータ入力が、ブール関数入力{0,1}nを含み、前記機械学習タスクに対する前記解が、ブール関数出力{0,1}を含む、請求項2に記載のシステム。
【請求項４】
各中間量子ニューラルネットワーク層が、(i)単一量子ビット量子論理ゲート、(ii)二量子ビット量子論理ゲート、または(iii)単一量子ビット量子論理ゲートと二量子ビット量子論理ゲートの両方を備える、請求項1から3のいずれか一項に記載のシステム。
【請求項５】
前記単一量子ビット量子論理ゲートが、exp(-iθXj)という形式の単一量子ビットゲートを備える、請求項4に記載のシステム。
【請求項６】
前記二量子ビット量子論理ゲートが、exp(iθZjZk)という形式の二量子ビットゲートを備える、請求項4に記載のシステム。
【請求項７】
前記一連の中間量子ニューラルネットワーク層が、前記符号化された機械学習タスクデータ入力を前記ターゲット量子ビットの進展状態にマッピングする、請求項1から6のいずれか一項に記載のシステム。
【請求項８】
前記符号化された機械学習タスクデータ入力を前記ターゲット量子ビットの進展状態にマッピングすることが、前記量子論理ゲートの量子論理ゲートパラメータによってパラメータ化されたユニタリ演算子を前記初期量子状態に適用することを含む、請求項7に記載のシステム。
【請求項９】
前記複数の量子ビットを前記初期状態で準備することが、前記複数の量子ビットの各々のz方向を設定することを含む、請求項1から8のいずれか一項に記載のシステム。
【請求項１０】
前記量子ニューラルネットワークが実施するようにトレーニングされた前記機械学習タスクに対する解を表す前記データが、前記複数の量子ビットおよび前記ターゲット量子ビットの進展量子状態に応じて決まる測定結果を備え、前記進展量子状態が、各中間量子ニューラルネットワーク層内の、前記複数の量子ビットおよび前記ターゲット量子ビットに作用する前記複数の量子論理ゲートに応じて決まる、請求項1から9のいずれか一項に記載のシステム。
【請求項１１】
前記測定量子ゲートが、前記ターゲット量子ビットのy方向を測定する、請求項1から10のいずれか一項に記載のシステム。
【請求項１２】
前記量子ニューラルネットワークが、前記機械学習タスクを実施するようにトレーニングされた古典的深層ニューラルネットワークのn個の上位層を置き換える、請求項1から11のいずれか一項に記載のシステム。
【請求項１３】
前記機械学習タスクデータ入力が、前記古典的深層ニューラルネットワークからの出力を含む、請求項12に記載のシステム。
【請求項１４】
前記複数の量子ビットおよび前記ターゲット量子ビットが、最近接相互作用をもつ2次元格子として配列される、請求項1から13のいずれか一項に記載のシステム。
【請求項１５】
機械学習タスクを実施するようにトレーニングされた量子ニューラルネットワークを使用してデータ入力を処理するための方法であって、
初期量子状態において、入力量子ニューラルネットワーク層の複数の量子ビットを初期量子状態で準備して、機械学習タスクデータ入力を符号化するステップと、
1つまたは複数の中間量子ニューラルネットワーク層を使用して、前記機械学習タスクデータ入力を処理するステップであって、各中間量子ニューラルネットワーク層が、前記複数の量子ビットおよびターゲット量子ビットに作用する複数の量子論理ゲートを備え、前記ターゲット量子ビットが、前記入力量子ニューラルネットワーク層内にもあり、前記処理するステップが、各中間量子ニューラルネットワーク層について順番に、前記中間量子ニューラルネットワーク層の量子論理ゲートを、前記複数の量子ビットおよび前記ターゲット量子ビットを表す現在の量子状態に適用するステップを含む、ステップと、
前記ターゲット量子ビットを、出力量子ニューラルネットワーク層内の測定量子ゲートによって測定して、前記機械学習タスクに対する解を表す出力を生成するステップと
を含む、方法。
【請求項１６】
前記機械学習タスクが2値分類タスクを含む、請求項15に記載の方法。
【請求項１７】
前記機械学習タスクデータ入力が、ブール関数入力{0,1}nを含み、前記機械学習タスクに対する前記解が、ブール関数出力{0,1}を含む、請求項16に記載の方法。
【請求項１８】
各中間量子ニューラルネットワーク層が、(i)単一量子ビット量子論理ゲート、(ii)二量子ビット量子論理ゲート、または(iii)単一量子ビット量子論理ゲートと二量子ビット量子論理ゲートの両方を備える、請求項15から17のいずれか一項に記載の方法。
【請求項１９】
前記単一量子ビット量子論理ゲートが、exp(-iθXj)という形式の単一量子ビットゲートを備える、請求項18に記載の方法。
【請求項２０】
前記二量子ビット量子論理ゲートが、exp(iθZjZk)という形式の二量子ビットゲートを備える、請求項18に記載の方法。
【請求項２１】
一連の前記中間量子ニューラルネットワーク層を使用して、前記データ入力を処理するステップが、前記符号化された機械学習タスクデータ入力を前記ターゲット量子ビットの進展状態にマッピングするステップを含む、請求項15から20のいずれか一項に記載の方法。
【請求項２２】
前記符号化された機械学習タスクデータ入力を前記ターゲット量子ビットの前記進展状態にマッピングするステップが、前記量子論理ゲートの量子論理ゲートパラメータによってパラメータ化されたユニタリ演算子を前記初期量子状態に適用することを含む、請求項21に記載の方法。
【請求項２３】
前記複数の量子ビットの初期量子状態内に前記データ入力を符号化するステップが、前記複数の量子ビットの各々のz方向を設定するステップを含む、請求項15から22のいずれか一項に記載の方法。
【請求項２４】
前記ターゲット量子ビットを測定して、前記機械学習タスクに対する解を表す出力を生成するステップが、前記ターゲット量子ビットのy方向を測定するステップを含む、請求項15から23のいずれか一項に記載の方法。
【請求項２５】
前記機械学習タスクに対する解を表す前記出力が、前記複数の量子ビットおよび前記ターゲット量子ビットの進展量子状態に応じて決まる測定結果を備え、前記進展量子状態が、各中間量子ニューラルネットワーク層内の、前記複数の量子ビットおよび前記ターゲット量子ビットに作用する前記複数の量子論理ゲートに応じて決まる、請求項15から24のいずれか一項に記載の方法。
【請求項２６】
量子ニューラルネットワークをトレーニングするための方法であって、
機械学習タスク入力と、それとペアにされた、前記機械学習タスク入力についての既知の分類とをそれぞれのトレーニング例が備える、複数のトレーニング例を取得するステップと、
前記トレーニング例に対して前記量子ニューラルネットワークをトレーニングするステップであって、各トレーニング例について、
初期量子状態において、入力量子ニューラルネットワーク層の複数の量子ビットを初期量子状態で準備して、前記機械学習タスク入力を符号化するステップと、
1つまたは複数の中間量子ニューラルネットワーク層を使用して、前記機械学習タスク入力を処理するステップであって、各中間量子ニューラルネットワーク層が、前記複数の量子ビットおよびターゲット量子ビットに作用する複数の量子論理ゲートを備え、前記ターゲット量子ビットが、前記入力量子ニューラルネットワーク層内にもあり、前記処理するステップが、各中間量子ニューラルネットワーク層について順番に、前記中間量子ニューラルネットワーク層の量子論理ゲートを、前記複数の量子ビットおよび前記ターゲット量子ビットを表す現在の量子状態に適用するステップを含む、ステップと、
前記ターゲット量子ビットを、出力量子ニューラルネットワーク層内の測定量子ゲートによって測定して、機械学習タスクに対する解を表す出力を生成するステップ、および、
前記生成された出力を前記既知の分類と比較して、1つまたは複数のゲートパラメータ調整値を決定するステップ、および
ゲートパラメータの値を初期値からトレーニング後の値に調整するステップ
を含む、ステップと
を含む、方法。
【請求項２７】
前記生成された出力を前記既知の分類と比較して、1つまたは複数のゲートパラメータ調整値を決定するステップが、
前記生成された出力、および前記機械学習タスクについての前記既知の分類を使用して、損失関数を計算するステップと、
勾配降下法を実施して、ゲートパラメータの調整値を決定するステップと、
を含む、請求項26に記載の方法。
【請求項２８】
トレーニング例のサブセットを処理した後で正則化を実施するステップをさらに含む、請求項27に記載の方法。
【請求項２９】
正則化が、0-ノルムまたは1-ノルム正則化を含む、請求項28に記載の方法。
【請求項３０】
前記損失関数が、前記複数の量子ビットおよび前記ターゲット量子ビットの進展状態に応じて決まり、前記進展状態が、前記中間量子ニューラルネットワーク層の各々の前記量子論理ゲートのゲートパラメータに応じて決まる、請求項27に記載の方法。
【請求項３１】
前記機械学習タスクを実施するように前記量子ニューラルネットワークをトレーニングするステップが、ブール関数f:{0,1}n→{0,1}を学習するように前記量子ニューラルネットワークをトレーニングするステップを含む、請求項27から30のいずれか一項に記載の方法。
【請求項３２】
前記損失関数が、
Loss(s,θ)=(＜ψ(θ,zs)|σy out|ψ(θ,zs)＞-ys)2
によって与えられ、ただしθは、前記ゲートパラメータを表し、ψ(θ,zs)は、前記複数の量子ビットおよび前記ターゲット量子ビットの進展量子状態を表し、σy outは、前記測定量子ゲートを表し、ysは、前記既知の分類を表す、請求項31に記載の方法。
【請求項３３】
前記ブール関数が、パリティ関数、サブセットパリティ関数、サブセット多数決関数、または論理AND関数を含む、請求項31に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、ニューラルネットワークアーキテクチャおよび量子コンピューティングに関する。
【背景技術】
【０００２】
ニューラルネットワークは、非線形ユニットの1つまたは複数の層を用いて、受信した入力に対する出力を予測する、機械学習モデルである。一部のニューラルネットワークは、出力層に加えて、1つまたは複数の隠れ層を含む。各隠れ層の出力が、ネットワーク内の次の層、すなわち次の隠れ層または出力層への入力として使用される。ネットワークの各層は、受信した入力から、それぞれに対応するパラメータセットの現在値に従って、出力を生成する。
【発明の概要】
【課題を解決するための手段】
【０００３】
本明細書では、1つまたは複数の量子プロセッサによって実装されたニューラルネットワークアーキテクチャについて説明する。
【０００４】
一般に、本明細書において説明する本主題の一革新的態様は、1つまたは複数の量子プロセッサによって実装された量子ニューラルネットワークであって、(i)初期量子状態で準備され機械学習タスクデータ入力を符号化した複数の量子ビット、および(ii)初期状態で準備されたターゲット量子ビットを備える、入力量子ニューラルネットワーク層と、複数の量子ビットおよびターゲット量子ビットに作用する複数の量子論理ゲートを各々が備える、一連の中間量子ニューラルネットワーク層と、ターゲット量子ビットに作用して量子ニューラルネットワークが実施するようにトレーニングされた機械学習タスクに対する解を表すデータを出力として提供する測定量子ゲートを備える、出力量子ニューラルネットワーク層とを備える量子ニューラルネットワークにおいて、具現化することができる。
【０００５】
本態様の他の実施形態は、対応するコンピュータシステム、装置、および1つまたは複数のコンピュータ記憶デバイス上に記録されたコンピュータプログラムを含む。1つまたは複数の古典的または量子コンピュータのシステムは、特定の動作またはアクションを、システム上に組み込まれた、動作の際にシステムにそのアクションを実施させることのできるソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せによって実施するように、構成することができる。1つまたは複数のコンピュータプログラムは、特定の動作またはアクションを、データ処理装置によって実行されると装置にそのアクションを実施させる命令を含むことによって実施するように、構成することができる。
【０００６】
前述の実施形態および他の実施形態はそれぞれがオプションで、次の特徴のうちの1つまたは複数を単独で、または組み合わせて、含むことができる。いくつかの実装形態では、機械学習タスクが2値分類タスクを含む。
【０００７】
いくつかの実装形態では、機械学習タスクデータ入力が、ブール関数入力{0,1}nを含み、機械学習タスクに対する解が、ブール関数出力{0,1}を含む。
【０００８】
いくつかの実装形態では、各中間量子ニューラルネットワーク層が、(i)単一量子ビット量子論理ゲート、(ii)二量子ビット量子論理ゲート、または(iii)単一量子ビット量子論理ゲートと二量子ビット量子論理ゲートの両方を備える。
【０００９】
いくつかの実装形態では、単一量子ビット量子ゲートが、exp(-iθXj)という形式の単一量子ビットゲートを備える。
【００１０】
いくつかの実装形態では、二量子ビット量子ゲートが、exp(iθZjZk)という形式の二量子ビットゲートを備える。
【００１１】
いくつかの実装形態では、一連の中間量子ニューラルネットワーク層が、符号化した機械学習タスクデータ入力をターゲット量子ビットの進展状態(evolved state)にマッピングする。
【００１２】
いくつかの実装形態では、符号化した機械学習タスクデータ入力をターゲット量子ビットの進展状態にマッピングすることは、量子論理ゲートの量子論理ゲートパラメータによってパラメータ化されたユニタリ演算子を初期量子状態に適用することを含む。
【００１３】
いくつかの実装形態では、複数の量子ビットを初期状態で準備することが、複数の量子ビットの各々のz方向を設定することを含む。
【００１４】
いくつかの実装形態では、測定量子ゲートが、ターゲット量子ビットのy方向を測定する。
【００１５】
いくつかの実装形態では、量子ニューラルネットワークが、機械学習タスクを実施するようにトレーニングされた古典的深層ニューラルネットワークのn個の上位層を置き換える。
【００１６】
いくつかの実装形態では、機械学習タスクデータ入力が、古典的深層ニューラルネットワークからの出力を含む。
【００１７】
いくつかの実装形態では、複数の量子ビットおよびターゲット量子ビットが、最近接相互作用をもつ2次元格子として配列される。
【００１８】
一般に、本明細書において説明する本主題の別の革新的態様は、機械学習タスクを実施するようにトレーニングされた量子ニューラルネットワークを使用してデータ入力を処理するための方法であって、初期量子状態において、入力量子ニューラルネットワーク層の複数の量子ビットを初期量子状態で準備して、機械学習タスクデータ入力を符号化することと、1つまたは複数の中間量子ニューラルネットワーク層を使用して機械学習タスクデータ入力を処理することであって、各中間量子ニューラルネットワーク層が、複数の量子ビットおよびターゲット量子ビットに作用する複数の量子論理ゲートを備え、前記ターゲット量子ビットが、入力量子ニューラルネットワーク層内にもあり、前記処理することが、各中間量子ニューラルネットワーク層について順番に、中間量子ニューラルネットワーク層の量子論理ゲートを、複数の量子ビットおよびターゲット量子ビットを表す現在の量子状態に適用することを含む、処理することと、ターゲット量子ビットを、出力量子ニューラルネットワーク層内の測定量子ゲートによって測定して、機械学習タスクに対する解を表す出力を生成することとを含む方法において、具現化することができる。
【００１９】
本態様の他の実施形態は、方法のアクションを実施するようにそれぞれが構成された、対応するコンピュータシステム、装置、および1つまたは複数のコンピュータ記憶デバイス上に記録されたコンピュータプログラムを含む。1つまたは複数のコンピュータのシステムは、特定の動作またはアクションを、システム上に組み込まれた、動作の際にシステムにそのアクションを実施させることのできるソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せによって実施するように、構成することができる。1つまたは複数のコンピュータプログラムは、特定の動作またはアクションを、データ処理装置によって実行されると装置にそのアクションを実施させる命令を含むことによって実施するように、構成することができる。
【００２０】
前述の実施形態および他の実施形態はそれぞれがオプションで、次の特徴のうちの1つまたは複数を単独で、または組み合わせて、含むことができる。いくつかの実装形態では、機械学習タスクが2値分類タスクを含む。
【００２１】
いくつかの実装形態では、機械学習タスクデータ入力が、ブール関数入力{0,1}nを含み、機械学習タスクに対する解が、ブール関数出力{0,1}を含む。
【００２２】
いくつかの実装形態では、各中間量子ニューラルネットワーク層が、(i)単一量子ビット量子論理ゲート、(ii)二量子ビット量子論理ゲート、または(iii)単一量子ビット量子論理ゲートと二量子ビット量子論理ゲートの両方を備える。
【００２３】
いくつかの実装形態では、単一量子ビット量子ゲートが、exp(-iθXj)という形式の単一量子ビットゲートを備える。
【００２４】
いくつかの実装形態では、二量子ビット量子ゲートが、exp(iθZjZk)という形式の二量子ビットゲートを備える。
【００２５】
いくつかの実装形態では、一連の中間量子ニューラルネットワーク層を使用して、データ入力を処理することが、符号化した機械学習タスクデータ入力をターゲット量子ビットの進展状態にマッピングすることを含む。
【００２６】
いくつかの実装形態では、符号化した機械学習タスクデータ入力をターゲット量子ビットの進展状態にマッピングすることが、量子論理ゲートの量子論理ゲートパラメータによってパラメータ化されたユニタリ演算子を初期量子状態に適用することを含む。
【００２７】
いくつかの実装形態では、複数の量子ビットの初期量子状態内にデータ入力を符号化することが、複数の量子ビットの各々のz方向を設定することを含む。
【００２８】
いくつかの実装形態では、ターゲット量子ビットを測定して、機械学習タスクに対する解を表す出力を生成することが、ターゲット量子ビットのy方向を測定することを含む。
【００２９】
一般に、本明細書において説明する本主題の別の革新的態様は、量子ニューラルネットワークをトレーニングするための方法であって、機械学習タスク入力と、それとペアにされた、機械学習タスク入力についての既知の分類とをそれぞれが含む、複数のトレーニング例を取得することと、トレーニング例に対して量子ニューラルネットワークをトレーニングすることであって、各トレーニング例について、初期量子状態において、入力量子ニューラルネットワーク層の複数の量子ビットを初期量子状態で準備して、機械学習タスク入力を符号化すること、1つまたは複数の中間量子ニューラルネットワーク層を使用して機械学習タスク入力を処理することであって、各中間量子ニューラルネットワーク層が、複数の量子ビットおよびターゲット量子ビットに作用する複数の量子論理ゲートを備え、前記ターゲット量子ビットが、入力量子ニューラルネットワーク層内にもあり、前記処理することが、各中間量子ニューラルネットワーク層について順番に、中間量子ニューラルネットワーク層の量子論理ゲートを、複数の量子ビットおよびターゲット量子ビットを表す現在の量子状態に適用することを含む、処理すること、ターゲット量子ビットを、出力量子ニューラルネットワーク層内の測定量子ゲートによって測定して、機械学習タスクに対する解を表す出力を生成すること、および生成された出力を既知の分類と比較して、1つまたは複数のゲートパラメータ調整値を決定すること、およびゲートパラメータの値を初期値からトレーニング後の値に調整することを含む、トレーニングすることとを含む方法において、具現化することができる。
【００３０】
本態様の他の実施形態は、方法のアクションを実施するようにそれぞれが構成された、対応するコンピュータシステム、装置、および1つまたは複数のコンピュータ記憶デバイス上に記録されたコンピュータプログラムを含む。1つまたは複数のコンピュータのシステムは、特定の動作またはアクションを、システム上に組み込まれた、動作の際にシステムにそのアクションを実施させることのできるソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せによって実施するように、構成することができる。1つまたは複数のコンピュータプログラムは、特定の動作またはアクションを、データ処理装置によって実行されると装置にそのアクションを実施させる命令を含むことによって実施するように、構成することができる。
【００３１】
前述の実施形態および他の実施形態はそれぞれがオプションで、次の特徴のうちの1つまたは複数を単独で、または組み合わせて、含むことができる。いくつかの実装形態では、生成された出力を既知の分類と比較して、1つまたは複数のゲートパラメータ調整値を決定することが、生成された出力、および機械学習タスクについての既知の分類を使用して、損失関数を計算することと、勾配降下法を実施して、ゲートパラメータの調整値を決定することとを含む。
【００３２】
いくつかの実装形態では、方法は、トレーニング例のサブセットを処理した後で正則化を実施することをさらに含む。
【００３３】
いくつかの実装形態では、正則化は、0-ノルムまたは1-ノルム正則化を含む。
【００３４】
いくつかの実装形態では、機械学習タスクを実施するように量子ニューラルネットワークをトレーニングすることが、ブール関数f:{0,1}n→{0,1}を学習するように量子ニューラルネットワークをトレーニングすることを含む。
【００３５】
いくつかの実装形態では、損失関数が、Loss(s,θ)=(＜ψ(θ,zs)|σy out|ψ(θ,zs)＞-ys)2によって与えられ、ただしθは、量子ゲートパラメータを表し、ψ(θ,zs)は、複数の量子ビットおよびターゲット量子ビットの進展量子状態を表し、σy outは、測定量子ゲートを表し、ysは、既知の分類を表す。
【００３６】
いくつかの実装形態では、ブール関数が、パリティ関数、サブセットパリティ関数(subset parity function)、サブセット多数決関数(subset majority function)、または論理AND関数を含む。
【００３７】
本明細書において説明する本主題は、以下の利点のうちの1つまたは複数を実現するように、特定の実施形態において実装することができる。
【００３８】
現在説明している本開示は、古典的および量子ニューラルネットワークにおける現況技術に対する、著しい、広く適用可能な改善となっている。
【００３９】
本明細書において説明する量子ニューラルネットワークは、機械学習タスクを、知られている他の古典的または量子ニューラルネットワークに比べて少ない時間計算量(time complexity)で実施することができる。例えば、本明細書において説明する量子ニューラルネットワークは、因数分解タスクを決定タスクとみなして、その決定タスクを、量子ニューラルネットワークを使用して実施することにより、因数分解タスクの実施に使用することが可能である。時間計算量がより少なくなり得るのは、知られているニューラルネットワークを使用して因数分解を実施するのに必要なニューラルネットワーク層の数と、現在説明している量子ニューラルネットワークを使用して因数分解を実施するのに必要なニューラルネットワーク層の数との差が、因数分解される数の長さに対して指数関数的に増加し得るためである。
【００４０】
本明細書において説明する量子ニューラルネットワークは、機械学習タスクを、知られている他の古典的または量子ニューラルネットワークに比べて低いサンプル複雑度(sample complexity)で実施することができる。例えば、現在説明している量子ニューラルネットワークは機械学習タスクを、他のニューラルネットワークが同じ機械学習タスクを指数関数的サンプル複雑度で学習するのに比べて、多項式サンプル複雑度で学習することができる。
【００４１】
本明細書において説明する量子ニューラルネットワークは、知られている他の古典的または量子ニューラルネットワークに比べて高い表現能力(ニューラルネットワークの構造特性が、それが計算することのできる関数にどのように影響を及ぼすかについての指標)を達成することもできる。例えば、Vapnik Chervonenkis次元が、現在説明している量子ニューラルネットワークでは、他のニューラルネットワーク、例えば畳み込みニューラルネットワークに比べて大きくなり得る。
【００４２】
本明細書において説明する量子ニューラルネットワークは、知られている他の古典的または量子ニューラルネットワークに比べて高い、ラベルノイズに対する頑健性を達成することができる。例えば、現在説明している量子ニューラルネットワークは、パリティタスクを学習する際に、ラベルノイズに対するより高い頑健性を達成することができる。
【００４３】
現在説明している量子ニューラルネットワークの特定のアーキテクチャのため、本明細書において説明する量子ニューラルネットワークは、バックプロパゲーション技法を使用せずに機械学習タスクを実施するようにトレーニングされ得る。これにより、トレーニングプロセスが簡素化され、量子ニューラルネットワークをトレーニングするのに必要な処理時間およびコストが低減し得る。例えば、バックプロパゲーション技法を使用することの悪評高いマイナス面、例えば勾配の消失および爆発的増加による学習プロセスの実際的な不安定性を被ること、またはバックプロパゲーションの順次的な性質による大規模ニューラルネットワークの並列化の困難さが、回避され得る。
【００４４】
本明細書において説明する量子ニューラルネットワークは、古典的ニューラルネットワークと組み合わされてよい。古典的ニューラルネットワークの層を現在説明している量子ニューラルネットワークと置き換えることにより、ニューラルネットワークのトレーニング、および推測時の使用がそれにおいて可能な精度および時間が、すなわち単に古典的ニューラルネットワークを使用するのに比べて改善され得る。反対に、古典的ニューラルネットワークを使用して一部の事前計算を実施して、現在説明している量子ニューラルネットワークのための処理済みの入力を生成すると、量子ニューラルネットワークをトレーニングおよび使用する際に必要となる計算コストおよびリソースが、すなわち単に量子ニューラルネットワークを使用するのに比べて低減され得る。
【００４５】
本明細書の本主題の1つまたは複数の実施形態の詳細については、添付の図面および下の説明中に記載されている。本主題の他の特徴、態様、および利点が、説明、図面、および特許請求の範囲から明らかとなろう。
【図面の簡単な説明】
【００４６】
【図１】例示的量子ニューラルネットワークアーキテクチャのブロック図である。
【図２】量子ニューラルネットワークをトレーニングするための例示的プロセスの流れ図である。
【図３】機械学習タスクを実施するようにトレーニングされた量子ニューラルネットワークを使用してデータ入力を処理するための例示的プロセスの流れ図である。
【発明を実施するための形態】
【００４７】
さまざまな図面中の同様の参照番号および名称は、同様の要素を示す。
【００４８】
本明細書は、1つまたは複数の量子プロセッサによって実装されたニューラルネットワークアーキテクチャについて説明する。以後量子ニューラルネットワーク(QNN)と呼ばれるニューラルネットワークは、機械学習タスク、例えば2値分類タスクを実施するようにトレーニングされ得る。例えば、QNNは、ブール関数f:{0,1}n→{0,1}、例えばパリティ関数、サブセットパリティ関数、またはサブセット多数決関数を学習するようにトレーニングされてよい。これらの例では、機械学習タスクデータ入力が、ブール関数入力{0,1}nを含む。機械学習タスクに対する解が、ブール関数出力{0,1}を含む。
【００４９】
例示的ハードウェア
図1は、機械学習タスクを実施するための例示的量子ニューラルネットワークアーキテクチャ100を示す。量子ニューラルネットワークアーキテクチャ100は、1つまたは複数の位置にある1つまたは複数の古典的コンピュータまたは量子コンピューティングデバイス上の古典的または量子コンピュータプログラムとして実装されたシステムの一例であり、そこに下で説明するシステム、コンポーネント、および技法を実装することができる。
【００５０】
量子ニューラルネットワークアーキテクチャ100は、量子ニューラルネットワーク102を含む。量子ニューラルネットワーク102は、入力として機械学習タスク入力データ、例えば入力データ150を受信するように、かつ受信した入力データを処理して、出力として機械学習タスクに対する解を表すデータ、例えば出力データ152を生成するように、構成される。データ入力は、トレーニング中または機械学習タスクを実施する際に受信され得、すなわちデータ入力は、トレーニング例または実行時入力を表すことができる。例えば、量子ニューラルネットワーク102は、トレーニング中にトレーニングデータセットからのデータ入力を受信してもよく、推論に基づく機械学習プロセス中にユーザデバイスからデータ入力を受信してもよい。量子ニューラルネットワークをトレーニングするための例示的プロセスについては下で、図2を参照して詳細に説明する。例示的な、推論に基づく機械学習プロセスについては下で、図3を参照して詳細に説明する。
【００５１】
量子ニューラルネットワーク102は、入力量子ニューラルネットワーク層104、一連の中間量子ニューラルネットワーク層106a〜106e、および出力量子ニューラルネットワーク層108を含む。簡単のため、例示的量子ニューラルネットワーク102は、5つの中間量子ニューラルネットワーク層106a〜106eを含むものとして示されているが、いくつかの実装形態では、量子ニューラルネットワークは、より少ない層またはより多くの層を含んでよい。層の数は、量子ニューラルネットワークが実施するようにトレーニングされる機械学習タスクの複雑さ、および/または量子ニューラルネットワークによって生成される解の目標精度に応じて決まってよい。
【００５２】
入力量子ニューラルネットワーク層104は、例えば最近接相互作用をもつ2次元格子として配列された複数個の量子ビット110を含む。入力量子ニューラルネットワーク層内に含まれる量子ビットの物理的実現のタイプは、さまざまでよい。例えば、いくつかの実装形態では、入力量子ニューラルネットワーク層104は、超伝導量子ビット、例えば超伝導電荷量子ビット、超伝導磁束量子ビット、または超伝導位相量子ビットを含んでよい。他の実装形態では、入力量子ニューラルネットワーク層104は、スピン、例えば電子スピン、核スピン、または原子スピンによって実現される量子ビットを含んでよい。
【００５３】
複数個の量子ビット110は、機械学習タスクデータ入力150を符号化した初期量子状態で準備された複数の量子ビットを含む。例えば、1つまたは複数の制御デバイス114が、複数の量子ビットの初期量子状態内に機械学習タスクデータ入力を、量子ビットの各々のz方向を設定することによって符号化してよい。例えば、データ入力が長さnの2進列を含む場合、システムは、各2進数字に対応するn個の量子ビットのz方向を0または1に設定してよく、ただし0は、0の計算基底状態|0>とみなされ、1は、1の計算基底状態|1>とみなされる。複数個の量子ビットは、初期状態、例えば任意の重ね合わせ状態で準備されるターゲット量子ビットも含む。
【００５４】
中間量子ニューラルネットワーク層106a〜106eの各々は、複数個の量子ビット110(すなわち機械学習タスクデータ入力を符号化した初期状態で準備された複数の量子ビット、およびターゲット量子ビット)に作用する複数の量子論理ゲートを含む。各中間量子ニューラルネットワーク層内に含まれる量子論理ゲートは、単一量子ビット量子論理ゲート、二量子ビット量子論理ゲート、または単一量子ビット量子論理ゲートと二量子ビット量子論理ゲートの両方を含んでよい。例えば、例示的量子ニューラルネットワーク100では、第1の中間量子ニューラルネットワーク層106aが、複数個の量子ビット110の各々に作用する、複数の単一量子ビットゲート、例えば単一量子ビットゲート112を含む。後続の中間量子ニューラルネットワーク層106b〜106eは、二量子ビットゲート、例えば二量子ビットゲート118を含む。いくつかの実装形態では、単一量子ビット量子ゲートは、exp(-iθjXj)という形式の単一量子ビットゲートを含んでよく、ただしθjは、ゲートパラメータを表し、Xjは、パウリX演算子を表す。いくつかの実装形態では、二量子ビット量子ゲートは、exp(iθZjZk)という形式の二量子ビットゲートを含んでよく、ただしZjは、パウリZ演算子、または2つのパウリ演算子の他の任意の積を表す。
【００５５】
一連の中間量子ニューラルネットワーク層106a〜106eは、複数個の量子ビット110に作用し、複数個の量子ビット110を表す量子状態を進展量子状態に進展させる。進展量子状態は、機械学習タスクに対する解を符号化している。より具体的には、一連の量子ニューラルネットワーク層104、106a〜106eが、機械学習タスクデータ入力150を符号化した初期量子状態を、機械学習タスクに対する解を符号化したターゲット量子ビットの進展状態にマッピングする。
【００５６】
複数の測定量子ゲート、例えばターゲット量子ビットに作用して機械学習タスクに対する解を表す測定結果を出力として提供する測定ゲート120を含む、出力量子ニューラルネットワーク層108。例えば、測定量子ゲート120は、ターゲット量子ビットのy方向を測定して機械学習タスクに対する解を取得するゲートであってよい。ターゲット量子ビットの位置はさまざまでよく、図1は、複数の可能な位置のうちの1つを示す。
【００５７】
量子ニューラルネットワークアーキテクチャ100は、1つまたは複数の制御デバイス114、および1つまたは複数の古典的プロセッサ116を含んでよい。制御デバイス114は、量子ニューラルネットワーク102およびその中のコンポーネントに作用するように構成されたデバイスを含む。例えば、制御デバイス114は、複数個の量子ビット、例えば、量子ビットの状態が制御されることを可能にする励起パルスを流す、複数個の量子ビットに結合された制御線を初期化するのに使用されるハードウェアを含んでよい。制御デバイス114は、複数個の量子ビットに適用される量子論理ゲートを制御するのに使用されるハードウェア、例えば量子論理ゲートパラメータの値を設定または調整するのに使用されるハードウェアをさらに含んでよい。いくつかの実装形態では、制御デバイスは、マイクロ波制御デバイスを含んでよい。
【００５８】
古典的プロセッサ116は、古典的動作を実施するように構成されてよい。例えば、古典的プロセッサ116は、入力データの前処理または出力データの後処理を実施してよい。例えば、古典的プロセッサ116は、量子ニューラルネットワーク102から機械学習タスクに対する解を表す出力データを受信し、受信したデータを処理して、システム100のオペレータに表示するために提供され得るデータ出力を生成してよい。
【００５９】
いくつかの実装形態では、量子ニューラルネットワーク100は、古典的プロセッサ116によって実装された古典的深層ニューラルネットワークと共に使用されてよい。例えば、量子ニューラルネットワーク100は、機械学習タスクを実施するようにトレーニングされた古典的深層ニューラルネットワークの上位(最終)n層を置き換えてよい。これらの例では、量子ニューラルネットワークによって受信される機械学習タスクデータ入力は、古典的深層ニューラルネットワーク内の(新たな)上位層からの出力を含む。
【００６０】
ハードウェアのプログラミング
図2は、分類タスクを実施するように量子ニューラルネットワークをトレーニングするための例示的プロセス200の流れ図である。例えば、この例示的プロセスは、上で図1を参照して説明した量子ニューラルネットワーク100をトレーニングするために使用されてよい。簡単のため、プロセス200については、1つまたは複数の位置に位置する1つまたは複数の古典的および/または量子コンピュータのシステムによって実施されるものとして説明する。
【００６１】
システムは、機械学習タスク入力と、それとペアにされた、機械学習タスク入力についての既知の分類とをそれぞれが含む、複数のトレーニング例を取得する(ステップ202)。例えば、量子ニューラルネットワークがブール関数を学習するようにトレーニングされる場合、トレーニング例は、{zs,ys=f(zs)}s=1,…Sを含んでよく、ただしzsは、機械学習タスク入力を表し、ysは、その入力についての既知の分類を表す。
【００６２】
システムは、トレーニング例に対して量子ニューラルネットワークをトレーニングして、ゲートパラメータの値を初期値からトレーニング後の値に調整する(ステップ204)。トレーニング例に対して量子ニューラルネットワークをトレーニングするために、システムは、入力量子ニューラルネットワーク層の複数の量子ビットを初期量子状態で準備して、その初期量子状態内に機械学習タスク入力を符号化する(ステップ204a)。システムは次いで、1つまたは複数の中間量子ニューラルネットワーク層を使用して機械学習タスク入力を処理する(ステップ204b)。各量子ニューラルネットワーク層は、複数の量子ビットおよびターゲット量子ビットに作用する複数の量子論理ゲートを含み、前記ターゲット量子ビットは、入力量子ニューラルネットワーク層内にもある。したがって、1つまたは複数の中間量子ニューラルネットワーク層を使用して機械学習タスク入力を処理することは、各中間量子ニューラルネットワーク層について順番に、中間量子ニューラルネットワーク層の量子論理ゲートを、複数の量子ビットおよびターゲット量子ビットを表す現在の量子状態に適用することを含んでよい。システムは次いで、出力量子ニューラルネットワーク層内でターゲット量子ビットに測定量子ゲートを適用することによって、ターゲット量子ビットを測定して、機械学習タスクに対する解を表す出力を生成する(ステップ204c)。
【００６３】
システムは、生成された出力を既知の分類と比較して、1つまたは複数のゲートパラメータ調整値を決定する(ステップ204d)。生成された出力を既知の分類と比較することは、生成された出力、および既知の分類を使用して、関数、例えば損失関数を計算することを含んでよい。関数は、複数の量子ビットおよびターゲット量子ビットの進展量子状態に応じて決まり、同様に、進展量子状態は、1つまたは複数の中間量子ニューラルネットワーク層内に含まれる単一量子ビット量子論理ゲートおよび二量子ビット量子論理ゲートの量子ゲートパラメータに応じて決まり得る。例えば、量子ニューラルネットワークがブール関数f:{0,1}n→{0,1}、例えばパリティ関数、サブセットパリティ関数、サブセット多数決関数、または論理AND関数を学習するようにトレーニングされる場合、損失関数は、
Loss(s,θ)=(＜ψ(θ,zs)|σy out|ψ(θ,zs)＞-ys)2
によって与えられてよく、ただしθは、量子ゲートパラメータを表し、ψ(θ,zs)は、複数の量子ビットおよびターゲット量子ビットの進展量子状態を表し、σy outは、測定量子ゲートを表し、ysは、既知の分類を表す。この損失関数に対して勾配降下法、例えば確率的勾配降下法を次いで実施して、ゲートパラメータの調整値を決定してよい。
【００６４】
本量子ニューラルネットワークの特定のアーキテクチャのため、1つまたは複数のパラメータ調整値を決定するためにバックプロパゲーション技法は必要とならない。これは、入力量子ニューラルネットワーク層、中間量子ニューラルネットワーク層、および出力量子ニューラルネットワーク層の構造によって、生成された出力を既知の分類と比較するために使用される進展量子状態の関数が、単に出力量子ニューラルネットワーク層内に含まれる量子論理ゲートパラメータのみならず、中間量子ニューラルネットワーク層内に含まれる量子論理ゲートの量子論理ゲートパラメータに応じて決まるためである。換言すれば、従来のニューラルネットワークとは異なり、複数の中間量子ニューラルネットワーク層を入力量子ニューラルネットワーク層出力に適用するというアクションは、入力量子ニューラルネットワーク層内に含まれる量子ビットの初期状態を、複数の中間量子ニューラルネットワーク層内に含まれる量子論理ゲートの量子論理ゲートパラメータによってパラメータ化される一連のユニタリ演算子の下で進展させることと等価である。対照的に、従来のニューラルネットワークは、それらのパラメータの高度にネストされた関数と考えることができる。したがって、進展初期状態は、全ての量子論理ゲートパラメータに応じて決まる。したがって、進展量子状態の関数に対する最適化を実施する際に、全ての量子論理ゲートパラメータのパラメータ調整値(すなわち全ての中間量子ニューラルネットワーク層のパラメータ調整値)を決定するには、ただ1つの勾配降下ルーチンまたは他の最適化ルーチンが実施されればよい。
【００６５】
システムは次いで、ゲートパラメータの値を初期値からトレーニング後の値に調整する(ステップ204e)。
【００６６】
いくつかの実装形態では、システムは、トレーニング例のサブセットを処理した後で、例えば100個のトレーニング例を処理した後で、正則化技法を実施してよい。正則化技法は、0-ノルムまたは1-ノルム正則化を含む。例えば、トレーニング例のサブセットを処理した後で、量子ゲートパラメータθが、任意のパラメータが0に近いかどうかを決定するために監視されてよい。パラメータが0に近い場合、ゲートは、学習が再循環され得るように、例えばZゲートをYゲートと置き換えることによって調整されてよい。
【００６７】
図3は、機械学習タスクを実施するようにトレーニングされた量子ニューラルネットワークを使用してデータ入力を処理するための例示的プロセス300の流れ図である。例えば、例示的プロセス300は、図2のプロセス200を使用して機械学習タスクを実施するようにトレーニングされた図1の量子ニューラルネットワーク100を使用して、データ入力を処理するために使用されてよい。簡単のため、プロセス300については、1つまたは複数の位置に位置する1つまたは複数の古典的および/または量子コンピュータのシステムによって実施されるものとして説明する。
【００６８】
システムは、入力量子ニューラルネットワーク層の複数の量子ビットを初期量子状態で準備して、その初期量子状態内にデータ入力を符号化する(ステップ302)。例えば、システムは、初期量子状態内にデータ入力を、入力量子ニューラルネットワーク層の複数の量子ビットの各々のz方向を設定することによって符号化してよい。入力量子ニューラルネットワーク層の複数の量子ビットを準備することは、入力量子ニューラルネットワーク層内に含まれるターゲット量子ビットを初期状態に、例えば、
【数１】
0006882533.tif 000002
の重ね合わせ状態で準備することも含む。
【００６９】
システムは、複数の量子ビットおよびターゲット量子ビットに作用する複数の量子論理ゲートをそれぞれが含む、1つまたは複数の中間量子ニューラルネットワーク層を使用してデータ入力を処理する(ステップ304)。各中間量子ニューラルネットワーク層は、単一量子ビット量子論理ゲート、例えばexp(-iθXj)という形式の単一量子ビットゲート、二量子ビット量子論理ゲート、例えばexp(iθZjZk)という形式の二量子ビットゲート、または単一量子ビット量子論理ゲートと二量子ビット量子論理ゲートの両方を含み、それらは、中間量子ニューラルネットワーク層内に含まれる量子ビットに作用する。したがって、1つまたは複数の中間量子ニューラルネットワーク層を使用してデータ入力を処理することは、各中間量子ニューラルネットワーク層について順番に、中間量子ニューラルネットワーク層の量子論理ゲートを、複数の量子ビットおよびターゲット量子ビットを表す現在の量子状態に適用することを含む。
【００７０】
このように1つまたは複数の中間量子ニューラルネットワーク層を使用してデータ入力を処理すると、符号化されたデータ入力がターゲット量子ビットの進展状態にマッピングされる。すなわち、符号化されたデータ入力がターゲット量子ビットの進展状態に、ユニタリ演算子を初期量子状態に適用することを通じてマッピングされる。ユニタリ演算子は、中間量子ニューラルネットワーク層内に含まれる量子論理ゲートの1量子ゲート量子論理ゲートパラメータおよび2量子ゲート量子論理ゲートパラメータによってパラメータ化される。
【００７１】
システムは、ターゲット量子ビットを測定して、機械学習タスクに対する解を表す出力を生成する(ステップ306)。例えば、機械学習タスクが2値分類タスクであり、ステップ302において初期量子状態内に符号化されたデータ入力がブール関数入力{0,1}nである場合、機械学習タスクに対する解を表す生成された出力は、ブール関数出力{0,1}を含んでよい。ターゲット量子ビットを測定することは、ターゲット量子ビットのy方向を測定することを含んでよい。
【００７２】
本明細書において説明したデジタルおよび/または量子主題ならびにデジタル機能動作および量子動作の実装形態は、デジタル電子回路、適切な量子回路、もしくはより一般には、量子計算システムにおいて、有形に具現化されたデジタルおよび/もしくは量子コンピュータのソフトウェアもしくはファームウェアにおいて、本明細書において開示した構造およびそれらの構造的等価物を含むデジタルおよび/もしくは量子コンピュータハードウェアにおいて、またはそれらのうちの1つもしくは複数の組合せにおいて、実装することができる。「量子計算システム」という用語には、それらに限定されないが、量子コンピュータ、量子情報処理システム、量子暗号システム、または量子シミュレータが含まれてよい。
【００７３】
本明細書において説明したデジタルおよび/または量子主題の実装形態は、データ処理装置によって実行できるように、またはデータ処理装置の動作を制御するために、有形の非一時的記憶媒体上に符号化された、1つまたは複数のデジタルおよび/または量子コンピュータプログラム、すなわちデジタルおよび/または量子コンピュータプログラム命令の1つまたは複数のモジュールとして、実装することができる。デジタルおよび/または量子コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、1つもしくは複数の量子ビット、またはそれらのうちの1つもしくは複数の組合せとすることができる。その代わりにまたはそれに加えて、プログラム命令は、デジタルおよび/または量子情報を、データ処理装置によって実行する目的で適切なレシーバ装置に送信できるように符号化するために生成される、デジタルおよび/または量子情報を符号化することの可能な人工的に生成された伝搬信号、例えば、機械により生成された電気信号、光信号、または電磁信号上に、符号化することができる。
【００７４】
量子情報および量子データという用語は、量子系によって運ばれ、量子系内に保持または格納される情報またはデータを指し、ここで、最小の非自明な系は、量子ビット、すなわち量子情報の単位を定義する系である。「量子ビット」という用語は、対応する文脈の中で二準位系として適切に近似され得るあらゆる量子系を包含することが理解されよう。そのような量子系は、例えば2つ以上の準位をもつ多準位系を含んでよい。例として、そのような系は、原子、電子、光子、イオン、または超伝導量子ビットを含むことができる。多くの実装形態では、計算基底状態は、基底状態(ground state)および第一励起状態であるとみなされるが、計算状態がより高準位の励起状態であるとみなされる他の構成が可能であることが理解されよう。
【００７５】
「データ処理装置」という用語は、デジタルおよび/または量子データ処理ハードウェアを指し、例としてプログラマブルデジタルプロセッサ、プログラマブル量子プロセッサ、デジタルコンピュータ、量子コンピュータ、複数のデジタルおよび量子プロセッサまたはコンピュータ、ならびにそれらの組合せを含む、デジタルおよび/または量子データを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。装置は、専用論理回路、例えばFPGA(フィールドプログラマブルゲートアレイ)、ASIC(特定用途向け集積回路)、または量子シミュレータ、すなわち特定の量子系についての情報をシミュレーションするかまたは生じさせるように設計された量子データ処理装置とすることもでき、またはそれをさらに含むこともできる。具体的には、量子シミュレータは、万能量子計算を実施する能力を有していない専用量子コンピュータである。装置はオプションで、ハードウェアに加えて、デジタルおよび/または量子コンピュータプログラムのための実行環境を作り出すコード、例えばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを構成するコードも含むことができる。
【００７６】
プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも呼ばれるかまたは記載されることのあるデジタルコンピュータプログラムは、コンパイル型もしくはインタープリタ型言語、または宣言型もしくは手続き型言語を含む、任意の形態のプログラミング言語で記述することができ、またそれは、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはデジタルコンピューティング環境において使用するのに適した他のユニットとして、を含む、任意の形態でデプロイすることができる。プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも呼ばれるかまたは記載されることのある量子コンピュータプログラムは、コンパイル型もしくはインタープリタ型言語、または宣言型もしくは手続き型言語を含む、任意の形態のプログラミング言語で記述して、適切な量子プログラミング言語に変換することもでき、あるいは量子プログラミング言語、例えばQCLまたはQuipperで記述することもできる。
【００７７】
デジタルおよび/または量子コンピュータプログラムは、その必要はないが、ファイルシステム内のファイルに対応してよい。プログラムは、他のプログラムもしくはデータを保持するファイルの一部分、例えばマークアップ言語ドキュメント内に格納された1つもしくは複数のスクリプト内に、当該のプログラムに専用の単一ファイル内に、または複数の連係されたファイル、例えばコードの1つもしくは複数のモジュール、サブプログラム、もしくは部分を格納するファイル内に、格納することができる。デジタルおよび/または量子コンピュータプログラムは、1つのデジタルコンピュータもしくは1つの量子コンピュータ上で、または1つのサイトに位置するかもしくは複数のサイトにわたって分散され、デジタルおよび/もしくは量子データ通信ネットワークによって相互接続された複数のデジタルおよび/もしくは量子コンピュータ上で実行されるように、デプロイすることができる。量子データ通信ネットワークは、量子データを、量子系、例えば量子ビットを使用して伝送することのできるネットワークであると理解される。一般に、デジタルデータ通信ネットワークは、量子データを伝送することができないが、量子データ通信ネットワークは、量子データとデジタルデータの両方を伝送することができる。
【００７８】
本明細書において説明したプロセスおよび論理フローは、入力されたデジタルおよび量子データに作用し出力を生成することにより、機能を実施するための1つまたは複数のデジタルおよび/または量子コンピュータプログラムを実行する1つまたは複数のデジタルおよび/または量子プロセッサを用いて必要に応じて動作する、1つまたは複数のプログラマブルデジタルおよび/または量子コンピュータによって実施することができる。プロセスおよび論理フローは、専用論理回路、例えばFPGAもしくはASIC、または量子シミュレータによって、あるいは、専用論理回路または量子シミュレータと、1つまたは複数のプログラムされたデジタルおよび/または量子コンピュータとの組合せによって、実施することもでき、装置は、専用論理回路、例えばFPGAもしくはASIC、または量子シミュレータとして、あるいは、専用論理回路または量子シミュレータと、1つまたは複数のプログラムされたデジタルおよび/または量子コンピュータとの組合せによって、実装することもできる。
【００７９】
1つまたは複数のデジタルおよび/または量子コンピュータのシステムが、特定の動作またはアクションを実施する「ように構成される」とは、システムがその上に、動作の際にシステムにその動作またはアクションを実施させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せを組み込まれる、ということを意味する。1つまたは複数のデジタルおよび/または量子コンピュータプログラムが、特定の動作またはアクションを実施するように構成されるとは、1つまたは複数のプログラムが、デジタルおよび/または量子データ処理装置によって実行されると装置にその動作またはアクションを実施させる命令を含む、ということを意味する。量子コンピュータは、量子コンピューティング装置によって実行されると装置にその動作またはアクションを実施させる命令を、デジタルコンピュータから受信することができる。
【００８０】
デジタルおよび/または量子コンピュータプログラムの実行に適したデジタルおよび/または量子コンピュータは、汎用デジタルおよび/もしくは量子プロセッサまたは専用デジタルおよび/もしくは量子プロセッサ、またはその両方、あるいは他の任意の種類のデジタルおよび/または量子中央処理装置に基づいてよい。一般に、デジタルおよび/または量子中央処理装置は、読出し専用メモリ、ランダムアクセスメモリ、または量子データ、例えば光子を伝送するのに適した量子系、またはそれらの組合せから、命令ならびにデジタルおよび/または量子データを受信する。
【００８１】
デジタルおよび/または量子コンピュータの必須要素は、命令を実施または実行するための中央処理装置、ならびに、命令と、デジタルおよび/または量子データとを格納するための1つまたは複数のメモリデバイスである。中央処理装置およびメモリは、専用論理回路または量子シミュレータによって補完するか、またはそれに組み込むことができる。一般に、デジタルおよび/または量子コンピュータはまた、デジタルおよび/または量子データを格納するための1つまたは複数の大容量記憶デバイス、例えば磁気ディスク、光磁気ディスク、光ディスク、または量子情報を格納するのに適した量子系を含むか、またはそこからデジタルおよび/または量子データを受信するか、もしくはそこにデジタルおよび/または量子データを転送するか、もしくはその両方を行うために、動作可能に結合される。しかし、デジタルおよび/または量子コンピュータは、そのようなデバイスを有している必要はない。
【００８２】
デジタルおよび/または量子コンピュータプログラム命令ならびにデジタルおよび/または量子データを格納するのに適したデジタルおよび/または量子コンピュータ可読媒体としては、例として、半導体メモリデバイス、例えばEPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、例えば内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、CD-ROMディスクおよびDVD-ROMディスク、ならびに量子系、例えばトラップ原子またはトラップ電子を含む、あらゆる形態の不揮発性デジタルおよび/または量子メモリ、媒体、およびメモリデバイスがある。量子メモリは、量子データを長時間にわたって高い忠実度および効率で格納することのできるデバイス、例えば、光-物質インターフェースであり、ただし光は伝送に使用され、物質は、量子データの、重ね合わせや量子コヒーレンスなどの量子特徴を格納および維持するのに使用されることが理解されよう。
【００８３】
本明細書において説明したさまざまなシステム、またはそれらの部分の制御は、1つまたは複数の非一時的機械可読記憶媒体上に格納され、かつ1つまたは複数のデジタルおよび/または量子処理デバイス上で実行可能な命令を含む、デジタルおよび/または量子コンピュータプログラム製品において実装することができる。本明細書において説明したシステム、またはそれらの部分はそれぞれ、1つまたは複数のデジタルおよび/または量子処理デバイスと、本明細書において説明した動作を実施するための実行可能命令を格納するためのメモリとを含むことのできる装置、方法、またはシステムとして実装することができる。
【００８４】
本明細書は、実装形態の具体的詳細を多く含んでいるが、これらは、特許請求され得るものの範囲に対する限定と解釈するのではなく、特定の実装形態に特定的であり得る特徴についての説明と解釈すべきである。本明細書において別々の実装形態の文脈の中で説明される、ある特定の特徴は、単一実装形態において組み合わせて実装することもできる。反対に、単一実装形態の文脈の中で説明されるさまざまな特徴を、複数の実装形態において別々に、または任意の適切な部分組合せで実装することもできる。さらに、特徴については上で、ある特定の組合せにおいて作用するものと説明されていることがあり、そういうものとして最初に特許請求されていることさえあるが、特許請求された組合せからの1つまたは複数の特徴を、場合によっては、その組合せから削除することができ、特許請求された組合せが、部分組合せまたは部分組合せの変形を対象としてよい。
【００８５】
同様に、動作については図面中に特定の順序で描かれているが、これは、望ましい結果を達成するために、そのような動作が図示の特定の順序で、もしくは順番に実施されること、または示された全ての動作が実施されることを必要とするものと理解すべきではない。ある特定の状況下では、マルチタスキングおよび並列処理が、有利となる場合がある。さらに、上で説明した実装形態におけるさまざまなシステムモジュールおよびシステムコンポーネントの分離は、全ての実装形態においてそのような分離を必要とするものと理解すべきではなく、説明したプログラムコンポーネントおよびシステムは一般に、単一ソフトウェア製品に一緒に統合するか、または複数のソフトウェア製品にパッケージ化できる、ということを理解されたい。
【００８６】
以上、本主題の特定の実装形態について説明してきた。他の実装形態が、添付の特許請求の範囲に記載の範囲に含まれる。例えば、特許請求の範囲内に記述されたアクションを、異なる順序で実施し、それでもなお、望ましい結果を達成することができる。一例として、添付の図中に描かれたプロセスは、望ましい結果を達成するために、図示の特定の順序、または順番を必ずしも必要とするとは限らない。場合によっては、マルチタスキングおよび並列処理が、有利となる場合がある。
【符号の説明】
【００８７】
100  量子ニューラルネットワークアーキテクチャ、例示的量子ニューラルネットワーク、システム
102  量子ニューラルネットワーク
104  入力量子ニューラルネットワーク層
106a  第1の中間量子ニューラルネットワーク層
106b  中間量子ニューラルネットワーク層
106c  中間量子ニューラルネットワーク層
106d  中間量子ニューラルネットワーク層
106e  中間量子ニューラルネットワーク層
108  出力量子ニューラルネットワーク層
110  量子ビット
112  単一量子ビットゲート
114  制御デバイス
116  古典的プロセッサ
118  二量子ビットゲート
120  測定ゲート、測定量子ゲート
150  入力データ、機械学習タスクデータ入力
152  出力データ
200  例示的プロセス
300  例示的プロセス
【図１】
0006882533.tif 000003
【図２】
0006882533.tif 000004
【図３】
0006882533.tif 000005