(57)【要約】【課題】光ニューラルネットワークにおけるフォワードプロパゲーションによる学習を実現する。【解決手段】光偏微分演算装置は、波長依存性を有する光デバイスによって構成された光演算器２と、演算後の波長多重光信号を受光し、光演算器２の演算結果を示す信号を得ると共に、損失関数の偏微分値を示す信号を得る微分演算部３を備える。微分演算部３は、光演算器２から出力された波長多重光信号のうち第１の光信号を受光して演算結果を示す電気信号を得る受光器３０−２と、波長多重光信号のうち第１の光信号と異なる波長の第２の光信号を受光する受光器３０−１と、受光器３０−１と電流の向きが逆になるように接続され、波長多重光信号のうち第１、第２の光信号と異なる波長の第３の光信号を受光する受光器３０−３と、受光器３０−１，３０−３の接続点に接続された抵抗３１を備える。【選択図】  図１
2020079980.tif 000002
【特許請求の範囲】
【請求項１】
出力光強度・位相の波長依存性を有する光デバイスによって構成され、入力された波長多重光信号に対する演算を行う光演算器と、
この光演算器による演算後の波長多重光信号を受光し、前記光演算器の演算結果を示す電気信号を得ると共に、前記光演算器の演算結果の誤差の指標となる損失関数の偏微分値を示す電気信号を得る微分演算部とを備え、
前記微分演算部は、
前記光演算器から出力された波長多重光信号のうち第１の光信号を受光して、前記光演算器の演算結果を示す電気信号を得る第１の受光器と、
前記光演算器から出力された波長多重光信号のうち前記第１の光信号と異なる波長の第２の光信号を受光する第２の受光器と、
この第２の受光器と出力電流の向きが逆になるように接続され、前記光演算器から出力された波長多重光信号のうち前記第１、第２の光信号と異なる波長の第３の光信号を受光する第３の受光器と、
前記第２、第３の受光器の接続点に接続された抵抗とを備え、
前記抵抗の両端電圧が、前記損失関数の偏微分値を示すことを特徴とする光偏微分演算装置。
【請求項２】
請求項１記載の光偏微分演算装置において、
前記微分演算部は、
さらに、共鳴波長が前記第１の光信号の波長に設定され、前記光演算器から出力された波長多重光信号から前記第１の光信号を取り出して前記第１の受光器に入力する第１のリング共振器と、
共鳴波長が前記第２の光信号の波長に設定され、前記光演算器から出力された波長多重光信号から前記第２の光信号を取り出して前記第２の受光器に入力する第２のリング共振器と、
共鳴波長が前記第３の光信号の波長に設定され、前記光演算器から出力された波長多重光信号から前記第３の光信号を取り出して前記第３の受光器に入力する第３のリング共振器とを備えることを特徴とする光偏微分演算装置。
【請求項３】
請求項１または２記載の光偏微分演算装置と、
前記光偏微分演算装置の光演算器に設定される重みを、光ニューラルネットワークの学習時に前記損失関数の偏微分値に基づいて、前記損失関数が０に近づくように更新するパラメータ更新部とを備え、
前記光演算器は、
この光演算器に入力された波長多重光信号が示す入力値と前記重みの積和演算を行うマッハツェンダー干渉計からなるベクトル行列積演算部と、
前記学習時に前記ベクトル行列積演算部から出力された波長多重光信号が示す推論値と前記学習時に光演算器に入力される光信号が示す正解値との差分を演算し、光ニューラルネットワークによって推論を行うときには前記ベクトル行列積演算部から出力された波長多重光信号をそのまま出力する差分演算部とから構成されることを特徴とする光ニューラルネットワーク。
【請求項４】
請求項３記載の光ニューラルネットワークにおいて、
前記ベクトル行列積演算部のマッハツェンダー干渉計は、
第１、第２の２本の光導波路と、
前記第１の光導波路に設けられ、入力ポートがマッハツェンダー干渉計の一方の入力ポートに接続された第１の位相シフタと、
前記第１、第２の光導波路に設けられ、第１の入力ポートが前記第１の位相シフタの出力ポートに接続され、第２の入力ポートがマッハツェンダー干渉計の他方の入力ポートに接続された第１の方向性結合器と、
前記第１の光導波路に設けられ、入力ポートが前記第１の方向性結合器の第１の出力ポートに接続された第２の位相シフタと、
前記第１、第２の光導波路に設けられ、第１の入力ポートが前記第２の位相シフタの出力ポートに接続され、第２の入力ポートが前記第１の位相シフタの第２の出力ポートに接続され、第１の出力ポートがマッハツェンダー干渉計の一方の出力ポートに接続され、第２の出力ポートがマッハツェンダー干渉計の他方の出力ポートに接続された第２の方向性結合器とから構成され、
前記パラメータ更新部は、前記第１、第２の位相シフタのうち少なくとも一方に与える制御信号によって前記重みの更新を行うことを特徴とする光ニューラルネットワーク。
【請求項５】
請求項４記載の光ニューラルネットワークにおいて、
前記ベクトル行列積演算部のマッハツェンダー干渉計は、
さらに、前記第１の方向性結合器と前記第２の方向性結合器との間の位置の前記第２の光導波路の近傍に設けられた第４のリング共振器を備え、
前記パラメータ更新部は、前記第１、第２の位相シフタと前記第４のリング共振器のうち少なくとも１つに与える制御信号によって前記重みの更新を行うことを特徴とする光ニューラルネットワーク。
【請求項６】
請求項５記載の光ニューラルネットワークにおいて、
前記ベクトル行列積演算部のマッハツェンダー干渉計は、
さらに、前記第１の方向性結合器よりも前の位置の前記第２の光導波路の近傍に設けられた第５のリング共振器を備え、
前記パラメータ更新部は、前記第１、第２の位相シフタと前記第４、第５のリング共振器のうち少なくとも１つに与える制御信号によって前記重みの更新を行うことを特徴とする光ニューラルネットワーク。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、光電融合型演算回路に関するものである。
【背景技術】
【０００２】
現在の電子演算回路は、その処理速度を向上させるため、そのチップサイズや素子サイズを極限まで小さくする工夫がなされている。サイズを小さくする理由は、回路内の抵抗（Ｒ）とキャパシタンス（Ｃ）によって信号の伝搬速度が大きく左右されるため、演算速度を上げるにはチップサイズや素子サイズを小さくするしかないためである。そのため、狭面積の論理ブロックやコアに素子を詰め込み、マルチコア・メニーコア化などの工夫がなされているが、論理ブロックやコアをつなぐための配線が新たな遅延を生み、演算の高速化に限界が見えつつある。
【０００３】
一方、光通信などで用いられる光配線や光パスゲートは、その配線経路内のＣやＲに無依存で光信号を伝播させることができる。またナノフォトニクスの進展により、光ゲートの消費エネルギーは飛躍的に改善され、そのエネルギーコスト［Ｊ／ｂｉｔ］は、ＣＭＯＳゲートと光で同程度のレベルになりつつある。そのため、チップ内やチップ間の通信を光化する様々な研究がなされている。
【０００４】
その中の技術のひとつである光ニューラルネットワーク（ＮＮ）における情報処理は、入力信号に対するベクトル行列積と、その結果に対する活性化関数の適用で実施され、それぞれの回路は、光増幅器あるいは減衰器とユニタリ変換回路との組み合わせ、および可飽和吸収体などの光非線形素子により構成される（非特許文献１参照）。
【０００５】
ここで、Ｎ×Ｎユニタリ変換回路は、Ｎ（Ｎ−１）／２個の基本ゲートで構成される（非特許文献２）。基本ゲートは、１つのマッハツェンダー干渉計（Mach-Zehnder Interferometer、以下ＭＺＩとする）と位相シフタ（Phase shifter、以下ＰＳとする）の組み合わせで構成される。つまり、ベクトル行列積、活性化ともに光を伝搬させることにより演算を実行しており、その演算遅延は、光信号経路長で決定され、ナノフォトニクスによる高速化が期待される。
【０００６】
一般的なニューラルネットワークの学習は、以下の手順で為される。まず、訓練用のデータからランダムに入力Ｘとそれに対応する答えＴとを選び出し、現在の各ニューロンにおける重みＷを使ってニューラルネットワークの出力Ｙを求める。そして、損失関数Ｌにより、出力Ｙと期待される答えＴとの誤差を算出し、この誤差が小さくなるように、各ニューロンの重みＷを次の関係式で更新する。
【０００７】
【数１】
2020079980.tif 000003
【０００８】
式（１）において、ηは学習係数、Ｓはバッチサイズである。ここで、ニューラルネットワークの入力側から出力側への信号の流れを順方向伝搬（フォワードプロパゲーション）、出力側から入力側への信号の流れを逆方向伝搬（バックプロパゲーション）と呼ぶこととする。ここで入力Ｘが、Ｎ段の伝達関数（Ｚi＝ＷiＹi-1，Ｙi＝Ｆi（Ｚi），ｉ＝１〜Ｎ，Ｙ1＝Ｘ，ＹN＝Ｙ）を通して，出力Ｙを求める場合、∂Ｌ／∂Ｗは偏微分の連鎖律によって下記式により求めることができる。
【０００９】
【数２】
2020079980.tif 000004
【００１０】
つまり、出力（Ｌ，Ｙ）側からＷ方向に向かって解析的に偏微分値を順に導出することにより∂Ｌ／∂Ｗを計算し、各ニューロンにおける重みＷを調整することができる。
このようなバックプロパゲーションによる学習のためには、ニューラルネットワークの回路定数が事前に判明している必要がある。
【００１１】
一方で、光をニューラルネットワークに用いた場合、回路定数が不明な場合が多く、また重みＷの調整には経路途中の光の電界振幅と位相の情報が必要となるため、バックプロパゲーションによる学習が困難となる。
【先行技術文献】
【非特許文献】
【００１２】
【非特許文献１】川上哲志他，“ナノフォトニック・ニューラルアクセラレータ向け性能評価環境の構築”，the 31st workshop on circuits and systems in kitakyushu，  May 17-18，2018
【非特許文献２】William R. Clements，et al.，“Optimal design for universal multiport interferometers”，Optica 12，1460，2016
【発明の概要】
【発明が解決しようとする課題】
【００１３】
本発明は、上記のような問題を鑑み、光ニューラルネットワークにおけるフォワードプロパゲーションによる学習を実現する光偏微分演算装置および光ニューラルネットワークを提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明の光偏微分演算装置は、出力光強度・位相の波長依存性を有する光デバイスによって構成され、入力された波長多重光信号に対する演算を行う光演算器と、この光演算器による演算後の波長多重光信号を受光し、前記光演算器の演算結果を示す電気信号を得ると共に、前記光演算器の演算結果の誤差の指標となる損失関数の偏微分値を示す電気信号を得る微分演算部とを備え、前記微分演算部は、前記光演算器から出力された波長多重光信号のうち第１の光信号を受光して、前記光演算器の演算結果を示す電気信号を得る第１の受光器と、前記光演算器から出力された波長多重光信号のうち前記第１の光信号と異なる波長の第２の光信号を受光する第２の受光器と、この第２の受光器と出力電流の向きが逆になるように接続され、前記光演算器から出力された波長多重光信号のうち前記第１、第２の光信号と異なる波長の第３の光信号を受光する第３の受光器と、前記第２、第３の受光器の接続点に接続された抵抗とを備え、前記抵抗の両端電圧が、前記損失関数の偏微分値を示すことを特徴とするものである。
【００１５】
また、本発明の光偏微分演算装置の１構成例において、前記微分演算部は、さらに、共鳴波長が前記第１の光信号の波長に設定され、前記光演算器から出力された波長多重光信号から前記第１の光信号を取り出して前記第１の受光器に入力する第１のリング共振器と、共鳴波長が前記第２の光信号の波長に設定され、前記光演算器から出力された波長多重光信号から前記第２の光信号を取り出して前記第２の受光器に入力する第２のリング共振器と、共鳴波長が前記第３の光信号の波長に設定され、前記光演算器から出力された波長多重光信号から前記第３の光信号を取り出して前記第３の受光器に入力する第３のリング共振器とを備えることを特徴とするものである。
【００１６】
また、本発明の光ニューラルネットワークは、前記光偏微分演算装置と、前記光偏微分演算装置の光演算器に設定される重みを、光ニューラルネットワークの学習時に前記損失関数の偏微分値に基づいて、前記損失関数が０に近づくように更新するパラメータ更新部とを備え、前記光演算器は、この光演算器に入力された波長多重光信号が示す入力値と前記重みの積和演算を行うマッハツェンダー干渉計からなるベクトル行列積演算部と、前記学習時に前記ベクトル行列積演算部から出力された波長多重光信号が示す推論値と前記学習時に光演算器に入力される光信号が示す正解値との差分を演算し、光ニューラルネットワークによって推論を行うときには前記ベクトル行列積演算部から出力された波長多重光信号をそのまま出力する差分演算部とから構成されることを特徴とするものである。
【００１７】
また、本発明の光ニューラルネットワークの１構成例において、前記ベクトル行列積演算部のマッハツェンダー干渉計は、第１、第２の２本の光導波路と、前記第１の光導波路に設けられ、入力ポートがマッハツェンダー干渉計の一方の入力ポートに接続された第１の位相シフタと、前記第１、第２の光導波路に設けられ、第１の入力ポートが前記第１の位相シフタの出力ポートに接続され、第２の入力ポートがマッハツェンダー干渉計の他方の入力ポートに接続された第１の方向性結合器と、前記第１の光導波路に設けられ、入力ポートが前記第１の方向性結合器の第１の出力ポートに接続された第２の位相シフタと、前記第１、第２の光導波路に設けられ、第１の入力ポートが前記第２の位相シフタの出力ポートに接続され、第２の入力ポートが前記第１の位相シフタの第２の出力ポートに接続され、第１の出力ポートがマッハツェンダー干渉計の一方の出力ポートに接続され、第２の出力ポートがマッハツェンダー干渉計の他方の出力ポートに接続された第２の方向性結合器とから構成され、前記パラメータ更新部は、前記第１、第２の位相シフタのうち少なくとも一方に与える制御信号によって前記重みの更新を行うことを特徴とするものである。
【００１８】
また、本発明の光ニューラルネットワークの１構成例において、前記ベクトル行列積演算部のマッハツェンダー干渉計は、さらに、前記第１の方向性結合器と前記第２の方向性結合器との間の位置の前記第２の光導波路の近傍に設けられた第４のリング共振器を備え、前記パラメータ更新部は、前記第１、第２の位相シフタと前記第４のリング共振器のうち少なくとも１つに与える制御信号によって前記重みの更新を行うことを特徴とするものである。
また、本発明の光ニューラルネットワークの１構成例において、前記ベクトル行列積演算部のマッハツェンダー干渉計は、さらに、前記第１の方向性結合器よりも前の位置の前記第２の光導波路の近傍に設けられた第５のリング共振器を備え、前記パラメータ更新部は、前記第１、第２の位相シフタと前記第４、第５のリング共振器のうち少なくとも１つに与える制御信号によって前記重みの更新を行うことを特徴とするものである。
【発明の効果】
【００１９】
本発明によれば、光演算器と微分演算部とを設けることにより、光ニューラルネットワークにおけるフォワードプロパゲーションによる学習を実現することができる。また、本発明では、光偏微分の多重化を実現し、回路定数が不明な光ニューラルネットワークにおいて、学習過程の偏微分演算の並列化を実現し、学習の高速化を実現することができる。
【図面の簡単な説明】
【００２０】
【図１】図１は、本発明の実施例に係る光偏微分演算装置の構成を示すブロック図である。
【図２】図２は、本発明の実施例に係る光演算器の演算器制御信号θに対する出力光信号の特性を示す図である。
【図３】図３は、本発明の実施例の対象となるニューラルネットワークの例を示す図である。
【図４】図４は、本発明の実施例に係る光ニューラルネットワークの構成を示すブロック図である。
【図５】図５は、本発明の実施例に係る光ニューラルネットワークにおいて推論を行う場合を説明する図である。
【図６】図６は、本発明の実施例に係る光ニューラルネットワークにおいて学習を行う場合を説明する図である。
【図７】図７は、損失関数の複数箇所の偏微分値の算出について説明する図である。
【図８】図８は、偏微分演算の並列化による学習の高速化を図る場合の光ニューラルネットワークの動作を説明する図である。
【図９】図９は、本発明の実施例に係る光ニューラルネットワークのベクトル行列積演算部の２×２ＭＺＩの構成を示す図である。
【図１０】図１０は、本発明の実施例に係る光ニューラルネットワークの差分演算部の２×２ＤＣの構成を示す図である。
【図１１】図１１は、本発明の実施例に係るベクトル行列積演算部の２×２ＭＺＩの別の構成を示す図である。
【図１２】図１２は、本発明の実施例に係るベクトル行列積演算部の２×２ＭＺＩの分散特性を利用した損失関数の偏微分値の検出方法を説明する図である。
【図１３】図１３は、本発明の実施例に係るベクトル行列積演算部の２×２ＭＺＩの分散特性を利用した損失関数の偏微分値の検出方法を説明する図である。
【図１４】図１４は、本発明の実施例に係るベクトル行列積演算部の２×２ＭＺＩの別の構成を示す図である。
【図１５】図１５は、本発明の実施例に係るベクトル行列積演算部の２×２ＭＺＩの分散特性を利用した損失関数の偏微分値の検出方法を説明する図である。
【図１６】図１６は、本発明の実施例に係るベクトル行列積演算部の２×２ＭＺＩの分散特性を利用した損失関数の偏微分値の検出方法を説明する図である。
【図１７】図１７は、本発明の実施例に係る微分演算部のリング共振器と受光器による複数の偏微分値と複数の推論結果の検出について説明する図である。
【図１８】図１８は、本発明の実施例に係る光ニューラルネットワークのパラメータ更新部を実現するコンピュータの構成例を示すブロック図である。
【発明を実施するための形態】
【００２１】
［実施例］
以下、本発明の実施例について詳細に説明する。損失関数Ｌの重みＷに関する偏微分∂Ｌ／∂Ｗは、重みＷの変動に伴う損失関数Ｌの変動を意味しているため、順方向に信号を伝搬している系において、着目する重みＷを変調すれば損失関数Ｌの変動を実測することができ、∂Ｌ／∂Ｗの数値変分値を導出することができる。つまりフォワードプロパゲーションによるニューラルネットワークの学習も可能である。
【００２２】
ただしこのような学習方法では、重みＷの調整の試行回数が膨大となるため、通常のニューラルネットワークでは用いられない。
本実施例では、光の伝搬を利用することにより光ニューラルネットワークの学習の高速性を確保し、光の多重性を用いることで重みＷの調整の試行回数を削減する手法を提供する。なお、本発明で用いる光信号は、光強度・位相によって入力値、推論値、正解値といった値を表す信号である。
【００２３】
最初に、光デバイスの波長依存性を有効活用した光偏微分演算装置について説明する。図１は本実施例に係る光偏微分演算装置の構成を示すブロック図である。
光偏微分演算装置は、波長多重光源１と、出力光強度・位相の波長依存性を有する光デバイスによって構成され、波長多重光源１から入力された波長多重光信号に対する演算を行う光演算器２と、光演算器２による演算後の波長多重光信号を受光し、光演算器２の演算結果を示す電気信号を得ると共に、光演算器２の演算結果の誤差の指標となる損失関数の偏微分値を示す電気信号を得る微分演算部３とから構成される。
【００２４】
波長多重光源１から照射された波長多重光信号は、光演算器２によって演算が施された後に微分演算部３によって検出される。
光演算器２は、波長依存性を有する光デバイスにより構成されているため、波長多重光信号の波長毎に極微小な演算結果（強度）のずれが生じる。
【００２５】
図２は、光演算器２の演算器制御信号θに対する出力光信号の特性を示す図である。図１、図２の例では、波長多重光源１から波長の異なる３つの光信号が入力され、これらの入力に対して光演算器２が３つの出力光信号Ｏｒｅｄ，Ｏｇｒｅｅｎ，Ｏｂｌｕｅを出力する。図２から明らかなように、出力光信号Ｏｒｅｄ，Ｏｇｒｅｅｎ，Ｏｂｌｕｅは演算器制御信号θによって偏移させることができる。また、上記のとおり、出力光信号Ｏｒｅｄ，Ｏｇｒｅｅｎ，Ｏｂｌｕｅには、微小なずれが生じている。この出力光信号Ｏｒｅｄ，Ｏｇｒｅｅｎ，Ｏｂｌｕｅのずれは、波長毎に演算器制御信号θが微少量αだけシフトする物理現象に起因する。本実施例は、このずれを活用して偏微分を実現する。
【００２６】
微分演算部３は、光演算器２の３つの出力光信号Ｏｒｅｄ，Ｏｇｒｅｅｎ，Ｏｂｌｕｅを受光する３つの受光器３０−１，３０−２，３０−３と、抵抗３１とから構成される。微分演算部３では、ずれが生じた出力光信号ＯｒｅｄとＯｂｌｕｅの差分演算と積算（除算）によって数値（中心）微分を実現する。
【００２７】
具体的には、差分演算は、光演算器２の出力光信号Ｏｒｅｄを受光して出力電流（電気信号）Ｉｒｅｄを出力する受光器３０−１と出力光信号Ｏｂｌｕｅを受光して出力電流Ｉｂｌｕｅを出力する受光器３０−３とを、出力電流Ｉｒｅｄ，Ｉｂｌｕｅが逆向きになるように互いの出力端子を接続することによる電流Ｉｒｅｄ，Ｉｂｌｕｅの合流（キルヒホッフの法則）によって実現する。
【００２８】
一方、積算（除算）は、減算によって得られた電流（Ｉｒｅｄ−Ｉｂｌｕｅ）と抵抗との掛算、すなわち抵抗３１の両端電圧Ｖｄｉｆｆの計測（オームの法則）によって実現する。
【００２９】
したがって、図１の光偏微分演算装置で得られる出力は、演算器２の演算結果を光電変換した結果Ｉｇｒｅｅｎ（光演算器２の出力光信号Ｏｇｒｅｅｎを光電変換した受光器３０−２の出力電流）と、その演算結果の演算器制御信号θに関する数値（中心）微分Ｖｄｉｆｆとなる。
【００３０】
【数３】
2020079980.tif 000005
【００３１】
【数４】
2020079980.tif 000006
【００３２】
式（３）、式（４）において、ｘは入力値、ｆ（）は光演算器２の伝達関数である。また、抵抗３１の値は１／（２α）に設定されている。
【００３３】
以上の光偏微分演算装置を用いた光ニューラルネットワークの学習アルゴリズムの実装法を説明する。対象とするニューラルネットワークの例を図３に示す。本ニューラルネットワークは、２入力の入力層１０と、３出力の出力層１１の２層で構成されており、３つの論理演算を実現（学習）する。
【００３４】
入力層１０は、３つのニューロン１００−１〜１００−３からなる。ニューロン１００−１〜１００−３は、それぞれ入力値ｘ1、入力値ｘ2、固定値“１”を入力とする。ただし、これらニューロン１００−１〜１００−３は、信号の処理を行なわず、受け取った値を出力層１１へ伝える。出力層１１は、３つのニューロン１１０−１〜１１０−３からなる。ニューロン１１０−１〜１１０−３は、それぞれ入力値を処理して、出力値ｙ1，ｙ2，ｙ3を出力する。
【００３５】
例えば図３の例では、ニューラルネットワークは、２つの入力値ｘ1，ｘ2のＡＮＤ（論理積）の結果である出力値ｙ1と、ＮＡＮＤ（否定論理積）の結果である出力値ｙ2と、ＯＲ（論理和）の結果である出力値ｙ3とを出力する。例えば（ｘ1，ｘ2）＝（１，０）の入力を与えた場合、ニューラルネットワークの出力は（ｙ1，ｙ2，ｙ3）＝（０，１，１）となる。
【００３６】
一般に、ニューラルネットワークにおいては、ニューロン１１０−１〜１１０−３において、それぞれ入力値と重みｗとの積和演算の結果にバイアスを加算し、このバイアスを加算した後の値に対して活性化関数（非線形関数）を適用する。本実施例においては、入力値に対する重みをｗ、常に入力値“１”となるダミー入力をバイアスとし、それに対する重みをｂとし、これらの積和演算を行う。また、活性化関数を恒等関数ｆ（ｙ）＝ｙとしている。
【００３７】
これにより、本ニューラルネットにおける推論演算は、式（５）によって表すことができる。
【００３８】
【数５】
2020079980.tif 000007
【００３９】
式（５）において、ｗ11はニューロン１１０−１の入力値ｘ1に対する重み、ｗ12はニューロン１１０−１の入力値ｘ2に対する重み、ｗ21はニューロン１１０−２の入力値ｘ1に対する重み、ｗ22はニューロン１１０−２の入力値ｘ2に対する重み、ｗ31はニューロン１１０−３の入力値ｘ1に対する重み、ｗ32はニューロン１１０−３の入力値ｘ2に対する重みである。また、ｂ1はニューロン１１０−１における積和演算の結果ｗ11ｘ1＋ｗ12ｘ2に加算されるバイアスに対する重み、ｂ2はニューロン１１０−２における積和演算の結果ｗ21ｘ1＋ｗ22ｘ2に加算されるバイアスに対する重み、ｂ3はニューロン１１０−３における積和演算の結果ｗ31ｘ1＋ｗ32ｘ2に加算されるバイアスに対する重みである。
ニューラルネットワークにおける損失関数Ｌは、式（６）によって表すことができる。
【００４０】
【数６】
2020079980.tif 000008
【００４１】
ここで，ｔ1，ｔ2，ｔ3はそれぞれニューラルネットワークによって得られる出力値である推論値ｙ1，ｙ2，ｙ3に対する正解値である。損失関数Ｌは、推論値ｙ1，ｙ2，ｙ3と正解値ｔ1，ｔ2，ｔ3との差、すなわち現状の推論の出来の悪さを定量的に評価する指標となる。
【００４２】
ニューラルネットワークの学習は、損失関数Ｌの出力を０にすべく重みｗおよびｂの更新を繰り返す処理となる。その際に、損失関数Ｌの重みｗおよびｂに関する偏微分値に基づいて、重みｗおよびｂの更新量を決定する。したがって、上述の光偏微分演算装置をニューラルネットワークに応用するには、損失関数Ｌを演算する必要がある。つまり、ニューラルネットワークでの学習では推論におけるベクトル行列積演算部に加え、推論値と正解値との差分演算、ノルム演算、和算、ならびに微分演算（差分演算＋除算）が必要となる。
【００４３】
図４は光ニューラルネットワークの構成を示すブロック図である。光ニューラルネットワークは、光ニューラルネットワークに入力される波長多重光信号が示す入力値・バイアス値と、それぞれに対する重みｗおよびｂとの積和演算を行う、波長依存性を有するベクトル行列積演算部２０と、ベクトル行列積演算部２０から出力される光信号が示す推論値ｙ1，ｙ2，ｙ3と正解値ｔ1，ｔ2，ｔ3との差分を演算する、波長依存性の無い差分演算部２１と、光ニューラルネットワークの推論結果（演算結果）を示す電気信号を得ると共に、光ニューラルネットワークの推論結果の誤差の指標となる損失関数Ｌの偏微分値を示す電気信号を得る微分演算部２２とから構成される。
【００４４】
光ニューラルネットワークには、１つの入力値ｘ1を示す波長の異なる複数の光信号からなる波長多重光信号ｍｓ１と、１つの入力値ｘ2を示す波長の異なる複数の光信号からなる波長多重光信号ｍｓ２と、１つのバイアス入力値“１”を示す波長の異なる複数の光信号からなる波長多重光信号ｍｓ３とがある。
【００４５】
ベクトル行列積演算部２０と差分演算部２１とは、図１の光演算器２を構成している。ベクトル行列積演算部２０は、入力値と重みｗおよびｂとの積和演算のための複数の２×２ＭＺＩ２００と、３つの波長多重光信号をそれぞれ減衰させるアッテネータ２０１とから構成される。
【００４６】
後述するように、２×２ＭＺＩ２００を構成するＰＳは、波長依存性を有する。２×２ＭＺＩ２００を制御する信号は、図１の演算器制御信号θに相当する。アッテネータ２０１は例えば２×２ＭＺＩによって実現することができる。
なお、式（５）の個々の重み（ｗ11，ｗ12，ｗ21，ｗ22，ｗ31，ｗ32，ｂ1，ｂ2，ｂ3）は、個々のＭＺＩ２００によって実現されるのではなく、複数のＭＺＩ２００の組み合わせによって実現される。例えばベクトル行列積演算部２０が２つのＰＳ（θ，φ）を有するＭＺＩ２００の組み合わせで構成される場合、計算上の重み（ｗ11，ｗ12，ｗ21，ｗ22，ｗ31，ｗ32，ｂ1，ｂ2，ｂ3）は，回路上はベクトル行列積演算部２０に示すＭＺＩとアッテネータの制御信号Θ（θj，φj，ｊ＝１〜ｍ、ｍはベクトル行列積演算部を構成するＭＺＩ２００の数）に相当する。
【００４７】
差分演算部２１は、ベクトル行列積演算部２０から出力される波長多重光信号が示す推論値ｙ1，ｙ2，ｙ3と正解値ｔ1，ｔ2，ｔ3との差分を演算する３つの２×２方向性結合器（Directional Coupler、以下ＤＣとする）により構成される。
微分演算部２２は、波長多重光信号の合波を行うことにより、差分演算部２１の演算結果に対するノルム演算および和算を行う複数のリング共振器２２０と、３つの波長多重光信号を受光して差分演算部２１の演算結果を示す電気信号を得る３つの受光器２２１と、ベクトル行列積演算部２０が有する波長依存性によって強度にずれが生じた光信号の差分演算と積算（除算）とを行うための受光器２２２，２２３および抵抗２２４とから構成される。受光器２２２，２２３と抵抗２２４とは、図１の受光器３０−１，３０−３と抵抗３１とに相当する。
【００４８】
図５は、図４に示した光ニューラルネットワークにおいて推論を行う場合を示している。なお、図５の「×」印は使用しないポートを示している。以降の図面においても使用しないポートに同様の「×」印を記すものとする。また、図５に示すように、差分演算部２１は、３つの２×２ＤＣ２１０によって構成されている。
【００４９】
光ニューラルネットワークにおいて推論を行う場合は、学習済みの重みｗおよびｂに相当する制御信号Θをベクトル行列積演算部２０に設定し、差分演算部２１を構成する３つの２×２ＤＣ２１０の一方の入力ポートを無入力（“０”）とした状態で、光ニューラルネットワークに波長多重光信号ｍｓ１〜ｍｓ３を入力する。
これにより、微分演算部２２の受光器２２１から、光ニューラルネットワークによる推論結果を示す電気信号を得ることができる。
【００５０】
図６は、図４に示した光ニューラルネットワークにおいて学習を行う場合を示している。光ニューラルネットワークにおいて学習を行う場合は、ベクトル行列積演算部２０およびアッテネータ２０１に与える制御信号Θを任意の値とし、差分演算部２１を構成する３つの２×２ＤＣ２１０の一方の入力ポートに正解値ｔ１，ｔ２，ｔ３を示す光信号を入力した状態で、光ニューラルネットワークに波長多重光信号ｍｓ１〜ｍｓ３を入力すればよい。
【００５１】
抵抗２２４の値をη／（２α）に設定すると、微分演算部２２の抵抗２２４の両端電圧Ｖｄｉｆｆは、損失関数Ｌの制御信号Θに関する偏微分値∂Ｌ（ｗ）／∂ｗ、∂Ｌ（ｂ）／∂ｂに、学習係数ηを掛けた結果を示す値となる。
パラメータ更新部２３は、微分演算部２２の抵抗２２４の両端電圧Ｖｄｉｆｆに基づいて、損失関数Ｌが０に近づくように制御信号Θを更新する。具体的には、パラメータ更新部２３は、ベクトル行列積演算部２０の２×２ＭＺＩ２００に与える制御信号を、−Ｖｄｉｆｆ（−η×∂Ｌ（θ）／∂θ）および−Ｖｄｉｆｆ（−η×∂Ｌ（φ）／∂φ）に相当する分だけずらすようにすればよい。
制御信号Θは重みｗおよびｂに変換可能であるため、制御信号Θに関する偏微分値の算出ならびに値の更新は、理論上は重みｗおよびｂを更新することと等価である。すなわち、上述のプロセスは，ニューラルネットワークの学習（最適化）と等しい。
【００５２】
光ニューラルネットワークの学習においては、最適化パラメータΘ（θ，φ）の数だけ偏微分値を算出（勾配計算）して、パラメータを更新する必要がある。
微分演算部２２のリング共振器２２０によって対象とする光信号を選択できるので、選択する光信号を変えることで、各制御信号θに関する偏微分値（−η×∂Ｌ（θ）／∂θ）を制御信号θ毎に求めることができる。つまり、パラメータ更新部２３は、制御信号θ毎の更新が可能となる。
【００５３】
同様に、リング共振器２２０による光信号の選択によって、制御信号φに関する偏微分値（−η×∂Ｌ（φ）／∂φ）を制御信号φ毎に求めることができ、パラメータ更新部２３は、制御信号φ毎の更新が可能となる。
こうして、光ニューラルネットワークの学習が可能となる。
【００５４】
学習の際、ベクトル行列積演算部２０の２×２ＭＺＩ２００およびアッテネータ２０１に与える制御信号は任意の値でよいため、製造誤差によって生じるデバイス毎のばらつきを考慮した制御信号Θの更新が可能となる。すなわち、デバイス毎のばらつきをチューニングせずにベクトル行列積演算部２０を活用することが可能となる（自動チューニング）。なお、簡単な複数論理関数を実現する入力２出力３の２層線形パーセプトロンを対象とし、光ニューラルネットワークでの動作シミュレーションを行った結果、１００％の正答率を達成できることを確認した。
【００５５】
上記のとおり、光ニューラルネットワークの学習においては、最適化パラメータΘ（θ，φ）の数だけ偏微分値を算出（勾配計算）して、パラメータを更新する必要があるため、学習に時間がかかる。
そこで、さらなる波長多重によって学習の高速化を実現する。これまでの説明においては３波長（１波長を推論に使用し、２波長を偏微分演算に使用）の活用を前提としてきた。しかしながら、本発明においてより多くの波長を活用することは本質的に可能であり、かつ、さらなる波長多重化は光ニューラルネットワークの学習の収束速度の向上、ならびに、勾配計算の並列化による学習の高速化を期待できる。
【００５６】
ニューラルネットワークの学習は、現時点の重みを起点として勾配方向へ重みを移動させる。波長依存性を活用した光偏微分演算装置は、現時点の重みを起点として近傍計算をしていることにほかならない。波長多重光信号の波長数を増加させることは、より遠方のパラメータで評価していることを意味する。従来の学習による重みｗおよびｂの更新を式（７）のように表すことができるとすると、さらなる波長多重化による偏微分演算の並列化による重みｗおよびｂの更新は式（８）のように表すことができる。
【００５７】
【数７】
2020079980.tif 000009
【００５８】
【数８】
2020079980.tif 000010
【００５９】
式（８）は偏微分演算の並列化による学習をｎ個並列に行うことを示している。図７は、損失関数Ｌの複数箇所の偏微分値∂Ｌ／∂ｗを算出する例を示している。この考え方は重みｂについても同様である。
損失関数Ｌの各最適化パラメータ（重みｗおよびｂ）に関する偏微分値は独立であるため、偏微分演算の並列化が可能である。
【００６０】
各々の偏微分演算に異なる波長を割り当てることで、図８に示すように、偏微分演算の並列化が可能になり、その結果、学習の高速化が実現できる可能性がある。
図８の例では、ベクトル行列積演算部２０およびアッテネータ２０１に与える制御信号を任意の値とし、差分演算部２１を構成する３つの２×２ＤＣ２１０の一方の入力ポートに正解値ｔ1，ｔ2，ｔ3を示す光信号を入力した状態で、光ニューラルネットワークに波長多重光信号ｍｓ１〜ｍｓ３を入力する。
【００６１】
微分演算部２２のリング共振器２２０によって対象とする２波長の光信号を選択し、対応する制御信号Θに関する偏微分値を抵抗２２４−１によって検出する。パラメータ更新部（図８では不図示）は、損失関数Ｌが０に近づくように、抵抗２２４−１の両端電圧Ｖｄｉｆｆに基づいて、学習対象の２×２ＭＺＩ２００に与える制御信号Θをずらす。
【００６２】
同時に、別の学習対象の制御信号Θに関する偏微分値を抵抗２２４−２によって検出する。パラメータ更新部（図８では不図示）は、損失関数Ｌが０に近づくように、抵抗２２４−２の両端電圧Ｖｄｉｆｆに基づいて、学習対象の２×２ＭＺＩ２００に与える制御信号Θをずらす。さらに、別の学習対象の制御信号Θに関する偏微分値を抵抗２２４−３によって検出し、この学習対象の制御信号Θを同様に更新する。
【００６３】
以下にフォワードプロパゲーションによる学習手順について説明する。図９はベクトル行列積演算部２０の２×２ＭＺＩ２００の構成を示す図である。２×２ＭＺＩ２００は、入力ポートが２×２ＭＺＩ２００の第１の入力ポートに接続されたＰＳ２０００と、第１の入力ポートがＰＳ２０００の出力ポートに接続され、第２の入力ポートが２×２ＭＺＩ２００の第２の入力ポートに接続されたＤＣ２００１と、入力ポートがＤＣ２００１の第１の出力ポート（ＤＣ２００１の第１の入力ポートに対するスルーポート）に接続されたＰＳ２００２と、第１の入力ポートがＰＳ２００２の出力ポートに接続され、第２の入力ポートがＤＣ２００１の第２の出力ポート（ＤＣ２００１の第１の入力ポートに対するクロスポート）に接続され、第１の出力ポート（ＰＳ２００２の光出力に対するスルーポート）が２×２ＭＺＩ２００の第１の出力ポートに接続され、第２の出力ポート（ＰＳ２００２の光出力に対するクロスポート）が２×２ＭＺＩ２００の第２の出力ポートに接続されたＤＣ２００３とから構成される。図９の２００４，２００５は光導波路である。
【００６４】
２×２ＭＺＩ２００の波長依存性は、ＰＳ２０００およびＰＳ２００２の配置される光導波路と、配置されない光導波路２００５を伝搬する光の位相差により生じさせる。位相は、２π・ｎ・Ｌ／λにより決まるので、屈折率ｎ、導波路長Ｌについて両導波路間でアンバランスな設定を施すことにより導波路間の位相差を作り出すことができる。またはＰＳ２０００，２００２や光導波路に用いられる屈折率に大きな波長依存性を持たせても良い。あるいは後述するように、共振器などの大きな構造分散を持つ構造をＰＳに適用する、または、導波路に付与しても波長依存性を作り出すことができる。
【００６５】
アッテネータ２０１は、２×２ＭＺＩ２００と同様の構成によって実現することができる。ただし、アッテネータ２０１の場合には、２×２ＭＺＩ２００における一方の出力ポートのみを使用し、他方を光信号を散逸させるためのポートとして使用することで光強度を減衰させることになる。代用として光を吸収・反射させる光減衰器を用いても良い。
【００６６】
図１０は差分演算部２１の２×２ＤＣ２１０の構成を示す図である。２×２ＤＣ２１０は、入力ポートが２×２ＤＣ２１０の第１の入力ポートに接続されたＰＳ２１００と、第１の入力ポートがＰＳ２１００の出力ポートに接続され、第２の入力ポートが２×２ＤＣ２１０の第２の入力ポートに接続され、第１の出力ポート（ＰＳ２１００の光出力に対するスルーポート）が２×２ＤＣ２１０の第１の出力ポートに接続され、第２の出力ポート（ＰＳ２１００の光出力に対するクロスポート）が２×２ＤＣ２１０の第２の出力ポートに接続されたＤＣ２１０１とから構成される。ＰＳ２０００，２００２の設置により構造が対称ではなくなるため、そのアンバランスから若干の波長依存性は生じるが、一般的にその依存性は小さい、あるいはそれらが無視できる波長範囲で使用することが可能であり、本実施例でもその範囲で使用することとする。
【００６７】
ベクトル行列積演算部２０の転送行列をＷ、光ニューラルネットワークに入力される波長多重光信号が示す入力値をＸ、光ニューラルネットワークの差分演算部２１から出力される波長多重光信号が示す推論値をＹ、正解値をＴとすると、入力値Ｘはベクトル行列積演算部２０の各ＭＺＩのＰＳにより重み付けられ、推論値Ｙが出力される。また、上述のように損失関数Ｌの偏微分値が微分演算部２２の抵抗２２４によって検出される。ここで、推論値Ｙおよび損失関数Ｌは式（９）、式（１０）のようになる。
【００６８】
【数９】
2020079980.tif 000011
【００６９】
式（９）、式（１０）における入力値Ｘ、推論値Ｙ、正解値Ｔ、転送行列Ｗの要素は式（１１）のように表すことができる。
【００７０】
【数１０】
2020079980.tif 000012
【００７１】
なお、式（９）、式（１０）の例は一般的な式を示しており、図３〜図８の例では、ｘ3＝“１”、ｗ13＝ｂ1、ｗ23＝ｂ2、ｗ33＝ｂ3とした場合を示している。Ｗは特異値分解により、Ｗ＝ＶΣＵに分解できる。ここで、ＶとＵはユニタリ行列であり、Σは非対角要素は０、かつ、対角要素は非負で降順の特異値（σ1≧σ2≧σ3≧…≧σr＞０）を持つ行列である。また、ｒはＷのランクに等しい。Ｖ，Σ，Ｕは、図４、図５、図６、図８で示す通りベクトル行列演算部２０に対応する。
さて式（１１）に示される転送行列は、下記に示される転送行列ＭおよびＤの組み合わせで表現することができる。そのため、重みｗの変化はＭＺＩの位相の変化で表現することができる。そのため、式（２）におけるＬのｗに対する変化量は、Ｌの位相に対する変化量として取り扱うことが可能となる。そこで本実施例では、各ＭＺＩ内の位相の変化がＬに与える影響から偏微分値を求め、学習に適用することとする。
ここで、ベクトル行列積演算部２０の２×２ＭＺＩ２００の転送行列Ｍの転送行列Ｍは、式（１２）のようになる。
【００７２】
【数１１】
2020079980.tif 000013
【００７３】
また、ベクトル行列積演算部２０の２×２ＭＺＩ２００内のＤＣ２００１とＰＳ２０００の組み合わせにおける転送行列Ｄ、および差分演算部２１の２×２ＤＣ２１０の転送行列Ｄは、式（１３）のようになる。
【００７４】
【数１２】
2020079980.tif 000014
【００７５】
差分演算部２１においては、推論値ｙiの方位角を正解値ｔiの方位角から−π／２となるように、２×２ＤＣ２１０のＰＳ２１００に与える制御信号によって式（１３）の位相角φを調整することにより、差分（ｙi−ｔi）を演算することができる。この差分演算の効果は２×２ＤＣ２１０の代わりに２×２ＭＺＩ２００を用いても得ることができる。
【００７６】
光ニューラルネットワークにおける学習は、以下の（I）〜（V）に示す手順を１エポックとして定義し、このエポックを繰り返すことで実行される。
（I）入力値Ｘ、正解値Ｔとして任意の固定値（訓練データ）を入力する。
【００７７】
（II）ベクトル行列積演算部２０内の１番目の２×２ＭＺＩ２００内の、ＰＳ２０００の位相角φ1とＰＳ２００２の位相角θ1とをこれらＰＳ２０００，２００２に与える制御信号によって個別に変調し、損失関数Ｌの位相角φ1に関する偏微分値∂Ｌ／∂φ1と損失関数Ｌの位相角θ1に関する偏微分値∂Ｌ／∂θ1とを個別に求める。
【００７８】
（III）ベクトル行列積演算部２０内の２番目の２×２ＭＺＩ２００内の、ＰＳ２０００の位相角φ2とＰＳ２００２の位相角θ2とをこれらＰＳ２０００，２００２に与える制御信号によって個別に変調し、損失関数Ｌの位相角φ2に関する偏微分値∂Ｌ／∂φ2と損失関数Ｌの位相角θ2に関する偏微分値∂Ｌ／∂θ2とを個別に求める。
【００７９】
（IV）ベクトル行列積演算部２０内のｍ（ｍはベクトル行列積演算部２０内の２×２ＭＺＩ２００の内、最終段の２×２ＭＺＩ２００の番号）番目の２×２ＭＺＩ２００内の、ＰＳ２０００の位相角φmとＰＳ２００２の位相角θmとをこれらＰＳ２０００，２００２に与える制御信号によって個別に変調し、損失関数Ｌの位相角φmに関する偏微分値∂Ｌ／∂φmと損失関数Ｌの位相角θmに関する偏微分値∂Ｌ／∂θmとを個別に求める。
【００８０】
（V）パラメータ更新部（図６のパラメータ更新部２３）は、ベクトル行列積演算部２０の各ＭＺＩ２００内のＰＳ２０００について求めた偏微分値∂Ｌ／∂φj（ｊは１〜ｍ）に基づいて、当該ＰＳ２０００の位相角φjを制御信号によって式（１４）のように更新し、さらにＰＳ２００２について求めた偏微分値∂Ｌ／∂θjに基づいて、当該ＰＳ２００２の位相角θjを制御信号によって式（１５）のように更新する。パラメータ更新部は、このような更新をベクトル行列積演算部２０のＭＺＩ２００毎に行う。
【００８１】
【数１３】
2020079980.tif 000015
【００８２】
式（１４）、式（１５）において、Ｓはバッチサイズ、ηは学習係数である。
以上の偏微分演算と位相角φ，θの更新は各ＭＺＩ２００内のＰＳ２０００，２００２毎に実行されるため、ベクトル行列積演算部２０に含まれるＰＳ２０００，２００２の個数分の試行回数が必要となり、更に、１つのＰＳに関する損失関数Ｌの偏微分値を求めるためには、ＰＳ調整前後の損失関数Ｌの値を測定する必要がある。本実施例では、この偏微分演算を１回で実行する方法を提供する。
【００８３】
まず、着目する１つのＰＳにおいてその調整前後の損失関数Ｌの測定を１回で実行する方法を説明する。本実施例では、ベクトル行列積演算部２０内の２×２ＭＺＩ２００に大きな分散特性を持たせるために、リング共振器を付加した構成を使用する。この場合の２×２ＭＺＩ２００の構成を図１１に示す。
【００８４】
図１１の２×２ＭＺＩ２００は、図９に示した２×２ＭＺＩ２００の２本の光導波路２００４，２００５のうち、ＰＳ２０００，２００２が設けられていない方の光導波路２００５に対して、ＤＣ２００１とＤＣ２００３との間の位置の光導波路２００５の近傍にリング共振器２００６を追加したものである。
【００８５】
リング共振器２００６は、共鳴波長の調整部（不図示）を備えている。この調整部の例としては、リング共振器２００６を構成する光導波路の屈折率を、例えば熱光学効果や電気光学効果により変化させてリング共振器２００６の共鳴波長を制御する機構がある。
【００８６】
リング共振器２００６の共鳴効果が、隣接する光導波路２００５を伝搬する光の位相をδずらすとすれば、図１１の２×２ＭＺＩ２００内のＰＳ２０００，２００２の転送行列Ｍ’は式（１６）のようになる。
【００８７】
【数１４】
2020079980.tif 000016
【００８８】
したがって、図９における位相角θに対応する制御信号Θは、θ−δに対応する制御信号に置き換えられることとなる。つまり、位相角θまたは位相シフト量δ、あるいは位相角θと位相シフト量δの両方に制御信号Θを割り当てることによって２×２ＭＺＩ２００の調整が可能となる。
【００８９】
また、光ニューラルネットワークの学習は、損失関数Ｌの制御信号Θに関する偏微分値に基づいて、パラメータ更新部（図６のパラメータ更新部２３）が、ＰＳ２００２の位相角θおよびリング共振器２００６の位相シフト量δのどちらか、あるいは位相角θと位相シフト量δの両方を調整することで実行される。上記のとおり、位相シフト量δは、パラメータ更新部がリング共振器２００６の調整部に与える制御信号によって調整することができる。
【００９０】
リング共振器２００６が光の位相をずらす効果は、図１２に示すようにリング共振器２００６の共鳴波長λ1において光の位相のずれの絶対値が最大のπとなる。例えば、λ1を中心波長（光ニューラルネットワークによる推論で使用する波長、すなわち受光器２２１の検出対象となる光の波長）とし、その前後のλ1+とλ1-の異なる波長（受光器２２２，２２３の検出対象となる光の波長）を光ニューラルネットワークの学習に使用すれば、波長λ1+とλ1-のそれぞれにおいて異なる位相シフト量δを設定することが可能となる。
【００９１】
波長λ1+の光信号と波長λ1-の光信号とを多重化した波長多重光信号を図４〜図６、図８に示した光ニューラルネットワークに入力することで、着目する制御信号Θに関する損失関数Ｌの偏微分値を微分演算部２２によって求めることができる。
【００９２】
このような波長λ1を用いた光ニューラルネットワークの学習は、図１２に示した関係より、位相シフト量δ＝πの場合の損失関数Ｌの偏微分値を求めていることになる。このため、光ニューラルネットワークによって推論を行う場合にも波長λ1が使用され、位相シフト量φ＝πにて推論が実行される。ただし、この位相条件では、波長λに対する位相の変化量が一番大きな波長λ1を推論に使用することになるため、推論を不安定にする欠点を有する。
【００９３】
そのため、本実施例では、光ニューラルネットワークの学習には２×２ＭＺＩ２００の分散特性を利用し、推論には分散特性を利用しないこととする。つまり、光ニューラルネットワークの学習時には、分散の大きな帯域（図１２の例ではλ1+とλ1-）の光を使用し、光ニューラルネットワークによって推論を行うときには分散の小さな帯域（すなわちリング共振器２００６に共鳴しない帯域）の光を使用することとする。
【００９４】
例えば、図１３は、図１２に示していないδ＝−π〜０の領域とδ＝０〜πの領域の特性を示したものであり、図１２に示した関係は図１３の関係と同じである。図１２は、πを基準に位相を±側に位相をずらしたときの出力差を位相シフト量δ＝π近傍の学習に利用していることを示している。位相をずらすことが目的であるならば、図１３に示すように、ゼロ位相を基準にしても同様に出力差を得ることができる。つまり共鳴波長λ1から大きく外れた波長λ0を用いることにより、波長λ1を用いた位相シフト量δ＝π近傍の学習を、波長λ0における位相シフト量δ＝０近傍の学習に代替することが可能であり、波長λ0を光ニューラルネットワークによる推論に使用することができる。
【００９５】
次に、複数のＰＳに対する制御信号Θに関する損失関数Ｌの偏微分値を一括で求める方法について説明する。着目するＰＳの制御信号Θに関する損失関数Ｌの偏微分値を求めるためには、その他のＰＳに関する制御信号Θに依存する出力信号の変化を排除する必要がある。このような排除を実現するためには、着目するＰＳの制御信号Θにのみ波長依存性が現れ、その他のＰＳの制御信号Θについては波長依存性が無い、あるいは波長依存性が小さい状態を作り出せばよい。この波長依存性の違いは、個々の制御信号Θに、個別の共鳴波長を割り当てることで作り出すことができる。
【００９６】
波長依存性の違いを作り出すための、２×２ＭＺＩ２００の構成を図１４に示す。図１４の２×２ＭＺＩ２００は、図１１に示した２×２ＭＺＩ２００の２本の光導波路２００４，２００５のうち、ＰＳ２０００，２００２が設けられていない方の光導波路２００５に対して、ＤＣ２００１よりも前の位置の光導波路２００５の近傍にリング共振器２００７を更に追加したものである。
【００９７】
リング共振器２００７の共鳴効果が、隣接する光導波路２００５を伝搬する光の位相をψずらし、リング共振器２００６の共鳴効果が、隣接する光導波路２００５を伝搬する光の位相をδずらすとすれば、図１４の２×２ＭＺＩ２００内のＰＳ２０００，２００２の転送行列Ｍ”は式（１７）のようになる。
【００９８】
【数１５】
2020079980.tif 000017
【００９９】
図１１の場合と同様に、図９における位相角θに対応する制御信号Θは、θ−δに対応する制御信号に置き換えられることになる。つまり、位相角θまたは位相シフト量δ、あるいは位相角θと位相シフト量δの両方に制御信号Θを割り当てることによって、２×２ＭＺＩ２００の調整が可能となる。上記で説明したとおり、位相シフト量δは、リング共振器２００６の調整部に与える制御信号によって調整することができる。
【０１００】
さらに、図１４の構成では、図９における位相角φに対応する制御信号Θは、φ−ψに対応する制御信号に置き換えられることになる。つまり、位相角φまたは位相シフト量ψ、あるいは位相角φと位相シフト量ψの両方に制御信号Θを割り当てることによって、２×２ＭＺＩ２００の調整が可能となる。リング共振器２００６と同様に、リング共振器２００７は、共鳴波長の調整部（不図示）を備えている。
【０１０１】
光ニューラルネットワークの学習は、損失関数Ｌの制御信号Θに関する偏微分値に基づいて、パラメータ更新部（図６のパラメータ更新部２３）が、ＰＳ２０００の位相角φおよびリング共振器２００７の位相シフト量ψのどちらか、あるいは位相角φと位相シフト量ψの両方を調整することで実行される。位相シフト量ψは、パラメータ更新部がリング共振器２００７の調整部に与える制御信号によって調整することができる。
【０１０２】
リング共振器２００６とリング共振器２００７とが光の位相をずらす効果を、図１５に示す。図１５では、λ1をリング共振器２００６の共鳴波長とし、λ’1をリング共振器２００７の共鳴波長としている。すなわち、図１５の５００はリング共振器２００６による光の位相のずれを示し、５０１はリング共振器２００７による光の位相のずれを示している。
【０１０３】
例えば受光器２２２，２２３の組でλ1+とλ1-の異なる波長の光信号を検出すれば、損失関数Ｌのδに対応する制御信号Θに関する偏微分値を求めることができ、同時に別の受光器２２２，２２３の組でλ’1+とλ’1-の異なる波長の光信号を検出すれば、損失関数Ｌのψに対応する制御信号Θに関する偏微分値を求めることができる。
【０１０４】
このような波長λ1，λ’1を用いた光ニューラルネットワークの学習は、図１５に示した関係より、位相シフト量δ＝ψ＝πの場合の損失関数Ｌの偏微分値を求めていることになる。
【０１０５】
一方、図１６は、図１５に示していないδ＝−π〜０の領域とδ＝０〜πの領域の特性を示したものである。図１２、図１３での説明と同様に、波長λ1，λ’1から大きく外れた波長λ0を光ニューラルネットワークによる推論に使用することができる。
【０１０６】
図１７は微分演算部２２のリング共振器と受光器による複数の偏微分値と複数の推論結果の検出について説明する図である。
図１７の例では、微分演算部２２内のリング共振器２２０−１〜２２０−３の共鳴波長をλ1-、リング共振器２２０−４〜２２０−６の共鳴波長をλ1+、リング共振器２２０−７〜２２０−９の共鳴波長をλ’1-、リング共振器２２０−１０〜２２０−１２の共鳴波長をλ’1+としている。
【０１０７】
これにより、差分演算部２１から出力された波長多重光信号に含まれる波長λ1-の光をリング共振器２２０−１〜２２０−３によって取り出して、受光器２２２−１〜２２２−３で電流（電気信号）に変換することができ、波長多重光信号に含まれる波長λ1+の光をリング共振器２２０−４〜２２０−６によって取り出して、受光器２２３−１〜２２３−３で電流に変換することができる。
【０１０８】
その結果、受光器２２２−１〜２２２−３と受光器２２３−１〜２２３−３との接続点に接続された抵抗２２４−１の両端電圧によって、損失関数Ｌのδに対応する制御信号Θに関する偏微分値を求めることができる。
【０１０９】
同時に、差分演算部２１から出力された波長多重光信号に含まれる波長λ’1-の光をリング共振器２２０−７〜２２０−９によって取り出して、受光器２２２−４〜２２２−６で電流に変換することができ、波長多重光信号に含まれる波長λ’1+の光をリング共振器２２０−１０〜２２０−１２によって取り出して、受光器２２３−４〜２２３−６で電流に変換することができる。
【０１１０】
その結果、受光器２２２−４〜２２２−６と受光器２２３−４〜２２３−６との接続点に接続された抵抗２２４−２の両端電圧によって、損失関数Ｌのψに対応する制御信号Θに関する偏微分値を求めることができる。
リング共振器２２０から受光器２２１〜２２３への光の受け渡しは、リング共振器２２０の近傍に設けられた光導波路２２５〜２２７を介して行われる。
【０１１１】
なお共鳴波長から大きく外れた波長λ0においては２×２ＭＺＩ２００内のリング共振器２００６および２００７による位相シフトの影響をほぼ受けないため、ＰＳ２００２およびＰＳ２０００でこの機能を代替する。つまり式（１７）における位相関係より、学習時に２×２ＭＺＩ２００内のリング共振器２００６の位相δをΔδだけずらす場合、代わりに対応するＰＳ２００２の位相θを−Δδだけずらすことで同様の効果をえることとする。また、２×２ＭＺＩ２００内のリング共振器２００７の位相ψをΔψだけずらす場合、代わりに対応するＰＳ２０００の位相φを−Δψだけずらすことで同様の効果を得ることとする。
もちろん、位相δ、ψを直接ずらすために、リング共振器２００６および２００７の共鳴波長λ1およびλ’1をずらしても良く、使用する光信号の波長をλ1およびλ’1からずらしても良い。これらの場合は、最終的に調整された波長λ1およびλ’1を推論に使用することとする。
使用する光信号の波長をずらす場合は、リング共振器２２０−１〜２２０−１２には、パラメータ更新部（図６のパラメータ更新部２３）から制御信号を与えるようにすればよい。パラメータ更新部は、学習時に２×２ＭＺＩ２００内のリング共振器２００６に共鳴させる光信号の波長λ1をずらした場合、波長λ1をずらした分だけ、リング共振器２２０−１〜２２０−３の共鳴波長λ1-とリング共振器２２０−４〜２２０−６の共鳴波長λ1+とをずらす。また、パラメータ更新部は、２×２ＭＺＩ２００内のリング共振器２００７に共鳴させる光信号の波長λ’1をずらした場合、波長λ’1をずらした分だけ、リング共振器２２０−７〜２２０−９の共鳴波長λ’1-とリング共振器２２０−１０〜２２０−１２の共鳴波長λ’1+とをずらす。
【０１１２】
こうして、リング共振器２００６，２００７，２２０と受光器２２２，２２３と抵抗２２４を増設すれば、一度に求めることのできる偏微分値の数を増やすことができる。
また、光ニューラルネットワークによる推論には分散の小さな帯域の波長を使用するため、２×２ＭＺＩ２００内のリング共振器２００６，２００７に共鳴しない信号の波長数を増やし易く、リング共振器２２０と受光器２２１の増設によって検出波長数を増やすことにより推論の波長多重化にも対応が可能である。
【０１１３】
例えば図１７の例では、微分演算部２２内のリング共振器２２０−１３〜２２０−１５の共鳴波長をλ0、リング共振器２２０−１６〜２２０−１８の共鳴波長をλ’0としている。これにより、差分演算部２１から出力された波長多重光信号に含まれる波長λ0の光をリング共振器２２０−１３〜２２０−１５によって取り出して、受光器２２１−１〜２２１−３で電流（電気信号）に変換することができ、光ニューラルネットワークの推論結果を得ることができる。同時に、波長多重光信号に含まれる波長λ’0の光をリング共振器２２０−１６〜２２０−１８によって取り出して、受光器２２１−４〜２２１−６で電流に変換することができ、光ニューラルネットワークの別の推論結果を得ることができる。
【０１１４】
なお、図１７の例では、偏微分演算に用いる１組の波長の光のうち、波長の低い方の光を受光器２２２側で検出し、波長の高い方の光を受光器２２３で検出しているが、これに限るものではなく、波長の低い方の光を受光器２２３側で検出し、波長の高い方の光を受光器２２２側で検出してもよい。
【０１１５】
本実施例で説明した光ニューラルネットワークのうち、パラメータ更新部２３は、ＣＰＵ（Central Processing Unit）、記憶装置及びインタフェースを備えたコンピュータと、これらのハードウェア資源を制御するプログラムによって実現することができる。このコンピュータの構成例を図１８に示す。コンピュータは、ＣＰＵ３００と、記憶装置３０１と、インターフェース装置（以下、Ｉ／Ｆと略する）３０２とを備えている。Ｉ／Ｆ３０２には、例えば微分演算部２２の抵抗２２４の両端電圧を検出するハードウェア、ベクトル行列積演算部２０の２×２ＭＺＩ２００内のＰＳ２０００，２００２に与える制御信号を生成するハードウェア、２×２ＭＺＩ２００内のリング共振器２００６，２００７に与える制御信号を生成するハードウェア、微分演算部２２内のリング共振器２２０に与える制御信号を生成するハードウェア等が接続される。このようなコンピュータにおいて、本発明を実現させるためのプログラムは記憶装置３０１に格納される。ＣＰＵ３００は、記憶装置３０１に格納されたプログラムに従って本実施例で説明した処理を実行する。
【産業上の利用可能性】
【０１１６】
本発明は、光ニューラルネットワークに適用することができる。
【符号の説明】
【０１１７】
１…波長多重光源、２…光演算器、３…微分演算部、１０…入力層、１１…出力層、２０…ベクトル行列積演算部、２１…差分演算部、２２…微分演算部、２３…パラメータ更新部、３０−１〜３０−３、２２１〜２２３…受光器、３１、２２４…抵抗、１００−１〜１００−３、１１０−１〜１１０−３…ニューロン、２００…２×２マッハツェンダー干渉計、２０１…アッテネータ、２１０…２×２方向性結合器、２２０，２００６，２００７…リング共振器、２０００，２００２，２１００…位相シフタ、２００１，２００３，２１０１…方向性結合器、２２５〜２２７，２００４，２００５…光導波路。
【図１】
2020079980.tif 000018
【図２】
2020079980.tif 000019
【図３】
2020079980.tif 000020
【図４】
2020079980.tif 000021
【図５】
2020079980.tif 000022
【図６】
2020079980.tif 000023
【図７】
2020079980.tif 000024
【図８】
2020079980.tif 000025
【図９】
2020079980.tif 000026
【図１０】
2020079980.tif 000027
【図１１】
2020079980.tif 000028
【図１２】
2020079980.tif 000029
【図１３】
2020079980.tif 000030
【図１４】
2020079980.tif 000031
【図１５】
2020079980.tif 000032
【図１６】
2020079980.tif 000033
【図１７】
2020079980.tif 000034
【図１８】
2020079980.tif 000035