JP2021043791A - リザーバコンピュータ、リザーバ設計方法及びリザーバ設計プログラム - Google Patents

リザーバコンピュータ、リザーバ設計方法及びリザーバ設計プログラム Download PDF

Info

Publication number
JP2021043791A
JP2021043791A JP2019166315A JP2019166315A JP2021043791A JP 2021043791 A JP2021043791 A JP 2021043791A JP 2019166315 A JP2019166315 A JP 2019166315A JP 2019166315 A JP2019166315 A JP 2019166315A JP 2021043791 A JP2021043791 A JP 2021043791A
Authority
JP
Japan
Prior art keywords
unit
reservoir
output
nodes
evaluation
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.)
Pending
Application number
JP2019166315A
Other languages
English (en)
Inventor
昭一 宮原
Shoichi Miyahara
昭一 宮原
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2019166315A priority Critical patent/JP2021043791A/ja
Priority to US16/987,457 priority patent/US20210081772A1/en
Priority to EP20190423.2A priority patent/EP3792833A3/en
Priority to CN202010895138.8A priority patent/CN112488288A/zh
Publication of JP2021043791A publication Critical patent/JP2021043791A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/086Learning methods using evolutionary algorithms, e.g. genetic algorithms or genetic programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F2015/761Indexing scheme relating to architectures of general purpose stored programme computers
    • G06F2015/768Gate array

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Computer Hardware Design (AREA)
  • Neurology (AREA)
  • Physiology (AREA)
  • Genetics & Genomics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Feedback Control In General (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

【課題】有用なリザーバを効率よく得ること。【解決手段】リザーバコンピュータは、計算部、変更部、更新部、評価部及び選択部とを有する。計算部は、複数のノードを含み、ノードの間の結合構造がランダムに決められたリザーバと、複数のノードの各ノードに重みが設定された出力層とを含むニューラルネットワークへの入力に対する出力を計算する。変更部は、リザーバに含まれる前記複数のノードの間の結合構造を変更する。更新部は、変更部によって変更された結合構造のそれぞれについて、計算部によって計算された出力を基に、出力層の重みを更新する。評価部は、計算部によって計算された出力を所定の基準により評価する。選択部は、評価部による評価結果を基に、変更部によって変更された結合構造の中から所定の結合構造を選択する。【選択図】図2

Description

本発明は、リザーバコンピュータ、リザーバ設計方法及びリザーバ設計プログラムに関する。
昨今、特に多層のRNN(Recurrent Neural Network)においては、バックプロパゲーションにより層間重みを更新することが非常に難しいことが知られており、種々の改善方法が研究されている。そこで出力層のみの重みを更新するリザーバコンピューティングというRNNアルゴリズムに注目が集まっている。
ここで、RNNは、時系列データを取り扱うのに適した機械学習として知られている。RNNは、ネットワーク内部にループを含む構造であるため、過去のデータと現在のデータの相関を重み付けとして持つことができる。RNNに対しては、映像処理における動的な判断や自然言語処理等への応用が期待されている。
リザーバコンピューティングは、特殊なRNNで、深層学習にあるような多層状の結合ではなくランダムで固定な結合による「リザーバ」と呼ばれる構造を持つ。リザーバにおけるノードの間の結合構造(ネットワーク)は、学習に先立って決定される。例えば、FPGA(Field Programmable Gate Array)等の回路でリザーバを実装する場合、結合構造に関しては設計時、一様にランダムに決定される。また、リザーバを持つRNNの学習は、リザーバのノードの間の結合を固定したまま進み、出力層の重みのみが更新される。学習が終了すると出力重みは固定され、出力データが得られる。
特開2018−180701号公報 国際公開第2016/194248号
しかしながら、従来のリザーバコンピューティングには、有用なリザーバを効率よく得ることが困難な場合があるという問題がある。
例えば、従来のリザーバコンピューティングにおいて、リザーバのノードの間の結合構造において、偏りがなく一様にランダムであっても問題を解くことはできる。一方で、そのような場合、精度が悪かったり、学習ステップが多く必要であったり、またこれらを改善するために多くのノード数が必要であったりすることがある。
さらに、解きたい問題によっては、構造に偏りがあるネットワークを用いてリザーバとしたほうがよい場合がある。どの程度ノードの間の結合ネットワークに偏りが必要かは、問題によって変化する。
1つの側面では、有用なリザーバを効率よく得ることを目的とする。
1つの態様において、リザーバコンピュータは、計算部、変更部、更新部、評価部及び選択部とを有する。計算部は、複数のノードを含み、複数のノードの間の結合構造がランダムに決められたリザーバと、複数のノードの各ノードに重みが設定された出力層とを含むニューラルネットワークへの入力に対する出力を計算する。変更部は、リザーバに含まれる複数のノードの間の結合構造を変更する。更新部は、変更部によって変更された結合構造のそれぞれについて、計算部によって計算された出力を基に、出力層の重みを更新する。評価部は、計算部によって計算された出力を所定の基準により評価する。選択部は、評価部による評価結果を基に、変更部によって変更された結合構造の中から所定の結合構造を選択する。
1つの側面では、有用なリザーバを効率よく得ることができる。
図1は、リザーバコンピューティングを説明するための図である。 図2は、リザーバコンピュータの構成例を示す図である。 図3は、実施例1に係るリザーバ設計処理の流れを示すフローチャートである。 図4は、実施例1に係る結合構造変更処理の流れを示すフローチャートである。 図5は、実施例2に係る結合構造変更処理の流れを示すフローチャートである。 図6は、遺伝的アルゴリズムを説明するための図である。 図7は、実施例3に係る第1世代の結合構造変更処理の流れを示すフローチャートである。 図8は、実施例3に係る第K世代の結合構造変更処理の流れを示すフローチャートである。 図9は、実験の結果を示す図である。 図10は、ハードウェア構成例を説明する図である。
以下に、本発明に係るリザーバコンピュータ、リザーバ設計方法及びリザーバ設計プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例により本発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
[リザーバコンピューティング]
まず、図1を用いてリザーバコンピューティングについて説明する。図1は、リザーバコンピューティングを説明するための図である。図1に示すように、リザーバコンピューティングにおけるニューラルネットワークは、入力層11a、リザーバ11b及び出力層11cを有する。
図1の例では、パターンが付された丸の1つ1つが、リザーバ11bのノードである。前述の通り、従来の手法では、リザーバのノードの間の重みがあらかじめランダムに決定され固定された上で、出力層の重みの学習が進められる。
[機能構成]
図2を用いて、実施例に係るリザーバコンピュータの構成を説明する。図2は、リザーバコンピュータの構成例を示す図である。図2に示すように、リザーバコンピュータ1は、RC(Reservoir Computing)回路10及び設計部20を有する。
RC回路10は、計算部11、更新部12及び供給部13を有する。計算部11は、複数のノードを含み、複数のノードの間の結合構造がランダムに決められたリザーバと、複数のノードの各ノードに重みが設定された出力層とを含むニューラルネットワークへの入力に対する出力を計算する。計算部11のうち、少なくともリザーバの部分は、FPGA(Field Programmable Gate Array)であってもよい。
更新部12は、出力層の重みを更新する。また、リザーバの結合構造は、初期状態がランダムに決定され、その後、後述する変更部21によって変更される。更新部12は、変更部21によって変更された結合構造のそれぞれについて、計算部11によって計算された出力を基に、出力層の重みを更新する。このとき、更新部12は、教師データと出力との誤差が小さくなるように出力層の重みを更新する。教師データは、供給部13によって更新部12に供給される。
設計部20は、変更部21、評価部22及び選択部23を有する。変更部21は、リザーバのノードの間の結合構造を変更する。例えば、変更部21は、リザーバとして機能するFPGAを書き換えることで結合構造を変更する。例えば、変更部21は、結合構造をあらかじめ規定された回数だけ変更する。
ここで、リザーバの結合構造は、当該リザーバに含まれ得るノードと同数の行及び列を持つ隣接行列を用いて論理的に表される。このとき、隣接行列の各成分はリザーバに含まれる複数のノードの間の重みを表しているため、変更部21は、各成分を変更することで重みを決定することができる。また、リザーバのノードは全結合でなくてもよいため、隣接行列の成分は0であってもよい。
そこで、変更部21は、例えば、隣接行列の各成分を0以上1以下の範囲でランダムに決定し、その隣接行列に合うように、リザーバとして機能するFPGAを書き換えてもよい。また、このとき、リザーバの用途等に合わせて、隣接行列の固有値や、値が0である成分の割合等があらかじめ制約条件として設定されていてもよい。また、0成分の割合が多いほどリザーバは疎になり、実数成分が多いほどリザーバは密になる。
評価部22は、計算部11によって計算された出力を所定の基準により評価する。例えば、評価部22は、評価結果として、計算部11によって計算された出力の、あらかじめ用意された教師データに対する誤差を計算する。
選択部23は、評価部22による評価結果を基に、変更部21によって変更された結合構造の中から所定の結合構造を選択する。例えば、選択部23は、変更部21によって変更された結合構造の中から、出力の誤差が最も小さくなるような結合構造を選択する。また、選択部23によって選択された結合構造を有するFPGAは、最適化済みのリザーバとして機能する単独の装置として扱うことができる。例えば、選択部23によって選択された結合構造を有するFPGAを譲渡等の対象とすることができる。
[処理の流れ]
図3を用いて、リザーバ設計処理の流れを説明する。図3は、実施例1に係るリザーバ設計処理の流れを示すフローチャートである。まず、図3に示すように、リザーバコンピュータ1の設計部20は、初期の結合構造を決定する(ステップS11)。nは、結合構造の変更回数を表す。ここではn=1であるものとする。また、設計部20は、結合構造の変更と同様の方法で初期の結合構造を決定することができる。
次に、RC回路10は、出力層の出力重みの学習を行う(ステップS12)。具体的には、更新部12が、誤差が小さくなるように出力重みを更新する。そして、計算部11は、初期結果として、学習済みの出力層を用いた出力を計算する(ステップS13)。その後、リザーバコンピュータ1は、結合構造変更処理へ進む。
図4を用いて、結合構造変更処理の流れを説明する。図4は、実施例1に係る結合構造変更処理の流れを示すフローチャートである。図4に示すように、設計部20は、結合構造を変更する(ステップS21)。例えば、設計部20は、所定の制約条件の下、ランダムに結合構造を変更することができる。
設計部20は、nを1だけ増加させる(ステップS22)。そして、RC回路10は、出力層の出力重みの学習を行う(ステップS23)。さらに、計算部11は、n回目の結果として、学習済みの出力層を用いた出力を計算する(ステップS24)。
ここで、Nは、あらかじめ規定された繰り返しの上限回数であり、例えば100である。n>Nでない場合(ステップS25、No)、設計部20は、さらに結合構造を変更する(ステップS26)。そして、設計部20は、さらにnを1だけ増加させる(ステップS22)。これにより、リザーバコンピュータ1は、ステップS26、S22、S23、S24の処理を、nがNを超えるまで繰り返し実行する。
n>Nである場合、設計部20は、結合構造の評価及び選択を行う(ステップS27)。例えば、設計部20は、ステップS24における結合構造ごとの最終的な出力の教師データとの誤差を評価し、誤差が最も小さい出力に対応する結合構造を選択する。
[効果]
これまで説明してきたように、計算部11は、複数のノードを含み、複数のノードの間の結合構造がランダムに決められたリザーバと、複数のノードの各ノードに重みが設定された出力層とを含むニューラルネットワークへの入力に対する出力を計算する。変更部21は、リザーバに含まれる複数のノードの間の結合構造を変更する。更新部12は、変更部21によって変更された結合構造のそれぞれについて、計算部11によって計算された出力を基に、出力層の重みを更新する。評価部22は、計算部11によって計算された出力を所定の基準により評価する。選択部23は、評価部22による評価結果を基に、変更部21によって変更された結合構造の中から所定の結合構造を選択する。このように、リザーバコンピュータ1は、メタヒューリスティックな方法を用いてリザーバの最適化を行うことができる。このため、実施例1によれば、有用なリザーバを効率よく得ることが可能になる。
また、リザーバはFPGA(Field Programmable Gate Array)であってよい。この場合、変更部21は、リザーバとして機能するFPGAを書き換えることで結合構造を変更する。これにより、最適化されたリザーバとして機能するFPGAを取り出し利用することができる。
変更部21は、結合構造をあらかじめ規定された回数だけ変更する。また、評価部22は、評価結果として、計算部11によって計算された出力の、あらかじめ用意された教師データに対する誤差を計算する。また、選択部23は、変更部21によって変更された結合構造の中から誤差が最も小さい結合構造を選択する。このように、変更回数を規定しておくことで、限られた時間及び計算資源を使ってリザーバの最適化を行うことができる。
本願発明は、リザーバコンピューティングの課題を解決するものである。また、前述の通り、リザーバコンピューティングは特殊なRNNである。ここで、RNNが利用されるようになった背景について述べる。
ムーア則の限界を打ち破るために、従来のフォンノイマン型ではない新規のコンピュータ・アーキテクチャをIT業界全体で模索されている。非ノイマン型のマシンは、量子コンピューティングといった開発に今後も年月がかかるであろうものから、FPGA、GPU、GPUの有効活用といった比較的着手しやすいものまで数多く提案されている。それらの非ノイマン型のマシンは、いずれもフォンノイマン・ボトルネックを回避して、計算リソースが必要となる特定分野の問題を効率的に解くものである。
非ノイマン型のマシンと組み合わされる問題として機械学習が考えられる。特に今日の多層化された深層学習(ディープラーニング)においては計算リソースが多く必要とされるため、多くの企業で研究開発されている。また、深層学習の成功により、研究機関や企業で機械学習の新しいモデルが日々開発・改善されている。このような背景から、特に時系列データの取り扱いに適した機械学習としてRNNが利用されている。
実施例1では、図4に示すように、n>Nという条件が満たされるまで結合構造変更処理が行われる。これに対し、実施例2のリザーバ設計システムは、誤差がある程度小さくなるような結合構造が得られた時点で結合構造変更処理を終了する。
実施例2では、例えば、評価部22は、変更部21によって変更された結合構造のそれぞれについての、出力層の重みの更新が完了するたびに、評価結果として、計算部11によって計算された出力の、あらかじめ用意された教師データに対する誤差を計算する。また、選択部23は、誤差が閾値以下である場合、誤差に対応する結合構造を選択する。
図5を用いて、結合構造変更処理の流れを説明する。図5は、実施例2に係る結合構造変更処理の流れを示すフローチャートである。図5に示すように、設計部20は、結合構造を変更する(ステップS31)。設計部20は、nを1だけ増加させる(ステップS32)。そして、RC回路10は、出力層の出力重みの学習を行う(ステップS33)。さらに、計算部11は、n回目の結果として、学習済みの出力層を用いた出力を計算する(ステップS34)。
[処理の流れ]
ここで、設計部20は、出力の教師データとの誤差が閾値未満であるか否かを評価する(ステップS35)。誤差が閾値未満でない場合、又はnがN´未満である場合(ステップS35、No or n<N´(N´は例えば10))、設計部20は、さらに結合構造を変更する(ステップS36)。そして、設計部20は、さらにnを1だけ増加させる(ステップS32)。これにより、リザーバコンピュータ1は、ステップS36、S32、S33、S34の処理を繰り返し実行する。
誤差が閾値未満、かつnがN´以上である場合(ステップS35、Yes and n≧N´)、設計部20は、結合構造の選択を行う(ステップS37)。例えば、設計部20は、ステップS24における結合構造ごとの最終的な出力の教師データとの誤差を評価し、誤差が最も小さい出力に対応する結合構造を選択する。
[効果]
評価部22は、変更部21によって変更された結合構造のそれぞれについての、更新部12による出力層の重みの更新が完了するたびに、評価結果として、計算部11によって計算された出力の、あらかじめ用意された教師データに対する誤差を計算する。また、選択部23は、誤差が閾値以下である場合、誤差に対応する結合構造を選択する。このように、誤差が閾値以下となるリザーバが得られた時点で処理を完了できるので、リザーバの最適化に要する時間を短縮することができる。
実施例3では、リザーバ設計システムは、遺伝的アルゴリズムを使って結合構造変更処理を行う。図6は、遺伝的アルゴリズムを説明するための図である。図6に示すように、まず、設計部20は、第1世代の結合構造を複数用意する。そして、設計部20は、各結合構造について評価を行い、評価結果が上位の結合構造を用いて、組合せの交配や突然変異を発生させる。そして、規定の世代に達したところで、設計部20は、その世代の結合構造のうち誤差が最も小さい結合構造を選択する。
実施例3では、例えば、変更部21は、遺伝的アルゴリズムに従い、あらかじめ用意された複数の結合構造を第1世代として、評価部22による評価結果が改善されるように、結合構造の組合せ及び淘汰により各世代の結合構造を生成していく。また、選択部23は、評価部22による評価結果を基に、変更部21によって生成された所定の世代の結合構造の中から結合構造を選択する。
例えば、リザーバコンピュータ1は、以下の手順で遺伝的アルゴリズムによるリザーバの最適化を行う。まず、リザーバコンピュータ1は、ランダム結合によるリザーバを複数生成して、第1世代とする。次に、リザーバコンピュータ1は、第1世代のリザーバについてそれぞれ学習を行い、その結果から目的関数を導出し、各リザーバの隣接行列に対する評価を行う。ここで、目的関数は、誤差を最小化するものや、学習効率を最大化するものが考えられる。本実施例では、リザーバコンピュータ1は、学習ステップ数を固定とし、誤差を最小化する目的関数を導出するものとする。
次に、リザーバコンピュータ1は、評価が高い隣接行列同士を部分的に組み合わせて第2世代のリザーバを生成する。さらに、リザーバコンピュータ1は、第2世代のリザーバの評価(隣接行列の評価)を行い、その結果から評価が高いリザーバを選別する。
以下、リザーバコンピュータ1は、上記の生成、組合せ、淘汰の工程を繰り返し、隣接行列に対して突然変異として確率的にノイズを与える。例えば、リザーバコンピュータ1は、隣接行列の実数成分を0にすることや、0成分を実数に変更することによりノイズを与える。
[処理の流れ]
図7を用いて、第1世代の結合構造変更処理の流れを説明する。図7は、実施例3に係る第1世代の結合構造変更処理の流れを示すフローチャートである。まず、図7に示すように、リザーバコンピュータ1の設計部20は、初期の結合構造を決定する(ステップS41)。設計部20は、nを1だけ増加させる(ステップS42)。次に、RC回路10は、出力層の出力重みの学習を行う(ステップS43)。そして、計算部11は、初期結果として、学習済みの出力層を用いた出力を計算する(ステップS44)。
ここで、n>Lでない場合(ステップS45、No)、設計部20は、さらに結合構造をランダムに変更する(ステップS46)。そして、設計部20は、さらにnを1だけ増加させる(ステップS42)。これにより、リザーバコンピュータ1は、ステップS46、S43、S44の処理を、nがLを超えるまで繰り返し実行する。ただし、Lはあらかじめ設定された世代ごとの結合構造の上限数である。また、nの初期値は0とする。また、n>Lである場合(ステップS45、Yes)、リザーバコンピュータ1は第2世代の結合構造変更処理へ進む。
図8を用いて、第K世代の結合構造変更処理の流れを説明する。図8は、実施例3に係る第K世代の結合構造変更処理の流れを示すフローチャートである。ただし、Kは2以上の整数である。まず、図8に示すように、リザーバコンピュータ1の設計部20は、遺伝的アルゴリズムに従い結合構造を変更する(ステップS51)。ここでは、設計部20は、第K−1世代の結合構造を組合せて交配することで変更を行う。
設計部20は、nを1だけ増加させる(ステップS52)。次に、RC回路10は、出力層の出力重みの学習を行う(ステップS53)。そして、計算部11は、初期結果として、学習済みの出力層を用いた出力を計算する(ステップS54)。
ここで、n>Lでない場合(ステップS55、No)、設計部20は、遺伝的アルゴリズムに従い結合構造を変更する(ステップS56)。ここでは、設計部20は、第K−1世代の結合構造を組合せた交配に加え、突然変異を発生させることで変更を行う。
そして、設計部20は、さらにnを1だけ増加させる(ステップS52)。これにより、リザーバコンピュータ1は、ステップS56、S53、S54の処理を、nがLを超えるまで繰り返し実行する。また、n>Lである場合(ステップS55、Yes)、設計部20は、最新世代の結合構造のうち、上位のものを選択する(ステップS57)。さらに、リザーバコンピュータ1は第K+1世代の結合構造変更処理へ進む。
なお、Lは世代が進むに従って小さくなっていってもよい。これにより、得られる結合構造の数は世代が進むごとに少なくなり、最終的に少数の中から最良の結合構造を選択することができる。
[効果]
変更部21は、遺伝的アルゴリズムに従い、あらかじめ用意された複数の結合構造を第1世代として、評価部22による評価結果が改善されるように、結合構造の組合せ及び淘汰により各世代の結合構造を生成していく。また、選択部23は、評価部22による評価結果を基に、変更部21によって生成された所定の世代の結合構造の中から結合構造を選択する。このように、遺伝的アルゴリズムを利用することで、ランダムに結合構造を変更する場合に比べてより良いリザーバを得ることが可能になる。
図9は、実験の結果を示す図である。図9の例では、リザーバコンピュータ1は、第1世代としてリザーバを10個生成した(L=10)。また、第1世代のリザーバを評価する目的関数(誤差)は、平均0.1862で最小値が0.1773であった。そして、リザーバコンピュータ1は、遺伝的アルゴリズムにより50世代繰り返した結果、誤差0.1673の値が得られるようなリザーバを生成することができた。
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。また、実施例で説明した具体例、分布、数値等は、あくまで一例であり、任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
リザーバの最適化には、遺伝的アルゴリズムだけでなく、組合せ最適化問題を解くためのメタヒューリスティックな手法を用いることができる。例えば、リザーバの最適化は、焼きなまし法等によって行われてもよい。
[ハードウェア]
図10は、ハードウェア構成例を説明する図である。図10に示すように、リザーバコンピュータ1は、通信インタフェース10a、HDD(Hard Disk Drive)10b、メモリ10c、プロセッサ10dを有する。また、図10に示した各部は、バス等で相互に接続される。
通信インタフェース10aは、ネットワークインタフェースカード等であり、他のサーバとの通信を行う。HDD10bは、図2に示した機能を動作させるプログラムやDBを記憶する。
プロセッサ10dは、図2に示した各処理部と同様の処理を実行するプログラムをHDD10b等から読み出してメモリ10cに展開することで、図2等で説明した各機能を実行するプロセスを動作させるハードウェア回路である。すなわち、このプロセスは、リザーバコンピュータ1が有する各処理部と同様の機能を実行する。具体的には、プロセッサ10dは、計算部11、更新部12、変更部21、評価部22及び選択部23と同様の機能を有するプログラムをHDD10b等から読み出す。そして、プロセッサ10dは、計算部11、更新部12、変更部21、評価部22及び選択部23等と同様の処理を実行するプロセスを実行する。
このようにリザーバコンピュータ1は、プログラムを読み出して実行することで学習類方法を実行する情報処理装置として動作する。また、リザーバコンピュータ1は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、リザーバコンピュータ1によって実行されることに限定されるものではない。例えば、他のコンピュータ又はサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
このプログラムは、インターネット等のネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD-ROM、MO(Magneto−Optical disk)、DVD(Digital Versatile Disc)等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。
1 リザーバコンピュータ
10 RC回路
11 計算部
12 更新部
13 供給部
20 設計部
21 変更部
22 評価部
23 選択部

Claims (7)

  1. 複数のノードを含み、前記複数のノードの間の結合構造がランダムに決められたリザーバと、前記複数のノードの各ノードに重みが設定された出力層とを含むニューラルネットワークへの入力に対する出力を計算する計算部と、
    前記リザーバに含まれる前記複数のノードの間の結合構造を変更する変更部と、
    前記変更部によって変更された結合構造のそれぞれについて、前記計算部によって計算された出力を基に、前記出力層の重みを更新する更新部と、
    前記計算部によって計算された出力を所定の基準により評価する評価部と、
    前記評価部による評価結果を基に、前記変更部によって変更された結合構造の中から所定の結合構造を選択する選択部と、
    を有することを特徴とするリザーバコンピュータ。
  2. 前記変更部は、前記結合構造をあらかじめ規定された回数だけ変更し、
    前記評価部は、評価結果として、前記計算部によって計算された出力の、あらかじめ用意された教師データに対する誤差を計算し、
    前記選択部は、前記変更部によって変更された結合構造の中から前記誤差が最も小さい結合構造を選択することを特徴とする請求項1に記載のリザーバコンピュータ。
  3. 前記評価部は、前記変更部によって変更された結合構造のそれぞれについての、前記更新部による前記出力層の重みの更新が完了するたびに、評価結果として、前記計算部によって計算された出力の、あらかじめ用意された教師データに対する誤差を計算し、
    前記選択部は、前記誤差が閾値以下である場合、前記誤差に対応する結合構造を選択することを特徴とする請求項1に記載のリザーバコンピュータ。
  4. 前記変更部は、遺伝的アルゴリズムに従い、あらかじめ用意された複数の結合構造を第1世代として、前記評価部による評価結果が改善されるように、結合構造の組合せ及び淘汰により各世代の結合構造を生成していき、
    前記選択部は、前記評価部による評価結果を基に、前記変更部によって生成された所定の世代の結合構造の中から結合構造を選択することを特徴とする請求項1に記載のリザーバコンピュータ。
  5. 前記リザーバはFPGA(Field Programmable Gate Array)であり、
    前記変更部は、前記リザーバとして機能するFPGAを書き換えることで結合構造を変更することを特徴とする請求項1に記載のリザーバコンピュータ。
  6. 複数のノードを含み、前記複数のノードの間の結合構造がランダムに決められたリザーバに含まれる前記複数のノードの間の結合構造を変更し、
    前記リザーバと、前記複数のノードの各ノードに重みが設定された出力層とを含むニューラルネットワークへの入力に対する出力を計算し、
    前記変更する処理によって変更された結合構造のそれぞれについて、前記出力を基に、前記出力層の重みを更新し、
    前記出力を所定の基準により評価し、
    前記評価する処理による評価結果を基に、前記変更する処理によって変更された結合構造の中から所定の結合構造を選択する
    処理をコンピュータが実行することを特徴とするリザーバ設計方法。
  7. 複数のノードを含み、前記複数のノードの間の結合構造がランダムに決められたリザーバに含まれる前記複数のノードの間の結合構造を変更し、
    前記リザーバと、前記複数のノードの各ノードに重みが設定された出力層とを含むニューラルネットワークへの入力に対する出力を基に、前記変更する処理によって変更された結合構造のそれぞれについて、前記出力層の重みを更新し、
    前記出力を所定の基準により評価し、
    前記評価する処理による評価結果を基に、前記変更する処理によって変更された結合構造の中から所定の結合構造を選択する
    処理をコンピュータが実行することを特徴とするリザーバ設計プログラム。
JP2019166315A 2019-09-12 2019-09-12 リザーバコンピュータ、リザーバ設計方法及びリザーバ設計プログラム Pending JP2021043791A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2019166315A JP2021043791A (ja) 2019-09-12 2019-09-12 リザーバコンピュータ、リザーバ設計方法及びリザーバ設計プログラム
US16/987,457 US20210081772A1 (en) 2019-09-12 2020-08-07 Reservoir computer, reservoir designing method, and non-transitory computer-readable storage medium for storing reservoir designing program
EP20190423.2A EP3792833A3 (en) 2019-09-12 2020-08-11 Reservoir computer, reservoir designing method, and reservoir designing program
CN202010895138.8A CN112488288A (zh) 2019-09-12 2020-08-31 储备池计算机、设计方法、非暂态计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019166315A JP2021043791A (ja) 2019-09-12 2019-09-12 リザーバコンピュータ、リザーバ設計方法及びリザーバ設計プログラム

Publications (1)

Publication Number Publication Date
JP2021043791A true JP2021043791A (ja) 2021-03-18

Family

ID=72050658

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019166315A Pending JP2021043791A (ja) 2019-09-12 2019-09-12 リザーバコンピュータ、リザーバ設計方法及びリザーバ設計プログラム

Country Status (4)

Country Link
US (1) US20210081772A1 (ja)
EP (1) EP3792833A3 (ja)
JP (1) JP2021043791A (ja)
CN (1) CN112488288A (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107615306A (zh) * 2015-06-03 2018-01-19 三菱电机株式会社 推论装置和推论方法
JP6791800B2 (ja) * 2017-04-05 2020-11-25 株式会社日立製作所 計算機システム及び再帰型ニューラルネットワークを用いた演算方法
WO2018213399A1 (en) * 2017-05-16 2018-11-22 University Of Maryland, College Park Integrated circuit designs for reservoir computing and machine learning
US11436480B2 (en) * 2018-01-03 2022-09-06 International Business Machines Corporation Reservoir and reservoir computing system
CN109360018A (zh) * 2018-09-27 2019-02-19 郑州轻工业学院 一种基于人工神经网络的模糊宗地地价评估方法
US10657447B1 (en) * 2018-11-29 2020-05-19 SparkCognition, Inc. Automated model building search space reduction

Also Published As

Publication number Publication date
US20210081772A1 (en) 2021-03-18
CN112488288A (zh) 2021-03-12
EP3792833A2 (en) 2021-03-17
EP3792833A3 (en) 2021-04-14

Similar Documents

Publication Publication Date Title
Li et al. Improved binary particle swarm optimization for feature selection with new initialization and search space reduction strategies
JP6922945B2 (ja) 情報処理方法
Schuman et al. Evolutionary optimization for neuromorphic systems
CN111242296A (zh) 自动模型构建搜索空间缩减
TW201531966A (zh) 配置稀疏神經網路
EP4032036A1 (en) Quantum bit prediction
KR20060044772A (ko) 트리를 학습하기 위한 테이블 사용 방법
Vergidis et al. Business process improvement using multi-objective optimisation
Teng et al. Self-adaptive population sizing for a tune-free differential evolution
Elsayed et al. A surrogate-assisted differential evolution algorithm with dynamic parameters selection for solving expensive optimization problems
WO2021159060A1 (en) Generation of optimized hyperparameter values for application to machine learning tasks
Pahariya et al. Software cost estimation using computational intelligence techniques
JP2022522807A (ja) 回帰型ニューラルネットワークのルジャンドルメモリユニット
Pahariya et al. Computational Intelligence Hybrids Applied to Software Cost Estimation
WO2022256040A1 (en) Exponential spin embedding for quantum computers
JP2021043791A (ja) リザーバコンピュータ、リザーバ設計方法及びリザーバ設計プログラム
JP7256378B2 (ja) 最適化システムおよび最適化システムの制御方法
Ang et al. Training neural networks for classification using growth probability-based evolution
CN110858504A (zh) 产生化学结构的方法、神经网络设备和非瞬时计算机可读的记录介质
Rigoni et al. Metamodels for fast multi-objective optimization: trading off global exploration and local exploitation
JPWO2019142728A1 (ja) 制御装置、制御方法およびプログラム
Banga Computational hybrids towards software defect predictions
JP6795240B1 (ja) 制御装置、方法及びプログラム
KR102168882B1 (ko) 뉴럴 네트워크 하드웨어
KR102187830B1 (ko) 뉴럴 네트워크 하드웨어