(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-31
(45)【発行日】2023-11-09
(54)【発明の名称】情報処理システム、情報処理装置、情報処理方法及び情報処理プログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20231101BHJP
【FI】
G06N20/00
(21)【出願番号】P 2022513781
(86)(22)【出願日】2020-04-08
(86)【国際出願番号】 JP2020015877
(87)【国際公開番号】W WO2021205581
(87)【国際公開日】2021-10-14
【審査請求日】2022-10-25
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110003421
【氏名又は名称】弁理士法人フィールズ国際特許事務所
(72)【発明者】
【氏名】宮原 昭一
【審査官】千葉 久博
(56)【参考文献】
【文献】特開2008-117381(JP,A)
【文献】中国特許出願公開第109640351(CN,A)
【文献】中国特許出願公開第109009033(CN,A)
【文献】秋山貴則, 外1名,“多段階学習Echo state networkによる非線形時系列予測”,電子情報通信学会技術研究報告,日本,一般社団法人電子情報通信学会,2018年10月29日,第118巻, 第284号,p.293-299
【文献】Meftah, Boudjelal, Olivier Lezoray, and Abdelkader Benyettou.,Novel approach using echo state networks for microscopic cellular image segmentation.,Cognitive Computation [Online],Volume 8, Issue 2,2015年08月30日,p.237-245,インターネット:<URL:https://link.springer.com/content/pdf/10.1007/s12559-015-9354-8.pdf>,[検索日 2020.07.15]
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
メモリと、前記メモリにアクセスするプロセッサを有する情報処理装置と、
前記情報処理装置と通信可能なリザバーを有し、
前記リザバーは、
入力が与えられる入力層と、
前記入力に基づいて第1リードアウト値を出力する第1出力層と、
前記入力に基づいて第2リードアウト値を出力する第2出力層と、
前記入力層と、前記第1出力層とを有する第1部分リザバーと、
前記入力層と、前記第2出力層とを有し、前記入力層と前記第2出力層との間のサイズが前記入力層と前記第1出力層との間のサイズよりも大きい第2部分リザバーと、
を有し、
前記プロセッサは、前記リザバーの学習処理を実行し、
前記学習処理は、
第1入力に基づいて前記第1出力層によって出力される第3リードアウト値と第1出力重みとの積和値である第1出力と、前記第1入力に対応する教師データとの差分を小さくする第3出力重みを算出する第1処理と、
前記第1入力に基づいて前記第2出力層によって出力される第4リードアウト値と第2出力重みとの積和値である第2出力と、前記第3リードアウト値と前記第3出力重みとの積和値と前記教師データとの差分である差分教師データとの差分を小さくする第4出力重みを算出する第2処理と
を含む、情報処理システム。
【請求項2】
前記プロセッサは、前記学習処理を実行された前記リザバーの推論処理を実行し、
前記推論処理は、
第2入力に基づいて前記第1出力層によって出力される第5リードアウト値と前記第3出力重みとの積和値である第3出力と、前記第2入力に基づいて前記第2出力層によって出力される第6リードアウト値と前記第4出力重みとの積和値である第4出力との和を算出する処理を有する、請求項1に記載の情報処理システム。
【請求項3】
前記リザバーは、複数のノードを有し、
前記複数のノードは、任意のノード間に重みを有する結合を有し、
前記複数のノードのうち任意のノードは、重みを有する自己結合を有し、
前記第1部分リザバーは、前記複数のノードの一部を含み、
前記第2部分リザバーは、前記複数のノードの他の一部を含み、前記複数のノードの前記他の一部は前記複数のノードの前記一部よりもノード数が多い、請求項1又は2に記載の情報処理システム。
【請求項4】
前記リザバーは、前記複数のノードの入力に対応する複数の列線と、前記複数のノードの出力に対応する複数の行線と、前記複数の列線と前記複数の行線の任意の交差位置に前記自己結合又は前記結合を有するクロスバーである、請求項3に記載の情報処理システム。
【請求項5】
前記リザバーは、入力に基づいて非線形特性を出力する素材リザバーであり、
前記入力層は、前記素材リザバーの任意の入力位置に設けられ、
前記第1出力層は、前記素材リザバーの第1出力位置に設けられ、
前記第2出力層は、前記入力位置と前記第1出力位置との距離よりも長い前記入力位置との距離を有する前記素材リザバーの第2出力位置に設けられる、請求項1又は2に記載の情報処理システム。
【請求項6】
メモリと、前記メモリにアクセスするプロセッサを有し、リザバーと通信可能な情報処理装置であって、
前記リザバーは、
入力が与えられる入力層と、
前記入力に基づいて第1リードアウト値を出力する第1出力層と、
前記入力に基づいて第2リードアウト値を出力する第2出力層と、
前記入力層と、前記第1出力層とを有する第1部分リザバーと、
前記入力層と、前記第2出力層とを有し、前記入力層と前記第2出力層との間のサイズが前記入力層と前記第1出力層との間のサイズよりも大きい第2部分リザバーと、
を有し、
前記プロセッサは、前記リザバーの学習処理を実行し、
前記学習処理は、
第1入力に基づいて前記第1出力層によって出力される第3リードアウト値と第1出力重みとの積和値である第1出力と、前記第1入力に対応する教師データとの差分を小さくする第3出力重みを算出する第1処理と、
前記第1入力に基づいて前記第2出力層によって出力される第4リードアウト値と第2出力重みとの積和値である第2出力と、前記第3リードアウト値と前記第3出力重みとの積和値と前記教師データとの差分である差分教師データとの差分を小さくする第4出力重みを算出する第2処理と
を含む、情報処理装置。
【請求項7】
メモリと、前記メモリにアクセスするプロセッサを有し、リザバーと通信可能な情報処理装置の情報処理方法であって、
前記リザバーは、
入力が与えられる入力層と、
前記入力に基づいて第1リードアウト値を出力する第1出力層と、
前記入力に基づいて第2リードアウト値を出力する第2出力層と、
前記入力層と、前記第1出力層とを有する第1部分リザバーと、
前記入力層と、前記第2出力層とを有し、前記入力層と前記第2出力層との間のサイズが前記入力層と前記第1出力層との間のサイズよりも大きい第2部分リザバーと、
を有し、
前記プロセッサは、前記リザバーの学習処理を実行し、
前記学習処理は、
第1入力に基づいて前記第1出力層によって出力される第3リードアウト値と第1出力重みとの積和値である第1出力と、前記第1入力に対応する教師データとの差分を小さくする第3出力重みを算出する第1処理と、
前記第1入力に基づいて前記第2出力層によって出力される第4リードアウト値と第2出力重みとの積和値である第2出力と、前記第3リードアウト値と前記第3出力重みとの積和値と前記教師データとの差分である差分教師データとの差分を小さくする第4出力重みを算出する第2処理と
を含む、情報処理方法。
【請求項8】
メモリと、前記メモリにアクセスするプロセッサを有し、リザバーと通信可能な情報処理装置の前記プロセッサに前記リザバーの学習処理を実行させる情報処理プログラムであって、
前記リザバーは、
入力が与えられる入力層と、
前記入力に基づいて第1リードアウト値を出力する第1出力層と、
前記入力に基づいて第2リードアウト値を出力する第2出力層と、
前記入力層と、前記第1出力層とを有する第1部分リザバーと、
前記入力層と、前記第2出力層とを有し、前記入力層と前記第2出力層との間のサイズが前記入力層と前記第1出力層との間のサイズよりも大きい第2部分リザバーと、
を有し、
前記学習処理は、
第1入力に基づいて前記第1出力層によって出力される第3リードアウト値と第1出力重みとの積和値である第1出力と、前記第1入力に対応する教師データとの差分を小さくする第3出力重みを算出する第1処理と、
前記第1入力に基づいて前記第2出力層によって出力される第4リードアウト値と第2出力重みとの積和値である第2出力と、前記第3リードアウト値と前記第3出力重みとの積和値と前記教師データとの差分である差分教師データとの差分を小さくする第4出力重みを算出する第2処理と
を含む、情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、情報処理装置、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【0002】
機械学習モデルの一つとしてニューラルネットワークが大いに普及してきている。とりわけ、ディープラーニングによるディープニューラルネットワーク(以下DNN(Deep Neural Network)と称する。)は、画像処理等で高い性能が報告されている。これらのDNNは階層的ニューラルネットワークである。また、DNNの一つである再帰的ニューラルネットワーク(以下RNN(Recurrent Neural Network)と称する。)は、過去の時刻のニューロンの状態が自己又は他のニューロンにフィードバック入力される構造を有する。フィードバック入力は過去の入力の履歴に依存する過去の時刻の状態であり、時系列入力の前後関係に基づく推論を行うモデルに適している。
【0003】
一方、RNNでは、DNNの学習工程においてパラメータを最適化するために行われる逆誤差伝播法を適用することは、演算処理が複雑化するため現実的ではないことが知られている。
【0004】
リザバーコンピューティングでは、RNNが持つ再帰的なフィードバックにより過去の状態を現在の状態に反映できる性質を利用し、学習工程ではRNNを構成するリザバーの重みの更新を行わず、リザバーの出力ノードで構成される全結合層の重み(出力重み)を更新する。これにより、学習工程の演算の負荷を大幅に削減することができる。
【0005】
リザバーコンピューティングでは、リザバー内のニューロンが非線形特性を有することから、非線形の特性を有する物理的な構成物をリザバーの代わりに利用することが提案されている。本発明では、リザバーをプロセッサがコンピュータプログラムを実行することで実現する場合と、リザバーを物理リザバーで実現する場合のいずれにも適用可能である。
【先行技術文献】
【特許文献】
【0006】
【文献】特表2004-511866号公報
【文献】国際公開第2018/212201号
【文献】特開2018-180701号公報
【非特許文献】
【0007】
【文献】http://eeip.t.u-tokyo.ac.jp/gtanaka/siryo/tanaka201902_ieice.pdf 電子情報通信学会誌Vol. 102, No. 2, 2019「リザバーコンピューティングの概念と最近の動向」田中剛平
【文献】https://www.nature.com/articles/s41467-017-02337-y.pdf
【発明の概要】
【発明が解決しようとする課題】
【0008】
リザバーのサイズを大きくする程、リザバーは高い次元の関数の特性を有する。しかし、次元が高い関数の特性を有するリザバーで学習を行うと、過学習となりモデルが過剰適合状態になる。
【0009】
そこで、本実施の形態の第1の側面の目的は、過学習による過剰適合状態を抑制できるリザバーコンピューティングに関する情報処理システム、情報処理装置、情報処理方法及び情報処理プログラムを提供することにある。
【課題を解決するための手段】
【0010】
本実施の形態の第1の側面は、メモリと、前記メモリにアクセスするプロセッサを有する情報処理装置と、
前記情報処理装置と通信可能なリザバーを有し、
前記リザバーは、
入力が与えられる入力層と、
前記入力に基づいて第1リードアウト値を出力する第1出力層と、
前記入力に基づいて第2リードアウト値を出力する第2出力層と、
前記入力層と、前記第1出力層とを有する第1部分リザバーと、
前記入力層と、前記第2出力層とを有し、前記入力層と前記第2出力層との間のサイズが前記入力層と前記第1出力層との間のサイズよりも大きい第2部分リザバーと、
を有し、
前記プロセッサは、前記リザバーの学習処理を実行し、
前記学習処理は、
第1入力に基づいて前記第1出力層によって出力される第3リードアウト値と第1出力重みとの積和値である第1出力と、前記第1入力に対応する教師データとの差分を小さくする第3出力重みを算出する第1処理と、
前記第1入力に基づいて前記第2出力層によって出力される第4リードアウト値と第2出力重みとの積和値である第2出力と、前記第3リードアウト値と前記第3出力重みとの積和値と前記教師データとの差分である差分教師データとの差分を小さくする第4出力重みを算出する第2処理と
を含む、情報処理システムである。
【発明の効果】
【0011】
第1の側面によれば、過学習による過剰適合状態を抑制できる。
【図面の簡単な説明】
【0012】
【
図1】本実施の形態におけるリザバーコンピューティングモデルを実現する情報処理システムの概略図である。
【
図2】リザバーコンピューティングモデルのネットワークの一例を示す図である。
【
図3】リザバーコンピューティングモデルとして、物理リザバーの一つであるクロスバーリザバーを使用した情報処理システムを示す図である。
【
図4】クロスバーリザバーの一例とリードアウト部である全結合層の一例を示す図である。
【
図5】
図2の例に対応するクロスバーリザバーの隣接行列の一例を示す図である。
【
図6】クロスバーリザバーの隣接行列が示す交差点の結合を分類分けして示した図である。
【
図7】
図6の隣接行列に示した9つの領域の関係を示す図である。
【
図8】第1の実施の形態におけるリザバーコンピューティングモデルを示す図である。
【
図9】第2の実施の形態におけるリザバーコンピューティングモデルを示す図である。
【
図10】第1の実施の形態におけるリザバーコンピューティングモデルの隣接行列の領域を示す図である。
【
図11】
図10の隣接行列に示した9つの領域の関係を示す図である。
【
図13】第1及び第2の実施の形態のリザバーコンピューティングモデルの学習工程を示すフローチャート図である。
【
図14】第1及び第2の実施の形態のリザバーコンピューティングモデルの推論工程の処理を示すフローチャート図である。
【
図15】学習工程の出力重みの更新を行うFORCE学習のフローチャート図である。
【
図16】第3の実施の形態におけるリザバーコンピューティングモデルを示す図である。
【発明を実施するための形態】
【0013】
図1は、本実施の形態におけるリザバーコンピューティングモデルを実現する情報処理システムの概略図である。情報処理装置10は、例えばPCやHPCなどのコンピュータである。情報処理装置10は、プロセッサ12と、プロセッサがアクセスするメインメモリ14と、外部とのインターフェース装置16とを有する。また、情報処理装置10は、大容量の補助記憶装置20~26に、リザバーモデルの学習プログラム20と、推論プログラム22と、学習に使用する訓練データ24と、リザバーモデルの構成データ及び出力重み等のパラメータを有するリザバーモデルデータ26とが格納される。プロセッサ12は、補助記憶装置から読み出されメインメモリ14に展開された学習プログラム20と推論プログラム22を実行することで、学習工程の演算及び推論工程の演算を実行する。また、プロセッサ12は、リザバーモデルデータ26に含まれる演算プログラムを実行して、時系列の入力に対してリザバーの状態の遷移を演算する。
【0014】
また、
図1の情報処理システムには、物理リザバー18が設けられる。それにより、プロセッサ12はリザバーモデルデータ26を参照してリザバーの状態の遷移を演算することに代えて、インターフェース16を介して物理リザバー18の物理的な変化を参照することもできる。その場合、プロセッサ12は、学習工程でリザバーの状態遷移の演算は行わず、代わりに物理リザバー18の出力を取得し、教師データと出力の誤差を少なくする出力重みの更新を演算により行う。
【0015】
情報処理装置10は、ネットワークNWを介して、複数の端末装置30、32からアクセスされる。端末装置からの学習処理の要求や推論処理の要求に応答して、プロセッサ12は、学習モデルや推論モデルを実行し、要求された学習処理及び推論処理の演算を実行する。
【0016】
図2は、リザバーコンピューティングモデルのネットワークの一例を示す図である。リザバーのニューロンは、以下ノードと称する。リザバーRSVは、ノードN1~N5とノード間結合またはノードの自己結合とを有する。結合はエッジと称される。また、結合は矢印で示された方向と各方向に対応する重みを有する。図中、リザバーRSV内の矢印はノード間結合またはノードの自己結合である。例えば、ノードN1、N3は自己結合を有する。ノードN1とノードN2との間には双方向の結合を有する。ノードN2とN3との間にはノードN2からノードN3への向きの一方向の結合を有する。
【0017】
リザバーRSVのノード間結合または自己結合の有無と各結合の重みは、学習に先立ってランダムにまたは所定のルールで決定される。所定のルールとは、例えば、ノード間の結合確率や結合の重みの分散をパラメータとする。
【0018】
時刻tに入力端子IN1からノードN1に入力が与えられると、その入力と時刻tより前の時刻におけるノードの状態に基づいて、ノードN1~N5の状態が推移する。そして、ノードN4とN5の状態が出力され、それらノードN4とN5の出力(リードアウト)と出力重みw4、w5に基づいて演算された活性が、出力端子OUTに入力される。ノードN4とN5と出力重みw4、w5の結合と出力端子OUTは、全結合層FCLを構成する。このようにリザバーコンピューティングモデルは、リザバーRSVと、リザバーの出力について全結合層FCLを構成するリードアウト部とを有する。
【0019】
図2のリザバーRSVでは、ノードN1は入力が与えられ入力層に対応し、ノードN4、N5はその状態が出力として読み出され出力層に対応する。そして、入力層のノードN1と出力層のノードN4、N5の間のノードN2、N3は中間層に対応する。
【0020】
リザバーコンピューティングモデルの学習工程では、リザバー内のノード間結合やノード自己結合を固定したまま、リードアウト部である全結合層FCLの出力重みを勾配法で更新する。即ち、教師データと出力ノードOUTの誤差を最小化するように出力重みw4、w5を勾配法により更新する。リザバー内の結合の重みは学習工程での勾配法で更新されることはない。したがって、リザバーコンピューティングモデルの学習工程では、更新により調整される出力重みが少なく学習処理が簡素化され、少ない訓練データで学習工程を完了させることができる。
【0021】
リザバーコンピューティングモデルは、リザバーRSVを物理的に構成された物理リザバーで実現することもできるし、リザバーの状態の遷移をコンピュータプログラムによる演算で算出することもできる。以下は、物理リザバーの一例として非線形素子を利用したクロスバーリザバーの例で説明する。
【0022】
図3は、リザバーコンピューティングモデルとして、物理リザバーの一つであるクロスバーリザバーを使用した情報処理システムを示す図である。
図3のリザバーコンピューティングモデルの情報処理システムは、プロセッサを含む情報処理装置10と、物理リザバーであるクロスバーリザバーC_RSVとを有する。クロスバーリザバーC_RSVは、ノードの入力に対応する列線とノードの出力に対応する行線とを有し、図示しないが、列線と行線の間に非線形特性を有するメモリスタやCR回路などのアナログ回路などの物理回路が設けられる。
【0023】
一方、
図2のリザバーコンピューティングモデルに対応させると、プロセッサから入力IN1がクロスバーリザバーC_RSV内の入力層のノードN1の入力に供給され、出力層のノードN4、N5の出力(リードアウト値)がプロセッサに出力される。プロセッサは、リードアウト部である全結合層について、コンピュータプログラムを実行することで学習工程及び推論工程の演算を実行する。
【0024】
従って、リザバーコンピューティングモデルでは、学習プログラムを実行するプロセッサが、訓練データの入力IN1をクロスバーリザバーC_RSVの入力層のノードN1に供給し、それに応答して、クロスバーリザバーC_RSVの状態が過去の状態から現在の状態に遷移する。そして、プロセッサは、クロスバーリザバーC_RSVの出力層のノードN4、N5の状態を示す出力を入力し、学習プログラムを実行して、リードアウト部である全結合層FCLについて勾配法による出力重みの更新を実行する。この学習を繰返すことで、出力重みが最適化され、教師データと同じまたは近接する出力を生成するリザバーコンピューティングモデルが生成される。
【0025】
図4は、クロスバーリザバーの一例とリードアウト部である全結合層の一例を示す図である。クロスバーリザバーC_RSVは、
図2に示した5個のノードN1~N5について、ノードの入力に対応する5本の列線(縦線)N1~N5と、ノードの出力に対応する5本の行線(横線)N1~N5と、列線と行線の交差点に配置された25個の結合回路f11~f55とを有する。結合回路f11~f55は例えばメモリスタである。
【0026】
図4のクロスバーリザバーC_RSVでは、5本の列線と5本の行線の間全てに結合回路f11~f55が設けられているが、この結合回路は、任意の列線と行線の間のみに設けられても良い。例えば、
図2のリザバーRSVでは、ノード間結合とノード自己結合は一部のノード間及びノードにだけ設けられている。同じノードの列線と行線の間の結合回路は、ノード自己結合に対応する。また、異なるノードの列線と行線の間の結合回路は、列線のノードから行船のノードの方向の一方向ノード間結合に対応する。そして、結合回路は、
図2のリザバー内の結合の重みに対応する。
【0027】
図4の例では、ノードの入力に対応する5本の列線に、入力部IN_1の入力端子IN1から供給されたデジタル信号をDAC(デジタル・アナログコンバータ)で変換したアナログ信号X1~X5が、入力される。入力部IN_2、IN_3も同様である。但し、入力をリザバー内の一部のノードに与える場合は、入力端子IN1のデジタル信号をDAC変換したアナログ信号が一部のノードの入力に与えられる。
【0028】
一方、ノードの出力に対応する5本の列線のアナログ信号y1~y5は、ADC(アナログ・デジタルコンバータ)で変換され、全結合層FCL_1に出力され、全結合層FCL_1による積和値のデジタル信号が活性として出力ノードOUT1に出力される。積和値は以下のとおりである。
OUT1 = y1*w1 + y2*w2 + y3*w3 + y4*w4 + y5*w5
他の全結合層FCL_2、FCL_3も同様である。但し、出力をリザバー内の一部のノードから出力する場合は、5本の行線の一部のノードの出力が全結合層に出力される。
【0029】
図2のリザバーの場合、25個の結合回路のうち、f11、f12、f21、f24、f32、f33、f35、f45、f51、f54が有限の値を有し、残りは無限大、つまり非結合である。このようなクロスバーリザバーC_RSVにおいて、時系列の入力のうち、時刻t1で入力x1が入力層のノードN1に与えられると、全ノードN1~N5の状態は次の式に示す出力y1~y5に遷移する。
y1_t1 ={f11(x1) + f12(x2) } + α*y1_t0
y2_t1 ={f21(x1) + f24(x4) } + α*y2_t0
y3_t1 ={ f32(x2) + f33(x3) + f35(x5)} + α*y3_t0
y4_t1 ={ f45(x5)} + α*y4_t0
y5_t1 ={f51(x1) + f54(x4) } + α*y5_t0
ここで、f11(x)~f55(x)は、ノードの入力xに対してノードの出力yに出力する値を求める関数である。また、時刻t0は、入力時の時刻t1の一つ前の時刻であり、y1_t1は時刻t1での状態、y1_t0は時刻t0での状態である。そして、αは、ノードの状態の減衰率に対応する。結合回路がメモリスタの場合、関数f11(x)~f55(x)はある時刻での入力に基づいてその特性が非線形に変化する。
【0030】
上記の通り、物理リザバーであるクロスバーリザバーでは、各ノードが過去の入力に基づく状態を保持しながら、時系列な入力に対して次々に新たな状態に遷移する。このように、入力は、クロスバーリザバーC_RSVによって非線形変換され、変換後の状態が高次元の特徴空間に写像される。一方、クロスバーリザバーC_RSVの出力層のノードの状態が全結合層FCLで線形結合されて出力OUTが出力される。
【0031】
ここで、クロスバーリザバーC_RSVのノード間結合とノード自己結合の重みを行列で示す隣接行列について説明する。隣接行列を利用することで、クロスバーリザバーの入力層、中間層、出力層のノードと、ノード間結合とノード自己結合を有するクロスバーリザバーの構成の理解が容易になる。
【0032】
図5は、
図2の例に対応するクロスバーリザバーの隣接行列の一例を示す図である。隣接行列は、ノードN1~N5の入力に対応する列と、ノードN1~N5の出力に対応する行との交差位置に、ノード間結合の重みとノード自己結合の重みを示す。例えば、ノードN1の列とノードN1の行の交差位置には、ノードN1の自己結合の重みが示される。一方、ノードN1の列とノードN2の行の交差位置には、ノードN1からN2へのノード間結合の重みが示される。逆に、ノードN2の列とノードN1の行の交差位置には、ノードN2からN1へのノード間結合の重みが示される。従って、
図5には、前述の式で示した関数f11、f12、f21、f24、f32、f33、f35、f45、f51、f54の位置にそれぞれの重みが示される。
【0033】
図6は、クロスバーリザバーの隣接行列が示す交差点の結合を分類分けして示した図である。
図2のリザバーの例では、ノードN1が入力層INL、ノードN4、N5が出力層OUTL、入力層と出力層の間のノードN2、N3が中間層MIDLである。従って、隣接行列において、ノードN1の列と行の交差位置が入力層INLと、ノードN4、N5の列と行の交差位置が出力層OUTLと、ノードN2、N3の列と行の交差位置が中間層MIDLと、それぞれ示した。入力層INL、中間層MIDL、出力層OUTLは、各層を構成するノードの数の正方行列となり、ノードの自己結合領域に対応する。
【0034】
更に、
ノードN1の列とN2、N3の行の交差位置を入力層から中間層へのノード間結合領域I_M
ノードN2,N3の列とN4,N5の行の交差位置を中間層から出力層へのノード間結合領域M_O
ノードN2,N3の列とN1の行の交差位置を中間層から入力層へのノード間結合領域M_I
ノードN4,N5の列とN2、N3の行の交差位置を出力層から中間層へのノード間結合領域O_M
更に
ノードN1の列とN4、N5の行との交差位置を入力層から出力層へのノード間結合領域I_O
ノードN4,N5の列とノードN1の行との交差位置を出力層から入力層へのノード間結合領域O_I
とそれぞれ示した。
【0035】
図7は、
図6の隣接行列に示した9つの領域の関係を示す図である。
図7には、入力層INL、中間層MIDL、出力層OUTLと、それらの間のノード間結合の領域I_M、M_O、I_O、O_M、M_I、I_Oの関係が示される。
【0036】
そこで、
図4、
図5、
図6、
図7のクロスバーリザバーの構成及び隣接行列を参照して、
図2のリザバーRSVについて、時系列の入力に対するノードの状態の遷移を説明する。但し、以下の説明では
図2のリザバーRSVのノードN1からN5への結合は非結合とする。従って、
図7のノード間結合の領域O_I、I_Oは非結合である。
【0037】
時刻t1で入力がノードN1に与えられると、
(1)入力層INLのノードN1は、
時刻t1の入力x1による変化と、
時刻t0の入力層INLのノード状態x1と自己結合に基づくN1の変化と、
時刻t0の中間層MIDLのノード状態x2,x3とN1の領域M_Iのノード間結合M_I(N2,N3からN1)とに基づくN1の変化、の和に推移する。
【0038】
(2)中間層MIDLのノードN2,N3は、
時刻t1の入力x1と領域I_Mのノード間結合(N1からN2,N3)とに基づくN2,N3の変化と、
時刻t0の中間層MIDLのノード状態x2,x3と中間層の自己結合とに基づくN2,N3の変化と、
時刻t0の出力層OUTLのノード状態x4,x5と領域O_Mのノード間結合(N4,N5からN2,N3)とに基づくN2,N3の変化と、の和に推移する。
【0039】
(3)出力層OUTLのノードN4,N5は、
時刻t0の中間層MIDLのノード状態x2,x3と領域M_Oのノード間結合(N2,N3からN4,N5)とに基づくN4,N5の変化と、
時刻t0の出力層OUTLのノード状態x4,x5と出力層の自己結合とに基づくN4,N5の変化と、の和に推移する。
【0040】
上記の通り、クロスバーリザバーの入力層INL、中間層MIDL、出力層OUTLは、隣接行列内の正方形の領域となり、それぞれ自己結合を有する。また、これらの層間のノード間結合は、隣接行列内の領域I_M、M_O、O_M、M_I、I_O、O_Iに位置する。
【0041】
[本実施の形態におけるリザバーコンピューティングモデル]
リザバーのサイズを大きくする程、リザバーは高い次元の関数の特性を有する。しかし、次元が高い関数の特性を持つリザバーに対して訓練データで学習を行うと、過学習となりモデルが訓練データに過剰適合状態になる。
【0042】
図8は、第1の実施の形態におけるリザバーコンピューティングモデルを示す図である。
図8のモデルは、物理リザバーの一例であるクロスバーリザバーC_RSVと情報処理装置10とを有する情報処理システムである。
【0043】
クロスバーリザバーC_RSVは、第1部分リザバーC_RSV_1と、第1部分リザバーより入力層と出力層との間のサイズが大きく第1部分リザバーより高次元関数特性を持つ第2部分リザバーC_RSV_2とを有する。第1部分リザバーC_RSV_1と第2部分リザバーC_RSV_2は、共通の入力ノードIN_ndを有し、それぞれの出力ノードOUT_nd_1、OUT_nd_2を有し、共通の入力ノードとそれぞれの出力ノード間の中間層のノードをそれぞれ有する。共通の入力ノードIN_ndは共通の入力層を構成し、それぞれの出力ノードOUT_nd_1、OUT_nd_2はそれぞれの出力層を構成する。クロスバーリザバーC_RSVの構成については、後で隣接行列を示して説明する。リザバーのサイズは、例えば、中間層のノード数である。
【0044】
それぞれの出力層の出力ノードOUT_nd_1、OUT_nd_2からのリードアウト値が
図1に記載の情報処理装置10に出力され、プロセッサ12がリードアウト値と出力重みの線形結合による積和値を演算し、2つの出力OUT1、OUT2を生成し、2つの出力の和をクロスバーリザバーC_RSVの出力として算出する。また、プロセッサ12は、後述する手順で学習工程での訓練データによる出力重みの最適化を行う。
【0045】
図9は、第2の実施の形態におけるリザバーコンピューティングモデルを示す図である。
図9のモデルは、物理リザバーの一例である素材の非線形特性を利用した素材リザバーM_RSVと情報処理装置10とを有する情報処理システムである。素材リザバーの例は、例えば、電気的非線形性を持つ材料の塊、光学的な非線形性を持つ材料の塊などである。
【0046】
素材リザバーM_RSVは、材料の塊である。材料の任意の位置に、入力IN1を入力する入力層の入力ノードIN_ndと、リードアウト値を取り出す出力層の出力ノードOUT_ndとを設定すると、入力層と出力層のノード間の素材が中間層の仮想的なノードとなる。第1の実施の形態と同様に、第2の実施の形態も、材料リザバーM_RSVは、第1部分リザバーM_RSV_1と、第1部分リザバーM_RSV_1より入力と出力との間のサイズが大きくより高次元関数特性を持つ第2部分リザバーM_RSV_2とを有する。第1部分リザバーM_RSV_1と第2部分リザバーM_RSV_2とは一部重なり合う領域を有し、そこに共通の入力層の入力ノードIN_ndが設けられる。また、第1部分リザバーM_RSV_1と第2部分リザバーM_RSV_2には、それぞれの出力層のノードOUT_nd_1、OUT_nd_2が設けられる。素材リザバーM_RSVのサイズは、例えば、入力ノードIN_ndと出力ノードOUT_nd間の距離である。
【0047】
第1の実施の形態と同様に、それぞれの出力層の出力ノードOUT_nd_1、OUT_nd_2からのリードアウト値が情報処理装置10に出力され、プロセッサがリードアウト値と出力重みの線形結合による積和値を演算し、2つの出力OUT1、OUT2を生成し、2つの出力の和を素材リザバーM_RSVの出力として算出する。また、プロセッサは、後述する手順で学習工程での訓練データによる出力重みの最適化を行う。
【0048】
図10は、第1の実施の形態におけるリザバーコンピューティングモデルの隣接行列の領域を示す図である。
図8に示したとおり、物理リザバーの一例であるクロスバーリザバーC_RSVは、第1部分リザバーC_RSV_1と、それよりサイズが大きい第2部分リザバーC_RSV_2とを有する。また、
図11は、
図10の隣接行列に示した9つの領域の関係を示す図である。
【0049】
第1部分リザバーC_RSV_1は、入力ノードIN_ndを有する入力層INLと、第1出力ノードOUT_nd_1を有する第1出力層OUTL_aと、それらの間の第1中間ノード群を有する第1中間層MIDL_aを有する。そして、
図6、
図7と同様に、第1部分リザバーC_RSV_1は、入力層INLのノードから第1中間層MIDL_aのノードに向かうノード間結合を含む領域I_M_aと、第1中間層MIDL_aのノードから第1出力層OUTL_aのノードに向かうノード間結合を含む領域M_O_aとを有する。同様に、出力層OUTLのノードから第1中間層MIDL_aのノードに向かうノード間結合を含む領域O_M_aと、第1中間層MIDL_aのノードから入力層INLのノードに向かうノード間結合を含む領域M_I_aとを有する。尚、
図10の領域AREA_1とAREA_2内の領域I_O_aとO_I_aは共にノード間結合は非結合である。これは、物理リザバーの場合、一般に入力ノード群と出力ノード群との間の距離が長いので、これらのノード間結合は非結合となる。
【0050】
第1出力層の第1出力ノードOUT_nd_1のリードアウト値と出力重みによる積和値が第1出力OUT1となる。この全結合層の出力重みが学習工程で最適値に更新される。
【0051】
第2部分リザバーC_RSV_2は、入力ノードIN_ndを有する入力層INLと、第2出力ノードOUT_nd_2を有する第2出力層OUTL_bと、それらの間の第2中間ノード群を有する第2中間層MIDL_bを有する。そして、
図6、
図7と同様に、第2部分リザバーC_RSV_2は、入力層INLのノードから第2中間層MIDL_bのノードに向かうノード間結合を含む領域I_M_bと、第2中間層MIDL_bのノードから第2出力層OUTL_bのノードに向かうノード間結合を含む領域M_O_bとを有する。同様に、出力層OUTLのノードから第2中間層MIDL_bのノードに向かうノード間結合を含む領域O_M_bと、第2中間層MIDL_bのノードから入力層INLのノードに向かうノード間結合を含む領域M_I_bとを有する。尚、
図10の領域AREA_1とAREA_2内の領域I_O_bとO_I_bは共にノード間結合は非結合である。理由は上記したとおりである。
【0052】
第2出力層の第2出力ノードOUT_nd_2のリードアウト値と出力重みによる積和値が第2出力OUT2となる。この全結合層の出力重みが学習工程で最適値に更新される。
【0053】
図12は、隣接行列の具体例を示す図である。この隣接行列NMXは20×20行例であり、従って20個のノードのクロスバーリザバーに対応する隣接行列である。この隣接行列NMXによれば、20個のノードを有するクロスバーリザバーは、ノードN7,N8の入力ノード群と、第1出力ノード群N1,N2と、第2出力ノード群N19,N20と、第1中間ノード群N3~N6と、第2中間ノード群N9~N18とに分割される。
【0054】
そして、第1部分リザバーは、入力ノード群N7,N8(IN_nd)、第1出力ノード群N1,N2、第1中間ノード群N3~N6を有する。第1出力ノード群N1,N2(OUT_nd_1)のリードアウト値と出力重みとの積和値が第1出力OUT1となる。同様に、第2部分リザバーは、入力ノード群N7,N8(IN_nd)、第2出力ノード群N19,N20(OUT_nd_2)、第2中間ノード群N9~N18を有する。第2出力ノード群N19,N21のリードアウト値と出力重みとの積和値が第2出力OUT2となる。
【0055】
図12に示されるとおり、領域AREA_1とAREA_2を除く領域には、任意の交差位置に重みの値が割り当てられている。それ以外の交差位置の重み=0は非結合を意味する。クロスリザバーのどの交差位置をどのような重みにするかは、リザバーコンピューティングモデルで実現する目的に応じて、適宜初期設計される。
【0056】
図10、
図11、
図12の隣接行列は、素材リザバーにも適用可能である。素材リザバーは入力ノードに与えられた入力に対して出力ノードに非線形特性のリードアウト値を生成するので、その非線形特性に対応した重みを設定することで、目的とする非線形特性を有するリザバーの隣接行列を設計することができる。
【0057】
図13は、第1及び第2の実施の形態のリザバーコンピューティングモデルの学習工程を示すフローチャート図である。プロセッサは、学習プログラムを実行して以下の処理を実行する。まず、プロセッサはリザバーの出力重みを初期化する(S1)。次に、プロセッサは、訓練データの入力値をリザバーの入力ノードに入力する(S2)。入力値を入力ノードに入力すると、物理リザバーでは、ノード数が少なくまたは小さいサイズの第1部分リザバーが、入力値と過去のノードの状態及びノード間結合とノード自己結合に基づいて、各ノードの状態を生成する(S3)。同様に、物理リザバーでは、第1部分リザバーより入力層と出力層との間のノード数が多く、またはより入力層と出力層との間のサイズが大きい第2部分リザバーが、入力値と過去のノードの状態及びノード間結合とノード自己結合に基づいて、各ノードの状態を生成する(S4)。つまり、同じ入力値の入力に応答して、第1部分リザバーと第2部分リザバーはそれぞれの状態が遷移し、第1部分リザバーの第1出力ノードと、第2部分リザバーの第2出力ノードの状態が遷移する。
【0058】
上記の第1部分リザバーと第2部分リザバーの状態遷移は、プロセッサが第1及び第2部分リザバーの状態遷移の演算を行って、第1部分リザバーの第1出力ノードと第2部分リザバーの第2出力ノードの状態を演算してもよい。
【0059】
次に、プロセッサは、まず、第1部分リザバーの出力重みを最適値に調整する第1パラメータ調整を実行する(S5)。この第1パラメータ調整では、プロセッサは、第1部分リザバーの第1出力ノードのリードアウト値の第1出力重みに基づく線形結合で求めた積和値を第1出力とする第1全結合層について、第1出力と教師データとの差分が少なくなるように第1出力重みを更新する。出力重みの更新は、勾配法により行うことができ、または、出力重みを線形回帰などの簡単なアルゴリズムを用いて学習する。
【0060】
さらに、プロセッサは、第1部分リザバーの第1出力重みを更新後の値に設定して、工程S2の入力値に対する第1出力を演算し、その第1出力と教師データとの差分を差分教師データとして演算する(S6)。
【0061】
次に、プロセッサは、第2部分リザバーの出力重みを最適値に調整する第2パラメータ調整を実行する(S7)。この第21パラメータ調整では、プロセッサは、工程S4で取得または演算した第2部分リザバーの第2出力ノードのリードアウト値と第2出力重みに基づく積和値を第2出力とする第2全結合層について、第2出力と差分教師データとの差分が小さくなるように第2出力重みを更新する。この出力重みの更新は、第1部分リザバーとは差分教師データを使用することを除いて同じである。
【0062】
プロセッサは、上記の訓練データの入力値を入力する工程S2から第2パラメータ調整の工程S7までの処理を、全教師データに対し繰り返し実行する(S8)。または、モデルの出力精度が目標の精度に達するまで複数の教師データに対し繰り返し実行する。モデルの出力精度は、第1部分リザバーのリードアウト部の第1出力と第2部分リザバーのリードアウト部の第2出力の和と、教師データとの差分を、前記和で除算する等により求められる。
【0063】
第1部分リザバーによる学習工程では、第1部分リザバーはサイズが小さくノード数が少ないので、比較的低次元の関数モデルが生成される。その結果、学習により最適化された第1部分リザバーとリードアウト部は、低周波成分の第1出力を生成する。低次元の関数であるので、学習工程では過学習を回避できる。一方、第2部分リザバーは、第1部分リザバーよりサイズが大きくノード数が多いので、第1部分リザバーより高次元の関数モデルが生成される。その結果、学習により最適化された第2部分リザバーとリードアウト部は、高周波成分の第2出力を生成する。そして、第1出力と第2出力の和が、リザバーコンピューティングモデルの出力となる。そのため、リザバーコンピューティングモデルは、低周波成分の第1出力に高周波成分の第2出力が加算された出力を生成することができる。
【0064】
図14は、第1及び第2の実施の形態のリザバーコンピューティングモデルの推論工程の処理を示すフローチャート図である。プロセッサは、入力値をリザバーに入力する(S10)。物理リザバーでは、ノード数が少ない小さいサイズの第1部分リザバーと、ノード数が多い大きいサイズの第2部分リザバーとが、入力値と過去の入力履歴によるそれぞれのリザバーの状態とノード間結合及びノードの自己結合に基づいてその状態を遷移する(S11,S12)。更に、プロセッサは、第1部分リザバーの出力ノードの値と出力重みとに基づいてリードアウト部の第1出力を演算し(S13)、第2部分リザバーの出力ノードの値と出力重みとに基づいてリードアウト部の第2出力を演算する(S14)。このときの出力重みは、学習工程で調整された最適な出力重みである。そして、プロセッサは、第1出力と第2出力との和を演算し、推論値を算出する(S15)。プロセッサは、上記の推論工程S10~S15を推論が終了するまで繰り返す(S16)。
【0065】
学習工程と同様に、推論工程では、プロセッサは、第1部分リザバーとそのリードアウト部により推論出力の低周波成分を生成し、第2部分リザバーとそのリードアウト部により推論出力の高周波成分を生成する。本実施の形態によれば、学習工程で過学習状態にされていないので、汎化性の高いリザバーコンピューティングモデルを生成できる。
【0066】
図15は、学習工程の出力重みの更新を行うFORCE学習のフローチャート図である。FORCE学習(First Order Reduced and Controlled Error Learning)では、まず、プロセッサは、リザバー出力ベクトル(出力ノードが出力するリードアウト値のベクトル)r(t)と、教師データf(t)を入力する(S20)。n個の出力ノードの場合リザバー出力ベクトルr(t)は、時刻tでの1行n列の行列であり、n個の出力ノードのリードアウト値が行列のn個の要素である。
【0067】
次に、プロセッサは、初回の学習では(S21のYES)、行列P(t)と出力重みw(t)をそれぞれ初期化する(S22, S23)。行列Pは、出力重みベクトルw(t)を計算するための行列であり、単位行列Iで初期化する。そして、差分eの更新を行う(S26)。
【0068】
次に、プロセッサは、リザバー出力ベクトルr(t)と、教師データf(t)を入力し(S29)、初回以外の場合であるので(S21のNO)、行列Pの更新と出力重みw(t)の更新を行う(S24,S25)。それぞれの更新の計算式が
図15に示される。行列Pの更新では、プロセッサは、一つ前の時刻t-Δtの行列P(t-Δt)から、S24に示した計算式によって、現時刻tの行列P(t)を算出する(S24)。また、出力重みwの更新では、プロセッサは、一つ前の時刻t-Δtの出力重みw(t-Δt)から、S25に示した計算式によって、現時刻tの出力重みw(t)を算出する(S25)。そして、プロセッサは、差分eの更新を行う(S26)。差分eの更新では、プロセッサは、一つ前の時刻t-Δtに更新された出力重みwの転置行列に、現時刻tのリザバー出力ベクトルr(t)を乗じて積和演算を行い、積和演算値と教師データf(t)との差分を現時刻tでの差分e(t)として出力する。
【0069】
その後、新たな教師データとリザバー出力ベクトルが入力されるたびに、プロセッサは、工程S24~S26を実行し、出力重みw(t)を更新する処理を繰り返す。上記の出力重みの更新処理は、
図13の第1部分リザバーとリードアウト部の出力重みの更新処理S5及び第2部分リザバーとリードアウト部の出力重みの更新処理S7で行われる。第2部分リザバーとリードアウト部の出力重みの更新処理S7では、教師データは差分教師データとなる。
【0070】
図16は、第3の実施の形態におけるリザバーコンピューティングモデルを示す図である。
図16のモデルは、
図9と同様に、素材リザバーM_RSVと情報処理装置10とを有する情報処理システムである。
【0071】
素材リザバーM_RSVは、第1部分リザバーM_RSV_1と、第1部分リザバーM_RSV_1よりサイズが大きくより高次元関数特性を持つ第2部分リザバーM_RSV_2と、更に、第2部分リザバーM_RSV_2よりサイズが大きくより高次元関数特性を持つ第3部分リザバーM_RSV_3とを有する。第1部分リザバーM_RSV_1と第2部分リザバーM_RSV_2と第3部分リザバーM_RSV_3は一部重なり合う領域を有し、そこに共通の入力層の入力ノードIN_ndが設けられる。また、第1、第2、第3部分リザバーM_RSV_1、M_RSV_2、M_RSV_3には、それぞれの出力層のノードOUT_nd_1、OUT_nd_2、OUT_nd_3が設けられる。
【0072】
第1の実施の形態と同様に、それぞれの出力層の出力ノードOUT_nd_1、OUT_nd_2、OUT_nd_3からのリードアウト値が情報処理装置10に出力され、プロセッサがリードアウト値と出力重みの線形結合による積和値を演算し、3つの出力OUT1、OUT2、OUT3を生成し、それらの和をクロスバーリザバーの出力として算出する。
【0073】
また、プロセッサは、学習工程での訓練データによる出力重みの最適化を行う。この学習工程では、
図13で示したとおり、訓練データの入力値を入力ノードIN_ndに入力し、3つの部分リザバーの状態を遷移させ、更に、小さいサイズの部分リザバーからサイズが大きくなる順番に、3つの部分リザバーのリードアウト部の重みをそれぞれ更新する。その場合、第2部分リザバーとリードアウト部では、第1部分リザバーのリードアウト部の更新後の出力重みに基づく第1出力と教師データの差分を差分教師データとする。また、第3部分リザバーとリードアウト部では、第1部分リザバーのリードアウト部の更新後の出力重みに基づく第1出力と第2部分リザバーでの同様の第2出力の和と教師データの差分を差分教師データとする。そして、プロセッサは、3つの部分リザバーに対応する第1出力、第2出力、第3出力の和を、素材リザバーの出力として出力する。
【0074】
[実施例]
実施例では、
図8のクロスバーリザバーをプロセッサがクロスバーリザバーの状態遷移演算プログラムを実行することで実現した。クロスバーリザバーのノード間結合と自己結合の重み及び入力ノードと2つの出力ノードの例は、例えば
図12と同様である。但し、
図12のノード数20個と異なり、本実施例では、ノード数は100個であり、
図12の5倍多い。クロスバー構造の交点に非線形特性を持つメモリスタ等の回路素子が設けられた場合の状態遷移演算プログラムを、プロセッサが実行するようにした。
【0075】
また、本実施例では、入力ノードを10個、第1出力ノードを10個、第2出力ノードを10個とし、第1部分リザバーの第1中間層のノード数を20個、第2部分リザバーの第2中間層のノード数を50個とした。クロスバーリザバーのノード間結合と自己結合は、ランダムに選択し、入力ノードと出力ノードのように近接していないノード間の結合は未結合とした。
【0076】
比較例として、複数の部分リザバーに分割されていないリザバーを使用し、全ノード数が100個、入力ノード数が10個、出力ノード数が10個、中間層のノード数を80個としたリザバーモデルを採用した。
【0077】
実施例の実験では、NARMA10と呼ばれる非線形関数の予測問題をモデルのタスクとした。NARMA10は、RNNの評価方法として一般的に知られている。NARMA10の非線形関数は、ある長さの時系列の入力データを入力すると入力に対する時系列の数値データを出力する。この入力と出力される時系列の数値データが訓練データの入力データと教師データである。
【0078】
実施例の実験では、本実施例のリザバーコンピューティングモデルに上記訓練データの入力データを時系列に入力し、対応する教師データを使用してモデルの出力重みを最適化する学習を繰り返し実行した。そして、学習後のモデルにNARMA10の入力データを与えたときにモデルが生成する出力データの、NARMA10の関数が出力する正解データとの誤差の正規化二重平均平方根誤差(NRMSE)を計算した。また、比較例のリザバーモデルも同様の学習と学習後の誤差を計算した。その結果、比較例のリザバーモデルでは誤差が0.2033であったのに対して、本実施の形態のリザバーモデルでは誤差が0.1718と小さかった。
【0079】
以上の通り、本実施の形態のリザバーコンピューティングモデルは、リザバーをそれぞれのサイズが順に大きくなる複数の部分リザバーに共通の入力を入力し、サイズが小さい順に各部分リザバーとリードアウト部の出力重みを、出力と教師データの差分が小さくなるように更新する学習を行う。その場合、最も小さい第1部分リザバーとリードアウト部では、リードアウト部の第1出力と教師データの差分、次に小さい第2部分リザバーとリードアウト部では、リードアウト部の第2出力と差分教師データ(教師データから更新済み出力重みで求めた第1出力を減算した値)の差分、更に、第K部分リザバーとリードアウト部では、リードアウト部の第K出力と差分教師データ(教師データから更新済み出力重みで求めた第1出力~第K-1出力の和を減算した値)の差分が、それぞれ小さくなるようにそれぞれの出力重みを更新する。
【0080】
本実施の形態によれば、リザバーコンピューティングモデルが、最も小さいサイズの部分リザバーとそのリードアウト部とで出力の最も低い周波成分を生成し、サイズが大きくなるに従い、出力のより高い周波数成分を生成する。これにより、学習工程での過学習を抑制し、汎化性の高いリザバーコンピューティングモデルを生成することができる。
【符号の説明】
【0081】
10:情報処理装置
12:プロセッサ
18:物理リザバー
RSV:リザバー
C_RSV:クロスバーリザバー
M_RSV:素材リザバー
C_RSV_1:第1部分リザバー
C_RSV_2:第2部分リザバー
INL:入力層
OUTL:出力層
MIDL:中間層
FCL:全結合層、リードアウト部
IN_nd:入力ノード
OUT_nd_1、OUT_nd_2:出力ノード
OUT1、OUT2:出力ノード
w1,w2:出力重み
N1~N5:ノード