(57)【要約】【課題】複数の時系列データを入力として扱うリザーバコンピューティングにおいて、高精度かつ高速な処理を実現する。【解決手段】入力部、リザーバ部、及び出力部から構成される再帰型ニューラルネットワークを用いた演算処理を実行する計算機システムであって、入力部は、複数の時系列データを受け付ける入力ノードを含み、リザーバ部は、時間遅延を伴う一つの非線形ノードを含み、出力部は、出力値を算出する出力ノードを含み、入力部は、受け付けた複数の時系列データの各々に対してサンプル及びホールド処理、並びにマスク処理を実行することによって、複数の入力ストリームを算出し、複数の入力ストリームの各々に対して時間のズレを与える時間シフト処理を実行し、時間シフト処理が実行された複数の入力ストリームの各々を重ね合わせることによって入力データを算出する。【選択図】図３
2018180701.tif 000002
【特許請求の範囲】
【請求項１】
入力部、リザーバ部、及び出力部から構成される再帰型ニューラルネットワークを用いた演算処理を実行する計算機システムであって、
前記計算機システムは、少なくとも一つの計算機を備え、
前記少なくとも一つの計算機は、演算装置及び前記演算装置に接続されるメモリを有し、
前記入力部は、複数の時系列データを受け付ける入力ノードを含み、
前記リザーバ部は、前記入力部が出力する入力データを受け取る、時間遅延を伴う少なくとも一つの非線形ノードを含み、
前記出力部は、前記リザーバ部からの出力を受け付ける出力ノードを含み、
前記入力部は、
複数の時系列データを受け付け、
前記複数の時系列データの各々を第１の時間幅に分割し、
前記複数の時系列データの各々について、前記第１の時間幅に含まれる時系列データに対してサンプル及びホールド処理を実行することによって、第１の入力ストリームを算出し、
複数の第１の入力ストリームの各々について、前記第１の入力ストリームを第２の時間幅で変調するマスク処理を実行することによって、複数の第２の入力ストリームを算出し、
前記複数の第２の入力ストリームの各々に対して、時間のズレを与える時間シフト処理を実行し、
前記時間シフト処理が実行された複数の第２の入力ストリームの各々を重ね合わせることによって前記入力データを算出することを特徴とする計算機システム。
【請求項２】
請求項１に記載の計算機システムであって、
前記複数の第１の入力ストリームの各々に与える遅延の大きさが異なることを特徴とする計算機システム。
【請求項３】
請求項２に記載の計算機システムであって、
前記入力部は、
前記第１の入力ストリーム及び前記第２の入力ストリームを算出するマスク回路と、
前記複数の第２の入力ストリームの各々に前記時間のズレを与える複数のシフトレジスタと、
前記時間シフト処理が実行された複数の第２の入力ストリームの各々を重ね合わせる演算回路と、から構成されることを特徴とする計算機システム。
【請求項４】
請求項２に記載の計算機システムであって、
前記時間シフト処理では、
前記入力部が、前記複数の第２の入力ストリームを前記メモリに一時的に格納し、
前記入力部が、読出タイミングを調整して、前記メモリから前記複数の第２の入力ストリームの各々を読み出すことを特徴とする計算機システム。
【請求項５】
少なくとも一つの計算機を有する計算機システムにおける再帰型ニューラルネットワークを用いた演算方法であって、
前記少なくとも一つの計算機は、演算装置及び前記演算装置に接続されるメモリを有し、
前記再帰型ニューラルネットワークは、入力部、リザーバ部、及び出力部から構成され、
前記入力部は、複数の時系列データを受け付ける入力ノードを含み、
前記リザーバ部は、前記入力部が出力する入力データを受け取る、時間遅延を伴う少なくとも一つの非線形ノードを含み、
前記出力部は、前記リザーバ部からの出力を受け付ける出力ノードを含み、
前記演算方法は、
前記入力部が、複数の時系列データを受け付ける第１のステップと、
前記入力部が、前記複数の時系列データの各々を第１の時間幅に分割する第２のステップと、
前記入力部が、前記複数の時系列データの各々について、前記第１の時間幅に含まれる時系列データに対してサンプル及びホールド処理を実行することによって、第１の入力ストリームを算出する第３のステップと、
前記入力部が、複数の第１の入力ストリームの各々について、前記第１の入力ストリームを第２の時間幅で変調するマスク処理を実行することによって、複数の第２の入力ストリームを算出する第４のステップと、
前記入力部が、前記複数の第２の入力ストリームの各々に対して、時間のズレを与える時間シフト処理を実行する第５のステップと、
前記入力部が、前記時間シフト処理が実行された複数の第２の入力ストリームの各々を重ね合わせることによって前記入力データを算出する第６のステップとを含む、ことを特徴とする再帰型ニューラルネットワークを用いた演算方法。
【請求項６】
請求項５に記載の再帰型ニューラルネットワークを用いた演算方法であって、
前記複数の第１の入力ストリームの各々に与える遅延の大きさが異なることを特徴とする再帰型ニューラルネットワークを用いた演算方法。
【請求項７】
請求項６に記載の再帰型ニューラルネットワークを用いた演算方法であって、
前記入力部は、
前記第１の入力ストリーム及び前記第２の入力ストリームを算出するマスク回路と、
前記複数の第２の入力ストリームの各々に前記時間のズレを与える複数のシフトレジスタと、
前記時間シフト処理が実行された複数の第２の入力ストリームの各々を重ね合わせる演算回路と、から構成されることを特徴とする再帰型ニューラルネットワークを用いた演算方法。
【請求項８】
請求項６に記載の再帰型ニューラルネットワークを用いた演算方法であって、
前記第５のステップは、
前記入力部が、前記複数の第２の入力ストリームを前記メモリに一時的に格納するステップと、
前記入力部が、読出タイミングを調整して、前記メモリから前記複数の第２の入力ストリームの各々を読み出すステップと、を含むことを特徴とする再帰型ニューラルネットワークを用いた演算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はリザーバコンピューティングに関する。
【背景技術】
【０００２】
近年、脳神経ネットワークを模倣したニューラルネットワークが機械学習で利用されている。ニューラルネットワークは、入力層、出力層、及び隠れ層から構成される。隠れ層では、単純な変換を繰り返して、入力データを高次元のデータに変換することによって、情報の識別及び予測等、所望の出力を得ることができる。
【０００３】
隠れ層の変換の一例として、ニューロンの発火現象を模した非線形変換がある。ニューロンの発火現象は、ニューロンに対して閾値を超える電位の入力があった場合に、急激に膜電位が上昇し、出力が変化する非線形現象として知られている。前述の現象を再現するために、例えば、式（１）に示すシグモイド関数が用いられている。
【０００４】
【数１】
2018180701.tif 000003
【０００５】
画像等の認識で用いられるニューラルネットワークは、フィードフォワードネットワークと呼ばれる。フィードフォワードネットワークは、ある時刻の独立したデータ群を入力として扱い、データは入力層、隠れ層、出力層の順に送られる。
【０００６】
動画及び言語等の識別で用いられるニューラルネットワークは、リカレントニューラルネットワーク（再帰型ニューラルネットワーク）と呼ばれる。時間変化するデータを識別するためには、時間軸上のデータの相関を含めた解析が必要となるため時系列データが入力される。そのため、リカレントニューラルネットワークの隠れ層では、過去のデータ及び現在のデータを扱った処理が実行される。
【０００７】
リカレントニューラルネットワークは、学習プロセスがフィードフォワードネットワークに比べて複雑となるという問題がある。また、学習プロセスの計算コストが高いという問題もある。そのため、一般的に、リカレントニューラルネットワークのニューロン数は少なく設定されている。
【０００８】
この課題を解決する手法として、リザーバコンピューティングという方式が知られている（例えば、特許文献１、特許文献２参照）。リザーバコンピューティングでは、隠れ層に相当するリザーバを構成するネットワークの接続は固定し、リザーバ及び出力層の接続について学習が行われる。
【０００９】
計算機に実装可能なリザーバコンピューティングとし、時間遅延を伴う一つの非線形ノード及び遅延ループから構成されるリザーバが提案されている（例えば、非特許文献１）。非特許文献１には、遅延間隔をＮ等分し、各点を仮想ノードと見なすことによって、リザーバのネットワークを構築することが記載されている。非特許文献１に記載のリザーバは、構成がシンプルであるため、容易に計算機に実装できる。
【００１０】
ここで、図９を用いて、非特許文献１に記載のリザーバを含むリザーバコンピューティングを示す。
【００１１】
入力層に入力されたデータは、サンプル及びホールド処理が実行される。平坦化処理では、幅Ｔの区間ごとにサンプリングが行われる。ここで、Ｔは、遅延時間に対応する。さらに、入力層に入力されたデータは、一つの区間をＮ等分し、変調するマスク処理が実行される。前述の処理が実行された入力信号は、幅Ｔごとに処理される。幅Ｔに含まれるＮ個の値が仮想ノードの状態として扱われる。
【００１２】
入力層に入力されるデータが連続時間のデータ及び離散時間のデータのいずれであっても、離散化されたデータに変換される。リザーバでは、各仮想ノードの状態及び重みを乗算した値の総和が出力層に出力される。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特願２００２−５３５０７４号公報
【特許文献２】特開２００４−２４９８１２号公報
【非特許文献】
【００１４】
【非特許文献１】L. Larger, M. C. Soriano, D. Brunner, L. Appeltant, J. M. Gutierrez, L. Pesquera, C. R. Mirasso, and I. Fischer, オプティクス エクスプレス(Ｏｐｔｉｃｓ Ｅｘｐｒｅｓｓ), 20, 2012年, ｐ.3241.
【非特許文献２】Jordi Fonollosa, Sadique Sheik, Ramon Huerta, and Santiago Marcob, センサーズ．アンド．アクチュエーターズB (Sensors and Actuators B: Chemical), 215, 2015年, ｐ.618.
【発明の概要】
【発明が解決しようとする課題】
【００１５】
非特許文献１に記載のリザーバコンピューティングの場合、リザーバを構成する一つの非線形ノードが入力層から送信されるデータの入力ポートとして機能する。そのため、入力されるデータの系列数は、入力ポートの数に制限される。
【００１６】
異なる入力データを用いる複雑な処理の場合、非特許文献１に記載のリザーバは、複数の入力データを一度に扱うことができない。複雑な処理としては、例えば、非特許文献２に記載の処理がある。非特許文献２では、混合ガスの成分を識別する処理が記載されている。具体的には、十六個のセンサが出力したデータを用いて、二種類のガスが混在した混合ガス中におけるそれぞれのガスの濃度を出力する処理が記載されている。
【００１７】
非特許文献１のリザーバコンピューティングを用いて前述の処理を実現する方法として、図１０Ａ、図１０Ｂ、及び図１０Ｃに示すような方法が考えられる。
【００１８】
図１０Ａは、並列方式を示す。当該方法では、入力データの種類の数に合わせて、入力層及びリザーバを並列化する。当該方法の場合、実装規模が大きくなるため、装置が大型化するという問題がある。
【００１９】
図１０Ｂは、直列方式を示す。当該方法では、リザーバの入力側及び出力側に一時的にデータを格納するメモリを設ける。装置は、入力データを逐次処理する。
【００２０】
装置は、入力データ１について処理が完了した場合、出力側のメモリ及び入力側のメモリに処理結果を格納する。入力データ２について処理を実行する場合、装置は、入力側のメモリに格納される入力データ１の処理結果及び入力データ２を用いて処理を実行する。以下、同様の処理が実行される。
【００２１】
当該方法の場合、入力データの数に比例して処理時間が長くなるため、高速な処理を実現できない。また、前後の処理結果を格納するメモリが必要なるため、装置が大型化するという問題もある。
【００２２】
図１０Ｃは、別の直列方式を示す。当該方法では、入力データの数に合わせて、仮想ノードの数を増やし、複数の入力データを交互にリザーバに入力する。仮想ノードの間隔は、スイッチング速度に依存する。
【００２３】
当該方法の場合、遅延ネットワークのサイズ、すなわち、遅延時間が長くなるため処理速度が低下する。また、光回路を用いて実装する場合、光導波路の長さが長くなるため装置が大型になるという問題がある。電子回路を用いて実装する場合、各入力データの値を保持するためのメモリ容量を大きくする必要がある。
【００２４】
本明細書では、並列方式と記載する場合、図１０Ａの方式を示す。また、直列方式と記載する場合、図１０Ｂ又は図１０Ｃの方式を示す。
【００２５】
本発明は、装置規模を大きくすることなく実装でき、高精度かつ高速に複数の時系列データを処理することができるシステム及び方法を提供することを目的とする。
【課題を解決するための手段】
【００２６】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、入力部、リザーバ部、及び出力部から構成されるニューラルネットワークを用いた演算処理を実行する計算機システムであって、前記計算機システムは、少なくとも一つの計算機を備え、前記少なくとも一つの計算機は、演算装置及び前記演算装置に接続されるメモリを有し、前記入力部は、複数の時系列データを受け付ける入力ノードを含み、前記リザーバ部は、前記入力部が出力するデータを受け取る、時間遅延を伴う一つの非線形ノードを含み、前記出力部は、前記リザーバ部の出力を受け付け、出力値を算出する出力ノードを含み、前記入力部は、複数の時系列データを受け付け、前記複数の時系列データの各々を第１の時間幅に分割し、前記複数の時系列データの各々について、前記第１の時間幅に含まれる時系列データに対してサンプル及びホールド処理を実行することによって、第１の入力ストリームを算出し、複数の第１の入力ストリームの各々について、前記第１の入力ストリームを第２の時間幅で変調するマスク処理を実行することによって、複数の第２の入力ストリームを算出し、前記複数の第２の入力ストリームの各々に対して、時間のズレを与える時間シフト処理を実行し、前記時間シフト処理が実行された複数の第２の入力ストリームの各々を重ね合わせることによって第３の入力ストリームを算出し、前記第３の入力ストリームを前記非線形ノードに入力することを特徴とする。
【発明の効果】
【００２７】
本発明によれば、装置規模を大きくすることなく実装でき、また、高精度かつ高速に複数の時系列データを処理できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【００２８】
【図１】実施例１のリザーバコンピューティングを実現する計算機の構成例を示す図である。
【図２】実施例１のリザーバコンピューティングの概念を示す図である。
【図３】実施例１の入力部が実行する処理を説明するフローチャートである。
【図４Ａ】実施例１の入力部が実行する処理の概念を示す図である。
【図４Ｂ】実施例１の入力部が実行する処理の概念を示す図である。
【図４Ｃ】実施例１の入力部が実行する処理の概念を示す図である。
【図４Ｄ】実施例１の入力部が実行する処理の概念を示す図である。
【図４Ｅ】実施例１の入力部が実行する処理の概念を示す図である。
【図４Ｆ】実施例１の入力部が実行する処理の概念を示す図である。
【図５Ａ】施例１の計算機に入力される時系列データの一例を示す図である。
【図５Ｂ】従来の並列方式の出力結果を示すグラフである。
【図５Ｃ】実施例１の計算機の出力結果を示すグラフである。
【図６】実施例１の方式の性能を示す図である。
【図７Ａ】実施例２の計算機の構成の一例を示す図である。
【図７Ｂ】実施例２の計算機の構成の一例を示す図である。
【図８】実施例３の光回路チップの構成の一例を示す図である。
【図９】従来のリザーバコンピューティングの論理構造を示す図である。
【図１０Ａ】従来技術のリザーバコンピューティングにおける課題の解決方法を示す図である。
【図１０Ｂ】従来技術のリザーバコンピューティングにおける課題の解決方法を示す図である。
【図１０Ｃ】従来技術のリザーバコンピューティングにおける課題の解決方法を示す図である。
【発明を実施するための形態】
【００２９】
以下、本発明の実施形態について図面を用いて説明する。なお、実施形態を説明するための全図において、同一の機能を有する箇所には同一の符号を付し、その繰り返しの説明は省略する。なお、以下に示す図は、あくまで、実施形態の実施例を説明するものであって、図の大きさと本実施例に記載の縮尺は必ずしも一致するものではない。
【実施例１】
【００３０】
図１は、実施例１のリザーバコンピューティングを実現する計算機１００の構成例を示す図である。
【００３１】
計算機１００は、演算装置１０１、メモリ１０２、及びネットワークインタフェース１０３を有する。
【００３２】
演算装置１０１は、プログラムにしたがって処理を実行する。演算装置１０１は、プロセッサ及びＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等が考えられる。演算装置１０１がプログラムにしたがって処理を実行することによって所定の機能部を実現する。以下の説明では、機能部を主語に処理を説明する場合、演算装置１０１が当該機能部を実現するプログラムを実行していることを示す。
【００３３】
メモリ１０２は、演算装置１０１が実行するプログラム及びプログラムが使用する情報を格納する。また、メモリ１０２は、プログラムが一時的に使用するワークエリアを含む。
【００３４】
ネットワークインタフェース１０３は、ネットワークを介して、センサ等の外部装置と接続するインタフェースである。
【００３５】
なお、計算機１００は、キーボード及びマウス等の入力装置及びディスプレイ等の出力装置と接続する入出力インタフェースを有してもよい。
【００３６】
本実施例のメモリ１０２は、再帰型ニューラルネットワークを実現する入力部１１１、リザーバ部１１２、及び出力部１１３を実現するプログラムを格納する。
【００３７】
入力部１１１は、リザーバコンピューティングの入力層に対応する処理を実行する。リザーバ部１１２は、リザーバコンピューティングのリザーバに対応する処理を実行する。出力部１１３は、リザーバコンピューティングの出力層に対応する処理を実行する。
【００３８】
図２は、実施例１のリザーバコンピューティングの概念を示す図である。
【００３９】
入力部１１１は、複数の時系列データを受け付ける入力ノードを含む。入力部１１１は、データ変換処理を実行することによって複数の時系列データから入力データｘ（ｔ）を生成し、リザーバ部１１２に入力データｘ（ｔ）を出力する。
【００４０】
リザーバ部１１２は、時間遅延を伴う一つの非線形ノード２００から構成される。なお、リザーバ部１１２には、二つ以上の非線形ノード２００を含んでもよい。非線形ノード２００は、入力部１１１から入力データｘ（ｔ）を受け付けた場合、時間幅Ｔずつに入力データｘ（ｔ）を分割し、時間幅Ｔを一つの処理単位とした演算処理を実行する。
【００４１】
ここで、Ｔは遅延時間（遅延ネットワークの長さ）を表す。なお、分割した入力データｘ（ｔ）はＮ次元のベクトルとして扱われる。Ｎは仮想ノードの数を表す。
【００４２】
演算処理では、リザーバ部１１２は、式（２）に示す非線形変換を実行して、Ｎ次元のデータｑ（ｔ）を算出する。なお、データｑ（ｔ）の各成分は式（３）のように表される。
【００４３】
【数２】
2018180701.tif 000004
【００４４】
【数３】
2018180701.tif 000005
【００４５】
ここで、式（２）のｃは再帰係数を表す。関数ｆは、非線形関数であり、例えば、式（４）のように与えられる。
【００４６】
【数４】
2018180701.tif 000006
【００４７】
ここで、係数ａ、ｂは調整可能なパラメータである。式（２）において、関数ｆの括弧内の二項目は遅延信号を表す。
【００４８】
なお、本発明は非線形変換処理で用いる数式に限定されない。例えば、任意の三角関数等を用いた非線形変換処理でもよい。
【００４９】
データｑ（ｔ）は、仮想ノード２０１から構成される遅延ネットワークに送信される。具体的には、式（３）の各成分の値が仮想ノード２０１の状態値としてエミュレーションされる。以下の説明では、式（３）の各成分の値をｑｉ（ｔ）と記載する。なお、添字ｉは１からＮまでの値である。
【００５０】
遅延ネットワークから出力されるデータｙ（ｔ）は、式（２）に示すように、再び、遅延ネットワークに入力される。これによって、異なるデータの重ね合わせを実現できる。
【００５１】
出力部１１３は、リザーバ部１１２から入力されたデータを受け付ける出力ノードを含む。なお、リザーバ部１１２からは式（５）に示すような演算処理の結果が入力される。
【００５２】
【数５】
2018180701.tif 000007
【００５３】
ここで、ｗｉは重み係数を表す。データｙ（ｔ）はスカラー値である。
【００５４】
入力部１１１が実行する具体的な処理について説明する。図３は、実施例１の入力部１１１が実行する処理を説明するフローチャートである。図４Ａ、図４Ｂ、図４Ｃ、図４Ｄ、図４Ｅ、及び図４Ｆは、実施例１の入力部１１１が実行する処理の概念を示す図である。
【００５５】
入力部１１１は、複数の時系列データｕｊ（ｔ）を受け付ける（ステップＳ１０１）。このとき、入力部１１１は、カウンタ値ｍを０に初期化する。ここで、添字ｊは時系列データを識別する値である。例えば、入力部１１１は、図４Ａに示す時系列データｕｊ（ｔ）を受け付ける。
【００５６】
次に、入力部１１１は、時系列データからターゲット時系列データｕｊ（ｔ）を選択する（ステップＳ１０２）。このとき、入力部１１１は、カウンタ値ｍに１を加算する。
【００５７】
次に、入力部１１１は、ターゲット時系列データｕｊ（ｔ）に対してサンプル及びホールド処理を実行し、ストリームＡｊ（ｔ）を算出する（ステップＳ１０３）。なお、サンプルの周期はＴとする。図４Ａに示す時系列データｕｊ（ｔ）に対して、図４Ｂのようなサンプリングが行われ、さらに、サンプル及びホールド処理が実行されることによって、図４ＣのようなストリームＡｊ（ｔ）が得られる。
【００５８】
以下の説明では、一つの区間のストリームＡｊ（ｔ）をストリーム［Ａ］ｊｋ（ｔ）と記載する。なお、ストリーム［Ａ］ｊｋ（ｔ）は、図４Ｃに示すように、一つの区間において一定値となる。
【００５９】
次に、入力部１１１は、各ストリーム［Ａ］ｊｋ（ｔ）に対して、時間幅τMごとに強度を変調するマスク処理を実行し、入力ストリームａｊ（ｔ）を算出する（ステップＳ１０４）。例えば、図４Ｄのような入力ストリームａｊ（ｔ）が得られる。本実施例では、−１から＋１の範囲で強度変調が行われる。ここで、τMは、仮想ノード間の間隔を表し、式（６）を満たす。
【００６０】
【数６】
2018180701.tif 000008
【００６１】
なお、変調は、振幅変調又は位相変調のいずれでもよい。具体的な変調は、ランダムビット列をストリームＡｊ（ｔ）に乗算することで行われる。
【００６２】
なお、ランダムビット列は、バイナリのランダムビット列でもよし、８値又は１６値等の離散的な多値ランダムビット列でもよい。また、連続的な強度変化を示す信号系列でよい。バイナリのランダムビット列を用いた変調の場合、システム構成を単純にでき、また、既存のデバイスを用いて実現できるという長所がある。多値ランダムビット列を用いて変調の場合、複雑なダイナミクスを再現できるため、計算精度が向上するという長所がある。
【００６３】
以下の説明では、一つの区間の入力ストリームａｊ（ｔ）を入力ストリーム［ａ］ｊｋ（ｔ）と記載する。なお、入力ストリーム［ａ］ｊｋ（ｔ）は、Ｎ次元のベクトルであり、下式（７）のように表される。図４Ｅには、入力ストリーム［ａ］ｊｋ（ｔ）の詳細を示している。
【００６４】
【数７】
2018180701.tif 000009
【００６５】
次に、入力部１１１は、カウンタ値ｍに基づいた時間のズレを発生させる時間シフト処理を実行することによって、入力ストリームａｊ（ｔ）を入力ストリームαｊ（ｔ）に変換する（ステップＳ１０５）。その後、入力部１１１は、ステップＳ１０７に進む。
【００６６】
時間シフト処理は、時間を遅らせる処理でもよいし、時間を進める処理でもよい。例えば、式（８）に示す時間シフト処理が行われる。
【００６７】
【数８】
2018180701.tif 000010
【００６８】
式（８）は、任意の入力ストリームａｊ（ｔ）を基準として、他の入力ストリームａｊ（ｔ）に遅延を与える時間シフト処理である。式（８）に示すように、カウンタ値ｍが「１」である入力ストリームが基準となる。
【００６９】
なお、遅延の発生方法は、前述のものに限定されない。例えば、τMの整数倍ごとに遅延を発生させてもよい。また、カウンタ値ｍにかかわらず、ランダムに遅延を発生させてもよい。
【００７０】
なお、カウンタ値ｍがｐである入力ストリームαｐ（ｔ）は、入力ストリームα１（ｔ）よりｐτMだけ遅延している。当該遅延は、Ｎが大きい場合、時間Ｔより十分小さくなる。
【００７１】
次に、入力部１１１は、全ての時系列データについて処理が完了したか否かを判定する（ステップＳ１０６）。
【００７２】
全ての時系列データについて処理が完了していないと判定された場合、入力部１１１は、ステップＳ１０２に戻り、同様の処理を実行する。
【００７３】
全ての時系列データについて処理が完了したと判定された場合、入力部１１１は、各入力ストリームαｊ（ｔ）を重ね合わせることによって、入力データｘ（ｔ）を算出する（ステップＳ１０７）。入力ストリームαｊ（ｔ）の重ね合わせは、例えば式（９）で定義する。当該処理によって、図４Ｆに示すような入力データｘ（ｔ）が得られる。
【００７４】
【数９】
2018180701.tif 000011
【００７５】
次に、入力部１１１は、入力データｘ（ｔ）をリザーバ部１１２の非線形ノード２００に入力する（ステップＳ１０８）。その後、入力部１１１は処理を終了する。
【００７６】
なお、別の処理方法としては以下のようなものが考えられる。ステップＳ１０４の処理が完了した後、入力部１１１は、入力ストリームａｊ（ｔ）をメモリ１０２のワークエリアに一旦格納し、その後、ステップＳ１０６の処理を実行する。ステップＳ１０６の判定結果がＹＥＳの場合、各入力ストリームａｊ（ｔ）の読出タイミングを調整し、重ね合わせる。読出タイミングを調整することによって、時間のズレを与えることができる。
【００７７】
以上で説明したように、本実施例の入力部１１１は、遅延させた複数の時系列データを重ね合わせた入力データｘ（ｔ）をリザーバ部１１２の非線形ノード２００に入力する。
【００７８】
次に、実施例１のリザーバコンピューティングを用いた具体例について説明する。ここでは、非特許文献２に記載の処理をモデルとして用いる。非特許文献２には、混合ガスに関する複数の入力情報を受け付け、混合ガス中のガスＸ及びガスＹの濃度を出力する処理が記載されている。
【００７９】
本識別処理では、十六個のガスセンサから入力された時系列データを扱う。すなわち、時系列データｕｊ（ｔ）の添字ｊは１から１６までの値となる。この場合、ターゲット時系列データｕｊ（ｔ）は、入力ストリームαｊ（ｔ）に変換される。
【００８０】
なお、遅延ネットワークへ入力する入力データの信号強度が大きくなるのを避けるため、予め、入力データの強度を５％に減衰させた後、リザーバ部１１２に入力データを出力するように調整した。
【００８１】
ガスＸに関する教師データｙ’（ｔ）に対して、式（１０）の値が最小となるように、重み係数ｗｉの学習を行った。なお、教師データとしてガス流量制御器の設定値を用いている。なお、添字ｌは、出力されたデータｙ（ｔ）の数を表す。
【００８２】
【数１０】
2018180701.tif 000012
【００８３】
なお、本実施例では、最小自乗法を用いて重み係数ｗｉを決定した。具体的には、式（１１）のＮ元一次方程式から重み係数ｗｉを算出した。
【００８４】
【数１１】
2018180701.tif 000013
【００８５】
ガスＹに関する教師データｚ’（ｔ）についても同様の学習を行った。
【００８６】
図５Ａは、実施例１の計算機１００に入力される時系列データの一例を示す図である。図５Ａの上のグラフはガス流量計の設定値を示し、下のグラフは一つのセンサからの出力値を示す。なお、黒色の実線はガスＸの値を示し、灰色の実線はガスＹの値を示す。
【００８７】
図５Ｂは、従来の並列方式の出力結果を示すグラフである。図５Ｂの上のグラフはガスＸに関する出力を示し、下のグラフはガスＹに関する出力を示す。
【００８８】
図５Ｃは、実施例１の計算機１００の出力結果を示すグラフである。
【００８９】
なお、図５Ｂ及び図５Ｃの黒色の破線は、ガス流量計の設定値に相当し、教師データを示す。実線は十六個のセンサから出力された値を用いて算出されたガス濃度の推定値である。
【００９０】
図５Ｂ及び図５Ｃに示すように、実施例１の方式は、従来の並列方式と同様に精度の高い結果が得られる。
【００９１】
図６は、実施例１の方式の性能を示す図である。
【００９２】
ここでは、実施例１の方式と、従来の並列方式との性能差を一例として示す。なお、市販のデスクトップ型パーソナルコンピュータを用いて性能差のテストを行った。横軸は、周期Ｔの分割数、すなわち、仮想ノードの数を示す。縦軸は、時系列データ１ポイント当たりの計算速度を示す。
【００９３】
図６に示すように、実施例１の方式の方が、従来の方式より、仮想ノードの数が少ない。すなわち、計算量を削減できることが示されている。したがって、従来の方式より計算速度が１桁以上向上することが確認できた。
【００９４】
実施例１のリザーバコンピューティングでは、高精度かつ高速に計算コストが削減できる。また、リザーバ部１１２は従来のものであるため、装置規模の大型化を防ぐことができる。
【実施例２】
【００９５】
実施例１では、入力部１１１、リザーバ部１１２、及び出力部１１３をソフトウェアとして実現していたが、実施例２では、ハードウェアを用いてこれらを実現する。以下、実施例２の詳細について説明する。
【００９６】
リザーバ部１１２の非線形ノード２００は、電子回路及び光素子等のハードウェアを用いて実現できる。電子回路としては、Ｍａｃｋｙ−Ｇｌａｓｓ回路、及びＭＯＳＦＥＴのソースドレイン電流を用いることができる。光素子としては、ＭＺ干渉計及び飽和吸収等の非線形特性を示す光導波路を用いることができる。
【００９７】
実施例２では、光導波路を用いてリザーバ部１１２を実現する計算機を説明する。
【００９８】
光デバイスは通信の高速性及び光導波路中での伝搬損失も低いというネットワーク特性を有するため、高速かつ消費電力を抑えた処理に活用することが期待されている。
【００９９】
光導波路を用いてリザーバコンピューティングを実現する場合、マッハツェンダー干渉計型の光変調器（ＭＺ−ｍｏｄｕｌａｔｏｒ）又はレーザが非線形ノード２００として用いられる。そのため、複数の時系列データを処理するために、複数の遅延ネットワークを構築する場合、装置の規模が大型になるという課題がある。
【０１００】
複数の時系列データを一つの遅延ネットワークを用いてシーケンシャルに処理を実行する場合、処理の遅延を抑制できるが、一時的にデータを蓄積するためのメモリの容量が大きくなるため、装置の規模が大型になるという課題がある。
【０１０１】
実施例２では、実施例１の入力部１１１をハードウェアとして実装することによって、上記課題を解決する。
【０１０２】
図７Ａ及び図７Ｂは、実施例２の計算機１００の構成の一例を示す図である。なお、実施例２では、混合ガスの濃度の識別するためにパラメータを一例として示す。
【０１０３】
本実施例の計算機１００は、十六個のガスセンサから時系列データを受け付ける。時系列データを入力するガスセンサのサンプリング周波数を１００Ｈｚとし、また、遅延ネットワークの再起周波数は１０ｋＨｚとしている。したがって、遅延ネットワークにおける処理速度はガスセンサのサンプリングより十分高速である。
【０１０４】
本実施例で遅延ネットワークの周期Ｔは１００マイクロ秒とし、また、仮想ノードの数は１００としている。したがって、リザーバ部１１２は、１ＭＨｚで動作する。
【０１０５】
まず、図７Ａの計算機１００の構成について説明する。
【０１０６】
入力部１１１は、マスク回路７１１、複数のシフトレジスタ７１２、及び演算器７１３を含む。
【０１０７】
マスク回路７１１は、入力された時系列データの各々に対して、ステップＳ１０３及びステップＳ１０４の処理に対応する演算処理を実行する。マスク回路７１１は、一つの時系列データを処理することによって得られた入力ストリームａｊ（ｔ）を、一つのシフトレジスタ７１２に出力する。
【０１０８】
シフトレジスタ７１２は、入力ストリームａｊ（ｔ）に対して、ステップＳ１０５の処理に対応する演算処理を実行する。シフトレジスタ７１２は、算出した入力ストリームαｊ（ｔ）を演算器７１３に出力する。本実施例では、シフトレジスタ７１２を用いて入力ストリームａｊ（ｔ）に遅延を発生させる遅延回路を実現している。ただし、遅延回路としては、コンデンサ及びコイルから構成されるはしご型伝送回路網で構成される遅延回路でもよい。
【０１０９】
演算器７１３は、各シフトレジスタ７１２から入力された入力ストリームαｊ（ｔ）を用いて、ステップＳ１０７の処理に対応する演算処理を実行する。演算器７１３は、演算結果をリザーバ部１１２に出力する。
【０１１０】
リザーバ部１１２は、演算器７２１、レーザ７２２、ＭＺ光変調器７２３、フォトダイオード７２４、及びアンプ７２５を含む。なお、ＭＺ光変調器７２３及びフォトダイオード７２４は光ファイバを介して接続される。
【０１１１】
演算器７２１は、式（２）に示す演算処理を実行する。すなわち、演算器７２１は、入力部１１１から入力された入力データｘ（ｔ）と、リザーバ部１１２が出力するデータｑ（ｔ）とを重ね合わせる。演算器７２１は、演算結果を信号として、ＭＺ光変調器７２３に出力する。
【０１１２】
レーザ７２２は、ＭＺ光変調器７２３に任意の強度のレーザ光を入力する。本実施例のレーザ７２２は、波長が１３１０ｎｍのレーザ光を照射する。
【０１１３】
ＭＺ光変調器７２３は、非線形ノード２００を実現するハードウェアである。本実施例では、ファイバ結合型のＬＮ（ＬｉＮｂＯ３）−ＭＺ変調器を用いた。ＭＺ光変調器７２３は、演算器７２１から入力された信号を用いて、レーザ７２２から入力されたレーザ光の強度を変調する。ＭＺ光変調器７２３の光透過特性は、入力電気信号に対して正弦波の二乗に対応するため、振幅が非線形変換される。
【０１１４】
なお、本実施例では、入力電気信号が０．４Ｖから１Ｖとなるように調整されている。
【０１１５】
ＭＺ光変調器７２３とフォトダイオード７２４との間の接続する光ファイバの長さは、ＭＺ光変調器７２３から出力されるレーザ光の伝達に所定時間要する長さとなっている。レーザ光の伝達に要する時間が、遅延ネットワークの周期となる。本実施例では、２０ｋｍの長さの光ファイバを用いてＭＺ光変調器７２３及びフォトダイオード７２４が接続される。したがって、信号の伝達には１００マイクロ秒かかる。
【０１１６】
フォトダイオード７２４は、入力されたレーザ光を電気信号に変換し、さらに、電気信号を分岐し、一つの電気信号を出力部１１３に出力し、もう一つの電気信号をアンプ７２５に出力する。
【０１１７】
アンプ７２５は、フォトダイオード７２４から入力された信号を増幅又は減衰した後、当該信号を演算器７２１に出力する。
【０１１８】
出力部１１３は、複数の読出回路７３１及び積分回路７３２を含む。
【０１１９】
読出回路７３１は、リザーバ部１１２から出力される信号を読み出す。読出回路７３１は、マスク回路７１１と同期するように稼働する。なお、読出回路７３１の動作速度は、１ＭＨｚで増幅率が変動し、また、１０ｋＨｚの周期で動作する。増幅率は学習処理によって決定される。読出回路７３１は、読み出した信号を積分回路に出力する。
【０１２０】
積分回路７３２は、所定の時間で信号を積分し、処理結果を出力する。本実施例の積分回路７３２は、１００マイクロ秒ごとに信号強度を積分する。
【０１２１】
次に、図７Ｂの構成について説明する。図７Ｂの計算機１００が有する入力部１１１、リザーバ部１１２、及び出力部１１３の構成は、図７Ａの計算機１００が有するものと同一である。ただし、フォトダイオード７２４は、電気信号を学習器７５２に出力する点が異なる。
【０１２２】
学習部７５０は、教師データ７５１及び学習器７５２を含む。教師データ７５１は、学習処理に使用するデータである。学習器７５２は、教師データ７５１及びフォトダイオード７２４から入力された電気信号を用いて仮想ノード２０１と出力層のノードとを接続する重み係数を決定するための学習処理を実行する。なお、学習処理において、出力部１１３が出力する演算処理の結果と教師データ７５１とを比較する必要がある場合、出力部１１３は、学習器７５２に演算処理の結果を出力する。
【０１２３】
実施例２によれば、高速かつ消費電力を抑えたリザーバコンピューティングを実現できる。また、装置の規模を抑えることができる。また、既存のリザーバ部１１２及び出力部１１３を用いることができるため、実装にかかるコストを削減できる。
【実施例３】
【０１２４】
実施例３では、光回路チップを用いて、実施例１のリザーバコンピューティングを実装する計算機１００を説明する。
【０１２５】
図８は、実施例３の光回路チップの構成の一例を示す図である。なお、図８は、光回路チップの上面図に対応する。
【０１２６】
光回路チップ８００は、基板８０１上に複数の機能チップを搭載する。なお、光回路は、電子回路に対して積層方向に搭載されているため、ＭＺ変調器及びフォトダイオード等の光素子は図面中に現れていない。
【０１２７】
光回路チップ８００は、基板８０１、窒化シリコン光回路８０２、シリコン光回路８０３、基板８０４、サンプリング回路８０５、マスク回路８０６、遅延回路８０７、変調器駆動回路８０８、再帰信号増幅器８０９、トランスインピーダンスアンプ８１０、読出回路８１１、及び積分回路８１２を含む。
【０１２８】
サンプリング回路８０５、マスク回路８０６、遅延回路８０７、変調器駆動回路８０８、再帰信号増幅器８０９、トランスインピーダンスアンプ８１０、読出回路８１１、及び積分回路８１２は、同一のチップに集積される。
【０１２９】
本実施例では、遅延ネットワークの周期を１０ナノ秒に設定しているため、窒化ケイ素を導波路層とする窒化シリコン光回路８０２を用いる。なお、１０ナノ秒の遅延時間を確保するためには、長さが約１．５メートルの光導波路が必要である。
【０１３０】
ＭＺ変調器を含むシリコン導波路はシリコン光回路８０３に形成され、遅延用の窒化ケイ素の導波路は窒化シリコン光回路８０２に形成される。回折又はミラーを用いて互いに基盤面方向に光を入出することによって、光結合を確保できる。なお、ＭＺ変調器を含むシリコン光回路８０３上の一部に窒化ケイ素領域を形成し、遅延用の窒化経ケイ素の導波路を設けてもよい。
【０１３１】
なお、ＭＺ変調器は４０ＧＨｚの帯域を有しており、１０ＧＨｚで稼働するマスク回路８０６から出力される信号に追随できる性能を有する。また、フォトダイオードは、シリコン光回路８０３にフリップチップ実装されてもよいし、シリコン光回路８０３に集積されたＧｅフォトダイオードとして実装されてもよい。フォトダイオードは、ＭＺ変調器から入力された光信号を電気信号に変換し、電気信号をトランスインピーダンスアンプ８１０及び読出回路８１１に出力する。
【０１３２】
サンプリング回路８０５、マスク回路８０６、及び遅延回路８０７は、入力部１１１を構成する回路である。
【０１３３】
サンプリング回路８０５は、時系列データに対してサンプリング及びホールド処理を実行する回路である。マスク回路８０６は、マスク処理を実行する回路である。遅延回路８０７は、マスク回路８０６から出力された入力ストリームａｊ（ｔ）に遅延を発生させる回路である。なお、マスク回路８０６は、１０ＧＨｚで動作する。
【０１３４】
窒化シリコン光回路８０２、シリコン光回路８０３、変調器駆動回路８０８、再帰信号増幅器８０９、及びトランスインピーダンスアンプ８１０は、リザーバ部１１２を構成する回路である。
【０１３５】
レーザ光を照射する半導体レーザのチップは、シリコン光回路８０３にフリップチップ実装されており、連続光を光集積回路のシリコン導波路に供給できる。
【０１３６】
変調器駆動回路８０８は、ＭＺ変調器を駆動する回路である。
【０１３７】
トランスインピーダンスアンプ８１０は、フォトダイオードが出力した信号を増幅し、再帰信号増幅器８０９及び読出回路８１１に出力する。
【０１３８】
再帰信号増幅器８０９は、トランスインピーダンスアンプ８１０から入力された信号を、配線を介してＭＺ変調器に入力する。
【０１３９】
読出回路８１１は、トランスインピーダンスアンプ８１０から信号を読み出し、積分回路８１２に出力する。
【０１４０】
積分回路８１２は、入力された信号に対して積分演算を実行し、演算結果を出力する。
【０１４１】
なお、配線及び光導波路の遅延時間の総和が、遅延ネットワークの周期と一致するように光回路チップ８００の各回路が設計されている。
【０１４２】
実施例３によれば、光回路チップを用いることによって、小型ロボット及びドローンに本発明のリザーバコンピューティングを実装することができる。
【０１４３】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
【０１４４】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した非一時的記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが非一時的記憶媒体に格納されたプログラムコードを読み出す。この場合、非一時的記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した非一時的記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、光ディスク、光磁気ディスク、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどが用いられる。
【０１４５】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、Ｃ／Ｃ＋＋、ｐｅｒｌ、Ｓｈｅｌｌ、ＰＨＰ、Ｊａｖａ（登録商標）等の広範囲のプログラム又はスクリプト言語で実装できる。
【０１４６】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はＣＤ−ＲＷ、ＣＤ−Ｒ等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
【０１４７】
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
【符号の説明】
【０１４８】
１００  計算機
１０１  演算装置
１０２  メモリ
１０３  ネットワークインタフェース
１１１  入力部
１１２  リザーバ部
１１３  出力部
２００  非線形ノード
２０１  仮想ノード
７１１、８０６  マスク回路
７１２  シフトレジスタ
７１３、７２１  演算器
７２２  レーザ
７２３  ＭＺ光変調器
７２４  フォトダイオード
７２５  アンプ
７３１、８１１  読出回路
７３２、８１２  積分回路
７５０  学習部
７５１  教師データ
７５２  学習器
８００  光回路チップ
８０１、８０４  基板
８０２  窒化シリコン光回路
８０３  シリコン光回路
８０５  サンプリング回路
８０７  遅延回路
８０８  変調器駆動回路
８０９  再帰信号増幅器
８１０  トランスインピーダンスアンプ
【図１】
2018180701.tif 000014
【図２】
2018180701.tif 000015
【図３】
2018180701.tif 000016
【図４Ａ】
2018180701.tif 000017
【図４Ｂ】
2018180701.tif 000018
【図４Ｃ】
2018180701.tif 000019
【図４Ｄ】
2018180701.tif 000020
【図４Ｅ】
2018180701.tif 000021
【図４Ｆ】
2018180701.tif 000022
【図５Ａ】
2018180701.tif 000023
【図５Ｂ】
2018180701.tif 000024
【図５Ｃ】
2018180701.tif 000025
【図６】
2018180701.tif 000026
【図７Ａ】
2018180701.tif 000027
【図７Ｂ】
2018180701.tif 000028
【図８】
2018180701.tif 000029
【図９】
2018180701.tif 000030
【図１０Ａ】
2018180701.tif 000031
【図１０Ｂ】
2018180701.tif 000032
【図１０Ｃ】
2018180701.tif 000033