本開示の例示的な態様は、量子コンピューティングシステムにおいてキュービットを較正するためのシステムおよび方法に向けられている。たとえば、破損除去オートエンコーダ(de-corrupting autoencoder)は、キュービット較正プロセス中にキュービット較正データからランダムノイズ、マスキングノイズ、または他のノイズを除去するためにキュービット較正データを処理するようにトレーニングされ得る。このようにして、破損除去オートエンコーダは、キュービット較正プロセスの信頼性を改善することができ、量子コンピューティングシステムの向上した性能につながる。本開示は、キュービット較正データから決定されたキュービットパラメータに依存して量子コンピューティングシステムを動作させる方法と、このように動作するように構成された量子コンピューティングシステムとをさらに包含する。
高い忠実度で量子計算を実行することは、量子コンピューティングシステムにおけるキュービットのキュービットパラメータの正確な較正を必要とする場合がある。例示的なキュービットパラメータは、たとえば、キュービット回路パラメータ、キュービット制御パラメータ、および/またはキュービット読み出しパラメータを含むことができる。キュービット較正プロセスは、キュービットパラメータのための較正データを取得するために複数の較正実験がキュービットに対して実施されるブートストラップ手順として実装され得る。複数の較正実験は、キュービットパラメータが向上した精度で学習されるように、較正データが1つまたは複数の仕様または他の要件を満たすと判断されるまで、繰り返し実行される。較正プロセスの初期段階において、キュービットパラメータは、高精度では知られない。そのため、較正実験中に取得された較正データは、たとえば、キュービット読み出しに関連するキュービットパラメータの不完全な知識に起因するランダムノイズのために破損される可能性がある。破損した較正データは、較正プロセスの信頼性および/または速度を低下させる可能性がある。
本開示の例示的な態様は、ノイズのために破損された可能性がある較正データを再構築するために、機械学習された破損除去オートエンコーダを用いることができる。破損除去オートエンコーダは、較正データ内のノイズを除去および/または低減するために較正データを処理するディープニューラルネットワークを含むことができる。これは、特に較正プロセスの初期段階において、較正プロセスの信頼性を改善することができる。
いくつかの実装形態において、キュービット較正は、グラフ走査(traversal)問題に抽象化され得る。この場合、キュービットパラメータのセットに関連するデータは、有向グラフとして表現され得る。有向グラフのノードは、較正されるべきキュービットの個々のキュービットパラメータを表すことができる。有向エッジは、キュービットパラメータ間の依存関係を表すことができる。
較正プロセスは、有向グラフに関するノードの先祖の順序付けに従って実施され得る。有向グラフのルートにおいて、キュービットパラメータは、学習されておらず、キュービットは、較正されていない。グラフのすべてのノードが走査され、較正が正常に完了した(たとえば、キュービットパラメータが仕様を満たした)後、キュービットは、較正される。有向グラフの構築は、任意であり得る。
例示的な較正プロセスは、キュービットごとに、ルートノードに関連付けられたキュービットパラメータで開始するステップと、キュービットパラメータのための較正データを取得するステップと、較正データを分析するステップと、キュービットパラメータが較正テストに合格するか失敗するかを判断するステップとを含むことができる。本明細書で使用される場合、較正テストは、較正データが仕様の範囲内か範囲外かを評価する弁別器動作を使用することによって実施され得る。較正データが較正テストに合格すると、ルートノードに関連付けられたキュービットパラメータの値が設定される。プロセスは、有向グラフ内の次のノードに進み、有向グラフ全体が走査されるまでプロセスが繰り返される。較正データが較正テストに合格しなかった場合、プロセスは、前のノードに対して較正プロセスを繰り返すために、有向グラフ内の前のノードに戻る。
較正プロセス中の較正データの任意の破損に対処するために、本開示の態様は、較正データの破損除去されたバージョンを再構築するために、機械学習された破損除去オートエンコーダを実装することができる。オートエンコーダは、教師なし学習フレームワーク内のデータセット内の潜在的な特徴を学習するために使用され得るディープニューラルネットワークである。オートエンコーダは、データセットを潜在的な表現またはコードに符号化するエンコーダネットワークを含む。オートエンコーダは、潜在的な表現またはコードからデータセットを再構築するために、潜在的な表現またはコードを復号するデコーダネットワークを含む。エンコーダネットワークとデコーダネットワークの両方は、逆伝播を使用してトレーニングされ得る複数の全結合層を有するフィードフォワードニューラルネットワークとして実装され得る。エンコーダネットワークは、入力データセットを、データセットよりも低次元であり得る潜在空間表現にダウンコンバートする。デコーダネットワークは、潜在的な表現を入力データセットの再構築にアップコンバートする。オートエンコーダのトレーニング中、エンコーダネットワークおよび/またはデコーダネットワークは、入力データセットを不十分に再構築することに対してペナルティを科される。
破損除去オートエンコーダは、データ破損除去のために(たとえば、データ内のノイズまたは他の破損の原因を低減するために)トレーニングされ得る。より具体的には、オートエンコーダは、良好なデータセットと、意図的に破損したトレーニングデータセット(たとえば、ランダムなスペックルノイズまたはマスキングノイズを有する画像などのデータセット)の両方においてトレーニングされ得る。エンコーダネットワークおよび/またはデコーダネットワークは、破損していない入力データセットを再構築しないことに対してペナルティを科される場合がある。
本開示の例示的な態様によれば、破損除去オートエンコーダは、1つまたは複数のキュービットパラメータのための較正データを破損除去するようにトレーニングされ得る。いくつかの実施形態において、固有の破損除去オートエンコーダが、固有のキュービットパラメータごとにトレーニングされ得る。破損除去オートエンコーダは、キュービット較正におけるエラーを低減するために、較正プロセスにおいて実装され得る。
いくつかの実施形態において、較正プロセスは、キュービットパラメータのための較正データに対して第1の較正テストを実行することを含むことができる。較正データが第1の較正テストに合格した場合、プロセスは、キュービットパラメータの値を設定し、次の較正(たとえば、有向グラフ内の次のノード)に進むことができる。較正データが第1の較正テストに失敗するか、または合格しなかった場合、較正プロセスは、破損除去オートエンコーダを使用して(たとえば、較正データに関連付けられたメタデータに基づいて)較正データがすでに再構築されているかどうかを判断することができる。そうである場合、較正プロセスは、前のキュービットパラメータ(たとえば、有向グラフ内の前のノード)に戻ることができる。較正データが以前に再構築されていない場合、較正プロセスは、較正データを破損除去オートエンコーダに提供することができる。較正データは、再構築された較正データを生成するために、破損除去オートエンコーダを使用して処理され得る。較正プロセスは、再構築された較正データに対して第2の較正テストを実行することができる。いくつかの実施形態において、第1の較正テストおよび第2の較正テストは、較正データが仕様を満たしているかどうかを判断するために、同じ弁別器動作を使用して実行され得る。再構築された較正データが第2の較正テストに合格した場合、キュービットパラメータの値を設定することができる。再構築された較正データが第2の較正テストに合格しなかった場合、プロセスは、前のキュービットパラメータ(たとえば、有向グラフ内の前のノード)に戻ることができる。
いくつかの実施形態において、キュービットパラメータのための較正プロセスは、それが破損されているかどうかを判断するために、較正データを処理することを最初に含むことができる。たとえば、較正データは、較正データが破損除去オートエンコーダを使用して再構築されるべきであるかどうかを判断するために、信号対ノイズ分類器および/または機械学習された分類器モデルを適用され得る。その場合、較正プロセスは、較正データを破損除去オートエンコーダに提供することができる。較正データは、再構築された較正データを提供するために、破損除去オートエンコーダを使用して処理され得る。較正プロセスは、再構築された較正データに対して較正テストを実行することができる。再構築された較正データが較正テストに合格した場合、プロセスは、キュービットパラメータの値を設定することができる。再構築された較正データが較正テストに合格しなかった場合、プロセスは、前のキュービットパラメータ(たとえば、有向グラフ内の前のノード)に戻ることができる。
本開示の例示的な態様は、技術的効果および利益を提供することができ、量子コンピューティングシステムに改善を提供することができる。たとえば、キュービット較正プロセス中に較正データを再構築するために破損除去オートエンコーダを実装することは、量子コンピューティングシステムにおける量子較正プロセルの堅牢性、速度、および/または信頼性を高めることができる。較正手順の品質は、改善され得る。それに加えて、キュービットパラメータを正常に較正するために必要な時間は、短縮され得る。したがって、キュービット較正を実施するシステムの計算パフォーマンスが、計算コストを削減しながら向上され得る。さらに、キュービット較正における向上した精度は、量子コンピューティングシステムにおけるキュービットのより正確な処理につながる可能性がある。
ここで図を参照して、本開示の例示的な実施形態について、さらに詳細に論じる。ここで使用される場合、値と併せた「約」という用語の使用は、値の20%以内を指す。
図1は、例示的な量子コンピューティングシステム100を示す。例示的なシステム100は、以下に説明するシステム、構成要素、および技法が実装され得る、1つまたは複数の場所における1つまたは複数の古典的コンピュータまたは量子コンピューティングデバイス上に古典的または量子コンピュータプログラムとして実装されたシステムの一例である。図1は、本開示の態様を実装するために使用され得る例示的な量子コンピューティングシステムを示す。本明細書において提供される開示を使用する当業者は、本開示の範囲から逸脱することなく、他の量子コンピューティング構造またはシステムが使用され得ることを理解するであろう。
システム100は、1つまたは複数の古典的プロセッサ104とデータ通信する量子ハードウェア102を含む。量子ハードウェア102は、量子計算を実行するための構成要素を含む。たとえば、量子ハードウェア102は、量子システム110と、制御デバイス112と、読み出しデバイス114(たとえば、読み出し共振器)とを含む。量子システム110は、キュービットのレジスタなどの1つまたは複数のマルチレベル量子サブシステムを含むことができる。いくつかの実装形態において、マルチレベル量子サブシステムは、磁束キュービット、電荷キュービット、トランスモンキュービット、gmonキュービット、などの超電導キュービットを含むことができる。
システム100が利用するマルチレベル量子サブシステムのタイプは、変化し得る。たとえば、場合によっては、1つまたは複数の超電導キュービット、たとえば、トランスモン、磁束、gmon、xmon、または他のキュービットに取り付けられた1つまたは複数の読み出しデバイス114を含むことが便利である場合がある。他の場合において、イオントラップ、フォトニックデバイス、または超電導空洞(キュービットを必要とすることなく状態が準備され得る)が使用され得る。マルチレベル量子サブシステムの実現のさらなる例は、fluxmonキュービット、シリコン量子ドット、またはリン不純物キュービットを含む。
量子回路は、1つまたは複数の制御デバイス112に結合された複数の制御線を介して、量子システム110内に含まれるキュービットのレジスタに構築または適用され得る。キュービットのレジスタにおいて動作する例示的な制御デバイス112は、量子論理ゲートまたは量子論理ゲートの回路、たとえば、アダマールゲート、制御NOT(CNOT)ゲート、制御位相ゲート、Tゲート、マルチキュービット量子ゲート、カプラ量子ゲートなどを実装するために使用され得る。1つまたは複数の制御デバイス112は、1つまたは複数のそれぞれの制御パラメータ(たとえば、1つまたは複数の物理的制御パラメータ)を介して量子システム110上で動作するように構成され得る。たとえば、いくつかの実装形態において、マルチレベル量子サブシステムは、超電導キュービットであり得、制御デバイス112は、キュービットの周波数を調整するための磁場を生成するために制御線に制御パルスを提供するように構成され得る。
量子ハードウェア102は、読み出しデバイス114(たとえば、読み出し共振器)をさらに含み得る。測定デバイスを介して取得された測定結果108は、処理および分析のために古典的プロセッサ104に提供され得る。いくつかの実装形態において、量子ハードウェア102は、量子回路と制御デバイス112とを含み得、読み出しデバイス114は、量子ハードウェア102内に含まれるワイヤを介して送信される物理的制御パラメータ(たとえば、マイクロ波パルス)を介して量子システム102上で動作する1つまたは複数の量子論理ゲートを実装し得る。制御デバイスのさらなる例は、DAC(デジタル-アナログ変換器)が信号を生成する任意波形生成器を含む。
読み出しデバイス114は、量子システム110上で量子測定を実行し、測定結果108を古典的プロセッサ104に送信するように構成され得る。それに加えて、量子ハードウェア102は、古典的プロセッサ104から物理的制御キュービットパラメータ値106を指定するデータを受信するように構成され得る。量子ハードウェア102は、量子システム110上の制御デバイス112および読み出しデバイス114の動作を更新するために、受信した物理的制御キュービットパラメータ値106を使用し得る。たとえば、量子ハードウェア102は、制御デバイス112内に含まれる1つまたは複数のDACの電圧強度を表す新しい値を指定するデータを受信し得、それに応じて、量子システム110上のDACの動作を更新し得る。古典的プロセッサ104は、たとえば、パラメータ106の初期セットを指定するデータを量子ハードウェア102に送信することによって、初期量子状態において量子システム110を初期化するように構成され得る。
読み出しデバイス114は、要素(たとえば、キュービット)の状態を測定するために、キュービットなどの量子システムの要素の|0>状態および|1>状態に関するインピーダンスにおける差を利用することができる。たとえば、読み出し共振器の共振周波数は、キュービットの非線形性により、キュービットが状態|0>または状態|1>にあるときに異なる値をとる可能性がある。したがって、読み出しデバイス114から反射されたマイクロ波パルスは、量子状態に依存する振幅および位相シフトを伝達する。いくつかの実装形態において、キュービット周波数におけるマイクロ波伝播を妨げるために、読み出しデバイス114と組み合わせてパーセルフィルタが使用され得る。
図2は、自動キュービット較正のための例示的なシステムを示す。例示的なシステムは、以下に説明するシステム、構成要素、および技法が実装され得る、1つまたは複数の場所における1つまたは複数の古典的コンピュータまたは量子コンピューティングデバイス上に古典的または量子コンピュータプログラムとして実装されたシステムの一例である。
システムは、キュービット較正システム130ならびにキュービットおよびパラメータ属性データストア132と通信する量子コンピューティングシステム100(たとえば、図1)を含む。キュービット較正システム130はまた、キュービットおよびパラメータ属性データストア132と通信する。
量子コンピューティングシステム100は、1つまたは複数のキュービット115を有する量子システム110を含む。1つまたは複数のキュービット115は、アルゴリズム演算または量子計算を実行するために使用され得る。1つまたは複数のキュービット115の具体的な実現は、量子コンピューティングシステム100が実行しているアルゴリズム演算または量子計算のタイプに依存する。たとえば、キュービット115は、原子量子システム、分子量子システム、または固体量子システムを介して実現される量子ビットを含み得る。他の例において、キュービット115は、限定はしないが、超電導キュービットまたは半導体キュービットを含み得る。説明のために、3つのキュービット115が図2において示されているが、システムは、任意の数のキュービットを含み得る。
各キュービット115は、複数のキュービットパラメータに関連付けられ得る。キュービットパラメータは、パラメータ化された量子ゲートにおいて使用される値、たとえば、πパルスに関する電圧振幅、または読み出しパルスの周波数を含み得る。たとえば、(たとえば、0状態と1状態との間と区別するために、π回転およびπ/2回転とシングルショット読み出しとを使用する読み出し共振器に分散的に結合される)超電導キュービットを調整するために、超電導キュービットは、読み出し信号に基づいて0状態と1状態との間を区別するための読み出し区別しきい値と、π回転キュービット周波数と、π/2回転キュービット周波数と、πパルス長と、π/2パルス長と、πパルス振幅と、π/2パルス振幅とを含む複数のパラメータに関連付けられ得る。キュービットに関連付けられたパラメータのうちのいくつかまたはすべては、較正のための実験的決定を必要とする場合がある。たとえば、キュービットパラメータの上記のリストにおいて、読み出しパルス周波数、読み出しパルス電力、読み出し信号に基づいて0状態と1状態との間を区別するための読み出し区別しきい値、π回転キュービット周波数、π/2回転キュービット周波数、πパルス振幅、およびπ/2パルス振幅は、実験的決定を必要とする場合がある。他のパラメータは、先験的に設定され得る。
複数のキュービットパラメータは、次に、1つまたは複数のパラメータ属性に関連付けられ得る。パラメータ属性は、それぞれのキュービット115の物理的実現に依存する。たとえば、キュービットパラメータに関するパラメータ属性は、キュービットパラメータの許容値(たとえば、パラメータ化された量子ゲートにおいて使用される許容値)を含み得る。キュービットパラメータ値が許容値であると判断された場合、またはキュービットパラメータ値が許容される公差値の範囲内にあると判断された場合、キュービットパラメータは、仕様の範囲内であると判断され得る。キュービット値が許容できない値であると判断された場合、キュービットパラメータは、仕様外であると判断され得る。たとえば、回転角が180°回転の約1%の公差値の範囲内である場合、πパルスパラメータは、仕様内であると判断され得る。仕様外のキュービットパラメータは、キュービットパラメータが仕様内であることを保証するために、較正を必要とする場合がある。
別の例において、キュービットパラメータに関するパラメータ属性は、パラメータの安定性の尺度、またはパラメータのドリフト時間を含み得る。較正後、温度などの外的要因により、キュービットパラメータが仕様外に自然にドリフトする場合がある。したがって、パラメータ属性は、パラメータ値がチェックまたは較正されるべき時間期間を示すそれぞれのタイムアウト期間を含み得る。
別の例として、キュービットパラメータに関するパラメータ属性は、キュービットパラメータの他のキュービットパラメータに対する依存関係を含み得る。キュービットパラメータは、少なくとも1つの他のキュービットパラメータと、少なくとも1つの他のキュービットパラメータの較正とに依存し得る。たとえば、キュービットは、原子であり得、キュービットのパラメータは、ラビ駆動を使用して較正され得る。ラビ駆動が正しく動作するために、事前に較正されなければならないいくつかのパラメータが存在する場合がある。たとえば、ラビ駆動は、異なる較正実験において決定されなければならないキュービット周波数において実行される必要がある場合があり、キュービット状態は、それ自体が較正されなければならない読み出し動作を使用して測定されなければならない。したがって、これらのパラメータの依存関係により、ラビ駆動が実行される前に、キュービット周波数較正および読み出し動作が較正されるべきである。
いくつかの実装形態において、キュービットパラメータは、各パラメータのためのノード、たとえば、ノード128と、各依存関係に関する有向エッジ、たとえば、有向エッジ120とを備える有向グラフによって表され得る。たとえば、上記で説明したような超電導キュービットの場合、0状態と1状態との間を区別するための読み出ししきい値パラメータは、読み出ししきい値パラメータがπパルスパラメータに依存することを示す有向エッジでπパルスパラメータを表すノードに接続されたノードによって表され得る。別の例として、πパルスを必要とするノードは、πパルス振幅を較正するノードに依存する場合があるので、πパルスを必要とするノードは、πパルス振幅を較正するノードに接続される。有向グラフ内の各ノードは、関連するパラメータと、ノードに関連付けられたパラメータの正しい値を決定するために使用され得る1つまたは複数の関連する較正実験とを有し得る。図2に示すように、各キュービット115は、いくつかのキュービットパラメータに関連付けられ得る。明確にするために、制限された数のキュービットパラメータが示されているが、キュービット115は、より少ないまたはより多い数のキュービットパラメータに関連付けられ得る。
有向グラフは、1つまたは複数のルートノード(たとえば、依存関係のないノード)を含み得る。ルートノードは、グラフのルートまたは「先祖」方向(たとえば、依存関係のないルートノードに向かう方向)と、グラフのリーフまたは「子」方向(たとえば、依存関係のあるノードに向かう方向、またはグラフ内のより深い部分に向かう方向)とを定義する。
キュービット較正システム130は、量子コンピューティングシステム100の一部として実装され、および/または量子コンピューティングシステム100と通信する古典的または量子処理デバイスを含み得る。キュービット較正システム130は、キュービットパラメータのセットと、キュービットパラメータのセット内の1つまたは複数の他のキュービットパラメータに対するキュービットパラメータの依存関係を含む、キュービットパラメータのセット内のパラメータの1つまたは複数の属性を記述するデータとを取得するように構成され得、パラメータおよびそれらの互いに対する依存関係は、各パラメータに関するノードと、各依存関係に関する有向エッジとを含む有向グラフによって表され得る。キュービット較正システム130は、オプションで、キュービットパラメータのセット内のパラメータの1つまたは複数の属性を記述するデータを、データストア、たとえば、キュービットパラメータおよび属性データストア132内に記憶し得る。いくつかの実装形態において、キュービット較正システム130は、自動キュービット較正システムの外部のサードパーティから(たとえば、ユーザ入力を介して)キュービットパラメータのセット内のパラメータの1つまたは複数の属性を記述するデータの一部またはすべてを取得し得る。
キュービット較正システム130は、キュービットパラメータを自動的に較正するために、キュービットパラメータのセット内のパラメータの1つまたは複数の属性を記述するデータを使用し得る。たとえば、キュービット較正システム130は、キュービットパラメータ(たとえば、有向グラフのルートノードに対応するキュービットパラメータ)を識別し、識別されたキュービットパラメータと1つまたは複数の従属するキュービットパラメータ(たとえば、選択されたノードに対応するキュービットパラメータと各子孫ノードのキュービットパラメータ)とを含むキュービットパラメータのセットを選択するように構成され得る。キュービットパラメータのセットは、ノードの先祖の順序付けに従って順序付けられ得る。キュービット較正システム130は、順序付けに従って、キュービットパラメータのセット内のパラメータを順番に較正し得る。これらの動作を実行するためにキュービット較正システム130によって使用されるプロセスについて、図3を参照して以下により詳細に説明する。
キュービット較正システム130は、量子コンピューティングシステム100内に含まれる1つまたは複数のキュービット115のキュービットパラメータを較正するために、キュービットパラメータに対して較正実験を実行するように構成され得る。較正実験は、たとえば、波形の単一の静的なセットを実装することを含み得、実験後の最終的なキュービット状態の確率分布における統計を収集するために、単一の実験がN回繰り返され得る。たとえば、較正実験は、πパルスに続いて読み出しパルスを実行することを含み得る。較正実験は、波形が実験ごとに変更される実験のアンサンブルも含み得る。実験の例示的なアンサンブルは、ラビスキャン、たとえば、回転パルスとそれに続く読み出しパルスからなる一連の実験を含み、各実験は、回転パルスについて異なる振幅を有する。そのような実験のアンサンブルは、回転振幅とキュービット状態との間の関係を決定するために使用され得る。
較正実験の結果は、較正データとして表され得る。較正データは、任意の適切な形式またはフォーマットをとることができる。いくつかの実施形態において、較正データは、2次元画像などの多次元において表され得る。データの他の適切な表現が、本開示の範囲から逸脱することなく使用され得る。たとえば、配列、行列、テンソル、および/または任意の次元の他の表現が使用され得る。較正データは、多くの異なる変数(たとえば、2つの変数、3つの変数、4つの変数、またはそれよりも多くの変数)に基づくことができる。
較正テストは、較正データが仕様を満たすかどうかを判断するために、弁別器動作を使用して実行され得る。キュービットパラメータが仕様を満たしている場合、キュービットパラメータは、較正テストに合格する。キュービットパラメータが仕様を満たしていない場合、キュービットパラメータは、較正テストに失敗するか、または較正テストに合格しない。
図3は、本開示の例示的な態様による、量子コンピューティングシステム内のキュービット115のキュービットパラメータを較正するための例示的な較正プロセス200を示す。図示のように、各キュービット115について、較正プロセス200は、キュービットパラメータが学習されておらず、キュービット115が未較正状態202にあるルートノードから開始することができる。プロセス200は、キュービットパラメータの較正を通じて(たとえば、キュービットパラメータの有向グラフ表現をトラバースすることによって)進行する。図3において、アイテム204は、較正プロセスを完了したキュービットパラメータCal 1(たとえば、有向グラフ内のノード)を表す。いくつかの実装形態において、プロセス200は、すべてのキュービットパラメータが較正されるまで、ノードの先祖の順序付けに従って有向グラフをトラバースすることによって、各キュービットパラメータを通って進行することができる。プロセス200は、220において、すべてのキュービットパラメータが必要な仕様を満たすかどうかを判断することができる。そうである場合、プロセス200は、キュービット115が較正された状態222にあると判断することができる。
各キュービットパラメータ「Cal X」の較正のための例示的なワークフローが、拡張され、図3の210において示されている。キュービットパラメータごとに、プロセス200は、キュービットパラメータのための較正データを取得する。較正データは、較正実験を実行することによって取得され得る。較正データは、任意の適切な形式またはフォーマットをとることができる。いくつかの実施形態において、較正データは、2次元画像などの多次元において表される。
212において、較正データが分析される。いくつかの実施形態において、較正データは、1つまたは複数のプロセス動作を使用して分析され得る。プロセス動作は、たとえば、較正データの前処理、較正データのフィッティング、較正データの最適化、および/または較正データを分析するための他のプロセス動作を含むことができる。
プロセス210は、キュービットパラメータのための較正データが較正テストに合格するか(たとえば、1つまたは複数の仕様を満たすか)、または較正テストに合格しない(たとえば、1つまたは複数の仕様を満たさない)かどうかを判断するために、弁別器動作214を実施する。較正データが較正テストに合格した(たとえば、キュービットパラメータが良好である)場合、プロセス210は、216において、較正パラメータの値を決定し(たとえば、値を較正データに関連付けられた値に設定または更新し)、(たとえば、有向グラフをトラバースすることによって)次のキュービットパラメータに進む。較正データが較正テストに合格しなかった(たとえば、キュービットパラメータが不良である)場合、プロセス200は、(たとえば、有向グラフ内のルートノードに向かって移動することによって)前のキュービットパラメータの過去の較正に戻ることができる。
任意のキュービットパラメータの較正について、較正データは、破損している場合がある。破損の例は、較正データ内のランダムノイズ、またはマスキングノイズ(たとえば、欠損データ)を含む。ランダムノイズは、キュービットパラメータ(たとえば、読み出しパラメータ)がまだ正確にわからない較正手順の初期段階において一般的である可能性がある。マスキングノイズは、たとえば、較正実験中にソフトウェアおよび/またはハードウェアの故障が発生した場合に発生する可能性がある。
図4は、較正データの1つの例示的な表現を示す。より具体的には、図4は、良好なデータセット(たとえば、破損していない)を表す較正データ250を示す。図4の較正データ250は、多次元較正データであり、2次元画像として表されている。画像内の各ピクセルは、変数X1およびX2に基づく測定値を表すことができる。たとえば、X1は、マイクロ波電圧の振幅を表すことができ、X2は、直流電圧の振幅を表すことができる。ピクセル強度および/または値は、キュービット状態を表す0と1との間の値であり得る。
図4は、ランダムノイズを有する破損した較正データ252を示す。ランダムノイズは、破損した較正データ252の全体にわたる。図4において、マスキングノイズを有する破損した較正データ254も示されている。より具体的には、破損した較正データ254は、較正データが欠落した部分256を有する。
破損した較正データは、量子コンピューティングシステム内のキュービットに対する較正プロセスの信頼性および/または速度を低減する可能性がある。本開示の例示的な態様によれば、破損した較正データは、1つまたは複数の破損除去オートエンコーダを使用して、較正プロセス中に再構築され得る。
図4は、説明および議論の目的のため、(たとえば、2次元画像としての)較正データの1つの例示的な表現を示す。本明細書において提供される開示を使用する当業者は、本開示の範囲から逸脱することなく、較正データの他の表現が使用され得ることを理解するであろう。たとえば、破損除去オートエンコーダ300は、任意の適切な形式、フォーマット、または表現において較正データを処理するために、本開示の例示的な態様に従って使用され得る。たとえば、較正データは、1次元、2次元、3次元、または任意の次元のテンソルであり得る。
図5は、本開示の例示的な実施形態よる例示的な破損除去オートエンコーダ300を示す。オートエンコーダ300は、教師なし学習フレームワーク内の潜在的な特徴を学習することができるディープニューラルネットワークであり得る。オートエンコーダ300は、エンコーダモデル310とデコーダモデル320とを含む。エンコーダモデル310は、データセット(たとえば、較正データ)を潜在的な表現またはコード315にコード化するように構成される。デコーダモデル320は、潜在的な表現またはコード315からデータセット(たとえば、再構築された較正データ)を再構築するように構成される。
エンコーダモデル310および/またはデコーダモデル320は、ニューラルネットワークとして実装され得る。たとえば、エンコーダモデル310および/またはデコーダモデル320は、全結合層を有するフィードフォワードニューラルネットワークとして実装され得る。エンコーダモデル310およびデコーダモデル320は、逆伝播を使用して同時にトレーニングされ得る。いくつかの実装形態において、エンコーダモデル310は、入力データ(たとえば、較正データ)を、入力データに比べてより低い次元の潜在的な表現にダウンコンバートすることができる。デコーダモデル320は、潜在的な表現を入力データの再構築にアップコンバートすることができる。潜在空間次元をボトルネック化することによって、オートエンコーダ300は、いくつかの実装形態において、データ破損除去のために適用され得る入力データの本質的な詳細を捕捉することができる。
たとえば、図5に示すように、オートエンコーダ300は、入力データとして、破損したデータセット302(たとえば、ランダムノイズあり)および/または破損したデータセット304(たとえば、マスキングノイズあり)を受信することができる。エンコーダモデル310は、入力データをコード315に符号化することができる。デコーダモデル320は、コード315から再構築されたデータセット306を生成することができる。再構築されたデータセット306は、データ破損のない(ノイズを低減した)入力データの再構築であり得る。このようにして、オートエンコーダ300は、キュービット較正プロセス中に較正データからノイズを除去または低減するために使用され得る。
図6は、本開示の例示的な実施形態による、データ破損除去のためのオートエンコーダ300の例示的なトレーニングを示す。図示のように、オートエンコーダ300は、データセット352を使用してトレーニングされ得る。データセット352は、最初は(ノイズのない)良好なデータのみを含むことができる。トレーニング中、データセット352は、任意の数学的操作によって人為的に破損され得る。いくつかの実施形態において、データセット内の画像は、「ノイズバッチ」(354)からのそれぞれの偽ノイズサンプルを用いて破損され得る。「ノイズバッチ」は、ノイズなし(たとえば、良好なデータが通過する)、ランダムノイズ、マスキングノイズ、任意の他のノイズを含むことができる。いくつかの実装形態において、破損したトレーニング画像を生成するために、破損していないトレーニング画像にガウスノイズオーバレイが適用され得る。同様に、破損したトレーニング画像を生成するために、破損していないトレーニング画像の一部に対して、ランダムマスキング効果(たとえば、セグメント化されたオーバレイ)が適用され得る。いくつかの実施形態において、トレーニングデータセット352内の画像に適用されるノイズまたは破損のタイプは、実際の較正データにおいて見られるノイズのタイプを表すことができる。
トレーニング中、オートエンコーダ300は、エンコーダモデル310とデコーダモデル320とを使用して、再構築されたトレーニングバッチ325を生成する。再構築されたトレーニングバッチ325に基づいて、損失330が計算される。損失330は、良好なデータセット352を再構築しないことに対して、エンコーダモデル310および/またはデコーダモデル320にペナルティを科す。たとえば、損失330は、再構築されたトレーニングバッチ325内の再構築された画像と、再構築された画像のグラウンドトゥルースバージョン(たとえば、良好なデータセット352からの対応する破損していないトレーニング画像)との間の比較に基づいて決定され得る。
本開示の例示的な実施形態による、オートエンコーダ300をトレーニングするための例示的なトレーニングワークフローを以下に提供する。任意のエンコーダモデル310が確立され、E(X,φ)=Zとなる。Xは、潜在的な表現またはコード315に符号化されるデータセットである。Zは、Xの潜在的な表現である。φは、任意であり得るネットワークパラメータ化である。任意のデコーダモデル320が確立され、D(Z,θ)=X'となる。Zは、再構築されたデータセットに復号される潜在的な表現またはコード315である。X'は、再構築されたデータセットである。θは、任意であり得るネットワークパラメータ化である。ネットワークパラメータに対する正規化関数が、Λ(φ,θ)として確立され得る。φおよびθは、ランダムに初期化され得る。総エポック内のエポックについて、(a)トレインバッチ{X}を選択し、ここで、括弧は、複数のトレーニングデータセットを示し、(b)破損したトレインバッチ{XC}=fC({X})を計算し、(c)潜在バッチ{Z}=E({XC};φ)を計算し、(d)再構築されたトレインバッチ{X'}=D({Z};θ)=D(E({XC};φ);θ)を計算し、(e)再構築損失L(φ,θ,{X},{XC})=Σbatch|{X}-D(E({XC};φ);θ)|2+Λ(φ,θ)を計算し、(f)損失勾配∇φ,θLを計算し、逆伝播を介してφ、θを更新する。破損除去オートエンコーダN(X)=D(E(X;φ*);θ*)を構築するために、最適なパラメータφ*、θ*を使用する。
図7は、本開示の例示的な実施形態による、キュービット較正プロセス400におけるオートエンコーダの実装を示す。より具体的には、402において、量子コンピューティングシステムにおけるキュービットのキュービットパラメータ「Cal X」について較正データが取得され得る。較正データは、較正実験を実行することによって取得され得る。較正データは、任意の適切な形式またはフォーマットをとることができる。いくつかの実施形態において、較正データは、2次元画像などの多次元において表される。
404において、較正データは、1つまたは複数のプロセス動作を使用して分析され得る。プロセス動作は、たとえば、較正データの前処理、較正データのフィッティング、較正データの最適化、および/または較正データを分析するための他のプロセス動作を含むことができる。
プロセス400は、キュービットパラメータのための較正データが較正テストに合格するか(たとえば、1つまたは複数の仕様を満たすか)、または較正テストに合格しない(たとえば、1つまたは複数の仕様を満たさない)かどうかを判断するために、弁別器動作406を実施する。較正データが較正テストに合格した(たとえば、キュービットパラメータが良好である)場合、プロセス400は、412において、較正パラメータの値を決定し(たとえば、値を較正データに関連付けられた値に更新または設定し)、(たとえば、有向グラフをトラバースすることによって)次のキュービットパラメータを較正するように進行する。
較正データが較正テストに合格しなかった(たとえば、キュービットパラメータが不良である)場合、プロセス400は、408において、較正データが以前に再構築されたかどうかを判断することができる。そうである場合、プロセス400は、(たとえば、有向グラフ内のルートノードに向かって移動することによって)前のキュービットパラメータの過去の較正に戻ることができる。較正データが以前に再構築されていない場合、プロセス400は、再構築された較正データを生成するために、本開示の例示的な態様による破損除去オートエンコーダ410に較正データを提供することができる。次いで、再構築された較正データは、図7に示すように、分析404および弁別器動作406を適用され得る。
図8は、本開示の例示的な実施形態による、キュービット較正プロセス450におけるオートエンコーダの実装を示す。より具体的には、452において、量子コンピューティングシステムにおけるキュービットのキュービットパラメータ「Cal X」について較正データが取得され得る。較正データは、較正実験を実行することによって取得され得る。較正データは、任意の適切な形式またはフォーマットをとることができる。いくつかの実施形態において、較正データは、2次元画像などの多次元において表される。
454において、プロセス450は、較正データが破損しているかどうかを判断することができる。たとえば、較正データは、較正データのための信号対ノイズ比に基づく測定基準を決定するために、信号対ノイズに基づく分類器を使用して分析され得る。プロセス450は、信号対ノイズ比に基づく測定基準に基づいて、較正データが破損しているかどうかを判断することができる。それに加えて、および/または代替において、分類器モデル(たとえば、機械学習された分類器モデル)が、較正データが破損しているかどうかを判断することができる。モデルは、たとえば、既知の良好な較正データと既知の破損した較正データとを使用してトレーニングされ得る。モデルは、較正データを破損しているまたは破損していないとして分類するように構成され得る。
図8に示すように、較正データが破損していると判断することに応答して、較正データは、本開示の例示的な態様による破損除去オートエンコーダ462を使用して再構築され得る。454において、再構築された較正データは、1つまたは複数のプロセス動作を使用して分析され得る。プロセス動作は、たとえば、較正データの前処理、較正データのフィッティング、較正データの最適化、および/または較正データを分析するための他のプロセス動作を含むことができる。
プロセス450は、キュービットパラメータのための較正データが較正テストに合格する(たとえば、1つまたは複数の仕様を満たす)か、較正テストに合格しない(たとえば、1つまたは複数の仕様を満たさない)かを判断するために、弁別器動作456を実施し得る。較正データが較正テストに合格した(たとえば、キュービットパラメータが良好である)場合、プロセス450は、460において較正パラメータの値を決定し(たとえば、値を較正データに関連付けられた値に更新または設定し)、(たとえば、有向グラフをトラバースすることによって)次のキュービットパラメータを較正するように進行する。
図9は、本開示の例示的な実施形態による例示的な方法500のフロー図を示す。方法500は、図1および図2に示す量子コンピューティングシステムなどの任意の適切な量子コンピューティングシステムを使用して実施され得る。図9は、説明および議論の目的のために特定の順序で実行されるステップを示す。本明細書において提供される開示を使用する当業者は、本明細書において開示される方法のうちのいずれかの様々なステップが、本開示の範囲から逸脱することなく、様々な方法において、適合され得る、修正され得る、同時に実行され得る、省略され得る、図示されていないステップを含むことができる、再配置され得る、および/または拡張され得ることを理解するであろう。
502において、方法は、キュービットパラメータのセットに関連付けられたデータを取得するステップを含むことができる。本明細書で使用される場合、データを取得することは、データを受信すること、たとえば、1つもしくは複数のメモリデバイスからのデータにアクセスすること、データを決定すること、データを計算すること、またはデータを生成することを含むことができる。キュービットパラメータのセットに関連付けられたデータは、キュービットパラメータの識別情報、初期値、および/またはキュービットパラメータ間の依存関係を含むことができる。いくつかの実施形態において、キュービットパラメータのセットに関連付けられたデータは、有向グラフによって表され得る。有向グラフは、キュービットパラメータのセット内の各キュービットパラメータに関するノードと、キュービットパラメータのセット内のキュービットパラメータ間の各依存関係に関する有向エッジとを有することができる。
504において、方法は、キュービットパラメータのための較正データを取得するステップを含むことができる。較正データは、較正実験を実行することによって取得され得る。較正データは、多次元において表され得る。たとえば、較正データは、2次元画像として表され得る。
506において、方法は、較正データを分析するステップと、較正データに対して第1の較正テストを実行するステップとを含むことができる。いくつかの実施形態において、第1の較正テストは、較正データを、特定の仕様、しきい値、要件などと比較することができる。較正テストは、較正データが特定の仕様を満たすかどうかを判断する弁別器動作を使用して実施され得る。
508において示すように、方法は、較正データが第1の較正テストに合格するか失敗するかに応じて、510または512に進む。較正データが第1の較正テストに合格するかまたは失敗しないと判断することに応答して、方法は、510に示すように、キュービットパラメータの値を決定する(たとえば、較正データに基づいて値を設定または更新する)ことができる。較正データが第1の較正テストに合格しないかまたは失敗すると判断することに応答して、方法は、512において、(たとえば、以前の再構築が生じたかどうかフラグを立てるメタデータに基づいて)較正データがオートエンコーダを使用して以前に再構築されたかどうかを判断することができる。そうである場合、方法は、514において(たとえば、有向グラフ内のルートノードに向かって移動することによって)前のキュービットパラメータの以前の較正に進むことができる。
較正データが以前に再構築されていないと判断することに応答して、方法は、本開示の例示的な実施形態による破損除去オートエンコーダを使用して較正データを再構築するために516に進むことができる。次いで、方法は、518において、較正データに対して第2の較正テストを実行することができる。いくつかの実施形態において、第2の較正テストは、較正データを、特定の仕様、しきい値、要件などと比較することができる。第2の較正テストは、較正データが特定の仕様を満たしているかどうかを判断する弁別器動作を使用して実施され得る。いくつかの実施形態において、第2の較正テストは、第1の較正テストを単に繰り返すことができる。第2の較正テストの後、方法は、508に戻り、上記で議論したように、較正データが第2の較正テストに合格するか失敗するかに応じて、510または512に進む。
図10は、本開示の例示的な実施形態による例示的な方法600のフロー図を示す。方法600は、図1および図2に示す量子コンピューティングシステムなどの任意の適切な量子コンピューティングシステムを使用して実施され得る。図10は、説明および議論の目的のために特定の順序で実行されるステップを示す。本明細書において提供される開示を使用する当業者は、本明細書において開示される方法のうちのいずれかの様々なステップが、本開示の範囲から逸脱することなく、様々な方法において、適合され得る、修正され得る、同時に実行され得る、省略され得る、図示されていないステップを含むことができる、再配置され得る、および/または拡張され得ることを理解するであろう。
602において、方法は、キュービットパラメータのセットに関連付けられたデータを取得するステップを含むことができる。キュービットパラメータのセットに関連付けられたデータは、キュービットパラメータの識別情報、初期値、および/またはキュービットパラメータ間の依存関係を含むことができる。いくつかの実施形態において、キュービットパラメータのセットに関連付けられたデータは、有向グラフによって表され得る。有向グラフは、キュービットパラメータのセット内の各キュービットパラメータに関するノードと、キュービットパラメータのセット内のキュービットパラメータ間の各依存関係に関する有向エッジとを有することができる。
604において、方法は、キュービットパラメータのための較正データを取得するステップを含むことができる。較正データは、較正実験を実行することによって取得され得る。較正データは、多次元において表され得る。たとえば、較正データは、2次元画像として表され得る。
606において、方法は、較正データが破損しているかどうかを判断するステップを含むことができる。いくつかの実施形態において、較正データは、しきい値量のノイズを含む場合に破損している。しきい値は、アプリケーションの要件に基づいて定義され得る。いくつかの実施形態において、較正データは、較正データのための信号対ノイズ比に基づく測定基準を決定するために、信号対ノイズに基づく分類器を使用して分析され得る。プロセス606は、信号対ノイズ比に基づく測定基準に基づいて、較正データが破損しているかどうかを判断することができる。それに加えて、および/または代替において、分類器モデル(たとえば、機械学習された分類器モデル)が、較正データが破損しているかどうかを判断することができる。モデルは、たとえば、既知の良好な較正データと既知の破損した較正データとを使用してトレーニングされ得る。モデルは、較正データを破損しているものまたは破損していないものとして分類するように構成され得る。
較正データが破損している場合、方法は、616において、本開示の例示的な実施形態による破損除去オートエンコーダを使用して較正データを再構築するステップを含むことができる。次いで、方法は、608において較正テストを実行するステップに進むことができる。較正データが破損していない場合、方法は、破損除去オートエンコーダを使用して較正データを再構築することなく、608において較正テストに進むことができる。
608において、方法は、較正データを分析し、較正データに対して較正テストを実行するステップを含むことができる。いくつかの実施形態において、較正テストは、較正データを、特定の仕様、しきい値、要件などと比較することができる。較正テストは、較正データが特定の仕様を満たしているかどうかを判断する弁別器動作を使用して実施され得る。
610において示すように、方法は、較正データが第1の較正テストに合格するか失敗するかに応じて、612または614に進む。較正データが第1の較正テストに合格するかまたは失敗しないと判断することに応答して、方法は、612に示すように、キュービットパラメータの値を決定する(たとえば、較正データに基づいて値を設定または更新する)ことができる。そうでなければ、方法は、614において(たとえば、有向グラフ内のルートノードに向かって移動することによって)前のキュービットパラメータの以前の較正に進むことができる。612においてキュービットパラメータが決定されると、量子コンピューティングシステムは、量子コンピューティング回路を実装するために、決定されたキュービットパラメータに従って動作され得る。
図11は、本開示の例示的な実施形態による、キュービット較正のための破損除去オートエンコーダを実装するために使用され得る例示的なコンピューティングシステム700のブロック図を示す。システム700は、ネットワーク780を介して通信可能に結合された較正システム710と、サーバコンピューティングシステム730と、トレーニングコンピューティングシステム750とを含む。
較正システム710は、任意のタイプのコンピューティングデバイス(たとえば、古典的および/または量子コンピューティングデバイス)を含むことができる。較正システム710は、1つまたは複数のプロセッサ712と、メモリ714とを含む。1つまたは複数のプロセッサ712は、任意の適切な処理デバイス(たとえば、プロセッサコア、マイクロプロセッサ、ASIC、FPGA、コントローラ、マイクロコントローラなど)であり得、1つのプロセッサ、または動作可能に接続された複数のプロセッサであり得る。メモリ714は、RAM、ROM、EEPROM、EPROM、フラッシュメモリデバイス、磁気ディスクなど、およびそれらの組合せなどの、1つまたは複数の非一時的なコンピュータ可読記憶媒体を含むことができる。メモリ714は、データ716(キュービットパラメータ)と、プロセッサ712によって実行されると、較正システム710に動作を実行させる命令718とを記憶することができる。
いくつかの実装形態において、較正システム710は、1つまたは複数の破損除去オートエンコーダ720を記憶または含むことができる。たとえば、破損除去オートエンコーダ720(たとえば、エンコーダモデルとデコーダモデルとを含む)は、ニューラルネットワーク(たとえば、ディープニューラルネットワーク)、または非線形モデルおよび/もしくは線形モデルを含む他のタイプの機械学習モデルなどの、様々な機械学習モデルであるか、またはそうでなければそれらを含むことができる。ニューラルネットワークは、フィードフォワードニューラルネットワーク、リカレントニューラルネットワーク(たとえば、長短期記憶リカレントニューラルネットワーク)、畳み込みニューラルネットワーク、または他の形態のニューラルネットワークを含むことができる。例示的な破損除去オートエンコーダについて、図5を参照して論じる。
いくつかの実装形態において、1つまたは複数の破損除去オートエンコーダは、ネットワーク780を介してサーバコンピューティングシステム730から受信され、メモリ714内に記憶され、次いで1つまたは複数のプロセッサ712によって使用されるか、または他の方法で実装され得る。いくつかの実装形態において、較正システム710は、(たとえば、較正データの複数のインスタンスにわたって並列較正データ再構築を実行するために)単一のオートエンコーダ720の複数の並列インスタンスを実装することができる。
より具体的には、破損除去オートエンコーダ720は、本開示の例示的な態様による、キュービットパラメータに対する較正テストプロセス中に取得された較正データを再構築することができる。破損除去オートエンコーダ720は、較正データ内のノイズを低減し、キュービット較正プロセスの信頼性および/または速度を改善することができる。
それに加えて、または代替において、1つまたは複数の破損除去オートエンコーダ740は、クライアント-サーバ関係に従って較正システム710と通信するサーバコンピューティングシステム730内に含まれるか、そうでなければその中に記憶され、実装され得る。たとえば、破損除去オートエンコーダ740は、サーバコンピューティングシステム730によって実装され得る。したがって、1つもしくは複数のオートエンコーダ720は、較正システム710において記憶および実装され得、ならびに/または1つもしくは複数のオートエンコーダ740は、サーバコンピューティングシステム730において記憶および実装され得る。
較正システム710は、ユーザ入力を受信する1つまたは複数のユーザ入力構成要素を含むこともできる。たとえば、ユーザ入力構成要素は、ユーザ入力オブジェクト(たとえば、指またはスタイラス)のタッチに感応するタッチ感応構成要素(たとえば、タッチ感応ディスプレイスクリーンまたはタッチパッド)であり得る。タッチ感応構成要素は、仮想キーボードを実装する役割を果たすことができる。他の例示的なユーザ入力構成要素は、マイクロフォン、従来のキーボード、またはユーザがユーザ入力を提供することができる他の手段を含む。
サーバコンピューティングシステム730は、1つまたは複数のプロセッサ732と、メモリ734とを含む。1つまたは複数のプロセッサ732は、任意の適切な処理デバイス(たとえば、プロセッサコア、マイクロプロセッサ、ASIC、FPGA、コントローラ、マイクロコントローラなど)であり得、1つのプロセッサ、または動作可能に接続された複数のプロセッサであり得る。メモリ734は、RAM、ROM、EEPROM、EPROM、フラッシュメモリデバイス、磁気ディスクなど、およびそれらの組合せなどの、1つまたは複数の非一時的なコンピュータ可読記憶媒体を含むことができる。メモリ734は、データ736と、サーバコンピューティングシステム730に動作を実行させるためにプロセッサ732によって実行される命令738とを記憶することができる。
いくつかの実装形態において、サーバコンピューティングシステム730は、1つまたは複数のサーバコンピューティングデバイスを含むか、または他の方法でそれらによって実装される。サーバコンピューティングデバイス730が複数のサーバコンピューティングデバイスを含む場合において、そのようなサーバコンピューティングデバイスは、逐次コンピューティングアーキテクチャ、並列コンピューティングアーキテクチャ、またはそれらのなんらかの組合せに従って動作することができる。
上記で説明したように、サーバコンピューティングシステム730は、1つまたは複数の機械学習された破損除去オートエンコーダ740を記憶するか、または他の方法で含むことができる。たとえば、オートエンコーダ740は、様々な機械学習モデルであるか、またはそれらを他の方法で含むことができる。例示的な機械学習モデルは、ニューラルネットワークまたは他の多層非線形モデルを含む。例示的なニューラルネットワークは、フィードフォワードニューラルネットワーク、ディープニューラルネットワーク、リカレントニューラルネットワーク、および畳み込みニューラルネットワークを含む。例示的なオートエンコーダ740について、図5を参照して論じる。
ユーザコンピューティングデバイス702および/またはサーバコンピューティングシステム730は、ネットワーク780を介して通信可能に結合されたトレーニングコンピューティングシステム750との対話を介してオートエンコーダ720および/または740をトレーニングすることができる。トレーニングコンピューティングシステム750は、サーバコンピューティングシステム730とは別個であり得、またはサーバコンピューティングシステム730の一部であり得る。
トレーニングコンピューティングシステム750は、1つまたは複数のプロセッサ752と、メモリ754とを含む。1つまたは複数のプロセッサ752は、任意の適切な処理デバイス(たとえば、プロセッサコア、マイクロプロセッサ、ASIC、FPGA、コントローラ、マイクロコントローラなど)であり得、1つのプロセッサ、または動作可能に接続された複数のプロセッサであり得る。メモリ754は、RAM、ROM、EEPROM、EPROM、フラッシュメモリデバイス、磁気ディスクなど、およびそれらの組合せなどの、1つまたは複数の非一時的なコンピュータ可読記憶媒体を含むことができる。メモリ754は、データ756と、トレーニングコンピューティングシステム750に動作を実行させるためにプロセッサ752によって実行される命令758とを記憶することができる。いくつかの実装形態において、トレーニングコンピューティングシステム750は、1つまたは複数のサーバコンピューティングデバイスを含むか、またはそれらによって他の方法で実装される。
トレーニングコンピューティングシステム750は、たとえば、誤差の逆伝播などの様々なトレーニングまたは学習技法を使用して、機械学習されたオートエンコーダ720および/または740をトレーニングするモデルトレーナ760を含むことができる。いくつかの実装形態において、誤差の逆伝播を実行することは、打ち切り型通時的逆伝播(truncated backpropagation through time)を実行することを含むことができる。モデルトレーナ760は、トレーニングされているモデルの汎化能力を改善するために、いくつかの汎化技法(たとえば、重み減衰、ドロップアウトなど)を実行することができる。
具体的には、モデルトレーナ760は、トレーニングデータ762のセットに基づいて、オートエンコーダ720および/または740をトレーニングすることができる。トレーニングデータ762は、たとえば、破損していない画像および破損したトレーニングデータセット(たとえば、ランダムノイズまたはマスキングノイズを有する画像)を含むことができる。
モデルトレーナ760は、所望の機能を提供するために利用されるコンピュータ論理を含む。モデルトレーナ760は、汎用プロセッサを制御するハードウェア、ファームウェア、および/またはソフトウェアにおいて実装され得る。たとえば、いくつかの実装形態において、モデルトレーナ760は、記憶デバイス上に記憶され、メモリにロードされ、1つまたは複数のプロセッサによって実行されるプログラムファイルを含む。他の実装形態において、モデルトレーナ760は、RAMハードディスクまたは光学もしくは磁気媒体などの有形のコンピュータ可読媒体内に記憶されたコンピュータ実行可能命令の1つまたは複数のセットを含む。
ネットワーク780は、ローカルエリアネットワーク(たとえば、イントラネット)、ワイドエリアネットワーク(たとえば、インターネット)、またはそれらのなんらかの組合せなどの、任意のタイプの通信ネットワークであり得、任意の数の有線またはワイヤレスのリンクを含むことができる。一般に、ネットワーク780を介する通信は、多種多様な通信プロトコル(たとえば、TCP/IP、HTTP、SMTP、FTP)、符号化またはフォーマット(たとえば、HTML、XML)、および/または保護方式(たとえば、VPN、セキュアHTTP、SSL)を使用して、任意のタイプの有線および/またはワイヤレス接続を介して伝達され得る。
図11は、本開示の例示的な態様を実装するために使用され得る1つの例示的なコンピューティングシステムを示す。他のコンピューティングシステムも同様に使用され得る。たとえば、いくつかの実装形態において、較正システム710は、モデルトレーナ760とトレーニングデータセット762とを含むことができる。そのような実装形態において、オートエンコーダ720は、較正システム710において局所的にトレーニングおよび使用され得る。
本明細書において説明したデジタルおよび/または量子主題ならびにデジタル関数演算および量子演算の実装形態は、デジタル電子回路、適切な量子回路、またはより具体的には、量子計算システムにおいて、実体的に実装されたデジタルおよび/もしくは量子コンピュータソフトウェアもしくはファームウェアにおいて、本明細書において開示された構造およびそれらの構造的均等物を含むデジタルおよび/または量子コンピュータハードウェアにおいて、またはそれらのうちの1つもしくは複数の組合せにおいて実装され得る。「量子コンピューティングシステム」という用語は、限定はしないが、量子コンピュータ/コンピューティングシステム、量子情報処理システム、量子暗号システム、または量子シミュレータを含み得る。
本明細書において説明したデジタルおよび/または量子主題の実装形態は、1つまたは複数のデジタルおよび/または量子コンピュータプログラム、すなわち、データ処理装置によって実行するため、またはデータ処理装置の動作を制御するために、有形の非一時的な記憶媒体上に符号化されたデジタルおよび/または量子コンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。デジタルおよび/または量子コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、1つもしくは複数のキュービット/キュービット構造、またはそれらのうちの1つもしくは複数の組合せであり得る。代替的には、またはそれに加えて、プログラム命令は、データ処理装置による実行のために適切な受信機装置に送信するためのデジタルおよび/または量子情報を符号化するために生成されるデジタルおよび/または量子情報(たとえば、機械生成の電気、光学、または電磁信号)を符号化することができる人工的に生成された伝播信号上に符号化され得る。
量子情報および量子データという用語は、量子システムによって搬送される、量子システム内に保持されるまたは記憶される情報またはデータを指し、最小の重要なシステムは、キュービット、すなわち、量子情報の単位を定義するシステムである。「キュービット」という用語は、対応する文脈において2レベルシステムとして適切に近似され得るすべての量子システムを包含することが理解される。そのような量子システムは、たとえば、2つ以上のレベルを有する多レベルシステムを含み得る。例として、そのようなシステムは、原子、電子、光子、イオン、または超伝導キュービットを含み得る。多くの実装形態において、計算基底状態は、基底状態と最初の励起状態とを用いて識別されるが、計算状態がより高いレベルの励起状態(たとえば、キュービット)を用いて識別される他の設定が可能であることが理解される。
「データ処理装置」という用語は、デジタルおよび/または量子データ処理ハードウェアを指し、例として、プログラム可能デジタルプロセッサ、プログラム可能量子プロセッサ、デジタルコンピュータ、量子コンピュータ、または複数のデジタルおよび量子プロセッサもしくはコンピュータ、ならびにそれらの組合せを含む、デジタルおよび/または量子データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置は、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)もしくはASIC(特定用途向け集積回路)、または量子シミュレータ、すなわち、特定の量子システムに関する情報をシミュレートまたは生成するように設計された量子データ処理装置でもあり得、またはそれらをさらに含み得る。具体的には、量子シミュレータは、一般的な量子計算を実行する能力を持たない専用量子コンピュータである。装置は、ハードウェアに加えて、デジタルおよび/または量子コンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを構成するコードをオプションで含み得る。
プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも呼ばれるまたは記述される場合があるデジタルコンピュータプログラムは、コンパイラ型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含む任意の形式のプログラミング言語において記述され得、スタンドアロンプログラムとして、または、モジュール、構成要素、サブルーチン、もしくはデジタルコンピューティング環境での使用に適した他のユニットとして、を含む、任意の形式において展開され得る。プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも呼ばれるまたは記述される場合がある量子コンピュータプログラムは、コンパイラ型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含む任意の形式のプログラミング言語において記述され得、適切な量子コンピューティング言語に翻訳され得、または、量子プログラミング言語、たとえば、QCL、Quipper、もしくはCirqにおいて記述され得る。
デジタルおよび/または量子コンピュータプログラムは、必ずしもそうである必要はないが、ファイルシステム内のファイルに対応し得る。プログラムは、他のプログラムもしくはデータを保持するファイルの一部、たとえば、マークアップ言語文書内に記憶された1つもしくは複数のスクリプト内に、問題のプログラム専用の単一のファイル内に、または、複数の調整されたファイル、たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイル内に記憶され得る。デジタルおよび/または量子コンピュータプログラムは、1つのデジタルもしくは1つの量子コンピュータ上で、または、1つのサイトに位置する、もしくは複数のサイトにわたって分散され、デジタルおよび/もしくは量子データ通信ネットワークによって相互接続された複数のデジタルおよび/もしくは量子コンピュータ上で実行されるように展開され得る。量子データ通信ネットワークは、量子システム、たとえば、キュービットを使用して量子データを送信し得るネットワークであると理解される。一般に、デジタルデータ通信ネットワークは、量子データを送信できないが、量子データ通信ネットワークは、量子データとデジタルデータの両方を送信し得る。
本明細書において説明したプロセスおよび論理フローは、適切であるように、1つまたは複数のデジタルおよび/または量子プロセッサを用いて動作し、入力デジタルおよび量子データに対して演算し出力を生成することによって機能を実行するために1つまたは複数のデジタルおよび/または量子コンピュータプログラムを実行する、1つまたは複数のプログラム可能なデジタルおよび/または量子コンピュータによって実行され得る。プロセスおよび論理フローは、専用論理回路、たとえば、FPGAもしくはASIC、もしくは量子シミュレータによって、または、専用論理回路もしくは量子シミュレータと、1つもしくは複数のプログラムされたデジタルおよび/もしくは量子コンピュータとの組合せによっても実行され得、装置は、それらとしても実装され得る。
1つまたは複数のデジタルおよび/または量子コンピュータのシステムもしくはプロセッサについて、特定の動作またはアクションを実行するように「構成される」または「動作可能である」ことは、システムがその上に、動作中にシステムに動作またはアクションを実行させるソフトウェア、ファームウェア、ハードウェア、または、それらの組合せをインストールしていることを意味する。1つまたは複数のデジタルおよび/または量子コンピュータプログラムについて、特定の動作またはアクションを実行するように構成されることは、1つまたは複数のプログラムが、デジタルおよび/または量子データ処理装置によって実行されると、装置に動作またはアクションを実行させる命令を含むことを意味する。量子コンピュータは、量子コンピューティング装置によって実行されると、装置に動作またはアクションを実行させる命令をデジタルコンピュータから受信し得る。
デジタルおよび/または量子コンピュータプログラムの実行に適したデジタルおよび/または量子コンピュータは、汎用または専用デジタルおよび/もしくは量子マイクロプロセッサ、もしくはその両方、または、任意の他の種類の中央デジタルおよび/もしくは量子処理ユニットに基づくことができる。一般に、中央デジタルおよび/または量子処理ユニットは、読み取り専用メモリ、ランダムアクセスメモリ、もしくは、量子データ、たとえば、光子を送信するのに適した量子システム、またはそれらの組合せから、命令と、デジタルおよび/または量子データとを受信する。
デジタルおよび/または量子コンピュータのいくつかの例示的な要素は、命令を実施または実行するための中央処理装置、ならびに命令とデジタルおよび/または量子データとを記憶するための1つまたは複数のメモリデバイスである。中央処理装置およびメモリは、専用論理回路または量子シミュレータによって補完され得るか、またはそれらの中に組み込まれ得る。一般に、デジタルおよび/または量子コンピュータは、デジタルおよび/または量子データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば、磁気ディスク、光磁気ディスク、光ディスク、または量子情報を記憶するのに適した量子システムも含むか、または、それらからデジタルおよび/もしくは量子データを受信するように、もしくはそれらにデジタルおよび/または量子データを送信するように、もしくはその両方を行うようにそれらに動作可能に結合される。しかしながら、デジタルおよび/または量子コンピュータは、そのようなデバイスを有する必要はない。
デジタルおよび/または量子コンピュータプログラム命令ならびにデジタルおよび/または量子データを記憶するのに適したデジタルおよび/または量子コンピュータ可読媒体は、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、CD-ROMおよびDVD-ROM、ならびに量子システム、たとえば、トラップされた原子または電子を含む、不揮発性デジタルおよび/または量子メモリ、媒体、およびメモリデバイスのすべての形態を含む。量子メモリは、量子データを高い忠実度と効率で長期間記憶することができるデバイスであり、たとえば、送信のために光が使用され、重ね合わせまたは量子コヒーレンスなどの量子データの量子特徴を記憶および保存するために物質が使用される光-物質インターフェースである。
本明細書で説明した様々なシステムまたはそれらの一部の制御は、1つまたは複数の有形の非一時的機械可読記憶媒体上に記憶され、1つまたは複数のデジタルおよび/または量子処理デバイス上で実行可能な命令を含む、デジタルおよび/または量子コンピュータプログラム製品において実装され得る。本明細書で説明したシステムまたはそれらの一部は、1つまたは複数のデジタルおよび/または量子処理デバイスと、本明細書で説明した動作を実行する実行可能命令を記憶するメモリとを含み得る装置、方法、または電子システムとして各々実装され得る。
本明細書は、多くの特定の実装形態の詳細を含むが、これらは、特許請求され得るものの範囲に対する限定として解釈されるべきではなく、特定の実装形態に固有であり得る特徴の説明として解釈されるべきである。別個の実装形態の文脈において本明細書で説明した特定の特徴は、単一の実装形態において組み合わせても実装され得る。逆に、単一の実装形態の文脈において説明した様々な特徴は、複数の実装形態において別々に、または任意の適切な部分的組合せにおいても実装され得る。さらに、特徴について、特定の組合せで機能するものとして上記で説明されている場合があり、そのように当初に特許請求されている場合さえあるが、特許請求された組合せからの1つまたは複数の特徴が、場合によっては組合せから削除され得、特許請求された組合せは、部分的組合せまたは部分的組合せの変形例に向けられ得る。
同様に、動作は、特定の順序で図面中に描かれているが、これは、所望の結果を達成するために、そのような動作が図示された特定の順序もしくは連続した順序で実行されること、または、すべての示された動作が実行されることを必要とするものとして理解されるべきではない。特定の状況では、マルチタスクおよび並列処理が有利であり得る。さらに、上記で説明した実装形態における様々なシステムモジュールおよび構成要素の分離は、すべての実装形態でそのような分離を必要とするものとして理解されるべきではなく、説明したプログラム構成要素およびシステムは、一般に単一のソフトウェア製品において統合され得、または複数のソフトウェア製品にパッケージ化され得ることが理解されるべきである。
主題の特定の実装形態について説明した。他の実装形態は、以下の特許請求の範囲内にある。たとえば、特許請求の範囲内に列挙されたアクションは、異なる順序で実行され得、依然として所望の結果を達成し得る。一例として、添付の図に描かれたプロセスは、所望の結果を達成するために、図示された特定の順序、または連続的な順序を必ずしも必要としない。場合によっては、マルチタスクおよび並列処理が有利であり得る。