(57)【特許請求の範囲】
【請求項１】
教師信号出力エレメント数と同じ出力層ユニット数を有する完全分布型出力形式多層ニューラルネットワーク手段（１４）が、複数の学習入力データ集合と、教師信号の出力エレメントによって表わしうる全ての状態に各々異なるカテゴリ全てを割当てた完全分布型出力形式２値教師信号とを用いて初期学習処理（１０１）し、
指定された初期学習最大回数以内に収束すると複数のテスト入力データ集合に対する汎化能力を求める第１のテスト処理（１０６）を実施し、
引き続き、収束後に学習を続ける過学習処理（１０８）と、指定された過学習回数にて前記テスト入力データ集合に対する汎化能力を求める第２のテスト処理（１１１）とを順次繰り返し実施し、
汎化率増減判定処理（１１５）によって、過学習状態が発生している場合、初期学習判定処理（１０２）によって、或いは前記初期学習最大回数以内に前記多層ニューラルネットワーク手段（１４）が収束しない場合には、中間層ユニット数設定手段が中間層出力ユニット数を増やして、多層ニューラルネットワーク手段（１４）が、再度前記初期学習処理（１０１）を行ない、
収束すれば、前記第１のテスト処理（１０６）を実施した後、前記過学習処理（１０８）及び前記第２のテスト処理（１１１）を順次繰り返し実施し、
最適中間層ユニット数判定手段が、前記過学習状態が発生していない場合には、その時の中間層出力ユニット数を最適中間層ユニット数と設定する、
ことを特徴とした多層ニューラルネットワーク中間層ユニット数最適化方法。
【請求項２】
教師信号出力エレメント数と同じ出力層ユニット数を有する完全分布型出力形式多層ニューラルネットワーク手段（１４）が、複数の学習入力データ集合と、教師信号の出力エレメントによって表わしうる全ての状態に各々異なるカテゴリ全てを割当てた完全分布型出力形式２値教師信号とを用いて初期学習処理（１０１）し、
指定された初期学習最大回数以内に収束すると複数のテスト入力データ集合に対する汎化能力を求める第１のテスト処理（１０６）を実施し、
引き続き、収束後に学習を続ける過学習処理（１０８）と、指定された過学習回数にて前記テスト入力データ集合に対する汎化能力を求める第２のテスト処理（１１１）とを順次繰り返し実施し、
汎化率増減判定処理（１１５）によって、過学習状態が発生していない場合、中間層ユニット数設定手段が中間層出力ユニット数を減じて再度前記初期学習処理（１０１）を行ない、
初期学習判定処理（１０２）によって、収束すれば前記第１のテスト処理（１０６）を実施した後、前記過学習処理（１０８）及び前記第２のテスト処理（１１１）を順次繰り返し実施し、
最適中間層ユニット数判定手段が、過学習状態が発生している場合には、その時に設定されている中間層出力ユニット数を得るために減じた前の中間層出力ユニット数を最適中間層ユニット数と設定する、
ことを特徴とした多層ニューラルネットワーク中間層ユニット数最適化方法。
【請求項３】
複数の学習入力データ集合とカテゴリに対応した完全分布型出力形式学習用教師信号とを記憶した記憶手段３３と、
複数のテスト入力データ集合とカテゴリに対応した完全分布型出力形式テスト用教師信号とを記憶した記憶手段３７と、
教師信号の出力エレメントによって表わしうる全ての状態に各々異なるカテゴリ全てを割当てた前記完全分布型出力形式学習用教師信号と前記学習入力データ集合とを用いて学習させる、前記教師信号出力エレメント数と同一の出力層ユニット数を有する完全分布型出力形式多層ニューラルネットワーク手段１４と、
可変した中間層出力ユニット数を前記完全分布型出力形式多層ニューラルネットワーク手段１４に設定する中間層ユニット数設定手段３１と、
前記完全分布型出力形式多層ニューラルネットワーク手段１４を初期学習させ収束状態を判定する学習状態判定手段３６と、
前記初期学習が収束した時点で、前記テスト入力データ集合に対する汎化能力を求める為のテストを実施し、引き続き過学習と、予め指定された過学習回数で前記テスト入力データ集合に対する汎化能力を求める為のテストとを順次繰り返し実施し、各々の汎化能力を得る汎化率処理手段４０と、
前記得られた汎化能力から過学習状態を検出し、中間層出力ユニット数可変の合否を判定し最適中間層ユニット数を得る最適中間層ユニット数判定手段４１とを少なくとも有することを特徴としたユニット数最適化多層ニューラルネットワーク装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、パターン認識、データマイニング、予測処理、画像処理、情報検索処理や知能処理などの幅広い分野に適用可能なニューラルネットワークにおいて、必要最小限の出力層出力ユニット数を有し過学習状態がない高性能なニューラルネットワーク装置に関するものである。
【０００２】
【従来の技術】
ニューラルネットワークには、文献  麻生英樹著、「ニューラルネットワーク情報処理」、産業図書出版などに示されているように、多層（階層）ニューラルネットワークや相互結合ニューラルネットワークなど種々のニューラルネットワークがある。これらは、目的に応じて選択され、用いられている。特に、学習入力データと教師信号とを用いて学習させた、多層ニューラルネットワークが一般に幅広く実用されている。
【０００３】
ここでは、教師付き学習を行う多層ニューラルネットワークを例にとり、ニューラルネットワークの従来技術の問題点について説明する。また、説明を簡単にする為に、パターン認識などにおいて見られる２値教師信号を用いて学習させ、出力層ユニットからの出力信号を２値化した２値出力信号を送出させることとする。
【０００４】
先ず、２値教師信号を用いた多層ニューラルネットワークの学習処理の構成について説明する。図２は、３層ニューラルネットワーク１の基本構成図を示し、学習処理の構成を示す。Ｎ個のユニットからなる入力層４、Ｐ個の出力ユニットからなる中間層５及びＭ個の出力ユニットからなる出力層６から構成される。
【０００５】
３層ニューラルネットワーク１への入力データＩは、Ｉ１、Ｉ２、．．ＩＮの入力エレメントを持ったベクトルから構成され、入力端子２を介してそれぞれ対応した入力層４のユニットに入力された後、更に中間層５の各ユニット（隠れユニット）にそれぞれ重み付けされ出力される。中間層５では、入力層４の各ユニットからの重み付けされた出力の総和を入力とし、スレショルド値を差し引いた後、シグモイド関数と呼ばれる非線形入出力特性を持った関数を介して出力される。出力層６においても中間層５と同様な入出力処理が行われた後、各出力層ユニットからそれぞれ対応した出力信号を端子９（９１、９２、・・・９Ｍ）を介して送出する。尚、ここでは、中間層及び出力層の各ノードに用意されるバイアス（前記スレショルド値）については、説明を省略する。
【０００６】
出力層ユニットからの出力信号は、２値化スレショルド器１２を介して２値出力信号に変換され、２値出力端子３を介してニューラルネットワーク１の２値出力信号（２値出力エレメント、Ｏ１、Ｏ２、．．ＯＭ）が送出される。３層以上の多層の際にも、各層におけるそれぞれのユニットは、入力側の隣接層の各ユニットの出力信号に重み付けをした後、それらの総和を入力として得、更にその入力からスレショルド値を差し引いた後、シグモイド関数などを介し出力層側の隣接層に出力信号を送出する。
【０００７】
このような多層ニューラルネットワークの代表的学習方法としては、例えば、前記文献にも記載されているようにバック・プロパゲーション・アルゴリズムがある。本アルゴリズムを用いた学習処理では、各結合重み係数に対して乱数などを用いて初期値設定した後、予め用意された教師信号Ｔ（教師信号出力エレメント、Ｔ１、Ｔ２、．．ＴＭ）と、入力層４に端子２を介して入力された予め用意された学習入力データに対する出力層６のユニットの出力端子９からの出力信号との誤差信号を減算器１０を介して求め、結合重み係数制御器７に入力する。
【０００８】
ここで、教師信号Ｔとしては、入力データのカテゴリ分類の際には、一般にＭ者択一型出力形式、即ち教師信号出力エレメントＴｉ、ｉ＝１〜Ｍの内の何れか１つだけが１で、他は全て０の出力形式を持った２値教師信号が多く用いられている。
【０００９】
結合重み係数制御器７では、端子１１を介して入力された各層のユニットからの出力信号と前記誤差信号とを基に出力誤差電力を最小にするように各層間の結合重み係数Ｗ（例えば、Ｗ(1)は入力層と中間層の間の結合重み係数、Ｗ(2)は中間層と出力層間の結合重み係数）の修正値を求め、端子１１を介して３層ニューラルネットワーク１の各結合重み係数を更新することによって学習を行うものである。
【００１０】
この適応制御による結合重み係数の学習をすべての学習入力データ集合に対して繰り返し、平均出力誤差電力があるスレショルド以下となると、収束したと見做す。また、２値教師信号を仮定した場合は、２値化スレショルド器１２を介して２値出力端子３から得られた２値出力信号が２値教師信号と同一になれば正答となる。
【００１１】
ここで、平均誤差電力による収束判定以外に、全ての２値出力信号が正答となった後、出力層６の出力ユニットの出力信号と２値化スレショルドとの差を余裕と定義し、その最小値を最小余裕とし、これが与えられた収束判定スレショルド以上であれば、収束したとみなす方法もある。
【００１２】
Ｍ種類のカテゴリ分類を行う為に複数の学習入力データ集合が夫々のカテゴリに対応づけられ、各カテゴリに対して２値教師信号が割当てられる。ここで、２値教師信号がＭ者択一型出力形式（出力エレメント数Ｍ）で表わされている場合には、出力層６はＭ個のユニットが必要であり、当然Ｍ者択一型出力形式の出力信号を送出することとなる。このＭ者択一型出力形式は、クラス分類やクラスタリング分類する際に出力状態の把握が簡単な為に多くの場合に利用されている。
【００１３】
ここで、Ｍ者択一型出力形式の２値出力信号としては、出力端子３に於て２Ｍの可能な２値出力パターンの組み合わせが存在するにも関らず、この中からＭ個だけの２値出力信号（２値出力エレメントＯ１からＯＭの内何れか一つが１で他は全て０の２値出力信号）しか利用しないこととなる。従って、表わしうる全ての２値出力信号に対する２値出力パターンの利用率はＭ／２Ｍであり、特に、Ｍが大きい場合には非常に小さくなる。このことは、Ｍ者択一型出力形式は、２値出力信号としての利用効率が非常に悪く、ネットワークが冗長な構成となっていることを意味する。
【００１４】
例えば、多層ニューラルネットワーク１の中間層と出力層の間の結合重み係数は、Ｍ個の出力層ユニットとＰ個の中間層ユニットとの全ての結合に対して準備されることから、Ｍ＊Ｐ個となる。ここで、２値出力信号としてはＭ種類しか送出しないことから、Ｍ＊Ｐ個の結合重み係数Ｗ(2)ｉｊ（但し、ｉ＝１〜Ｍ,ｊ＝１〜Ｐ）には、当然冗長なものが多くあり、適応制御に対して自由な振る舞いをする結合重み係数が数多く存在することを意味する。しかしながら、どの結合重み係数が冗長で自由な振る舞いをするかは初期値や学習入力データ集合や教師信号集合などに依存し解らない。従って、出力エレメント数ＭのＭ者択一型出力形式の２値教師信号を学習する際には、冗長な結合重み係数が基本的に存在することとなり、学習処理及び学習後の実行処理の何れの場合にも大幅な演算量となる。
【００１５】
更に、中間層と出力層間に冗長な結合重み係数が多く存在していることは、学習の際のローカルミニマムが多く存在することをも意味する。従って、学習の際に、これらの冗長な結合重み係数の自由な振る舞いによって、ローカルミニマム状態に落ち込み、学習入力データに対して全て正答な２値出力信号が得られない場合や、或いは正答な２値出力信号を得る為の学習速度が非常に遅くなる場合がある。また、一つのカテゴリに対応している複数の学習入力データ集合がお互いに離れて分布している場合は、カテゴリ分離の境界面が複雑となり、正答な２値出力信号を出しにくい。而も、一旦収束した後に、更に学習を続けると、即ち引き続き多くの回数学習が実行された過学習状態ではテスト入力データに対して正答な出力を送出する汎化能力が低下する場合も発生する。この過学習状態は、学習を進めると冗長な結合重み係数の振る舞いによって、次第に学習入力データに対してだけ過剰に最適化が行われていることによる。
【００１６】
当然ながら、学習の際の結合重み係数の初期値依存性も高く、過学習状態を避ける為に、学習をどの時点で終了させるのが最適であるかの判断を明確に行える手段などがなく試行錯誤が行われている。また、中間層ユニット数が必要以上に多い場合には、これらの冗長な結合重み係数が一段と増加することとなり、これらの欠点が著しく助長される。一方、中間層ユニット数が、少ない場合には、収束そのものができなくなるなどの問題がある。
【００１７】
この為、従来技術では、中間層ユニットと出力層ユニット間や入力層ユニットと中間層ユニット間の冗長な結合重み係数を直接取り除く方法、即ち、図２の結合重み係数プルーニング検出器１３に示すように、結合重み係数制御器７から得られた結合重み係数の内、数値の小さい不要な結合重み係数を取り除き、零に固定し、演算を行わないプルーニングと呼ばれる方法が行われている。しかしながら、プルーニングする度ごとにニューラルネットワークの状態が変化することから、何回かの初期状態からの学習を繰り返し、汎化特性評価をする試行錯誤が必要となる。また、最大の汎化能力を与える最適な中間層ユニット数や出力層ユニット数を求める場合には、中間層ユニット数や出力層ユニット数の変化に伴いプルーニング対象の結合重み係数が変化する場合もあり、非常に多くの試行錯誤を必要とし、大規模なニューラルネットワークでは最適構成が難しいなどの欠点が有る。
【００１８】
【発明が解決しようとする課題】
上記の説明の如く、従来技術では、Ｍ者択一型出力形式や不完全分布型出力形式（表わし得る全ての２値パターンが２値教師信号に割当てられない出力形式）の２値教師信号を直接学習入力データ集合に対応づけ、ニューラルネットワークを学習させており、中間層ユニットと出力層ユニット間に冗長な結合重み係数が多く存在し、これらの冗長な結合重み係数を取り除くことが簡単にできない。このことから、学習処理や学習後の実行処理の際に膨大な演算量を必要とするだけでなく、学習の際にローカルミニマム状態に陥りやすく、全て正答な出力信号が得られない場合や正答な出力信号を得る為の収束速度が非常に遅くなる場合などが多く発生し、而も汎化率が劣化する過学習状態が起り易いなどの欠点があった。従って、最適な出力層ユニット数や中間層ユニット数を持つ実用的な大規模なニューラルネットワークの実現が困難であるなどの問題もあった。
【００１９】
本発明の目的は、上記の欠点及び問題点を解決する為に、学習処理に於て所望の２値出力信号を簡単に送出することができ、学習の収束速度も速く、而も過学習状態が発生しにくく高い汎化能力を持ち、且つ回路規模が小さく演算量も非常に少ない最適な中間層ユニット数及び出力層ユニット数を有するニューラルネットワークを実現する為の中間層及び出力層ユニット数最適化方法を提供することにある。
【００２０】
【課題を解決するための手段】
以下に課題を解決する手段を示す。
【００２１】
第１の手段は、教師信号出力エレメント数と同じ出力層ユニット数を有する完全分布型出力形式多層ニューラルネットワーク手段（１４）が、複数の学習入力データ集合と、教師信号の出力エレメントによって表わしうる全ての状態に各々異なるカテゴリ全てを割当てた完全分布型出力形式２値教師信号とを用いて初期学習処理（１０１）し、
指定された初期学習最大回数以内に収束すると複数のテスト入力データ集合に対する汎化能力を求める第１のテスト処理（１０６）を実施し、
引き続き、収束後に学習を続ける過学習処理（１０８）と、指定された過学習回数にて前記テスト入力データ集合に対する汎化能力を求める第２のテスト処理（１１１）とを順次繰り返し実施し、
汎化率増減判定処理（１１５）によって、過学習状態が発生している場合、初期学習判定処理（１０２）によって、或いは前記初期学習最大回数以内に前記多層ニューラルネットワーク手段（１４）が収束しない場合には、中間層ユニット数設定手段が中間層出力ユニット数を増やして、多層ニューラルネットワーク手段（１４）が、再度前記初期学習処理（１０１）を行ない、
収束すれば、前記第１のテスト処理（１０６）を実施した後、前記過学習処理（１０８）及び前記第２のテスト処理（１１１）を順次繰り返し実施し、
最適中間層ユニット数判定手段が、前記過学習状態が発生していない場合には、その時の中間層出力ユニット数を最適中間層ユニット数と設定する、
多層ニューラルネットワーク中間層ユニット数最適化方法によるものである。
【００２２】
第２の手段は、教師信号出力エレメント数と同じ出力層ユニット数を有する完全分布型出力形式多層ニューラルネットワーク手段（１４）が、複数の学習入力データ集合と、教師信号の出力エレメントによって表わしうる全ての状態に各々異なるカテゴリ全てを割当てた完全分布型出力形式２値教師信号とを用いて初期学習処理（１０１）し、
指定された初期学習最大回数以内に収束すると複数のテスト入力データ集合に対する汎化能力を求める第１のテスト処理（１０６）を実施し、
引き続き、収束後に学習を続ける過学習処理（１０８）と、指定された過学習回数にて前記テスト入力データ集合に対する汎化能力を求める第２のテスト処理（１１１）とを順次繰り返し実施し、
汎化率増減判定処理（１１５）によって、過学習状態が発生していない場合、中間層ユニット数設定手段が中間層出力ユニット数を減じて再度前記初期学習処理（１０１）を行ない、
初期学習判定処理（１０２）によって、収束すれば前記第１のテスト処理（１０６）を実施した後、前記過学習処理（１０８）及び前記第２のテスト処理（１１１）を順次繰り返し実施し、
最適中間層ユニット数判定手段が、過学習状態が発生している場合には、その時に設定されている中間層出力ユニット数を得るために減じた前の中間層出力ユニット数を最適中間層ユニット数と設定する、
多層ニューラルネットワーク中間層ユニット数最適化方法によるものである。
【００２３】
第３の手段は、複数の学習入力データ集合とカテゴリに対応した完全分布型出力形式学習用教師信号とを記憶した記憶手段３３と、複数のテスト入力データ集合とカテゴリに対応した完全分布型出力形式テスト用教師信号とを記憶した記憶手段３７と、教師信号の出力エレメントによって表わしうる全ての状態に各々異なるカテゴリ全てを割当てた前記完全分布型出力形式学習用教師信号と前記学習入力データ集合とを用いて学習させる、前記教師信号出力エレメント数と同一の出力層ユニット数を有する完全分布型出力形式多層ニューラルネットワーク手段１４と、可変した中間層出力ユニット数を前記完全分布型出力形式多層ニューラルネットワーク手段１４に設定する中間層ユニット数設定手段３１と、前記完全分布型出力形式多層ニューラルネットワーク手段１４を初期学習させ収束状態を判定する学習状態判定手段３６と、前記初期学習が収束した時点で、前記テスト入力データ集合に対する汎化能力を求める為のテストを実施し、引き続き過学習と、予め指定された過学習回数で前記テスト入力データ集合に対する汎化能力を求める為のテストとを順次繰り返し実施し、各々の汎化能力を得る汎化率処理手段４０と、前記得られた汎化能力から過学習状態を検出し、中間層出力ユニット数可変の合否を判定し最適中間層ユニット数を得る最適中間層ユニット数判定手段４１とを少なくとも有することを特徴としたユニット数最適化多層ニューラルネットワーク装置によるものである。
【００２４】
上記の課題を解決する手段の如く、本発明の多層ニューラルネットワークユニット数最適化方法及び装置は、カテゴリ分類数Ｑに対して必要最小限の出力エレメント数をもつ完全分布型出力形式の２値教師信号を生成し、与えられた中間層ユニット数と、教師信号出力エレメント数と同一の出力層ユニット数とを持った完全分布型出力形式多層ニューラルネットワークを構成し初期学習させ、更に、過学習とテストを繰り返し、テスト入力データに対する汎化率が劣化する過学習状態が殆ど発生しない最適な中間層ユニット数を探索している。この構成の下では、著しく演算量が少なくなる。
【００２５】
また、初期学習や過学習に於ける結合重み係数の適応制御の際に、中間層と出力層間の結合重み係数はお互いに拘束された状態の下で影響しあうことから、自由な振る舞いが無く、学習入力データ集合に対して全て正答の２値出力信号を送出する安定且つ高速の収束が得られ、而も汎化率が劣化する過学習状態が発生しない最適な中間層ユニット数が求められることから、演算量の少ない非常に優れた学習特性及び汎化特性持つ最適なユニット数を有する多層ニューラルネットワーク装置を実現出来る。
【００２６】
【発明の実施の形態】
以下に本発明の多層ニューラルネットワークユニット数最適化方法及び装置の実施形態及びその動作について、詳細に説明する。尚、ここでは、簡単の為に２値教師信号を用い、多層ニューラルネットワークの場合を例にあげ説明する。
【００２７】
（第１の実施形態）
本発明の第１の実施形態として、完全分布型出力形式の２値教師信号に対して、該２値教師信号出力エレメントと同一の出力層ユニット数を持った完全分布型出力形式多層ニューラルネットワークを構成し学習させ、過学習状態が無く最大の汎化率を与える最適中間層ユニット数とその時の学習ずみ結合重み係数を得る為のユニット数最適化ニューラルネットワーク装置４４を図１に示す。
【００２８】
本実施形態は、完全分布型出力形式多層ニューラルネットワーク１４、２値化スレショルド器（２値変換器）１２、学習テスト制御器３０、中間層ユニット数設定器３１、結合重み係数制御器３２、学習入出力データベース３３、入力データ選択器３４、学習用教師信号メモリ３５、学習状態判定器３６、テスト入出力データベース３７、テスト用教師信号メモリ３８、テスト出力比較器３９、汎化率処理器４０、最適中間層ユニット数判定器４１とから構成される。
【００２９】
学習テスト制御器３０は、テスト入力データ集合に対して過学習状態が無く最大の汎化率を与える最適な中間層ユニット数を得る為に、初期学習モード及び過学習モード時の動作制御及びテストモード時の動作制御をそれぞれ行う。初期学習モード及びテストモードの開始時の初期設定、初期学習モード終了制御、過学習モード開始及び停止制御、及びテストモード開始及び終了制御、中間層ユニット数設定器３１へのユニット数更新要求、結合重み係数制御器３２への結合重み係数更新要求などを行う。また、最適中間層ユニット数判定器４１からの学習テスト完了信号を受信すると最適中間層ユニット数が求まったとして、過学習モード及びテストモードの動作制御を完了する。
【００３０】
完全分布型出力形式多層ニューラルネットワーク１４は、入力データ選択器３４を介して入力された入力データに対してその出力層ユニットから完全分布型出力形式の出力信号を２値化スレショルド器１２及び学習状態判定器３６にそれぞれ送出する。
【００３１】
入力データ選択器３４は、初期学習モード及び過学習モードの場合には、学習入出力データベース３３からの学習入力データを、テストモードの場合には、テスト入出力データベース３７からのテスト入力データを選択して、完全分布型出力形式多層ニューラルネットワーク１４にそれぞれ入力する。
【００３２】
学習入出力データベース３３は、学習に必要な学習入力データ集合とそれらに対応した完全分布型出力形式の学習用２値教師信号とを格納している。完全分布型出力形式多層ニューラルネットワーク１４の出力層ユニット数と同じ教師信号出力エレメント数を持ち、その教師信号出力エレメント数で表わし得る全ての状態に異なるカテゴリが割当てられ、各々の２値教師信号に学習入力データ集合が対応付けられている。即ち、学習入力データ集合をそれぞれ対応づけたカテゴリ分類数Ｑ＝２Ｍを設け、Ｍ個の教師信号出力エレメントが表わし得る全ての状態に異なるカテゴリ全てを割当てた完全分布型出力形式２値教師信号を構成し学習に用いる。
【００３３】
例えば、カテゴリ分類数Ｑ＝１６の場合には、完全分布型出力形式の２値教師信号はＭ＝４個の出力エレメントを持ち、而も１６個の表わし得る全ての状態に異なるカテゴリ全てが割当てられている。学習テスト制御器３０から初期学習モード或いは過学習モード指定が入力されると、学習入力データ集合を入力データ選択器３４へ、また完全分布型出力形式の学習用２値教師信号を学習用教師信号メモリ３５へ送出する。学習用教師信号メモリ３５は、学習入力データ集合に対応した完全分布型出力形式の学習用２値教師信号を保持し、学習状態判定器３６に送出する。
【００３４】
テスト入出力データベース３７は、テスト入力データ集合とそれらに対応した完全分布型出力形式のテスト用２値教師信号とを格納している。当然のことながら、このテスト用２値教師信号は学習用２値教師信号と同一の出力エレメント数から構成されている。初期学習モードが終了した後、或いは過学習モードが一旦停止した後、完全分布型出力形式多層ニューラルネットワーク１４の汎化特性を評価する為に、学習テスト制御器３０からテストモード設定が入力され、テスト入力データ集合を入力データ選択器３４へ、完全分布型出力形式のテスト用２値教師信号をテスト用教師信号メモリ３８へ送出する。テスト用教師信号メモリ３８は、全てのテスト入力データ集合に対応した完全分布型出力形式のテスト用２値教師信号を保持し、テスト出力比較器３６に送出する。
【００３５】
２値化スレショルド器１２は、図２と同様に、完全分布型出力形式多層ニューラルネットワーク１４の出力層ユニットの出力信号を２値出力信号に変換する。学習状態判定器３６は、初期学習モードに於て、多層ニューラルネットワーク１４の出力信号と学習用教師信号メモリ３５からの完全分布型出力形式２値教師信号との誤差を求め、また２値化スレショルド器１２からの２値出力信号と２値教師信号とを比較し、正誤の判定を行い、全ての入力された学習入力データ集合に対して正答で、而も収束条件を満たすと収束したと見做す。そして、初期学習モードの終了信号を学習テスト制御器３０に送出する。
【００３６】
結合重み係数制御器３２は、完全分布型出力形式多層ニューラルネットワーク１４の各層間の結合重み係数を学習状態判定器３６に於て求められた誤差に従って適応制御し、更新の為に完全分布型出力形式多層ニューラルネットワーク１４に設定する。初期学習モード或いは過学習モードが終了するとその時の結合重み係数を最適中間層ユニット数判定器４１に送出する。また、与えられた初期学習最大回数を越えても収束条件を満足しない場合には、中間層ユニット数を増加し、再度初期学習を実行するよう学習テスト制御器３０に要求する。また、過学習が指定された過学習回数になると、過学習モードを停止し、テストモードを実行するよう学習テスト制御器３０に要求する。その後、学習テスト制御器３０から過学習モード開始要求がくると過学習を開始する。
【００３７】
中間層ユニット数設定器３１は、学習テスト制御器３０からの要求により、初期学習モード開始時に完全分布型出力形式多層ニューラルネットワーク１４の中間層ユニット数を更新し、設定する。また、その時の中間層ユニット数を最適中間層ユニット数判定器４１に送出する。テスト出力比較器３９は、テストモードに於て、全てのテスト入力データ集合に対応した２値スレショルド器１２からの２値出力信号とテスト用教師信号メモリ３８からのテスト用２値教師信号とを比較し、その比較結果を汎化率処理器４０に送出する。汎化率処理器４０は、テスト出力比較器３９からの比較結果を元に全てのテスト入力データ集合に対する汎化率を求め、それを最適中間層ユニット数判定器４１に送出する。なお、汎化率とは、テストデータに対して正しい出力を出す割合をいう。
【００３８】
最適中間層ユニット数判定器４１は、汎化率処理器４０からの汎化率とその時の中間層ユニット数と初期学習モード終了時及び過学習モード停止時の結合重み係数とを保持し、初期学習の収束後、及び規定の過学習回数終了毎にテストモードに切替え汎化率を計算する。全てのテスト入力データ集合に対する汎化率がそれ以前の汎化率の最大値からあるスレショルド値以上劣化していない場合には、最適な中間層ユニット数が得られたとして、学習テストモード完了信号を学習テスト制御器３０に送出する。また、汎化率が最大となる結合重み係数とその時の中間層ユニット数とをそれぞれ端子４２と４３から送出する。
【００３９】
一方、前記スレショルド値以上劣化している場合には、過学習状態が発生しているとみなし、学習テスト制御器３０に中間層ユニット数の増加更新と新たな初期学習を要求する。
【００４０】
前記完全分布型出力形式多層ニューラルネットワーク１４は、出力層の出力ユニットとして、完全分布型出力形式の出力エレメント数と同じ個数、Ｍ個のユニットを持つ。初期学習モード及び過学習モードでは完全分布型出力形式学習用２値教師信号と端子２の前記学習入力データ集合とを用いてバックプロパゲーション法或いは誤差摂動型バックプロパゲーション法などにより学習される。また、テストモードでは、出力層ユニットからテスト入力データ集合に対する出力信号を送出する。
【００４１】
完全分布型出力形式多層ニューラルネットワーク１４の出力層ユニット数Ｍ＝４個であり、中間層と出力層間には冗長な結合重み係数は無くなり、最適な構造となる。
【００４２】
次にこれらの一連の動作を説明する。先ず、学習テスト制御器３０が初期学習モードとなり、中間層ユニット数設定器３１を介して、中間層ユニット数初期値を完全分布型出力形式多層ニューラルネットワーク１４に設定する。その後、初期学習を実行する為に、学習テスト制御器３０の制御の下に、完全分布型出力形式多層ニューラルネットワーク１４、学習状態判定器３６、結合重み係数制御器３２、学習入出力データベース３３、入力データ選択器３４、学習用教師信号メモリ３５をそれぞれを初期設定する。また、入力データ選択器３４を学習入出力データベース３３に接続し全ての学習入力データ集合を端子２を介して完全分布型出力形式多層ニューラルネットワーク１４に入力すると共に、対応した完全分布型出力形式の学習用２値教師信号を学習用教師信号メモリ３５に格納する。
【００４３】
ここで、中間層ユニット数設定器３１では、例えば小さめの中間層ユニット数を初期設定して、初期学習を実行する。初期学習処理の結果、学習状態判定器３６に於て、全ての学習入力データ集合に対応した２値化スレショルド器１２からの２値出力信号が完全分布型出力形式の学習用２値教師信号と比較し、全て正答な２値出力信号となり、出力層ユニットからの出力信号が与えられた収束条件を満足しておれば、学習テスト制御器３０へこの状態を知らせ、初期学習モードを終了する。
【００４４】
誤差摂動型バックプロパゲーション法などを用いて学習させた場合には、シミュレーションによれば、中間層と出力層間には冗長な結合重み係数がないことから完全分布型出力形式多層ニューラルネットワーク１４をグローバルミニマム状態に簡単に高速収束させることができ、而も前記学習入力データ集合に対して全て正答な２値出力信号を端子３から得ることが出来る。
【００４５】
その後、全てのテスト入力データ集合に対する初期学習済みの完全分布型出力形式多層ニューラルネットワーク１４の汎化能力テストを行う為に、学習テスト制御器３０をテストモードとし、テスト入出力データベース３７、入力データ選択器３４、テスト用教師信号メモリ３８、最適中間層ユニット数判定器４１とをそれぞれ設定する。
【００４６】
その後、入力データ選択器３４を介して全てのテスト入力データ集合を学習済みの完全分布型出力形式多層ニューラルネットワーク１４に入力し、テスト用教師信号メモリ３８に完全分布型出力形式テスト用教師信号を格納し、２値化スレショルド器１２からのテスト入力データに対する２値出力信号とテスト用教師信号メモリ３８からの完全分布型出力形式テスト用教師信号とをテスト出力比較器３９にて比較し、一致或いは不一致を汎化率処理器４０に送出する。汎化率処理器４０では、全てのテスト入力データ集合に対する汎化特性、例えば汎化率Ｇ（1）を求め、それを最適中間層ユニット数判定器４１に送出する。最適中間層ユニット数判定器４１では、この場合の初期学習済みの結合重み係数と設定されている中間層ユニット数とを汎化率と共に保存し、テストモードの終了を学習テスト制御器３０に知らせる。その後、学習テスト制御器３０からの制御の下に過学習モードを開始し、指定された過学習回数ほどそのまま学習を実行した後、過学習モードを一旦停止し、テストモードを開始し、再度テストを実施する。
【００４７】
ここで、指定された回数Kｌｉｍｉｔほどテストモードが実行されると、 最適中間層ユニット数判定器４１に於て、汎化率が劣化する過学習状態の発生の検出として、例えば、（１）式に示すK回目の汎化率計算に於ける汎化率変動Ｇｄ（K）を、
Ｇｄ（K）＝Gmax−Ｇ（K）                                （１）
求める。但し、Kは汎化率計算回数を示し、K＝Kｇｍａｘ＋１〜Kｌｉｍｉｔ、Kｇｍａｘは汎化率が最大Gmaxとなる汎化率計算回数とする。
【００４８】
ここで、上記の範囲の何れかのKに対して、
Ｇｄ（K）＜γ                                            （２）
が成立しなければ、中間層ユニット数不足による過学習状態が発生していると判定する。ここで、γは予め与えられた規定値である。この場合には、中間層ユニット数増加要求を送出し、中間層ユニット数設定器３１に於て指定されたΔほど増やし、完全分布型出力形式多層ニューラルネットワーク１４に設定し、新たな初期状態から再度初期学習処理を行う。設定された中間層ユニット数に対してこのような初期学習処理を経た後に、テストモードと過学習モードの処理を繰り返し、K＝Kｇｍａｘ＋１〜Kｌｉｍｉｔの全てのKに対して（２）式が成立すると、過学習状態による汎化率劣化がなくなった、即ち過学習状態の発生がないと判定して、汎化率が最大（Gmax）となる中間層ユニット数を最適中間層ユニット数として端子４２から送出する。また、その時の結合重み係数を端子４３から送出する。
【００４９】
本実施形態の如く、完全分布型出力形式教師信号を用いて完全分布型出力形式多層ニューラルネットワーク１４を学習させ、過学習状態のない最適な中間層ユニット数を探索することにより、中間層ユニット数及び出力層ユニット数を簡単に最適化でき、その結果、結合重み係数が大幅に削減された最適ユニット数の多層ニューラルネットワーク装置を実現できる。
【００５０】
一方、従来技術では、１６者択一型出力形式の２値教師信号を直接用いており、多層ニューラルネットワークを学習させて所望の１６者択一型出力形式の２値出力信号を得る場合には、Ｑ＝１６個の出力層ユニットを必要とし、冗長な結合重み係数が非常に多く存在し、汎化率が劣化する過学習状態が発生する。この為、一旦学習させた後に、これらの出力層ユニットに接続された結合重み係数をプルーニングした後、再学習させる必要があり、演算量が非常に膨大となる。また、どの程度の値の結合重み係数を削れば、過学習状態が発生しなくなるかは、試行錯誤が必要である。更に、中間層ユニット数が変わると、削除すべき荷重重み係数も変化する場合があり、最適化の処理が複雑となる。
【００５１】
尚、上記の如く、中間層ユニット数及び出力層ユニット数に於て最適構成した完全分布型出力形式多層ニューラルネットワーク１４を学習させた後、出力層ユニットの出力信号から２値化スレショルド器１２を介して２値出力信号を得、新たな出力形式変換器を介して、一時的カテゴリに対応した２値出力信号を当初の所望の２値出力信号に変換することにより、択一型出力形式や不完全分布型出力形式の所望の２値出力信号を最終的に得ることも簡単にできる。
【００５２】
次に、上記に説明したユニット数最適化ニューラルネットワーク装置４４と同様な最適化処理を行う完全分布型出力形式学習用及びテスト用２値教師信号を用いた中間層ユニット数最適化処理フローチャートを図３に示す。
【００５３】
完全分布型出力形式多層ニューラルネットワーク１４のパラメータ初期設定処理１００に於て、完全分布型出力形式多層ニューラルネットワーク１４に対して中間層ユニット数初期値と各結合重み係数とバイアスなどの初期値を、また学習に必要なパラメータをそれぞれ設定する。次に、全ての学習入力データ集合と完全分布型出力形式の学習用２値教師信号とを用いて、完全分布型出力形式多層ニューラルネットワーク１４の結合重み係数の初期学習処理１０１を実行する。即ち、全ての学習入力データ集合に対する出力層ユニットからの出力信号の対応した２値教師信号からの誤差信号を用いて、バックプロパゲーションアルゴリズムなどにより新たな結合重み係数を求め、完全分布型出力形式多層ニューラルネットワーク１４に設定する。
【００５４】
初期学習状態判定処理１０２においては、完全分布型出力形式の２値教師信号と出力層ユニットからの出力信号を２値化した２値出力信号とを比較し、全ての２値出力信号が正答となり、而も出力ユニットに於ける最大誤差が予め与えられた収束判定スレショルド以下になれば、収束したとみなして、初期学習を終了し、その時の結合重み係数保存処理とテスト入力データ汎化率計算保存処理１０６を行う。収束していない場合には、初期学習回数判定処理１０３に於て、初期学習回数が予め指定した初期学習最大回数を越えているかどうかを判定する。初期学習回数が初期学習最大回数未満ならば、学習回数カウンタ処理１０４にて、学習回数カウンタを１増加し、完全分布型出力形式多層ニューラルネットワークの結合重み係数初期学習処理１０１へ戻り、学習を行う。初期学習最大回数以上ならば、中間層ユニット数が不足しており収束できないと判断して、中間層ユニット数カウンタ処理１０５へ移り、中間層ユニット数を指定された数ほど増加させた後、中間層ユニット数判定処理１１７に於て、指定された最大中間層ユニット数Pｌｉｍｉｔを越えておれば、必要なエラーメッセージを送出して停止する。それ以下ならば、改めて最初から初期学習をし直す為に、多層ニューラルネットワークパラメータ初期設定処理１００へ戻る。
【００５５】
初期学習判定処理１０２にて初期学習が収束したと判断されると、その時の結合重み係数保存処理と全てのテスト入力データ集合に対する汎化率計算保存処理１０６を行い、その後、過学習に於ける学習回数を計数する為に過学習回数カウンタと汎化率計算回数を計数する汎化率計算回数カウンタとの初期化処理１０７を行う。更に、過学習に於ける結合重み係数学習処理１０８を実行し、過学習回数判定処理１０９にて過学習回数が指定された過学習回数未満かを判定する。過学習回数未満の場合には、過学習回数カウンタ処理１１０にてカウンタを１増加させて結合重み係数学習処理１０８へ戻り、過学習を継続し結合重み係数の更新を行う。
【００５６】
指定された過学習回数となれば、その時の結合重み係数保存処理及びテスト入力データ汎化率計算保存処理１１１を実行し、汎化率計算最大回数判定処理１１２にて、汎化率計算回数が汎化率計算最大回数Kｌｉｍｉｔ未満ならば、汎化率計算回数カウンタ処理１１３にて、汎化率計算回数カウンタを１増加させ、過学習回数カウンタ処理１１０を経た後、再度結合重み係数学習処理１０８を指定された過学習回数ほど実行する。汎化率計算最大回数判定処理１１２に於て汎化率計算回数が汎化率計算最大回数Kｌｉｍｉｔとなると、最大汎化率Gmax検出及びその汎化率計算回数Kｇｍａｘ検出処理１１４にて、最大汎化率Gmaxとその時の汎化率計算回数Kｇｍａｘを検出する。
【００５７】
次に、汎化率増減判定処理１１５にて、過学習状態の発生を検出する為に、汎化率が最大となる汎化率計算回数Kｇｍａｘ以降での汎化率計算最大回数Kｌｉｍｉｔ以内の汎化率計算回数に於ける汎化率と最大汎化率Gmaxとを比較し、その増減を調べる。汎化率が最大汎化率Gmaxから規定値γ以上に減少しておれば、過学習状態が発生していると見做して、中間層ユニット数カウンタ処理１０５へ移り、中間層ユニット数を指定された数ほど増加させて、初期学習を再実行する。Kｇｍａｘ以降の全てのKに対する汎化率の劣化が規定値γ未満であれば、過学習状態が発生しない最適な中間層ユニット数が求まったとして、最大汎化率Gmaxと、その最大汎化率Gmaxを与える汎化率計算回数Kｇｍａｘでの格納されている結合重み係数と最適中間層ユニット数Pｏｐｔとの出力処理１１６を実行し、以上の探索処理を終了する。ここでは、汎化率の劣化が発生する過学習状態の発生の検出として、得られた汎化率内の最大汎化率となった以降の汎化率のいずれかがある規定値以上劣化すると過学習状態が発生していると判定したが、過学習回数の増加或いは汎化率計算回数の増加とともに汎化率が劣化した場合に、過学習状態が発生していると判定してもよい。
【００５８】
上記の処理フローに於て、完全分布型出力形式の学習用及びテスト用教師信号を用いた初期学習と過学習及びテストを実施することにより、過学習状態の無い最適な中間層ユニット数を求めることが出来る。ここでは、中間層ユニット数の初期値として、小さい値を設定して、次第に大きくして最適な中間層ユニット数の探索を行ったが、逆に、大きい初期値を設定し、汎化率が過学習状態により劣化する状態直前の中間層ユニット数を検出処理する探索方法により最適な中間層ユニット数を求めてもよい。
【００５９】
尚、カテゴリ分類数Ｑが２のべき乗ではない場合には、例えばＱ＝１２の場合には、Ｑ＜２Ｍを満たす最小の整数Ｍを求め、即ち、Ｍ（＝４）個の出力エレメントを持つ完全分布型出力形式２値教師信号を準備し、出力層ユニット数４の完全分布型出力形式多層ニューラルネットワーク１４を学習或いはテストする。ここで、カテゴリ分類数Ｑは、１２であり、このままでは表わし得る１６通りの中の４個の状態にカテゴリが割当てられず、一部の２値教師信号が利用されないこととなる。従って、当初の学習入力データ集合とカテゴリ分類の対応関係に対して、一時的カテゴリを新たに設ける。即ち、一つのカテゴリに対応している学習入力データ集合を分割して、複数個の学習入力データ集合を生成し、それぞれに異なる一時的カテゴリを対応させる。これらの一時的カテゴリに異なる２値教師信号をそれぞれ割当てれば、２Ｍ個の表わし得る全ての状態に異なるカテゴリ全てを割当てた完全分布型出力形式２値教師信号が構成できる。
【００６０】
また、上記の本発明の実施形態に於て、テスト入力データ集合に対する完全分布型出力形式多層ニューラルネットワーク１４の性能としての汎化能力として汎化率だけに限るものではない。更に、２値教師信号を前提に説明したが、２値に限るものではなく、多値でもよい。多値の場合には、完全分布型出力形式の多値教師信号、多値スレショルド器などを用いることにより実現出来る。
【００６１】
【発明の効果】
以上述べたように、従来のニューラルネットワーク装置では、Ｍ者択一型出力形式を持った２値教師信号や不完全分布型出力形式を持った２値教師信号を直接用いてニューラルネットワーク手段を学習させており、カテゴリ分類の為に使用される２値教師信号のパターンが限られていることから、出力エレメントが表わし得る状態の中で２値教師信号として使用されないパターンが数多くある。この為、中間層と出力層の間に冗長な結合重み係数が数多く発生し、必ずしも出力層ユニット数が最適な構成となっていない。
【００６２】
このことから、回路規模も大きく演算量が非常に多くなる。更に、学習の際に数多くのローカルミニマムの状態が存在し、これらのローカルミニマム状態に陥り易く、学習させても全て正答な２値出力信号が得られない場合や、正答な２値出力信号が得られてもその学習収束速度が非常に遅くなる場合が多く発生する。而も過学習状態による汎化特性劣化が起りやすいなどの欠点を持っている。また、これらの冗長な結合重み係数を削減するプルーニング方法により、不要な結合重み係数を削り最適な出力層ユニット数や更には中間層ユニット数を得る為には、膨大な演算量を必要とし、大規模ニューラルネットワークの最適構成を得ることは困難である。
【００６３】
一方、本発明のユニット数最適化ニューラルネットワーク装置では、上記の説明のごとく、カテゴリ分類数に対して必要最小限の出力エレメント数を持つ完全分布型出力形式の２値教師信号、即ち出力エレメントが表わし得る全ての状態に異なるカテゴリ全てを割当てた完全分布型出力形式２値教師信号を構成して、２値教師信号の出力エレメント数と同一数の出力層ユニットを持った完全分布型出力形式多層ニューラルネットワーク１４を初期学習させ、過学習とテストとを繰り返し実施して、過学習状態による汎化率の劣化のない中間層ユニット数を探索することにより、過学習がなく汎化率が最大となる最適な中間層ユニット数と出力層ユニット数とを有する構成とその結合重み係数を得ている。
【００６４】
上記説明の如く、出力層ユニット数と中間層ユニット数に対して多層ニューラルネットワークを最適化でき、演算量も従来方式に比べ大幅に削減出来るのみならず、高速収束し、而も汎化能力の高い優れた学習特性や汎化特性を持ったニューラルネットワーク装置を提供することが出来る。
【００６５】
従って、高性能な大規模な最適ニューラルネットワーク装置が簡単に実現できることから、非常に高い汎化能力が要求されるパターン認識システム、人口知能システム、情報検索システムや画像処理システム、更には複雑なネットワーク障害情報などを処理する障害処理システムなどへの広範囲な応用ができ、極めて幅広い効果を有している。
【図面の簡単な説明】
【図１】本発明の第１の実施形態におけるユニット数最適化多層ニューラルネットワーク装置の構成を示す。
【図２】従来多層ニューラルネットワークの基本構成を示す。
【図３】本発明の第１の実施形態における多層ニューラルネットワークユニット数最適化方法の処理フローを示す。
【符号の説明】
１  ３層ニューラルネットワーク
２  入力端子
２１  入力ユニット端子
２２  入力ユニット端子
２Ｎ  入力ユニット端子
３  ２値出力端子
３１  ２値出力ユニット端子
３２  ２値出力ユニット端子
３Ｍ  ２値出力ユニット端子
４  入力層
４１  入力層ユニット
４２  入力層ユニット
４Ｎ  入力層ユニット
５  中間層
５１  中間層ユニット
５Ｐ  中間層ユニット
６  出力層
６１  出力層ユニット
６２  出力層ユニット
６Ｍ  出力層ユニット
７  結合重み係数制御器
８  ２値教師信号入力端子
８１  ２値教師信号入力ユニット端子
８２  ２値教師信号入力ユニット端子
８Ｍ  ２値教師信号入力ユニット端子
９  出力端子
９１  出力ユニット端子
９２  出力ユニット端子
９Ｍ  出力ユニット端子
１０  減算器
１０１  減算器
１０２  減算器
１０Ｍ  減算器
１１  結合重み係数入出力端子
１２  ２値化スレショルド器
１２１  ２値化スレショルド器
１２２  ２値化スレショルド器
１２Ｍ  ２値化スレショルド器
１３  結合重み係数プルーニング検出器
１４  完全分布型出力形式多層ニューラルネットワーク
３０  学習テスト制御器
３１  中間層ユニット数設定器
３２  結合重み係数制御器
３３  学習入出力データベース
３４  入力データ選択器
３５  学習用教師信号メモリ
３６  学習状態判定器
３７  テスト入出力データベース
３８  テスト用教師信号メモリ
３９  テスト出力比較器
４０  汎化率処理器
４１  最適中間層ユニット数判定器
４２  最適中間層ユニット数出力端子
４３  最適結合重み係数出力端子
４４  中間層ユニット数最適化ニューラルネットワーク装置
【図１】
0003757722.tif 000002
【図２】
0003757722.tif 000003
【図３】
0003757722.tif 000004