JP2003317073A - ニューラルネットワーク処理装置 - Google Patents

ニューラルネットワーク処理装置

Info

Publication number
JP2003317073A
JP2003317073A JP2002122806A JP2002122806A JP2003317073A JP 2003317073 A JP2003317073 A JP 2003317073A JP 2002122806 A JP2002122806 A JP 2002122806A JP 2002122806 A JP2002122806 A JP 2002122806A JP 2003317073 A JP2003317073 A JP 2003317073A
Authority
JP
Japan
Prior art keywords
neural network
configuration information
block
network
sub
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
JP2002122806A
Other languages
English (en)
Inventor
Masahiro Maeda
正浩 前田
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co 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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP2002122806A priority Critical patent/JP2003317073A/ja
Publication of JP2003317073A publication Critical patent/JP2003317073A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Feedback Control In General (AREA)

Abstract

(57)【要約】 【課題】 大規模なニューラルネットワークの構築を容
易にする。 【解決手段】 大規模ニューラルネットワークを機能単
位のブロックから構成する。各ブロックの内部構造とそ
れら各ブロック間の相互接続関係をブロックダイアグラ
ムデータ21として記述する。複数のブロックダイアグ
ラムデータ21からニューラルネットワークをそれぞれ
生成し、学習させる。評価・選別機構26は、学習した
各ニューラルネットワークの性能を評価し、優良なもの
を選別する。交叉・突然変異混入機構27は、選別され
た各ニューラルネットワークに対応する各ブロックダイ
アグラムデータ21を遺伝子として扱い、そのデータ2
1に含まれる個々のブロックの記述を遺伝単位として扱
って、遺伝的アルゴリズムによりそれら優良なブロック
ダイアグラムデータ21から子孫を作る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、大規模かつ複雑な
ニューラルネットワークの構築のための技術に関する。
【0002】
【従来の技術】人工ニューラルネットワークは、生物の
脳内の神経細胞の動作を人工ニューロンという単純化し
たモデルで再現し、これら人工ニューロンを網のように
相互接続して、それら各接続間の重み付け等を学習させ
ることによって、特定の情報処理を行わせることができ
るようにしたものである。従来、人工ニューラルネット
ワークとしては、パーセプトロンモデルをベースにした
ものがよく使用されている。
【0003】しかし、従来のシステムでは、ニューロン
ネットワークの設計は人手で行なわれ、多くの試行錯誤
を経て完成させられていた。複雑な機能を持たせるため
には、ネットワークも複雑にせざるをえず、ネットワー
クが複雑になればなるほど、その実現は困難になる。
【0004】例えばN個の人工ニューロンを完全相互接
続させた場合には、Nの2乗の接続があることになる。
したがって、ニューロンを増やせば増やす程、Nの2乗
に近いオーダーで設計の手間が増えることになり、実現
の困難さが増してゆくことになる。
【0005】一方、近年の生体脳の研究では、実際の脳
では機能が分化していて、個々の機能が相互作用するこ
とによって複雑な機能を実現していることが解明されつ
つある。特に大脳での神経細胞ネットワークは、生後直
後はある程度ランダム性を持って神経細胞間の接続が多
めに作られており、後天的な外界からの刺激によって自
己組織的にシナプスの増減や伝達係数が変化することに
より、徐々に機能実現構造が構築されることが判明して
いる。
【0006】このような、生体の脳のように接続ルール
を厳密に記述できないネットワークを機械生成(自動生
成)することを目的として、本出願人は特開2001-51968
に示される手法を提案した。この手法では、ニューラル
ネットワークを階層化するとともに機能単位でブロック
化する。そして、各ブロック内、及びブロック間での結
線ルールや学習パラメータ等の指定を元に、ランダム性
を付加したネットワークを機械生成する。この手法によ
り、大規模なニューラルネットワークの構築の際に指定
すべき詳細情報を削減し、ネットワーク設計の手間を省
くことができた。
【0007】
【発明が解決しようとする課題】しかし、ニューラルネ
ットワークが生成された後の学習、学習結果の確認、設
計へのフィードバック等の手間は依然として残り、ニュ
ーラルネットワークの規模が大きくなればなるほど試行
錯誤の組み合わせも増える傾向にあるので、大規模ニュ
ーラルネットワーク構築の手間は依然として大きい。
【0008】ニューラルネットワークの学習方法・構成
方法としては、特開平7-44512号公報,特開平8-87483号
公報,特開平8-129542号公報,特開平8-235147号公報,
特開平9-6881号公報に示されるものがある。これらの方
法では、ニューラルネットワーク内の接続や、その接続
の重み等の設定や初期化に対して、遺伝的アルゴリズム
を適用することで、解決しようとする問題に適したニュ
ーラルネットワークを構成することをもくろんでいる。
【0009】しかしながら、この方法ではネットワーク
規模が大きくなると組み合わせ爆発が起こるため、学習
・最適化の効率が指数関数的に悪くなる。
【0010】また、これらの方法では1つのニューラル
ネットワークで複数の問題を解決すること等を考慮して
いないため、異なる問題に対しては最初からニューラル
ネットワークを作りなおす必要があり、一つのシステム
で対応できるとは限らない。このようなことから、上記
の従来手法では、異なる問題に適したニューラルネット
ワークを交叉させるなど、複合問題もしくは多目的に対
応できるニューラルネットワークを構成することはでき
なかった。
【0011】また開放系あるいは自律系システムでは予
期せぬ状況が発生しうるため、ニューラルネットワーク
を構築し学習させた後に起こる事象への適応能力もしく
は汎化能力の方が重要である。後天的な環境の変化には
教師信号が無いことが多いため、適応するための学習則
としては自己組織化(Self-Organization)や強化学習(Re
inforcement Learning)等が適している機能・課題が多
い。しかし、従来はこのような学習則を遺伝的アルゴリ
ズムに適応させる方法が無かった。さらに、従来は、初
期設定よりもニューラルネットワークの規模が大きくな
ったり、ニューラルネットワークの層が増えるような場
合は想定されていないため、初期ネットワークの理論的
性能限界を超えるような課題解決は本質的に不可能とい
う問題があった。
【0012】本発明はこのような課題に鑑みなされたも
のであり、複合的な問題に適用可能な大規模なニューラ
ルネットワークを構築するための装置を提供することを
目的とする。
【0013】
【課題を解決するための手段】本発明に係るニューラル
ネットワーク処理装置は、複数のニューラルネットワー
ク構成情報を保持する構成情報保持手段であって、各ニ
ューラルネットワーク構成情報は、ニューラルネットワ
ークを構成する各サブネットワークごとに、そのサブネ
ットワークの内部構造及びそのサブネットワークと他の
サブネットワークとの相互接続関係を表すサブネットワ
ーク情報を含む、構成情報保持手段と、前記ニューラル
ネットワーク構成情報に基づき、各サブネットワーク内
のニューロン配置及びニューロン間接続と、各サブネッ
トワーク間の接続とを乱数を用いて決定することにより
ニューラルネットワークを機械生成し、生成したニュー
ラルネットワークを予め用意された学習データを用いて
学習させるニューラルネットワーク生成手段と、前記各
ニューラルネットワーク構成情報に基づき前記ニューラ
ルネットワーク生成手段で生成し学習させたニューラル
ネットワークを評価し、その評価結果が所定の選別基準
を満足するものを選別する評価・選別手段と、前記評価
・選別手段で選別された各ニューラルネットワークに対
応する各ニューラルネットワーク構成情報を遺伝子とし
て遺伝的アルゴリズムを適用することで、次世代のニュ
ーラルネットワーク構成情報を生成する構成情報進化手
段と、を備え、前記構成情報進化手段により生成した次
世代のニューラルネットワーク構成情報に基づきニュー
ラルネットワークを生成することを可能とした。
【0014】本発明の好適な態様では、前記構成情報進
化手段は、前記ニューラルネットワーク構成情報に含ま
れる前記サブネットワーク情報をそれぞれ遺伝単位とし
て遺伝的アルゴリズムを適用する。この態様において、
遺伝単位とは、遺伝子中に含まれ、交叉等の処理の際の
単位となるものである。例えば全染色体に対する1本の
染色体に当たる。
【0015】更に好適な態様では、前記構成情報進化手
段は、複数のニューラルネットワーク構成情報の間で重
複するサブネットワーク情報についてはそのうちの1つ
を選び、重複しないサブネットワークについてはそのす
べてを選び、それら選んだサブネットワーク情報をマー
ジすることで、それら複数のニューラルネットワーク構
成情報を合成した次世代のニューラルネットワーク構成
情報を生成する。
【0016】更に好適な態様では、前記構成情報進化手
段は、前記複数のニューラルネットワーク構成情報を合
成した次世代のニューラルネットワーク構成情報の各サ
ブネットワーク情報に対して突然変異を混入させる突然
変異機能を備える。
【0017】また本発明の別の好適な態様では、前記ニ
ューラルネットワーク構成情報には、各サブネットワー
クごとに個別に学習則を設定することができ、前記ニュ
ーラルネットワーク生成手段は、機械生成したニューラ
ルネットワークを学習させるにあたり、対応するニュー
ラルネットワーク構成情報に示された各サブネットワー
クごとの学習則の設定に従って、各サブネットワークご
とに個別の学習則を適用可能である。
【0018】
【発明の実施の形態】本実施形態では、生体脳の神経網
構造を知見に鑑み、大規模ニューラルネットワークを比
較的小規模なブロック(サブネットワーク)の組合せと
して設計する。個々のブロックは、単機能又は比較的少
ない機能を実現するだけでよいので、小規模かつ比較的
単純な構造であり、妥当な演算処理量で自動構築が可能
となる。
【0019】各ブロックは、例えば、多層(レイヤ)構
造のニューラルネットワークとする。各ブロックの設計
は、レイヤ(層)の数や各レイヤに設けるニューロンの
種類や数、結合形態などを規定する比較的少数のパラメ
ータを設定することにより行う。このようにして作成さ
れたニューラルネットワークの基礎設計情報は、ブロッ
ク構成や各ブロックのパラメータ群を記述するものであ
り、ここでは「ブロックダイアグラム」と呼ぶ。
【0020】本実施形態の装置は、このブロックダイア
グラムを基にニューラルネットワークを自動生成し、自
己組織化等の様々な学習方式で学習させることにより、
所望の機能を実現するニューラルネットワークを構築す
る。
【0021】ブロックダイアグラムには、各ブロック内
や各ブロック同士の間でのニューロン間の接続(結線)
の分布を規定するパラメータを設定し、ニューラルネッ
トワークの自動生成の際にはこの分布パラメータに応じ
た確率分布でニューロン間の接続を生成する。
【0022】また本実施形態では、複数のニューラルネ
ットワークをそのようにして構築し学習させた後、各々
を評価し、その中から良好なものを選抜する。そして、
選抜した各ニューラルネットワークに対して、交叉や突
然変異などの遺伝的アルゴリズムの手法を適用すること
で、複合問題、あるいは複数の目的に利用可能なニュー
ラルネットワークを構築する。
【0023】本実施形態のニューラルネットワーク処理
装置は、例えば、図1に示すように、記憶装置11、演
算装置12、入力装置13、出力装置14などを備えた
汎用の計算機15上に構築することができる。記憶装置
11は、主メモリ、2次記憶装置などであり、ニューラ
ルネットワークの基礎設計情報であるブロックダイアグ
ラムデータ、このブロックダイアグラムデータからニュ
ーラルネットワークを自動生成するためのプログラム、
これにより自動生成されたニューラルネットワークを表
すニューラルネットワークデータ、学習やニューラルネ
ットワーク演算などのための各種データ、プログラムを
記憶する。演算装置12は、記憶装置11内の各種プロ
グラムを実行して、ニューラルネットワーク生成処理や
学習処理などの演算を実行する。入力装置13はキーボ
ードやマウスなどであり、ユーザはこれを用いて各種の
指示やデータを入力する。出力装置14は例えば表示装
置であり、演算装置12の処理結果等を出力する。この
ような計算機15に対し、ニューラルネットワークの計
算に特化した演算補助装置16を接続してもよい。ニュ
ーラルネットワーク演算補助装置16を設けることによ
り、学習やニューラルネットワーク演算処理などを高速
化することができる。演算補助装置16は、例えばニュ
ーロチップなどを搭載していてもよい。
【0024】記憶装置11内に保持されたプログラムお
よびデータは、図2のような構成となる。本実施形態の
ための処理プログラムは、構築及び学習の対象であるニ
ューラルネットワークのブロック構成及び各ブロックの
特性を記述したブロックダイアグラム21を読み込む読
込機構22と、ブロックダイアグラム21を元にニュー
ロン群を自動配置し、ニューロン間の接続を機械生成
(自動生成)する機械生成機構23と、この機構23に
より生成されたニューラルネットワークデータを基に学
習その他のニューラルネットワーク演算を実行する演算
・学習機構24を含む。学習データ25は、この演算・
学習機構24でニューラルネットワークの学習に用いら
れるデータである。
【0025】本実施形態では、複数のブロックダイアグ
ラムデータ21を用意し、その各々について、上記読込
機構22,機械生成機構23及び演算・学習機構24に
よりニューラルネットワークを生成し、学習させる。し
たがって、ブロックダイアグラムデータ21の数だけニ
ューラルネットワークができる。
【0026】評価・選別機構26は、これら複数のニュ
ーラルネットワークをそれぞれ評価し、その中から優良
なものを選別する機構である。そして、交叉・突然変異
混入機構27は、選別された優良なニューラルネットワ
ーク群に対し、交叉や突然変異といった遺伝的アルゴリ
ズムの処理を実行する機構である。ここで、交叉や突然
変異の対象となるのは、個々のニューラルネットワーク
の元となったブロックダイアグラムである。したがっ
て、この交叉・突然変異混入機構27では、処理結果と
して新たな世代のブロックダイアグラムが得られる。得
られた新たな世代のブロックダイアグラムから生成され
る新たな世代のニューラルネットワークは、その親であ
る複数のニューラルネットワークの機能を継承する可能
性が高い。なお、演算補助装置16を設ける場合は、こ
の時に発生するニューラルネットワーク演算の一部又は
大部分を、この装置16に代行させることもできる。
【0027】そして、このように得られた複数の次世代
のブロックダイアグラム21を元に、以上に説明したニ
ューラルネットワーク生成、学習、評価・選別、交叉・
突然変異の処理を行って更に次の世代のブロックダイア
グラム21を求め、このサイクルを繰り返していくこと
で、ニューラルネットワークが、いわば進化していく。
【0028】本実施形態では、人間の脳の構造を模した
大規模なニューラルネットワークを構築する。図3は、
本実施形態の装置で構築しようとする大規模ニューラル
ネットワークのブロック構成の例を示す。
【0029】このブロック構成例は、脳の海馬を中心と
して、記憶に関わると考えられている各部位に相当する
ブロックから構成される。すなわち、このニューラルネ
ットワークは、海馬に相当する海馬ブロック30、前頭
葉に相当する前頭葉ブロック32、海馬周辺皮質に相当
する海馬周辺皮質ブロック34、内嗅野に相当する内嗅
野ブロック36から構成される。この構成は、実際の脳
の各機能部位をある程度単純化している。この構成は、
各感覚の情報がある程度シンボル化された後、海馬周辺
皮質と内嗅野の連合野で統合され海馬に送られ、これに
基づき海馬で短期記憶が形成され、この短期記憶と海馬
周辺皮質からの感覚入力とを基に前頭葉に長期記憶が形
成されるというモデルを基礎にしている。
【0030】本実施形態では、これら各ブロック30〜
36の内部構造及び相互の接続関係を、それぞれブロッ
クダイアグラムとして記述する。ブロック内部構造もブ
ロック間接続関係も、決定論的に完全な構造・関係を記
述するのではなく、そのような構造・関係を生成するた
めのパラメータを記述する。ブロック内部構造は、各ブ
ロックごとに個別に規定できる。
【0031】図4に、ブロックの概念例を示す。(a)
の例は、3層構成のニューラルネットワークとして構成
されたブロックの例であり、第1層Layer1に入力信号が
入り、第2層Layer2が隠れ層として働き、第3層Layer3
から出力が出るタイプのブロックを示している。各層
は、それぞれ興奮系ニューロン(図中白丸)、抑制系ニ
ューロン(図中黒丸)を含んでいる。ブロックとして
は、このような3層構造だけでなく、2層あるいは4層
以上の多層構造のものを用いることももちろん可能であ
る。また、ニューロン間の接続は、入力層から出力層に
向かう単純な順方向接続だけなく、その逆の逆方向接続
や、同層内のニューロン同士の同層内接続も可能であ
る。なお、例示した興奮系、抑制系のニューロンは、生
体脳に見られる代表的な神経細胞を模擬したニューロン
のクラスであり、前者は接続先ニューロンを興奮させる
信号を発し、後者は接続先ニューロンの興奮を抑制する
信号を発する。生体脳は、個々の部位ごとにその部位に
固有の神経細胞を持つ場合があり、本実施形態でもそれ
ら固有の神経細胞の機能を模擬したニューロンのサブク
ラスを用意して使用してもよい。
【0032】図4の(b)の例は、海馬の構造を単純化
して表した図である。海馬は、明確な層構造をなしてお
り、各層間で相関接続のトポロジが解明されている。す
なわち、ECII層→DG層間、及びCA3層→CA1層間は接続の
分布が広がっており、その他の層間はトポロジーが保存
されて接続されている。また、DG層は顆粒細胞と呼ばれ
る神経細胞から構成されており、他の層は錐体細胞から
構成されている。本実施形態では、このような海馬の機
能を模擬する海馬ブロック30を構築するのに、個々の
ニューロンの種類や相互の接続関係を設計者が明示的に
記述するのではなく、層の数や各層のニューロン種類、
接続分布などを簡単なパラメータで指定し、これをもと
にブロックを自動生成する。
【0033】本実施形態では、各ブロックを自動生成す
るに当たり、ニューロンを各レイヤ(層)の2次元平面
上に配置する。これにより、2次元平面上での距離に依
存した接続分布の定義を可能にしている。
【0034】図5は、あるニューロンから次レイヤのニ
ューロンへのシナプス接続の分布の一例を示す(ここで
は、ブロック内のレイヤ間又は同一レイヤ内での接続
を、ブロック間の接続と区別してシナプス接続と呼
ぶ)。この例では、注目のニューロンからの距離に応じ
て正規(ガウス)分布に従ってシナプス接続数が減少し
ていくタイプの接続分布を示している。すなわち、注目
ニューロンからあるニューロンへの接続が形成される確
率は、それらの距離が大きくなるにつれて正規分布に従
って小さくなっていく。接続分布としては、このような
正規分布型の他、完全ランダム型、完全相互接続型、ト
ポロジ保存型、釣り鐘型、メキシカンハット型などが考
えられる。
【0035】完全ランダム型は接続相手ニューロンの分
布が距離によらず一様(すなわちランダム)である分布
であり、完全相互接続型は次レイヤのすべてのニューロ
ンに対して接続を形成するタイプの接続分布である。ま
たトポロジ保存型は、あるレイヤとその次のレイヤとの
間でニューロンを1対1に対応させ、接続関係のトポロ
ジを保存する形の接続分布である。これら3種は、ニュ
ーロン間の距離に依存しない接続分布である。これに対
し、釣り鐘型、メキシカンハット型は、正規分布型と同
様距離に依存した接続分布であり、その名の示すとお
り、それぞれ釣り鐘形状、メキシカンハット形状の確率
分布に従って接続数が決まる。
【0036】このように、ニューロンを座標空間上の位
置に対応づけ、ニューロン間の空間的位置関係に応じて
それら両ニューロン間の接続の有無を決定することによ
り、生体の神経系に近いニューロン間接続関係を実現す
ることができる。
【0037】図6に、本実施形態の装置を用いた大規模
ニューラルネットワークの構築手順を示す。
【0038】この手順では、まず設計者が複数のブロッ
クダイアグラムデータを作成する(S10)。この際、
設計者は、大規模ニューラルネットワークを構成する各
ブロックの内部構造のパラメータ群と、それら各ブロッ
ク相互間の接続関係のみを記述すればよい。ブロックダ
イアグラムの記述例については後に説明する。
【0039】次に、このブロックダイアグラムデータを
元に、本実施形態の装置にてニューラルネットワークを
機械生成する(S12)。すなわち、ブロックダイアグ
ラムに従って各ブロックとなる小規模ニューラルネット
ワーク(サブネットワーク)を自動生成し、これら小規
模ニューラルネットワーク同士を接続して大規模ニュー
ラルネットワークを機械生成する。ここでは、ステップ
S10で作成された各ブロックダイアグラムデータごと
に、大規模ニューラルネットワークが機械生成される。
生成された各大規模ニューラルネットワークは、各ニュ
ーロンとその接続関係を示したデータからなるニューラ
ルネットワークデータとして記述され、記憶装置11に
格納される。
【0040】このままでは大規模ニューラルネットワー
クは未学習状態でなので、予め用意した学習データ25
をそのニューラルネットワークに与え、学習させる(S
14)。すなわち、ニューラルネットワークデータの記
述に従って演算装置12(及び/又は演算補助装置1
6)でニューラルネットワークを仮想的に構築し、この
ニューラルネットワークに対して学習データ25を処理
させることにより学習/演算させる。そして、所定の学
習終了条件が満足されるまで、ステップS14を繰り返
す(S16)。この学習処理は、ステップS12で生成
されたすべての大規模ニューラルネットワークに対して
行われる。
【0041】学習が完了すると、各大規模ニューラルネ
ットワークの学習結果を評価し、この評価結果に基づき
優良な大規模ニューラルネットワークを選別する。そし
て、選別した各大規模ニューラルネットワークに対応す
る各ブロックダイアグラムデータに対し、交叉や突然変
異などの遺伝的アルゴリズム的な処理を実行すること
で、次の世代のブロックダイアグラムデータを生成する
(S18)。
【0042】以上のステップS10〜S18の一連の処
理により、ある世代のブロックダイアグラムデータ群か
ら、その次の世代のブロックダイアグラムデータ群を新
たに生成することができる。そして、この新たに生成し
たブロックダイアグラムデータ群をもとに同じ一連の処
理ステップS10〜S18を繰り返すことで、更に次の
世代のブロックダイアグラムデータ群を生成できる。こ
の処理の流れは、いわばニューラルネットワークの進化
と捉えることができる。予め世代数の上限を定めてお
き、一連の処理ステップS10〜S18の繰返し回数が
その世代数の上限値に達したところで、以上に説明した
ニューラルネットワークの進化処理を停止する。この最
後の繰り返しにおいて、ステップS18で優良なものと
して選別したニューラルネットワークが、好適なニュー
ラルネットワークとして問題解決に利用することができ
る。
【0043】本実施形態では、ニューラルネットワーク
をオブジェクト指向言語によるプログラムと言う形で実
現している。オブジェクトのクラスには、Brain(大規
模ニューラルネットワーク全体。これはBlockの集合で
ある)、Block(ブロック。これはLayerの集合),Layer
(層。これはNeuronの集合。すなわち、2次元平面上に
ニューロンを配置したもの)、NeuronType(ニューロン
種別(特性))、Neuron(ニューロン)、及びAxon(軸
索)を用意している。これら各クラスには、図2に示し
た各機構に対応するメソッドを用意し実装する。すなわ
ち、この例では、read(読込機構22)、initiate(機
械生成機構23)、write(ニューラルネットワークデ
ータを記憶装置11に記憶する機構)、eval(演算・学
習機構24)、というメソッドを各クラスに用意する。
この例では、プログラムの簡素化のためNeuronTypeとい
うクラスを用意したが、このクラスはNeuronクラスの抽
象クラスとして実装することも可能である。
【0044】この他に、Neuronオブジェクトを修飾する
activateのパラメータのみ,learnのパラメータのみをそ
れぞれ担当するクラスとして、Activatable(活性化関
数),Learnable(学習則)のスーパークラスを用意す
ることで、NeuronTypeやNeuronのクラスとは独立に活性
化関数や学習則を指定できるようにすることも可能であ
る。この場合、例えば学習則を指定するには、NeuronTy
peオブジェクト又はNeuronオブジェクト内に、learnメ
ソッドを指定し、そのメソッドの中で学習則の種類や学
習パラメータなどを規定すればよい。
【0045】図7に、ブロックダイアグラムデータのフ
ォーマットの簡単な仕様を示す。ここで、"<>"でくくら
れている部分には、指定する値を記述する。"[]"で括ら
れている部分は、省略可能な項目を示す。"|"はOR条
件を示し、例えば"A|B"は"A"または"B"という意味にな
る。また2重スラッシュ"//"の右側の記述はコメント文
である。
【0046】図7の仕様例では、まず、brainnameにニ
ューラルネットワーク全体(Brainオブジェクト)の名
称が記述される。Brainオブジェクトは、ブロックリス
トを含む。ブロックリストはブロックの集合である。
【0047】各ブロックには、それぞれブロック名<blo
ck#name>を付与する。個々のブロックは、パラメータリ
ストを含み得る。パラメータリストは、パラメータ名と
パラメータ値とのペアのリストである。
【0048】本実施形態では、当該ブロックを規定する
パラメータとして、layers、keeptopography、layerの
3種類を用意している。layersは、ブロックのレイヤの
数を示すパラメータであり、パラメータ値として整数を
指定できる。keeptopographyは、指定した接続分布(後
述)に従う接続の割合を指定するパラメータであり、0
以上1以下の実数値を指定できる。keeptopography=0
の場合は、指定された接続分布にまったく従わず、ラン
ダムに接続が形成される。keeptopography=1の場合
は、すべての接続が指定された接続条件を満足するよう
に形成される。keeptopographyが0より大きく1より小
さい場合は、その割合の接続が接続分布に従い、残りの
接続はランダムに形成される。なお、keeptopographyの
パラメータ指定は必須ではない。
【0049】パラメータlayerは、leyersで指定された
レイヤの数だけ設定する。layerには、当該ブロックで
の第何層かを示す<層指定(整数)>を指定する。これに
加え、レイヤの名前を設定することもできる。
【0050】また、layerには、そのレイヤ内に配置す
るニューロンについての指定を行う。この指定は、パラ
メータneurontypeにより行う。neurontypeには、まずニ
ューロン種別の名前を指定する。例えば"excitatory"
(興奮系)、"inhibitory"(抑制系)などの名前を指定
する。なお、ニューラルネットワーク演算機構25に
は、ここで指定した名前に対応するニューロンの特性・
挙動を示すデータを持たせておく。このパラメータneur
ontypeは、そのレイヤ内に配置されるニューロンのタイ
プを示す。1レイヤ内に複数タイプのニューロンを配置
する場合は、各タイプごとにパラメータneurontypeの内
容を指定する。
【0051】neurontypeには、さらにそのタイプに属す
るニューロンの数や接続形態に関するパラメータを指定
する。neuronsは、当該レイヤに配置する当該タイプの
ニューロンの数を示すパラメータであり、整数値を設定
する。forwardsは、それら各ニューロンから次レイヤの
ニューロンへの順方向の接続の数を示すパラメータであ
り、整数値を設定する。ニューラルネットワーク自動生
成時には、1ニューロン当たりこのパラメータ値の示す
数の順方向接続が生成される。同様に、intralayerは、
それら各ニューロンから同レイヤ内のニューロンへの同
層内接続の数を示すパラメータであり、backwardsはそ
れら各ニューロンから1つ手前のレイヤのニューロンへ
の接続の数を示すパラメータであり、これらも整数値で
ある。
【0052】パラメータconndistは、当該レイヤの当該
タイプのニューロンから延びる接続の分布を示す接続分
布パラメータであり、本装置内に予め用意した接続分布
の名称のいずれかを設定する。図示の例では、Gaussian
(正規分布型)、White(完全ランダム接続型)、All
(完全相互接続)、Pink(距離が大きくなるにつれて接
続確率が直線的に減少する分布)の4種類の接続分布を
提供している。このパラメータconndistは省略可能であ
る。
【0053】また<neurontype固有パラメータ>として、
このneurontypeに固有のパラメータを指定できる。
【0054】また、パラメータaxonoutは、ブロック間
接続を指定するためのパラメータであり、当該レイヤの
当該タイプの各ニューロンから他ブロックへの接続を記
述する。以下、このブロック間接続をブロック内の接続
と区別するために、軸索と呼ぶこともある。axonoutに
は、接続先のブロック名を指定する。そして、接続先ブ
ロックにおいて接続先のレイヤを指定する場合は、L<.>
にレイヤ番号を指定する。例えばL<2>と指定すれば第2
レイヤに接続される。この接続先レイヤ指定を省略した
場合は、接続先レイヤは接続先ブロックの第1レイヤ
(いわゆる入力層)と解釈する。また<タイプ名>の指定
は、接続先レイヤにおける接続先ニューロンのタイプ
(種別)を指定するパラメータである。このパラメータ
の指定があれば、ニューラルネットワーク生成時に接続
先ニューロンを選ぶときに、そのタイプを限定する。最
後のパラメータ<整数>は、他ブロックへの接続の数の指
定であり、当該レイヤの当該タイプの1ニューロン当た
りの接続数である。
【0055】なお、axonoutは、外部との入出力を記述
するためにも用いる。例えば、axonoutの接続先のブロ
ック名の箇所に出力デバイス名を指定することにより、
当該レイヤのニューロンからその出力デバイスを介して
外部に信号を出力することができる。また、外部からの
入力を大規模ニューラルネットワークに与える場合に
は、入力デバイスに対応するブロック(レイヤ)を作
り、そのブロックのパラメータaxonoutに、その信号を
与えるブロック(レイヤ)の名前を指定すればよい。
【0056】またこの他に、このNeuronType内に学習則
を指定するパラメータlearnや、活性化関数を規定する
パラメータactivateを記述することもできる。
【0057】図8に、ブロックダイアグラムのサンプル
を示す。このサンプルでは、大規模ニューラルネットワ
ークTestBrainに含まれるtest1、test2の2つのブロッ
クが示されている。例えばブロックtest1の第1レイヤ
(layer1)は、タイプ"excitatory"(興奮性)のニュー
ロンのみを5つ含み、これら各ニューロンは、それぞれ
次レイヤへの順方向接続を5つ、同一レイヤ内への接続
を5つ持つ。これら各接続の相手先は、接続分布"whit
e"(完全ランダム接続:すなわち一様分布)に従って決
まる。そして、このlayer1の各ニューロンは、それぞれ
ブロックtest2(のlayer1)に対して5本ずつ接続を持
つ。また、第2レイヤ(layer2)は、タイプ"excitator
y"と"inhibitory"(抑制性)の2種類のニューロンをそ
れぞれ5つずつ含み、それら各タイプごとに接続条件
(接続先の数、選び方)が規定されている。このlayer2
の各ニューロンは、ブロックtest3(図示省略)の第2
レイヤ(layer2)の"excitatory"(興奮性)のニューロ
ンに向けて10本ずつ接続を持つ。
【0058】また図8の例では、層layer1のニューロン
種別(neurontype)exicitatoryのオブジェクトに対し、l
earnパラメータが指定されている。learnの後には、学
習則の種類を示す識別名(この例ではHebb則を表す"Heb
bian")が記述され、更にその後にその学習則の詳細を
規定する内部パラメータ(ゲインを表す"gain"など)が
記述される。学習則の内部パラメータは、学習則の種類
に応じて変わる。
【0059】このような形で、大規模ニューラルネット
ワークを構成する各ブロックごとに、その内部構造及び
相互接続関係のパラメータを記述することにより、ブロ
ックダイアグラムが構成される。
【0060】このようなブロックダイアグラムは、設計
者が、例えばエディタを用いて記述していくことにより
作成する。なお、ブロックダイアグラムの作成処理のた
めの専用のユーザインタフェースを設ければ、この作成
作業が簡単になる。このインタフェースは、例えばブロ
ック名やニューロンタイプなどの各種パラメータの入力
を例えば対話的に行わせるようなものでよい。
【0061】ニューラルネットワークを生成する機械生
成機構23は、このようなブロックダイアグラムの記述
内容に従い、ニューラルネットワークを生成する。この
生成処理では、blockパラメータで指定された各ブロッ
ク毎に、そのブロック内のlayerパラメータで指定され
たレイヤを生成する。また、各レイヤ毎に、そのレイヤ
のneuronsパラメータで指定された数のニューロンを生
成する。このとき、生成するニューロンのレイヤ内での
位置は、乱数を用いてランダムに決定する。そして、こ
のようにして生成した各ニューロンに対し、forward、i
nterlayer、backwardの各パラメータに指定された数の
順方向接続、同レイヤ内接続、逆方向接続を生成する。
このニューロン毎の接続の生成処理では、keeptopology
パラメータの値と、当該ニューロンの属するレイヤのco
nndistパラメータが示す接続分布に従って接続相手のニ
ューロンを選択し、当該ニューロンとそれら接続相手と
を結ぶ接続を生成する。ここでは、例えば、パラメータ
で指定された接続分布に対応する乱数発生機構により発
生した乱数でニューロン位置座標を決め、その位置にニ
ューロンがあればそのニューロンを接続相手に選び、そ
の位置にニューロンがなければ同じ乱数発生機構で次の
乱数を発生させて同様の処理を繰り返す。このようにし
て各ブロック内の各レイヤのニューロン群と、それら相
互間の接続が生成されると、次にaxonoutパラメータに
応じてブロック間の接続(生体の軸索に対応)を生成す
る。こうしてニューラルネットワークができあがる。
【0062】本実施形態では、このように、各ブロック
のニューロン、ブロック内接続、ブロック間接続が最初
にブロックダイアグラムで規定されたパラメータに従っ
て自動生成される。なお、これら各接続の重み(結合荷
重)の初期値は、例えば予め定めた値でもよいし乱数で
定めてもよい。
【0063】図9に、ニューラルネットワークを学習さ
せるための演算・学習機構24の動作フローチャートを
示す。演算・学習機構24は、上記の手順で自動生成さ
れた初期ニューラルネットワークのデータに基づき、以
下の手順に従ってニューラルネットワーク演算を実現す
る。この演算手順は、ニューラルネットワークの学習等
に利用できる。
【0064】この処理では、所定時間間隔の時間ステッ
プごとに、大規模ニューラルネットワーク(Brainクラ
スオブジェクト)に含まれる全ニューロンについてその
出力値を計算する。すなわち、ステップS101a〜S
101bのループで全ブロックについての繰り返しを行
い、ステップS102a〜S102bのループで1つの
ブロックの全レイヤについての繰り返しを行う。ステッ
プS103a〜S103bのループでは1つのレイヤの
X座標について、ステップS104a〜S104bのル
ープではY座標について、それぞれ繰り返しを行う。そ
して、S105では、当該ブロック、当該レイヤの当該
座標にニューロンがあるかどうかをニューラルネットワ
ークデータにて調べる。ここで、ニューロンがあれば
(これをニューロンiとする)、そのニューロンiに対
する他の各ニューロンからの入力(受信信号)を積和し
て出力値を求める。そして、そのニューロンiのオブジ
ェクトに規定された各接続先のニューロンjごとに(S
106,S108)、その出力値にその接続先jに対す
る荷重Wijを掛けて、その結果をその接続先ニューロン
jに送る(S107)。
【0065】すなわち、ある時間ステップtにて、大規
模ニューラルネットワークの全てのニューロンにおい
て、ニューロンオブジェクトに保持している接続先ニュ
ーロンの配列および荷重(重み)Wijの配列を基に、当
該ニューロンの出力値(すなわちそのニューロンの発火
強度)に荷重Wijを掛け合わせ、この結果を接続先ニュ
ーロンのオブジェクトに対してメッセージパッシングに
より送る。このメッセージを受け取ったニューロンは、
受けとった値を入力値に加算し、自己の出力を生成す
る。
【0066】時間ステップがtからt+1に切り替わる
までの間に、各ニューロンは、受信領域で受け取った前
段ニューロンからの受信信号群を積和してその積和値を
次段への出力の値にセットし、その後、次の時間ステッ
プでの前段からの信号受信及び積和のために、その受信
領域をリセットする。このとき、各NeuronTypeに減衰係
数d(0<d<1)を持たせ、Neuronオブジェクト(す
なわち個々のニューロン)の次の状態st+1を、現在の
状態stと減衰係数dとの組合せにより規定する(例え
ばst+1=d*st)ことで、反応時間の異なる複数種類
の神経細胞を表現し、1つのニューラルネットワーク内
に混在させることができる。
【0067】例えば、10ms程度(100Hz)の間隔を
1イタレーション(計算繰り返し単位)の周期とする
と、ニューロンの入出力の値は、神経細胞での前回のイ
タレーション期間内の刺激強度(受信信号電流)の積算
に相当する値を1イタレーションの刺激強度とみなして
演算する。ニューロンiからニューロンjへのシナプス
接続があるとき、ニューロンjの出力は、Yj(t+1)=f
(ΣYi(t)*Wij-θ)(θは閾値)とする。このとき関
数fはニューロンの伝達関数であり、例えばシグモイド
関数やtanh関数など、入力が閾値より大きければ出力が
1、小さければ0となる離散関数を使用することができ
る。この例では、Yj(t+1)が1より大きい時には(Yj
(t+1)*100Hz)の頻度でスパイクを発生していると見な
すようにし、関数fとして最大値を1に正規化しないも
のも使用できる。
【0068】自動生成された大規模ニューラルネットワ
ークの学習は、例えばHebb則などの学習則を用いた自己
組織化(教師信号なし)学習により行う。学習用のデー
タは予め用意した学習データ25を用いる。この学習に
より、各ニューロン間の結合荷重が修正されていく。す
なわち、学習則に応じた演算処理によりニューロンオブ
ジェクト内の荷重の配列の各エントリの値が更新されて
いく。なお、Hebb則以外の他の学習則によって学習させ
ることも可能である。また、複数の学習則を用意してお
き、適宜選択して使用できるようにしてもよい。例えば
Hebb則の自分自身の入力総和を使用するかわりに、外部
からの評価信号を用いることにより別な学習則による学
習が実現できる。また、重みの変化(ΔWij)の計算式
として別の関数を用いることにより学習効果を変えるこ
とができる。
【0069】また、自己組織化学習の他に、報酬を与え
て結果の良し悪しから評価関数を修正する強化学習(Rei
nforcement Learning)を使用することもできる。また学
習データに入力と出力が対応して与えられている等の条
件が整っている場合には誤差逆伝播法(Back Propargati
on)を適用することも可能である。
【0070】更にはLearnableクラスを使用すること
で、ブロック(block)ごと、又は層(layer)ごとに用
いる学習則を変えることもできる。例えば、大脳皮質の
感覚野を模擬するブロックにはHebb則による自己組織
化、大脳基底核を模したブロックにはTD(Temporal Di
fference)の報酬予測学習、小脳を模したブロックには
バックプロパゲーション、を使用するなど、大規模ニュ
ーラルネットワークを構成する各ブロック、各層に対し
て個別に学習則を指定し、それぞれ個別の学習則で学習
させることができる。
【0071】次に、このようにして学習させた各大規模
ニューラルネットワークを評価、選別する評価・選別機
構26の処理について説明する。
【0072】この評価・選別機構26は、大規模ニュー
ラルネットワークの適用対象とする問題(目的)に合わ
せて構築する。
【0073】評価は、大まかに言えば、与えた入力デー
タに対する大規模ニューラルネットワークの出力が、ど
れだけ正解に近いかによって行う。
【0074】例えば簡単な例としては次のような方法が
ある。この方法では、入力データとして、学習に用いた
学習データ25に存在するデータと存在しないデータの
双方を含んだデータ群を用意し、これを評価対象の大規
模ニューラルネットワークに与える。そして、このとき
の各入力データに対する大規模ニューラルネットワーク
の出力結果と期待値(そのニューラルネットワークが出
力すべき正解値。適用対象の問題が決まれば、入力デー
タに対する出力の正解も決まる)との誤差を求める。そ
して各入力データに対応する誤差値の代表値(合計やノ
ルムなど)が小さいものほど優良であると評価する。ま
た、入力データに対する大規模ニューラルネットワーク
の出力結果と期待値との距離を、重み付きユークリッド
距離やマハラノビス距離などによって数値化し、これを
評価値(値が小さいほど優良)とすることも好適であ
る。また、入力データに対する正解が1つでない問題の
場合は、ニューラルネットワークが正解に到達するまで
の時間やコスト(計算コストなど)が低いものほど優良
であると評価する方法もある。
【0075】評価・選別機構26は、演算・学習機構2
4で学習した各大規模ニューラルネットワークについて
上述のような評価アルゴリズムを用いて評価を行い、そ
の評価結果が所定の選抜条件を満足する優良評価の大規
模ニューラルネットワークのみを選別する。選抜条件と
しては、例えば、上述の誤差が所定値以下である、等の
条件が考えられる。
【0076】次に、交叉・突然変異混入機構27の処理
について説明する。この交叉・突然変異混入機構27
は、遺伝的アルゴリズムにおける交叉の機能と突然変異
の機能を備える。交叉・突然変異混入機構27は、評価
・選別機構26で選別された各大規模ニューラルネット
ワークに対応するブロックダイアグラムを処理対象とす
る。すなわち、本実施形態ではブロックダイアグラムを
遺伝子として扱う。そして、ブロックダイアグラムに含
まれる個々のブロックを遺伝単位として扱う。
【0077】一般的な遺伝的アルゴリズムでは、交叉は
2つの親の遺伝子を1点、あるいは多点の交叉点で組み
替えることにより新たな2つの遺伝子(子)を生成する
操作であるが、本実施形態では、2つ以上の遺伝子(ブ
ロックダイアグラム)を合成(Merge)して一つにするこ
とで「交叉」を行っている。突然変異は、乱数により突
然変異部分を選択し、その部分のパラメータを乱数に基
づき変更するという、一般的な突然変異処理を用いる。
【0078】本実施形態の交叉処理の手順の一例を図1
0を用いて説明する。この手順では、まず、選別した各
大規模ニューラルネットワークに対応する各ブロックダ
イアグラムの中から、2つのブロックダイアグラムを読
み込む(メソッドread)(S110,S112)。ここ
では、それらのうち一方を第1ブロックダイアグラム、
他方を第2ブロックダイアグラムと呼ぶ。次に、合成し
たブロックダイアグラムのデータを格納するオブジェク
ト(第3ブロックダイアグラムと呼ぶ)を初期化する
(S114)。
【0079】次に、第1ブロックダイアグラムの最初の
ブロック(0番目のブロック)を選び(S116)、そ
のブロックと重複するブロックが第2ブロックダイアグ
ラム内にあるかどうかを調べる(S118)。
【0080】重複するブロックか否かの判定基準には複
数の方式が考えられるが、単純な例としては、ブロック
の名称(block name)が同じ場合に重複するブロックの
判定するという基準が挙げられる。ブロックダイアグラ
ム群を作成する設計者が、ブロックの機能(これはブロ
ックの内部構造や他のブロックとの関係に依存する)と
ブロックの名称との対応関係に矛盾がないようにブロッ
クダイアグラム群を設計していれば、このような単純な
規則でもよい。
【0081】より高度な判定基準としては、ブロックを
規定するパラメータ群のうちの所定のものが一致した場
合に、重複するブロックと判定する基準が考えられる。
例えば、ブロックに含まれる層(layer)の数、各層の
ニューロン種別(NeuronType)、接続分布(conndist)、及
び他のブロックとの接続関係(axonout)の値が一致する
ものを重複するブロックと判定する、などである。
【0082】もちろん、ブロックを規定するすべてのパ
ラメータが一致するものを重複するブロックと判定する
基準を採用することもできる。この基準では、例えば図
8に例示した「TestBrain」という名称のBrainオブジェ
クト(大規模ニューラルネットワーク)を第1ブロック
ダイアグラムとした場合、ステップS116でこのダイ
アグラムに含まれる最初のブロック「test1」を選び、
そのブロック「test1」の記述と同じ記述のブロックが
第2ブロックダイアグラムにあるかどうかを検査する。
そのようなものがあれば、ステップS118の判定結果
はY(肯定)となる。
【0083】ステップS118の判定で、第1ブロック
ダイアグラムから選んだブロックと重複するブロックが
第2ブロックダイアグラムにあれば、それら両ブロック
のうちの一方を選択し(S120)、第3ブロックダイ
アグラムに追加する(S122)。この選択は、例えば
乱数を用いて行えばよい。そして、第1ブロックダイア
グラム内に未処理のブロックがあるか否かを判定し(S
124)、未処理ブロックがあればそれを選んでステッ
プS118に戻る。
【0084】第1ブロックダイアグラムから選んだブロ
ックと重複するブロックが第2ブロックダイアグラムに
なければ、そのブロックを第3ブロックダイアグラムに
追加する(S122)。ステップS124の判定を行
う。
【0085】このような処理により第1ブロックダイア
グラムのすべてのブロックの処理が終わると、次に第2
ブロックダイアグラムから最初(0番目)のブロックを
選ぶ(S126)。そして、そのブロックと重複するブ
ロックが第3ブロックダイアグラム内にあるかどうかを
調べ(S128)、重複するブロックがなければ、その
選んだブロックを第3ブロックダイアグラムに追加する
(S130)。重複するブロックがある場合は、その追
加処理をスキップする。このステップS128〜S13
0の処理を第2ブロックダイアグラムのすべてのブロッ
クについて繰り返す(S132)。
【0086】以上の処理手順により生成される第3ブロ
ックダイアグラムは、第1ブロックダイアグラムと第2
ブロックダイアグラムとの間で重複しないブロックはす
べて含み、重複するブロックについてはいずれか一方を
含んだものとなる。ここで、ブロックは、大規模ニュー
ラルネットワーク内の1つのサブネットワークを記述し
ており、このサブネットワークはその大規模ネットワー
クの適用対象の問題を解決する際の機能の一部を担当す
る。したがって、生成される第3ブロックダイアグラム
は、第1ブロックダイアグラムと第2ブロックダイアグ
ラムとの間で重複する機能を担当するブロックはその一
方のみを備え、重複しない機能を担当するブロックはす
べて備えたものとなる。これは、子である第3ブロック
ダイアグラムが、その親である第1及び第2ブロックダ
イアグラムの両方の機能を継承できることを意味してい
る。
【0087】例えば、この方法では、重複部分の無いブ
ロックダイアグラム同士を入力にした場合には、互いに
干渉することなく単純に足し合わされるため、従来の遺
伝的アルゴリズムとは異なり、互いの性能を損なうこと
なく複合した機能を併せ持つニューラルネットワークの
交叉を実現できる。
【0088】なお、複数の異なるブロックについて、第
1及び第2ブロックダイアグラム間で重複がある場合、
第3ブロックダイアグラムに継承されるブロックの組合
せは多岐にわたる。図10の例では、それぞれについて
乱数で一方を選択しているので、結果として第3ブロッ
クダイアグラムは1つだけ生成されることになるが、こ
の代わりに複数の組合せ、あるいはすべての組合せにつ
いて第3ブロックダイアグラムを生成するようにしても
よい。
【0089】以上、本実施形態の交叉処理について説明
した。この交叉処理により、評価・選別機構26で選別
した大規模ニューラルネットワークの中から2つを選択
するすべての組合せについて、次の世代の大規模ニュー
ラルネットワークを規定する第3ブロックダイアグラム
が生成できる。
【0090】次に図11を参照して、上記交叉処理によ
って得られた第3ブロックダイアグラムに対して施す突
然変異混入処理の手順を説明する。
【0091】この手順では、処理対象とするブロックダ
イアグラムの最初のブロックを選択する(S140)。
そして選択したブロックの中で最初の層(layer)を選
択肢(S142)、選択した層の中で最初のNeuronType
(同一種別のニューロンの集合を表す)を選択する(S
144)。このようにNeuronTypeを選択すると、次にそ
のNeuronTypeのパラメータリストを取得する(S14
6)。例えば図8の例では、最初のブロック「Test1」
の最初の層「layer1」の最初のNeuronTypeは、“neuron
type excitatory=[neurons=5;....]”と記述されている
ものであり、この場合のパラメータリストは{}内の
“neurons=5;....axonout test2=5;”の記述である。す
なわち“neurons=5”や“forward=5”等が個々のパラメ
ータである。
【0092】次に、パラメータリストの最初のパラメー
タから順に1つずつパラメータを選び、ステップS15
0及びS152の処理を行う。すなわち、まずステップ
S150では所定の確率分布で乱数を発生し、この乱数
の値が、その確率分布において指定確率(上限値)以下
に該当する値であるかどうかを判定する。発生した乱数
が指定確率以下に該当する値であれば、そのパラメータ
の値を突然変異の対象として選び、ステップS152に
てパラメータ値の変更処理を行う。一方、乱数値が指定
確率以下の範囲に属さない場合は、ステップS152を
スキップする。このステップS150の判定処理は、突
然変異はある確率以下でしか起こらないという遺伝メカ
ニズムを模擬するためのものである。
【0093】ステップS152でのパラメータ値の変更
処理では、突然変異対象のパラメータの値を、予め指定
した範囲内で、予め指定した確率分布に従って変更す
る。この処理としては、例えば、次の式に従って、元の
パラメータ値pから、変更結果としての新たなパラメー
タ値p’を求める。
【0094】
【数1】 p'=(1+r*random.nextGaussian())*p ここで、randomはjava.utilパッケージのRandomクラス
のインスタンスである。nextGaussian()はRandomクラス
に用意されたメソッドの一種であり、平均値0.0、標準
偏差1.0の正規分布の乱数を発生する。また係数rはパ
ラメータ値の変動幅を規定する、予め定めた値である。
この計算では、パラメータ値を正規分布に従って変動さ
せるので、自然に近い変異を実現することができる。ま
た、パラメータの値を変更できる範囲は、パラメータの
種類(ニューロン数や順方向接続数など)によって異な
るが、この計算処理では、元のパラメータ値pを基準に
変更結果を計算しているので、種類の異なるパラメータ
の変異を同じ計算処理で取り扱うことができる。また、
係数rの値を適切に選んでおくことで、パラメータ値が
符号反転したり無意味な値になったりすることが回避で
きる。
【0095】このようなパラメータ値の変更処理をパラ
メータリストにあるすべてのパラメータについて繰り返
す(S154)。パラメータリストのすべてのパラメー
タについて変更処理が終わると、次の未処理のNeuronTy
peを選んでステップS146〜S154の処理を行い、
これを1つの層のすべてのNeuronTypeについて繰り返す
(S156)。1つの層のすべてのNeuronTypeについて
以上の処理が終わると、次の未処理の層を選んでステッ
プS144〜S156の処理を行い、これをブロック内
のすべての層について繰り返す(S158)。1つのブ
ロックのすべての層について以上の処理が終わると、次
の未処理のブロックを選んでステップS142〜S15
8の処理を行い、これをブロックダイアグラム内のすべ
てのブロックについて繰り返す(S160)。以上によ
り、第3ブロックダイアグラムに対して突然変異成分を
加えることができる。
【0096】以上の突然変異混入処理は1つのブロック
ダイアグラムに対するものである。これを、交叉処理で
得られた第3ブロックダイアグラム群のすべて又は一部
に施す。
【0097】以上に説明した図12の手順は、NeuronTy
peクラスのオブジェクトが個々のニューロンの特性や接
続分布に関する情報のほとんどを持っている図8のよう
なブロックダイアグラム例に対応するものである。Neur
onTypeクラス以外(例えばNeuronクラスなど)にもニュ
ーロン特性や接続分布に関する情報が含まれる場合は、
それら各クラスのレベルでも突然変異を混入させるよう
にすることもできる。
【0098】この他の交叉・突然変異混入の実現例とし
ては、ブロックダイアグラムを記述したファイルそのも
のを遺伝子とみなし、そのファイルを所定単位(バイト
単位もしくは行単位程度)に区切ったときの個々のデー
タ塊を遺伝単位とみなして、従来の遺伝的アルゴリズム
手法で交叉・突然変異混入を行う方法もある。この方法
では組み合わせの自由度は格段に高くなり、幅が広くな
る一方、交叉により機能を損ねたり失われたりする可能
性が格段に高くなる。
【0099】以上の例では、1つの子世代のブロックダ
イアグラムを生成するのに2つの親世代のブロックダイ
アグラムを合成したが、3以上のブロックダイアグラム
を合成するようにしてもよい。
【0100】このように、交叉・突然変異混入機構27
によれば、交叉により親世代の複数の優良な大規模ニュ
ーラルネットワークの機能を併せ持つ子世代を表現し得
る子世代のブロックダイアグラムを生成できる。更に、
その子世代のブロックダイアグラムに突然変異を加える
ことで局所解に陥ることを避けることができる。このよ
うにして遺伝的アルゴリズムの手法で求めた子世代のブ
ロックダイアグラム群を新たな親世代として同様の処理
を繰り返せば、更に多くの機能を備えたニューラルネッ
トワークを記述できるブロックダイアグラムを生成でき
る。
【0101】以上説明した実施形態によれば、多様な問
題・目的の対応する多数のブロックダイアグラム群を最
初に用意しておけば、これら多数の問題・目的に対して
適用可能な大規模ニューラルネットワークを機械生成す
ることができる。
【0102】以上説明したように、本実施形態では、大
規模ニューラルネットワークをそれぞれ個別の小機能を
担当するブロック(サブネットワーク)から構成した。
ブロック化することにより、ニューロン同士が完全相互
接続ではなく、主な接続相手が同一ブロック内のニュー
ロンに限定されるため、結線(接続)の総数を減らすこ
とができることができ、構築の手間のみならず、演算実
行時の演算処理量を減すことも可能になる。
【0103】また、本実施形態では、ニューロンの種類
を複数用意し、生体脳の様に各ブロック毎に構成と特性
とを指定できるようにし、機能単位でネットワークの構
成を変えられるようにしたので、ネットワーク設計にか
かる労力を減らすことができ、少ないパラメータ指定で
多くのバリエーションのニューラルネットワークを構成
できる。また、各ブロック間を接続して相互作用させる
ことにより全体として複雑な機能を実現できる。
【0104】また、本実施形態ではブロックダイアグラ
ムにて、各ブロック毎に、ブロックに属するニューロン
の種類やそのシナプスの接続分布とを指定し、その指定
にしたがって、各ニューロンの配置とそれらを結ぶネッ
トワークを機械生成できるので、ネットワーク設計にか
かるコストを大幅に削減できる。
【0105】また本実施形態では、そのニューラルネッ
トワークのブロック構造を規定するブロックダイアグラ
ムを遺伝子、個々のブロックを遺伝単位とみなして遺伝
的アルゴリズムを適用することにより、ネットワーク構
築ためのパラメータ探索の手間と時間を格段に削減する
ことができるようになる。
【0106】本実施形態では、大規模ニューラルネット
ワークそのものではなく、ブロックダイアグラムを交叉
・突然変異させるため、ニューラルネットワークの規模
の増減、ニューラルネットワーク構成の大幅な変化、学
習アルゴリズムや学習パラメータなどの本質的な変化、
を容易に起こすことができる。このため、ニューロン数
・結合数に比べて格段に少ないパラメータの組み合わせ
で、ニューラルネットワークの本質的な組み合わせを再
現できることになり、結果としてより大規模なニューラ
ルネットワークに対して遺伝的アルゴリズムを効率良く
適用できることになる。
【0107】本実施形態では、従来方法と比べて組み合
わせの総数を減らすことができることができるため、最
適化の効率を向上させることができ、ひいては演算処理
量を減らし、情報処理時間を短縮させ、最適化にかかる
時間を劇的に短縮できる効果もある。例えば、一つの層
(Layer)の指定でK個のパラメータを持つニューロンを
M個配置し、各ニューロンからN個のコネクションを生成
する場合を想定すると、全ニューラルネットワークを遺
伝的アルゴリズムで交叉させる従来の方法では組み合わ
せのオーダーは最大O(2(K*M*N))と膨大なものにな
る。これに対し本実施形態の方式ではO(2(K+2))のオ
ーダーで済む。これはMとNがニューロンの持つパラメー
タの一つと見なせるからである。組み合わせの数(母数)
が多いほど、性能改善に結びつく交叉になる確率が低く
なり、最適値(あるいは極小値)へ収束するまでの交叉必
要回数が多くなる、つまり収束までのコストが高くなる
ことになる。
【0108】また従来方法では各シナプスの重みも遺伝
的アルゴリズムで設定あるいは初期値を決めていたた
め、ニューラルネットワークが構築されたばかりの初期
状態からある程度の機能を備えさせることができたが、
本実施形態ははシナプス接続の重みの初期値に乱数の要
素が多く入ってくるため、初期状態では必ずしも個々の
ブロックに機能がそなわっているわけではなく、ネット
ワーク構築後の学習によって機能を獲得する必要があ
る。このことは、学習というステップが従来方法より増
えることを意味するが、逆の観点から見れば本実施形態
は後天的に環境に合わせることができるという意味で柔
軟性が高く応用範囲の広いニューラルネットワークがで
きるというメリットがある。
【0109】さらに、本実施形態によれば、ニューラル
ネットワーク構築にかかる労力とコストと時間を減らす
ことができるので、本来の目的である「ニューラルネッ
トワークの機能」の設計/実現に注力できるようにな
る。また、従来より少ない手間でより大規模なニューラ
ルネットワークが構築できるようになるため、結果とし
てより高機能なニューラルネットワークを構築が可能に
なる。
【0110】また本実施形態では、異なる問題解決に最
適化された異なるニューラルネットワーク構成を両親と
して、その各々の特徴を保持したまま両者を合成した子
世代のニューラルネットワークを生成できるので、より
進化的にニューラルネットワークの構築ができるように
なる。
【0111】このように、本実施形態は、ニューラルネ
ットワークを生成するための元設計図であるブロックダ
イアグラムを遺伝子とし、その構成要素であるブロック
を遺伝単位として取り扱うことで、大規模ニューラルネ
ットワークの改良・進化に遺伝的アルゴリズムの様々な
手法が適用可能である。
【0112】なお、以上に説明した本実施形態のニュー
ラルネットワーク処理装置は、典型的には、図1及び図
2を用いて説明したように、コンピュータシステムに
て、上記の各機能を示すプログラムを実行することによ
りソフトウエア的に実現することができる。
【図面の簡単な説明】
【図1】 実施形態の装置のハードウェア構成の一例を
示す図である。
【図2】 実施形態の装置の概略的なソフトウエア構成
を示す図である。
【図3】 大規模ニューラルネットワークのブロック構
成の一例を示す図である。
【図4】 ブロックの内部構造の概念例を示す図であ
る。
【図5】 ニューロンから他のニューロンへの接続分布
の一例を説明するための図である。
【図6】 実施形態における処理全体の流れを示すフロ
ーチャートである。
【図7】 ブロックダイアグラムデータの仕様を示す図
である。
【図8】 ブロックダイアグラムデータの記述例を示す
図である。
【図9】 演算・学習機構によるニューラルネットワー
クに対する学習処理を示すフローチャートである。
【図10】 交叉・突然変異混入機構によるブロックダ
イアグラムの交叉処理の手順を示すフローチャートであ
る。
【図11】 交叉・突然変異混入機構による突然変異混
入処理の手順を示すフローチャートである。
【符号の説明】
11 記憶装置、12 演算装置、13 入力装置、1
4 出力装置、15計算機、16 ニューラルネットワ
ーク演算補助装置、21 ブロックダイアグラムデー
タ、22 読込機構、23 機械生成機構、24 演算
・学習機構、25 学習データ、26 評価・選別機
構、27 交叉・突然変異混入機構。

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 複数のニューラルネットワーク構成情報
    を保持する構成情報保持手段であって、各ニューラルネ
    ットワーク構成情報は、ニューラルネットワークを構成
    する各サブネットワークごとに、そのサブネットワーク
    の内部構造及びそのサブネットワークと他のサブネット
    ワークとの相互接続関係を表すサブネットワーク情報を
    含む、構成情報保持手段と、 前記ニューラルネットワーク構成情報に基づき、各サブ
    ネットワーク内のニューロン配置及びニューロン間接続
    と、各サブネットワーク間の接続とを乱数を用いて決定
    することによりニューラルネットワークを機械生成し、
    生成したニューラルネットワークを予め用意された学習
    データを用いて学習させるニューラルネットワーク生成
    手段と、 前記各ニューラルネットワーク構成情報に基づき前記ニ
    ューラルネットワーク生成手段で生成し学習させたニュ
    ーラルネットワークを評価し、その評価結果が所定の選
    別基準を満足するものを選別する評価・選別手段と、 前記評価・選別手段で選別された各ニューラルネットワ
    ークに対応する各ニューラルネットワーク構成情報をそ
    れぞれ遺伝子として遺伝的アルゴリズムを適用すること
    で、次世代のニューラルネットワーク構成情報を生成す
    る構成情報進化手段と、 を備え、前記構成情報進化手段により生成した次世代の
    ニューラルネットワーク構成情報に基づきニューラルネ
    ットワークを生成することを可能としたニューラルネッ
    トワーク処理装置。
  2. 【請求項2】 前記構成情報進化手段は、前記ニューラ
    ルネットワーク構成情報に含まれる前記サブネットワー
    ク情報をそれぞれ遺伝単位として遺伝的アルゴリズムを
    適用することを特徴とする請求項1記載のニューラルネ
    ットワーク処理装置。
  3. 【請求項3】 前記構成情報進化手段は、複数のニュー
    ラルネットワーク構成情報の間で重複するサブネットワ
    ーク情報についてはそのうちの1つを選び、重複しない
    サブネットワークについてはそのすべてを選び、それら
    選んだサブネットワーク情報をマージすることで、それ
    ら複数のニューラルネットワーク構成情報を合成した次
    世代のニューラルネットワーク構成情報を生成する、こ
    とを特徴とする請求項2記載のニューラルネットワーク
    処理装置。
  4. 【請求項4】 前記構成情報進化手段は、前記複数のニ
    ューラルネットワーク構成情報を合成した次世代のニュ
    ーラルネットワーク構成情報の各サブネットワーク情報
    に対して突然変異を混入させる突然変異機能を備えるこ
    とを特徴とする請求項3記載のニューラルネットワーク
    処理装置。
  5. 【請求項5】 前記ニューラルネットワーク構成情報に
    は、各サブネットワークごとに個別に学習則を設定する
    ことができ、 前記ニューラルネットワーク生成手段は、機械生成した
    ニューラルネットワークを学習させるにあたり、対応す
    るニューラルネットワーク構成情報に示された各サブネ
    ットワークごとの学習則の設定に従って、各サブネット
    ワークごとに個別の学習則を適用可能である、 ことを特徴とする請求項1〜4のいずれか1項に記載の
    ニューラルネットワーク処理装置。
  6. 【請求項6】 コンピュータシステムを請求項1記載の
    ニューラルネットワーク処理装置として機能させるため
    のプログラム。
JP2002122806A 2002-04-24 2002-04-24 ニューラルネットワーク処理装置 Pending JP2003317073A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002122806A JP2003317073A (ja) 2002-04-24 2002-04-24 ニューラルネットワーク処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002122806A JP2003317073A (ja) 2002-04-24 2002-04-24 ニューラルネットワーク処理装置

Publications (1)

Publication Number Publication Date
JP2003317073A true JP2003317073A (ja) 2003-11-07

Family

ID=29538321

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002122806A Pending JP2003317073A (ja) 2002-04-24 2002-04-24 ニューラルネットワーク処理装置

Country Status (1)

Country Link
JP (1) JP2003317073A (ja)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011058621A1 (ja) 2009-11-10 2011-05-19 Yoshinobu Masayuki 最適手法探索方法及び最適手法探索システム
JP5937284B2 (ja) * 2014-02-10 2016-06-22 三菱電機株式会社 階層型ニューラルネットワーク装置、判別器学習方法および判別方法
JP2016173843A (ja) * 2016-05-11 2016-09-29 三菱電機株式会社 処理装置、判別方法およびプログラム
WO2017168922A1 (ja) * 2016-03-31 2017-10-05 ソニー株式会社 情報処理装置、情報処理方法および情報提供方法
KR101855360B1 (ko) * 2017-12-13 2018-05-09 한국과학기술정보연구원 신경망의 학습 최적화를 위한 신경망 구성 방법 및 장치
JP6325762B1 (ja) * 2017-03-15 2018-05-16 楽天株式会社 情報処理装置、情報処理方法、および情報処理プログラム
WO2018131749A1 (ko) * 2017-01-16 2018-07-19 주식회사 더디엔에이시스템 딥 러닝 기반의 자가 적응 학습 엔진 모듈
WO2018135696A1 (ko) * 2017-01-20 2018-07-26 주식회사 더디엔에이시스템 딥 러닝 기반의 자가 적응 학습 기술을 이용한 인공지능 플랫폼
WO2019064461A1 (ja) * 2017-09-28 2019-04-04 良徳 若林 学習ネットワーク生成装置、及び学習ネットワーク生成プログラム
JP2020135600A (ja) * 2019-02-22 2020-08-31 株式会社豊田中央研究所 情報処理装置、情報処理装置に知的行動を模擬させる方法、コンピュータプログラム、及び、それを記憶した記憶媒体
JP2020528175A (ja) * 2017-06-28 2020-09-17 リキッド バイオサイエンシズ,インコーポレイテッド 反復特徴選択方法
CN111868754A (zh) * 2018-03-23 2020-10-30 索尼公司 信息处理装置和信息处理方法
US11599791B2 (en) 2017-11-22 2023-03-07 Nec Solution Innovators, Ltd. Learning device and learning method, recognition device and recognition method, program, and storage medium
CN116301903A (zh) * 2023-05-11 2023-06-23 杭州登临瀚海科技有限公司 一种编译器、ai网络编译方法、处理方法、执行系统

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8838514B2 (en) 2009-11-10 2014-09-16 Masayuki Yoshinobu Optimal technique search method and system that creates a virtual cell division space to create/form a neural network
WO2011058621A1 (ja) 2009-11-10 2011-05-19 Yoshinobu Masayuki 最適手法探索方法及び最適手法探索システム
JP5937284B2 (ja) * 2014-02-10 2016-06-22 三菱電機株式会社 階層型ニューラルネットワーク装置、判別器学習方法および判別方法
US10796223B2 (en) 2014-02-10 2020-10-06 Mitsubishi Electric Corporation Hierarchical neural network apparatus, classifier learning method and discriminating method
WO2017168922A1 (ja) * 2016-03-31 2017-10-05 ソニー株式会社 情報処理装置、情報処理方法および情報提供方法
JP2016173843A (ja) * 2016-05-11 2016-09-29 三菱電機株式会社 処理装置、判別方法およびプログラム
WO2018131749A1 (ko) * 2017-01-16 2018-07-19 주식회사 더디엔에이시스템 딥 러닝 기반의 자가 적응 학습 엔진 모듈
WO2018135696A1 (ko) * 2017-01-20 2018-07-26 주식회사 더디엔에이시스템 딥 러닝 기반의 자가 적응 학습 기술을 이용한 인공지능 플랫폼
JP6325762B1 (ja) * 2017-03-15 2018-05-16 楽天株式会社 情報処理装置、情報処理方法、および情報処理プログラム
WO2018167885A1 (ja) * 2017-03-15 2018-09-20 楽天株式会社 情報処理装置、情報処理方法、および情報処理プログラム
JP2020528175A (ja) * 2017-06-28 2020-09-17 リキッド バイオサイエンシズ,インコーポレイテッド 反復特徴選択方法
WO2019064461A1 (ja) * 2017-09-28 2019-04-04 良徳 若林 学習ネットワーク生成装置、及び学習ネットワーク生成プログラム
JPWO2019064461A1 (ja) * 2017-09-28 2020-03-26 良徳 若林 学習ネットワーク生成装置、及び学習ネットワーク生成プログラム
US11599791B2 (en) 2017-11-22 2023-03-07 Nec Solution Innovators, Ltd. Learning device and learning method, recognition device and recognition method, program, and storage medium
KR101855360B1 (ko) * 2017-12-13 2018-05-09 한국과학기술정보연구원 신경망의 학습 최적화를 위한 신경망 구성 방법 및 장치
CN111868754A (zh) * 2018-03-23 2020-10-30 索尼公司 信息处理装置和信息处理方法
JP2021192317A (ja) * 2019-02-22 2021-12-16 株式会社豊田中央研究所 情報処理装置、情報処理装置に知的行動を模擬させる方法、コンピュータプログラム、及び、それを記憶した記憶媒体
JP7226497B2 (ja) 2019-02-22 2023-02-21 株式会社豊田中央研究所 情報処理装置、情報処理装置に知的行動を模擬させる方法、コンピュータプログラム、及び、それを記憶した記憶媒体
JP2020135600A (ja) * 2019-02-22 2020-08-31 株式会社豊田中央研究所 情報処理装置、情報処理装置に知的行動を模擬させる方法、コンピュータプログラム、及び、それを記憶した記憶媒体
CN116301903A (zh) * 2023-05-11 2023-06-23 杭州登临瀚海科技有限公司 一种编译器、ai网络编译方法、处理方法、执行系统
CN116301903B (zh) * 2023-05-11 2023-08-08 杭州登临瀚海科技有限公司 一种编译器、ai网络编译方法、处理方法、执行系统

Similar Documents

Publication Publication Date Title
Park et al. Fuzzy polynomial neural networks: hybrid architectures of fuzzy modeling
Fulcher et al. Computational intelligence: a compendium
JP2003317073A (ja) ニューラルネットワーク処理装置
US11514327B2 (en) Apparatus and method for utilizing a parameter genome characterizing neural network connections as a building block to construct a neural network with feedforward and feedback paths
Irmak et al. Training of the feed-forward artificial neural networks using butterfly optimization algorithm
Akerkar et al. Bio-inspired computing: constituents and challenges
JP2001051968A (ja) ニューラルネットワーク構築方法及びニューラルネットワーク処理装置
Gladkov et al. Integrated model for constructing evolving multi-agent subsystems
Kimura et al. Evolving soft robots to execute multiple tasks with combined-cppn-neat
Azzini et al. A new genetic approach for neural network design and optimization
Jain et al. Practical applications of computational intelligence techniques
Semenkin et al. Integration of Intelligent Information Technologies Ensembles with Self-Configuring Genetic Programming Algorithm
Teuscher Turing’s connectionism
Shah Nurturing promotes the evolution of learning in changing environments
Bai et al. A selective ensemble classifier using multiobjective optimization based extreme learning machine algorithm
Jung et al. The automated design of artificial neural networks using evolutionary computation
JP2002251601A (ja) ニューラルネットワーク処理装置
Huynh et al. A unified design for the membership functions in genetic fuzzy systems
Landassuri Moreno Evolution of modular neural networks
Tsokov et al. A Novel Biologically Inspired Developmental Indirect Encoding for the Evolution of Neural Network Controllers for Autonomous Agents
Karray Soft computing techniques for intelligent machines
Rocha From artificial life to semiotic agent models
Showalter et al. Evolutionary Inherited Neuromodulated Neurocontrollers with Objective Weighted Ranking
Colucci et al. Learning to Walk-Reward relevance within an enhanced Neuroevolution approach
Zhu et al. Deep Structure Optimization for Incremental Hierarchical Fuzzy Systems Using Improved Differential Evolution Algorithm.