(57)【要約】【課題】重み学習を高速に処理できる摂動学習装置を提供する。【解決手段】ｎ個の要素から成る学習データを要素ごとに分岐した学習非対象データＸと、前記学習データの先頭からｊ個ずつｍ回に分けて要素ごとに分岐した学習対象データＸｊを出力する分岐部１０と、学習非対象データＸの要素ごとに、対応する重み係数を乗じて重み学習データＤ１〜Ｄｎを計算する重み演算部２０と、学習対象データＸｊに対応する摂動重み係数を乗じてｊ個の摂動重み学習データを計算する摂動重み演算部３０と、重み学習データのそれぞれをｊ＋１個に分岐する第２分岐部４０と、ｊ＋１個に分岐された重み学習データの全てを合計した第１出力値Ｏと、ｊ＋１個の重み学習データの何れか１個を、該重み学習データに対応する摂動重み学習データに置き代えて求めたｊ個の第２出力値Ｏδｉとを計算する結合部５０と、ｊ個ごとに重み係数をそれぞれ更新する計算を、ｍ回の単位で繰り返す学習部６０とを備える。【選択図】図１
2018116420.tif 000002
【特許請求の範囲】
【請求項１】
ｎ個の要素から成る学習データを要素ごとに分岐した学習非対象データと、前記学習データの先頭からｊ個ずつｍ回に分けて要素ごとに分岐した学習対象データを出力する分岐部と、
前記学習非対象データの前記要素ごとに、それぞれ対応する重み係数を乗じて重み学習データを計算する重み演算部と、
前記学習対象データに対応する前記重み係数に、該重み係数を補正する摂動係数を加えた摂動重み係数を生成し、該摂動重み係数を、対応する前記学習対象データに乗じてｊ個の摂動重み学習データを計算する摂動重み演算部と、
前記重み学習データのそれぞれをｊ＋１個に分岐する第２分岐部と、
ｊ＋１個に分岐された重み学習データの全てを合計した第１出力値と、ｊ＋１個の重み学習データの何れか１個を、該重み学習データに対応する前記摂動重み学習データに置き代えて他の全ての重み学習データと合計したｊ個の第２出力値とを計算する結合部と、
ｊ個設けられ、前記第１出力値と前記第２出力値からｊ個ごとに前記重み係数をそれぞれ更新する計算を、前記ｍ回の単位で繰り返す学習部と
を備えることを特徴とする摂動学習装置。
【請求項２】
前記学習データは光信号であり、
前記分岐部は、ｎ個の前記学習非対象データの光強度をｊ＋１分のｊの光強度を持つ信号とし、前記学習対象データの光強度をｊ＋１分の１の光強度を持つ信号とすることを特徴とする請求項１に記載の摂動学習装置。
【請求項３】
前記学習部は、前記摂動重み演算部と同じ数設けられ、前記第１出力値から学習目標を表す教師値を減じた第１コスト値、前記第２出力値のそれぞれから前記教師値を減じた第２コスト値、前記摂動係数、及び学習速度の傾きを表す学習係数から、前記重み係数を更新する変化量を求める計算を、前記ｍ回の単位で繰り返すことを特徴とする請求項１又は２に記載の摂動学習装置。
【請求項４】
前記学習部は、前記第１コスト値をＥ、前記第２コスト値をＥδｉ、前記摂動係数をδ、及び前記学習係数をηとした場合に、
【数１４】
2018116420.tif 000016
前記変化量Δｗｉ＿ｎｅｗを、上の式で計算することを特徴とする請求項３に記載の摂動学習装置。
【請求項５】
前記第１コスト値を正の値に変換する第１乗算器と、前記第２コスト値を正の値に変換する第２乗算器を備えたことを特徴とする請求項４に記載の摂動学習装置。
【請求項６】
ｎ個の波長を含む波長多重光を、ｊ＋１個の波長を含む多波長光と、該多波長光に含まれない波長の単波長光とに分岐し、前記多波長光にｎ個の学習データの先頭からｊ個ずつの前記学習データをｍ回に分けて付与した学習対象信号と、前記単波長光に対応する重みを付与した学習非対象信号とを生成する学習データ生成部と、
前記学習対象信号を、波長の異なるｊ個の単波長光と、それ以外の波長を含むｊ個の多波長光とに２分岐する光分岐部と、
ｊ個の前記多波長光のそれぞれに、対応する重み係数を乗じて第１重み学習データを計算する第１重み演算部と、
ｊ個の前記単波長光のそれぞれに対応する重み係数に、該重み係数を補正する摂動係数を加えた摂動重み係数を生成し、該摂動重み係数を、対応する前記単波長光に乗じて摂動重み学習データを計算する摂動重み演算部と、
前記学習非対象信号のそれぞれに、対応する重み係数を乗じて第２重み学習データを計算する第２重み演算部と、
ｊ個の前記第１重み学習データとｊ個の摂動重み学習データを入力とし、ｊ個の前記第１重み学習データを全て結合した第１結合値と、ｊ個の前記第１重み学習データの何れか１個を、該第１重み学習データに対応する前記摂動重み学習データに置き代えて他の全ての第１重み学習データと結合したｊ個の第２結合値とを出力する波長周回器と、
前記第１結合値とｎ−ｊ個の前記第２重み学習データを結合した第１出力値と、ｊ個の前記第２結合値のそれぞれとｎ−ｊ個の前記第２重み学習データを結合した第２出力値を生成する光結合器と、
ｊ個設けられ、前記第１出力値と前記第２出力値からｊ個ごとに前記重み係数をそれぞれ更新する計算を、前記ｍ回の単位で繰り返す学習部と
を備えることを特徴とする摂動学習装置。
【請求項７】
前記学習データ生成部は、
ｎ個の波長を含む波長多重光を、波長ごとに分波する波長分岐部と、
前記波長分岐部で分波した最短の波長からｊ＋１番目に長い波長までの波長成分を合波する波長合波部と、
前記波長合波部の出力する信号をｊ個に等分岐する光分岐部と、
前記光分岐部の出力するｊ個の信号のぞれぞれに、ｎ個の学習データの先頭からｊ個ずつｍ回に分けて前記学習データを付与する第１学習データフィルタと、
前記光分岐部の出力するｎ−ｊ個の信号のそれぞれに、ｎ−ｊ個の学習データを付与した学習非対象信号を生成する第２学習データフィルタと、
前記第１学習データフィルタのｊ個の出力信号を結合した学習対象信号を生成する光結合部と
を備えることを特徴とする請求項６に記載の摂動学習装置。
【請求項８】
摂動学習装置が行う摂動学習方法であって、
分岐部が、ｎ個の要素から成る学習データを要素ごとに分岐した学習非対象データと、前記学習データの先頭からｊ個ずつｍ回に分けて要素ごとに分岐した学習対象データを出力し、
重み演算部が、前記学習非対象データの前記要素ごとに、それぞれ対応する重み係数を乗じて重み学習データを計算し、
摂動重み演算部が、前記学習対象データに対応する前記重み係数に、該重み係数を補正する摂動係数を加えた摂動重み係数を生成し、該摂動重み係数を、対応する前記学習対象データに乗じてｊ個の摂動重み学習データを計算し、
第２分岐部が、前記重み学習データのそれぞれをｊ＋１個に分岐し、
結合部が、ｊ＋１個に分岐された重み学習データの全てを合計した第１出力値と、ｊ＋１個の重み学習データの何れか１個を、該重み学習データに対応する前記摂動重み学習データに置き代えて他の全ての重み学習データと合計したｊ個の第２出力値とを計算し、
ｊ個設けられた学習部が、前記第１出力値と前記第２出力値からｊ個ごとに前記重み係数をそれぞれ更新する計算を、前記ｍ回の単位で繰り返す
ことを特徴とする摂動学習方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、摂動学習の大規模な並列計算を高速に行う摂動学習装置とその方法に関する。
【背景技術】
【０００２】
摂動学習は、アナログ演算器用の学習アルゴリズムである。例えばニューラルネットワークのシナプス重み等の学習すべきパラメータを微少量変化させ、誤差関数に及ぼす影響をモニタすることで、パラメータの修正量を算出する方法である。
【０００３】
例えば非特許文献１に同時摂動最適化法が開示されている。また、例えば非特許文献２に多周波振動学習法が開示されている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】前田裕ほか１名、「同時摂動学習則を用いたニューラルネットワークによる２軸駆動型ロボットアームの追値制御」、電学論Ｃ、123巻、9号、2003年
【非特許文献２】宮尾浩ほか３名、「アラログニューラルネットワークのための多周波振動学習法とそれを適用した学習ＬＳＩ」、電子情報通信学会論文誌  Ａ、Vol.179-A、No.4、pp.917-929、1996年4月
【発明の概要】
【発明が解決しようとする課題】
【０００５】
摂動学習を高速に行うためには、重み更新の並列処理が重要になる。非特許文献２に開示された方法では、信号を周波数多重することで並列処理を行う。しかし、帯域やクローストーク等の問題から周波数の多重数は数百が限界である。
【０００６】
一方、ニューラルネットワークの摂動学習は、ニューロン同士を連結したシナプスの重みを更新することによって行われる。ニューラルネットワークを基本とした機械学習技術の一つであるディープラーニング（深層学習）では、学習データ数及びシナプス数が大規模化し、シナプス数が数億個を越える場合もある。
【０００７】
したがって、従来の周波数多重を用いた数百スケールの並列処理では十分な高速化が期待できないという課題がある。
【０００８】
本発明は、この課題に鑑みてなされたものであり、重み学習を高速に処理できる摂動学習装置とその方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本実施形態の一態様に係る摂動学習装置は、ｎ個の要素から成る学習データを要素ごとに分岐した学習非対象データと、前記学習データの先頭からｊ個ずつｍ回に分けて要素ごとに分岐した学習対象データを出力する分岐部と、前記学習非対象データの前記要素ごとに、それぞれ対応する重み係数を乗じて重み学習データを計算する重み演算部と、前記学習対象データに対応する前記重み係数に、該重み係数を補正する摂動係数を加えた摂動重み係数を生成し、該摂動重み係数を、対応する前記学習対象データに乗じてｊ個の摂動重み学習データを計算する摂動重み演算部と、前記重み学習データのそれぞれをｊ＋１個に分岐する第２分岐部と、ｊ＋１個に分岐された重み学習データの全てを合計した第１出力値と、ｊ＋１個の重み学習データの何れか１個を、該重み学習データに対応する前記摂動重み学習データに置き代えて他の全ての重み学習データと合計したｊ個の第２出力値とを計算する結合部と、ｊ個設けられ、前記第１出力値と前記第２出力値からｊ個ごとに前記重み係数をそれぞれ更新する計算を、前記ｍ回の単位で繰り返す学習部とを備えることを要旨とする。
【００１０】
本実施形態の他の態様に係る摂動学習装置は、ｎ個の波長を含む波長多重光を、ｊ＋１個の波長を含む多波長光と、該多波長光に含まれない波長の単波長光とに分岐し、前記多波長光にｎ個の学習データの先頭からｊ個ずつの前記学習データをｍ回に分けて付与した学習対象信号と、前記単波長光に対応する重みを付与した学習非対象信号とを生成する学習データ生成部と、前記学習対象信号を、波長の異なるｊ個の単波長光と、それ以外の波長を含むｊ個の多波長光とに２分岐する光分岐部と、ｊ個の前記多波長光のそれぞれに、対応する重み係数を乗じて第１重み学習データを計算する第１重み演算部と、ｊ個の前記単波長光のそれぞれに対応する重み係数に、該重み係数を補正する摂動係数を加えた摂動重み係数を生成し、該摂動重み係数を、対応する前記単波長光に乗じて摂動重み学習データを計算する摂動重み演算部と、前記学習非対象信号のそれぞれに、対応する重み係数を乗じて第２重み学習データを計算する第２重み演算部と、ｊ個の前記第１重み学習データとｊ個の摂動重み学習データを入力とし、ｊ個の前記第１重み学習データを全て結合した第１結合値と、ｊ個の前記第１重み学習データの何れか１個を、該第１重み学習データに対応する前記摂動重み学習データに置き代えて他の全ての第１重み学習データと結合したｊ個の第２結合値とを出力する波長周回器と、前記第１結合値とｎ−ｊ個の前記第２重み学習データを結合した第１出力値と、ｊ個の前記第２結合値のそれぞれとｎ−ｊ個の前記第２重み学習データを結合した第２出力値を生成する光結合器と、ｊ個設けられ、前記第１出力値と前記第２出力値からｊ個ごとに前記重み係数をそれぞれ更新する計算を、前記ｍ回の単位で繰り返す学習部とを備えることを要旨とする。
【００１１】
本実施形態の一態様に係る摂動学習方法は、上記の摂動学習装置が行う摂動学習方法であって、分岐部が、ｎ個の要素から成る学習データを要素ごとに分岐した学習非対象データと、前記学習データの先頭からｊ個ずつｍ回に分けて要素ごとに分岐した学習対象データを出力し、重み演算部が、前記学習非対象データの前記要素ごとに、それぞれ対応する重み係数を乗じて重み学習データを計算し、摂動重み演算部が、前記学習対象データに対応する前記重み係数に、該重み係数を補正する摂動係数を加えた摂動重み係数を生成し、該摂動重み係数を、対応する前記学習対象データに乗じてｊ個の摂動重み学習データを計算し、第２分岐部が、前記重み学習データのそれぞれをｊ＋１個に分岐し、結合部が、ｊ＋１個に分岐された重み学習データの全てを合計した第１出力値と、ｊ＋１個の重み学習データの何れか１個を、該重み学習データに対応する前記摂動重み学習データに置き代えて他の全ての重み学習データと合計したｊ個の第２出力値とを計算し、ｊ個設けられた学習部が、前記第１出力値と前記第２出力値からｊ個ごとに前記重み係数をそれぞれ更新する計算を、前記ｍ回の単位で繰り返すことを要旨とする。
【発明の効果】
【００１２】
本発明によれば、重み学習を高速に処理できる摂動学習装置とその方法を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１実施形態に係る摂動学習装置の機能構成例を示す図である。
【図２】本実施形態に係る摂動学習装置の動作フローを示す図である。
【図３】図１に示す摂動学習装置の分岐部〜結合部の間の接続関係を示す図である。
【図４】第１出力値と第２出力値の例を示す図である。
【図５】図１に示す学習部のより具体的な構成例を示す図である。
【図６】図５に示す学習部の変形例を示す図である。
【図７】本発明の第２実施形態に係る摂動学習装置の機能構成例を示す図である。
【図８】図７に示す学習データ生成部のより具体的な構成例を示す図である。
【図９】図７に示す分岐部のより具体的な構成例を示す図である。
【図１０】図７に示す波長周回器の作用を模式的に示す図である。
【図１１】図７に示す光結合部を構成する光結合器と光分岐器の作用を模式的に示す図である。
【図１２】図７に示す光結合部を構成する光結合器の作用を模式的に示す図である。
【図１３】比較例との比較結果を示す図であり、（ａ）はフィルタの消費電力を示す、図（ｂ）は構成部品点数を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態について図面を用いて説明する。複数の図面中同一のものに
は同じ参照符号を付し、説明は繰り返さない。
【００１５】
〔第１実施形態〕
図１に、第１実施形態に係る摂動学習装置１の機能構成例を示す。図２に、摂動学習装置１の動作フローを示す。
【００１６】
摂動学習装置１は、分岐部１０、重み演算部２０、摂動重み演算部３０、第２分岐部４０、結合部５０、及び学習部６０を備える。摂動学習装置１は、例えば階層型ニューラルネットワークの学習演算を高速に処理する。
【００１７】
分岐部１０は、ｎ個の要素から成る学習データを要素ごとに分岐した学習非対象データＸと、該学習データの先頭からｊ個ずつｍ回に分けて要素ごとに分岐した学習対象データＸｊを出力する（ステップＳ１）。学習非対象データＸは、学習する対象が画像であるならば、ピクセルに対応するｎ個の成分を持つベクトルである（式（１））。
【００１８】
【数１】
2018116420.tif 000003
【００１９】
重み演算部２０は、学習非対象データＸの要素ごとに、それぞれ対応する重み係数を乗じて重み学習データＤ１〜Ｄｎを計算する（ステップＳ２）。重み演算部２０は、学習非対象データＸに対して連結されるニューロン値を算出する。ニューロン同士の連結の強さを表すシナプスの重みとは、学習非対象データＸと同様にｎ個の成分を持つベクトルである（式（２））。
【００２０】
【数２】
2018116420.tif 000004
【００２１】
摂動重み演算部３０は、学習対象データＸｊに対応する重み係数に、該重み係数を補正する摂動係数δを加えた摂動重み係数を生成し、該摂動重み係数を、対応する学習対象データＸｊに乗じてｊ個の摂動重み学習データＤδｉを計算する（ステップＳ３）。摂動重み係数は、ｊ個の成分を持つベクトルである（式（３））。
【００２２】
【数３】
2018116420.tif 000005
【００２３】
第２分岐部４０は、重み学習データＤ１〜Ｄｎのそれぞれをｊ＋１個に分岐する（ステップＳ４）。つまり、第２分岐部４０は、１個の重み学習データＤ１をＪ＋１個のＤ１′に分岐する。同様に重み学習データＤｉ、及び重み学習データＤｎを、Ｊ＋１個のＤｉ′,Ｄｎ′に分岐する。
【００２４】
結合部５０は、第２分岐部４０でｊ＋１個に分岐された重み学習データＤ１′〜Ｄｎ′の全てを合計した第１出力値Ｏ（式（４））と、ｊ＋１個の重み学習データＤ１′〜Ｄｎ′の何れか１個を、該重み学習データＤ１′〜Ｄｎ′に対応する摂動重み学習データＤδ１〜Ｄδｎに置き代えて他の全ての重み学習データと合計したｊ個の第２出力値Ｏδ１〜Ｏδｊ（式（５））とを計算する（ステップＳ５）。
【００２５】
【数４】
2018116420.tif 000006
【００２６】
学習部６０は、摂動重み演算部３０で同時に計算する重み係数と同じ数のｊ個設けられ、第１出力値Ｏと第２出力値Ｏδｉからｊ個ごとに重み係数ｗｉを更新する計算をｍ回の単位で繰り返す（ステップＳ６）。更新する重み係数ｗｉ＿ｎｅｗを求める計算は、その値が収束するまで繰り返される（ステップＳ７のＮｏ）。
【００２７】
重み係数ｗｉ＿ｎｅｗが収束すると、重み係数は収束した値に更新される（ステップＳ８）。以上説明したステップＳ１〜Ｓ８の処理は、ｍ回の単位で繰り返される。
【００２８】
以上説明した本実施形態の摂動学習装置１によれば、重み更新の計算を並列に処理するので重み学習を高速に処理できる。また、一度に学習する学習データの数をｊ個に限定するので、摂動学習装置１の構成部品点数を削減することもできる。以降、図面を参照して各機能構成部を更に詳しく説明する。
【００２９】
（分岐部）
図３に、分岐部１０〜結合部５０のより具体的な接続例を示す。分岐部１０は、ｎ個の光分波器１０１〜１０ｎと、マルチプレクサ１１とで構成される。
【００３０】
光分波器１０１〜１０ｎは、ｎ個の要素から成る学習データを、それぞれ２分岐し、一方のＡ１〜Ａｎを第２分岐部４０に出力し、他方のＡ１〜Ａｎをマルチプレクサ１１に出力する。マルチプレクサ１１は、学習部から与えられるｍの値に応じてｍｊ＋１〜（ｍ＋１）ｊの範囲の学習データＡｍｊ＋１〜Ａ（ｍ＋１）ｊを選択して摂動重み演算部３０に出力する。
【００３１】
例えば、ｎ＝14、ｊ＝5、とした場合、学習対象データＸｊは、Ｘｊ＝ｘ１，ｘ２，ｘ３，ｘ４，ｘ５、Ｘｊ＝ｘ６，ｘ７，ｘ８，ｘ９，ｘ１０、Ｘｊ＝ｘ１１，ｘ１２，ｘ１３，ｘ１４、が3回に分けて出力される。ｍは0以上の整数であり、Ｘｊは次式で表せる。
【００３２】
【数５】
2018116420.tif 000007
【００３３】
光分波器１０１〜１０ｎは、例えば一方のＡ１〜Ａｎの光強度をｊ＋1分のｊとし他方のＡｍｊ＋１〜Ａ（ｍ＋１）ｊの光強度をｊ＋１分の１とする。これは、後段の重み演算部２０が、学習対象データＸｊが生成される回数、学習データＸを重複して参照することによる。
【００３４】
本実施形態では、学習対象とする学習データの数をｊ個に減らすことで、構成部品点数を削減している。構成部品点数の削減数の具体例については後述する。
【００３５】
（重み演算部）
重み演算部２０は、例えば液晶を用いたｎ個の光減衰フィルタ２００〜２０ｎで構成することができる。その場合、重みｗｉは、光減衰フィルタの透過率によって与えられる。重み演算部２０に入力された学習非対象データＡ１〜Ａｎに対し、光減衰フィルタの透過率によって学習データＸの各々を、ｗ１,ｗ２,…,ｗｉ,…,ｗｎ倍に変換する。
【００３６】
重み演算部２０の出力する重み学習データは、学習データＸと重みｗｉの積演算値であり、Ｄｉと表記する（式（７））。ｉは、１〜ｎの整数である。
【００３７】
【数６】
2018116420.tif 000008
【００３８】
重み演算部２０として光減衰フィルタを用いる場合、電気光学（ＥＯ）変調器、音響光学（ＡＯ）変調器、ＭＥＭＳミラーを利用できる。光減衰フィルタの透過率の値は、入力される信号の光強度による影響を受けない。よって、透過率の制御が比較的容易であり、与えたい透過率と実際に与えた透過率の差を小さくして計算誤差を小さくすることができる。また、光減衰フィルタの透過率は、1以上であることは原理的に不可能である。そこでｗｉ＞1の場合、変換係数ｑ＞1を用いて1＞ｗｉ/ｑ=Ｗｉ′＞1/qに変換すれば良い。具体的には、後段の学習部６０で信号レベルをｑ倍に変換すれば良い。
【００３９】
また、重み演算部２０は、光増幅器で構成しても良い。その場合、半導体光増幅器（ＳＯＡ）を利用できる。光増幅器では、微小な光信号を増幅して、観測可能な光強度を出力する。よって、ニューラルネットワークの規模が大きくなり、ｎが増加し、学習データの要素へ与えられる光強度が微小になったとしても、学習データＸと重みｗｉの積演算値の計算が可能である。また、光増幅器の増幅率は1以下であることは原理的に不可能である。そこでｗｉ＜1の場合、変換係数ｑ′＜1を用いる。この場合の信号レベルの変換は、上記の光減衰フィルタを用いた場合と同じである。
【００４０】
（摂動重み演算部）
摂動重み演算部３０は、入力された学習対象データＸｊに対して摂動重み係数を乗じて、摂動重み学習データＤδiを計算する（式（８））。摂動重み係数は、重み係数に、該重み係数を補正する摂動係数δを加えたものである。摂動重み演算部３０は、重み演算部２０と同様に例えば光減衰フィルタ、又は光増幅器で構成できる。
【００４１】
【数７】
2018116420.tif 000009
【００４２】
摂動重み演算部３０は、ｍの値に応じた摂動重み学習データＤδiを計算する。例えば、ｎ＝14、ｊ＝5、とした場合、ｍ=0では、学習対象データｘ１〜ｘ５のそれぞれに、摂動重み係数ｗ１＋δ〜ｗ５＋δを乗じた摂動重み学習データＤδ１〜Ｄδ５を計算する。ｍ=1では、学習対象データｘ６〜ｘ１０のそれぞれに、摂動重み係数ｗ６＋δ〜ｗ１０＋δを乗じた摂動重み学習データＤδ６〜Ｄδ１０を計算する。ｍ=2では、学習対象データｘ１１〜ｘ１４のそれぞれに、摂動重み係数ｗ１１＋δ〜ｗ１４＋δを乗じた摂動重み学習データＤδ１１〜Ｄδ１４を計算する。
【００４３】
（第２分岐部）
第２分岐部４０は、重み学習データＤ＊のそれぞれをｊ＋１個に分岐する（ステップＳ４）。第２分岐部４０は、重み学習データＤ１をＪ＋１個のＤ１′に分岐する。同様に重み学習データＤｉ、及び重み学習データＤｎを、Ｊ＋１個のＤｉ′,Ｄｎ′に分岐する。
【００４４】
第２分岐部４０は、分岐部１０と同様に光分波器で構成することができる。光分波器としては、石英平面光導波路（ＰＬＣ）、フレキシブルポリマー光導波路、及び融着延伸型ファイバーカプラ等を用いることができる。
【００４５】
（結合部）
結合部５０は、第２分岐部４０でｊ＋１個に分岐された重み学習データＤ１′〜Ｄｎ′の全てを合計した第１出力値Ｏ（式（４））と、ｊ＋１個の重み学習データＤ＊の何れか１個を、該重み学習データＤ＊に対応する摂動重み学習データＤδ＊に置き代えて他の全ての重み学習データＤ＊と合計したｊ個の第２出力値Ｏδ＊（式（５））とを計算する。
【００４６】
図４に、第１出力値Ｏと第２出力値Ｏδ＊の例を示す。図４は、学習データＸの要素数ｎをｎ=14、一度に学習する学習対象データの数ｊをｊ=5とした場合を示す。
【００４７】
この例の場合、結合部５０は、第１出力値Ｏと第２出力値Ｏδ１〜Ｏδ５を３回に分けて出力する。３回に分けて出力する第１出力値Ｏは、全て同じ値である。
【００４８】
一方、第２出力値Ｏδｉは、３回に分けて出力される値が全て異なる。１回目のＯδ１は、Ｄ１（ｘ１ｗ１）がＤδ１に置き代えられ、他の全ての重み学習データと合計した値である。１回目のＯδ２は、Ｄ２（ｘ2ｗ2）がＤδ２に置き代えられる。同様に、１回目のＯδ５は、Ｄ５（ｘ5ｗ5）がＤδ５に置き代えられて他の重み学習データと合計した値である。
【００４９】
２回目のＯδ１は、Ｄ6（ｘ6ｗ6）がＤδ6に置き代えられ、他の全ての重み学習データと合計した値である。２回目のＯδ２は、Ｄ7（ｘ7ｗ7）がＤδ7に置き代えられる。同様に、２回目のＯδ５は、Ｄ10（ｘ10ｗ10）がＤδ10に置き代えられて他の重み学習データと合計した値である。
【００５０】
３回目のＯδ１は、Ｄ11（ｘ11ｗ11）がＤδ11に置き代えられ、他の全ての重み学習データと合計した値である。３回目のＯδ２は、Ｄ12（ｘ12ｗ12）がＤδ12に置き代えられる。同様に、３回目のＯδ５は、Ｄ15（ｘ15ｗ15）がこの例では存在しないので出力なしである。
【００５１】
（学習部）
図５に、学習部６０ｉのより具体的な構成例を示す。学習部６０ｉは、例えばアナログ電気回路で構成することができる。
【００５２】
学習部６０ｉは、３個の差動増幅器６１ｉ，６２ｉ，６３ｉ,６５ｉ、及び計算部６４ｉを備える。学習部６０ｉは、摂動重み演算部３０を構成する例えば光減衰フィルタと同じ数だけ設けられる。
【００５３】
差動増幅器６１ｉは、結合部５０が出力する第１出力値Ｏと、外部から入力される学習目標を表す教師値Ｔとの差分である第１コスト値Ｅ（Ｏ−Ｔ）を算出する。差動増幅器６２ｉは、結合部５０が出力する第２出力値Ｏδｉと、教師値Ｔとの差分である第２コスト値Ｅδｉを算出する。差動増幅器４３ｉは、第１コスト値Ｅと第２コスト値Ｅδｉの差分Ｅ−Ｅδｉを算出する。
【００５４】
計算部６４ｉは、外部から入力される強調重みｗｉを補正する摂動係数δと学習速度の傾きを表す学習係数η、及び差動増幅器６３ｉが出力する差分Ｅ−Ｅδｉを入力として、重みｗｉを更新する変化量Δｗｉ＿ｎｅｗを次式で計算する。
【００５５】
【数８】
2018116420.tif 000010
【００５６】
差動増幅器６５ｉは、１回前の重みｗｉ＿ｏｌｄに変化量Δｗｊ＿ｎｅｗを加えて更新した重みｗｉ＿ｎｅｗを出力する。
【００５７】
なお、図６に示すように差動増幅器６１ｉと６３ｉの間に第１乗算器６６ｉ、及び差動増幅器６２ｉと６３ｉの間に第２乗算器６７ｉを設けても良い。第１乗算器６６ｉは、第１コスト値Ｅ（Ｏ−Ｔ）を正の値に変換する。第１乗算器６６ｉは、第１コスト値Ｅ（Ｏ−Ｔ）に同じ値を乗ずる二乗演算器で構成しても良いし、第１コスト値Ｅ（Ｏ−Ｔ）の値が負の場合に−１を乗ずる乗算器で構成しても良い。第２乗算器６７ｉも同様である。
【００５８】
第１乗算器６６ｉと第２乗算器６７ｉを備えることで、変化量Δｗｉ＿ｎｅｗの計算精度を高めることができる。
【００５９】
〔第２実施形態〕
図７に、第２実施形態に係る摂動学習装置２の機能構成例を示す。摂動学習装置２は、波長多重光を用いて、例えばニューラルネットワークの重み学習を行う学習装置である。
【００６０】
摂動学習装置２は、学習データ生成部７０、光分岐部１２、第１重み演算部２１、第２重み演算部２２、摂動重み演算部３１、波長周回器８０、光結合部９０、及び学習部６０を備える。
【００６１】
学習データ生成部７０は、ｎ個の波長を含む波長多重光を、ｊ＋１個の波長を含む多波長光と、該多波長光に含まれない波長ごとの単波長光とに分岐し、多波長光にｎ個の学習データの先頭からｊ個ずつの学習データをｍ回に分けて付与した学習対象信号と、単波長光に対応する重みを付与した学習非対象信号とを生成する。
【００６２】
波長多重光は、ｎ個の波長成分を持つ光源を用いて生成する。光源としては、ｎ個の波長成分を持つ光を生成できれば良い。したがって、単波長コヒーレント光源をｎ個用意し、各光源から照射された光を光結合器によって合波して生成して生成しても良い。また、多波長光源を用いても良いし、インコーヒーレント光源を用いても良い。学習データ生成部７０について、詳しくは後述する。
【００６３】
光分岐部１２は、ｊ＋１個の波長を含む学習対象信号を、ある波長のｊ個の単波長光Ｂ１〜Ｂｊと、それ以外の波長を含むｊ個の多波長光Ａ１〜Ａｊとに２分岐する。例えば、ｊ個の単波長光の波長は最も短い波長λ０であり、ｊ個の多波長光は波長λ１〜λｊの波長を含む。光分岐部１２は、例えば、ＡＷＧ、回折格子、プリズム、及びＷＤＭカプラ等の波長分岐素子で構成できる。
【００６４】
第１重み演算部２１は、ｊ個の多波長光のそれぞれに対応する重み係数を乗じて第１重み学習データＤ１〜Ｄｊを計算する。第１重み学習データＤ１〜Ｄｊは、次式で表せる。ここでｉは、１〜ｊの整数である。
【００６５】
【数９】
2018116420.tif 000011
【００６６】
ここでＡ１は、λ１〜λｊの波長を含む多波長光である。よって、例えばＤ１は、多波長光に重みｗｍｊ＋１を乗じた値である。この作用は、第１実施形態で説明した重み演算部２０と同様に、例えば光減衰フィルタで実現できる。
【００６７】
摂動重み演算部３１は、ｊ個の単波長光のそれぞれに対応する重み係数に、該重み係数を補正する摂動係数δを加えた摂動重み係数を生成し、該摂動重み係数を、対応する単波長光に乗じて摂動重み学習データを計算する。摂動重み学習データＤδ１〜Ｄδｊは、次式で表せる。ここでＢ１は、λ０の波長の単波長光である。
【００６８】
【数１０】
2018116420.tif 000012
【００６９】
第２重み演算部２２は、学習非対象信号のそれぞれに、対応する重み係数を乗じて第２重み学習データＤｊ＋１〜Ｄｎを計算する。例えば、第２重み学習データＤｊ＋１は次式で表せる。第２重み学習データＤｎは、式（１２）の添え字がｊ＋１→ｎに変わる。
【００７０】
【数１１】
2018116420.tif 000013
【００７１】
波長周回器８０は、ｊ個の第１重み学習データＤ１〜Ｄｊとｊ個の摂動重み学習データＤδ１〜Ｄδｊを入力とし、ｊ個の第１重み学習データＤ１〜Ｄｊを全て結合した第１結合値Ｄ１と、ｊ個の第１重み学習データＤ１〜Ｄｊの何れか１個を、該第１重み学習データＤ１〜Ｄｊに対応する摂動重み学習データＤδ１〜Ｄδｊに置き代えて他の全ての第１重み学習データと結合したｊ個の第２結合値Ｄ２１〜Ｄ２ｊとを出力する。
【００７２】
波長周回器８０は、例えばＡＷＧで構成できる。波長周回器８０は、多波長光りが入力されると、多波長光を波長ごとに分岐して、入力ポートから波長の整数倍離れた距離の出力ポートに出力し、多波長光を生成する作用をする。この作用を用いて和演算する積演算値を選択する。波長周回器８０について、詳しくは後述する。
【００７３】
光結合部９０は、第１結合値Ｄ１とｎ−ｊ個の第２重み学習データＤｊ＋１〜Ｄｎを結合した第１出力値Ｏと、第２結合値Ｄ２１〜Ｄ２ｊのそれぞれと第２重み学習データＤｊ＋１〜Ｄｎを結合した第２出力値Ｏδ１〜Ｏδｊを生成する。第１出力値Ｏと第２出力値Ｏδｉは次式で表せる。但し、ｊ≦ｎ≦２ｊの場合である。
【００７４】
【数１２】
2018116420.tif 000014
【００７５】
最後の和演算は、波長周回器８０で光結合を行った光信号の光強度を受光器によって読み取ることで行う。なお、受光器の表記は省略している。
【００７６】
学習部６０は、第１出力値Ｏと第２出力値Ｏδ１〜Ｏδｊからｊ個ごとに重み係数をそれぞれ更新する計算を、ｍ回の単位で繰り返す。学習部６０は、参照符号から明らかなように第１実施形態と同じである。
【００７７】
以上説明したように本実施形態の摂動学習装置２によれば、重み更新の計算を並列に処理するので重み学習を高速に処理できる。また、一度に学習する学習データの数をｊ個に限定するので、摂動学習装置２の構成部品点数を削減することもできる。以降、図面を参照して各機能構成部を更に詳しく説明する。
【００７８】
（学習データ生成部）
図８に、より具体的な学習データ生成部７０の機能構成例を示す。学習データ生成部７０は、波長分岐部７１、波長合成部７２、光分岐部７３、第１学習データフィルタ７４、第２学習データフィルタ７５、及び光結合部７６を備える。
【００７９】
波長分岐部７１は、ｎ個の波長を含む波長多重光を、波長ごと（λ０，…，λｊ，…λｎ）の単波長光に分波する。波長分岐部７１は、上記の通りＡＷＧ等の波長分岐素子で構成される。
【００８０】
例えば、最も波長の短い波長λ０〜λｊまでのＪ＋１個の単波長光は、波長合成部７２に入力され、波長λｊ＋１〜λｎまでのｎ−ｊ個の単波長光は第２学習データフィルタ７５に入力される。
【００８１】
波長合成部７２は、波長分岐部７１で分波した最短の波長からｊ＋１番目に長い波長までの単波長光を合波する。波長合成部７２は、波長分岐部７１と同様に波長分岐素子で構成できる。
【００８２】
なお、波長分岐部７１と波長合成部７２を、１組の波長分岐素子で構成する代わりに光合成器であるカプラを用いても良い。光合成器を用いた場合は、損失無しで結合することは原理的に不可能であるため、変換係数ｑ＞１を用い、後段の学習部６０において信号をｑ倍すれば良い。
【００８３】
光分岐部７３は、波長合成部７２の出力する信号をｊ個に等分岐する。光分岐部７３は、石英平面光導波路（ＰＬＣ）、フレキシブルポリマー光導波路等で構成できる。
【００８４】
第１学習データフィルタ７４は、光分岐部７３の出力するｊ個の信号のそれぞれに、ｎ個の学習データの先頭からｊ個ずつｍ回に分けて学習データを付与した学習対象信号を生成する。学習データｘ１〜ｘｊは、学習部６０から入力されるｍによって次式に示すように変化する。
【００８５】
【数１３】
2018116420.tif 000015
【００８６】
ｊ＝5，ｎ＝14とした場合、ｍ＝０ではｘ１＝ｘ１，…，ｘ５＝ｘ５、ｍ＝1ではｘ１＝ｘ６，…，ｘ１０＝ｘ５、ｍ＝2ではｘ１＝ｘ11，…，ｘ3＝ｘ14である。このように、学習データは、ｊ個ずつｍ回に分けて付与される。
【００８７】
第２学習データフィルタ７５は、波長分岐部７１の出力するｎ−ｊ個の信号のそれぞれに、ｎ−ｊ個の学習データを付与した学習非対象信号を生成する。ｍ＝０では波長λｊ＋１の単波長光にｘ６、波長λｎの単波長光にｘｎの学習データが付与される。
【００８８】
光結合部７６は、第１学習データフィルタ７４のｊ個の出力信号を結合した学習対象信号を生成する。学習対象信号は、光分岐部１２に出力する。
【００８９】
（第２実施形態の分岐部）
図９に、光分岐部１２のより具体的な機能構成例を示す。光分岐部１２は、波長分岐部１２１、波長合成部１２２、第１光分岐部１２３、及び第２光分岐部１２４を備える。
【００９０】
波長分岐部１２１と波長合成部１２２の関係は、学習データ生成部７０の波長分岐部７１と波長合成部７２の関係と同じである。この例では、波長分岐部１２１と波長合成部１２２で学習対象信号に含まれるλ０〜λｊの波長を、最も短い波長λ０の単波長光と、それ以外の波長を含む多波長光に分岐する。
【００９１】
第１光分岐部１２３は、多波長光をｊ個の多波長光Ａ１〜Ａｊに分岐する。第２光分岐部１２４は、単波長光をｊ個の単波長光Ｂ１〜Ｂｊに分岐する。
【００９２】
（波長周回器）
図１０に、波長周回器８０の作用を模式的に示す。波長周回器８０は、第１重み学習データＤ１〜Ｄｊと摂動重み学習データＤδ１〜Ｄδｊを入力として、第１結合値Ｄ１と第２結合値Ｄ２１〜Ｄ２ｊを出力する。
【００９３】
第１結合値Ｄ１は、ｊ個の第１重み学習データＤ１〜Ｄｊの全てを合計（結合）した値である。第２結合値Ｄ２１は、第１重み学習データＤ１を摂動重み学習データＤδ１に置き代えて、摂動重み学習データＤδ１と第１重み学習データＤ１を除く他の第１重み学習データＤ２〜Ｄｊを合計した値である。
【００９４】
第２結合値Ｄ２ｊは、第１重み学習データＤｊを摂動重み学習データＤδｊに置き代えて、摂動重み学習データＤδｊと第１重み学習データＤｊを除く他の第１重み学習データＤ１〜Ｄｊ−１を合計した値である。
【００９５】
このように、波長周回器８０は、ｊ個の第１重み学習データＤ１〜Ｄｊを全て結合した第１結合値Ｄ１と、ｊ個の第１重み学習データＤ１〜Ｄｊの何れか１個を、該第１重み学習データに対応する摂動重み学習データに置き代えて他の全ての第１重み学習データと結合したｊ個の第２結合値Ｄ２１〜Ｄ２ｊとを出力する。
【００９６】
（光結合部）
光結合部９０は、光結合器９１、光分岐器９２、及び光結合器９３を備える。図１１に、光結合器９１と光分岐器９２の作用を模式的に示す。図１２に、光結合器９３の作用を模式的に示す。
【００９７】
光結合器９１は、今回学習しない重みを付与した非学習対象信号Ｄｊ＋１〜Ｄｎを結合（合波）する。今回とは、ｍ回の回数の何れかのことである。
【００９８】
光分岐器９２は、結合した非学習対象信号Ｄｊ＋１〜Ｄｎをｊ＋１個に等分岐する。ｊ＋１とは、同時に学習する重みの数＋１の数である。
【００９９】
光結合器９３は、波長周回器８０を通過した今回学習する重みを付与した第１結合値Ｄ１及び第２結合値Ｄ２１〜Ｄ２ｊのそれぞれに、非学習対象信号Ｄｊ＋１〜Ｄｎを結合させて第１出力値Ｏと第２出力値Ｏδ１〜Ｏδｊを生成する。
【０１００】
図１２に示す第１出力値Ｏと第２出力値Ｏδ１〜Ｏδｊの関係は、図４に示した第１実施形態の両者の関係と同じである。つまり、本実施形態は、波長多重光に学習する重みが付与されている点で異なるだけで作用効果は第１実施形態と同じである。
【０１０１】
（比較例との対比）
以上説明した摂動学習装置１，２によれば重み学習を高速化できる。そこで、本実施形態の効果を確認する目的で、比較例と摂動学習装置１（図１）の学習速度の比較を行った。学習速度の比較は、ニューラルネットワークのハードウェアにおいて、１秒間に書き換え可能なパラメータの更新回数ＣＵＰＳ（Connections Updated Per Second）を比較することで行った。
【０１０２】
シミュレーションの条件は、比較例を、ニューラルネットワークの規模を10000ニューロンであるとき、動作クロック3GHz、8コアのＣＰＵを使用とした。比較例のＣＰＵによる重み書き換え数は、1.8MCUPSと試算された。
【０１０３】
本実施形態の構成で、摂動重み演算部３１で同時に計算する重みの数を１０個としてシミュレーションした。条件は、入力フィルタとして用いる空間光り変調器の時定数を0.1ns、重みフィルタとして用いる空間光変調器の時定数を0.1ns、受光器として用いるアバランシェフォトダイオードの時定数を1ns、重み変化量を演算するアナログ回路の遅延を0.1ns、重み更新量を指令するコントローラの遅延を1nsと仮定した。
【０１０４】
本実施形態の重み書き換え数は100MCPUSと試算された。比較例に対して50倍以上に高速化することができた。
【０１０５】
また、本実施形態によれば低消費電力化が図れる。図１３に、比較した結果の一例を示す。図１３（ａ）に、フィルタの消費電力を比較した例、図１３（ｂ）に構成部品点数を比較した例を示す。
【０１０６】
ニューラルネットワークの規模は10000ニューロンで比較した。同時に学習する重みの数を１０個とし、フィルタサイズを800×600ピクセル、消費電力を50VA、データ１成分当たりのフィルタサイズを8ピクセルと仮定した。
【０１０７】
その条件で、比較例のフィルタの消費電力は183.3kVAと試算された。一方、本実施形態は16.7kVAと試算された。比較例に対して消費電力を約10分の1にすることができた。
【０１０８】
また、本実施形態の摂動学習装置１，２は、当該装置を構成する構成部品点数を削減することもできる。図１３（ｂ）に示すように、ニューロンに依存しないで本実施形態の構成部品点数は、比較例に対して一桁少なくて済む。なお、第２実施形態では波長周回器８０を用いるため、部品点数が増加する（二点鎖線）。但し、増加分はニューロン数に依存せず10数個で一定である。よって、摂動学習装置２でも十分に構成分品点数を削減することができる。
【０１０９】
以上説明したように本実施形態の摂動学習装置１，２によれば、重み学習を、高速化、低消費電力化、及び小型化することができる。
【０１１０】
摂動学習装置２は、光部品を用いて構成した例で説明を行った。光をキャリアとして用いると、３次元空間に光配線を形成することができ、ショートの恐れや配線の取り回しといったデメリットが少ない。
【０１１１】
なお、本発明はこの例に限定されない。例えば、摂動学習装置１の分岐部１０は、不等分岐の例で説明したが、等分岐する分岐部１０で構成しても良い。等分岐する場合は、摂動重み演算部３０と結合部５０との間に、信号をｊ分の１に減衰する減衰器を設ければ良い。また、光部品を用いずに本実施形態の摂動学習装置１を構成しても良い。光は電磁波の一種である。よって、例えば分岐部１０は、電磁波分岐器で構成することが可能である。また、結合部５０も電磁波結合器で構成することが可能である。このように本発明は、上記の実施形態に限定されるものではなく、その要旨の範囲内で変形が可能である。
【産業上の利用可能性】
【０１１２】
本実施の形態は、例えば階層型ニューラルネットワークの学習装置に適用することができ、光コンピューティングなどの分野に利用可能である。
【符号の説明】
【０１１３】
１、２：摂動学習装置
１０、１２：分岐部
１０１、１０ｉ、１０ｎ：光分波器
１１：マルチプレクサ
１２、７３：光分岐部
１２１：波長分岐部
１２２：波長合成部
１２３：第１光分岐部
１２４：第２光分岐部
２０：重み演算部
２００、２０ｉ、２０ｎ：光減衰フィルタ
３０：摂動重み演算部
４０：第２分岐部
５０：結合部
６０、６０１、６０ｊ：学習部
６１ｊ，６２ｊ，６３ｊ,６５ｉ：差動増幅器
６４ｊ：計算部
７０：学習データ生成部
７４：第１学習データフィルタ
７５：第２学習データフィルタ
８０：波長周回器
７６、９０：光結合部
９１：光結合器
９２：光分岐器
【図１】
2018116420.tif 000017
【図２】
2018116420.tif 000018
【図３】
2018116420.tif 000019
【図４】
2018116420.tif 000020
【図５】
2018116420.tif 000021
【図６】
2018116420.tif 000022
【図７】
2018116420.tif 000023
【図８】
2018116420.tif 000024
【図９】
2018116420.tif 000025
【図１０】
2018116420.tif 000026
【図１１】
2018116420.tif 000027
【図１２】
2018116420.tif 000028
【図１３】
2018116420.tif 000029