説明

ニューラルネットワークの学習方法

【課題】
従来のネットワークと互換性を有し、内部解析が容易なネットワークの学習方法を提供する。
【解決手段】
入力層素子と中間層素子との間の全ての重みを初期化する第1ステップと、学習前に任意の複数のグループに分類された複数の入力層素子と中間層素子との間の任意の重みを0として結合を削除し、一部のグループの入力層素子のみと結合している中間層素子からなる疎結合部分を生成する第2ステップと、所定の評価関数が小さくなるように重みの修正量を算出する第3ステップと、重みの値を0とした重みの修正量を0にする第4ステップと、第3ステップ及び第4ステップを経て得られた修正量を用いて重みを修正する第5ステップとを有し、学習誤差が規定値以下になるまで第3ステップ以下の処理を繰り返し実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ニューラルネットワークを用いた各種の制御、予測、診断に関する情報処理分野におけるニューラルネットワークの学習方法に関するものである。
【背景技術】
【0002】
周知のようにニューラルネットワークは学習能力を持ち、非線形性、パターンマッチング性能に優れており、制御、予測、診断等の多くの分野に用いられている。
このニューラルネットワークとしては多くの構造が提案されているが、実用化されたその多くは階層型、特に3階層型のものがほとんどである。階層型のニューラルネットワークは、通常バックプロパゲーション法(誤差逆伝播法)と呼ばれるアルゴリズムにより学習し、内部の結合状態が調整される。こうして学習したニューラルネットワークは、学習データと同一の入力データを与えると学習データとほぼ同一の出力をする。また、学習データに近い入力を与えると学習データに近い出力をする特徴がある。
【0003】
最小自乗法によって構築される回帰式と比較すると、ニューラルネットワークは非線形性に優れているが、内部構造が複雑で解析が困難なため、未知データに対してはどのような出力をするか分からない欠点がある。 従来のニューラルネットワークを解析する方法としては、内部構造を直接解析する例として、代表的な以下の非特許文献1〜3の3例がある。
【0004】
非特許文献1の方法は、忘却の概念によりニューラルネットワークの不要な結合を削除し、必要な結合のみを残す方法により、内部解析を行う方法である。パターン認識の分野において、その有効性が示されている。
【0005】
非特許文献2では、ファジィとニューロが融合した新しい構造のファジィニューラルネットワークにより、内部解析を可能にしている。
非特許文献3では、分散ニューラルネットワークと言われる特殊構造をもつニューラルネットワークよりファジィ規則を抽出することで解析を行っている。
【0006】
また、直接的な内部解析は行っていないが、出力値の説明・信頼性の評価方法として、特許文献1の「データ学習装置およびプラント制御装置」、特許文献2の「ニューラルネットワークの出力値の評価装置,評価方法及び記憶媒体」がある。何れの方法も、予測・制御時の入力データに近い値を学習データより検索して表示する方法である。
【0007】
ニューラルネットワークの学習方法はバックプロパゲーション法が一般的であるが、性能の点で問題が指摘されている。すなわち、バックプロパゲーション法ではニューラルネットワークの階層数や素子数を事前に決定する必要があるが、これらに関する情報が事前に得られることはなく、ニューラルネットワークを最適化するためには階層数や素子数を試行錯誤的に探索する必要がある。特に、ニューラルネットワークの内部構造が複雑な場合には、探索に時間と手間がかかる。また、バックプロパゲーション法により得られた学習後のニューラルネットワークはブラックボックスとなり、中間層素子の意味付けが困難な場合が多い。
【0008】
これらの問題点に鑑み、特許文献3の「ニューラルネットワークの最適化学習方法」や、特許文献4の「ニューラルネットワークの最適化学習方法」等、不要な中間層素子や結合を削減する学習方法が近年提案されている。これらの学習アルゴリズムを使用すると、非常にコンパクトで性能の良いニューラルネットワークを構築することが可能である。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開平10−74188号公報
【特許文献2】特願平11−322130号公報
【特許文献3】特願平11−066165号公報
【特許文献4】特願2000−71011号公報
【非特許文献】
【0010】
【非特許文献1】「ニューラルネットワークの構造学習による規則性の発見と汎化」:日本神経回路学会誌、Vol.1, No.2(1994)
【非特許文献2】「ファジィニューラルネットワークの構成法と学習法」:日本ファジィ学会誌、Vol.4, No5.(1992)
【非特許文献3】「ニューラルネットワークを用いたファジーIF-THENルールの自動抽出」:電気学会論文誌C,Vol.110-C,No.3,(1990)
【発明の概要】
【発明が解決しようとする課題】
【0011】
ニューラルネットワークはその学習能力、非線形能力、パターンマッチング性能等、優れた能力のため多くの分野において利用されているが、一般に内部構造が非線形かつ複雑なため、その出力値がどうして出力されたかを理解し易く説明することが困難であった。
【0012】
前記特許文献1および2の従来技術は、対象状態の入力データに近い学習データを検索して表示する方法であるが、内部解析をしていないため学習データにない未知の入力データに対しては説明不能である。
【0013】
また、前記非特許文献1,2,3の従来技術では、内部解析を行っているため、未知の入力状態に対してもどのような出力が得られるかが分かる。しかし、非特許文献1の従来技術はパターン認識のような離散的な問題では有効であるが、連続値を対象とする問題は扱えない欠点がある。非特許文献2,3の従来技術は、通常のニューラルネットワーク構造とは完全に異なる特殊構造のニューラルネットワークを用いているので、汎用性に乏しい。特に、非特許文献2の従来技術はその構造上、入力因子が多くなると指数関数的に学習時間が増大し、またその能力も通常のニューラルネットワークには及ばない。更に、非特許文献3の従来技術は、ニューラルネットワーク構造が複雑であるばかりでなく、その解析方法も難しく、また抽出したファジィ規則も単純ではないという問題がある。
【0014】
そして、前記特許文献3,4の従来技術は、コンパクトな構造が得られる利点があるが、構造自体は従来のニューラルネットワークと同じであるので、内部解析を行うことは不可能である。
【0015】
そこで本発明の解決課題は、通常の階層型ニューラルネットワークと完全に互換性があってその内部解析が容易である構造のニューラルネットワークの学習方法を提供しようとするものである。
【0016】
例えば、y=ax1+bx2+cx12+d(x1,x2は入力変数、yは出力変数、a,b,c,dは係数)として表されるような、従来技術の回帰式の場合では、
(1)出力の要因が明確である(x1,x2の要因により変化することが明確である)、
(2)各要因の働きが明確である(x1,x2の独立した成分(回帰式の右辺第1項、第2項)とその相互作用の成分(同第3項)から成り立つ)、
(3)各要因の入出力に対する影響度合いが明確である(x1,x2,x12の影響度合いは、a,b,cであり、固定分としてdがある)、といった特徴があり、これらの特徴によって内部解析が容易になっている。
【0017】
従って、本発明は、このような回帰式の解析の容易さを既存のニューラルネットワークによって実現しようとするものであり、また、従来のニューラルネットワークと互換性のある構造によって既存システムへの適用を容易にし、更にその性能も現状と同等であるニューラルネットワークの学習方法を提供しようとするものである。
【課題を解決するための手段】
【0018】
上記課題を解決するため、請求項1記載の発明は、計算機を用いて複数の入力層素子及び複数の中間層素子を有する階層型構造のニューラルネットワークを学習するためのニューラルネットワークの学習方法において、
入力層素子と中間層素子との間の全ての重みを初期化する第1ステップと、
学習前に、任意の複数のグループに分類された複数の入力層素子と中間層素子との間の任意の重みを0として結合を削除し、一部のグループの入力層素子のみと結合している中間層素子からなる疎結合部分を有するニューラルネットワーク構造を生成する第2ステップと、
評価関数を、
=1/2・(o−t)+ε’Σ|wij
(J:評価関数,ε’:忘却係数,wij:重み,o:ニューロ出力,t:教師信号)
とし、この評価関数が小さくなるように入力層素子と中間層素子との間の重みの修正量を、
Δwij’=−η∂J/∂wij=Δwij−ε・sgn(wij),
sgn(x)=1(x>0),0(x=0),−1(x<0),
ε=ηε’
(η:学習係数)
により算出する第3ステップと、
重みの値を0とした入力層素子と中間層素子との間の重みの修正量を0にする第4ステップと、
第3ステップ及び第4ステップを経て得られた最終的な修正量を用いて入力層素子と中間層素子との間の重みを修正する第5ステップとを有し、
学習誤差が規定値以下になるまで第3ステップ以下の処理を繰り返し実行するものである。
【0019】
請求項2記載の発明は、請求項1における第2ステップにおいて、
複数の入力因子について学習データの最大・最小・平均・標準偏差の統計指標を用いて予め定めた判別式により評価値を求め、前記複数の入力因子を前記評価値に基づいて複数のグループに分類し、それらのグループごとに疎結合部分を有するニューラルネットワーク構造を生成するものである。
【0020】
請求項3記載の発明は、請求項1における第2ステップにおいて、
複数の入力因子について学習データの入力因子間の相関係数を求め、この相関係数が一定値以上の入力因子同士のグループを形成して複数のグループに分類し、それらのグループごとに疎結合部分を有するニューラルネットワーク構造を生成するものである。
【0021】
請求項4記載の発明は、請求項1における第2ステップにおいて、
複数の入力因子について学習データの入力と出力との間の相関係数を求め、この相関係数が所定の範囲にある入力因子同士のグループを形成して複数のグループに分類し、それらのグループごとに疎結合部分を有するニューラルネットワーク構造を生成するものである。
【0022】
請求項5記載の発明は、計算機を用いて複数の入力層素子及び複数の中間層素子を有する階層型構造のニューラルネットワークを学習するためのニューラルネットワークの学習方法において、
前記ニューラルネットワークの構造は、任意の複数のグループに分類された複数の入力層素子と中間層素子との間の任意の結合を削除し、一部のグループの入力層素子のみと結合している中間層素子からなる疎結合部分を有するニューラルネットワーク構造であって、
入力層素子と中間層素子との間の全ての重みを初期化する第1処理と、
評価関数を、
=1/2・(o−t)+ε’Σ|wij
(J:評価関数,ε’:忘却係数,wij:重み,o:ニューロ出力,t:教師信号)
とし、この評価関数が小さくなるように入力層素子と中間層素子との間の重みの修正量を、
Δwij’=−η∂J/∂wij=Δwij−ε・sgn(wij),
sgn(x)=1(x>0),0(x=0),−1(x<0),
ε=ηε’
(η:学習係数)
により算出する第2処理と、
第2処理を経て得られた最終的な修正量を用いて入力層素子と中間層素子との間の重みを修正する第3処理とを有し、
学習誤差が規定値以下になるまで第2処理以下の処理を繰り返し実行するものである。
【発明の効果】
【0023】
本願の請求項1または5に係る学習方法の発明によれば、従来のニューラルネットワークと互換性があり、容易に置き換えることが可能なニューラルネットワークを構築することができる。また、回帰式と同様に、出力と入力との因果関係を容易に把握することが可能であり、学習データにない未知のデータに対しても、出力値を容易に推定することができる。
【0024】
そのため、運用者の感覚と違う解析結果が出た場合には、ニューラルネットワークの再学習などの処理を事前に行うことが可能である。
また、本願の請求項2〜4に係る学習方法発明によれば、ニューラルネットワーク構造を学習データの関係から自動的に決定することができる。実施例でも説明したように、第23実施形態に係る発明では入力因子を大まかにグループ化するので、比較的、人間の感覚に一致した構造が得られやすい。
【0025】
請求項3に係る学習方法の発明は、かなり似通った入力因子同士しかグループ分けしないため(細かく分類するため)、将来どのように解析するかわからない場合のように未知の現象を解析するときには、多くの入力因子(入力因子グループ)について解析が可能であり、解析時に効果を発揮する。
【0026】
請求項4に係る発明は請求項3に係る発明を改良したものであり、入力因子の数が増加した時には簡易的な方法でグループ分けを行うため、計算量が少ない利点がある。
【図面の簡単な説明】
【0027】
【図1】第1実施形態における階層型ニューラルネットワーク構造を示す図である。
【図2】従来の階層型ニューラルネットワーク構造を示す図である。
【図3】階層型ニューラルネットワークの結合係数を示す図である。
【図4】従来のニューラルネットワーク装置の構成図である。
【図5】第2実施形態の処理を示すフローチャートである。
【図6】従来のコンパクト構造化法の処理を示すフローチャートである。
【図7】第4実施形態の処理を示すフローチャートである。
【図8】第5実施形態の処理を示すフローチャートである。
【図9】第5実施形態により並び替えたニューラルネットワークの構造を示す図である。
【図10】第6実施形態により並び替えたニューラルネットワークの構造を示す図である。
【図11】第8実施形態による学習とそれにより構築されるニューラルネットワーク構造の変化を示す概念図である。
【図12】第10実施形態における入力層素子、中間層素子の有効性を判断する評価指標を示す図である。
【図13】第11実施形態を説明するためのニューラルネットワークの構造を示す図である。
【図14】第12,第13実施形態の作用を説明するための図である。
【図15】第14実施形態を示すフローチャートである。
【図16】第14実施形態が適用される解析・診断システムの構成図である。
【図17】第19実施形態を示すフローチャートである。
【図18】第1実施例における学習データ及び学習結果の説明図である。
【図19】第1実施例における学習前のニューラルネットワークの構造を示す図である。
【図20】第2実施例における解析対象のニューラルネットワークの構造を示す図である。
【図21】第2実施例の作用を説明するための図である。
【図22】第2実施例の作用を説明するための図である。
【図23】第2実施例の作用を説明するための図である。
【図24】第2実施例の作用を説明するための図である。
【図25】第3実施例における予測対象ダムの上流域の模式図である。
【図26】第3実施例における流量予測用ニューラルネットワークの説明図である。
【図27】第3実施例におけるニューラルネットワークの入出力関係を示す図である。
【図28】第3実施例における上流流量差分の線形度を示す図である。
【図29】第4実施例における翌日電力需要量予測用ニューラルネットワークの説明図である。
【図30】第4実施例におけるニューラルネットワークの入出力関係を示す図である。
【図31】第4実施例における入力値と出力層に伝達する情報との関係を示す図である。
【図32】第4実施例において実データを用いて入力因子の出力への影響を解析した例を示す図である。
【図33】第4実施例において実データを用いて入力因子の出力への影響を解析した例を示す図である。
【図34】第4実施例において実データを用いて入力因子の出力への影響を解析した例を示す図である。
【図35】第21実施形態の処理を示すフローチャートである。
【図36】第22実施形態により構築されたニューラルネットワークの構造を示す図である。
【発明を実施するための形態】
【0028】
以下、本発明の実施形態を説明する。
(1)第1実施形態
まず、第1実施形態に係るニューラルネットワーク構造を説明する。
【0029】
通常の階層型ニューラルネットワークは、図2に示すように入力層素子と中間層素子が全て結合している(全結合部分という)が、本発明の階層型ニューラルネットワークは、図1に示すように任意の入力層素子と任意の中間層素子間だけが結合している。すなわち、この実施形態では、全ての入力層素子と結合している中間層素子からなる全結合部分11と、一部の入力層素子と結合している中間層素子からなる疎結合部分12とからなっている。ここで、全結合部分11は必ずしも必要ではなく、本発明では、複数の入力層素子のうちの一部に中間層素子が結合されてなる疎結合部分を有していれば足りる。このように、一部の入力層素子との間の重み(重み係数または結合係数)の値を0にした疎結合部分12を設けることで、従来の階層型ニューラルネットワークと完全な互換性を持つことができる。
【0030】
次に、従来の階層型ニューラルネットワークとの互換性について述べる。具体的に、本発明のニューラルネットワークが従来のニューラルネットワークと互換性があり、容易に既存システムに置き換え可能であることを説明する。
【0031】
ニューラルネットワークの各重みは、図3に示すような数値配列により表現される。各層の素子の数と素子間の重みの値とにより、ニューラルネットワークの内部構造や性質が決定される。
【0032】
従来のニューラルネットワークのデータベース構造の一例を、表1に示す。このデータベースは、入力層、中間層、出力層の素子の数と、各層の素子相互間の重みの大きさ(w11,w12,……,v1,v2等)とからなる。
【0033】
【表1】

【0034】
本実施形態のニューラルネットワークは、このデータベースにおける入力層素子と中間層素子との間の任意の重みwijを0にするだけで表現することが可能であり、従来のニューラルネットワークと全く同じデータベース構造を採用することが可能である。
【0035】
次に、従来のニューラルネットワーク装置(学習部分を除く予測・診断等の部分)を図4に示す。簡単のために、図4では最小限の構成のみを示している。
この装置は、予測・診断等を行う機器や計算機であり、記憶装置(HDD、ROM、RAM、外部記憶装置等)13に学習済みのニューラルネットワークのデータベースが保存され、ニューラルネットワークの演算結果を表示・伝送装置(ディスプレイ・プリンタ・スピーカ・LAN・電話回線等)17に出力している。なお、14は入力データ読み込み部、15は重み読み込み部、16はニューロ(ニューラルネットワーク)算出部、18は予測・診断等の結果を保存する保存部である。
【0036】
通常、ニューラルネットワークのデータベースは他の計算機により再学習され、定期的に更新されることが多い。本発明のニューラルネットワークは、現状のニューラルネットワークとデータベースレベルで互換性があるので、装置の改造の必要が全くない。
【0037】
従来の階層型ニューラルネットワークは、中間層素子が入力層素子と全結合していることから、中間層部分で入力層からのデータ全てが混ざるため、入力データと出力値との関係を解析することが困難であった。しかし、本発明のニューラルネットワーク構造は疎結合部分を有し、中間層部分において入力層からのデータを任意の入力因子ごとに分離しているため、解析が容易である。入力因子の相互作用分のように分離不可能な要素は、全結合部分がある場合にはその部分で処理するため、従来と同等の精度も保証することが可能である。なお、本実施形態におけるニューラルネットワークの具体的な解析手法については後述する。
(2)第2実施形態
ニューラルネットワークの学習方法に関する第2実施形態を、図5のフローチャートを参照しつつ説明する。
【0038】
第1ステップA1は、通常のニューラルネットワークの重み初期化処理である。具体的には、図2の通常のニューラルネットワークの各層の素子間の全ての重みに対して初期値を小さい数の乱数で与える。ここで、プログラム的に、入力層と中間層との間の任意の結合がないニューラルネットワーク構造を定義してもよい。この場合は、以下の第2,第4ステップの処理は不要である。
【0039】
第2ステップA2は、重みを初期化したニューラルネットワークに対し、請求項1の発明のニューラルネットワーク構造に変更するための処理である。すなわち、任意の入力層素子と中間層素子との間の結合を削除する。ここで、結合を削除するための最も簡単な方法は、任意の重みの値を0に置き換える方法である。
【0040】
第3ステップA3は、通常のニューラルネットワークの重み修正量の計算である。学習誤差を評価する評価関数が小さくなるように、入力層素子と中間層素子との間の重みの修正量を計算する。ここでの評価関数の一例を以下の数式1に示す。
[数式1]
J=1/2・(o−t)2
なお、数式1において、J:評価関数、o:ニューロ出力、t:教師信号(学習目標値)である。
【0041】
第4ステップA4は、請求項1の発明のニューラルネットワーク構造のための重み修正量の再修正である。第3ステップA3の計算により、結合がない任意の重みが再構築されることがある。それを防止するために重みを0とした結合の重みの修正量を強制的に0とする。
【0042】
第5ステップA5は、重みの修正処理である。第3ステップ、第4ステップを経て計算された最終的な修正量に従って入力層素子と中間層素子との間の重みを修正する。
重みの修正量を△wij、重みをwij、学習係数をαとすると、数式2により重みを修正することができる。
[数式2]
ij=wij+α△wij
なお、第3ステップA3以降の処理は、学習誤差が規定値以下になって学習終了が確認されるまで繰り返し行われる(ステップA6)。ここで、学習終了の判断は、評価関数や全学習データに対する誤差が規定値以下になったかとき、もしくは、学習回数が所定回数に達したか否かにより判断することができる。
(3)第3実施形態
第2実施形態で説明した数式1の評価関数では、学習誤差を小さくすることはできるが、不要な結合を含むことが多い。不要な結合はニューラルネットワークの構造を複雑にし、その解析を困難にする大きな原因となる。
【0043】
このため、第3実施形態では前記第3ステップA3を改良することにより、不要な結合を自動的に削除することが可能になる。この実施形態で使用される評価関数は、数式3により表される。
[数式3]
f=(出力誤差を評価する項)+ε’(ニューラルネットワークの複雑さを評価する項)
具体的には、ニューラルネットワークの複雑さを評価する項の相違により、以下の数式4〜数式7がある。
[数式4]
f=1/2・(o−t)2+ε’Σ|wij
[数式5]
f=1/2・(o−t)2+ε’Σwij2
[数式6]
f=1/2・(o−t)2
ε’(Σ|wij|+βΣ(全結合部分の重み)|wij|)
[数式7]
f=1/2・(o−t)2+ε’(Σwij2+βΣ(全結合部分の重み)wij2
ただし、Jf:忘却付き学習の評価関数、ε’:忘却係数、wij:重み、β:係数である。
【0044】
ここで、ニューラルネットワークの忘却付き学習は、例えば「ニューラルネットの忘却付き構造学習」(日本ファジィ学会誌Vol.9,No.1,pp2-9(1997))等にその学習アルゴリズムが記載されている。この忘却付き学習アルゴリズムは、出力誤差が小さく、かつ、各層間の不要な結合の生成が抑制されたニューラルネットワークを構築するものである。
【0045】
前記数式3の評価関数では、出力誤差を評価する項が0に近いほど学習目標値に近い出力をしていることになり、また、ニューラルネットワークの複雑さを評価する項が小さいほどネットワークの構造が単純であることを示す。この評価関数値は小さければ小さい程良い。
【0046】
前記数式6,数式7の評価関数では、全結合部分の重みを多く加算しているので、全結合部分の成長を抑制することが可能である。全結合部分は従来のニューラルネットワークと同じ構造であるため解析困難な部分である。解析のためには疎結合部分の成長が欠かせない。このため、数式6,数式7の評価関数は、全結合部分の成長が抑制されるため解析が容易な構造になり易い特徴を持つ。
【0047】
また、数式4,数式5の出力誤差を評価する項は何れもニューロ出力値から学習目標値を引いた出力誤差の2乗であるが、ニューラルネットワークの複雑さを評価する項は、数式4では重みの絶対値の和であり、数式5では重みの2乗和である。
【0048】
ネットワークの複雑さを評価するために重みを用いる理由は、例えば重みが0ならば結合はないことになり、結合が少ないほどネットワークの構造が単純になるからである。
例えば数式4の評価関数を用いる場合、実際の重みの修正には次の数式8を用いる。なお、数式8において、η:学習係数である。
[数式8]
【0049】
【数1】

【0050】
例えば、第3実施例において上流流量変化が出力に対し飽和する現象が生じた場合など、ニューラルネットワークの再学習などの処理を事前に行うことが可能である。特に、ダム流入量予測では、洪水時において下流域の安全性を確保することが重要であり、そのためにも正確な流入量予測が不可欠である。
【0051】
本実施例においては、洪水発生前に、ニューラルネットワークを適切に再学習させることができる。また、再学習が間に合わなかったときにも、不適切な予測を把握することが可能である。
【0052】
また、第3実施例では、入力データが0.7以上を越える急激な上流流量差分は飽和してしまうため、ニューラルネットワークは実際よりも低めに予測する傾向があるので、大きめに予測(補正)するのが有効であることを容易に把握可能である。
(4)第4実施形態
第4実施形態は、第2,第3実施形態の学習方法において、第6ステップとして、有効に作用していない不要な中間層素子をバイアス素子(入力層の入力値が変化しても出力値が変化せずに一定値を出力するバイアス素子的な振る舞いをする中間層素子をいう)に融合し、また、入力層の入力値の変化に対して同じ働きをする中間層素子同士を融合することで、中間層素子を削減する学習方法を提供するものである。第1実施形態のニューラルネットワーク構造は、内部解析を目的として疎結合部分を設けたものである。しかし、不要な結合や中間層素子がある場合には、適切に内部解析を行えない問題がある。第3実施形態は、不要な部分を各層素子間の結合単位で削除するが、第4実施形態は中間層素子単位で削除することが特徴である。
【0053】
また、学習中に中間層素子が削減されるため、計算量も削減されて学習の高速化にも効果的である。
中間層素子を削減するための手法として、従来技術である図6のコンパクト構造化法(コンパクト構造化法については、例えば増田達也ほかによる「隠れユニットの合成による階層型ニューラルネットワークのコンパクト構造化」(計測自動制御学会論文集Vol.28,No.4,pp.519-527(1992)を参照)をそのまま適用しても比較的良好な結果が得られるが、図7に示すような処理を行うことにより更に良好な結果が得られる。
【0054】
簡単のため、まず図6を最初に説明する。図6における初期化ステップB1とは、図5における第1ステップA1、第2ステップA2に相当し、図6の学習処理ステップB2とは、図5の第3ステップA3、第4ステップA4、第5ステップA5に相当し、図6の学習終了を判断するステップB9が図5のステップA6に相当する。また、図6のコンパクト構造化部分の各ステップB4〜B8が、図5に図示されていない本実施形態固有の第6ステップに相当する。
【0055】
図6のステップB3においてコンパクト構造化に移行する条件としては、例えば、学習回数が所定値に達したことや学習誤差が減少しなくなったこと等がある。
コンパクト構造化部分において、まず最初に各中間層素子出力の分散を算出する(ステップB4)。分散とは、中間層素子の重要度や有効性を示す評価指標にも使われる統計指標であり、例えば中間層素子の出力値系列を用いて数式9により表される。
[数式9]
【0056】
【数2】

【0057】
ステップB4で算出した複数の分散のうち一つでも規定値以下のものがあれば、これを不要中間層素子と見なしてバイアス素子に融合する(ステップB5,B6)。全ての分散が規定値以下でないときには、中間層素子の各相関係数を算出する(ステップB7)。例えば、中間層素子が3つある場合には、素子1−素子2、素子2−素子3、素子3−素子1の3通りの相関係数を算出し、このうち相関係数が規定値以上である中間層素子同士を、情報伝達的に同じ働きをする素子と見なして融合する(ステップB8,B6)。ステップB8における規定値は、相似度を示す−1〜+1の指標であり、±1に近いほど相関が高く、0に近いほど相関が低いものとする。
【0058】
なお、相関係数は、二つの中間層素子の出力値系列を用いて、例えば数式10によって表される。
[数式10]
【0059】
【数3】

【0060】
複数の中間層素子の分散を算出して多数の分散が規定値以下の場合、最も分散が小さい中間層素子とバイアス素子とを融合させる。一度に融合可能な全ての素子を融合させることも考えられるが、一度のコンパクト構造化に対し融合回数を1回に制限した方が良好な学習結果が得られることが多い。
【0061】
また、相関係数の値が規定値以上である中間層素子の組み合わせが多数ある場合には、相関係数の値が最も大きい中間層素子同士の組み合わせを融合させる。この場合も、融合回数を1回に制限した方が良好な学習結果が得られることが多いためである。
【0062】
ステップB9では、学習回数が所定値に達した時点で学習終了と判断する。
次に、図7に基づいて本発明の実施形態を説明する。基本的な考えは図6と同様であるが、過度の融合を防止するための処理を有する点が特徴となっている。
この実施形態では、ニューラルネットワークの学習中は中間層素子同士の融合をある程度制限している。ニューラルネットワークの中間層素子は、学習の進行に伴って成長し、役割が分化する。学習初期段階において出力値系列が同じような中間層素子(相関が高い)同士であっても学習の進行に伴い出力値系列が変化して相関が低くなる可能性がある。そこで、学習中は融合をある程度制限し、学習終了後に中間層素子の役割が十分明確になった時点で融合を促進するようにした。
【0063】
まず、図7のステップC1〜C3,C7は、図6のB1〜B3,B9と同様である。図7のステップC3からジャンプしたコンパクト構造化1(学習中のコンパクト構造化)の処理では、分散の小さい不要な中間層素子とバイアス素子との融合は行うが、相関の高い中間層素子同士の融合は禁止している。具体的には、ステップC4で算出した分散が規定値以下の場合に中間層素子とバイアス素子とを融合する(ステップC5,C6)。特に、不要な中間層素子が2つ以上のときにのみバイアス素子と融合し、常に不要な中間層素子を1つ以上残す処理を加えれば、過融合を効果的に防ぐことができる。
【0064】
学習終了後のコンパクト構造化2の処理では、分散の小さい不要な中間層素子とバイアス素子との融合(ステップC9のYes分岐,C10,C13,C14)と、相関の高い中間層素子同士の融合(ステップC9のNo分岐,C11,C12,C10,C13,C14)との両方を行う。
また、分散が規定値以下または相関係数が規定値以上の場合にはニューラルネットワークの各層の素子間の重みを記憶することによってニューラルネットワークを保存し(ステップC10)、学習誤差を算出してから中間層素子の融合を行う(ステップC13,C14)。なお、学習誤差の算出は、保存したニューラルネットワークを用いて実際の出力であるニューラルネットワーク出力値と学習目標値との誤差を検出する。その後、学習誤差を再度算出し(ステップC15)、その誤差を融合前の誤差と比較して悪化するか否かを判断する(ステップC16)。学習誤差が悪化するときには融合を禁止し、ステップC17により融合前のニューラルネットワークを復元する(各層の素子間の重みを融合前の値に戻す)。
【0065】
このように、コンパクト構造化2では、融合した後の学習誤差が融合前よりも悪化する場合には融合前のニューラルネットワークを復元し、学習誤差が改善される場合にのみ融合を実施することにより、コンパクト構造化における過融合を防止している。
【0066】
本実施形態において、融合のためのしきい値(分散や相関係数と比較する規定値)を中間層素子ごとに変化させてもよい。例えば、疎結合につながる中間層素子のしきい値を厳しくして融合を抑制し、全結合につながる中間層素子のしきい値を緩くして融合を促進することにより、全結合部分を小さくすることが可能である。
(5)第5実施形態
第3,第4実施形態のアルゴリズムにより、学習中に生じた不要な中間層素子や不要な結合を削除することが可能であるが、基本的には疎結合部分と全結合部分との成長速度に差がないため、疎結合部分の学習が速やかに行われず、疎結合部分が充分に成長しない可能性がある。もし、疎結合部分が少なく全結合部分が多い場合には、従来のニューラルネットワークと同様に解析が困難である。そこで、この実施形態では疎結合部分の学習を加速して成長を促進するような評価関数を導入する。
【0067】
図8は、本実施形態の処理を示すフローチャートである。第2実施形態である図5と比較すると、第2−1ステップとして中間層素子の並び替えステップD3が追加されたことと、第3ステップD4の修正量算出のための評価関数が変更されたことに特徴がある。
【0068】
本実施形態の中間層素子の並び替えステップD3では、任意の結合を削除して形成された図2に示すニューラルネットワークを並び替え、図9のように疎結合部分12をひとまとめにして部分ニューロ1(グループ1)と定義し、疎結合部分12と全結合部分11を含む全体を部分ニューロ2(グループ2)と定義する。図2のケースでは、疎結合部分12が左側にまとまっているため、図9では並び替えが行われていないが、一般的には疎結合部分を並び替えてひとまとめにし、部分ニューロ1,2を定義する必要がある。
【0069】
次に、第3ステップD4において使用する評価関数を説明する。上述した部分ニューロ1の出力をO1,部分ニューロ2の出力(通常のニューロ出力)をO2、教師信号(学習目標値)をtとすると、部分ニューロ1,2の評価関数J1,J2を数式11とする。
[数式11]
1=1/2・(O1−t)2
2=1/2・(O2−t)2 (通常の評価関数)
実際の評価関数は、2つの評価関数J1,J2をまとめて数式12のようになる。
[数式12]
J=γ11+γ22
数式12の評価関数Jは重畳エネルギー関数と呼ばれており、「重畳エネルギー関数による多層パーセプトロンの冗長性削減」(電子情報通信学会論文誌D-II,Vol.J80-D-II,No.9,pp.2532-2540 1997年9月)等に詳しく説明されている。なお、数式12におけるγ1,γ2は、部分ニューロ1,2の評価関数J1,J2(部分エネルギー関数)の重みを示す。
【0070】
この重畳エネルギー関数が最小になるとき、不要な分散表現が抑制され、かつ中間層素子の重要度順に並んだニューラルネットワークを得ることができる。また、重畳エネルギー関数では、中間層素子のうち上位側(図9における左側)の素子に関する結合ほど、少ない素子数で学習目標値を生成するように学習が進行する特徴がある。
【0071】
上記分散表現とは、一つでも足りる結合が複数の結合に分散されること、つまり、その結果多くの結合が必要になることを示し、不要な分散表現が多い場合にはそれだけ結合も多く、ニューラルネットワーク構造は複雑化、冗長化する。
【0072】
数式12の評価関数Jにおいて、J2は全結合部分11及び疎結合部分12を含む通常の評価関数であるが、J1は疎結合部分12の評価関数である。疎結合部分12はJ1,J2両方に関わっているため、この疎結合部分12の誤差を早く減少させようとして学習(評価関数Jを用いた重み修正量の計算)が加速される。
【0073】
これにより、分散表現の発生が抑制されてニューラルネットワーク構造の簡素化が可能になる。
(6)第6実施形態
第6実施形態は、第5実施形態を改良したものである。
【0074】
上述した第5実施形態では、疎結合部分12の中間層素子同士は互いに同じ速度で学習が進んで成長し、全結合部分11の中間層素子同士も互いに同じ速度で学習が進んで成長する。同じ速度で成長した場合には、1つの結合が複数の中間層素子に分散して記憶され、中間層素子が多く必要になることがある。このような場合は、中間層素子の重度は低下するが不要と判断するほど低下はしないので、第3,第4実施形態をもってしても中間層素子を削除できないことがある。
【0075】
つまり、第5実施形態では、疎結合部分12と全結合部分11とで比較すると疎結合部分の成長が早いが、疎結合部分12の中間層素子同士、全結合部分11の中間層素子同士では成長の差がないので、充分に中間層素子を削減できない可能性がある。
【0076】
以下に、第6実施形態を説明する。第6実施形態では、第5実施形態における中間層素子の並び替えステップD3及び第3ステップD4を改良する。中間層素子の並び替えステップでは、図10に示すように疎結合部分の中間層素子と全結合部分の中間層素子とを交互に配置してH個の部分ニューロ(図10の例ではH=6)を定義する。そして、改良された第3ステップでは、数式13のようなH個の部分ニューロの評価関数の和を評価関数(重畳エネルギー関数)として使用し、重みの修正量を算出する。数式13において、γは、部分ニューロの評価関数Jの重みを示す。
[数式13]
【0077】
【数4】

【0078】
図10のニューラルネットワークは、部分ニューロ1における結合が最も早く成長し、部分ニューロ6における結合は相対的に成長が抑制される。このことは、重畳エネルギー関数においては、中間層素子のうち上位側(図10における左側)の素子に関する結合ほど、少ない素子数で学習目標値を生成するように学習が進行して成長するという特徴による。つまり、本実施形態では、疎結合部分の中間層素子間でも成長速度が異なるし、疎結合部分の中間層素子と全結合部分の中間層素子との間でも成長速度が異なる。このように、各部分ニューロにおける成長速度に差をつけることで、中間層素子の要・不要の判定を容易に行うことができ、不要な中間層素子の削除も迅速に行われる。
(7)第7実施形態
第7実施形態は、第5,第6実施形態の評価関数の改良に関するものである。
【0079】
第5,第6実施形態は、学習過程において中間層素子ごとに成長速度(学習速度)に差を付けるような評価関数を用いて重みの修正量を算出することにより不要な中間層素子を抑制する方法である。つまり、中間層素子ごとに作用する。一方、第2または第3実施形態は、評価関数により計算した修正量を用いて重みを修正するものであり、いわば個別の重みごとに作用する。これらの両者を融合させることで、不要な中間層素子や結合が非常に少ないニューラルネットワークを構築することができ、解析の容易化に寄与することができる。
【0080】
本発明の実施形態における評価関数は、以下のように2つの要素より成り立つ。
評価関数=成長速度に差を付ける評価関数+不要な中間層素子を抑制する評価関数
具体的な評価関数は、数式14によって表される。
[数式14]
【0081】
【数5】

【0082】
数式14の右辺第1項は数式13と同一であり、数式12とも実質的に同一である。すなわち、この第1項によって一部の中間層素子の成長を促す働きがある。
また、数式14の右辺第2項は、数式4〜数式7の何れを使用しても良い。特に、数式6または数式7の何れかを適用すれば、前述のように全結合部分の生成を抑制できるため、疎結合部分の成長が相対的に早くなり、解析容易なニューラルネットワーク構造となる。
(8)第8実施形態
第8実施形態は、第5,第6実施形態の学習方法を交互に複数回実施する方法である。
【0083】
第6実施形態の方法による学習は、疎結合部分、全結合部分の中間層素子が交互に並んでいるため、全結合部分の中間層素子が全く必要としない問題に対しても、全結合部分が構築される可能性がある。よって、第8実施形態では、第6実施形態による学習後に第5実施形態で再学習することで、不必要に生じた全結合部分の中間層素子を抑制する。また、この処理を複数回繰り返すことにより、一層最適な構造に近づけることができる。勿論、第2実施形態や第4実施形態を組み合わせることで、更に解析容易な構造が得られるのは言うまでもない。
【0084】
図11は、本発明の実施形態による学習とそれにより構築されるニューラルネットワーク構造の変化を示す概念図である。なお、このニューラルネットワークは、一例として電力需要量を予測するためのものであり、入力層には電力、気象、特異日等のデータが入力されている。
【0085】
図11の(a)段階は学習開始前のニューラルネットワーク構造であり、各サブネットワークごとに2つの中間層素子(合計8個)を有している。このうち、中間層素子1〜6は疎結合部分、中間層素子7,8は全結合部分(相互作用分)を構成している。
(b)は第6実施形態による学習(学習段階1)であり、疎結合部分、全結合部分の中間層素子が交互に配置されている。また、部分ニューロは4個形成される。
(c)は第5実施形態による学習(学習段階2)である。(b)の学習を経ているため、成長によっていくつかの中間層素子が削減されている(第3,第4実施形態を付加していた場合)。(c)では部分ニューロは2個となっており、疎結合部分が部分ニューロ1を、疎結合部分及び全結合部分が部分ニューロ2を構成している。
【0086】
第8実施形態では、少なくとも上記(b),(c)の学習を交互に繰り返して行うことにより、不要な中間層素子を削減することが可能である。特に、(b),(c)の学習を複数回、交互に繰り返すと一層効果的である。なお、(d)は、通常の重畳エネルギー関数法による学習を(c)の後に行った結果であり、このように他の学習アルゴリズムと組み合わせても良い。(e)は、学習終了後に構築されるニューラルネットワーク構造である。当初の構造に比べて中間層素子が大幅に削減され、必要な中間層素子、重み結合のみによってネットワークが構築されている。
(9)第9実施形態
次に、第9実施形態による解析方法を説明する。この発明は、本発明の方法により充分に学習をし、不要な中間層素子や結合が削除されたニューラルネットワークを対象として、その素子間の結合状態(入力層素子から出力層素子に至る経路等)から内部状態を解析する手法である。典型的なパターンを表2に示す。
【0087】
【表2】

【0088】
表2に示すように、例えば入力層から出力層までに結合が1経路しか存在しない場合には、一元一次関数で示されるように入出力関係が線形である可能性が高く、また、複数経路を持つ場合には、一元二次関数で示されるように入出力関係が非線形である可能性が高い。更に、中間層素子に複数の入力層素子との結合が存在する場合には、二元二次関数のように入力因子の相互作用を有する非線形である可能性が高い。
【0089】
このように、本発明の方法により学習されたニューラルネットワークを対象として、素子間の結合状態により線形性、非線形性といった、入力因子(入力層素子及びこの素子に入力されるデータを総称した概念である)の出力への影響度合いを大まかに解析することができる。
(10)第10実施形態
第10実施形態は、入力層素子・中間層素子の評価指標からニューラルネットワーク構造を解析する方法である。解析の対象となるのは請求項1の発明によるニューラルネットワークであり、疎結合部分を有するニューラルネットワークである。
【0090】
ここで、評価指標は、goodness factor, effectiveness factor, 分散、逆写像の4種
類である。以下、これら4つの評価指標を概説するが、評価指標そのものは本発明の趣旨ではない。
【0091】
表3に評価指標を用いた解析例を示す。単独または複数の評価指標により入力層素子、中間層素子を評価することで、ニュ−ラルネットワ−クの内部構造を解析することができる。
【0092】
【表3】

【0093】
(1)goodness factor(入力層素子、中間層素子について使用)
入力信号を利用する方法である。これは、中間層素子から出力層素子へ出力される入力信号の総和であり、中間層素子の有効度を表す指標である。この値が小さいほど出力層素子への影響が少ないため、「不良」素子とみなされる。
(2)effectiveness factor(入力層素子、中間層素子について使用)
重みを利用する方法である。effectiveness factorは中間層素子に結合している全ての重みの二乗和で表される。これは、ニュ−ラルネットワ−ク収束時において、素子に結合している全ての重みが小さければその素子の有効度は低く、「不良」素子であるという考え方である。この方法は、基本的に重みだけで判断が可能なため、前述のgoodness factorのように誤差や出力の計算が不要であり、計算量が少ないという特徴がある。
(3)分散(中間層について使用)
中間層素子の活性度合いを利用する方法である。不要素子は、入力パターンが変化しても出力が変化しないという考え方である。複数の検査用パターンを入力して、中間層素子の出力の分散が大きいもの(出力の変化が大きいもの)を有効素子、分散が小さいものを不要素子とする。
(4)逆写像(入力層について使用)
シグモイド関数を無視し、ニューロ内部構造を線形近似する手法である。入力層から出力層へ至る重みを積和することで、感度の近似値を求める。この指標は、effectiveness factor同様に計算量が少ない利点がある。
【0094】
図12は上記各種の評価指標を説明するための図であり、入力層素子がI個、中間層素子がJ個、出力層素子がK個の場合を示している。同図には、各評価指標であるgoodness factor, effectiveness factor, 分散、逆写像の計算式もそれぞれ併記してある。
【0095】
また、前記表3の解析例において、表3の上段に示すように入力層素子x1,x2の各指標の大きさが全て同程度である場合や、表3の中段に示すように特定の入力層素子に結合される中間層素子の各指標の大きさが同程度である場合には、入力層素子は対象構造である可能性が大きいと判断できる。更に、表3の下段に示すごとく、入力層素子の各指標の大きさに違いがある場合には、入出力関係を示す関数の係数の大きさに違いがあると判断することができる。
(11)第11実施形態
この実施形態は、任意のデータを入力したときの、中間層素子から出力層素子に伝達される情報量から入力因子の出力への影響を解析する方法である。なお、この実施形態も、請求項1の発明によるニューラルネットワークを対象としている。
【0096】
以下、この発明の概念を説明する。図13において、中間層から出力層に伝達される情報は中間層出力Oと重みvとの積和である。つまり、この情報は数式15によって表される。
[数式15]
【0097】
【数6】

【0098】
ここで、|vii|が最も大きい値を出力する中間層素子は、出力への影響が最も強く、更にその中間層素子に結合されている入力因子の影響も強いと言える。
例えば、図13において、中間層素子1による|v11|が最も大きい場合には、入力1の影響が強く、中間層素子2による|v22|が最も大きい場合には入力1,入力2の相互作用分が強いと言える。
【0099】
このため本発明の実施形態では、各中間層素子から出力層素子に伝達される情報量の大きさを検出することで中間層素子、出力層素子及び入力層素子の間の結合の強さを知ることができ、ニューラルネットワークにおける入力因子の出力への影響を解析することができる。
(12)第12実施形態
第12実施形態は、任意のデータを入力したときの、入力データと中間層素子から出力層素子へ伝達される情報との相関関係から、入力因子の出力への影響を解析する方法である。この発明も、請求項1記載のニューラルネットワークを対象とする。
【0100】
以下、本発明の概念を説明する。図13のニューラルネットワークに、(入力1,入力2)=(0,0)〜(1,1)の0.2刻みの複数のデータを入力し、そのときに出力層
素子へ伝達される情報量が図14のようになったとする。すなわち、中間層素子1については情報量が次第に増加し、中間層素子2についてはほぼ一定であり、中間層素子3については次第に減少していくとする。これから、以下のことが分かる。
(a)中間層素子1は正の相関、つまり、入力1は出力に対し正の相関がある。
(b)中間層素子2は出力にほとんど影響を与えない。つまり、中間層素子2に結合している入力1、入力2の相互作用はほとんどない。
(c)中間層素子3は、負の相関、つまり、入力2は出力に対し負の相関がある。
【0101】
また、以上の(a)〜(c)より、(d)が導かれる。
(d)出力を大きくするためには、入力1に大きな値を入力し、入力2に小さな値を入力すればよい。
【0102】
以上のように、入力値に対する中間層素子の挙動(それぞれの中間層素子から出力層へ伝達される情報量)を検出することにより、未知データ(学習していないx1,x2のパターン)に対しても、各入力因子や中間層素子の働きが判っているために出力値を容易に推定することができる。
(13)第13実施形態
次に、第13実施形態を説明する。請求項1の発明に係るニューラルネットワークは、その内部に数式16で示されるシグモイド関数を使用している。
[数式16]
y=1/{1+exp(−x)}
シグモイド関数の出力範囲は0〜1であるため、実際に使用するときには、0〜1や0.1〜0.9の値に正規化して用いることが多い。例えば、気温を予測するニューラルネットワークでは、−20〜+50℃を0〜1にし、株価を予測するニューラルネットワークでは、1日の変動幅として−2000〜+2000円を0〜1にする。
【0103】
しかし、学習により構築したニューラルネットワークが期待通りの範囲の値を出力する保証はなく、狭い範囲の値しか出力しないことも多い。
そこで本発明は、ニューラルネットワーク出力の実際の上下限値を解析する方法に関する。
【0104】
その手順は、第12実施形態と同様に、図14に示すような、入力データと中間層素子から出力層素子へ伝達される情報量との関係を調べる。図14の例において、出力層素子へ伝達される情報量を最小にするためには、中間層素子1(入力因子は入力1のみ)に結合された入力1の入力を0にし、中間層素子3(入力因子は入力2のみ)に結合された入力2の入力を1にすれば良いことが分かる。つまり、このニューラルネットワーク出力の下限値は、(入力1,入力2)=(0,1)を入力したときに得られる。ちなみに、このニューラルネットワーク出力の上限値は、(入力1,入力2)=(1,0)を入力したときに得られることになる。
(14)第14実施形態
第14実施形態は、第9〜第13実施形態によりニューラルネットワークを解析した結果、ニューラルネットワークが不合理な学習状態に陥ったことを判定するための異常判定方法に関する。また、これに付随する解析・診断システムも開示している。ニューラルネットワークの学習対象がある程度既知である場合には、第9〜第13実施形態の解析方法によりニューラルネットワークの学習状態の良否を判定することができる。例えば、ニューラルネットワークによってダム流入量を予測する場合、ダム流入量は上流流量差分(上流流量の時間差分)との相関が非常に高く、以下の例によって学習不良と判断することが可能である。
(a)上流流量との結合が構築されなかった場合
(b)既存の予測式と内部解析結果との相違が大きい(流量が増加しているのに、流入量が減っているなど)
図15を参照しつつ、本発明の実施形態を説明する。
(1)学習済みニューロ読み込み(ステップE1)
請求項1のニューラルネットワーク構造のニューロを読み込む。ニューロを読み込むとは、その重みや素子数の定義を読み込むことである。
(2)異常判定用DB読み込み(ステップE2)
学習不良を判定するためのDBを読み込む。異常を判定するための基準は、各現象ごとに異なる。例えば、ダム流入量予測では、上述の判定項目(a),(b)が考えられる。具体的な異常判定基準については後述する。
(3)ニューロ解析・診断(ステップE3)
ニューラルネットワークを請求項9〜12の何れかの発明により解析する。そして、先に読み込んだ異常判定用DBと照合して学習状態を診断する。具体的な異常判定方法については後述する。
(4)診断結果表示(ステップE4)
解析・診断の結果を表示し、必要に応じて警告音を発生したり外部へ伝送する。
【0105】
次に、本発明を実現する解析・診断システムを図16に示す。図16において、記憶装置21とは、FDD,HDD,MO,RAM,ROM等の内部記憶装置と外部記憶装置を総称したものである。記憶装置21には、ニューラルネットワークの重み、異常判定用DBが保存されている。また、学習状態の診断結果も記憶装置21に保存される。ニューロ読み込みモジュール22、異常判定用DB読み込みモジュール23、解析・診断モジュール24の作用は、図15のフローチャートで説明した通りである。
【0106】
解析・診断の結果は、運用者に知らせるためにCRT、プリンタ等の表示装置26に表示(または印刷)される。この表示装置26を持たない装置では、異常時にブザー25により警告したり、LAN・電話回線27を介して他の計算機等へ伝送することも可能である。
(15)第15実施形態
第15実施形態は、上述した第14実施形態の異常判定方法において、学習対象の現象が定性的に判明しているときに、ニューラルネットワークの結合状態から異常判定を行う方法である。例えば、ダム流入量予測では、上述のように上流流量差分の影響が大きいことが定性的に判明している。つまり、入力因子としての上流流量差分につながる結合の重みが他の結合の重みと比較して一定値以下ならば異常(学習不良)と判定する方法である。ここで、上流流量差分につながる結合とは、入力層素子(上流流量差分の入力)と中間層素子との結合や、中間層素子(上流流量に関係する疎結合の中間層素子)と出力層素子との結合のことをいう。
【0107】
上記異常判定を実現する具体的な方法としては、異常判定データベースに、例えば上流流量差分につながる結合の重みが一定値以下の場合、もしくは他の結合の重みより一定値未満(他の重み平均の80%未満等)の場合を異常と判定するように登録する。
(16)第16実施形態
第16実施形態は、第14実施形態の異常判定方法において、ニューラルネットワークの内部状態を示す数値指標から異常判定を行う方法である。第15実施形態との違いは、第15実施形態は重み自体を対象として異常判定データベースにより判定するのに対し、第16実施形態では、第10実施形態で説明した、goodness factor, effectiveness factor, 分散、逆写像等の、入力層素子、中間層素子の有効性を示す各種評価指標を用いて異常判定を行う点である。
【0108】
例えば、ダム流入量予測で異常と判定する基準は以下の通りであり、この一部もしくは複数が成立するときに、異常と判断する。
(a)上流流量差分に関するgoodness factorが他より低い
(b)上流流量差分に関するeffectiveness factorが他より低い
(c)上流流量差分に関する分散が他より低い
(d)上流流量差分に関する逆写像の正負が逆(負のときに異常)
(17)第17実施形態
第17実施形態は、第14実施形態の異常判定方法において、学習対象の現象を表す数式が存在するときに、その数式とニューラルネットワークの内部状態との相関係数が一定値以下の場合には、学習不良による不合理な状態と判断して異常判定を行うものである。
【0109】
例えば、上述ダム流入量予測では、上流流量差分は出力に対して線形の関係であるとする。そのとき、上流流量差分に関する中間層素子出力が非線形を示す場合には学習不良による異常と判断する。
【0110】
それ以外の例として、翌日電力需要量予測において、気温と電力需要量とは2次の関係があることが判明している。従って、気温に関する中間層素子の出力が2次でないときには、学習不良による異常と判断する。
【0111】
この実施形態における具体的な異常判定には、相関係数を用いる。相関係数とは、−1〜1の範囲で出力される統計指標であり、運用者が予め異常判定データベースに設定した数式と、判定対象であるニューラルネットワークの出力の関係式との間の相関係数が一定値未満ならば、学習不良による異常と判定すればよい。
(18)第18実施形態
第18実施形態は、第14実施形態の異常判定方法において、ニューラルネットワークの出力の上限値が学習データの上限値よりも小さいとき、または、ニューラルネットワークの出力の下限値が学習データの下限値よりも大きいときに、学習不良による異常と判定する方法である。
【0112】
ニューラルネットワークは任意のデータを学習することで、学習データ通りに作用する内部構造を獲得する。しかし、学習不良時には、期待通りに作用しないこともある。学習不良の典型例は、上下限値の飽和である。実験データや自然現象から学習データを構築する場合には、その限界値(上下限値)のデータが不足することが多い。例えば、気温を予測するニューラルネットワークでは、10〜20℃のデータは豊富に用意することが可能であるが、40℃近辺のデータは少ないので、40℃近辺の学習不良が起こりやすい。
【0113】
通常、ニューラルネットワークには数十の入力因子があり、全ての入力パターンをテストすることは困難である。
本実施形態では、第13実施形態により解析したニューラルネットワーク出力の上下限値が学習データの上下限値、もしくは期待した上下限値よりも狭い範囲であった場合には、学習不良と判断して異常判定を行う。
(19)第19実施形態
第19実施形態は、ニューラルネットワークが学習不良であることが前述の第14〜第18実施形態等により判明したときに、自動的に再学習する方法に関する。
【0114】
この実施形態の処理を図17に示す。図17において、学習(ステップF2)、解析・診断処理(ステップF3)は、上述の各発明によって実現される。解析・診断により学習したニューラルネットワークが異常(学習不良)と判定されたとき(ステップF4)には、初期化(ステップF1)を経て、再度学習を実施する。初期化(ステップF1)では、学習条件、ニューラルネットワークの構造等の各種情報をニューラルネットワークに入力するが、通常は、前回の学習時と条件を変える。なお、初期化処理は省略することもできる。
(20)第20実施形態
第20実施形態は、第17実施形態において、学習状態の悪い範囲を自動的に特定し、その範囲の学習データを増加させて再学習させる方法に関する。例えば、一般に上流流量差分と出力との間には線形の関係があると言われているが、後述する図27では非線形であり、入力データが0.8以上または0.2未満は飽和している。つまり、入力データが0.8以上と0.2未満は学習状態の悪い範囲である。
【0115】
通常、ニューラルネットワークの学習不良は、このようにある一定値以上または一定値以下において飽和する状態を示すことが多いため、飽和領域を検索することで容易に学習不良範囲を特定することが可能である。
【0116】
学習不良の原因は、その範囲の学習データが極度に不足していることが多い。従って、学習不良である範囲の学習データを増加させて再度学習させることで、良好な学習状態とすることができる。
〔実施例〕
以下、第1〜第20実施形態に係る実施例を説明する。第1実施例は、主として第14,第4,第8実施形態に係るものである。ここでは、簡単のために数式17に示す2入力1出力の関数を学習させた。なお、x,xの符号は、入力層素子と入力データの両方の意味を持つものとする。
[数式17]
y=x1+x2+x12
(x1,x2={0.0〜1.0})
学習のアルゴリズムは、図11に示したように3段階の学習を行う方法であり、第3,第4実施形態の中間層素子の融合学習方法、不要中間層素子を抑制する評価関数も組み合わせて使用している。
【0117】
第1段階、第2段階、第3段階で使用した各評価関数を数式18、数式19、数式20にそれぞれ示す。なお、これらの数式において、γは部分ニューロの評価関数の重み、ε’は忘却係数、wは結合の重みである。
[数式18]
【0118】
【数7】

【0119】
[数式19]
【0120】
【数8】

【0121】
[数式20]
【0122】
【数9】

【0123】
このニューラルネットワークの学習誤差を表4に示す。表4によれば、誤差が極めて小さく、良好に学習できていることがわかる。
【0124】
【表4】

【0125】
図18(a)は、このニューラルネットワークの学習に使用した学習データx1,x2,yを示し、図18(b)は学習結果を示している。
また、図19は学習前のニューラルネットワークの構造であり、2個の入力層素子と、9個の中間層素子と、1個の出力層素子とからなっている。そして、入力層素子と中間層素子との結合関係では、入力層素子x1とのみ結合している3個の中間層素子を含む疎結合部分12A及び入力層素子x2とのみ結合している3個の中間層素子を含む疎結合部分12Bと、全ての入力層素子x1,x2と結合している3個の中間層素子を含む全結合部分11とから構成されている。
【0126】
第2実施例として、第1実施例により学習したニューラルネットワークの内部構造を解析する。この実施例は、主として第9〜第11,第15,第16実施形態に関するものである。
【0127】
図20において、左から1番目の中間層素子1はx1にのみ結合しており、疎結合部分
を構成している。この経路の情報はx1にのみ影響されるので、学習対象の関数には、x1だけの項が存在することを示唆している。同様に、左から2番目の中間層素子2はx2
のみ結合しており、疎結合部分を構成している。この経路の情報はx2にのみ影響される
ので、学習対象の関数には、x2だけの項が存在することも示唆している。これらのこと
は、ニューラルネットワークの素子の結合状態から線形性等を判断する請求項9の発明によって解析される。
【0128】
なお、図20では、入力層、中間層、出力層の各層の素子間の結合の重みを実線の太さで示してあり、細線が0.1〜1.0、太線が1.0〜10である。
次に、図20のニューラルネットワークについて、4個の中間層素子の評価指標を算出すると、表5のようになった。また、2個の入力層素子(入力因子)の評価指標は表6のようになった。
【0129】
【表5】

【0130】
【表6】

【0131】
表5によれば、1番目と2番目の中間層素子1,2のeffectiveness factor,goodness factor ,分散は同程度であるので、第10実施形態を適用することにより、出力に対するx1,x2の性質やその寄与度が同じ可能性が高いと判断される。
【0132】
また、3番目、4番目の中間層素子3,4は入力層素子x1,x2の両方に結合していて全結合部分を構成しており、第9実施形態によれば、これら入力層素子x1,x2の相互作用もしくはx1,x2の非線形成分の存在が予想される。実際に、数式17の対象関数は、x1,x2の独立した項とx1,x2の相互作用の項(第3項)とを有し、また、x1,x2は第3項において非線形結合している。更に、表6によれば、入力層素子x1,x2に関してもeffectiveness factor,goodness factor ,分散は同程度であることがわかる。
【0133】
図20に示すニューラルネットワークの入力層素子に代表的な値を入力したときの中間層素子(疎結合の中間層素子1,2、全結合の中間層素子3,4及びバイアス素子)の出力を、表7に示す。
【0134】
表7によれば、入力データに0を入れた場合でも出力が0にならない中間層素子があることが判る。従って、解析時には、各中間層出力の下限値を調べ、対象関数のy=x1+x2+x12には表れていない固定分(y=x1+x2+x12+dにおけるd)がどのくらいあるか調べる必要があることが判る。
【0135】
【表7】

【0136】
図21〜図24に、入力データの影響度合いをシグモイド関数と共に模式的に表したグラフを示す。図21は入力データx1,x2が(0,0)の場合、図22は同じく(0.5
,0.5)の場合、図23は同じく(1,1)の場合、図24は同じく(1,0)の場合
である。
【0137】
これらの図から、入力データの大きさに応じた、各中間層素子や各入力層素子の出力に対する影響度合いを容易に把握することが可能である。このことは、第11実施形態の作用によるものである。更に、第15実施形態によれば、入力素子x1,x2につながる結合が存在し、かつお互いの重みの結合が同程度であるので学習が正常に行われており、学習不良による異常はないと判定することができる。また、第16実施形態でも、表5、表6においてx1,x2に関する評価指標が同程度であるので、良好な学習が行われていて異常はないと判定することができる。
【0138】
次に、第3実施例を説明する。この実施例は、主として第9,第10,第12,第15〜17実施形態に関するものである。
この実施例では、ダムの流入量を予測するニューラルネットワークを解析する。予測に使用する入力因子は、表8に示すように、3つの測水所の流量、流量差分(1時間おきの
過去3時間分の流量)、予測対象ダムの流量、流量差分(1時間おきの過去2時間分の流量)、流域平均雨量(1時間おきの過去20時間分の流域平均雨量)である。
【0139】
【表8】

【0140】
図25は予測対象ダムの上流域の模式図であり、各流域に雨量計が設置され、各流域ごとに測水所が設けられている。
第1実施例と同じ学習アルゴリズムによって獲得したニューラルネットワークの構造を図26に示し、入力値に対する出力層に伝播する情報及び出力値を図27に示す。
【0141】
学習前の初期中間層素子を12個として学習を始めたが、学習により獲得した図26の構造によれば、中間層素子が3個にまで削減された。構築された図26のニューラルネットワークの中間層素子は、「上流流量差分」、「雨量」、「相互作用分(全結合部分)」につながり、「上流流量」、「ダム流量」、「ダム流量差分」のみにつながる中間層素子は構築されなかった。つまり、請求項9の発明から、「上流流量差分」、「雨量」、「相互作用分(全結合部分)」は予測に重要な因子であり、「上流流量」、「ダム流量」、「ダム流量差分」は重要度の低い因子であることが分かる。
【0142】
ここで、上記「相互作用分(全結合部分)」とは、複数の入力因子の作用であって単独の成分では表せない複雑な成分を示す。例えば、y=x1+x2+x12におけるx12の部分に相当する。
【0143】
表9は、図26の中間層素子1〜3のeffectiveness factor, goodness factor, 分散を示している。
【0144】
【表9】

【0145】
表9のgoodness factorより、「上流流量差分」のサブネットワークは非常に重要な働
きを示すことが分かる。これは第10実施形態による解析結果である。これらのことは、運用者の感覚とよく一致しており、良好な学習結果であると判定することができる。これは、第15,第16実施形態の異常判定方法によるものである。
【0146】
また、図27から、ニューロ出力に対しては「上流流量差分」の成分が大きく影響しているが、入力値(入力層)がほぼ0.2以下、0.7以上の範囲では飽和している。第12実施形態により、この範囲の入力値に対しては、このニューラルネットワークはほとんど出力の変化がないことがわかる。
【0147】
更に、運用者の感覚によれば、上流流量差分と出力とは線形の関係がある。図28に、上流流量差分のみにつながる中間層素子1が出力層に伝搬する情報量を示す。上流流量差分は入力値に対して線形度の相関係数R2が少し小さいので、学習不良であることを示し
ている。これは、第17実施形態による異常判別の結果である。特に、入力値がほぼ0.2以下と0.7以上の範囲の学習データに対しては学習不良である。
【0148】
「雨量」は、第12実施形態によれば、入力値(入力層)が大きいときにのみ大きく変化する。このことは、雨量が少ないときには地面に吸収されやすく、多いときに流出しやすい現象を的確に表している。「相互作用分」の変動はごく小さく、補正程度に作用している。これは、第12実施形態による解析結果である。
【0149】
表10は、各入力因子を個別に評価した指標である。goodness factorが0.1以上の因子を見ると流量差分や雨量の一部であり、運用者の感覚とほぼ一致する。これは、第16実施形態による。10時間以前の雨量の因子は小さいものが多い。対象のダムは10時間前までの雨量との相関が高いことがすでに判明しており、その結果とも一致している。
【表10】

【0150】
次に、第4実施例を説明する。この実施例は、主として第11,第13,第17実施形態に関するものである。本実施例では、翌日電力需要量予測を例題にして解析を行う。入力因子は表11に示すとおりであり、電力(最大電力)、気象(最高気温、最低気温、最小湿度、天気)、特異日フラグ(土曜、休日)に関して季節ごとに当日iから2日前(i−2)まで、または当日iから7日前(i−7)までとした。
【0151】
【表11】

【0152】
中間層素子を12個用意して学習した結果、図29に示す構造のニューラルネットワークが獲得できた。
図30はこのニューラルネットワークの入出力関係を示すもので、電力需要量は、至近の電力実績に対しては正の相関があり、気温に対しては、正の相関と負の相関が入り交じっていることが分かる。気温が低い時には暖房機を、気温が高いときには冷房機を動かすために電力需要が増大する現象と一致する。このことは、電力需要予測を行う運用者の感覚とも完全に一致している。
【0153】
通常、気温と電力需要量との間には2次の関係があると言われる。図31から、気温(気象)は2次式との相関が非常に強いため、第17実施形態により学習が良好に行われていると判定することができる。また、電力需要量を下げる要因は、気温が中程度であって至近の電力需要量が小さいことであり、逆に電力需要量が上がる要因は、気温が高すぎるか低すぎるかのどちらかに偏り、至近の電力需要量が大きいことである。つまり、このニューラルネットワークの下限値を与える入力データは、電力に関する入力が0、気象に関する入力が0.5のときであることが第13実施形態から判る。具体的な実績データを表12に示す。
【0154】
【表12】

【0155】
表12における基準値は、図29のニューラルネットワークによる解析結果から、電力需要量を最低にするであろう入力データに基づいて作成した。これは、第13実施形態による解析結果に基づく。実際、実データの値を数例入力し、解析結果による下限値より小さい値は出力されなかったことを確認した。
【0156】
以下は、3種類の春季予測用ニューラルネットワークに対し、実データを用いて請求項11の発明により入力因子の出力への影響を解析した例である。
図32(4月9日)は、気象と電力の相関がない時期であり、予測値は電力実績のみに左右される。
図33(5月30日)は、気象と電力の相関が現れ始め、予測値は電力と気象の2つの要因で決定される。
図34(6月25日)は、夏季に近く気温と電力の相関が強い時期である。予測値は電力の影響が低下し、気温の影響が強くなってきている。
【0157】
以上、第1〜第20実施形態及び実施例を説明した。これらの発明によれば、従来のニューラルネットワークと互換性があり、しかも内部解析が可能である。すなわち、解析目的に応じたニューラルネットワーク構造を学習時に与えることで、任意の入力因子と出力との関係を容易に解析することができる。通常、この種の解析は目的を持って行うため、第1〜第20実施形態によって必要を満たすことができるが、ニューラルネットワークの学習時に解析目的がはっきりしていないときには、適切なニューラルネットワークの構造を与えることができない場合がある。そこで、以下の発明は、第1〜第20実施形態を改良し、入出力のデータの関係を自動的に解析して適切な構造のニューラルネットワークを構築するようにした学習方法を提供するものである。
(21)第21実施形態
第1〜第20実施形態では、学習開始前に全結合部分と疎結合部分につながる中間層素子をあらかじめ用意する必要がある。そこで第21実施形態では、疎結合部分だけで学習を行い、疎結合部分だけでは学習しきれないときにのみ全結合部分を追加することとした。すなわち、この発明によれば最初に用意する中間層素子が少なく計算量が少ないため、学習時間の短縮が可能になる。
【0158】
図35は、本発明の実施形態の処理を示すフローチャートである。第1ステップG1は、通常のニューラルネットワークの初期化処理である。具体的には、全ての重みに対し初期値を小さい数の乱数で与える。このステップは、図5におけるステップA1と同一である。
【0159】
第2ステップG2は、解析可能なニューラルネットワーク構造へ変形するための処理であり、任意の重みを0にして削除する。ここで、全結合部分を生成せずに、疎結合部分のみを生成することが必要である。
【0160】
第3ステップG3は、通常のニューラルネットワークの重み修正量の計算である。修正量を算出するための評価関数は、前述した各評価関数の何れを用いても良い。
第4ステップG4は、解析可能なニューロ構造のための修正量の再修正である。第3ス
テップG3の計算により、削除したはずの結合が構築されることがある。それを防止するために、第2ステップで削除した重みに関する修正量を強制的に0にする。
【0161】
第5ステップG5は、重みの修正処理である。計算された修正量にしたがって重みを修正する。
第6ステップG6は、学習終了判断である。なお、このステップは図5におけるステップA6と同一であり、第4実施形態における「第6ステップ」とは異なる。このステップG6において、学習誤差が規定値以下になるか、もしくは規定学習回数に達したら、学習終了と判断する。学習誤差が規定値以下になったか否かは評価関数や全学習データに対する誤差により判断する。ここで、学習誤差が規定値よりも大きい時には学習が終了していないと判断して第7ステップG7に移行する。
【0162】
第7ステップG7は、全結合部分の中間層素子を追加する処理である。ステップG6までに学習が終了しないということは、疎結合部分の中間層だけでは学習ができないことを意味する。よって、全結合部分の中間層素子を任意の個数追加して第3ステップG3に戻る。全結合部分の中間層素子は通常は1つずつ追加するが、一度に複数個追加してもよい。
【0163】
また、上記ステップの説明では省略したが、第1〜第20実施形態では、不要な中間層素子や結合を削除する技術を説明した。よって、これらの技術を応用し、本実施形態においても、追加しすぎた中間層素子や、学習中に発見された不要な中間層素子等がある場合には、これらを削除するようにしても良い。
(22)第22実施形態
次に、第22実施形態を説明する。
【0164】
第1〜第21実施形態においては、ニューラルネットワークの学習開始時(前記図5,8等における第2ステップとしての任意結合の削除ステップ)に、解析目的に応じて任意のニューラルネットワーク構造を与えなければならない。つまり解析目的がはっきりしていないときには、不適切な構造を与えてしまう可能性がある。
【0165】
そこで本発明では、学習開始時のステップ(任意結合の削除ステップ)においてニューラルネットワーク構造を自動的に構築する方法(自動的に結合を削除する方法)を提供し、学習データの入出力関係から、入力因子を自動的に複数のグループに分けることで適切な構造を与えるようにした。これにより、将来の解析において不要と思われる入力因子同士をまとめ、解析が必要と思われる入力因子同士を別々にすることで、想定される解析目的にあった構造のニューラルネットワークを前もって構築することができる。
【0166】
以下に、入力因子のグループ分けの原理を示す。簡単のため、電力需要量予測問題を例に説明する。
電力需要量予測問題とは、ある地域の翌日の最大電力を予測する問題であり、電力会社において、発電機の起動停止計画を立案するための重要な業務として位置付けられている。電力需要量は、曜日、気温、至近の電力実績等により予測することが可能である。表13に、電力需要量予測を行うための入力因子の例を示す。
【0167】
【表13】

【0168】
表13において、入力因子は電力(最大電力)、気象(最高気温、最低気温、天気)、特異日フラグ(土曜、休日)に関して季節ごとに当日iから2日前(i−2)まで、または当日iから7日前(i−7)までとし、合計で数十項目の因子により予測する。
【0169】
ここで、気温は1日前も2日前も極端に変化することは少なく、似たデータになる確率が高い。また1日前の気温と2日前の気温は予測値(ニューロ出力)に対し同じ傾向を示すことが容易に想像でき、個別に解析する必要性は低い。つまり、似ているデータ同士は個別に解析する必要は低いので1グループにまとめ、似ていないデータ同士は、個別に解析する可能性があるので別々にするようにした。
【0170】
以下に、入力因子をグループ化する方法を示す。
(1)第1ステップ
ニューラルネットワークが学習するための学習データの入出力関係を解析する。ここで、入力因子の似たもの同士を複数のグループに分ける。グループ分けの方法は、各入力因子の最大・最小値、標準偏差、相関係数等の単純な統計的手法を利用する方法や、クラスター分析、判別分析等の高度な統計手法等がある。
【0171】
(2)第2ステップ
第1ステップで得られたグループ分けにしたがって、ニューラルネットワークを構築する。図36は4入力1出力のニューラルネットワークであり、入力1と入力2が同グループとして判定された例である。ここで、中間層素子数は、あらかじめ定義された学習条件により異なる。なお、11は全結合部分、12は疎結合部分を示す。
(23)第23実施形態
第23実施形態は、第22実施形態と同様に学習開始時のステップ(任意結合の削除ステップ)における入力因子のグループ分けに関するものであり、データの最大・最小・平均・標準偏差等の単純な統計値を用いて入力因子のグループ分けを行う方法である。
【0172】
特に、各入力因子の最大・最小値は、ニューラルネットワークがデータを学習する上で必ず算出する値であり、最大・最小値を使用する方法は、計算量の増加をほとんど伴わない方法である。以下に、グループ分けを行うための判別式の一例を示す。勿論、これらの式以外の形式でもグループ分けは可能である。ここで、評価値が同じ入力因子同士を同じグループと定義する。
(1)判別式例1
評価値i=int(log10(abs(最大値i−最小値i))+0.5) (最小値i≧0)
評価値i=−int(log10(abs(最大値i−最小値i))+0.5) (最小値i<0)
(2)判別式例2
評価値i=int(ln(標準偏差i)+0.5)
(3)判別式例3
評価値i=int(log10(平均i)+0.5)
ただし、
i:入力因子番号
評価値i:i番目の入力因子の評価値
int:小数点以下を切り捨てて整数にする関数
abs:絶対値を求める関数
である。
(24)第24実施形態
第24実施形態も、第22実施形態と同様に学習開始時のステップ(任意結合の削除ステップ)における入力因子のグループ分けに関するものであり、入力因子間の相関係数を用いてグループ分けを行う方法である。
【0173】
相関係数とは、−1〜1の値をとるデータの相似度を求める係数である。入力因子が3つあるときには、入力1と入力2との相関係数、入力2と入力3との相関係数、入力3と入力1との相関係数の計3つの値を求める。
【0174】
グループ分けは、相関係数の高い入力因子同士を同じグループとしてまとめる。詳細は、実施例で説明する。
(25)第25実施形態
第24実施形態では、入力因子間の相関係数によりグループ分けを行っている。しかしこの方法は、入力因子の数が増加すると指数関数的に計算量が増える欠点がある。そこで、簡便な方法として、入力因子と出力因子との間の相関係数だけに着目してグループ分けを行う。具体的には、出力因子に対して同程度の相関係数である入力因子同士を同じグループとしてまとめる。
【0175】
この発明では、学習開始時のステップ(任意結合の削除ステップ)において、入力因子が4つあるときには、入力1と出力との相関係数、入力2と出力との相関係数、入力3と出力との相関係数、入力4と出力との相関係数と計4つの相関係数を算出するだけで済む。従って、第24実施形態と比べて入力因子の数が多いときには計算量が大幅に削減されるので効果的である。また、グループが多くなり過ぎないようにその数を規定値以下にすることも容易である。相関係数は−1〜1の値をとるので、2グループ以下に分けたいときには、相関係数が−1〜0,0〜1のグループ分けにし、4グループ以下に分けたいときには相関係数が−1〜−0.5,−0.5〜0,0〜0.5,0.5〜1のグループに分ければよい。
〔実施例〕
次に、第23実施形態の実施例を説明する。
【0176】
この実施例では、入力因子を自動的に分類する方法を実施する。例題として用いるのは、冬季翌日最大電力需要量予測用とダム流入量予測用のニューラルネットワークである。翌日最大電力需要量予測における入力因子及び評価値を表14に示し、ダム流入量予測における入力因子及び評価値を表15に示す。なお、評価値は何れも以下の数式による。
評価値=int(log10(abs(最大値i−最小値i))+0.5) (最小値i≧0)
評価値=−int(log10(abs(最大値i−最小値i))+0.5) (最小値i<0)
【0177】
【表14】

【0178】
【表15】

【0179】
翌日最大電力需要量予測用ニューラルネットワークでは、表14に示すように、電力、気温、フラグ、天気がそれぞれグループ化された。ダム流入量予測でも、表15に示すように、流量関係が2つに、流量差分関係が2つに、雨量が1グループの計5グループにグループ化された。これらの何れも、第1〜第20実施形態の実施例において運用者が指定したグループとほぼ同じ結果であり、良好な結果を得た。
【0180】
第1〜第20実施形態では、手作業により入力因子をグループ化する必要があるが、第23実施形態では、上記のように入力因子を自動的にグループ分けすることが可能である。
【0181】
次に、第24,25実施形態の実施例を説明する。この実施例では、入力因子を自動的に分類する方法を実施する。例題として用いるのは、冬季翌日最大電力需要量予測である。入出力因子間の相関係数を表16に示す。ここで、入力因子の番号は第23実施形態の実施例と同じである。
【0182】
【表16】

【0183】
まず、最初に第24実施形態の実施例について説明する。表16において、相関係数(表16の右端の出力値の列を除く値)が0.5以上の入力因子は、NO.3〜8の気温、No.9,NO.12のフラグ、NO.11,NO.14のフラグである。この3グループは非常に似通った性質であり、良好にグループ分けされている。つまりこの例では、総計15個の入力因子が7グループに分類された。
【0184】
次に、第25実施形態の実施例について説明する。
各入力因子と出力との相関係数(表16の右端の列)を0.2刻みにグループ化すれば、以下のように6グループに分類することができる。
【0185】
グループ1(0.4〜0.6):入力因子1,2
グループ2(0.0〜0.2):入力因子13〜15
グループ3(−0.0〜−0.2):入力因子11
グループ4(−0.2〜−0.4):入力因子3〜7,10
グループ5(−0.4〜−0.6):入力因子8,12
グループ6(−0.6〜−0.8):入力因子9
【符号の説明】
【0186】
11 全結合部分
12,12A,12B 疎結合部分
13 記憶装置
14 入力データ読み込み部
15 重み読み込み部
16 ニューロ算出部
17 表示・伝送装置
18 予測・診断の保存部
21 記憶装置
22 ニューロ読み込みモジュール
23 異常判定用データベース読み込みモジュール
24 解析・診断モジュール
25 ブザー
26 表示装置
27 LAN・電話回線

【特許請求の範囲】
【請求項1】
計算機を用いて複数の入力層素子及び複数の中間層素子を有する階層型構造のニューラルネットワークを学習するためのニューラルネットワークの学習方法において、
入力層素子と中間層素子との間の全ての重みを初期化する第1ステップと、
学習前に、任意の複数のグループに分類された複数の入力層素子と中間層素子との間の任意の重みを0として結合を削除し、一部のグループの入力層素子のみと結合している中間層素子からなる疎結合部分を有するニューラルネットワーク構造を生成する第2ステップと、
評価関数を、
=1/2・(o−t)+ε’Σ|wij
(J:評価関数,ε’:忘却係数,wij:重み,o:ニューロ出力,t:教師信号)
とし、この評価関数が小さくなるように入力層素子と中間層素子との間の重みの修正量を、
Δwij’=−η∂J/∂wij=Δwij−ε・sgn(wij),
sgn(x)=1(x>0),0(x=0),−1(x<0),
ε=ηε’
(η:学習係数)
により算出する第3ステップと、
重みの値を0とした入力層素子と中間層素子との間の重みの修正量を0にする第4ステップと、
第3ステップ及び第4ステップを経て得られた最終的な修正量を用いて入力層素子と中間層素子との間の重みを修正する第5ステップとを有し、
学習誤差が規定値以下になるまで第3ステップ以下の処理を繰り返し実行することを特徴とするニューラルネットワークの学習方法。
【請求項2】
請求項1における第2ステップにおいて、
複数の入力因子について学習データの最大・最小・平均・標準偏差の統計指標を用いて予め定めた判別式により評価値を求め、前記複数の入力因子を前記評価値に基づいて複数のグループに分類し、それらのグループごとに疎結合部分を有するニューラルネットワーク構造を生成することを特徴とするニューラルネットワークの学習方法。
【請求項3】
請求項1における第2ステップにおいて、
複数の入力因子について学習データの入力因子間の相関係数を求め、この相関係数が一定値以上の入力因子同士のグループを形成して複数のグループに分類し、それらのグループごとに疎結合部分を有するニューラルネットワーク構造を生成することを特徴とするニューラルネットワークの学習方法。
【請求項4】
請求項1における第2ステップにおいて、
複数の入力因子について学習データの入力と出力との間の相関係数を求め、この相関係数が所定の範囲にある入力因子同士のグループを形成して複数のグループに分類し、それらのグループごとに疎結合部分を有するニューラルネットワーク構造を生成することを特徴とするニューラルネットワークの学習方法。
【請求項5】
計算機を用いて複数の入力層素子及び複数の中間層素子を有する階層型構造のニューラルネットワークを学習するためのニューラルネットワークの学習方法において、
前記ニューラルネットワークの構造は、任意の複数のグループに分類された複数の入力層素子と中間層素子との間の任意の結合を削除し、一部のグループの入力層素子のみと結合している中間層素子からなる疎結合部分を有するニューラルネットワーク構造であって、
入力層素子と中間層素子との間の全ての重みを初期化する第1処理と、
評価関数を、
=1/2・(o−t)+ε’Σ|wij
(J:評価関数,ε’:忘却係数,wij:重み,o:ニューロ出力,t:教師信号)
とし、この評価関数が小さくなるように入力層素子と中間層素子との間の重みの修正量を、
Δwij’=−η∂J/∂wij=Δwij−ε・sgn(wij),
sgn(x)=1(x>0),0(x=0),−1(x<0),
ε=ηε’
(η:学習係数)
により算出する第2処理と、
第2処理を経て得られた最終的な修正量を用いて入力層素子と中間層素子との間の重みを修正する第3処理とを有し、
学習誤差が規定値以下になるまで第2処理以下の処理を繰り返し実行することを特徴とするニューラルネットワークの学習方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate


【公開番号】特開2011−54200(P2011−54200A)
【公開日】平成23年3月17日(2011.3.17)
【国際特許分類】
【出願番号】特願2010−252478(P2010−252478)
【出願日】平成22年11月11日(2010.11.11)
【分割の表示】特願2000−166528(P2000−166528)の分割
【原出願日】平成12年5月31日(2000.5.31)
【出願人】(591083244)富士電機システムズ株式会社 (1,717)