(57)【要約】【課題】光電変換を行わずに重み学習を高速に処理できるニューラルネットワーク光学習装置を提供する。【解決手段】最初の学習ステップではコヒーレント光源から重み係数の初期値にそれぞれ対応する振幅で且つ一定の繰り返し周期を持つｎ個の初期値重みパルス列と教師値に対応する振幅の１個の教師パルスとを生成し、２回目以降の学習ステップでは教師パルスのみを生成する入力部１０と、該重みパルス列の光パルスを分岐させ、最初の学習ステップでは該分岐させた初期値重みパルス列の光パルスに、対応する学習データを乗じ、２回目以降の学習ステップでは分岐させた更新重み光パルスに、対応する学習データを乗じる乗算部２０と、重みパルス列に学習データを乗じて結合した光パルスに、該光パルスに対して位相を１８０度反転した教師パルスを結合させたコスト値パルスを生成する加算部３０と、更新重み光パルスの振幅を変化させる学習部４０とを備える。【選択図】図１
2018205864.tif 000002
【特許請求の範囲】
【請求項１】
単層型ニューラルネットワークの重みの更新を繰り返すニューラルネットワーク光学習装置であって、
ｎ個の学習データのそれぞれに対応する重み係数の初期値と学習目標を表す教師値を入力とし、最初の学習ステップではコヒーレント光源から前記重み係数の初期値にそれぞれ対応する振幅で且つ一定の繰り返し周期を持つｎ個の初期値重みパルス列と、前記教師値に対応する振幅の１個の教師パルスとを生成し、２回目以降の学習ステップでは前記教師パルスのみを生成する入力部と、
ｎ個の前記初期値重みパルス列又は更新したｎ個の更新重みパルス列を入力とし、該重みパルス列のそれぞれの光パルスを分岐させ、最初の学習ステップ（ｍ＝１）では分岐させた前記初期値重みパルス列の光パルスのそれぞれに、対応する前記学習データを乗じ、２回目以降の学習ステップ（ｍ≧２）では分岐させた前記更新重みパルス列のそれぞれに、対応する前記学習データを乗じる乗算部と、
前記重みパルス列にそれぞれ対応する前記学習データを乗じて結合した光パルスに対して、位相を１８０度反転した前記教師パルスを結合させたコスト値パルスを生成する加算部と、
前記コスト値パルスを入力とし、該コスト値パルスの振幅が小さくなるように前記更新重みパルス列のそれぞれの光パルスの振幅を変化させる学習部と
を備えることを特徴とするニューラルネットワーク光学習装置。
【請求項２】
請求項１に記載したニューラルネットワーク光学習装置において、
前記入力部は、
前記初期値重みパルス列と前記教師パルスのそれぞれに対応する光パルスを生成する1個以上のコヒーレント光源と、
前記コヒーレント光源が出力する光パルスの振幅を、前記重み係数の初期値及び前記教師値にそれぞれ対応する振幅に変換する１個以上の第１光フィルタと
を備えることを特徴とするニューラルネットワーク光学習装置。
【請求項３】
請求項１に記載したニューラルネットワーク光学習装置において、
前記乗算部は、
前記重みパルス列のそれぞれの光パルスを、ｎ個の光パルスに等分岐させる第２光分岐部と、
前記ｎ個の光パルスのそれぞれに対応し、各々の光パルスをｎ−１個から０個まで順に遅延させる複数の第１遅延線と、
複数の前記第１遅延線のそれぞれに対応し、前記ｎ個の光パルスのそれぞれに対応する前記学習データを乗じる複数の第２光フィルタと
を備えることを特徴とするニューラルネットワーク光学習装置。
【請求項４】
請求項１に記載したニューラルネットワーク光学習装置において、
前記乗算部は、
前記重みパルス列の光パルスのそれぞれに、対応する前記学習データを同期させて乗じる1個の第２光フィルタと、
前記第２光フィルタの出力する光パルスを、ｎ個の光パルスに等分岐させる第２光分岐部と、
前記ｎ個の光パルスのそれぞれに対応し、各々の光パルスを当該光パルスのｎ−１個から０個まで順に遅延させる複数の第１遅延線と
を備えることを特徴とするニューラルネットワーク光学習装置。
【請求項５】
請求項１に記載したニューラルネットワーク光学習装置において、
前記加算部は、
前記重みパルス列にそれぞれ対応する前記学習データを乗じた複数の光パルスを同位相で結合し、前記学習データを乗じた複数の光パルスに対して位相を１８０度反転した前記教師パルスを結合させる第３光結合部と、
前記第３光結合部が順番に出力するｎ番目の光パルスのみを通過させる第２光スイッチと
を備えることを特徴とするニューラルネットワーク光学習装置。
【請求項６】
請求項１に記載したニューラルネットワーク光学習装置において、
前記学習部は、
前記コスト値パルスをｎ個の光パルスに等分岐させる第３光分岐部と、
ｎ個の光パルスのそれぞれに対応し、各々の光パルスを０個からｎ個まで順に遅延させる複数の第２遅延線と、
複数の前記第２遅延線のそれぞれに対応し、前記ｎ個の光パルスのそれぞれに、対応する前記学習データと所定の定数である学習係数とを乗じた重みの更新量を生成する複数の第３光フィルタと、
ｍ回目の学習ステップにおいて、ｍ−１回目の学習ステップの更新重みパルスのそれぞれと、該更新重みパルスの位相に対して位相を１８０度反転した前記第３光フィルタが出力する重みの更新量のそれぞれとを結合させた更新重みパルス列を生成する第４光結合器と、
前記第４光結合器が出力するｍ回目の更新重みパルス列をそのまま前記乗算部に出力し、該ｍ回目の更新重みパルス列を１回の学習ステップ分遅延させたｍ−１回目の学習ステップの更新重みパルス列を生成し、該ｍ−１回目の学習ステップの更新重みパルス列を前記第４光結合器に出力する第４光分岐部と
を備えることを特徴とするニューラルネットワーク光学習装置。
【請求項７】
請求項１に記載したニューラルネットワーク光学習装置において、
前記学習部は、
前記コスト値パルスをｎ個の光パルスに等分岐させる第２光分岐部と、
ｎ個の光パルスのそれぞれに対応し、各々の光パルスを０個分からｎ個分まで順に遅延させる複数の第２遅延線と、
複数の前記第２遅延線からそれぞれ出力される光パルスを結合させて光パルス列を生成する第５光結合部と、
前記第５光結合部が出力する光パルス列のそれぞれの光パルスに、対応する前記学習データと所定の定数である学習係数とを乗じた重みの更新量のパルス列を生成する第３光フィルタと、
ｍ回目の学習ステップにおいて、ｍ−１回目の学習ステップの更新重みパルス列のそれぞれと、該更新重みパルス列の光パルスの位相に対して位相を１８０度反転した前記第３光フィルタが出力する重みの更新量のパルス列のそれぞれとを結合させて更新重みパルス列を生成する光結合器と、
前記光結合器が出力するｍ回目の更新重みパルス列をそのまま前記乗算部に出力し、該ｍ回目の更新重みパルス列を１回の学習ステップ分遅延させたｍ−１回目の学習ステップの更新重みパルス列を生成し、該ｍ−１回目の学習ステップの更新重みパルス列を前記光結合器に出力する第４光分岐部と
を備えることを特徴とするニューラルネットワーク光学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、光部品で構成されたニューラルネットワーク光学習装置に関する。
【背景技術】
【０００２】
近年の人工知能は、ディープラーニングの出現によって目覚ましい進展を続けており、多岐に渡る産業応用の拡大に伴って、そのビジネス規模は指数関数的に急成長を遂げると予想されている。ディープラーニングとは、階層構造のニューラルネットワークを用いる機械学習法のことである。
【０００３】
その方法は、シナプス重み等の学習すべきパラメータを微少量変化させ、誤差関数に及ぼす影響をモニタすることで、パラメータの修正量を算出する方法である。その学習データ数とシナプス数が大規模化し、演算量の増加が深刻化している。
【０００４】
そこで、ディープラーニングを活用して様々な問題を解決するには、ニューラルネットワークの学習を高速化するハードウェアが求められている。
【０００５】
一般に、ニューラルネットワークの学習装置としては、トランジスタ回路を用いた演算器が普及しており、数億個を越える数のトランジスタが搭載されたＣＰＵやＧＰＵが用いられる。これらの演算器を大規模に集積し、並列処理を行うことで高速化する方法が用いられる。この方法では、システムサイズと熱冷却の問題から今後大きな性能向上が見込めない状況である。
【０００６】
システムサイズと熱冷却の問題を解決する方法として、光を信号の伝送媒体として用いる光ニューラルネットワークが、ディープラーニングを高速化するハードウェアの候補として有力である（非特許文献１）。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】石川正俊、「光コンピュータと並列学習情報処理」、計測と制御27.12(1988):1115-1122.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記文献に開示された従来の光ニューラルネットワークは、光信号のみならず電気信号も用いて交互に演算させるため、光電変換を行う必要がある。そのため、光と電気を切り替える際に信号強度のロスや時間遅延が生じ、演算時間と消費電力を増大させるという課題がある。
【０００９】
本発明は、この課題に鑑みてなされたものであり、ニューラルネットワークの重み学習を高速化する目的で、光電変換を行わずに重み学習を高速に処理できるニューラルネットワーク光学習装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本実施形態の一態様に係るニューラルネットワーク光学習装置は、単層型ニューラルネットワークの重みの更新を繰り返すニューラルネットワーク光学習装置であって、ｎ個の学習データのそれぞれに対応する重み係数の初期値と学習目標を表す教師値を入力とし、最初の学習ステップではコヒーレント光源から前記重み係数の初期値にそれぞれ対応する振幅で且つ一定の繰り返し周期を持つｎ個の初期値重みパルス列と、前記教師値に対応する振幅の１個の教師パルスとを生成し、２回目以降の学習ステップでは前記教師パルスのみを生成する入力部と、ｎ個の前記初期値重みパルス列又は更新したｎ個の更新重みパルス列を入力とし、該重みパルス列のそれぞれの光パルスを分岐させ、最初の学習ステップ（ｍ＝１）では分岐させた前記初期値重みパルス列の光パルスのそれぞれに、対応する前記学習データを乗じ、２回目以降の学習ステップ（ｍ≧２）では分岐させた前記更新重みパルス列のそれぞれに、対応する前記学習データを乗じる乗算部と、前記重みパルス列にそれぞれ対応する前記学習データを乗じて結合した光パルスに対して、位相を１８０度反転した前記教師パルスを結合させたコスト値パルスを生成する加算部と、前記コスト値パルスを入力とし、該コスト値パルスの振幅が小さくなるように前記更新重みパルス列のそれぞれの光パルスの振幅を変化させる学習部とを備えることを要旨とする。
【発明の効果】
【００１１】
本発明によれば、光電変換を行わずに重み学習を高速に処理できるニューラルネットワーク光学習装置を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施の形態に係るニューラルネットワーク光学習装置の機能構成例を示す図である。
【図２】本発明の実施の形態に係るニューラルネットワーク光学習装置の動作フローを示す図である。
【図３】図１に示すニューラルネットワーク光学習装置の入力部の構成例を示すブロック図である。
【図４】図３示す入力部が出力するパルス列を模式的に示す図である。
【図５】図１に示すニューラルネットワーク光学習装置の入力部の他の構成例を示すブロック図である。
【図６】図１に示すニューラルネットワーク光学習装置の乗算部の構成例を示すブロック図である。
【図７】図６に示す第２光分岐部が出力するパルス列を模式的に示す図である。
【図８】図６に示す第１遅延線の入出力のパルス列の関係を模式的に示す図である。
【図９】図１に示すニューラルネットワーク光学習装置の乗算部の構成例を示すブロック図である。
【図１０】図１に示すニューラルネットワーク光学習装置の加算部の構成例を示すブロック図である。
【図１１】図１０に示す加算部の第１光結合部に入出力するパルス列の関係を模式的に示す図である。
【図１２】図１に示すニューラルネットワーク光学習装置の学習部の構成例を示すブロック図である。
【図１３】図１に示すニューラルネットワーク光学習装置の学習部の他の構成例を示すブロック図である。
【図１４】本発明の実施の形態に係る並列処理を行うニューラルネットワーク光学習装置の機能構成例を示す図である。
【図１５】学習速度をシミュレーションした結果を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態について図面を用いて説明する。複数の図面中同一のものに
は同じ参照符号を付し、説明は繰り返さない。
【００１４】
本発明の実施の形態に係るニューラルネットワーク光学習装置の動作を説明する前に、単層型ニューラルネットワークのアルゴリズムについて説明する。ニューラルネットワークの学習とは、学習データｘｉと重みｗｉから算出された出力関数が望ましい教師値に近づくように重みの値を更新することである。
【００１５】
また、単層型とは、入力層ニューロンと出力層ニューロンの二つのニューロンと、それぞれのニューロンを連結するシナプスとから成るニューラルネットワークを構成する基本単位である。単相型ニューラルネットワークは、階層型ニューラルネットワークの一構成単位である。
【００１６】
単層型ニューラルネットワークのアルゴリズムは、まず、入力層ニューロン１個に対して、学習データの１要素が入力される。学習データの要素数は、入力層ニューロン数と等しく、ｎ個の要素を持つ（式（１））。
【００１７】
【数１】
2018205864.tif 000003
【００１８】
次に、各々の入力層ニューロンから伝搬した信号は、シナプスを通過して１個の出力層ニューロンへ結合される。このシナプスは、入力層ニューロン数と等しくｎ個あり、通過する信号に対して出力層ニューロンへ与える影響度に比例する重み係数（式（２））を印加する。
【００１９】
【数２】
2018205864.tif 000004
【００２０】
出力層ニューロンにおける結合は、和演算であり、式（２）の重みが印加されたシナプスを通過することによって出力関数Ｏ（式（３））が求められる。
【００２１】
【数３】
2018205864.tif 000005
【００２２】
次に、出力関数Ｏと教師値Ｔの差を演算することでコスト値Ｅ（（４））を求める。
【００２３】
【数４】
2018205864.tif 000006
【００２４】
コスト値Ｅの大きさが十分０に近ければ、重み演算が収束したと見なすことができる。コスト値Ｅが大きい場合は、コスト値Ｅが小さくなるように重みの値を更新する。新しい重みｗ２→は、コスト値Ｅに対して学習係数αと重みに対応する学習データｘｉを積算した重みの更新量を、学習前の重みｗ１→から差演算することで求める（式（５））。なお、→及び添え字の表記は、図及び式に示す表記が正しい。重みｗの上添え字は、ｍ回繰り返す繰り返し計算の回数が何回目であるかを表す番号である。
【００２５】
【数５】
2018205864.tif 000007
【００２６】
式（５）の演算を行うことで１回の学習ステップが終了する。２回目以降は、新しい重みｗｍ→と学習データと教師値Ｔを用いて、式（３）〜式（５）の演算をｍ回繰り返す。
【００２７】
ここで、学習データは、ｍ回の繰り返し計算においては同じ値である。学習データを変える場合は、ｍ回の単位（周期）で変更する。
【００２８】
以上述べた単層型ニューラルネットワークのアルゴリズムを、本実施形態に係るニューラルネットワーク光学習装置１は、光電変換を用いずに全て光部品で構成するアーキテクチャで実現する。
【００２９】
図１に、本発明の実施の形態に係るニューラルネットワーク光学習装置１の機能構成例を示す。その動作フローを図２に示す。
【００３０】
ニューラルネットワーク光学習装置１は、単層型ニューラルネットワークの重みを更新する計算を繰り返すニューラルネットワーク光学習装置であって、入力部１０、乗算部２０、加算部３０、及び学習部４０を備える。
【００３１】
入力部１０は、ｎ個の学習データｘｉのそれぞれに対応する重み係数の初期値ｗ１→と学習目標を表す教師値を入力とし、最初の学習ステップではコヒーレント光源から重み係数の初期値ｗ１ｉにそれぞれ対応する振幅で且つ一定の繰り返し周期を持つｎ個の初期値重みパルス列Ｗ１（ｗ１１，…，ｗ１ｉ，…，ｗ１ｎ）と、教師値に対応する振幅の１個の教師パルスＴとを生成し、２回目以降の学習ステップでは教師パルスＴのみを生成する（ステップＳ１）。
【００３２】
乗算部２０は、ｎ個の初期値重みパルス列ｗ１ｉ又は更新したｎ個の更新重みパルス列ｗｍを入力とし、該重みパルス列のそれぞれの光パルスを分岐させ、最初の学習ステップでは該分岐させた初期値重みパルス列ｗ１ｉの光パルスのそれぞれに、対応する学習データｘｉを乗じ、２回目以降の学習ステップでは分岐させた更新重みパルス列ｗｍのそれぞれに、対応する学習データｘｉを乗じる（ステップＳ２）。
【００３３】
加算部３０は、重みパルス列にそれぞれ対応する学習データｘｉを乗じて結合した光パルスに、該光パルスに対して位相を１８０度反転した教師パルスＴを結合させたコスト値パルスＥｍを生成する（ステップＳ３）。
【００３４】
学習部４０は、該コスト値パルスＥｍを入力とし、コスト値パルスＥｍの振幅が小さくなるように更新重みパルス列のそれぞれの光パルスの振幅を変更する（ステップＳ４）。
【００３５】
ステップＳ２〜Ｓ４の処理は、コスト値パルスＥｍの振幅が所定の値よりも小さくなるまでｍ回繰り返される（ステップＳ５のＮＯ）。
【００３６】
以上述べたニューラルネットワーク光学習装置１は、階層型ニューラルネットワークの重み更新を、光電変換を用いずに全て光パルスの結合によって行うことができる。したがって、光電変換に伴う信号強度のロスや時間遅延が生じさせない。また、ニューラルネットワークの重み学習を高速に処理できる。
【００３７】
以降、図面を参照して各機能構成部を詳しく説明する。
【００３８】
（入力部）
図３に、本実施形態に係るニューラルネットワーク光学習装置１の入力部１０の機能構成例を示す。入力部１０は、複数のコヒーレント光源１１１〜１１ｎ＋１、複数の第１光フィルタ１２１〜１２ｎ＋１、第１光結合部１３、及び第１光スイッチ１４を備える。なお、以降において１〜ｎ＋１の添え字は、それぞれの場所を特定する必要が無い場合、その表記を省略する。
【００３９】
この例では、コヒーレント光源１１と第１光フィルタ１２を、学習データの要素数のｎ個と１個の教師値に対応するｎ＋１個の数を備える。
【００４０】
コヒーレント光源１１１〜１１ｎのそれぞれは、一定の光強度、一定の繰り返し周期、及び一定のパルス幅を持ち、お互いに干渉しない光パルスを生成する。干渉しないとは、時間軸上で干渉しないという意味であり、コヒーレント光源１１１と１１２の光パルスは、一定のパルス幅分、例えば１パルス幅分ずれて生成される。
【００４１】
第１光フィルタ１２１〜１２ｎは、光の減衰あるいは増幅を用いてコヒーレント光源１１１〜１１ｎのそれぞれが生成する光パルスの振幅を、外部から入力されるｎ個の学習データのそれぞれに対応する重み係数の初期値ｗ１→に対応させて変化させる。透過率によって変調する光減衰器には、電気光学（ＥＯ）変調器、音響光学（ＡＯ）変調器、ＭＥＭＳミラー等の光減衰器を利用できる。
【００４２】
光減衰器の透過率の値は、入力される信号の光強度による影響を受けない。よって、透過率の制御が比較的容易であり、与えたい透過率と実際に与えた透過率の差を小さくして振幅の設定誤差を小さくすることができる。また、光減衰器の透過率は、1以上であることは原理的に不可能である。そこでｗｉ＞1の場合、変換係数ｐ＞1を用いて1＞ｗｉ/ｐ=Ｗｉ′＞1/ｐに変換すれば良い。具体的には、後処理で、信号レベルをｐ倍に変換すれば良い。
【００４３】
また、第１光フィルタ１２１〜１２ｎは、光増幅器で構成しても良い。その場合、半導体光増幅器（ＳＯＡ）を利用できる。光増幅器では、微小な光信号を増幅して、観測可能な光強度を出力する。なお、光増幅器の増幅率は1以下であることは原理的に不可能である。そこでｗｉ＜1の場合、変換係数ｐ′＜1を用いる。この場合の信号レベルの変換は、上記の光減衰器を用いた場合と同じである。
【００４４】
第１光結合部１３は、第１光フィルタ１２１〜１２ｎのそれぞれが出力する初期値重みパルスｗ１ｉを結合させて、初期値重みパルス列Ｗ１（ｗ１１，…，ｗ１ｉ，…，ｗ１ｎ）を生成する。
【００４５】
コヒーレント光源１１ｎ＋１は、教師パルスＴを生成する。教師パルスＴの振幅は、外部から入力される教師値に対応するように設定される。
【００４６】
図４に、入力部１０が出力する初期値重みパルス列Ｗ１と教師パルスＴを模式的に示す。初期値重みパルス列Ｗ１は、例えば、各光パルスのパルス幅分の時間ずれて、ｗ１１〜ｗ１ｎまで連続的に光パルスが出力される。なお、図４では各光パルスの振幅は一定で表記している。実際は、重み係数の初期値に対応して各光パルスの振幅は異なる。
【００４７】
教師パルスＴは、例えば、初期値重みパルスｗ１ｎに同期して出力される。なお、教師パルスＴは、初期値重みパルスｗ１ｎに同期させる必要はない。教師パルスＴは、初期値重みパルスｗ１ｎから更に光パルス１個分の時間ずらして生成するようにしてもよい。
【００４８】
第１光スイッチ１４は、最初の学習ステップの時（ｍ＝１）だけ初期値重みパルス列Ｗ１を通過させる。第１光スイッチ１４は、２回目以降の学習ステップにおいては、初期値重みパルス列Ｗ１を遮断する。第１光スイッチ１４は、第１光フィルタ１２と同様に電気光学（ＥＯ）変調器、音響光学（ＡＯ）変調器、ＭＥＭＳミラー等で実現できる。
【００４９】
（入力部の変形例）
図５に、入力部の他の構成例を示す。図５に示す入力部５０は、連続波光源のコヒーレント光源５１、第１光フィルタ５２、及び第１光分岐部５３を備える点で入力部１０（図３）と異なる。
【００５０】
コヒーレント光源５１は、一定の光強度と繰り返し周期を持つ光パルス列を生成する。第１光フィルタ５２は、コヒーレント光源５１から入力される光パルス列のそれぞれの振幅を、各光パルスに対応する重み係数の初期値に対応させて変化させる。また、第１光フィルタ５２は、ｎ＋１個目のタイミングで生成される教師パルスＴの振幅を、教師値に対応させて変化させる。
【００５１】
第１光分記部５３は、第１光フィルタ５２が出力する１〜ｎ個目までの初期値重みパルス列Ｗ１と、ｎ＋１個目の教師パルスＴを分岐させる。この例の場合は、教師パルスＴが、例えばｎ＋１個目の光パルスとして出力される。このように教師パルスＴがｎ＋１個目に出力されても構わない。その理由については後述する。
【００５２】
このように連続波光源のコヒーレント光源５１を用いても入力部５０を構成することが可能である。つまり、入力部１０，５０は、初期値重みパルス列Ｗ１と教師パルスＴのそれぞれに対応する光パルスを生成する１個以上のコヒーレント光源１１，５１と、光パルスの振幅を、重み係数の初期値及び教師値にそれぞれ対応する振幅に変換する１個以上の第１光フィルタ１２，５２を備える。
【００５３】
（乗算部）
図６に、本実施形態に係るニューラルネットワーク光学習装置１の乗算部２０の機能構成例を示す。乗算部２０は、第２光分岐部２１、複数の第１遅延線２２、及び第２光フィルタ２３を備える。
【００５４】
第２光分岐部２１は、重みパルス列のそれぞれの光パルスを、ｎ個の光パルスに等分岐させる。重みパルス列は、最初の学習ステップでは初期値重みパルス列Ｗ１→であり、２回目以降の学習ステップでは更新重みパルス列Ｗｍ→である。
【００５５】
最初の学習ステップでは初期値重みパルス列Ｗ１→のみが入力され、２回目以降の学習ステップでは更新重みパルス列Ｗｍ→のみが入力される。よって、第２光分岐部２１は、入力される重みパルス列をｎ個の光パルスに等分岐する。
【００５６】
第２光分岐部２１は、例えば光分波器で構成することができる。光分波器としては、石英平面光導波路（ＰＬＣ）、フレキシブルポリマー光導波路、及び融着延伸型ファイバーカプラ等を用いることができる。また、空間上で光を分岐させてもよい。空間上で分岐する場合は、例えばマトリックス配置マイクロコリメートレンズアレイ等を用いてビームスプリッターへ集光し、その後分岐させる。
【００５７】
図７に、第２光分岐部２１で分岐した重みパルス列を模式的に示す。表記の都合により図では表現できていないが、第２光分岐部２１の各出力ｗ１〜ｗｎから出力される光パルス列の振幅は、入力される光パルスのｎ分の１である。各出力ｗ１〜ｗｎのそれぞれの光パルスの波形は同期している。
【００５８】
第１遅延線２２１〜２２ｎは、第２光分岐部２１の添え字が一致する各出力ｗ１〜ｗｎのそれぞれの光パルスを、ｎ−１個から０個まで遅延させる。第１遅延線２２１は、第２光分岐部２１の出力ｗ１の光パルスをｎ−１個分遅延させる。ここで個とは、光パルスの一周期分のパルス間隔のことである。
【００５９】
第１遅延線２２２は、第２光分岐部２１の出力ｗｍ１の光パルスをｎ−１個分遅延させる。
第１遅延線２２ｎ−１は、第２光分岐部２１ｎ−１の出力ｗｍｎ−１の光パルスを１個分遅延させる。第２遅延線２２ｎは、第２光分岐部２１ｎの出力ｗｍｎの光パルスを遅延させない（遅延０）。
【００６０】
図８に、このように第２光分岐部２１が出力するそれぞれの光パルスを、遅延させたパルス列を模式的に示す。図８は、最初の学習ステップ（ｍ＝１）における光パルスの例を示す。この場合、全ての光パルスｗ１〜ｗｎは、ｗｎのタイミングで同期する。
【００６１】
ここで、第１遅延線２２ｎの出力に注目されたい。第２光分岐部２１ｎの出力ｗ１ｎの左隣の光パルスはｗ２１である。このように光パルスは、ｍ回の繰り返し計算中、ｎ個の単位で周回する。よって、ｍは周回数と称しても良い値である。
【００６２】
第２光フィルタ２３１〜２３ｎは、第１遅延線の光路ごとに設けられ、ｎ個の光パルスのそれぞれの振幅を、対応する学習データｘ→（ｘ１，…，ｘｉ，…，ｘｎ）倍に変換する。つまり、式（３）に示した各要素（ｘ１×ｗｍ１，ｘ２×ｗｍ２，ｘｎ−１×ｗｍｎ−１，ｘｎ×ｗｍｎ）が生成される。
【００６３】
（乗算部の変形例）
図９に、乗算部２０を変形した乗算部６０の構成例を示す。乗算部６０は、１個の第２光フィルタ６１で、上記の各要素（ｘ１×ｗｍ１，ｘ２×ｗｍ２，ｘｎ−１×ｗｍｎ−１，ｘｎ×ｗｍｎ）を生成する点で乗算部２０と異なる。
【００６４】
光フィルタ６１は、入力される重みパルス列の各光パルスに、対応する学習データを同期させて乗じる。よって、光フィルタの数を削減することができる。
【００６５】
乗算部６０は、重みパルス列の光パルスのそれぞれに、対応する学習データｘ→（ｘ１，…，ｘｉ，…，ｘｎ）を同期させて乗じる。乗算部６０の他の機能構成部は、乗算部２０と同じである。
【００６６】
（加算部）
図１０に、本実施形態に係るニューラルネットワーク光学習装置１の加算部３０の機能構成例を示す。加算部３０は、第２光結合部３１と第２光スイッチ３２を備える。
【００６７】
加算部３０は、乗算部２０が出力するｎ個の各要素の光パルスのそれぞれを同位相で結合し、前記入力部１０が出力する教師パルスＴの位相を、その同位相に対して１８０度反転させて結合させる。光信号の位相を揃えて結合させれば加算であり、光信号の位相を１８０度反転して結合させれば減算である。各要素の光パルスと教師パルスの位相の調整は、光路長を調整することで行う。
【００６８】
この例では、教師パルスＴは、ｎ個目の要素ｘｎ×ｗｍｎに同期し、ｎ個ごとに加算部３０に入力される（図４）。また、ｎ個目の時刻に各要素（ｘ１×ｗｍ１，ｘ２×ｗｍ２，ｘｎ−１×ｗｍｎ−１，ｘｎ×ｗｍｎ）が同期する。
【００６９】
よって、ｎ個ごとに全ての要素ｘｉ×ｗｍｉと教師パルスＴとが同期する。したがって、加算部３０は、光パルスのｎ個の周期ごとにコスト値Ｅｍ（式（４））を生成する。
【００７０】
図１１に、第２光結合部３１に入出力する光パルス列を模式的に示す。入力側の光パルスは、最初の光パルスから数えてｎ個目で、全ての要素ｘｉ×ｗｍｉと教師パルスＴとが同期する。出力側の光パルスの振幅は、最初の光パルスから数えてｎ個目ごとにコスト値Ｅｍに相当する大きさを持つ。コスト値Ｅｍに相当する光パルスは、ｎ個ごとに出力される。
【００７１】
第２光スイッチ３２は、ｎ個の周期で生成されるコスト値Ｅｍに当たる光パルスのみを通過させる。第２光スイッチ３２には、例えば光減衰器である電気光学（ＥＯ）変調器、音響光学（ＡＯ）変調器、及びＭＥＭＳミラー等を用いることができる。光減衰器の透過率を１として必要な光パルスを通過させ、透過率を０として不要な光パルスを遮断する。
【００７２】
ここで、教師パルスＴがｎ＋１個目に出力されても構わない理由を説明する。この場合は、乗算部２０の第１遅延線２２１〜２２ｎのそれぞれの遅延量を、光パルス１個分増やせばよい。そうすることで、光パルスのｎ＋１個の周期ごとにコスト値Ｅｍが計算されるようになる。
【００７３】
（学習部）
図１２に、本実施形態に係るニューラルネットワーク光学習装置１の学習部４０の機能構成例を示す。学習部４０は、第３光分岐部４１、第２遅延線４２１〜４２ｎ、第３光フィルタ４３１〜４３ｎ、第４光結合部４４、及び第４光分岐部４５を備える。
【００７４】
第３光分岐部４１は、コスト値Ｅｍに相当する光パルスをｎ個に等分岐させる。ｎ個に等分岐する方法は、乗算部２０の第２光分岐部２１と同じである。
【００７５】
第２遅延線４２１〜４２ｎは、第３光分岐部４１の添え字が一致する各出力ｘ１〜ｘｎのそれぞれの光パルスを、光パルスの１個分からｎ個分まで遅延させる。
【００７６】
第２光フィルタ４３１〜４３ｎは、第２遅延線４２１〜４２ｎの光路ごとに設けられ、光パルスの１個分ずつ時刻の異なるｎ個の光パルスのそれぞれの振幅を、対応する学習データｘ→（ｘ１，…，ｘｉ，…，ｘｎ）倍に変換し、更に所定の定数である学習係数α倍に変換する。
【００７７】
コスト値Ｅｍに相当する光パルスを、光パルスの１個分遅延させた第２遅延線４２１が出力する光パルス（Ｅ）は、第３光フィルタ４３１によってｘ１倍され、更にα倍される。よって、第３光フィルタ４３１の出力はα×Ｅｍ×ｘ１である。
【００７８】
同様に、第３光フィルタ４３２の出力はα×Ｅｍ×ｘ２、第３光フィルタ４３ｎ−１の出力はα×Ｅｍ×ｘｎ−１、及び第３光フィルタ４３ｎの出力はα×Ｅｍ×ｘｎである。
【００７９】
第４光結合部４４は、ｍ回目の学習ステップにおいて、ｍ−１回目の学習ステップの更新重みパルスのそれぞれと、該更新重みパルスの位相に対して位相を１８０度反転した第３光フィルタ４３が出力する重みの更新量のそれぞれとを結合させた更新重みパルス列ｗｍ→を生成する。
【００８０】
つまり、第４光結合部４４は、式（５）の演算を行う。第４光結合部４４を構成する光結合器４４１はｗｍ１＝ｗｍ−１１−α×Ｅｍ×ｘ１の振幅の光パルスを出力する。
【００８１】
同様に、光結合器４４２はｗｍ−１２−α×Ｅｍ×ｘ２、光結合器４４ｎ−１はｗｍｎ−１＝ｗｍ−１ｎ−１−α×Ｅｍ×ｘｎ−１、光結合器４４ｎはｗｍｎ＝ｗｍ−１ｎ−α×Ｅｍ×ｘｎの振幅の光パルスを出力する。第４光結合部４４としては、更新重みパルス列ｗｍ→（式（５））を出力する。
【００８２】
第４分岐部４５は、ｍ回目の更新重みパルス列ｗｍ→をそのまま乗算部２０に出力し、該ｍ回目の更新重みパルス列ｗｍ→を１回の学習ステップ分遅延させたｍ−１回目の学習ステップの更新重みパルス列ｗｍ−１→を生成し、該ｍ−１回目の学習ステップの更新重みパルス列を第４光結合器４４に出力する。
【００８３】
１回の学習ステップ分遅延させるとは、更新重みパルス列ｗｍ→の光パルスのそれぞれをｎ＋１個分遅らせることである。そうすることで第４光結合部４４が出力する更新重みパルス列ｗｍ→を、１回の学習ステップ分遅延させた更新重みパルス列ｗｍ−１→に変換できる。
【００８４】
（学習部の変形例）
図１３に、学習部４０を変形した乗算部７０の構成例を示す。学習部７０は、第５光結合部７１と、第３光フィルタ７２と、光結合器７３を備える点で学習部４０と異なる。
【００８５】
第５光結合部７１は、第２遅延線４２１〜４２ｎのそれぞれ出力する光パルスの１個分からｎ個分まで遅延させたコスト値Ｅｍの光パルスを結合させたパルス列を生成する。
【００８６】
第３光フィルタ７２は、第５光結合部７１が出力する出力関数Ｏの光パルス列のそれぞれの振幅を、対応する学習データｘ→（ｘ１，…，ｘｉ，…，ｘｎ）と学習係数αとで変換した更新量α×Ｅｍ×ｘ１〜α×Ｅｍ×ｘｎを生成する。
【００８７】
第５光結合部７１は、第３光フィルタ７２が出力する更新量α×Ｅｍ×ｘ１〜α×Ｅｍ×ｘｎのそれぞれと、学習前重みｗｍ−１→のそれぞれとの差を取った新しい重みｗｍを生成する。
【００８８】
第３光ファイルタ７２は、第５光結合部７１が出力する光パルス列のそれぞれの光パルスに、対応する学習データと所定の定数である学習係数αとを乗じた重みの更新量のパルス列を生成する。
【００８９】
光結合器７３は、ｍ回目の学習ステップにおいて、ｍ−１回目の学習ステップの更新重みパルス列のそれぞれと、該更新重みパルス列の光パルスの位相に対して位相を１８０度反転した第３光フィルタ７２が出力する重みの更新量のパルス列のそれぞれとを結合させて更新重みパルス列ｗｍ→を生成する。
【００９０】
学習部７０が生成する新しい更新重みパルス列ｗｍは、学習部４０が生成するものと同じである。学習部７０は、第３光フィルタの数を削減することができる。
【００９１】
以上述べたニューラルネットワーク光学習装置１は、階層型ニューラルネットワークの重み更新を、光電変換を用いずに全て光パルスの結合によって行うことができる。
【００９２】
（並列処理）
本実施形態に係るニューラルネットワーク光学習装置１の一部の構成を並列にして、更に高速化する構成が考えられる。つまり、重みの数を分割して光パルス列の長さを短くすることで、学習時間を短縮する。
【００９３】
図１４に、入力部１０、乗算部２０、及び学習部４０をｋ個並列に構成したニューラルネットワーク光学習装置２の機能構成例を示す。入力部１０１〜１０ｋのそれぞれは、ｎ
/ｋ個のコヒーレント光源で構成される。なお、教師値パルスＴを生成する光源は１個である。各入力部１０ｊ（ｊ番目）のコヒーレント光源１１及び第１光フィルタ１２の数は、ｎ/k個である。また、ｋ個並列にすることで、１個当たりの遅延線で遅延させる遅延量の最大値もｎ/k個となる点が異なる。
【００９４】
学習ステップ1回目において、j番目の第三光フィルタから伝搬されたn/k個の光パルスとj番目の入力部の第一光分岐器から伝搬されたn/k個の光パルスは、j番目の第二光結合器によって結合される。学習ステップ2回目以降では、j番目の第三光フィルタから伝搬されたn/k個の光パルスと、学習ステップが1回前のj番目の学習部から伝搬されたn/k個の光パルスが入力される。学習ステップはｍ回繰り返される。
【００９５】
（比較例との対比）
以上述べたニューラルネットワーク光学習装置１によれば重み学習を高速化できる。そこで、本実施形態の効果を確認する目的で、比較例とニューラルネットワーク光学習装置１の学習速度の比較を行った。学習速度の比較は、ニューラルネットワークのハードウェアにおいて、１秒間に書き換え可能なパラメータの更新回数CUPS（Connections Updated Per Second）を比較することで行った。
【００９６】
比較対象は、CPUとGPUを用いたGPCPUとした。ニューラルネットワークの規模を10万ニューロンとし、CPUとしてintel社製のCPU、corei7-6700T（動作クロック2.8 GHz、コア数4個）、GPUとしてNVIDIA社製のGPU、GeForce GTX TITAN X（動作クロック1.0GHz、コア数3,072個、メモリ帯域幅337 GB/s）をPCI-express x16で接続した場合における学習速度をシミュレートした。比較例の学習速度は、12.9 MCUPS/Wと試算された。
【００９７】
一方、本実施形態の構成をとり、入力部、乗算部、記憶部、学習部を1,000式用意したとき、光部品の素子サイズを10 cm、パルス間隔を1.0 nsとした場合における学習速度は、149GCUPS/Wと試算された。図１５に、シミュレーションした結果を示す。横軸はユーロン数/層[個]、縦軸は学習速度[CUPS/W]である。
【００９８】
このように、GPGPUと本実施形態のニューラルネットワーク光学習装置１の学習速度を比較すると、ニューラルネットワーク光学習装置１の方が、消費電力あたりの学習速度が約1千倍高速となった。
【００９９】
以上説明したように本実施形態のニューラルネットワーク光学習装置１，２によれば、消費電力当たりの重み学習を高速化することができる。つまり、重み学習を高速化及び低消費電力化することができる。
【０１００】
ニューラルネットワーク光学習装置１，２は、光部品を用いて構成した例で説明を行った。光をキャリアとして用いると、３次元空間に光配線を形成することができ、ショートの恐れや配線の取り回しといったデメリットが少ない。
【０１０１】
なお、本発明はこの例に限定されない。例えば、教師値パルスＴの位置（タイミング）を、ｎ個目又はｎ＋１個目の光パルスの例で説明したが、これ以外の任意のタイミングに設定しても構わない。このように本発明は、上記の実施形態に限定されるものではなく、その要旨の範囲内で変形が可能である。
【符号の説明】
【０１０２】
１、２：ニューラルネットワーク光学習装置
１０、５０：入力部
１１、１１１〜１１ｎ＋１：コヒーレント光源
１２、１２１〜１２ｎ＋１：第１光フィルタ
１３：第１光結合部
１４：第１光スイッチ
２０、６０：乗算部
２１：第２光分岐部
２２１〜２２ｎ：第１遅延線
２３、２３１〜２３ｎ：第２光フィルタ
３０：加算部
３１：第３光結合部
３２：第２光スイッチ
４０、７０：学習部
４１：第３光分岐部
４２１〜４２ｎ：第２遅延線
４３１〜４３ｎ、７２：第３光フィルタ
４４：第４光結合部
４５：第４光分岐部
７１：第５光結合部
３１１〜３１ｎ＋１、４１１〜４１ｎ、７１１〜７１ｎ、７３：光結合器
【図１】
2018205864.tif 000008
【図２】
2018205864.tif 000009
【図３】
2018205864.tif 000010
【図４】
2018205864.tif 000011
【図５】
2018205864.tif 000012
【図６】
2018205864.tif 000013
【図７】
2018205864.tif 000014
【図８】
2018205864.tif 000015
【図９】
2018205864.tif 000016
【図１０】
2018205864.tif 000017
【図１１】
2018205864.tif 000018
【図１２】
2018205864.tif 000019
【図１３】
2018205864.tif 000020
【図１４】
2018205864.tif 000021
【図１５】
2018205864.tif 000022