JP2020079980A - 光偏微分演算装置および光ニューラルネットワーク - Google Patents

光偏微分演算装置および光ニューラルネットワーク Download PDF

Info

Publication number
JP2020079980A
JP2020079980A JP2018212031A JP2018212031A JP2020079980A JP 2020079980 A JP2020079980 A JP 2020079980A JP 2018212031 A JP2018212031 A JP 2018212031A JP 2018212031 A JP2018212031 A JP 2018212031A JP 2020079980 A JP2020079980 A JP 2020079980A
Authority
JP
Japan
Prior art keywords
optical
wavelength
neural network
optical signal
signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018212031A
Other languages
English (en)
Other versions
JP7103602B2 (ja
Inventor
新家 昭彦
Akihiko Araya
昭彦 新家
健太 高田
Kenta Takada
健太 高田
納富 雅也
Masaya Notomi
雅也 納富
翔太 北
Shota Kita
翔太 北
哲志 川上
Tetsushi Kawakami
哲志 川上
弘士 井上
Hiroshi Inoue
弘士 井上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kyushu University NUC
Nippon Telegraph and Telephone Corp
Original Assignee
Kyushu University NUC
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kyushu University NUC, Nippon Telegraph and Telephone Corp filed Critical Kyushu University NUC
Priority to JP2018212031A priority Critical patent/JP7103602B2/ja
Publication of JP2020079980A publication Critical patent/JP2020079980A/ja
Application granted granted Critical
Publication of JP7103602B2 publication Critical patent/JP7103602B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

【課題】光ニューラルネットワークにおけるフォワードプロパゲーションによる学習を実現する。【解決手段】光偏微分演算装置は、波長依存性を有する光デバイスによって構成された光演算器2と、演算後の波長多重光信号を受光し、光演算器2の演算結果を示す信号を得ると共に、損失関数の偏微分値を示す信号を得る微分演算部3を備える。微分演算部3は、光演算器2から出力された波長多重光信号のうち第1の光信号を受光して演算結果を示す電気信号を得る受光器30−2と、波長多重光信号のうち第1の光信号と異なる波長の第2の光信号を受光する受光器30−1と、受光器30−1と電流の向きが逆になるように接続され、波長多重光信号のうち第1、第2の光信号と異なる波長の第3の光信号を受光する受光器30−3と、受光器30−1,30−3の接続点に接続された抵抗31を備える。【選択図】 図1

Description

本発明は、光電融合型演算回路に関するものである。
現在の電子演算回路は、その処理速度を向上させるため、そのチップサイズや素子サイズを極限まで小さくする工夫がなされている。サイズを小さくする理由は、回路内の抵抗(R)とキャパシタンス(C)によって信号の伝搬速度が大きく左右されるため、演算速度を上げるにはチップサイズや素子サイズを小さくするしかないためである。そのため、狭面積の論理ブロックやコアに素子を詰め込み、マルチコア・メニーコア化などの工夫がなされているが、論理ブロックやコアをつなぐための配線が新たな遅延を生み、演算の高速化に限界が見えつつある。
一方、光通信などで用いられる光配線や光パスゲートは、その配線経路内のCやRに無依存で光信号を伝播させることができる。またナノフォトニクスの進展により、光ゲートの消費エネルギーは飛躍的に改善され、そのエネルギーコスト[J/bit]は、CMOSゲートと光で同程度のレベルになりつつある。そのため、チップ内やチップ間の通信を光化する様々な研究がなされている。
その中の技術のひとつである光ニューラルネットワーク(NN)における情報処理は、入力信号に対するベクトル行列積と、その結果に対する活性化関数の適用で実施され、それぞれの回路は、光増幅器あるいは減衰器とユニタリ変換回路との組み合わせ、および可飽和吸収体などの光非線形素子により構成される(非特許文献1参照)。
ここで、N×Nユニタリ変換回路は、N(N−1)/2個の基本ゲートで構成される(非特許文献2)。基本ゲートは、1つのマッハツェンダー干渉計(Mach-Zehnder Interferometer、以下MZIとする)と位相シフタ(Phase shifter、以下PSとする)の組み合わせで構成される。つまり、ベクトル行列積、活性化ともに光を伝搬させることにより演算を実行しており、その演算遅延は、光信号経路長で決定され、ナノフォトニクスによる高速化が期待される。
一般的なニューラルネットワークの学習は、以下の手順で為される。まず、訓練用のデータからランダムに入力Xとそれに対応する答えTとを選び出し、現在の各ニューロンにおける重みWを使ってニューラルネットワークの出力Yを求める。そして、損失関数Lにより、出力Yと期待される答えTとの誤差を算出し、この誤差が小さくなるように、各ニューロンの重みWを次の関係式で更新する。
式(1)において、ηは学習係数、Sはバッチサイズである。ここで、ニューラルネットワークの入力側から出力側への信号の流れを順方向伝搬(フォワードプロパゲーション)、出力側から入力側への信号の流れを逆方向伝搬(バックプロパゲーション)と呼ぶこととする。ここで入力Xが、N段の伝達関数(Zi=Wii-1,Yi=Fi(Zi),i=1〜N,Y1=X,YN=Y)を通して,出力Yを求める場合、∂L/∂Wは偏微分の連鎖律によって下記式により求めることができる。
つまり、出力(L,Y)側からW方向に向かって解析的に偏微分値を順に導出することにより∂L/∂Wを計算し、各ニューロンにおける重みWを調整することができる。
このようなバックプロパゲーションによる学習のためには、ニューラルネットワークの回路定数が事前に判明している必要がある。
一方で、光をニューラルネットワークに用いた場合、回路定数が不明な場合が多く、また重みWの調整には経路途中の光の電界振幅と位相の情報が必要となるため、バックプロパゲーションによる学習が困難となる。
川上哲志他,"ナノフォトニック・ニューラルアクセラレータ向け性能評価環境の構築",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
本発明は、上記のような問題を鑑み、光ニューラルネットワークにおけるフォワードプロパゲーションによる学習を実現する光偏微分演算装置および光ニューラルネットワークを提供することを目的とする。
本発明の光偏微分演算装置は、出力光強度・位相の波長依存性を有する光デバイスによって構成され、入力された波長多重光信号に対する演算を行う光演算器と、この光演算器による演算後の波長多重光信号を受光し、前記光演算器の演算結果を示す電気信号を得ると共に、前記光演算器の演算結果の誤差の指標となる損失関数の偏微分値を示す電気信号を得る微分演算部とを備え、前記微分演算部は、前記光演算器から出力された波長多重光信号のうち第1の光信号を受光して、前記光演算器の演算結果を示す電気信号を得る第1の受光器と、前記光演算器から出力された波長多重光信号のうち前記第1の光信号と異なる波長の第2の光信号を受光する第2の受光器と、この第2の受光器と出力電流の向きが逆になるように接続され、前記光演算器から出力された波長多重光信号のうち前記第1、第2の光信号と異なる波長の第3の光信号を受光する第3の受光器と、前記第2、第3の受光器の接続点に接続された抵抗とを備え、前記抵抗の両端電圧が、前記損失関数の偏微分値を示すことを特徴とするものである。
また、本発明の光偏微分演算装置の1構成例において、前記微分演算部は、さらに、共鳴波長が前記第1の光信号の波長に設定され、前記光演算器から出力された波長多重光信号から前記第1の光信号を取り出して前記第1の受光器に入力する第1のリング共振器と、共鳴波長が前記第2の光信号の波長に設定され、前記光演算器から出力された波長多重光信号から前記第2の光信号を取り出して前記第2の受光器に入力する第2のリング共振器と、共鳴波長が前記第3の光信号の波長に設定され、前記光演算器から出力された波長多重光信号から前記第3の光信号を取り出して前記第3の受光器に入力する第3のリング共振器とを備えることを特徴とするものである。
また、本発明の光ニューラルネットワークは、前記光偏微分演算装置と、前記光偏微分演算装置の光演算器に設定される重みを、光ニューラルネットワークの学習時に前記損失関数の偏微分値に基づいて、前記損失関数が0に近づくように更新するパラメータ更新部とを備え、前記光演算器は、この光演算器に入力された波長多重光信号が示す入力値と前記重みの積和演算を行うマッハツェンダー干渉計からなるベクトル行列積演算部と、前記学習時に前記ベクトル行列積演算部から出力された波長多重光信号が示す推論値と前記学習時に光演算器に入力される光信号が示す正解値との差分を演算し、光ニューラルネットワークによって推論を行うときには前記ベクトル行列積演算部から出力された波長多重光信号をそのまま出力する差分演算部とから構成されることを特徴とするものである。
また、本発明の光ニューラルネットワークの1構成例において、前記ベクトル行列積演算部のマッハツェンダー干渉計は、第1、第2の2本の光導波路と、前記第1の光導波路に設けられ、入力ポートがマッハツェンダー干渉計の一方の入力ポートに接続された第1の位相シフタと、前記第1、第2の光導波路に設けられ、第1の入力ポートが前記第1の位相シフタの出力ポートに接続され、第2の入力ポートがマッハツェンダー干渉計の他方の入力ポートに接続された第1の方向性結合器と、前記第1の光導波路に設けられ、入力ポートが前記第1の方向性結合器の第1の出力ポートに接続された第2の位相シフタと、前記第1、第2の光導波路に設けられ、第1の入力ポートが前記第2の位相シフタの出力ポートに接続され、第2の入力ポートが前記第1の位相シフタの第2の出力ポートに接続され、第1の出力ポートがマッハツェンダー干渉計の一方の出力ポートに接続され、第2の出力ポートがマッハツェンダー干渉計の他方の出力ポートに接続された第2の方向性結合器とから構成され、前記パラメータ更新部は、前記第1、第2の位相シフタのうち少なくとも一方に与える制御信号によって前記重みの更新を行うことを特徴とするものである。
また、本発明の光ニューラルネットワークの1構成例において、前記ベクトル行列積演算部のマッハツェンダー干渉計は、さらに、前記第1の方向性結合器と前記第2の方向性結合器との間の位置の前記第2の光導波路の近傍に設けられた第4のリング共振器を備え、前記パラメータ更新部は、前記第1、第2の位相シフタと前記第4のリング共振器のうち少なくとも1つに与える制御信号によって前記重みの更新を行うことを特徴とするものである。
また、本発明の光ニューラルネットワークの1構成例において、前記ベクトル行列積演算部のマッハツェンダー干渉計は、さらに、前記第1の方向性結合器よりも前の位置の前記第2の光導波路の近傍に設けられた第5のリング共振器を備え、前記パラメータ更新部は、前記第1、第2の位相シフタと前記第4、第5のリング共振器のうち少なくとも1つに与える制御信号によって前記重みの更新を行うことを特徴とするものである。
本発明によれば、光演算器と微分演算部とを設けることにより、光ニューラルネットワークにおけるフォワードプロパゲーションによる学習を実現することができる。また、本発明では、光偏微分の多重化を実現し、回路定数が不明な光ニューラルネットワークにおいて、学習過程の偏微分演算の並列化を実現し、学習の高速化を実現することができる。
図1は、本発明の実施例に係る光偏微分演算装置の構成を示すブロック図である。 図2は、本発明の実施例に係る光演算器の演算器制御信号θに対する出力光信号の特性を示す図である。 図3は、本発明の実施例の対象となるニューラルネットワークの例を示す図である。 図4は、本発明の実施例に係る光ニューラルネットワークの構成を示すブロック図である。 図5は、本発明の実施例に係る光ニューラルネットワークにおいて推論を行う場合を説明する図である。 図6は、本発明の実施例に係る光ニューラルネットワークにおいて学習を行う場合を説明する図である。 図7は、損失関数の複数箇所の偏微分値の算出について説明する図である。 図8は、偏微分演算の並列化による学習の高速化を図る場合の光ニューラルネットワークの動作を説明する図である。 図9は、本発明の実施例に係る光ニューラルネットワークのベクトル行列積演算部の2×2MZIの構成を示す図である。 図10は、本発明の実施例に係る光ニューラルネットワークの差分演算部の2×2DCの構成を示す図である。 図11は、本発明の実施例に係るベクトル行列積演算部の2×2MZIの別の構成を示す図である。 図12は、本発明の実施例に係るベクトル行列積演算部の2×2MZIの分散特性を利用した損失関数の偏微分値の検出方法を説明する図である。 図13は、本発明の実施例に係るベクトル行列積演算部の2×2MZIの分散特性を利用した損失関数の偏微分値の検出方法を説明する図である。 図14は、本発明の実施例に係るベクトル行列積演算部の2×2MZIの別の構成を示す図である。 図15は、本発明の実施例に係るベクトル行列積演算部の2×2MZIの分散特性を利用した損失関数の偏微分値の検出方法を説明する図である。 図16は、本発明の実施例に係るベクトル行列積演算部の2×2MZIの分散特性を利用した損失関数の偏微分値の検出方法を説明する図である。 図17は、本発明の実施例に係る微分演算部のリング共振器と受光器による複数の偏微分値と複数の推論結果の検出について説明する図である。 図18は、本発明の実施例に係る光ニューラルネットワークのパラメータ更新部を実現するコンピュータの構成例を示すブロック図である。
[実施例]
以下、本発明の実施例について詳細に説明する。損失関数Lの重みWに関する偏微分∂L/∂Wは、重みWの変動に伴う損失関数Lの変動を意味しているため、順方向に信号を伝搬している系において、着目する重みWを変調すれば損失関数Lの変動を実測することができ、∂L/∂Wの数値変分値を導出することができる。つまりフォワードプロパゲーションによるニューラルネットワークの学習も可能である。
ただしこのような学習方法では、重みWの調整の試行回数が膨大となるため、通常のニューラルネットワークでは用いられない。
本実施例では、光の伝搬を利用することにより光ニューラルネットワークの学習の高速性を確保し、光の多重性を用いることで重みWの調整の試行回数を削減する手法を提供する。なお、本発明で用いる光信号は、光強度・位相によって入力値、推論値、正解値といった値を表す信号である。
最初に、光デバイスの波長依存性を有効活用した光偏微分演算装置について説明する。図1は本実施例に係る光偏微分演算装置の構成を示すブロック図である。
光偏微分演算装置は、波長多重光源1と、出力光強度・位相の波長依存性を有する光デバイスによって構成され、波長多重光源1から入力された波長多重光信号に対する演算を行う光演算器2と、光演算器2による演算後の波長多重光信号を受光し、光演算器2の演算結果を示す電気信号を得ると共に、光演算器2の演算結果の誤差の指標となる損失関数の偏微分値を示す電気信号を得る微分演算部3とから構成される。
波長多重光源1から照射された波長多重光信号は、光演算器2によって演算が施された後に微分演算部3によって検出される。
光演算器2は、波長依存性を有する光デバイスにより構成されているため、波長多重光信号の波長毎に極微小な演算結果(強度)のずれが生じる。
図2は、光演算器2の演算器制御信号θに対する出力光信号の特性を示す図である。図1、図2の例では、波長多重光源1から波長の異なる3つの光信号が入力され、これらの入力に対して光演算器2が3つの出力光信号Ored,Ogreen,Oblueを出力する。図2から明らかなように、出力光信号Ored,Ogreen,Oblueは演算器制御信号θによって偏移させることができる。また、上記のとおり、出力光信号Ored,Ogreen,Oblueには、微小なずれが生じている。この出力光信号Ored,Ogreen,Oblueのずれは、波長毎に演算器制御信号θが微少量αだけシフトする物理現象に起因する。本実施例は、このずれを活用して偏微分を実現する。
微分演算部3は、光演算器2の3つの出力光信号Ored,Ogreen,Oblueを受光する3つの受光器30−1,30−2,30−3と、抵抗31とから構成される。微分演算部3では、ずれが生じた出力光信号OredとOblueの差分演算と積算(除算)によって数値(中心)微分を実現する。
具体的には、差分演算は、光演算器2の出力光信号Oredを受光して出力電流(電気信号)Iredを出力する受光器30−1と出力光信号Oblueを受光して出力電流Iblueを出力する受光器30−3とを、出力電流Ired,Iblueが逆向きになるように互いの出力端子を接続することによる電流Ired,Iblueの合流(キルヒホッフの法則)によって実現する。
一方、積算(除算)は、減算によって得られた電流(Ired−Iblue)と抵抗との掛算、すなわち抵抗31の両端電圧Vdiffの計測(オームの法則)によって実現する。
したがって、図1の光偏微分演算装置で得られる出力は、演算器2の演算結果を光電変換した結果Igreen(光演算器2の出力光信号Ogreenを光電変換した受光器30−2の出力電流)と、その演算結果の演算器制御信号θに関する数値(中心)微分Vdiffとなる。
式(3)、式(4)において、xは入力値、f()は光演算器2の伝達関数である。また、抵抗31の値は1/(2α)に設定されている。
以上の光偏微分演算装置を用いた光ニューラルネットワークの学習アルゴリズムの実装法を説明する。対象とするニューラルネットワークの例を図3に示す。本ニューラルネットワークは、2入力の入力層10と、3出力の出力層11の2層で構成されており、3つの論理演算を実現(学習)する。
入力層10は、3つのニューロン100−1〜100−3からなる。ニューロン100−1〜100−3は、それぞれ入力値x1、入力値x2、固定値“1”を入力とする。ただし、これらニューロン100−1〜100−3は、信号の処理を行なわず、受け取った値を出力層11へ伝える。出力層11は、3つのニューロン110−1〜110−3からなる。ニューロン110−1〜110−3は、それぞれ入力値を処理して、出力値y1,y2,y3を出力する。
例えば図3の例では、ニューラルネットワークは、2つの入力値x1,x2のAND(論理積)の結果である出力値y1と、NAND(否定論理積)の結果である出力値y2と、OR(論理和)の結果である出力値y3とを出力する。例えば(x1,x2)=(1,0)の入力を与えた場合、ニューラルネットワークの出力は(y1,y2,y3)=(0,1,1)となる。
一般に、ニューラルネットワークにおいては、ニューロン110−1〜110−3において、それぞれ入力値と重みwとの積和演算の結果にバイアスを加算し、このバイアスを加算した後の値に対して活性化関数(非線形関数)を適用する。本実施例においては、入力値に対する重みをw、常に入力値“1”となるダミー入力をバイアスとし、それに対する重みをbとし、これらの積和演算を行う。また、活性化関数を恒等関数f(y)=yとしている。
これにより、本ニューラルネットにおける推論演算は、式(5)によって表すことができる。
式(5)において、w11はニューロン110−1の入力値x1に対する重み、w12はニューロン110−1の入力値x2に対する重み、w21はニューロン110−2の入力値x1に対する重み、w22はニューロン110−2の入力値x2に対する重み、w31はニューロン110−3の入力値x1に対する重み、w32はニューロン110−3の入力値x2に対する重みである。また、b1はニューロン110−1における積和演算の結果w111+w122に加算されるバイアスに対する重み、b2はニューロン110−2における積和演算の結果w211+w222に加算されるバイアスに対する重み、b3はニューロン110−3における積和演算の結果w311+w322に加算されるバイアスに対する重みである。
ニューラルネットワークにおける損失関数Lは、式(6)によって表すことができる。
ここで,t1,t2,t3はそれぞれニューラルネットワークによって得られる出力値である推論値y1,y2,y3に対する正解値である。損失関数Lは、推論値y1,y2,y3と正解値t1,t2,t3との差、すなわち現状の推論の出来の悪さを定量的に評価する指標となる。
ニューラルネットワークの学習は、損失関数Lの出力を0にすべく重みwおよびbの更新を繰り返す処理となる。その際に、損失関数Lの重みwおよびbに関する偏微分値に基づいて、重みwおよびbの更新量を決定する。したがって、上述の光偏微分演算装置をニューラルネットワークに応用するには、損失関数Lを演算する必要がある。つまり、ニューラルネットワークでの学習では推論におけるベクトル行列積演算部に加え、推論値と正解値との差分演算、ノルム演算、和算、ならびに微分演算(差分演算+除算)が必要となる。
図4は光ニューラルネットワークの構成を示すブロック図である。光ニューラルネットワークは、光ニューラルネットワークに入力される波長多重光信号が示す入力値・バイアス値と、それぞれに対する重みwおよびbとの積和演算を行う、波長依存性を有するベクトル行列積演算部20と、ベクトル行列積演算部20から出力される光信号が示す推論値y1,y2,y3と正解値t1,t2,t3との差分を演算する、波長依存性の無い差分演算部21と、光ニューラルネットワークの推論結果(演算結果)を示す電気信号を得ると共に、光ニューラルネットワークの推論結果の誤差の指標となる損失関数Lの偏微分値を示す電気信号を得る微分演算部22とから構成される。
光ニューラルネットワークには、1つの入力値x1を示す波長の異なる複数の光信号からなる波長多重光信号ms1と、1つの入力値x2を示す波長の異なる複数の光信号からなる波長多重光信号ms2と、1つのバイアス入力値“1”を示す波長の異なる複数の光信号からなる波長多重光信号ms3とがある。
ベクトル行列積演算部20と差分演算部21とは、図1の光演算器2を構成している。ベクトル行列積演算部20は、入力値と重みwおよびbとの積和演算のための複数の2×2MZI200と、3つの波長多重光信号をそれぞれ減衰させるアッテネータ201とから構成される。
後述するように、2×2MZI200を構成するPSは、波長依存性を有する。2×2MZI200を制御する信号は、図1の演算器制御信号θに相当する。アッテネータ201は例えば2×2MZIによって実現することができる。
なお、式(5)の個々の重み(w11,w12,w21,w22,w31,w32,b1,b2,b3)は、個々のMZI200によって実現されるのではなく、複数のMZI200の組み合わせによって実現される。例えばベクトル行列積演算部20が2つのPS(θ,φ)を有するMZI200の組み合わせで構成される場合、計算上の重み(w11,w12,w21,w22,w31,w32,b1,b2,b3)は,回路上はベクトル行列積演算部20に示すMZIとアッテネータの制御信号Θ(θj,φj,j=1〜m、mはベクトル行列積演算部を構成するMZI200の数)に相当する。
差分演算部21は、ベクトル行列積演算部20から出力される波長多重光信号が示す推論値y1,y2,y3と正解値t1,t2,t3との差分を演算する3つの2×2方向性結合器(Directional Coupler、以下DCとする)により構成される。
微分演算部22は、波長多重光信号の合波を行うことにより、差分演算部21の演算結果に対するノルム演算および和算を行う複数のリング共振器220と、3つの波長多重光信号を受光して差分演算部21の演算結果を示す電気信号を得る3つの受光器221と、ベクトル行列積演算部20が有する波長依存性によって強度にずれが生じた光信号の差分演算と積算(除算)とを行うための受光器222,223および抵抗224とから構成される。受光器222,223と抵抗224とは、図1の受光器30−1,30−3と抵抗31とに相当する。
図5は、図4に示した光ニューラルネットワークにおいて推論を行う場合を示している。なお、図5の「×」印は使用しないポートを示している。以降の図面においても使用しないポートに同様の「×」印を記すものとする。また、図5に示すように、差分演算部21は、3つの2×2DC210によって構成されている。
光ニューラルネットワークにおいて推論を行う場合は、学習済みの重みwおよびbに相当する制御信号Θをベクトル行列積演算部20に設定し、差分演算部21を構成する3つの2×2DC210の一方の入力ポートを無入力(“0”)とした状態で、光ニューラルネットワークに波長多重光信号ms1〜ms3を入力する。
これにより、微分演算部22の受光器221から、光ニューラルネットワークによる推論結果を示す電気信号を得ることができる。
図6は、図4に示した光ニューラルネットワークにおいて学習を行う場合を示している。光ニューラルネットワークにおいて学習を行う場合は、ベクトル行列積演算部20およびアッテネータ201に与える制御信号Θを任意の値とし、差分演算部21を構成する3つの2×2DC210の一方の入力ポートに正解値t1,t2,t3を示す光信号を入力した状態で、光ニューラルネットワークに波長多重光信号ms1〜ms3を入力すればよい。
抵抗224の値をη/(2α)に設定すると、微分演算部22の抵抗224の両端電圧Vdiffは、損失関数Lの制御信号Θに関する偏微分値∂L(w)/∂w、∂L(b)/∂bに、学習係数ηを掛けた結果を示す値となる。
パラメータ更新部23は、微分演算部22の抵抗224の両端電圧Vdiffに基づいて、損失関数Lが0に近づくように制御信号Θを更新する。具体的には、パラメータ更新部23は、ベクトル行列積演算部20の2×2MZI200に与える制御信号を、−Vdiff(−η×∂L(θ)/∂θ)および−Vdiff(−η×∂L(φ)/∂φ)に相当する分だけずらすようにすればよい。
制御信号Θは重みwおよびbに変換可能であるため、制御信号Θに関する偏微分値の算出ならびに値の更新は、理論上は重みwおよびbを更新することと等価である。すなわち、上述のプロセスは,ニューラルネットワークの学習(最適化)と等しい。
光ニューラルネットワークの学習においては、最適化パラメータΘ(θ,φ)の数だけ偏微分値を算出(勾配計算)して、パラメータを更新する必要がある。
微分演算部22のリング共振器220によって対象とする光信号を選択できるので、選択する光信号を変えることで、各制御信号θに関する偏微分値(−η×∂L(θ)/∂θ)を制御信号θ毎に求めることができる。つまり、パラメータ更新部23は、制御信号θの更新が可能となる。
同様に、リング共振器220による光信号の選択によって、制御信号φに関する偏微分値(−η×∂L(φ)/∂φ)を制御信号φ毎に求めることができ、パラメータ更新部23は、制御信号φ毎の更新が可能となる。
こうして、光ニューラルネットワークの学習が可能となる。
学習の際、ベクトル行列積演算部20の2×2MZI200およびアッテネータ201に与える制御信号は任意の値でよいため、製造誤差によって生じるデバイス毎のばらつきを考慮した制御信号Θの更新が可能となる。すなわち、デバイス毎のばらつきをチューニングせずにベクトル行列積演算部20を活用することが可能となる(自動チューニング)。なお、簡単な複数論理関数を実現する入力2出力3の2層線形パーセプトロンを対象とし、光ニューラルネットワークでの動作シミュレーションを行った結果、100%の正答率を達成できることを確認した。
上記のとおり、光ニューラルネットワークの学習においては、最適化パラメータΘ(θ,φ)の数だけ偏微分値を算出(勾配計算)して、パラメータを更新する必要があるため、学習に時間がかかる。
そこで、さらなる波長多重によって学習の高速化を実現する。これまでの説明においては3波長(1波長を推論に使用し、2波長を偏微分演算に使用)の活用を前提としてきた。しかしながら、本発明においてより多くの波長を活用することは本質的に可能であり、かつ、さらなる波長多重化は光ニューラルネットワークの学習の収束速度の向上、ならびに、勾配計算の並列化による学習の高速化を期待できる。
ニューラルネットワークの学習は、現時点の重みを起点として勾配方向へ重みを移動させる。波長依存性を活用した光偏微分演算装置は、現時点の重みを起点として近傍計算をしていることにほかならない。波長多重光信号の波長数を増加させることは、より遠方のパラメータで評価していることを意味する。従来の学習による重みwおよびbの更新を式(7)のように表すことができるとすると、さらなる波長多重化による偏微分演算の並列化による重みwおよびbの更新は式(8)のように表すことができる。
式(8)は偏微分演算の並列化による学習をn個並列に行うことを示している。図7は、損失関数Lの複数箇所の偏微分値∂L/∂wを算出する例を示している。この考え方は重みbについても同様である。
損失関数Lの各最適化パラメータ(重みwおよびb)に関する偏微分値は独立であるため、偏微分演算の並列化が可能である。
各々の偏微分演算に異なる波長を割り当てることで、図8に示すように、偏微分演算の並列化が可能になり、その結果、学習の高速化が実現できる可能性がある。
図8の例では、ベクトル行列積演算部20およびアッテネータ201に与える制御信号を任意の値とし、差分演算部21を構成する3つの2×2DC210の一方の入力ポートに正解値t1,t2,t3を示す光信号を入力した状態で、光ニューラルネットワークに波長多重光信号ms1〜ms3を入力する。
微分演算部22のリング共振器220によって対象とする2波長の光信号を選択し、対応する制御信号Θに関する偏微分値を抵抗224−1によって検出する。パラメータ更新部(図8では不図示)は、損失関数Lが0に近づくように、抵抗224−1の両端電圧Vdiffに基づいて、学習対象の2×2MZI200に与える制御信号Θをずらす。
同時に、別の学習対象の制御信号Θに関する偏微分値を抵抗224−2によって検出する。パラメータ更新部(図8では不図示)は、損失関数Lが0に近づくように、抵抗224−2の両端電圧Vdiffに基づいて、学習対象の2×2MZI200に与える制御信号Θをずらす。さらに、別の学習対象の制御信号Θに関する偏微分値を抵抗224−3によって検出し、この学習対象の制御信号Θを同様に更新する。
以下にフォワードプロパゲーションによる学習手順について説明する。図9はベクトル行列積演算部20の2×2MZI200の構成を示す図である。2×2MZI200は、入力ポートが2×2MZI200の第1の入力ポートに接続されたPS2000と、第1の入力ポートがPS2000の出力ポートに接続され、第2の入力ポートが2×2MZI200の第2の入力ポートに接続されたDC2001と、入力ポートがDC2001の第1の出力ポート(DC2001の第1の入力ポートに対するスルーポート)に接続されたPS2002と、第1の入力ポートがPS2002の出力ポートに接続され、第2の入力ポートがDC2001の第2の出力ポート(DC2001の第1の入力ポートに対するクロスポート)に接続され、第1の出力ポート(PS2002の光出力に対するスルーポート)が2×2MZI200の第1の出力ポートに接続され、第2の出力ポート(PS2002の光出力に対するクロスポート)が2×2MZI200の第2の出力ポートに接続されたDC2003とから構成される。図9の2004,2005は光導波路である。
2×2MZI200の波長依存性は、PS2000およびPS2002の配置される光導波路と、配置されない光導波路2005を伝搬する光の位相差により生じさせる。位相は、2π・n・L/λにより決まるので、屈折率n、導波路長Lについて両導波路間でアンバランスな設定を施すことにより導波路間の位相差を作り出すことができる。またはPS2000,2002や光導波路に用いられる屈折率に大きな波長依存性を持たせても良い。あるいは後述するように、共振器などの大きな構造分散を持つ構造をPSに適用する、または、導波路に付与しても波長依存性を作り出すことができる。
アッテネータ201は、2×2MZI200と同様の構成によって実現することができる。ただし、アッテネータ201の場合には、2×2MZI200における一方の出力ポートのみを使用し、他方を光信号を散逸させるためのポートとして使用することで光強度を減衰させることになる。代用として光を吸収・反射させる光減衰器を用いても良い。
図10は差分演算部21の2×2DC210の構成を示す図である。2×2DC210は、入力ポートが2×2DC210の第1の入力ポートに接続されたPS2100と、第1の入力ポートがPS2100の出力ポートに接続され、第2の入力ポートが2×2DC210の第2の入力ポートに接続され、第1の出力ポート(PS2100の光出力に対するスルーポート)が2×2DC210の第1の出力ポートに接続され、第2の出力ポート(PS2100の光出力に対するクロスポート)が2×2DC210の第2の出力ポートに接続されたDC2101とから構成される。PS2000,2002の設置により構造が対称ではなくなるため、そのアンバランスから若干の波長依存性は生じるが、一般的にその依存性は小さい、あるいはそれらが無視できる波長範囲で使用することが可能であり、本実施例でもその範囲で使用することとする。
ベクトル行列積演算部20の転送行列をW、光ニューラルネットワークに入力される波長多重光信号が示す入力値をX、光ニューラルネットワークの差分演算部21から出力される波長多重光信号が示す推論値をY、正解値をTとすると、入力値Xはベクトル行列積演算部20の各MZIのPSにより重み付けられ、推論値Yが出力される。また、上述のように損失関数Lの偏微分値が微分演算部22の抵抗224によって検出される。ここで、推論値Yおよび損失関数Lは式(9)、式(10)のようになる。
式(9)、式(10)における入力値X、推論値Y、正解値T、転送行列Wの要素は式(11)のように表すことができる。
なお、式(9)、式(10)の例は一般的な式を示しており、図3〜図8の例では、x3=“1”、w13=b1、w23=b2、w33=b3とした場合を示している。Wは特異値分解により、W=VΣUに分解できる。ここで、VとUはユニタリ行列であり、Σは非対角要素は0、かつ、対角要素は非負で降順の特異値(σ1≧σ2≧σ3≧…≧σr>0)を持つ行列である。また、rはWのランクに等しい。V,Σ,Uは、図4、図5、図6、図8で示す通りベクトル行列演算部20に対応する。
さて式(11)に示される転送行列は、下記に示される転送行列MおよびDの組み合わせで表現することができる。そのため、重みwの変化はMZIの位相の変化で表現することができる。そのため、式(2)におけるLのwに対する変化量は、Lの位相に対する変化量として取り扱うことが可能となる。そこで本実施例では、各MZI内の位相の変化がLに与える影響から偏微分値を求め、学習に適用することとする。
ここで、ベクトル行列積演算部20の2×2MZI200の転送行列Mの転送行列Mは、式(12)のようになる。
また、ベクトル行列積演算部20の2×2MZI200内のDC2001とPS2000の組み合わせにおける転送行列D、および差分演算部21の2×2DC210の転送行列Dは、式(13)のようになる。
差分演算部21においては、推論値yiの方位角を正解値tiの方位角から−π/2となるように、2×2DC210のPS2100に与える制御信号によって式(13)の位相角φを調整することにより、差分(yi−ti)を演算することができる。この差分演算の効果は2×2DC210の代わりに2×2MZI200を用いても得ることができる。
光ニューラルネットワークにおける学習は、以下の(I)〜(V)に示す手順を1エポックとして定義し、このエポックを繰り返すことで実行される。
(I)入力値X、正解値Tとして任意の固定値(訓練データ)を入力する。
(II)ベクトル行列積演算部20内の1番目の2×2MZI200内の、PS2000の位相角φ1とPS2002の位相角θ1とをこれらPS2000,2002に与える制御信号によって個別に変調し、損失関数Lの位相角φ1に関する偏微分値∂L/∂φ1と損失関数Lの位相角θ1に関する偏微分値∂L/∂θ1とを個別に求める。
(III)ベクトル行列積演算部20内の2番目の2×2MZI200内の、PS2000の位相角φ2とPS2002の位相角θ2とをこれらPS2000,2002に与える制御信号によって個別に変調し、損失関数Lの位相角φ2に関する偏微分値∂L/∂φ2と損失関数Lの位相角θ2に関する偏微分値∂L/∂θ2とを個別に求める。
(IV)ベクトル行列積演算部20内のm(mはベクトル行列積演算部20内の2×2MZI200の内、最終段の2×2MZI200の番号)番目の2×2MZI200内の、PS2000の位相角φmとPS2002の位相角θmとをこれらPS2000,2002に与える制御信号によって個別に変調し、損失関数Lの位相角φmに関する偏微分値∂L/∂φmと損失関数Lの位相角θmに関する偏微分値∂L/∂θmとを個別に求める。
(V)パラメータ更新部(図6のパラメータ更新部23)は、ベクトル行列積演算部20の各MZI200内のPS2000について求めた偏微分値∂L/∂φj(jは1〜m)に基づいて、当該PS2000の位相角φjを制御信号によって式(14)のように更新し、さらにPS2002について求めた偏微分値∂L/∂θjに基づいて、当該PS2002の位相角θjを制御信号によって式(15)のように更新する。パラメータ更新部は、このような更新をベクトル行列積演算部20のMZI200毎に行う。
式(14)、式(15)において、Sはバッチサイズ、ηは学習係数である。
以上の偏微分演算と位相角φ,θの更新は各MZI200内のPS2000,2002毎に実行されるため、ベクトル行列積演算部20に含まれるPS2000,2002の個数分の試行回数が必要となり、更に、1つのPSに関する損失関数Lの偏微分値を求めるためには、PS調整前後の損失関数Lの値を測定する必要がある。本実施例では、この偏微分演算を1回で実行する方法を提供する。
まず、着目する1つのPSにおいてその調整前後の損失関数Lの測定を1回で実行する方法を説明する。本実施例では、ベクトル行列積演算部20内の2×2MZI200に大きな分散特性を持たせるために、リング共振器を付加した構成を使用する。この場合の2×2MZI200の構成を図11に示す。
図11の2×2MZI200は、図9に示した2×2MZI200の2本の光導波路2004,2005のうち、PS2000,2002が設けられていない方の光導波路2005に対して、DC2001とDC2003との間の位置の光導波路2005の近傍にリング共振器2006を追加したものである。
リング共振器2006は、共鳴波長の調整部(不図示)を備えている。この調整部の例としては、リング共振器2006を構成する光導波路の屈折率を、例えば熱光学効果や電気光学効果により変化させてリング共振器2006の共鳴波長を制御する機構がある。
リング共振器2006の共鳴効果が、隣接する光導波路2005を伝搬する光の位相をδずらすとすれば、図11の2×2MZI200内のPS2000,2002の転送行列M’は式(16)のようになる。
したがって、図9における位相角θに対応する制御信号Θは、θ−δに対応する制御信号に置き換えられることとなる。つまり、位相角θまたは位相シフト量δ、あるいは位相角θと位相シフト量δの両方に制御信号Θを割り当てることによって2×2MZI200の調整が可能となる。
また、光ニューラルネットワークの学習は、損失関数Lの制御信号Θに関する偏微分値に基づいて、パラメータ更新部(図6のパラメータ更新部23)が、PS2002の位相角θおよびリング共振器2006の位相シフト量δのどちらか、あるいは位相角θと位相シフト量δの両方を調整することで実行される。上記のとおり、位相シフト量δは、パラメータ更新部がリング共振器2006の調整部に与える制御信号によって調整することができる。
リング共振器2006が光の位相をずらす効果は、図12に示すようにリング共振器2006の共鳴波長λ1において光の位相のずれの絶対値が最大のπとなる。例えば、λ1を中心波長(光ニューラルネットワークによる推論で使用する波長、すなわち受光器221の検出対象となる光の波長)とし、その前後のλ1 +とλ1 -の異なる波長(受光器222,223の検出対象となる光の波長)を光ニューラルネットワークの学習に使用すれば、波長λ1 +とλ1 -のそれぞれにおいて異なる位相シフト量δを設定することが可能となる。
波長λ1 +の光信号と波長λ1 -の光信号とを多重化した波長多重光信号を図4〜図6、図8に示した光ニューラルネットワークに入力することで、着目する制御信号Θに関する損失関数Lの偏微分値を微分演算部22によって求めることができる。
このような波長λ1を用いた光ニューラルネットワークの学習は、図12に示した関係より、位相シフト量δ=πの場合の損失関数Lの偏微分値を求めていることになる。このため、光ニューラルネットワークによって推論を行う場合にも波長λ1が使用され、位相シフト量φ=πにて推論が実行される。ただし、この位相条件では、波長λに対する位相の変化量が一番大きな波長λ1を推論に使用することになるため、推論を不安定にする欠点を有する。
そのため、本実施例では、光ニューラルネットワークの学習には2×2MZI200の分散特性を利用し、推論には分散特性を利用しないこととする。つまり、光ニューラルネットワークの学習時には、分散の大きな帯域(図12の例ではλ1 +とλ1 -)の光を使用し、光ニューラルネットワークによって推論を行うときには分散の小さな帯域(すなわちリング共振器2006に共鳴しない帯域)の光を使用することとする。
例えば、図13は、図12に示していないδ=−π〜0の領域とδ=0〜πの領域の特性を示したものであり、図12に示した関係は図13の関係と同じである。図12は、πを基準に位相を±側に位相をずらしたときの出力差を位相シフト量δ=π近傍の学習に利用していることを示している。位相をずらすことが目的であるならば、図13に示すように、ゼロ位相を基準にしても同様に出力差を得ることができる。つまり共鳴波長λ1から大きく外れた波長λ0を用いることにより、波長λ1を用いた位相シフト量δ=π近傍の学習を、波長λ0における位相シフト量δ=0近傍の学習に代替することが可能であり、波長λ0を光ニューラルネットワークによる推論に使用することができる。
次に、複数のPSに対する制御信号Θに関する損失関数Lの偏微分値を一括で求める方法について説明する。着目するPSの制御信号Θに関する損失関数Lの偏微分値を求めるためには、その他のPSに関する制御信号Θに依存する出力信号の変化を排除する必要がある。このような排除を実現するためには、着目するPSの制御信号Θにのみ波長依存性が現れ、その他のPSの制御信号Θについては波長依存性が無い、あるいは波長依存性が小さい状態を作り出せばよい。この波長依存性の違いは、個々の制御信号Θに、個別の共鳴波長を割り当てることで作り出すことができる。
波長依存性の違いを作り出すための、2×2MZI200の構成を図14に示す。図14の2×2MZI200は、図11に示した2×2MZI200の2本の光導波路2004,2005のうち、PS2000,2002が設けられていない方の光導波路2005に対して、DC2001よりも前の位置の光導波路2005の近傍にリング共振器2007を更に追加したものである。
リング共振器2007の共鳴効果が、隣接する光導波路2005を伝搬する光の位相をψずらし、リング共振器2006の共鳴効果が、隣接する光導波路2005を伝搬する光の位相をδずらすとすれば、図14の2×2MZI200内のPS2000,2002の転送行列M”は式(17)のようになる。
図11の場合と同様に、図9における位相角θに対応する制御信号Θは、θ−δに対応する制御信号に置き換えられることになる。つまり、位相角θまたは位相シフト量δ、あるいは位相角θと位相シフト量δの両方に制御信号Θを割り当てることによって、2×2MZI200の調整が可能となる。上記で説明したとおり、位相シフト量δは、リング共振器2006の調整部に与える制御信号によって調整することができる。
さらに、図14の構成では、図9における位相角φに対応する制御信号Θは、φ−ψに対応する制御信号に置き換えられることになる。つまり、位相角φまたは位相シフト量ψ、あるいは位相角φと位相シフト量ψの両方に制御信号Θを割り当てることによって、2×2MZI200の調整が可能となる。リング共振器2006と同様に、リング共振器2007は、共鳴波長の調整部(不図示)を備えている。
光ニューラルネットワークの学習は、損失関数Lの制御信号Θに関する偏微分値に基づいて、パラメータ更新部(図6のパラメータ更新部23)が、PS2000の位相角φおよびリング共振器2007の位相シフト量ψのどちらか、あるいは位相角φと位相シフト量ψの両方を調整することで実行される。位相シフト量ψは、パラメータ更新部がリング共振器2007の調整部に与える制御信号によって調整することができる。
リング共振器2006とリング共振器2007とが光の位相をずらす効果を、図15に示す。図15では、λ1をリング共振器2006の共鳴波長とし、λ’1をリング共振器2007の共鳴波長としている。すなわち、図15の500はリング共振器2006による光の位相のずれを示し、501はリング共振器2007による光の位相のずれを示している。
例えば受光器222,223の組でλ1 +とλ1 -の異なる波長の光信号を検出すれば、損失関数Lのδに対応する制御信号Θに関する偏微分値を求めることができ、同時に別の受光器222,223の組でλ’1 +とλ’1 -の異なる波長の光信号を検出すれば、損失関数Lのψに対応する制御信号Θに関する偏微分値を求めることができる。
このような波長λ1,λ’1を用いた光ニューラルネットワークの学習は、図15に示した関係より、位相シフト量δ=ψ=πの場合の損失関数Lの偏微分値を求めていることになる。
一方、図16は、図15に示していないδ=−π〜0の領域とδ=0〜πの領域の特性を示したものである。図12、図13での説明と同様に、波長λ1,λ’1から大きく外れた波長λ0を光ニューラルネットワークによる推論に使用することができる。
図17は微分演算部22のリング共振器と受光器による複数の偏微分値と複数の推論結果の検出について説明する図である。
図17の例では、微分演算部22内のリング共振器220−1〜220−3の共鳴波長をλ1 -、リング共振器220−4〜220−6の共鳴波長をλ1 +、リング共振器220−7〜220−9の共鳴波長をλ’1 -、リング共振器220−10〜220−12の共鳴波長をλ’1 +としている。
これにより、差分演算部21から出力された波長多重光信号に含まれる波長λ1 -の光をリング共振器220−1〜220−3によって取り出して、受光器222−1〜222−3で電流(電気信号)に変換することができ、波長多重光信号に含まれる波長λ1 +の光をリング共振器220−4〜220−6によって取り出して、受光器223−1〜223−3で電流に変換することができる。
その結果、受光器222−1〜222−3と受光器223−1〜223−3との接続点に接続された抵抗224−1の両端電圧によって、損失関数Lのδに対応する制御信号Θに関する偏微分値を求めることができる。
同時に、差分演算部21から出力された波長多重光信号に含まれる波長λ’1 -の光をリング共振器220−7〜220−9によって取り出して、受光器222−4〜222−6で電流に変換することができ、波長多重光信号に含まれる波長λ’1 +の光をリング共振器220−10〜220−12によって取り出して、受光器223−4〜223−6で電流に変換することができる。
その結果、受光器222−4〜222−6と受光器223−4〜223−6との接続点に接続された抵抗224−2の両端電圧によって、損失関数Lのψに対応する制御信号Θに関する偏微分値を求めることができる。
リング共振器220から受光器221〜223への光の受け渡しは、リング共振器220の近傍に設けられた光導波路225〜227を介して行われる。
なお共鳴波長から大きく外れた波長λ0においては2×2MZI200内のリング共振器2006および2007による位相シフトの影響をほぼ受けないため、PS2002およびPS2000でこの機能を代替する。つまり式(17)における位相関係より、学習時に2×2MZI200内のリング共振器2006の位相δをΔδだけずらす場合、代わりに対応するPS2002の位相θを−Δδだけずらすことで同様の効果をえることとする。また、2×2MZI200内のリング共振器2007の位相ψをΔψだけずらす場合、代わりに対応するPS2000の位相φを−Δψだけずらすことで同様の効果を得ることとする。
もちろん、位相δ、ψを直接ずらすために、リング共振器2006および2007の共鳴波長λ1およびλ’1をずらしても良く、使用する光信号の波長をλ1およびλ’1からずらしても良い。これらの場合は、最終的に調整された波長λ1およびλ’1を推論に使用することとする。
使用する光信号の波長をずらす場合は、リング共振器220−1〜220−12には、パラメータ更新部(図6のパラメータ更新部23)から制御信号を与えるようにすればよい。パラメータ更新部は、学習時に2×2MZI200内のリング共振器2006に共鳴させる光信号の波長λ1をずらした場合、波長λ1をずらした分だけ、リング共振器220−1〜220−3の共鳴波長λ1 -とリング共振器220−4〜220−6の共鳴波長λ1 +とをずらす。また、パラメータ更新部は、2×2MZI200内のリング共振器2007に共鳴させる光信号の波長λ’1をずらした場合、波長λ’1をずらした分だけ、リング共振器220−7〜220−9の共鳴波長λ’1 -とリング共振器220−10〜220−12の共鳴波長λ’1 +とをずらす。
こうして、リング共振器2006,2007,220と受光器222,223と抵抗224を増設すれば、一度に求めることのできる偏微分値の数を増やすことができる。
また、光ニューラルネットワークによる推論には分散の小さな帯域の波長を使用するため、2×2MZI200内のリング共振器2006,2007に共鳴しない信号の波長数を増やし易く、リング共振器220と受光器221の増設によって検出波長数を増やすことにより推論の波長多重化にも対応が可能である。
例えば図17の例では、微分演算部22内のリング共振器220−13〜220−15の共鳴波長をλ0、リング共振器220−16〜220−18の共鳴波長をλ’0としている。これにより、差分演算部21から出力された波長多重光信号に含まれる波長λ0の光をリング共振器220−13〜220−15によって取り出して、受光器221−1〜221−3で電流(電気信号)に変換することができ、光ニューラルネットワークの推論結果を得ることができる。同時に、波長多重光信号に含まれる波長λ’0の光をリング共振器220−16〜220−18によって取り出して、受光器221−4〜221−6で電流に変換することができ、光ニューラルネットワークの別の推論結果を得ることができる。
なお、図17の例では、偏微分演算に用いる1組の波長の光のうち、波長の低い方の光を受光器222側で検出し、波長の高い方の光を受光器223で検出しているが、これに限るものではなく、波長の低い方の光を受光器223側で検出し、波長の高い方の光を受光器222側で検出してもよい。
本実施例で説明した光ニューラルネットワークのうち、パラメータ更新部23は、CPU(Central Processing Unit)、記憶装置及びインタフェースを備えたコンピュータと、これらのハードウェア資源を制御するプログラムによって実現することができる。このコンピュータの構成例を図18に示す。コンピュータは、CPU300と、記憶装置301と、インターフェース装置(以下、I/Fと略する)302とを備えている。I/F302には、例えば微分演算部22の抵抗224の両端電圧を検出するハードウェア、ベクトル行列積演算部20の2×2MZI200内のPS2000,2002に与える制御信号を生成するハードウェア、2×2MZI200内のリング共振器2006,2007に与える制御信号を生成するハードウェア、微分演算部22内のリング共振器220に与える制御信号を生成するハードウェア等が接続される。このようなコンピュータにおいて、本発明を実現させるためのプログラムは記憶装置301に格納される。CPU300は、記憶装置301に格納されたプログラムに従って本実施例で説明した処理を実行する。
本発明は、光ニューラルネットワークに適用することができる。
1…波長多重光源、2…光演算器、3…微分演算部、10…入力層、11…出力層、20…ベクトル行列積演算部、21…差分演算部、22…微分演算部、23…パラメータ更新部、30−1〜30−3、221〜223…受光器、31、224…抵抗、100−1〜100−3、110−1〜110−3…ニューロン、200…2×2マッハツェンダー干渉計、201…アッテネータ、210…2×2方向性結合器、220,2006,2007…リング共振器、2000,2002,2100…位相シフタ、2001,2003,2101…方向性結合器、225〜227,2004,2005…光導波路。

Claims (6)

  1. 出力光強度・位相の波長依存性を有する光デバイスによって構成され、入力された波長多重光信号に対する演算を行う光演算器と、
    この光演算器による演算後の波長多重光信号を受光し、前記光演算器の演算結果を示す電気信号を得ると共に、前記光演算器の演算結果の誤差の指標となる損失関数の偏微分値を示す電気信号を得る微分演算部とを備え、
    前記微分演算部は、
    前記光演算器から出力された波長多重光信号のうち第1の光信号を受光して、前記光演算器の演算結果を示す電気信号を得る第1の受光器と、
    前記光演算器から出力された波長多重光信号のうち前記第1の光信号と異なる波長の第2の光信号を受光する第2の受光器と、
    この第2の受光器と出力電流の向きが逆になるように接続され、前記光演算器から出力された波長多重光信号のうち前記第1、第2の光信号と異なる波長の第3の光信号を受光する第3の受光器と、
    前記第2、第3の受光器の接続点に接続された抵抗とを備え、
    前記抵抗の両端電圧が、前記損失関数の偏微分値を示すことを特徴とする光偏微分演算装置。
  2. 請求項1記載の光偏微分演算装置において、
    前記微分演算部は、
    さらに、共鳴波長が前記第1の光信号の波長に設定され、前記光演算器から出力された波長多重光信号から前記第1の光信号を取り出して前記第1の受光器に入力する第1のリング共振器と、
    共鳴波長が前記第2の光信号の波長に設定され、前記光演算器から出力された波長多重光信号から前記第2の光信号を取り出して前記第2の受光器に入力する第2のリング共振器と、
    共鳴波長が前記第3の光信号の波長に設定され、前記光演算器から出力された波長多重光信号から前記第3の光信号を取り出して前記第3の受光器に入力する第3のリング共振器とを備えることを特徴とする光偏微分演算装置。
  3. 請求項1または2記載の光偏微分演算装置と、
    前記光偏微分演算装置の光演算器に設定される重みを、光ニューラルネットワークの学習時に前記損失関数の偏微分値に基づいて、前記損失関数が0に近づくように更新するパラメータ更新部とを備え、
    前記光演算器は、
    この光演算器に入力された波長多重光信号が示す入力値と前記重みの積和演算を行うマッハツェンダー干渉計からなるベクトル行列積演算部と、
    前記学習時に前記ベクトル行列積演算部から出力された波長多重光信号が示す推論値と前記学習時に光演算器に入力される光信号が示す正解値との差分を演算し、光ニューラルネットワークによって推論を行うときには前記ベクトル行列積演算部から出力された波長多重光信号をそのまま出力する差分演算部とから構成されることを特徴とする光ニューラルネットワーク。
  4. 請求項3記載の光ニューラルネットワークにおいて、
    前記ベクトル行列積演算部のマッハツェンダー干渉計は、
    第1、第2の2本の光導波路と、
    前記第1の光導波路に設けられ、入力ポートがマッハツェンダー干渉計の一方の入力ポートに接続された第1の位相シフタと、
    前記第1、第2の光導波路に設けられ、第1の入力ポートが前記第1の位相シフタの出力ポートに接続され、第2の入力ポートがマッハツェンダー干渉計の他方の入力ポートに接続された第1の方向性結合器と、
    前記第1の光導波路に設けられ、入力ポートが前記第1の方向性結合器の第1の出力ポートに接続された第2の位相シフタと、
    前記第1、第2の光導波路に設けられ、第1の入力ポートが前記第2の位相シフタの出力ポートに接続され、第2の入力ポートが前記第1の位相シフタの第2の出力ポートに接続され、第1の出力ポートがマッハツェンダー干渉計の一方の出力ポートに接続され、第2の出力ポートがマッハツェンダー干渉計の他方の出力ポートに接続された第2の方向性結合器とから構成され、
    前記パラメータ更新部は、前記第1、第2の位相シフタのうち少なくとも一方に与える制御信号によって前記重みの更新を行うことを特徴とする光ニューラルネットワーク。
  5. 請求項4記載の光ニューラルネットワークにおいて、
    前記ベクトル行列積演算部のマッハツェンダー干渉計は、
    さらに、前記第1の方向性結合器と前記第2の方向性結合器との間の位置の前記第2の光導波路の近傍に設けられた第4のリング共振器を備え、
    前記パラメータ更新部は、前記第1、第2の位相シフタと前記第4のリング共振器のうち少なくとも1つに与える制御信号によって前記重みの更新を行うことを特徴とする光ニューラルネットワーク。
  6. 請求項5記載の光ニューラルネットワークにおいて、
    前記ベクトル行列積演算部のマッハツェンダー干渉計は、
    さらに、前記第1の方向性結合器よりも前の位置の前記第2の光導波路の近傍に設けられた第5のリング共振器を備え、
    前記パラメータ更新部は、前記第1、第2の位相シフタと前記第4、第5のリング共振器のうち少なくとも1つに与える制御信号によって前記重みの更新を行うことを特徴とする光ニューラルネットワーク。
JP2018212031A 2018-11-12 2018-11-12 光偏微分演算装置および光ニューラルネットワーク Active JP7103602B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018212031A JP7103602B2 (ja) 2018-11-12 2018-11-12 光偏微分演算装置および光ニューラルネットワーク

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018212031A JP7103602B2 (ja) 2018-11-12 2018-11-12 光偏微分演算装置および光ニューラルネットワーク

Publications (2)

Publication Number Publication Date
JP2020079980A true JP2020079980A (ja) 2020-05-28
JP7103602B2 JP7103602B2 (ja) 2022-07-20

Family

ID=70801784

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018212031A Active JP7103602B2 (ja) 2018-11-12 2018-11-12 光偏微分演算装置および光ニューラルネットワーク

Country Status (1)

Country Link
JP (1) JP7103602B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112232487A (zh) * 2020-10-19 2021-01-15 中国科学院半导体研究所 光学神经网络芯片及其计算方法
CN112989701A (zh) * 2021-03-15 2021-06-18 华中科技大学 一种sgdbr可调谐半导体激光器的波长调谐方法
CN113095482A (zh) * 2021-04-06 2021-07-09 西安邮电大学 基于bp神经网络的拉曼放大器增益值计算方法及系统
CN113657588A (zh) * 2021-08-19 2021-11-16 山东云海国创云计算装备产业创新中心有限公司 一种实现光学神经网络的方法及系统
CN113673677A (zh) * 2021-08-18 2021-11-19 山东云海国创云计算装备产业创新中心有限公司 一种非线性激活函数relu的实现方法、设备及介质
CN115494912A (zh) * 2022-11-18 2022-12-20 中国科学技术大学 实现多阶微分运算的光学芯片、参数确定方法及运算设备
WO2023062510A1 (en) * 2021-10-15 2023-04-20 3M Innovative Properties Company Decorative film for a vehicle interior and anti-scatter film

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002525597A (ja) * 1998-09-22 2002-08-13 イギリス国 光学位相検出器
JP2016213379A (ja) * 2015-05-12 2016-12-15 富士通株式会社 多波長レーザ光源及び波長多重通信システム
US20170351293A1 (en) * 2016-06-02 2017-12-07 Jacques Johannes Carolan Apparatus and Methods for Optical Neural Network
JP2018160200A (ja) * 2017-03-24 2018-10-11 富士通株式会社 ニューラルネットワークの学習方法、ニューラルネットワークの学習プログラム及びニューラルネットワークの学習装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002525597A (ja) * 1998-09-22 2002-08-13 イギリス国 光学位相検出器
JP2016213379A (ja) * 2015-05-12 2016-12-15 富士通株式会社 多波長レーザ光源及び波長多重通信システム
US20170351293A1 (en) * 2016-06-02 2017-12-07 Jacques Johannes Carolan Apparatus and Methods for Optical Neural Network
JP2018160200A (ja) * 2017-03-24 2018-10-11 富士通株式会社 ニューラルネットワークの学習方法、ニューラルネットワークの学習プログラム及びニューラルネットワークの学習装置

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112232487A (zh) * 2020-10-19 2021-01-15 中国科学院半导体研究所 光学神经网络芯片及其计算方法
CN112232487B (zh) * 2020-10-19 2023-09-22 中国科学院半导体研究所 光学神经网络芯片及其计算方法
CN112989701A (zh) * 2021-03-15 2021-06-18 华中科技大学 一种sgdbr可调谐半导体激光器的波长调谐方法
CN112989701B (zh) * 2021-03-15 2022-03-18 华中科技大学 一种sgdbr可调谐半导体激光器的波长调谐方法
CN113095482A (zh) * 2021-04-06 2021-07-09 西安邮电大学 基于bp神经网络的拉曼放大器增益值计算方法及系统
CN113095482B (zh) * 2021-04-06 2024-01-12 西安邮电大学 基于bp神经网络的拉曼放大器增益值计算方法及系统
CN113673677A (zh) * 2021-08-18 2021-11-19 山东云海国创云计算装备产业创新中心有限公司 一种非线性激活函数relu的实现方法、设备及介质
CN113673677B (zh) * 2021-08-18 2023-08-08 山东云海国创云计算装备产业创新中心有限公司 一种非线性激活函数relu的实现方法、设备及介质
CN113657588A (zh) * 2021-08-19 2021-11-16 山东云海国创云计算装备产业创新中心有限公司 一种实现光学神经网络的方法及系统
CN113657588B (zh) * 2021-08-19 2023-08-18 山东云海国创云计算装备产业创新中心有限公司 一种实现光学神经网络的方法及系统
WO2023062510A1 (en) * 2021-10-15 2023-04-20 3M Innovative Properties Company Decorative film for a vehicle interior and anti-scatter film
CN115494912A (zh) * 2022-11-18 2022-12-20 中国科学技术大学 实现多阶微分运算的光学芯片、参数确定方法及运算设备

Also Published As

Publication number Publication date
JP7103602B2 (ja) 2022-07-20

Similar Documents

Publication Publication Date Title
JP7103602B2 (ja) 光偏微分演算装置および光ニューラルネットワーク
Hughes et al. Training of photonic neural networks through in situ backpropagation and gradient measurement
Pai et al. Parallel programming of an arbitrary feedforward photonic network
Tait et al. Feedback control for microring weight banks
Pérez et al. Principles, fundamentals, and applications of programmable integrated photonics
Shokraneh et al. A single layer neural network implemented by a $4\times 4$ MZI-based optical processor
CN109639359A (zh) 基于微环谐振器的光子神经网络卷积层芯片
US20210192342A1 (en) Training of Photonic Neural Networks Through in situ Backpropagation
US10627849B1 (en) Reservoir computing operations using multi-mode photonic integrated circuits
KR20230062829A (ko) 결맞음 광 컴퓨팅 아키텍처
Huang et al. Programmable matrix operation with reconfigurable time-wavelength plane manipulation and dispersed time delay
Shao et al. Generalized robust training scheme using genetic algorithm for optical neural networks with imprecise components
Ishihara et al. An optical neural network architecture based on highly parallelized WDM-multiplier-accumulator
CN111198593B (zh) 一种超线程光子计算结构
Pai et al. Power monitoring in a feedforward photonic network using two output detectors
EP3488275B1 (en) Method and apparatus for obtaining optical measurements in a device handling split-beam optical signals
US20230351167A1 (en) Frequency multiplexed photonic neural networks
CN115905792A (zh) 一种用于光学实数矩阵计算的马赫曾德尔干涉仪网络
US20230163859A1 (en) Optical routing network-based quantum array control
CN113392965B (zh) 一种哈达玛积的实现方法、设备及存储介质
Xu et al. Performance evaluation of an integrated photonic convolutional neural network based on delay buffering and wavelength division multiplexing
Bui et al. Coherent Optical Convolution Processor Based on MMI Structures for Deep Learning Applications
WO2023091675A1 (en) Optical neural network with gain from parity time optical couplers
US20220327369A1 (en) Simultaneous measurements of gradients in optical networks
US11402577B2 (en) Analog optic memory and signal processing

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20181112

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210512

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220314

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220329

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220517

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220621

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220628

R150 Certificate of patent or registration of utility model

Ref document number: 7103602

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150