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

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

▶ マイクロソフト テクノロジー ライセンシング,エルエルシーの特許一覧

<>
  • 特表-光ベクトル乗算器 図1
  • 特表-光ベクトル乗算器 図2
  • 特表-光ベクトル乗算器 図3
  • 特表-光ベクトル乗算器 図4
  • 特表-光ベクトル乗算器 図5A
  • 特表-光ベクトル乗算器 図5B
  • 特表-光ベクトル乗算器 図6
  • 特表-光ベクトル乗算器 図6A
  • 特表-光ベクトル乗算器 図6B
  • 特表-光ベクトル乗算器 図7
  • 特表-光ベクトル乗算器 図8
  • 特表-光ベクトル乗算器 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-28
(54)【発明の名称】光ベクトル乗算器
(51)【国際特許分類】
   G06E 3/00 20060101AFI20240220BHJP
   G06N 99/00 20190101ALI20240220BHJP
   G06G 7/60 20060101ALI20240220BHJP
   G02F 3/00 20060101ALI20240220BHJP
【FI】
G06E3/00
G06N99/00 180
G06G7/60
G02F3/00
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023547507
(86)(22)【出願日】2022-01-28
(85)【翻訳文提出日】2023-08-29
(86)【国際出願番号】 US2022014173
(87)【国際公開番号】W WO2022169671
(87)【国際公開日】2022-08-11
(31)【優先権主張番号】21155439.9
(32)【優先日】2021-02-05
(33)【優先権主張国・地域又は機関】EP
(81)【指定国・地域】
(71)【出願人】
【識別番号】314015767
【氏名又は名称】マイクロソフト テクノロジー ライセンシング,エルエルシー
(74)【代理人】
【識別番号】100118902
【弁理士】
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【弁理士】
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100196508
【弁理士】
【氏名又は名称】松尾 淳一
(72)【発明者】
【氏名】パルミジャーニ,フランチェスカ
(72)【発明者】
【氏名】ガンツシディス,クリストス
(72)【発明者】
【氏名】ハラー,イシュトヴァン
(72)【発明者】
【氏名】バッラーニ,ヒテシュ
(72)【発明者】
【氏名】ローストロン,アントニー・イアン・テイラー
(72)【発明者】
【氏名】リバルチェンコ,アンドレイ
【テーマコード(参考)】
2K102
【Fターム(参考)】
2K102AA21
2K102BA05
2K102BA31
2K102BB01
2K102BB02
2K102BB04
2K102BC04
2K102DC09
2K102DD02
2K102EB08
2K102EB10
2K102EB14
2K102EB16
2K102EB22
(57)【要約】
1つまたは複数のチャネルを含む、光学ベクトル乗算を実行するためのシステムであって、各チャネルは、それぞれの光信号を生成するように配置された光信号生成器と、それぞれの光信号を含む光信号のベクトルを受信し、光領域における重みのそれぞれのベクトルによって乗算するように配置された光ベクトル乗算器であって、各光信号は、変数のベクトルからのそれぞれの変数の値をモデル化する変調された振幅を有し、重みは、変数間の相互作用をモデル化する、光ベクトル乗算器と、インコヒーレント検出によってそれぞれの光ベクトル乗算器の結果の出力の強度を検出し、それによって正の値のみを取るアナログ強度信号を生成するように配置された光検出器と、正および負の値を有するスケールのそれぞれのアナログ電子出力信号を発生するために、アナログ強度信号からそれぞれのDCオフセット信号を減算するように構成されたそれぞれの微分器と、を含む。
【特許請求の範囲】
【請求項1】
光学系を使用してベクトル乗算を実行するためのシステムであって、前記システムは1つまたは複数のチャネルを含み、各チャネルは、
それぞれの光信号を生成するように配置されたそれぞれの光信号生成器と、
前記それぞれの光信号を含む光信号のベクトルを受信し、光領域における重みのそれぞれのベクトルによって乗算するように配置されたそれぞれの光ベクトル乗算器であって、各光信号は、変数のベクトルからのそれぞれの変数の値をモデル化する変調された振幅を有し、前記重みは、前記変数間の相互作用をモデル化する、それぞれの光ベクトル乗算器と、
インコヒーレント検出によって前記それぞれの光ベクトル乗算器の結果の出力の強度を検出し、それによって正の値のみを取り得るスケールで変調されたアナログ強度信号を生成するように配置されたそれぞれの光検出器と、
正および負の値を有するスケールで変調されたアナログ電子信号の形でそれぞれの出力信号を発生するために、前記アナログ強度信号からそれぞれのDCオフセット信号を減算するように構成されたそれぞれの微分器と
を含む、システム。
【請求項2】
請求項1に記載のシステムであって、前記変数は二値である、システム。
【請求項3】
請求項1または2に記載のシステムであって、各チャネルの前記光ベクトル乗算器は、
空間光変調器と、
波長選択スイッチと、
リング共振器と、
マッハツェンダー干渉計と
のうちの1つを含む、システム。
【請求項4】
請求項1から3のいずれか一項に記載のシステムであって、少なくとも1つのチャネルの前記光ベクトル乗算器は、波長選択スイッチを含む、システム。
【請求項5】
請求項1から4のいずれか一項に記載のシステムであって、各チャネルは、
それぞれのオフセット光信号を生成するように構成されたそれぞれのオフセット光生成器と、それぞれのオフセット光検出器と
を含み、前記DCオフセット信号は、前記オフセット光検出器によって前記オフセット光信号の強度を検出することによって生成される、システム。
【請求項6】
請求項1から5のいずれか一項に記載のシステムであって、各チャネルにおいて、
前記それぞれの光信号生成器は、前記それぞれの変数を表すアナログ電子信号の形でそれぞれのスピン信号を生成するように配置されたそれぞれのスピン生成器と、前記それぞれのアナログ信号に基づいて前記光信号の振幅を変調するように配置された変調器とを含み、
前記それぞれのスピン信号は、前記それぞれの変数を表すために正と負のレベルの間のスケールで変化するが、前記光信号の振幅は正のみであり、前記変調器は、前記スピン信号の前記正と負のレベルを前記光信号の正の振幅に変換するように構成される、
システム。
【請求項7】
請求項6に記載のシステムであって、各チャネルの前記それぞれのスピン生成器は、さらなる光源と、前記それぞれのフィードバック信号に応じて前記さらなる光源からの光を変調するように配置されたさらなる変調器と、前記さらなる変調器からの変調された前記光を検出し、それに応じて前記スピン信号を生成するように配置されたさらなる光検出器とを含む、システム。
【請求項8】
請求項1から7のいずれか一項に記載のシステムであって、各チャネルは、前記それぞれの出力信号に基づいてそれぞれのフィードバック信号を前記それぞれの光信号生成器に戻すように配置されたそれぞれのフィードバック経路を含み、前記それぞれの光信号生成器は、前記フィードバック信号に応じて前記それぞれの光信号を適応させるように構成される、システム。
【請求項9】
請求項8に記載のシステムであって、各チャネルにおいて、前記それぞれのフィードバック経路は、前記それぞれの光信号生成器に戻る前に前記それぞれのフィードバック信号を発生するために、前記それぞれの出力信号にそれぞれのノイズ成分を加えるように配置される、システム。
【請求項10】
請求項8または9に記載のシステムであって、関数を最適化する変数の前記ベクトルの値を推定するように配置され、前記関数は、複数の項の重み付き和を含み、各項は、前記ベクトルからの前記変数の対応する部分集合の積を含み、各項は、前記変数間の相互作用をモデル化する重みの行列からの対応する重みによって重み付けされ、
各チャネルの重みの前記それぞれのベクトルは、重みの前記行列からの重みのそれぞれのベクトルを含み、前記それぞれの変数と変数の前記ベクトルとの間の相互作用を表す、
システム。
【請求項11】
請求項10に記載のシステムであって、各チャネルの前記それぞれの光信号生成器は、
【数1】
に従って前記適応を反復的に実行するように構成され、
はチャネルiの前記スピン信号であり、kは前記反復のインデックスであり、αおよびβは係数であり、Jは重みの前記行列であり、ζは請求項9に従属する場合の前記ノイズ成分である、
システム。
【請求項12】
請求項10または11に記載のシステムであって、複数の前記チャネルを含み、
各チャネルの前記それぞれの光信号生成器によって生成される前記それぞれの光信号の前記振幅は、変数の前記ベクトルからの前記変数の異なるそれぞれの1つの前記値をモデル化するために変調され、
各チャネルは、前記それぞれの光信号のインスタンスを前記複数のチャネルのそれぞれに供給するように配置されたそれぞれのスプリッタをさらに含み、各チャネルの前記光ベクトル乗算器は、前記それぞれのベクトル乗算を実行するために、光信号の前記ベクトルを受信する、
システム。
【請求項13】
請求項10または11に記載のシステムであって、前記光信号生成器が時分割多重によって前記複数の光信号を同一の光ビームに多重化するように構成された単一のチャネルを含み、
前記光ベクトル乗算器は、前記ベクトルの前記光信号を時間的に重なるように異なる経路長だけ遅延させる遅延線の配列と、遅延された前記光信号に基づいて前記ベクトル乗算を実行するように配置された少なくとも1つのさらなる光学素子とを含む、
システム。
【請求項14】
請求項1から9のいずれか一項に記載のシステムであって、各チャネルは、ニューラルネットワークのノードまたはレイヤを表すために使用される、システム。
【請求項15】
光学系を使用してベクトル乗算を実行する方法であって、1つまたは複数のチャネルの各々について、
それぞれの光信号を生成するステップと、
それぞれの光ベクトル乗算器で、前記それぞれの光信号を含む光信号のベクトルを受信するステップと、
光信号の前記ベクトルに、光領域における重みのそれぞれのベクトルを乗算するステップであって、各光信号は、変数のベクトルからのそれぞれの変数の値をモデル化する変調された振幅を有し、前記重みは、前記変数間の相互作用をモデル化する、ステップと、
それぞれの光検出器において、インコヒーレント検出によって、前記それぞれの光ベクトル乗算器の結果の出力の強度を検出し、それによって、正の値のみを取り得るスケールで変調されたアナログ強度信号を生成するステップと、
それぞれの微分器において、正および負の値を有するスケールで変調されたアナログ電子信号の形でそれぞれの出力信号を発生するために、前記アナログ強度信号からそれぞれのDCオフセット信号を減算するステップと
を含む方法。
【発明の詳細な説明】
【技術分野】
【0001】
[001]ロジスティクス、財務ポートフォリオ管理、創薬、およびその他の応用領域における多くの問題は、目的を最適化することを目標として、入力(通常、変数と呼ばれる)への値の割り当てを見つけることを必要とする。
【背景技術】
【0002】
例えば、このような問題には「組合せ最適化問題」が含まれる。他の最適化分野とは異なり、組合せ最適化は、変数が有限集合から値を取る問題に関連する。例えば、有効な代入は、限定された集合(例えば、3つの利用可能なルートから1つを選ぶ)、または一般的には整数の有限部分集合からの二値(例えば、投資をするかしないか)であり得る。このような問題では、各変数の値の組合せ方は有限である。原理的には、すべての可能な組合せを列挙し、最適な割り当てを見つけることが可能である。しかし、実際には、組合せの集合が非常に大きい(変数の数が指数関数的)ため、このような網羅的な探索は、中程度の大きさの問題では実行不可能である。
【0003】
[002]このような問題の構造を理解するための広範な研究が行われてきた。組合せ最適化問題の部分集合は、NP完全(NPは非決定性多項式を意味する)として知られる問題のカテゴリに属する。NP完全性は計算複雑さ理論で知られている概念であり、すべてのNP完全問題は他のNP完全問題に変換することができる。任意のNP完全問題に対する効率的なソルバは、任意のNP完全問題を効率的に解くことができることを意味する。すべてのNP完全問題はまた、「NP困難」として知られるより大きな問題の部分集合に属し、すべてのNP困難問題はまた、他のすべてのNP困難問題に変換することができる。
【0004】
[003]この設定における「効率的」という用語は、すべての可能性を列挙することなく問題の解を見つけることを意味する。具体的には、本明細書で説明するグラフ最適化に対する効率的な解とは、解を求めるのに要する時間が問題の変数(グラフの頂点など)の数に対して多項式になるような解であり、一方、すべての可能な解を列挙することは問題の変数の数に対して指数関数的になるような解である。しかし、そのような効率的なソルバは存在しないと広く受け入れられている。その代わりに、この分野での研究は、「十分に良い」解を見つけるアルゴリズムを考案することに集中している。多くの場合、そのような近似アルゴリズムが、厳密解に十分に近い解を本当に提供するという保証はない。
【0005】
[004]組合せ最適化問題には様々なものが存在し、上述したように、NP完全問題は他のNP完全問題に変換することができる。例えば、巡回セールスマン問題は次のように定義される:与えられた都市集合と都市間の対距離に対して、すべての都市を経由する経路を求める問題であり、各都市はちょうど1回訪問され、経路の全長は最短である。
【0006】
[005]組合せ最適化問題の一般的な形式は、二次無制約二値最適化(QUBO)問題と呼ばれ、これは、二値変数V={ν,ν,...ν}の集合によって定義され、それぞれが0または1のいずれかの値、および式ΣΣij・ν・νを取り、ここで係数Qijは変数νとνの間の相互作用を定義する。巡回セールスマン問題は、変数を訪問可能な各都市の各都市間の経路における位置として定義し(例えば、最初の変数はロンドンが最初に訪問する都市であるか否かを示し得る)、すべての都市をちょうど1回訪問するという制約の下で総距離が最小になるように都市間の距離を行列Qに符号化することで、QUBO問題として定式化することができる。QUBOは多項式無制約二値最適化(PUBO)問題の一種であり、式Σv’⊆vv’・Πν∈V’νを最小化するように二値変数V={ν,ν,...ν}の集合に値を割り当て、この場合、Qは、任意の数の変数間の相互作用を符号化し得る。上述したように、NP困難問題の異なる定式化間の変換は可能である。式に補助変数および補助項を導入することで、PUBO問題をQUBOに変換することができる。
【0007】
[006]物理学で強磁性および他の物理過程をモデル化するために使用されるイジングモデルと呼ばれる定式化は、上で定義したQUBO問題と等価である。イジングモデルは、2つの離散的な状態に存在し得る変数を持つ物理システムで記述され、これらの変数は互いに相互作用することができ、システムの全エネルギーはH(σ)=-Σi,jijσσ-μΣσで与えられる。イジング定式化では、二値変数(「スピン」と呼ばれることもある)は通常、1/0または他の二値割り当てではなく、+1/-1のいずれかに割り当てられる。ただし、イジング定式化は、σ=2ν-1の式を適用することで、ブール変数のQUBO定式化に簡単にマッピングすることができる。
【0008】
[007]上記で使用された表記法は、QUBOとイジング定式化の間でわずかに異なっており、割り当てられる変数はσで表され、相互作用係数はイジングモデルのJで表されることに注意されたい。簡単にするため、このアプリケーションでは、値が割り当てられる変数にはσという表記を使用し、イジングソルバの文脈では、相互作用係数の配列を表すためにJを使用する。しかし、本明細書では、重みの行列および変数をそれぞれ示すために、Qおよびνを一般的に使用することもできる。
【0009】
[008]総エネルギーに関する上記の式の第2項-μΣσは、モデル化されているシステムに対する外部「場」または何らかの外部効果の影響を表す。例えば、強磁性体の場合、第1項は磁気双極子間の相互作用によるエネルギー寄与を表し、第2項は外部磁場によるシステムのエネルギーを表す。外部磁場がない場合のイジング問題を解く方がはるかに単純であるため、多くの問題は外部磁場なしのイジング問題としてモデル化される。しかし、余分なスピンを導入し、重みを慎重に選択したエッジを追加することで、外部磁場のある問題を外部磁場のない問題に変換することは可能である。以下の説明でイジング問題と呼ばれる問題またはモデルは、外部磁場のない問題、またはすでに外部磁場のない問題に変換された問題を想定する。
【0010】
[009]最近まで、組合せ最適化のアルゴリズムは、一般に、汎用CPU、FPGA、GPU、ASICなどのデジタルハードウェアで実装されてきた。デジタルハードウェアは、柔軟性(すなわち、異なるアルゴリズムをプログラムする能力)および信頼性に関して大きな利点を有する。しかし、デジタルソリューションには、実行速度と消費電力による制限もある。かつては、デジタルハードウェアの世代が進むごとに、計算能力の向上と消費電力の削減が達成されてきた。しかし、基本的な物理的限界に近づくにつれて、デジタルハードウェアの性能向上はますます困難になると広く予測されている。組合せ最適化問題に対するより良い解答を探したり、より大きなインスタンスに取り組んだりすることは、より大きなハードウェアコストを伴うことになる。
【0011】
[0010]しかし、最近では、非デジタル物理プロセスに基づくハードウェアを用いて、このような問題を解決しようとする試みがなされている。物理プロセスによるイジングモデルの一般的な実現には、量子アニーラが使用されている。既存のシステムでは、問題の変数は量子ビットで表現され、通常「スピン」と呼ばれる+1と-1の値を取る。しかし、このトポロジーでは完全な接続性が得られない。その代わりに、量子ビットは、4つの水平量子ビットがカプラを介して4つの垂直量子ビットに接続されたユニットセルの集合を含むアーキテクチャで相互接続される。ユニットセルは垂直方向と水平方向にタイル状に配置され、隣接する量子ビットが接続され、まばらに接続された量子ビットの格子が形成される。このアーキテクチャの接続性が制限されているため、望ましくない影響があり、その結果、スピンへの問題変数の非効率な表現が生じる、つまり、問題を表現するために物理システムに必要な量子ビットの数は、元の変数の数よりもはるかに多くなる。
【0012】
[0011]量子アニーラハードウェアのこの固有の物理的制限のため、古典的ハードウェアで実行でき、量子の物理的特性に触発されたアルゴリズムが開発されてきた。例えば、Microsoft Azureは、量子インスパイアされた最適化(QIO)アルゴリズムを開発し、PUBO問題の近似に有望であることを示している。
【0013】
[0012]光ソルバでは、入力変数(例えば、イジング問題のσ=1...N)を表すために光信号が使用され、変数間の相互作用(例えば、イジング問題の行列J)をモデル化する方法で信号を結合するために光学素子が使用される。液晶ディスプレイまたはリング共振器など、光学領域でベクトル同士の乗算を行う光学素子は当技術分野で知られている。加算(Σ)は、光検出器の光検出素子に入射する信号のコヒーレント加算またはインコヒーレント加算を行うことができる光検出器を用いて実施することができる。
【0014】
[0013]ソルバへの入力(すなわち、値が決定される変数)が、-1と+1、または-1/2と+1/2のような正負の二値を取り得る場合、これらは、単にスピンの量子特性との類推によって「スピン」と呼ばれることがある。しかし、このような文脈では、実際にはスピンの量子特性を意味しない。代わりに、2つの可能な「スピン」値は、単に二値変数の2つの可能な値を指し、例えば、光の振幅または位相の2つの異なる値を使用して表される可能性がある。
【0015】
[0014]光学に基づく、あるいは光学に着想を得た最先端のソリューションは、デジタルアプローチのみ(東芝のSBM[模擬分岐マシン]による巡回セールスマン問題の解決、Ikuko Hasumi https://medium.com/toshiba-sbm/solving-traveling-salesman-problem-with-sbm-simulated-bifurcation-machine-89740c83ed37を参照)、あるいはBohm,Fabian,Guy Verschaffelt,Guy Van der Sandeの「A poor man’s coherent Ising machine based on opto-electronic feedback systems for solving optimization Problems(最適化問題を解決するための光電子フィードバックシステムに基づく貧乏人のコヒーレントイジングマシン)」Nature communications 10.1(2019):1-9(https://www.nature.com/articles/s41467-019-11484-3)およびInagaki,Takahiroらの「A coherent Ising machine for 2000-node optimization Problems(2000ノードの最適化問題に対するコヒーレントイジングマシン)」Science 354.6312(2016):603-606(https://science.sciencemag.org/content/354/6312/603)のようなハイブリッドアプローチのいずれかを提案している。
【0016】
[0015]ハイブリッドアプローチでは、変数値を表す信号を生成するためのビルディングブロックは、通常、光ハードウェアで実装されるが、変数相互作用を計算するロジックは、デジタルハードウェアと、光領域とデジタル領域とを変換するハードウェアとを用いて実装される。これとは対照的に、「全アナログ」ソルバでは、代わりに非デジタルハードウェアが、光(すなわち光信号)とアナログ電子領域の間で信号を変換するために使用される。全アナログソルバの利点は、光信号とアナログ電子信号の伝送速度が速いことである(デジタルエレクトロニクスは、フリップフロップを介してビット列をクロックする必要があるため、本質的にはるかに遅い)。一方、反復の一部をデジタル領域で実装することは、デジタルエレクトロニクスと比較して伝送速度が速いという全アナログソルバの利点を失うことになる。システムの速度は最も遅い部分によって制限されるため、デジタルエレクトロニクスを含めると、光ソルバの利点が否定されることになる。
【0017】
[0016]4つのスピン/変数に対する全対全接続性と16のスピン/変数に対する部分的接続性を持つ全光ソリューションが提案され、実証されている。(Marandi,A.,Wang,Z.,Takata,K.,Byer,R.L.& Yamamoto,Y.による「Network of time-multiplexed optical parametric oscillators as a coherent Ising machine(コヒーレントイジングマシンとしての時間多重光パラメトリック発振器のネットワーク)」Nat.Photonics 8,937-942(2014),K.Takataらによる「A 16-bit Coherent Ising Machine for One-Dimensional Ring and Cubic Graph Problems(1次元リングおよび三次グラフ問題用の16ビットコヒーレントイジングマシン)」,Scientific Report 2016.「A 16-bit Coherent Ising Machine for One-Dimensional Ring and Cubic Graph Problems(1次元リングおよび三次グラフ問題用の16ビットコヒーレントイジングマシン)」(europepmc.org))。
【0018】
[0017]最先端の全光ソルバは、時分割多重アーキテクチャの光信号を用いて変数を生成する。すなわち、信号は同じ光ビームに直列に多重化され、変数間の相互作用をモデル化するために信号を結合できるように、変数ごとに異なる遅延経路が導入される。しかし、時分割多重の場合、スピン生成が直列に行われるため、ソルバの時間的複雑さはモデル化される変数の数に比例する。図5Aは、時分割多重化アーキテクチャの概略ブロック図である。時分割アーキテクチャの場合、各「スピン」は直列に生成され、それらの間の相互作用を実装できるように、異なるパス長だけ遅延される。これは、スピン間の相互作用を計算し、スピン生成にフィードバックを渡す前に、1回の反復ですべてのスピンが生成されるのを待たなければならないことを意味する。
【0019】
[0018]完全にアナログ領域で実装されるソルバは、イジングシステムの「スピン」相互作用をモデル化するために光学的またはアナログ電子ベクトル乗算器を使用する。光学的なベクトル乗算器を実装することは、光通信の速度を利用するという、上で指摘した利点がある。
【発明の概要】
【0020】
[0019]光ベクトル乗算器の課題は、乗算結果を表す光信号を検出して信号の数値を決定する必要があることである。既存の光ベクトルごとの乗算器は、一般的に、出力信号の位相と振幅の両方を測定できるコヒーレント検出を使用している。しかし実際には、コヒーレント検出方式は実装が複雑で、デジタル信号処理を必要とすることが多い。しかし、用途によっては、光および電気信号伝送の速度と効率により、コヒーレント検出が不可能であるように、すべての処理を光またはアナログ電子領域で行う必要がある。
【0021】
[0020]光信号を検出するために使用することができる代替検出方式は、フォトダイオードなどの光検出器を使用して光信号の強度を直接測定する直接検出である。しかし、実数値信号、すなわち正または負の値のいずれかを取り得る信号の検出では、光強度は正の値しか取り得ないため、直接検出は負の信号を正の値に変換する。
【0022】
[0021]本開示は、光ベクトル行列乗算の実数値結果を検出するための直接検出方式に関する。直接検出は、その強度を直接測定することによって振幅変調された光信号の検出を可能にする。直接検出は、コヒーレント検出方法と区別するために、本明細書では「インコヒーレント」検出とも呼ばれることがある。強度を直接検出するとすべての位相情報が失われるが、振幅変調を使用することにより、位相情報を検出することなく乗算結果の値を正確に決定することができる。また、乗算結果の正負両方の値を捉えるために、直接検出方式では検出器の出力からDCオフセットを減算し、ある範囲に変換する。これにより、光強度の直接検出のみでは正の値のみを取り得るのに対し、正または負の値のいずれかを取り得るベクトル乗算の実出力の検出が可能になる。
【0023】
[0022]いくつかの実施形態では、直接検出方式は、二値最適化問題を解く全アナログソルバアーキテクチャの一部として光信号を検出するために使用され、光信号は、正と負の両方の値を取らなければならない振幅の「スピン」変数を符号化し、光信号の更新は、特定の方向に「スピン」値を更新するベクトル乗算結果によって少なくとも部分的に決定され、更新の方向は、乗算結果の符号に基づいて決定される。光検出器で直接検出される場合の乗算結果は正にしかなり得ないので、乗算結果と「スピン」を表す光信号が正負両方の値を取り得ることを保証するためにDC項が追加される。
【0024】
[0023]本明細書に開示される第1の態様によれば、光学系を使用してベクトル乗算を実行するためのシステムが提供され、このシステムは、1つまたは複数のチャネルを含み、各チャネルは、それぞれの光信号を生成するように配置されたそれぞれの光信号生成器と、それぞれの光信号を含む光信号のベクトルを受信し、光領域における重みのそれぞれのベクトルによって乗算するように配置されたそれぞれの光ベクトル乗算器であって、各光信号は、変数のベクトルからのそれぞれの変数の値をモデル化する変調された振幅を有し、重みは、変数間の相互作用をモデル化する、それぞれの光ベクトル乗算器と、インコヒーレント検出によってそれぞれの光ベクトル乗算器の結果の出力の強度を検出し、それによって正の値のみを取り得るスケールで変調されたアナログ強度信号を生成するように配置されたそれぞれの光検出器と、正および負の値を有するスケールで変調されたアナログ電子信号の形でそれぞれの出力信号を発生するために、アナログ強度信号からそれぞれのDCオフセット信号を減算するように構成されたそれぞれの微分器と、を含む。
【0025】
[0024]本明細書に開示される別の態様によれば、光学系を使用してベクトル乗算を実行する方法が提供され、この方法は、チャネルのセットの各々について、それぞれの光信号を生成するステップと、それぞれの光ベクトル乗算器で、それぞれの光信号を含む光信号のベクトルを受信するステップと、光信号のベクトルに、光領域における重みのそれぞれのベクトルを乗算するステップであって、各光信号は、変数のベクトルからのそれぞれの変数の値をモデル化する変調された振幅を有し、重みは、変数間の相互作用をモデル化する、ステップと、それぞれの光検出器において、インコヒーレント検出によって、それぞれの光ベクトル乗算器の結果の出力の強度を検出し、それによって、正の値のみを取り得るスケールで変調されたアナログ強度信号を生成するステップと、それぞれの微分器において、正および負の値を有するスケールで変調されたアナログ電子信号の形でそれぞれの出力信号を発生するために、アナログ強度信号からそれぞれのDCオフセット信号を減算するステップと、を含む。
【0026】
[0025]本開示をより良く理解するために、また、本開示の実施形態がどのように実施され得るかを示すために、添付の図を参照する。
【図面の簡単な説明】
【0027】
図1】[0026]2次制約なし二値最適化問題のための例示的な光ソルバアーキテクチャの概略ブロック図である。
図2】[0027]光ソルバアーキテクチャの1チャネルのハードウェア実装の概略ブロック図である。
図3】[0028]スピン生成ハードウェアの概略ブロック図である。
図4】[0029]ソルバの動作中のアナログ領域と光領域との間の信号変換の概略ブロック図である。
図5A】[0030]図5Aは、時分割多重化アーキテクチャの例を示す図である。
図5B図5Bは、空間分割多重化アーキテクチャの例を示す図である。
図6】[0031]図6は、適応DC項を有する直接検出方式の使用を示す図である。
図6A】[0032]図6Aは、オフセット項を有する直接検出の概略ブロック図である。
図6B図6Bは、オフセット項を有する差動検出の概略ブロック図である。
図7】[0033]光ベクトル乗算の概念を示す概略図である。
図8】[0034]光ベクトル間乗算を実行するための波長選択スイッチの動作を示す図である。
図9】[0035]光ベクトルごと行列乗算を実行するための修正波長選択スイッチアーキテクチャの動作を示す図である。
【発明を実施するための形態】
【0028】
[0036]図1は、組合せ最適化問題を解くように構成された光ソルバアーキテクチャの概略ブロック図である。本明細書において最適化問題を「解く」とは、近似解を求める可能性を含むことに留意されたい。以下の説明では、上述のイジング問題のような2変数の相互作用をモデル化する問題に焦点を当てる。しかし、3つ以上の変数間の相互作用をモデル化する高次のPUBO問題は、変数の数が多いとはいえ、QUBO問題に変換することができ、同じ光学ハードウェアを使用して解くことができることに留意されたい。上述したように、このような問題の目標は、問題に特有の特定の関数を最小化する変数の割り当てを見つけることである。最適化において最小化される関数は、本明細書では、強磁性に対するイジングモデルのような特定の物理システムにおいてこの形式を取る全エネルギーを反映するために、「エネルギー」と呼ばれることがある。
【0029】
[0037]一般的な組合せ最適化問題は、まず、当該問題をQUBO問題にマッピングし、これをイジング問題にマッピングすることによって解くことができる。多くの問題については、QUBO定式化へのマッピングが知られている。それ以外の問題については、マッピングを導出する必要があり得る。一般的なNP困難問題のQUBOまたはイジング定式化へのマッピングは、それ自体、数学の専門家であれば理解できる話題である。例えば、PUBO形式で表現された問題、例えば、式Σijkijkνννを有する3次制約なし二値最適化問題は、余分な変数および項を導入することにより、QUBO問題として表現することができ、したがって、本明細書に開示されるイジングソルバによって解くことができる。本明細書で開示されるソルバは、イジング問題の解を提供し、その問題へのマッピングが見出され得る任意のNP困難問題を解くのに使用することができる。
【0030】
[0038]この場合、問題は、全エネルギーがイジングハミルトニアン、すなわち-Σi,jijσσ(外部磁場なしと仮定)によって与えられる物理システムにマッピングされる。与えられた問題をイジング系にマッピングするには、全エネルギー-Σi,jij・σ・σを最小化する(すなわち、Σi,jij・σ・σを最大化する)ことが問題を最適化することと等価になるように行列Jを決定する必要がある。
【0031】
[0039]したがって、ハミルトニアンは複数の項Jij・σ・σの和であり、各項は変数σ,σのそれぞれの部分集合と対応する重みJijとの積である。(したがって、第1項は1つの変数σにそれ自身と重みJ11を乗じた部分集合であり、第2項は部分集合σ、σと重みJ12を乗じたものである)。
【0032】
[0040]見てわかるように、この和は、σを和の左側に取り出すことによって、一連のベクトルごとの(ドット積)乗算に分解することができる:
【0033】
【数1】
[0041]この最終的な表現では、各行の合計は、ハミルトニアンのエネルギーに対する変数σの異なるそれぞれの1つの寄与を表す個々のベクトル乗算である。すなわち、ベクトル乗算(σ11+σ12+・・・+σ1N)はエネルギーに対するσの寄与であり、(σ21+σ22+・・・+σ2N)はσの寄与であり、重みJは変数間の相互作用を表す(したがって、J11はσとそれ自身との相互作用、J22はσとσとの相互作用など)。重みは、モデル化される問題に応じて設定される(そして、任意の問題については、いくつかの重みがゼロになることもある)。図1のシステムでは、各変数の寄与は、より詳細に後述するように、異なるそれぞれのハードウェアチャネル102によってモデル化される。各チャネル102において、それぞれの変数σは、それぞれの信号生成器100によって生成されるそれぞれの信号x、例えば光信号によってモデル化される。信号xは、スプリッタ106によってチャネル間で共有され、各チャネル100のそれぞれのベクトル乗算器104は、それぞれのベクトルごとの乗算(VVM)を実行して、それぞれのチャネル100によってモデル化されるそれぞれの変数のそれぞれの寄与(σi1+σi2+・・・+σiN)を決定する。
【0034】
[0042]応用例として、巡回セールスマン問題がある。簡単な例では、営業担当者が訪問する必要のある3つの都市があるとする:ロンドン、エディンバラ、カーディフである。これらはQUBO問題の9つの変数でモデル化できる:νは最初にロンドンを訪問する、νは2番目にロンドンを訪問する、νは3番目にロンドンを訪問する、νは最初にエディンバラを訪問する、νは2番目にエディンバラを訪問する、νは3番目にエディンバラを訪問する、νは最初にカーディフを訪問する、νは3番目にカーディフを訪問する、νは3番目にカーディフを訪問することを表す。行列Qijの要素は、対応する都市のペア間を移動する際のペナルティを表す。つまり、Q15(最初にロンドンを訪問し、2番目にエディンバラを訪問する)は、ロンドンからエディンバラまでの距離のペナルティを表している。Q19(最初にロンドンを訪問し、3番目にカーディフを訪問する)のような重みは、連続する都市間の距離だけで総距離が決まるため、この問題では意味がないため、0に設定されていることに注意されたい。Q12またはQ13(最初にロンドンを訪問し、2番目にロンドンを訪問する、または、最初にロンドンを訪問し、3番目にロンドンを訪問する)のような他の重みは、各都市を1回ずつ訪問するという制約を課すために、大きなペナルティ値に設定することができる。QUBO問題(ΣΣij・ν・νを最小化する)は、その後、イジング問題(ハミルトニアン項-Σi,jijσσのエネルギーを最小化する)に変換され、図1のソルバシステムを使用して解くことができる。
【0035】
[0043]他の例として、2つの分子間の分子類似性を推定する分子類似性問題がある。これは例えば、ある分子が別の分子を阻害する可能性が高いことを推定し、薬剤に使用するために用いることができる。分子類似性をQUBO問題としてモデル化すること自体は、当技術分野で知られている。
【0036】
[0044]問題をモデル化するイジングシステムのハミルトニアンを最小化する方向に、システムによって生成される信号を適応させるための更新規則が導出され得る。イジングモデルの可能な更新方程式は、以下のように記述される:
【0037】
【数2】
[0045]ここで、xは、イジングモデルの変数σをモデル化するためにシステムによって生成されるモデリング信号の値である。この更新方程式は、イジングモデルのハミルトニアンから導出される。更新方程式を導出するために、各スピンの更新は、そのスピンの値を変更することが全エネルギーに及ぼす期待効果に基づいて定義することができる。これは、
【0038】
【数3】
の更新の式を導出するために使用することができる:
[0046]ここで、上記の括弧内は、2Σij<x>として評価することができる。更新の項は、各反復における各スピンの更新の大きさを制御して、システム全体が最小になるように適合させるために、定数αとβを乗算することができる。上式のζ項はガウシアンノイズで、非最適解で「スタック」するのを避けるために、各反復でシステムを摂動させるために適用される。最後に、式1のcos()項は、
【0039】
【数4】
のテイラー展開が、適切に選択された定数αおよびβについて、上記の更新式にほぼ等しいことを観察することによって導くことができる。コサイン2乗は、後述するこの関数を容易に計算できる特定のハードウェアのため、特に光スピン生成に有用な近似である。しかしながら、上記の式2の他の近似を評価するために、異なる近似がなされてもよい。例えば、アナログ電子部品を使用して、式2のテイラー展開の項を直接評価し、更新されたxの値のアナログ信号を生成してもよい。例えば、式2の3次近似または5次近似を使用することができる(それぞれ3次または5次の項までのみの展開)。実際、式(1)でcos(x-π/4)-1/2を使用する理由は、xが十分に小さい場合にx-xに近似するからである。他の例では、同様の近似を提供する(すなわち、xが0付近で線形である)任意の他の式も機能し得る。
【0040】
[0047]図1に示すように、より詳細に後述するが、それぞれの変数をモデル化するそれぞれのモデリング信号xは、それぞれのチャネル102内のそれぞれの信号生成器100(例えば光信号生成器)によって生成される。行列Jに対応する変数間の相互作用は、相互作用ロジック104によってモデル化される。
【0041】
[0048]上記の式は、後でさらに詳細に説明する。他の定式化も可能である。どのような定式化が使用されるにせよ、更新方程式の基本的な特性は、モデル化される物理システムが最小エネルギー(すなわち、上記で与えられたハミルトニアンの最小値)に向かうように、信号をプッシュまたは適応させることである。これは、システム全体のエネルギーに対する与えられた信号の寄与を表し、その符号が更新の方向を決定する項βΣij[k]によって駆動される。言い換えれば、この項は、それぞれのチャネル102のそれぞれのモデリング信号xを適応させるために、信号生成器102にフィードバックを提供する。このフィードバックの符号は、それぞれのモデリング信号(x)の適応を引き起こし、その信号を、システムのハミルトニアンにおける全体的なエネルギーを減少させる方向に駆動する。このフィードバックの値は、適応の程度を決定する(任意に、係数αとβによって信号xに対して減衰される)。
【0042】
[0049]ソルバが直接イジング変数σを表す信号を決定する一方で、これはQUBO変数νの最適マッピングを見つけることと等価であり、元の問題の形で別の変数集合に変換することができることに留意されたい。ただし、ソルバが決定できるイジング変数(スピン)の集合と、元の問題を最適化する変数の集合との間にマッピングが存在することが重要である。以下の説明では、νまたはσのいずれかが、ソルバによってモデル化された二値変数を示すために使用される場合があることに留意されたい。
【0043】
[0050]二値変数σの値を光学的または電気的アナログ信号としてモデル化し、非デジタルハードウェアコンポーネントの組合せを使用してモデル化された各変数に対して上記の更新を実行する全アナログソルバを実装することができる。ソルバは、与えられた変数の割り当てを表す信号の初期集合を生成し、アナログ電子または光学ハードウェアに実装された相互作用ロジックを使用して計算されたフィードバック信号に基づいて、一連の反復ステップで新しい信号を生成する。イジング問題のためのソルバアーキテクチャの実装例については、後で詳しく説明する。
【0044】
[0051]本開示に従って配置され得るソルバ構成の多くの選択肢があり、各構成は、時間とともに生成される信号を「イジング」システムの全エネルギーを最小化する信号の集合に促すフィードバック信号を生成し、これは、所与の問題定義に対する変数の最適な割り当てにマッピングされ得る。
【0045】
[0052]本開示は、N個の変数のイジング問題(「スピン」と呼ばれることもある)にマッピングされ得る組合せ最適化問題を解くための新規なアーキテクチャを提供し、問題の変数は、N個の別個のハードウェアチャネルの集合によってモデル化され、所与の問題定義に従って変数の相互作用をモデル化する信号相互作用ロジックによって提供されるフィードバックに基づいて反復的に更新される。このシステムは、光学およびアナログ電子領域でのみ発生し、信号相互作用ロジックは、光学またはアナログ電子ハードウェアのいずれかによってモデル化され得る。これは、図1を参照して、さらに詳細に説明される。
【0046】
[0053]図1は、組合せ最適化問題のためのアナログソルバの例示的な概略ブロック図である。このアーキテクチャは、N個のチャネル102を含み、各チャネルiは、各チャネルについて導出されたフィードバック方程式に従ってチャネルフィードバック信号を計算するように構成され、各チャネルのフィードバックは、問題を定義する「エネルギー」関数を最小化する変数の集合になりやすい。
【0047】
[0054]第1のチャネル102は、正または負の「スピン」値のいずれかを取るイジング変数σに対応するモデリング信号xを計算するように構成され、モデリング変数xは、最適化の各反復で受信されたフィードバックに基づいて更新される。モデル化される変数σは二値である可能性があるが、モデリング信号xは、変数の2つの可能な二進値の間で変化し得るソフトな値を取り得ることに留意されたい。次に、各チャネルによる寄与を決定するプロセスについて説明する。各チャネルは、関数へのそれぞれの寄与を計算するために同じステップを実行するハードウェアコンポーネントを含むことに留意されたい。
【0048】
[0055]各チャネル102は、信号生成器100、スプリッタ106、および信号相互作用ロジック104を含み、これらの各々は、1つまたは複数のハードウェアコンポーネントを含み得る。本明細書においてこの文脈で使用される「ロジック」は、デジタルロジックを指すのではなく、むしろアナログまたは光ハードウェアを使用して実行される信号演算を指すことに留意されたい。信号生成器100は、σのモデリング信号を生成し、信号の測定可能な特性は変数σの二進値を表す。信号は、例えば、レーザのような光源によって生成される光信号であってもよい。光変調器は、変数σをモデル化するために、光信号の特性を変調するために使用することができる。二値変数σが振幅のような特性の値で符号化されるためには、可能な変調された特性値(振幅)と二進値(例えば1と-1)との間のマッピングが定義されなければならない。例えば、xは[-a,+a]の間の範囲にあり、aはある定数であり、正の振幅はイジング変数σ=1にマッピングされ、負の振幅はイジング変数σ=-1にマッピングされる。変数σをモデリングする変調信号(これを本明細書では「モデリング信号」xと呼ぶ場合がある)が生成されると、この信号は、スプリッタ106を適用することによってコピーすることができ、同じ変数νを符号化するモデリング信号xの複数のインスタンスを生成し、図1の矢印で示すように、他のチャネルに伝達することができる。
【0049】
[0056]信号相互作用ロジック104は、変数のベクトルを表す複数のモデリング信号を受信し、各信号は、それぞれのチャネルjのスプリッタ106から受信される。相互作用ロジック104は、モデリング信号xを、モデリングされた変数の重み付き和を表す信号に結合するベクトルごとの乗算器を含み、重みは、イジング問題のスピン相互作用を定義する行列Jの関連要素に対応する。ベクトルごとの乗算を実行するために使用され得る様々な可能なハードウェア構成が存在する。本明細書で開示する一例は、波長選択スイッチ(WSS)である。これについては後でさらに詳しく説明する。光ベクトルごとの乗算は、代替的に、空間光変調器(SLM)、リング共振器またはマッハツェンダー干渉計(MZI)、またはそのような技術や他の適切な光学コンポーネントのいくつかの組合せを含む他の既知の光技術によって実施されてもよい。別の選択肢として、ベクトルごとの乗算演算は、例えば、メモリスタを使用することによって、アナログ電子領域で(すなわち、電気信号を使用して)実施することもできる。
【0050】
[0057]図1は、各チャネルのための別個の相互作用ロジック104を示すが、この相互作用ロジックは、各チャネルのための信号相互作用を計算するための別個のハードウェア構成要素を必ずしも含まないことに留意されたい。いくつかの実施形態では、システム全体の相互作用ロジックは、グローバルなベクトルごとの行列乗算器を含む。この場合、所与のチャネルのためのベクトルごとの乗算を実行するベクトルごとの乗算器の部分は、図1に示されるそのチャネルのための相互作用ロジックに対応する。例えば、各相互作用ロジックは、図9の例を参照して後で詳細に説明するように、2D空間光変調器の異なる行に対応してもよい。より一般的には、異なる個々の相互作用ロジックブロック104を実装するグローバルなベクトルごとの行列乗算器の物理的部分は、互いに重なっても重ならなくてもよいことにも留意されたい。一方、他の実施形態では、別個のハードウェア構成要素が、各チャネルについてベクトルごとの乗算を実行するように構成される。両方のアーキテクチャの効果は同じである。これらの代替アーキテクチャの両方について、図8および図9に示すベクトルごとの(またはベクトル行列)乗算器の波長選択スイッチ実装の文脈で、以下により詳細に説明する。
【0051】
[0058]フィードバック信号は、フィードバック経路108に沿って信号生成器104に戻され、信号生成器104は、システムのハードウェアに従って新しい信号を決定する。更新された信号は、例えば、フィードバック信号を変調器に渡して光源からの入力信号を変調し、その結果生じる光信号をフォトダイオードで検出することによって生成することができる。あるいは、一部の実施形態では、フィードバック信号を符号化したアナログ電子信号を、アナログ電子部品を用いて、例えば、メモリスタを用いて直接生成してもよい。いずれにせよ、システムは、時間の経過とともに、与えられた問題式のエネルギー関数を最小化する変数の最適割り当てにマップされる安定状態になるように設計される。
【0052】
[0059]各チャネルは、変数の値への特定の割り当てに対応するすべての信号が安定状態に達するまで、上述したのと同じ方式に従って信号を更新する。任意の数の変数σ,...,σは、N個のチャネルを設定し、各信号をN個の同一コピー信号に分割し、各チャネルに1つずつ送信することによって、この方法でモデル化することができる。
【0053】
[0060]図2は、光ハードウェアに実装されたN個の変数のイジング問題のための光ソルバの例を示す。ソルバは、N個のチャネル102を含み、各チャネルiは、変数iに割り当てられた二進値を表す信号を生成するために、信号生成器100、スプリッタ106および相互作用ロジック104を実装するハードウェアを含む。わかりやすくするために、図2は単一のチャネル102のみの概略図を示しているが、これは各チャネル102で重複してもよい。モデリング信号は、図2のスプリッタ106によって他のすべてのチャネルに出力され、他の各チャネルから相互作用ロジック104で受信されることに留意されたい。
【0054】
[0061]各チャネル102は、システムが、解決されるべき最適化問題に従って変数の最適な割り当てを表す、安定した状態セットに落ち着くまで、フィードバック信号に従って更新されたモデリング信号xを反復的に生成する。上述したように、信号の更新は、例えば、更新方程式によって与えられる:
【0055】
【数5】
[0062]ここで、x[k]はk回目の反復におけるモデリング信号であり、Jijはイジングシステムにマッピングされた与えられた問題に従ってi番目とj番目の変数の間の相互作用を定義する係数であり、αとβは乗法定数であり、ζ[k]はガウスノイズ項である。係数αとβは、各変数の更新の大きさを制御するように選択され、βに対してαが大きいと、信号はβ項すなわちβ*ΣJijij[k]によって与えられる方向にゆっくりと移動する。各ステップでの大規模な更新により、システム全体が適切な局所最適値に収束するのを妨げる可能性があるため、これは多くの変数のシステムでは重要である。同様に、システムが最適な変数の集合の近似が不十分なローカルミニマムで「スタック」しないようにするために、ノイズ項は各ステップで信号に摂動を与える。上記の式は、イジングモデルのハミルトニアンに基づく既知の原理を適用し、賢明な近似を使用することにより、数学的に導出することができる。特に、cos()項は、最適な更新を近似し、これは、後述する特定の光学ハードウェアを使用して容易に適用される。次に、図2を参照して単一チャネル102の動作を説明する。
【0056】
[0063]初期信号は、所定のチャネルによってモデル化された変数σの初期二進値を表すスピン生成ハードウェア300によって生成される。「スピン」は、本明細書では、イジングシステムの二値変数を表す信号を指すために使用され、スピンの量子力学的定義と混同されるべきではないことに留意されたい。スピン生成ハードウェア300のハードウェアコンポーネントの実装例を、図3を参照して以下に詳細に説明する。スピン生成器によって出力された信号は、スピン生成ハードウェア300から破線の矢印で示すように、電気信号としてスプリッタ326に送られ、スプリッタ326は信号を2つの異なる経路で送る。
【0057】
[0064]この実施形態では、スピン生成器300は、図1の信号生成器100の一部のみを含むことに留意されたい。図2のアーキテクチャ例では、信号生成器100は、スピン生成器300、光源302、変調器304、スプリッタ326、増幅器324、および電気信号を合計するアナログハードウェア322を含む。上述したように、信号生成器100の出力はモデリング信号xである。
【0058】
[0065]第1の経路に沿って、信号は、変調器304において、特定の波長のレーザである光源302の出力と組み合わされ、レーザビームを変調し、それによって、図1を参照して上述したように、モデリング信号xを生成する。変調器304は、変数をモデル化する電気信号を符号化するために光信号を変調し、例えば、光信号の振幅、その位相、またはそれらの組合せを使用することができる。上述したように、検出された光信号が正負両方の値を符号化できるように、光信号の測定可能な特性と二値変数との間にマッピングが存在すべきである。これは、受信信号の位相と周波数情報、およびその強度を測定するコヒーレント検出方式を使用して行うことができる。信号の振幅とその符号のみが検出の対象である場合、直接検出の形式を使用することができ、これは本明細書において「差動検出」と呼ばれることがある。これについては以下に詳述する。
【0059】
[0066]変調器304は、変調信号を1からNのスプリッタ306に送り、このスプリッタ306は、同一の光信号をシステムのN個のチャネルの各々のベクトルごとの乗算器314(VVM)に伝達する。図2の例では、ベクトルごとの乗算器313は波長選択スイッチとして実装されている。しかしながら、他の実施形態では、これは、リング共振器、空間光変調器またはマッハツェンダー干渉計(MZI)、またはアナログ電子部品によって実装されてもよい。WSSを採用するような実施形態では、各チャネルで生成される信号は、N個の信号間の干渉を引き起こすことなくベクトルごとの乗算における異なる信号の相互作用を可能にするために、異なる波長(すなわち色)で生成されてもよいことに留意されたい。VVM314は、変数のベクトルを表す信号{x,...,x}の入力集合に、行列Jの要素の対応する部分集合を乗算するように構成されている。所与のチャネルiについて、波長選択スイッチは、各反復kについて式1のベクトルごとの項を表す信号、すなわちΣij[k]を計算し、ここでx[k]はチャネルjについて信号生成ハードウェアで生成された信号である。ベクトル乗算を計算する波長選択スイッチの動作については、後でさらに詳細に説明する。
【0060】
[0067]実施形態では、VVM314によって出力された信号は、図2の破線で示されているように、光学領域に留まり、この信号は、光検出器で検出することによって電気信号に変換される。図示の実施形態では、直接検出方式が使用され、和を実行するように構成されたアナログハードウェア310を使用して差動検出を達成するために、適応直流(DC)項312が追加される。増幅器316は、適応された和に定数βを乗算し、フィードバック経路108に出力する。式1の
【0061】
【数6】
項は、変調器を特定の動作点に設定することにより、ハードウェアで実装される。ガウスノイズ項320(式1のζ[k]に対応)は、電子ミキサなどの電気信号の加算を実行するように構成されたアナログハードウェア318によって、フィードバック信号に加算される。ガウス分布が定義されてもよく、そこから各反復でガウスノイズ項ζ[k]がサンプリングされてもよい。電気信号を加算するためのハードウェアは当該技術分野において周知であり、本明細書ではこれ以上説明しない。ζ[k]は小さなランダム(ガウス)ノイズであると仮定される。各反復において、ζ[k]は(同じ分布から)新しい値を取る。
【0062】
[0068]第2の経路では、信号iは増幅器に出力され、増幅器は、式(1)に示す定数αによる変数σの乗算を表す電気信号を増幅する。この信号は、アナログ加算ハードウェア318からフィードバック経路を経由して伝達される和
【0063】
【数7】
に加算され、信号
【0064】
【数8】
が得られる。最後に、更新された信号がスピン生成ハードウェア300で決定される。フィードバック信号108に基づいて光信号を変調し、フィードバック信号の余弦を計算し、この信号を光検出器で検出し、式1の完全な表現を評価し、アナログ電子信号を出力するために、第2の適応項を加える。光検出器による直接検出は、光検出器が信号自体の2乗に比例する光信号の強度を測定するので、式1の余弦の2乗を生成することに留意されたい。このため、位相変調された信号に対しては、光強度の検出においてすべての位相情報が失われるため、直接検出を使用することはできない。
【0065】
[0069]スピン生成器300による更新方程式の評価の一例を、図3を参照して以下に説明する。このプロセスは各反復で繰り返され、各チャネルの更新された信号を生成し、N個の信号の相互作用を決定し、新しいフィードバック信号を計算し、システムが安定するまで繰り返される。
【0066】
[0070]図2において一緒に動作する複数の構成要素は、図1を参照して上述した一般的な信号生成器100に対応することに留意されたい。この実施態様における信号生成器100は、スピン生成ハードウェア300、レーザ302、アナログ加算ハードウェア322、スプリッタ326および変調器304のすべてを含む。同様に、図1を参照して上述した相互作用ロジック104は、波長選択スイッチに実装されたベクトルごとの乗算器と、フィードバック信号の加算および増幅を実行するアナログハードウェアコンポーネントの両方を含む。他の実施形態は、例えば、光検出器および変調器を含む、光またはアナログ信号に対する演算を実行するためのさらなるハードウェアを含み得る。
【0067】
[0071]各チャネルiは、そのチャネルの信号の更新を並列に計算するハードウェアで実装される。更新は、例えば、M回の反復の所定の停止点の後にシステムが停止されるまで継続される。あるいは、信号を定期的に測定し、その後の測定で変化が見られない場合にシステムを停止することもできる。近似解は、システムが安定したとき、すなわち、生成された信号によってモデル化された変数の集合が、ある反復から次の反復まで一定のままであるときに発見される。この安定した信号の集合は、与えられたイジング問題の解を近似するN個の変数の割り当てに直接マッピングすることができる。
【0068】
[0072]図2に示す例示的な実施形態は、空間分割多重アーキテクチャ(すなわち、各変数が別々のハードウェアで生成される)を使用し、二値変数は信号振幅に符号化され、VVMは複数の並列ハードウェアチャネルの各々において波長選択スイッチによって実装される。しかし、代替の実施形態では、位相または周波数など、信号の異なる測定可能な特性を使用して変数をモデル化することができ、リング共振器、マッハツェンダー干渉計、またはメモリスタを使用して実装された電子VVMなど、他のタイプのVVMを使用することもできる。また、時分割多重信号を結合するために遅延線を使用して、空間分割の代わりに時分割を使用することも可能である。
【0069】
[0073]図3は、スピン生成ハードウェア構成要素300の一例の概略ブロック図である。指定波長の連続波レーザなどの光源400は、光信号を生成するために使用され、光信号はスピンを生成するためにスピン生成変調器402に渡される。前の反復で生成された信号に基づく電気フィードバック信号も、相互作用ロジック104のVVM315から変調器402に受け取られる。変調器402は、電気フィードバック信号に従って光源400からの光信号を変調する。変調器402は、マッハツェンダー変調器であってもよく、干渉される入力信号をそれ自体で分割する。フィードバック信号に対応する値は、変調器によってアームの1つ内に設定され、変調器402の出力は、干渉電界の同相成分、言い換えれば、フィードバック信号に適用される式1のcos()関数であり、光検出器404で光強度として検出されるとcos()となる。信号生成光検出器404での検出は、得られた信号をアナログ領域に戻す。光検出器404を用いて光強度を直接検出する場合、信号は常に正であり、cos()関数によって与えられる[0,1]の範囲内にある。方程式の加法項、すなわち式1の-1/2項を表す適応DC項406は、イジング変数を適切にモデル化するために、信号の範囲を[-1/2,1/2]に変換するために正信号に加えられることがある。次に、出力信号は、図2を参照して上述したように、他のチャネルのVVMに入力されるモデリング信号xを生成するためにスプリッタ306に渡される。
【0070】
[0074]図3に示す例のソルバの各反復の間、信号は光領域からアナログ領域へ、およびその逆へ2回変換される。図3に示すように、フィードバック信号は最初に信号生成器300によって光信号に変換され、次に光検出器で検出されてアナログ信号に戻される。変調器は、アナログ領域から光領域に信号を変換して光信号相互作用ロジックで処理するために光源とともに使用され、光検出器は相互作用ロジックの出力信号を光領域からアナログ領域に戻すために使用される。
【0071】
[0075]図4は、N個のハードウェアチャネルを含む、上述した図2に示される例示的なソルバにおける1つのチャネルについての、光領域とアナログ領域との間の信号の変換の概略ブロック図である。図3を参照して上述したスピン生成コンポーネント300は、図4において「信号1」と示される電気信号を出力する。本例のソルバでは、信号相互作用ロジックは、光信号に作用する、例えば波長選択スイッチの形態の光ベクトルごとの乗算器314を含む。しかしながら、上述したように、任意の所与のチャネルの相互作用ロジックは、複数のチャネルのためのフィードバック信号のベクトルを発生するためのベクトル行列乗算を実装する全体的な信号相互作用ハードウェアの一部を含み得る。このアーキテクチャの一例を、図9を参照して以下に詳細に説明する。最初のアナログ光信号変換500は、光信号を信号間相互作用ロジック502に渡すために信号が生成された後に発生する。ベクトルごとの乗算結果は、光検出器308での検出によって評価され、図2に示すように、信号が光領域に変換され、さらなる算術演算がアナログ領域で実行される。
【0072】
[0076]図4の信号間相互作用ロジック502は、光VVM演算と電気フィードバック信号への変換の両方を含む。出力された電気的フィードバック信号は、次に第2のアナログ光信号変換504に渡され、ここで電気的フィードバック信号は変調器によって光信号に戻される。図3図4では、これはスピン生成ハードウェア300内で発生し、スピン生成光源400と変調器402が電気フィードバック信号を光信号に変換する。図4の信号生成506は、図3で説明した完全な信号生成プロセスではなく、信号を光領域からアナログ領域に変換する信号生成ハードウェア300によって生成された信号の検出のみに対応する。
【0073】
[0077]上述した例示的な実施形態では、信号相互作用ロジック504のベクトルごとの乗算動作は、例えば、後述する波長選択スイッチによって、光領域で実装されることに留意されたい。しかしながら、他の実施形態では、信号相互作用はアナログ電子領域で実施されてもよい。同様に、いくつかの実施形態では、信号の加算のような他の算術演算は、アナログ電子領域ではなく光学領域で実行されてもよい。したがって、図4に示すプロセスは、図2に示すソルバを実装するために使用される特定のハードウェア構成に固有のものである。
【0074】
[0078]上述したように、本明細書で説明するアーキテクチャの利点は、「空間分割」多重化アーキテクチャを使用することであり、これは、N個の変数のシステムが、各変数に対して別々のハードウェアを使用してモデル化されることを意味する。対照的に、いくつかの最先端のソルバは、時分割多重化アーキテクチャを使用する。図5Aは、時分割多重化を使用するアーキテクチャの例を示している。時分割多重化アーキテクチャは、システムのすべての変数を表す信号を生成するための1組の信号生成ハードウェア510aと、信号相互作用ロジックを実装する1つのハードウェアと、を使用する。信号生成ハードウェア512aは、時間間隔で信号を生成し、相互作用ロジックは、相互作用ハードウェアで異なる時間に受信された信号に遅延を適用することにより、時間分割された信号の相互作用を可能にする。ソルバの時間的複雑性は、モデル化される変数の数によって線形に増加するので、このアーキテクチャは、より大きなシステムに対してより遅い。
【0075】
[0079]対照的に、図5Bに示す空間分割多重化アーキテクチャは、各変数に対して個別の信号生成器510bを含み、すべての信号は信号相互作用ハードウェア512bで相互作用する。別個の物理的生成により、すべての信号を同時に生成することができ、システムは、反復ごとに準一定の時間を維持しながら、より多くのハードウェアを追加するだけで、多数の変数にスケールアップすることができる。図5Bの完全ソルバシステム用の信号相互作用ロジックハードウェア512bは、単純化のために単一のブロックとして示されているが、相互作用ロジックは、代替的に、上述された図2に示されるように、各チャネル用の別個のハードウェアVVMを含むように実装されてもよい。
直接検出
[0080]図4を参照して説明したように、実施形態では、信号は、ソルバの動作中に光領域とアナログ領域との間で変換される。例えば、式1を表す電気フィードバック信号は、光検出器で検出することによって完全な式を評価する前に、cos()関数を適用するマッハツェンダー変調器を使用して光領域に変換される場合がある。光強度の直接検出は、信号の2乗を測定するので正のみである。しかし、本明細書でイジング変数をモデル化する信号のように、正または負の値を取る信号を扱う場合、アナログ電子領域と光学領域との間の変換は、信号の符号情報を保持する必要があり、または、信号が例えば正の値に制限されるような変換は、関連する領域での後続の操作によって修正されるべきである。「実数値」は、本明細書では、複素平面の実軸に沿った値を有する光信号、すなわち、正または負の実数値を取り得る信号を指すために使用され得る。
【0076】
[0081]正負の値の検出を可能にする1つの可能な検出方式は、コヒーレント検出であり、これは、正または負のいずれかである受信光信号の振幅および位相情報を測定する。しかし、コヒーレント検出の欠点は、光強度の直接検出よりも実装が複雑であることである。コヒーレント検出方式は多くの場合、デジタル信号処理を必要とする。コヒーレント検出を実行するためにデジタル領域に変換し直すと、信号の伝送速度など、光領域およびアナログ電子領域で信号を処理する利点の一部が失われるか、または低下する。
【0077】
[0082]別の検出方法では、コヒーレント検出のようなシステムの複雑さを必要としない直接検出、すなわち光強度の検出が使用される。直接検出は、アナログ電子領域で正のみの信号を測定し、これは、その後、信号の範囲を正または負の値を許容するように補正する適応項を加算または減算することによって、アナログ電子領域でオフセットされ得る。これは「差動検出」とも呼ばれ得る。同様の検出方式は、実数値である二値位相シフトキーイング信号を検出するために電気通信で使用される。
【0078】
[0083]この直接検出方式の概略図を図6に示すが、これは光ベクトル乗算器の出力のような実数値の光信号を検出するためのものである。これを、上述した図2のソルバの適用例について説明する。正または負の値を取り得る実信号700、例えば式1を表すためにスピン生成器300によってチャネルiで生成されたモデリング信号x([-1/2、+1/2]の範囲の値を取り得る)は、例えば変調器304によって、少なくとも1つのアナログ光変換によって最初に光領域に変換される。チャネルのモデリング信号および他のチャネルから受信したモデリング信号に対して光ベクトルごとの乗算が実行され、入力ベクトルにチャネルiの相互作用に対応する関連する重みが乗算され、入力信号の重み付き和を表すチャネルの光信号が出力される。
【0079】
[0084]この信号は、光検出器308で検出することによりアナログ信号に変換される。しかし、光検出器404は光強度を測定するため、検出される信号は正の値のみに制限され、負の値を持つことはできない。これを修正するために、VVM動作の出力信号は、図2に312として示されているDCオフセット項を追加することによって、正または負の値を許容するように補正される。このDCオフセット項は各スピンに固有であり、システムの初期化時に評価および設定される。
【0080】
[0085]これにより、アナログ領域で信号を調整することにより、ソルバが必要とする正と負の信号の測定が可能になる。この差動検出方式はコヒーレントなものよりも単純であり、信号を光領域からアナログ電子領域に直接変換するために簡単に実装することができる。しかし、VVM出力では、与えられた入力信号の波長が異なる場合、すべての信号の経路長が一致するように注意を払う必要がある。信号のインコヒーレントな加算については、波長選択スイッチの動作との関連で以下に詳しく説明する。
【0081】
[0086]この差動検出方式は、本ソルバアーキテクチャに関連して上述されているが、適応オフセット項を有する直接検出は、実の正および負の値を取る光ベクトルごとの乗算演算が実装され得る任意のアプリケーションに使用され得る。例えば、これは、入力ベクトルがネットワーク重みによって乗算され得るディープニューラルネットワークのような機械学習アプリケーションにおいて使用され得る。この差動検出方式は、以下に詳述する空間光変調器(SLM)、リング共振器、または波長選択スイッチなど、様々なタイプの光VVMを使用するアプリケーションに適用することができる。この差動検出方法は、光領域で演算を行うことができるため、デジタル演算に比べて大幅な高速化を実現できる一方、コヒーレント検出方式の難しい実装を必要とせずに、所望の範囲の実数値信号をモデル化できるという利点がある。このような差動検出方式は、波長選択スイッチまたはリング共振器VVMのように、OVMの入力信号に異なる波長が使用される場合、システムの位相感度を必要とせずに実装することができる。
【0082】
[0087]図6Aは、差動検出方式の概略ブロック図であり、一定のアナログ電子DC項712が光検出器によって検出された信号に加えられる。光信号は光検出器710で受信され、この光検出器は、上述したように、実光信号700を正の値のみを取り得るアナログ信号704に変換する。別個のアナログ定数DC項712が、図6に示される減算器708の可能な実装である微分器714において正のアナログ信号から減算される。アナログDC項712は、図6Bを参照して後述するように、1つまたは複数のアナログ電子部品を使用して、または光信号を使用して生成することができる。アナログ微分器は、電子工学の技術分野において周知であり、本明細書ではこれ以上説明しない。微分器の出力は、正のみの信号704から一定のDC項を減算することによって得られる実アナログ信号718であり、これにより、アナログ信号は、正または負の値を取り得る所望の範囲に入る。前述したように、各DC項は光検出器に固有であり、システムが初期化されるときに評価され、設定されてもよい。DC項は、等価的に、正のアナログ信号704に加算される負の値のアナログ信号として、または正のアナログ信号704から減算される正の信号として見ることができることに留意されたい。
【0083】
[0088]図6Bは、光オフセット差動検出方式の概略ブロック図であり、この方式では、任意の2つの光信号720a、720bが一対の光検出器722a、722bで検出され、アナログ微分器726を使用して、それぞれの検出器722a、722bで生成された電気信号724a、724bの間で差が取られ得る。これは既知の検出構成であり、上述の差動検出方法を実施するために使用されてもよく、実数値信号、例えば光VVMの出力が第1の光信号720aに符号化され、定数値が第2のオフセット光信号720bに符号化され、これは定数値によって変調された別個の光源によって提供されてもよい。各信号は、正の値のみを取るアナログ電子信号724a、724bに変換されてもよい。これらは、評価すべき実数値信号を検出して得られたアナログ信号1から一定のオフセットアナログ信号2を減算する微分器726で結合される。この差動検出方式の効果は、図6Aの差動検出と同じであり、この場合、DCオフセット項は、一定の光信号720bの検出によって得られる。ただし、この差動検出の実施では、アナログ電子部品を使用してアナログDCオフセット信号を直接生成する代わりに、第2の光オフセット信号を生成する必要がある。
【0084】
[0089]説明した実施形態では、ソルバは、イジング問題に容易にマッピングされるQUBO問題を解く方法として、イジング変数を表す正負の「スピン」信号、例えば-1/1の形でxおよび対応するフィードバック信号をモデル化することに留意されたい。フィードバック信号の符号は、ハミルトニアンのエネルギーを減少させるためにモデリング信号xを駆動する方向を表す。しかし、他の実施形態では、純粋に正の信号を使用することを排除するものではない。代わりに、行列Jは、正および負の重みを含み得る。このような実施形態では、DCオフセット310、320は必ずしも必要ではない。例えば、QUBO変数1/0を直接モデル化してもよい。この場合、直接検出によって生成された正信号を補正する必要はない場合がある。
光VVM用波長選択スイッチ
[0090]上述のように、各チャネルは、相互作用ロジック104の一部として、それぞれのベクトルごとの乗算器を実装することができる。様々な可能なベクトルごとの乗算器構成が、本明細書に開示されるソルバアーキテクチャとともに使用され得る。一部のVVMは、空間光変調器、リング共振器、マッハツェンダー干渉計など、完全に光学領域で実装されてもよい。他のVVMは、例えば、電気信号の重み付き和を計算するためにメモリスタを使用するなど、アナログ電子領域で実装されてもよい。
【0085】
[0091]本明細書で開示されるソルバアーキテクチャのいくつかの実施形態で使用するために本明細書で開示される光VVM(OVVM)の一例は、波長選択スイッチである。(WSS)である。WSSは、電気通信アプリケーションで使用され、すべての信号が同じ電力で伝送されることを保証するために、異なる波長の信号が独立して最適化されることを可能にし、また、異なる波長の信号が単一の光ファイバ内で一緒に結合されることを可能にし、またはその逆に、伝送ノードにおける加算機能またはドロップ機能のために結合されることを可能にする。
【0086】
[0092]光ベクトル乗算のためのWSSの実装は、WSSが個々の波長を減衰させる(重くする)ので積関数をエミュレートする能力を有し、異なる波長を単一のファイバに結合する能力によって達成される加算関数が、その後少なくとも1つの光検出器によって検出されるという事実に基づいている。
【0087】
[0093]図7は、光信号に一定の係数(重み)を乗算する原理を示す概略ブロック図である。図7の例では、光源802a、802bから2つの別個の光信号が供給される。これらの信号のパワーまたは強度は、入射光の強度に依存する電気信号を生成する光検出器806で測定することができる。したがって、光信号によって符号化された値の乗算は、減衰器または損失誘発コンポーネント804a、804bを適用することによって実施することができ、減衰器または損失誘発コンポーネント804a、804bはそれぞれ、設定可能な定数係数によってそれぞれの光信号の強度を低下させる、つまり、光検出器またはカメラ806で検出されたときの得られるアナログ信号は、入力信号に適用される「重み」と解釈され得る、適用される減衰器の損失係数でスケーリングされる。2つの別々の光信号が同じ波長を共有する場合、光検出器でのそれらの加算はコヒーレント(すなわち、2つの光信号は電界で加算される)になるが、2つの別々の光信号が異なる波長を持ち、その差が光検出器の帯域幅よりもはるかに大きい場合、光検出器でのそれらの加算はインコヒーレント(すなわち、2つの光信号は電力で加算される)になる。
【0088】
[0094]ベクトル行列の乗算は、以下の形式の一連のベクトルごとの積に分解することができる:
【0089】
【数9】
[0095]出力ベクトルoの各要素は、入力ベクトルyに適用される重み行列Wのi番目の行の要素の和である。
【0090】
[0096]図7の構成は、入力ベクトルを表す入力信号の集合に減衰器804a、804bを適用することによって、光ベクトルごとの乗算の重み付き和を実装するために使用することができ、減衰器は、重み行列の適切な要素に対応するように設定される。重み付けされた入力の合計は、光信号のコヒーレントまたはインコヒーレントな加算を実行できるカメラまたは他の検出システム806で信号を結合することによって実行される。コヒーレント加算は、光信号が同じ波長を共有する場合に必要であるが、正しい出力信号を計算するためには、すべての信号を正確に位相整合させる必要がある。これは光波長では難しい。インコヒーレント加算の場合、光検出器は、入力信号が、所定の検出器の帯域幅によって与えられる許容範囲内で、同じ経路長を有することを必要とする。光検出器での直接検出によるインコヒーレント加算では、入力光信号の合計パワーまたは強度が計算される。これについては、波長選択スイッチにおけるインコヒーレント検出について後述するが、この場合、加算されるそれぞれの信号は異なる波長である。
【0091】
[0097]次に、上記の原理に基づいてベクトルごとの乗算またはベクトル行列乗算を実行する波長選択スイッチの動作を、図8を参照して説明する。
【0092】
[0098]入力ベクトルvは、異なる波長の光信号800の集合によって表され、これは、例えば、図2に示され上述されたようなソルバのN個のチャネルから受信されたモデリング信号{x,...,x}の集合である。入力ベクトル用の別個の光信号800を運ぶ入力ファイバ808は、図8の右下に示されている。
【0093】
[0099]注:図示を簡単にするために、ソルバの1つのチャネル102のみのファイバ808、818が図8に示されている。しかしながら、このようなソルバにおいてWSSが適用される実施形態では、各チャネル102に対してファイバ808、818の別個のセットが存在し得る。入力ファイバの各セットは、所定のチャネル100のスプリッタ106からの入力に対応する。出力ファイバ818は、それぞれのベクトルごとの乗算器の出力を提供する(したがって、全体としてベクトル行列乗算を実行する)。この場合、SLM810の要素の異なる対応する部分集合は、異なるチャネルの相互作用ロジック104を実装する。実施形態では、これらの要素は、SLM810の同じ物理的プレート(例えば、同じガラス片またはプラスチック片)上の異なる位置の異なる画素として実装することができる。
【0094】
[00100]重み行列Qの対応する要素は、空間光変調器(SLM)810に実装され、その一例は、シリコン上の液晶空間光変調器(LCoS-SLM)であり、上述したように、各入力光信号800を特定の係数で変調する。この場合、信号は入力の波長に依存する係数で変調され、SLM810の各列は異なる入射波長に対応する。入力信号808は、各信号がそれぞれの波長に対して正しい水平位置でSLMに到達するようにレンズを通る。
【0095】
[00101]所与のチャネルの出力信号は、変調された光信号を光検出器820で検出することによって取得され、単一ビーム818に結合され、その後光検出器820で検出される。各々が異なる波長を有する様々な光信号を光検出器820で単一のビームに結合することは、波長分割多重(WDM)と呼ばれることがある。これは、1つまたは複数のレンズ816および/または分散素子814(例えば、プリズムまたは回折格子などの回折素子)の配置によって促進され、一方、SLMは、各個々の波長に対する独立した重みを保証する。
【0096】
[00102]光検出器820は、異なる波長の様々な構成の光信号のインコヒーレント加算を実行する。インコヒーレント検出が構成信号の強度の和を計算するためには、結合されるそれぞれの信号の周波数の差が光検出器の周波数帯域幅よりもはるかに大きいことが保証されなければならず、これは、光検出器が信号間の相互作用から交差項を検出しないことを意味する。異なる波長の信号をインコヒーレント検出する場合、信号の位相を合わせる必要はない。これとは対照的に、同じ波長の光源を入力とするVVMアーキテクチャを使用する場合は、検出器でコヒーレント加算を実行する必要があり、すべての信号が位相整合されている必要があるという困難な要件がある。
【0097】
[00103]図8に示すものと同様のアーキテクチャは、電気通信アプリケーション用の波長選択スイッチデバイスを構築するために知られており、通常、逆方向に実行され、入力は単一の光ファイバであり、出力は異なる光ファイバ内の異なる波長の光信号の集合である。そのシナリオでは、波長選択スイッチは、特定の伝送ノードで特定の波長を追加またはドロップするために使用されるだけでなく、信号が伝送スペクトル全体で平坦であることを保証する。
光ベクトル行列乗算のための拡張WSSアーキテクチャ
[00104]上述のように、本明細書で説明するイジング問題のためのソルバは、2つのアーキテクチャのうちの1つで実装することができる。第1では、図2に示すように、信号相互作用ロジック104は、波長スイッチのような別個のベクトル行列乗算器314として実装され、重み行列Jの1行によって与えられる重みのベクトルによって入力ベクトルを乗算するために上述のように動作する。各チャネルによって生成された信号は、1対Nスプリッタによって、他のすべてのチャネルでベクトルごとの乗算器に向けられる。
【0098】
[00105]しかし、第2のアーキテクチャでは、グローバルなベクトル行列乗算器(VMM)が実装されてもよく、ソルバのチャネルはそれぞれ、入力ベクトルを形成するために、そのモデリング信号xをVMMに提供し、完全な行列はこのVMMに実装される。図1に示すソルバアーキテクチャはこのアーキテクチャに対応し、各チャネルの相互作用ロジック104は、各チャネルの個別の乗算器ではなく、グローバルベクトル行列乗算器の要素のそれぞれの部分集合(図示の例では行など)によって少なくとも部分的に実装される。実施形態では、これらの要素は、異なるピクセル位置で同じSLMプレート(例えば、ガラスまたはプラスチックの同じ部分)に統合されてもよい。
【0099】
[00106]次に、WSSベクトルごとの乗算器のアーキテクチャを拡張してベクトル行列演算を実行するWSSアーキテクチャの例を説明する。このアーキテクチャは、上述のベクトルごとのWSSよりも多くのスピンを同時に処理できるという利点がある。
【0100】
[00107]図9は、第2のソルバアーキテクチャを実装するために使用され得る、ベクトル行列乗算を計算するための波長選択スイッチ構成例を示す図である。この波長選択スイッチは、異なる波長の信号の集合を生成する光源の入力アレイ908と、レンズレットアレイ900と、修正SLM902と、分散素子814(例えば回折素子)と、図9には示されていないが光検出器のアレイで検出される光信号の出力アレイと、を含む。
【0101】
[00108]この例のソルバアーキテクチャにおいてベクトル行列乗算に空間光変調器を使用するには、ベクトル行列乗算の全機能が達成されるように、SLMの垂直軸は、同じ波長であっても異なる重みを提供する必要がある。これは、行列乗算の場合、完全な出力ベクトルを生成するために、入力ベクトルを行列Qの各行と乗算する必要があるためである。SLM908は、図8に示すものの修正バージョンであり、変調器のアレイがアレイ状に配列され、各変調器によって適用される損失は、入力に適用される行列の重みを反映する、すなわち、修正SLMの行は、行列Jの行の重みを符号化する。上述したように、各チャネルは、入力信号と行列Jの単一行とのベクトル乗算を含む出力を計算する。したがって、入力信号の各々は、一連のベクトルごとの乗算に対応するSLM902の各行に当たるように、垂直方向に広がるように処理される必要がある。
【0102】
[00109]グローバルVMMを有する例示的なソルバアーキテクチャでは、単一の入力アレイ908が、各チャネルで生成されたモデリング信号xを含む。このベクトルは、信号の波長に対応するSLM902の水平方向にビームをコリメートしながら、信号を垂直方向に広げる特定の形状を有するレンズレットアレイ900に通される。これにより、異なる波長のより多くの入力信号を単一のSLMで処理することができる。図8のような単一レンズから図9のようなレンズレットアレイに移行することで、より多くの波長へのスケーリングが可能になる。レンズレットアレイは、両方向のビームのコリメーション特性を改善する。
【0103】
[00110]図9のアーキテクチャでは、図2の1からNスプリッタ106は、各々が異なるチャネルのスピン相互作用項に対応するSLMの行にわたる入力信号の垂直拡散によって実装されることに留意されたい。
【0104】
[00111]SLM902は、変調器の2Dアレイを含み、アレイの各要素は、受信した入力信号にそれぞれの重みを適用し、これは、図8のベクトルごとの乗算器について説明したSLMとは対照的に、同じ「列」にあるが異なる垂直位置の要素が異なる値を有することを必要としない。特定の波長で、しかし異なる重みで変調された各重み付け信号、すなわちSLM902の列の各信号は、WDM信号の組合せが光検出器アレイ904内の正しい光検出器で発生することを保証するために、異なる垂直位置で分散素子814から跳ね返る必要がある。分散素子は、回折格子またはプリズムなどの回折素子として実装することができる。
【0105】
[00112]実施形態では、出力信号は、そのビームによって表される出力ベクトル要素に対応する光検出器においてインコヒーレント加算を使用して検出されるように、信号を正しい垂直高さのビームに向けるために、1つまたは複数のレンズを介して要素814から向けられてもよい。例えば、分散素子814とシステムの末端の複数のチャネル(潜在的にファイバ)との間に別のレンズレットアレイを含めることもできる。
【0106】
[00113]光検出器アレイ904は、垂直アレイの光検出器の集合として配置され、分散素子814から向けられた各結合信号は、異なるチャネルの出力信号に対応する。
【0107】
[00114]上述したベクトル行列乗算器アーキテクチャを使用するソルバは、入力をコリメートするためにレンズレットアレイを使用する一方で、図9に示すような単一のハードウェア配置を使用して、すべてのチャネルに対するスピンの相互作用の同時処理を可能にする。これは、各ビームを複数のSLM902の構成に向けられる複数のビームに分割することによって、さらに多数の入力を可能にするようにさらに拡大することができる。
【0108】
[00115]波長分割多重を使用しない空間光変調器、リング共振器、およびマッハツェンダー干渉計など、多くの既存技術によって光ベクトル乗算も実装されている。このような技術は、例えば、K.Kitayamaらによる、「Novel frontier of photonics for data processing-Photonic accelerator(データ処理のためのフォトニクスの新たなフロンティア-フォトニックアクセラレータ)」、APL Photonics 2019、https://doi.org/10.1063/1.5108912に詳細に記載されており、参照によりその全体が本明細書に組み込まれる。波長選択スイッチの実装は、SLMの空間変調とリング共振器の波長分割を組み合わせたものであるが、リング共振器の実装では、入力信号を一連のリング共振器に通す必要があるのに対し、SLMでは、各信号を1つの変調器に通すだけでよく、システム損失の点で有利である。SLM VMM実装では、波長分割は行わず、代わりに、単一の光源を使用し、光検出器でのコヒーレント加算を用いて出力アレイの各要素の重み付き和を計算する。波長選択スイッチは、これら両方の技術の利点を兼ね備えている。
【0109】
[00116]波長選択スイッチに関する上記の説明は、本明細書で説明するようなソルバアーキテクチャにおける実装に言及している。しかしながら、ベクトル行列乗算は、特に機械学習において、例えばニューラルネットワークの重みを入力ベクトルに適用するなど、多くの用途がある。本明細書で説明する波長選択スイッチは、このような用途に使用することができる。同様に、波長選択スイッチVMMは、図5Aに示される時分割多重アーキテクチャなどの他のソルバアーキテクチャに適用されてもよい。
【0110】
[00117]本明細書に開示された技術は、広範囲のアプリケーションに適用することができ、特に、本明細書に開示されたソルバの実装は、イジング定式化への既知の変換が存在する任意のNP困難問題を解くために使用することができる。そのような問題のよく知られた例は、巡回セールスマン問題である。これは、他の分野の問題、例えば、分子の類似性を決定する問題にも使用することができ、分子のグラフ表現のグラフ類似性問題のQUBO定式化への変換を見出す作業が行われている。この研究は、Hernandez,Maritzaらの「A quantum-inspired method for three-dimensional ligand-based virtual screening(3次元リガンドに基づく仮想スクリーニングのための量子的手法)」に記載されている。Journal of Chemical Information and Modeling 59.10(2019):4475-4485
[00118]上記の実施形態は、例として説明されたことが理解されよう。開示された技術の他の変形および適用は、本明細書における概念の開示が与えられれば、当業者には明らかになるであろう。
【0111】
[00119]より一般的には、本明細書に開示される第1の態様によれば、光学系を使用してベクトル乗算を実行するためのシステムが提供される。システムは、1つまたは複数のチャネルを含み、各チャネルは、それぞれの光信号を生成するように配置されたそれぞれの光信号生成器と、それぞれの光信号を含む光信号のベクトルを受信し、光領域における重みのそれぞれのベクトルによって乗算するように配置されたそれぞれの光ベクトル乗算器であって、各光信号は、変数のベクトルからのそれぞれの変数の値をモデル化する変調された振幅を有し、重みは、変数間の相互作用をモデル化する、それぞれの光ベクトル乗算器と、インコヒーレント検出によってそれぞれの光ベクトル乗算器の結果の出力の強度を検出し、それによって正の値のみを取り得るスケールで変調されたアナログ強度信号を生成するように配置されたそれぞれの光検出器と、正および負の値を有するスケールで変調されたアナログ電子信号の形でそれぞれの出力信号を発生するために、アナログ強度信号からそれぞれのDCオフセット信号を減算するように構成されたそれぞれの微分器と、を含む。
【0112】
[00120]実施形態において、変数は二値である。
【0113】
[00121]実施形態において、各チャネルの光ベクトル乗算器は、空間光変調器、波長選択スイッチ、リング共振器、またはマッハツェンダー干渉計、のうちの1つを含む。
【0114】
[00122]実施形態において、少なくとも1つのチャネルの光ベクトル乗算器は、波長選択スイッチを含む。
【0115】
[00123]実施形態において、各チャネルは、それぞれのオフセット光信号を生成するように構成されたそれぞれのオフセット光生成器と、それぞれのオフセット光検出器と、を含み、DCオフセット信号は、オフセット光検出器によってオフセット光信号の強度を検出することによって生成される。
【0116】
[00124]実施形態において、各チャネルにおいて、それぞれの光信号生成器は、それぞれの変数を表すアナログ電子信号の形でそれぞれのスピン信号を生成するように配置されたそれぞれのスピン生成器と、それぞれのアナログ信号に基づいて光信号の振幅を変調するように配置された変調器とを含み、それぞれのスピン信号は、それぞれの変数を表すために正と負のレベルの間のスケールで変化するが、光信号の振幅は正のみであり、変調器は、スピン信号の正と負のレベルを光信号の正の振幅に変換するように構成される。
【0117】
[00125]実施形態において、各チャネルのそれぞれのスピン生成器は、さらなる光源と、それぞれのフィードバック信号に応じてさらなる光源からの光を変調するように配置されたさらなる変調器と、さらなる変調器からの変調された光を検出し、それに応じてスピン信号を生成するように配置されたさらなる光検出器と、を含む。
【0118】
[00126]実施形態において、各チャネルは、それぞれの出力信号に基づいてそれぞれのフィードバック信号をそれぞれの光信号生成器に戻すように配置されたそれぞれのフィードバック経路を含み、それぞれの光信号生成器は、フィードバック信号に応じてそれぞれの光信号を適応させるように構成される。
【0119】
[00127]実施形態において、各チャネルにおいて、それぞれのフィードバック経路は、それぞれの光信号生成器に戻る前にそれぞれのフィードバック信号を発生するために、それぞれの出力信号にそれぞれのノイズ成分を加えるように配置される。
【0120】
[00128]実施形態において、システムは、関数を最適化する変数のベクトルの値を推定するように配置され、関数は、複数の項の重み付き和を含み、各項は、ベクトルからの変数の対応する部分集合の積を含み、各項は、変数間の相互作用をモデル化する重みの行列からの対応する重みによって重み付けされ、各チャネルの重みのそれぞれのベクトルは、重みの行列からの重みのそれぞれのベクトルを含み、それぞれの変数と変数のベクトルとの間の相互作用を表す。
【0121】
[00129]実施形態において、各チャネルのそれぞれの光信号生成器は、
【0122】
【数10】
に従って適応を反復的に実行するように構成される。
【0123】
[00130]xはチャネルiのスピン信号であり、kは反復のインデックスであり、αおよびβは係数であり、Jは重みの行列であり、ζは請求項9に従属する場合ノイズ成分である。
【0124】
[00131]実施形態において、システムは、複数のチャネルを含み、各チャネルのそれぞれの光信号生成器によって生成されるそれぞれの光信号の振幅は、変数のベクトルからの変数の異なるそれぞれの1つの値をモデル化するために変調され、各チャネルは、それぞれの光信号のインスタンスを複数のチャネルのそれぞれに供給するように配置されたそれぞれのスプリッタをさらに含み、各チャネルの光ベクトル乗算器は、それぞれのベクトル乗算を実行するために、光信号のベクトルを受信する。
【0125】
[00132]実施形態において、システムは、光信号生成器が時分割多重によって複数の光信号を同一の光ビームに多重化するように構成された単一のチャネルを含み、光ベクトル乗算器は、ベクトルの光信号を時間的に重なるように異なる経路長だけ遅延させる遅延線の配列と、遅延された光信号に基づいてベクトル乗算を実行するように配置された少なくとも1つのさらなる光学素子と、を含む。
【0126】
[00133]実施形態において、各チャネルは、ニューラルネットワークのノードまたはレイヤを表すために使用される。
【0127】
[00134]本明細書に開示される別の態様によれば、光学系を使用してベクトル乗算を実行する方法が提供され、この方法は、チャネルの集合の各々について、それぞれの光信号を生成するステップと、それぞれの光ベクトル乗算器で、それぞれの光信号を含む光信号のベクトルを受信するステップと、光信号のベクトルに、光領域における重みのそれぞれのベクトルを乗算するステップであって、各光信号は、変数のベクトルからのそれぞれの変数の値をモデル化する変調された振幅を有し、重みは、変数間の相互作用をモデル化する、ステップと、それぞれの光検出器において、インコヒーレント検出によって、それぞれの光ベクトル乗算器の結果の出力の強度を検出し、それによって、正の値のみを取り得るスケールで変調されたアナログ強度信号を生成するステップと、それぞれの微分器において、正および負の値を有するスケールで変調されたアナログ電子信号の形でそれぞれの出力信号を発生するために、アナログ強度信号からそれぞれのDCオフセット信号を減算するステップと、を含む。
【0128】
[00135]実施形態において、本方法は、本明細書に開示されたシステムの特徴のいずれかに従ったステップをさらに含み得る。
図1
図2
図3
図4
図5A
図5B
図6
図6A
図6B
図7
図8
図9
【国際調査報告】