(57)【要約】【課題】従来のネットワークと互換性を有し、内部解析が容易なネットワークの学習方法を提供する。【解決手段】  入力層素子と中間層素子との間の全ての重みを初期化する第１ステップと、学習前に任意の複数のグループに分類された複数の入力層素子と中間層素子との間の任意の重みを０として結合を削除し、一部のグループの入力層素子のみと結合している中間層素子からなる疎結合部分を生成する第２ステップと、所定の評価関数が小さくなるように重みの修正量を算出する第３ステップと、重みの値を０とした重みの修正量を０にする第４ステップと、第３ステップ及び第４ステップを経て得られた修正量を用いて重みを修正する第５ステップとを有し、学習誤差が規定値以下になるまで第３ステップ以下の処理を繰り返し実行する。【選択図】  図１
2011054200.tif 000002
【特許請求の範囲】
【請求項１】
計算機を用いて複数の入力層素子及び複数の中間層素子を有する階層型構造のニューラルネットワークを学習するためのニューラルネットワークの学習方法において、
入力層素子と中間層素子との間の全ての重みを初期化する第１ステップと、
学習前に、任意の複数のグループに分類された複数の入力層素子と中間層素子との間の任意の重みを０として結合を削除し、一部のグループの入力層素子のみと結合している中間層素子からなる疎結合部分を有するニューラルネットワーク構造を生成する第２ステップと、
評価関数を、
Ｊｆ＝１／２・（ｏ−ｔ）２＋ε’Σ｜ｗｉｊ｜
（Ｊｆ：評価関数，ε’：忘却係数，ｗｉｊ：重み，ｏ：ニューロ出力，ｔ：教師信号）
とし、この評価関数が小さくなるように入力層素子と中間層素子との間の重みの修正量を、
Δｗｉｊ’＝−η∂Ｊｆ／∂ｗｉｊ＝Δｗｉｊ−ε・ｓｇｎ（ｗｉｊ），
ｓｇｎ（ｘ）＝１（ｘ＞０），０（ｘ＝０），−１（ｘ＜０），
ε＝ηε’
（η：学習係数）
により算出する第３ステップと、
重みの値を０とした入力層素子と中間層素子との間の重みの修正量を０にする第４ステップと、
第３ステップ及び第４ステップを経て得られた最終的な修正量を用いて入力層素子と中間層素子との間の重みを修正する第５ステップとを有し、
学習誤差が規定値以下になるまで第３ステップ以下の処理を繰り返し実行することを特徴とするニューラルネットワークの学習方法。
【請求項２】
請求項１における第２ステップにおいて、
複数の入力因子について学習データの最大・最小・平均・標準偏差の統計指標を用いて予め定めた判別式により評価値を求め、前記複数の入力因子を前記評価値に基づいて複数のグループに分類し、それらのグループごとに疎結合部分を有するニューラルネットワーク構造を生成することを特徴とするニューラルネットワークの学習方法。
【請求項３】
請求項１における第２ステップにおいて、
複数の入力因子について学習データの入力因子間の相関係数を求め、この相関係数が一定値以上の入力因子同士のグループを形成して複数のグループに分類し、それらのグループごとに疎結合部分を有するニューラルネットワーク構造を生成することを特徴とするニューラルネットワークの学習方法。
【請求項４】
請求項１における第２ステップにおいて、
複数の入力因子について学習データの入力と出力との間の相関係数を求め、この相関係数が所定の範囲にある入力因子同士のグループを形成して複数のグループに分類し、それらのグループごとに疎結合部分を有するニューラルネットワーク構造を生成することを特徴とするニューラルネットワークの学習方法。
【請求項５】
計算機を用いて複数の入力層素子及び複数の中間層素子を有する階層型構造のニューラルネットワークを学習するためのニューラルネットワークの学習方法において、
前記ニューラルネットワークの構造は、任意の複数のグループに分類された複数の入力層素子と中間層素子との間の任意の結合を削除し、一部のグループの入力層素子のみと結合している中間層素子からなる疎結合部分を有するニューラルネットワーク構造であって、
入力層素子と中間層素子との間の全ての重みを初期化する第１処理と、
評価関数を、
Ｊｆ＝１／２・（ｏ−ｔ）２＋ε’Σ｜ｗｉｊ｜
（Ｊｆ：評価関数，ε’：忘却係数，ｗｉｊ：重み，ｏ：ニューロ出力，ｔ：教師信号）
とし、この評価関数が小さくなるように入力層素子と中間層素子との間の重みの修正量を、
Δｗｉｊ’＝−η∂Ｊｆ／∂ｗｉｊ＝Δｗｉｊ−ε・ｓｇｎ（ｗｉｊ），
ｓｇｎ（ｘ）＝１（ｘ＞０），０（ｘ＝０），−１（ｘ＜０），
ε＝ηε’
（η：学習係数）
により算出する第２処理と、
第２処理を経て得られた最終的な修正量を用いて入力層素子と中間層素子との間の重みを修正する第３処理とを有し、
学習誤差が規定値以下になるまで第２処理以下の処理を繰り返し実行することを特徴とするニューラルネットワークの学習方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ニューラルネットワークを用いた各種の制御、予測、診断に関する情報処理分野におけるニューラルネットワークの学習方法に関するものである。
【背景技術】
【０００２】
周知のようにニューラルネットワークは学習能力を持ち、非線形性、パターンマッチング性能に優れており、制御、予測、診断等の多くの分野に用いられている。
このニューラルネットワークとしては多くの構造が提案されているが、実用化されたその多くは階層型、特に３階層型のものがほとんどである。階層型のニューラルネットワークは、通常バックプロパゲーション法（誤差逆伝播法）と呼ばれるアルゴリズムにより学習し、内部の結合状態が調整される。こうして学習したニューラルネットワークは、学習データと同一の入力データを与えると学習データとほぼ同一の出力をする。また、学習データに近い入力を与えると学習データに近い出力をする特徴がある。
【０００３】
最小自乗法によって構築される回帰式と比較すると、ニューラルネットワークは非線形性に優れているが、内部構造が複雑で解析が困難なため、未知データに対してはどのような出力をするか分からない欠点がある。  従来のニューラルネットワークを解析する方法としては、内部構造を直接解析する例として、代表的な以下の非特許文献１〜３の３例がある。
【０００４】
非特許文献１の方法は、忘却の概念によりニューラルネットワークの不要な結合を削除し、必要な結合のみを残す方法により、内部解析を行う方法である。パターン認識の分野において、その有効性が示されている。
【０００５】
非特許文献２では、ファジィとニューロが融合した新しい構造のファジィニューラルネットワークにより、内部解析を可能にしている。
非特許文献３では、分散ニューラルネットワークと言われる特殊構造をもつニューラルネットワークよりファジィ規則を抽出することで解析を行っている。
【０００６】
また、直接的な内部解析は行っていないが、出力値の説明・信頼性の評価方法として、特許文献１の「データ学習装置およびプラント制御装置」、特許文献２の「ニューラルネットワークの出力値の評価装置，評価方法及び記憶媒体」がある。何れの方法も、予測・制御時の入力データに近い値を学習データより検索して表示する方法である。
【０００７】
ニューラルネットワークの学習方法はバックプロパゲーション法が一般的であるが、性能の点で問題が指摘されている。すなわち、バックプロパゲーション法ではニューラルネットワークの階層数や素子数を事前に決定する必要があるが、これらに関する情報が事前に得られることはなく、ニューラルネットワークを最適化するためには階層数や素子数を試行錯誤的に探索する必要がある。特に、ニューラルネットワークの内部構造が複雑な場合には、探索に時間と手間がかかる。また、バックプロパゲーション法により得られた学習後のニューラルネットワークはブラックボックスとなり、中間層素子の意味付けが困難な場合が多い。
【０００８】
これらの問題点に鑑み、特許文献３の「ニューラルネットワークの最適化学習方法」や、特許文献４の「ニューラルネットワークの最適化学習方法」等、不要な中間層素子や結合を削減する学習方法が近年提案されている。これらの学習アルゴリズムを使用すると、非常にコンパクトで性能の良いニューラルネットワークを構築することが可能である。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平１０−７４１８８号公報
【特許文献２】特願平１１−３２２１３０号公報
【特許文献３】特願平１１−０６６１６５号公報
【特許文献４】特願２０００−７１０１１号公報
【非特許文献】
【００１０】
【非特許文献１】「ニューラルネットワークの構造学習による規則性の発見と汎化」：日本神経回路学会誌、Vol.1, No.2(1994)
【非特許文献２】「ファジィニューラルネットワークの構成法と学習法」：日本ファジィ学会誌、Vol.4, No5.(1992)
【非特許文献３】「ニューラルネットワークを用いたファジーIF-THENルールの自動抽出」：電気学会論文誌Ｃ，Vol.110-C,No.3,(1990)
【発明の概要】
【発明が解決しようとする課題】
【００１１】
ニューラルネットワークはその学習能力、非線形能力、パターンマッチング性能等、優れた能力のため多くの分野において利用されているが、一般に内部構造が非線形かつ複雑なため、その出力値がどうして出力されたかを理解し易く説明することが困難であった。
【００１２】
前記特許文献１および２の従来技術は、対象状態の入力データに近い学習データを検索して表示する方法であるが、内部解析をしていないため学習データにない未知の入力データに対しては説明不能である。
【００１３】
また、前記非特許文献１，２，３の従来技術では、内部解析を行っているため、未知の入力状態に対してもどのような出力が得られるかが分かる。しかし、非特許文献１の従来技術はパターン認識のような離散的な問題では有効であるが、連続値を対象とする問題は扱えない欠点がある。非特許文献２，３の従来技術は、通常のニューラルネットワーク構造とは完全に異なる特殊構造のニューラルネットワークを用いているので、汎用性に乏しい。特に、非特許文献２の従来技術はその構造上、入力因子が多くなると指数関数的に学習時間が増大し、またその能力も通常のニューラルネットワークには及ばない。更に、非特許文献３の従来技術は、ニューラルネットワーク構造が複雑であるばかりでなく、その解析方法も難しく、また抽出したファジィ規則も単純ではないという問題がある。
【００１４】
そして、前記特許文献３，４の従来技術は、コンパクトな構造が得られる利点があるが、構造自体は従来のニューラルネットワークと同じであるので、内部解析を行うことは不可能である。
【００１５】
そこで本発明の解決課題は、通常の階層型ニューラルネットワークと完全に互換性があってその内部解析が容易である構造のニューラルネットワークの学習方法を提供しようとするものである。
【００１６】
例えば、ｙ＝ａｘ1＋ｂｘ2＋ｃｘ1ｘ2＋ｄ（ｘ1，ｘ2は入力変数、ｙは出力変数、ａ，ｂ，ｃ，ｄは係数）として表されるような、従来技術の回帰式の場合では、
（１）出力の要因が明確である（ｘ1，ｘ2の要因により変化することが明確である）、
（２）各要因の働きが明確である（ｘ1，ｘ2の独立した成分（回帰式の右辺第１項、第２項）とその相互作用の成分（同第３項）から成り立つ）、
（３）各要因の入出力に対する影響度合いが明確である（ｘ1，ｘ2，ｘ1ｘ2の影響度合いは、ａ，ｂ，ｃであり、固定分としてｄがある）、といった特徴があり、これらの特徴によって内部解析が容易になっている。
【００１７】
従って、本発明は、このような回帰式の解析の容易さを既存のニューラルネットワークによって実現しようとするものであり、また、従来のニューラルネットワークと互換性のある構造によって既存システムへの適用を容易にし、更にその性能も現状と同等であるニューラルネットワークの学習方法を提供しようとするものである。
【課題を解決するための手段】
【００１８】
上記課題を解決するため、請求項１記載の発明は、計算機を用いて複数の入力層素子及び複数の中間層素子を有する階層型構造のニューラルネットワークを学習するためのニューラルネットワークの学習方法において、
入力層素子と中間層素子との間の全ての重みを初期化する第１ステップと、
学習前に、任意の複数のグループに分類された複数の入力層素子と中間層素子との間の任意の重みを０として結合を削除し、一部のグループの入力層素子のみと結合している中間層素子からなる疎結合部分を有するニューラルネットワーク構造を生成する第２ステップと、
評価関数を、
Ｊｆ＝１／２・（ｏ−ｔ）２＋ε’Σ｜ｗｉｊ｜
（Ｊｆ：評価関数，ε’：忘却係数，ｗｉｊ：重み，ｏ：ニューロ出力，ｔ：教師信号）
とし、この評価関数が小さくなるように入力層素子と中間層素子との間の重みの修正量を、
Δｗｉｊ’＝−η∂Ｊｆ／∂ｗｉｊ＝Δｗｉｊ−ε・ｓｇｎ（ｗｉｊ），
ｓｇｎ（ｘ）＝１（ｘ＞０），０（ｘ＝０），−１（ｘ＜０），
ε＝ηε’
（η：学習係数）
により算出する第３ステップと、
重みの値を０とした入力層素子と中間層素子との間の重みの修正量を０にする第４ステップと、
第３ステップ及び第４ステップを経て得られた最終的な修正量を用いて入力層素子と中間層素子との間の重みを修正する第５ステップとを有し、
学習誤差が規定値以下になるまで第３ステップ以下の処理を繰り返し実行するものである。
【００１９】
請求項２記載の発明は、請求項１における第２ステップにおいて、
複数の入力因子について学習データの最大・最小・平均・標準偏差の統計指標を用いて予め定めた判別式により評価値を求め、前記複数の入力因子を前記評価値に基づいて複数のグループに分類し、それらのグループごとに疎結合部分を有するニューラルネットワーク構造を生成するものである。
【００２０】
請求項３記載の発明は、請求項１における第２ステップにおいて、
複数の入力因子について学習データの入力因子間の相関係数を求め、この相関係数が一定値以上の入力因子同士のグループを形成して複数のグループに分類し、それらのグループごとに疎結合部分を有するニューラルネットワーク構造を生成するものである。
【００２１】
請求項４記載の発明は、請求項１における第２ステップにおいて、
複数の入力因子について学習データの入力と出力との間の相関係数を求め、この相関係数が所定の範囲にある入力因子同士のグループを形成して複数のグループに分類し、それらのグループごとに疎結合部分を有するニューラルネットワーク構造を生成するものである。
【００２２】
請求項５記載の発明は、計算機を用いて複数の入力層素子及び複数の中間層素子を有する階層型構造のニューラルネットワークを学習するためのニューラルネットワークの学習方法において、
前記ニューラルネットワークの構造は、任意の複数のグループに分類された複数の入力層素子と中間層素子との間の任意の結合を削除し、一部のグループの入力層素子のみと結合している中間層素子からなる疎結合部分を有するニューラルネットワーク構造であって、
入力層素子と中間層素子との間の全ての重みを初期化する第１処理と、
評価関数を、
Ｊｆ＝１／２・（ｏ−ｔ）２＋ε’Σ｜ｗｉｊ｜
（Ｊｆ：評価関数，ε’：忘却係数，ｗｉｊ：重み，ｏ：ニューロ出力，ｔ：教師信号）
とし、この評価関数が小さくなるように入力層素子と中間層素子との間の重みの修正量を、
Δｗｉｊ’＝−η∂Ｊｆ／∂ｗｉｊ＝Δｗｉｊ−ε・ｓｇｎ（ｗｉｊ），
ｓｇｎ（ｘ）＝１（ｘ＞０），０（ｘ＝０），−１（ｘ＜０），
ε＝ηε’
（η：学習係数）
により算出する第２処理と、
第２処理を経て得られた最終的な修正量を用いて入力層素子と中間層素子との間の重みを修正する第３処理とを有し、
学習誤差が規定値以下になるまで第２処理以下の処理を繰り返し実行するものである。
【発明の効果】
【００２３】
本願の請求項１または５に係る学習方法の発明によれば、従来のニューラルネットワークと互換性があり、容易に置き換えることが可能なニューラルネットワークを構築することができる。また、回帰式と同様に、出力と入力との因果関係を容易に把握することが可能であり、学習データにない未知のデータに対しても、出力値を容易に推定することができる。
【００２４】
そのため、運用者の感覚と違う解析結果が出た場合には、ニューラルネットワークの再学習などの処理を事前に行うことが可能である。
また、本願の請求項２〜４に係る学習方法発明によれば、ニューラルネットワーク構造を学習データの関係から自動的に決定することができる。実施例でも説明したように、第２３実施形態に係る発明では入力因子を大まかにグループ化するので、比較的、人間の感覚に一致した構造が得られやすい。
【００２５】
請求項３に係る学習方法の発明は、かなり似通った入力因子同士しかグループ分けしないため（細かく分類するため）、将来どのように解析するかわからない場合のように未知の現象を解析するときには、多くの入力因子（入力因子グループ）について解析が可能であり、解析時に効果を発揮する。
【００２６】
請求項４に係る発明は請求項３に係る発明を改良したものであり、入力因子の数が増加した時には簡易的な方法でグループ分けを行うため、計算量が少ない利点がある。
【図面の簡単な説明】
【００２７】
【図１】第１実施形態における階層型ニューラルネットワーク構造を示す図である。
【図２】従来の階層型ニューラルネットワーク構造を示す図である。
【図３】階層型ニューラルネットワークの結合係数を示す図である。
【図４】従来のニューラルネットワーク装置の構成図である。
【図５】第２実施形態の処理を示すフローチャートである。
【図６】従来のコンパクト構造化法の処理を示すフローチャートである。
【図７】第４実施形態の処理を示すフローチャートである。
【図８】第５実施形態の処理を示すフローチャートである。
【図９】第５実施形態により並び替えたニューラルネットワークの構造を示す図である。
【図１０】第６実施形態により並び替えたニューラルネットワークの構造を示す図である。
【図１１】第８実施形態による学習とそれにより構築されるニューラルネットワーク構造の変化を示す概念図である。
【図１２】第１０実施形態における入力層素子、中間層素子の有効性を判断する評価指標を示す図である。
【図１３】第１１実施形態を説明するためのニューラルネットワークの構造を示す図である。
【図１４】第１２，第１３実施形態の作用を説明するための図である。
【図１５】第１４実施形態を示すフローチャートである。
【図１６】第１４実施形態が適用される解析・診断システムの構成図である。
【図１７】第１９実施形態を示すフローチャートである。
【図１８】第１実施例における学習データ及び学習結果の説明図である。
【図１９】第１実施例における学習前のニューラルネットワークの構造を示す図である。
【図２０】第２実施例における解析対象のニューラルネットワークの構造を示す図である。
【図２１】第２実施例の作用を説明するための図である。
【図２２】第２実施例の作用を説明するための図である。
【図２３】第２実施例の作用を説明するための図である。
【図２４】第２実施例の作用を説明するための図である。
【図２５】第３実施例における予測対象ダムの上流域の模式図である。
【図２６】第３実施例における流量予測用ニューラルネットワークの説明図である。
【図２７】第３実施例におけるニューラルネットワークの入出力関係を示す図である。
【図２８】第３実施例における上流流量差分の線形度を示す図である。
【図２９】第４実施例における翌日電力需要量予測用ニューラルネットワークの説明図である。
【図３０】第４実施例におけるニューラルネットワークの入出力関係を示す図である。
【図３１】第４実施例における入力値と出力層に伝達する情報との関係を示す図である。
【図３２】第４実施例において実データを用いて入力因子の出力への影響を解析した例を示す図である。
【図３３】第４実施例において実データを用いて入力因子の出力への影響を解析した例を示す図である。
【図３４】第４実施例において実データを用いて入力因子の出力への影響を解析した例を示す図である。
【図３５】第２１実施形態の処理を示すフローチャートである。
【図３６】第２２実施形態により構築されたニューラルネットワークの構造を示す図である。
【発明を実施するための形態】
【００２８】
以下、本発明の実施形態を説明する。
（１）第１実施形態
まず、第１実施形態に係るニューラルネットワーク構造を説明する。
【００２９】
通常の階層型ニューラルネットワークは、図２に示すように入力層素子と中間層素子が全て結合している（全結合部分という）が、本発明の階層型ニューラルネットワークは、図１に示すように任意の入力層素子と任意の中間層素子間だけが結合している。すなわち、この実施形態では、全ての入力層素子と結合している中間層素子からなる全結合部分１１と、一部の入力層素子と結合している中間層素子からなる疎結合部分１２とからなっている。ここで、全結合部分１１は必ずしも必要ではなく、本発明では、複数の入力層素子のうちの一部に中間層素子が結合されてなる疎結合部分を有していれば足りる。このように、一部の入力層素子との間の重み（重み係数または結合係数）の値を０にした疎結合部分１２を設けることで、従来の階層型ニューラルネットワークと完全な互換性を持つことができる。
【００３０】
次に、従来の階層型ニューラルネットワークとの互換性について述べる。具体的に、本発明のニューラルネットワークが従来のニューラルネットワークと互換性があり、容易に既存システムに置き換え可能であることを説明する。
【００３１】
ニューラルネットワークの各重みは、図３に示すような数値配列により表現される。各層の素子の数と素子間の重みの値とにより、ニューラルネットワークの内部構造や性質が決定される。
【００３２】
従来のニューラルネットワークのデータベース構造の一例を、表1に示す。このデータベースは、入力層、中間層、出力層の素子の数と、各層の素子相互間の重みの大きさ（ｗ11，ｗ12，……，ｖ1，ｖ2等）とからなる。
【００３３】
【表１】
2011054200.tif 000003
【００３４】
本実施形態のニューラルネットワークは、このデータベースにおける入力層素子と中間層素子との間の任意の重みｗijを０にするだけで表現することが可能であり、従来のニューラルネットワークと全く同じデータベース構造を採用することが可能である。
【００３５】
次に、従来のニューラルネットワーク装置（学習部分を除く予測・診断等の部分）を図4に示す。簡単のために、図４では最小限の構成のみを示している。
この装置は、予測・診断等を行う機器や計算機であり、記憶装置（ＨＤＤ、ＲＯＭ、ＲＡＭ、外部記憶装置等）１３に学習済みのニューラルネットワークのデータベースが保存され、ニューラルネットワークの演算結果を表示・伝送装置（ディスプレイ・プリンタ・スピーカ・ＬＡＮ・電話回線等）１７に出力している。なお、１４は入力データ読み込み部、１５は重み読み込み部、１６はニューロ（ニューラルネットワーク）算出部、１８は予測・診断等の結果を保存する保存部である。
【００３６】
通常、ニューラルネットワークのデータベースは他の計算機により再学習され、定期的に更新されることが多い。本発明のニューラルネットワークは、現状のニューラルネットワークとデータベースレベルで互換性があるので、装置の改造の必要が全くない。
【００３７】
従来の階層型ニューラルネットワークは、中間層素子が入力層素子と全結合していることから、中間層部分で入力層からのデータ全てが混ざるため、入力データと出力値との関係を解析することが困難であった。しかし、本発明のニューラルネットワーク構造は疎結合部分を有し、中間層部分において入力層からのデータを任意の入力因子ごとに分離しているため、解析が容易である。入力因子の相互作用分のように分離不可能な要素は、全結合部分がある場合にはその部分で処理するため、従来と同等の精度も保証することが可能である。なお、本実施形態におけるニューラルネットワークの具体的な解析手法については後述する。
（２）第２実施形態
ニューラルネットワークの学習方法に関する第２実施形態を、図５のフローチャートを参照しつつ説明する。
【００３８】
第１ステップＡ１は、通常のニューラルネットワークの重み初期化処理である。具体的には、図２の通常のニューラルネットワークの各層の素子間の全ての重みに対して初期値を小さい数の乱数で与える。ここで、プログラム的に、入力層と中間層との間の任意の結合がないニューラルネットワーク構造を定義してもよい。この場合は、以下の第２，第４ステップの処理は不要である。
【００３９】
第２ステップＡ２は、重みを初期化したニューラルネットワークに対し、請求項１の発明のニューラルネットワーク構造に変更するための処理である。すなわち、任意の入力層素子と中間層素子との間の結合を削除する。ここで、結合を削除するための最も簡単な方法は、任意の重みの値を０に置き換える方法である。
【００４０】
第３ステップＡ３は、通常のニューラルネットワークの重み修正量の計算である。学習誤差を評価する評価関数が小さくなるように、入力層素子と中間層素子との間の重みの修正量を計算する。ここでの評価関数の一例を以下の数式１に示す。
［数式１］
Ｊ＝１／２・（ｏ−ｔ）2
なお、数式１において、Ｊ：評価関数、ｏ：ニューロ出力、ｔ：教師信号（学習目標値）である。
【００４１】
第４ステップＡ４は、請求項１の発明のニューラルネットワーク構造のための重み修正量の再修正である。第３ステップＡ３の計算により、結合がない任意の重みが再構築されることがある。それを防止するために重みを０とした結合の重みの修正量を強制的に０とする。
【００４２】
第５ステップＡ５は、重みの修正処理である。第３ステップ、第４ステップを経て計算された最終的な修正量に従って入力層素子と中間層素子との間の重みを修正する。
重みの修正量を△ｗij、重みをｗij、学習係数をαとすると、数式２により重みを修正することができる。
［数式２］
ｗij＝ｗij＋α△ｗij
なお、第３ステップＡ３以降の処理は、学習誤差が規定値以下になって学習終了が確認されるまで繰り返し行われる（ステップＡ６）。ここで、学習終了の判断は、評価関数や全学習データに対する誤差が規定値以下になったかとき、もしくは、学習回数が所定回数に達したか否かにより判断することができる。
（３）第３実施形態
第２実施形態で説明した数式１の評価関数では、学習誤差を小さくすることはできるが、不要な結合を含むことが多い。不要な結合はニューラルネットワークの構造を複雑にし、その解析を困難にする大きな原因となる。
【００４３】
このため、第３実施形態では前記第３ステップＡ３を改良することにより、不要な結合を自動的に削除することが可能になる。この実施形態で使用される評価関数は、数式３により表される。
［数式３］
Ｊf＝（出力誤差を評価する項）＋ε’（ニューラルネットワークの複雑さを評価する項）
具体的には、ニューラルネットワークの複雑さを評価する項の相違により、以下の数式４〜数式７がある。
［数式４］
Ｊf＝1/2・（ｏ−ｔ）2＋ε’Σ｜ｗij｜
［数式５］
Ｊf＝1/2・（ｏ−ｔ）2＋ε’Σｗij2
［数式６］
Ｊf＝1/2・（ｏ−ｔ）2＋
ε’（Σ｜ｗij｜＋βΣ(全結合部分の重み)｜ｗij｜）
［数式７］
Ｊf＝1/2・（ｏ−ｔ）2＋ε’（Σｗij2＋βΣ(全結合部分の重み)ｗij2）
ただし、Ｊf：忘却付き学習の評価関数、ε’：忘却係数、ｗij：重み、β：係数である。
【００４４】
ここで、ニューラルネットワークの忘却付き学習は、例えば「ニューラルネットの忘却付き構造学習」（日本ファジィ学会誌Vol.9,No.1,pp2-9(1997)）等にその学習アルゴリズムが記載されている。この忘却付き学習アルゴリズムは、出力誤差が小さく、かつ、各層間の不要な結合の生成が抑制されたニューラルネットワークを構築するものである。
【００４５】
前記数式３の評価関数では、出力誤差を評価する項が０に近いほど学習目標値に近い出力をしていることになり、また、ニューラルネットワークの複雑さを評価する項が小さいほどネットワークの構造が単純であることを示す。この評価関数値は小さければ小さい程良い。
【００４６】
前記数式６，数式７の評価関数では、全結合部分の重みを多く加算しているので、全結合部分の成長を抑制することが可能である。全結合部分は従来のニューラルネットワークと同じ構造であるため解析困難な部分である。解析のためには疎結合部分の成長が欠かせない。このため、数式６，数式７の評価関数は、全結合部分の成長が抑制されるため解析が容易な構造になり易い特徴を持つ。
【００４７】
また、数式４，数式５の出力誤差を評価する項は何れもニューロ出力値から学習目標値を引いた出力誤差の２乗であるが、ニューラルネットワークの複雑さを評価する項は、数式４では重みの絶対値の和であり、数式５では重みの２乗和である。
【００４８】
ネットワークの複雑さを評価するために重みを用いる理由は、例えば重みが０ならば結合はないことになり、結合が少ないほどネットワークの構造が単純になるからである。
例えば数式４の評価関数を用いる場合、実際の重みの修正には次の数式８を用いる。なお、数式８において、η：学習係数である。
［数式８］
【００４９】
【数１】
2011054200.tif 000004
【００５０】
例えば、第３実施例において上流流量変化が出力に対し飽和する現象が生じた場合など、ニューラルネットワークの再学習などの処理を事前に行うことが可能である。特に、ダム流入量予測では、洪水時において下流域の安全性を確保することが重要であり、そのためにも正確な流入量予測が不可欠である。
【００５１】
本実施例においては、洪水発生前に、ニューラルネットワークを適切に再学習させることができる。また、再学習が間に合わなかったときにも、不適切な予測を把握することが可能である。
【００５２】
また、第３実施例では、入力データが０．７以上を越える急激な上流流量差分は飽和してしまうため、ニューラルネットワークは実際よりも低めに予測する傾向があるので、大きめに予測（補正）するのが有効であることを容易に把握可能である。
（４）第４実施形態
第４実施形態は、第２，第３実施形態の学習方法において、第６ステップとして、有効に作用していない不要な中間層素子をバイアス素子（入力層の入力値が変化しても出力値が変化せずに一定値を出力するバイアス素子的な振る舞いをする中間層素子をいう）に融合し、また、入力層の入力値の変化に対して同じ働きをする中間層素子同士を融合することで、中間層素子を削減する学習方法を提供するものである。第１実施形態のニューラルネットワーク構造は、内部解析を目的として疎結合部分を設けたものである。しかし、不要な結合や中間層素子がある場合には、適切に内部解析を行えない問題がある。第３実施形態は、不要な部分を各層素子間の結合単位で削除するが、第４実施形態は中間層素子単位で削除することが特徴である。
【００５３】
また、学習中に中間層素子が削減されるため、計算量も削減されて学習の高速化にも効果的である。
中間層素子を削減するための手法として、従来技術である図６のコンパクト構造化法（コンパクト構造化法については、例えば増田達也ほかによる「隠れユニットの合成による階層型ニューラルネットワークのコンパクト構造化」（計測自動制御学会論文集Vol.28,No.4,pp.519-527(1992)を参照）をそのまま適用しても比較的良好な結果が得られるが、図7に示すような処理を行うことにより更に良好な結果が得られる。
【００５４】
簡単のため、まず図6を最初に説明する。図6における初期化ステップＢ１とは、図５における第１ステップＡ１、第２ステップＡ２に相当し、図６の学習処理ステップＢ２とは、図５の第３ステップＡ３、第４ステップＡ４、第５ステップＡ５に相当し、図６の学習終了を判断するステップＢ９が図５のステップＡ６に相当する。また、図６のコンパクト構造化部分の各ステップＢ４〜Ｂ８が、図５に図示されていない本実施形態固有の第６ステップに相当する。
【００５５】
図６のステップＢ３においてコンパクト構造化に移行する条件としては、例えば、学習回数が所定値に達したことや学習誤差が減少しなくなったこと等がある。
コンパクト構造化部分において、まず最初に各中間層素子出力の分散を算出する（ステップＢ４）。分散とは、中間層素子の重要度や有効性を示す評価指標にも使われる統計指標であり、例えば中間層素子の出力値系列を用いて数式９により表される。
［数式９］
【００５６】
【数２】
2011054200.tif 000005
【００５７】
ステップＢ４で算出した複数の分散のうち一つでも規定値以下のものがあれば、これを不要中間層素子と見なしてバイアス素子に融合する（ステップＢ５，Ｂ６）。全ての分散が規定値以下でないときには、中間層素子の各相関係数を算出する（ステップＢ７）。例えば、中間層素子が３つある場合には、素子１−素子２、素子２−素子３、素子３−素子１の３通りの相関係数を算出し、このうち相関係数が規定値以上である中間層素子同士を、情報伝達的に同じ働きをする素子と見なして融合する（ステップＢ８，Ｂ６）。ステップＢ８における規定値は、相似度を示す−１〜＋１の指標であり、±１に近いほど相関が高く、０に近いほど相関が低いものとする。
【００５８】
なお、相関係数は、二つの中間層素子の出力値系列を用いて、例えば数式１０によって表される。
［数式１０］
【００５９】
【数３】
2011054200.tif 000006
【００６０】
複数の中間層素子の分散を算出して多数の分散が規定値以下の場合、最も分散が小さい中間層素子とバイアス素子とを融合させる。一度に融合可能な全ての素子を融合させることも考えられるが、一度のコンパクト構造化に対し融合回数を１回に制限した方が良好な学習結果が得られることが多い。
【００６１】
また、相関係数の値が規定値以上である中間層素子の組み合わせが多数ある場合には、相関係数の値が最も大きい中間層素子同士の組み合わせを融合させる。この場合も、融合回数を１回に制限した方が良好な学習結果が得られることが多いためである。
【００６２】
ステップＢ９では、学習回数が所定値に達した時点で学習終了と判断する。
次に、図7に基づいて本発明の実施形態を説明する。基本的な考えは図6と同様であるが、過度の融合を防止するための処理を有する点が特徴となっている。
この実施形態では、ニューラルネットワークの学習中は中間層素子同士の融合をある程度制限している。ニューラルネットワークの中間層素子は、学習の進行に伴って成長し、役割が分化する。学習初期段階において出力値系列が同じような中間層素子（相関が高い）同士であっても学習の進行に伴い出力値系列が変化して相関が低くなる可能性がある。そこで、学習中は融合をある程度制限し、学習終了後に中間層素子の役割が十分明確になった時点で融合を促進するようにした。
【００６３】
まず、図７のステップＣ１〜Ｃ３，Ｃ７は、図６のＢ１〜Ｂ３，Ｂ９と同様である。図７のステップＣ３からジャンプしたコンパクト構造化１（学習中のコンパクト構造化）の処理では、分散の小さい不要な中間層素子とバイアス素子との融合は行うが、相関の高い中間層素子同士の融合は禁止している。具体的には、ステップＣ４で算出した分散が規定値以下の場合に中間層素子とバイアス素子とを融合する（ステップＣ５，Ｃ６）。特に、不要な中間層素子が２つ以上のときにのみバイアス素子と融合し、常に不要な中間層素子を１つ以上残す処理を加えれば、過融合を効果的に防ぐことができる。
【００６４】
学習終了後のコンパクト構造化２の処理では、分散の小さい不要な中間層素子とバイアス素子との融合（ステップＣ９のYes分岐，Ｃ１０，Ｃ１３，Ｃ１４）と、相関の高い中間層素子同士の融合（ステップＣ９のNo分岐，Ｃ１１，Ｃ１２，Ｃ１０，Ｃ１３，Ｃ１４）との両方を行う。
また、分散が規定値以下または相関係数が規定値以上の場合にはニューラルネットワークの各層の素子間の重みを記憶することによってニューラルネットワークを保存し（ステップＣ１０）、学習誤差を算出してから中間層素子の融合を行う（ステップＣ１３，Ｃ１４）。なお、学習誤差の算出は、保存したニューラルネットワークを用いて実際の出力であるニューラルネットワーク出力値と学習目標値との誤差を検出する。その後、学習誤差を再度算出し（ステップＣ１５）、その誤差を融合前の誤差と比較して悪化するか否かを判断する（ステップＣ１６）。学習誤差が悪化するときには融合を禁止し、ステップＣ１７により融合前のニューラルネットワークを復元する（各層の素子間の重みを融合前の値に戻す）。
【００６５】
このように、コンパクト構造化２では、融合した後の学習誤差が融合前よりも悪化する場合には融合前のニューラルネットワークを復元し、学習誤差が改善される場合にのみ融合を実施することにより、コンパクト構造化における過融合を防止している。
【００６６】
本実施形態において、融合のためのしきい値（分散や相関係数と比較する規定値）を中間層素子ごとに変化させてもよい。例えば、疎結合につながる中間層素子のしきい値を厳しくして融合を抑制し、全結合につながる中間層素子のしきい値を緩くして融合を促進することにより、全結合部分を小さくすることが可能である。
（５）第５実施形態
第３，第４実施形態のアルゴリズムにより、学習中に生じた不要な中間層素子や不要な結合を削除することが可能であるが、基本的には疎結合部分と全結合部分との成長速度に差がないため、疎結合部分の学習が速やかに行われず、疎結合部分が充分に成長しない可能性がある。もし、疎結合部分が少なく全結合部分が多い場合には、従来のニューラルネットワークと同様に解析が困難である。そこで、この実施形態では疎結合部分の学習を加速して成長を促進するような評価関数を導入する。
【００６７】
図８は、本実施形態の処理を示すフローチャートである。第２実施形態である図５と比較すると、第２−１ステップとして中間層素子の並び替えステップＤ３が追加されたことと、第３ステップＤ４の修正量算出のための評価関数が変更されたことに特徴がある。
【００６８】
本実施形態の中間層素子の並び替えステップＤ３では、任意の結合を削除して形成された図２に示すニューラルネットワークを並び替え、図９のように疎結合部分１２をひとまとめにして部分ニューロ１（グループ１）と定義し、疎結合部分１２と全結合部分１１を含む全体を部分ニューロ２（グループ２）と定義する。図２のケースでは、疎結合部分１２が左側にまとまっているため、図９では並び替えが行われていないが、一般的には疎結合部分を並び替えてひとまとめにし、部分ニューロ１，２を定義する必要がある。
【００６９】
次に、第３ステップＤ４において使用する評価関数を説明する。上述した部分ニューロ１の出力をＯ1，部分ニューロ２の出力（通常のニューロ出力）をＯ2、教師信号（学習目標値）をｔとすると、部分ニューロ１，２の評価関数Ｊ1，Ｊ2を数式１１とする。
［数式１１］
Ｊ1＝１／２・（Ｏ1−ｔ）2，
Ｊ2＝１／２・（Ｏ2−ｔ）2  （通常の評価関数）
実際の評価関数は、２つの評価関数Ｊ1，Ｊ2をまとめて数式１２のようになる。
［数式１２］
Ｊ＝γ1Ｊ1＋γ2Ｊ2
数式１２の評価関数Ｊは重畳エネルギー関数と呼ばれており、「重畳エネルギー関数による多層パーセプトロンの冗長性削減」（電子情報通信学会論文誌D-II,Vol.J80-D-II,No.9,pp.2532-2540 1997年9月）等に詳しく説明されている。なお、数式１２におけるγ1，γ2は、部分ニューロ１，２の評価関数Ｊ1，Ｊ2（部分エネルギー関数）の重みを示す。
【００７０】
この重畳エネルギー関数が最小になるとき、不要な分散表現が抑制され、かつ中間層素子の重要度順に並んだニューラルネットワークを得ることができる。また、重畳エネルギー関数では、中間層素子のうち上位側（図９における左側）の素子に関する結合ほど、少ない素子数で学習目標値を生成するように学習が進行する特徴がある。
【００７１】
上記分散表現とは、一つでも足りる結合が複数の結合に分散されること、つまり、その結果多くの結合が必要になることを示し、不要な分散表現が多い場合にはそれだけ結合も多く、ニューラルネットワーク構造は複雑化、冗長化する。
【００７２】
数式１２の評価関数Ｊにおいて、Ｊ2は全結合部分１１及び疎結合部分１２を含む通常の評価関数であるが、Ｊ1は疎結合部分１２の評価関数である。疎結合部分１２はＪ1，Ｊ2両方に関わっているため、この疎結合部分１２の誤差を早く減少させようとして学習（評価関数Ｊを用いた重み修正量の計算）が加速される。
【００７３】
これにより、分散表現の発生が抑制されてニューラルネットワーク構造の簡素化が可能になる。
（６）第６実施形態
第６実施形態は、第５実施形態を改良したものである。
【００７４】
上述した第５実施形態では、疎結合部分１２の中間層素子同士は互いに同じ速度で学習が進んで成長し、全結合部分１１の中間層素子同士も互いに同じ速度で学習が進んで成長する。同じ速度で成長した場合には、１つの結合が複数の中間層素子に分散して記憶され、中間層素子が多く必要になることがある。このような場合は、中間層素子の重度は低下するが不要と判断するほど低下はしないので、第３，第４実施形態をもってしても中間層素子を削除できないことがある。
【００７５】
つまり、第５実施形態では、疎結合部分１２と全結合部分１１とで比較すると疎結合部分の成長が早いが、疎結合部分１２の中間層素子同士、全結合部分１１の中間層素子同士では成長の差がないので、充分に中間層素子を削減できない可能性がある。
【００７６】
以下に、第６実施形態を説明する。第６実施形態では、第５実施形態における中間層素子の並び替えステップＤ３及び第３ステップＤ４を改良する。中間層素子の並び替えステップでは、図１０に示すように疎結合部分の中間層素子と全結合部分の中間層素子とを交互に配置してＨ個の部分ニューロ（図１０の例ではＨ＝６）を定義する。そして、改良された第３ステップでは、数式１３のようなＨ個の部分ニューロの評価関数の和を評価関数（重畳エネルギー関数）として使用し、重みの修正量を算出する。数式１３において、γｉは、部分ニューロの評価関数Ｊｉの重みを示す。
［数式１３］
【００７７】
【数４】
2011054200.tif 000007
【００７８】
図１０のニューラルネットワークは、部分ニューロ１における結合が最も早く成長し、部分ニューロ６における結合は相対的に成長が抑制される。このことは、重畳エネルギー関数においては、中間層素子のうち上位側（図１０における左側）の素子に関する結合ほど、少ない素子数で学習目標値を生成するように学習が進行して成長するという特徴による。つまり、本実施形態では、疎結合部分の中間層素子間でも成長速度が異なるし、疎結合部分の中間層素子と全結合部分の中間層素子との間でも成長速度が異なる。このように、各部分ニューロにおける成長速度に差をつけることで、中間層素子の要・不要の判定を容易に行うことができ、不要な中間層素子の削除も迅速に行われる。
（７）第７実施形態
第７実施形態は、第５，第６実施形態の評価関数の改良に関するものである。
【００７９】
第５，第６実施形態は、学習過程において中間層素子ごとに成長速度（学習速度）に差を付けるような評価関数を用いて重みの修正量を算出することにより不要な中間層素子を抑制する方法である。つまり、中間層素子ごとに作用する。一方、第２または第３実施形態は、評価関数により計算した修正量を用いて重みを修正するものであり、いわば個別の重みごとに作用する。これらの両者を融合させることで、不要な中間層素子や結合が非常に少ないニューラルネットワークを構築することができ、解析の容易化に寄与することができる。
【００８０】
本発明の実施形態における評価関数は、以下のように２つの要素より成り立つ。
評価関数＝成長速度に差を付ける評価関数＋不要な中間層素子を抑制する評価関数
具体的な評価関数は、数式１４によって表される。
［数式１４］
【００８１】
【数５】
2011054200.tif 000008
【００８２】
数式１４の右辺第１項は数式１３と同一であり、数式１２とも実質的に同一である。すなわち、この第１項によって一部の中間層素子の成長を促す働きがある。
また、数式１４の右辺第２項は、数式４〜数式７の何れを使用しても良い。特に、数式６または数式７の何れかを適用すれば、前述のように全結合部分の生成を抑制できるため、疎結合部分の成長が相対的に早くなり、解析容易なニューラルネットワーク構造となる。
（８）第８実施形態
第８実施形態は、第５，第６実施形態の学習方法を交互に複数回実施する方法である。
【００８３】
第６実施形態の方法による学習は、疎結合部分、全結合部分の中間層素子が交互に並んでいるため、全結合部分の中間層素子が全く必要としない問題に対しても、全結合部分が構築される可能性がある。よって、第８実施形態では、第６実施形態による学習後に第５実施形態で再学習することで、不必要に生じた全結合部分の中間層素子を抑制する。また、この処理を複数回繰り返すことにより、一層最適な構造に近づけることができる。勿論、第２実施形態や第４実施形態を組み合わせることで、更に解析容易な構造が得られるのは言うまでもない。
【００８４】
図１１は、本発明の実施形態による学習とそれにより構築されるニューラルネットワーク構造の変化を示す概念図である。なお、このニューラルネットワークは、一例として電力需要量を予測するためのものであり、入力層には電力、気象、特異日等のデータが入力されている。
【００８５】
図１１の（ａ）段階は学習開始前のニューラルネットワーク構造であり、各サブネットワークごとに２つの中間層素子（合計８個）を有している。このうち、中間層素子１〜６は疎結合部分、中間層素子７，８は全結合部分（相互作用分）を構成している。
（ｂ）は第６実施形態による学習（学習段階１）であり、疎結合部分、全結合部分の中間層素子が交互に配置されている。また、部分ニューロは４個形成される。
（ｃ）は第５実施形態による学習（学習段階２）である。（ｂ）の学習を経ているため、成長によっていくつかの中間層素子が削減されている（第３，第４実施形態を付加していた場合）。（ｃ）では部分ニューロは２個となっており、疎結合部分が部分ニューロ１を、疎結合部分及び全結合部分が部分ニューロ２を構成している。
【００８６】
第８実施形態では、少なくとも上記（ｂ），（ｃ）の学習を交互に繰り返して行うことにより、不要な中間層素子を削減することが可能である。特に、（ｂ），（ｃ）の学習を複数回、交互に繰り返すと一層効果的である。なお、（ｄ）は、通常の重畳エネルギー関数法による学習を（ｃ）の後に行った結果であり、このように他の学習アルゴリズムと組み合わせても良い。（ｅ）は、学習終了後に構築されるニューラルネットワーク構造である。当初の構造に比べて中間層素子が大幅に削減され、必要な中間層素子、重み結合のみによってネットワークが構築されている。
（９）第９実施形態
次に、第９実施形態による解析方法を説明する。この発明は、本発明の方法により充分に学習をし、不要な中間層素子や結合が削除されたニューラルネットワークを対象として、その素子間の結合状態（入力層素子から出力層素子に至る経路等）から内部状態を解析する手法である。典型的なパターンを表２に示す。
【００８７】
【表２】
2011054200.tif 000009
【００８８】
表２に示すように、例えば入力層から出力層までに結合が１経路しか存在しない場合には、一元一次関数で示されるように入出力関係が線形である可能性が高く、また、複数経路を持つ場合には、一元二次関数で示されるように入出力関係が非線形である可能性が高い。更に、中間層素子に複数の入力層素子との結合が存在する場合には、二元二次関数のように入力因子の相互作用を有する非線形である可能性が高い。
【００８９】
このように、本発明の方法により学習されたニューラルネットワークを対象として、素子間の結合状態により線形性、非線形性といった、入力因子（入力層素子及びこの素子に入力されるデータを総称した概念である）の出力への影響度合いを大まかに解析することができる。
（１０）第１０実施形態
第１０実施形態は、入力層素子・中間層素子の評価指標からニューラルネットワーク構造を解析する方法である。解析の対象となるのは請求項１の発明によるニューラルネットワークであり、疎結合部分を有するニューラルネットワークである。
【００９０】
ここで、評価指標は、goodness factor, effectiveness factor, 分散、逆写像の４種
類である。以下、これら４つの評価指標を概説するが、評価指標そのものは本発明の趣旨ではない。
【００９１】
表３に評価指標を用いた解析例を示す。単独または複数の評価指標により入力層素子、中間層素子を評価することで、ニュ−ラルネットワ−クの内部構造を解析することができる。
【００９２】
【表３】
2011054200.tif 000010
【００９３】
（１）goodness factor（入力層素子、中間層素子について使用）
入力信号を利用する方法である。これは、中間層素子から出力層素子へ出力される入力信号の総和であり、中間層素子の有効度を表す指標である。この値が小さいほど出力層素子への影響が少ないため、「不良」素子とみなされる。
（２）effectiveness factor（入力層素子、中間層素子について使用）
重みを利用する方法である。effectiveness factorは中間層素子に結合している全ての重みの二乗和で表される。これは、ニュ−ラルネットワ−ク収束時において、素子に結合している全ての重みが小さければその素子の有効度は低く、「不良」素子であるという考え方である。この方法は、基本的に重みだけで判断が可能なため、前述のgoodness factorのように誤差や出力の計算が不要であり、計算量が少ないという特徴がある。
（３）分散（中間層について使用）
中間層素子の活性度合いを利用する方法である。不要素子は、入力パターンが変化しても出力が変化しないという考え方である。複数の検査用パターンを入力して、中間層素子の出力の分散が大きいもの（出力の変化が大きいもの）を有効素子、分散が小さいものを不要素子とする。
（４）逆写像（入力層について使用）
シグモイド関数を無視し、ニューロ内部構造を線形近似する手法である。入力層から出力層へ至る重みを積和することで、感度の近似値を求める。この指標は、effectiveness factor同様に計算量が少ない利点がある。
【００９４】
図１２は上記各種の評価指標を説明するための図であり、入力層素子がＩ個、中間層素子がＪ個、出力層素子がＫ個の場合を示している。同図には、各評価指標であるgoodness factor, effectiveness factor, 分散、逆写像の計算式もそれぞれ併記してある。
【００９５】
また、前記表３の解析例において、表３の上段に示すように入力層素子ｘ1，ｘ2の各指標の大きさが全て同程度である場合や、表３の中段に示すように特定の入力層素子に結合される中間層素子の各指標の大きさが同程度である場合には、入力層素子は対象構造である可能性が大きいと判断できる。更に、表３の下段に示すごとく、入力層素子の各指標の大きさに違いがある場合には、入出力関係を示す関数の係数の大きさに違いがあると判断することができる。
（１１）第１１実施形態
この実施形態は、任意のデータを入力したときの、中間層素子から出力層素子に伝達される情報量から入力因子の出力への影響を解析する方法である。なお、この実施形態も、請求項１の発明によるニューラルネットワークを対象としている。
【００９６】
以下、この発明の概念を説明する。図１３において、中間層から出力層に伝達される情報は中間層出力Ｏと重みｖとの積和である。つまり、この情報は数式１５によって表される。
［数式１５］
【００９７】
【数６】
2011054200.tif 000011
【００９８】
ここで、｜ｖiＯi｜が最も大きい値を出力する中間層素子は、出力への影響が最も強く、更にその中間層素子に結合されている入力因子の影響も強いと言える。
例えば、図１３において、中間層素子１による｜ｖ1Ｏ1｜が最も大きい場合には、入力１の影響が強く、中間層素子２による｜ｖ2Ｏ2｜が最も大きい場合には入力１，入力２の相互作用分が強いと言える。
【００９９】
このため本発明の実施形態では、各中間層素子から出力層素子に伝達される情報量の大きさを検出することで中間層素子、出力層素子及び入力層素子の間の結合の強さを知ることができ、ニューラルネットワークにおける入力因子の出力への影響を解析することができる。
（１２）第１２実施形態
第１２実施形態は、任意のデータを入力したときの、入力データと中間層素子から出力層素子へ伝達される情報との相関関係から、入力因子の出力への影響を解析する方法である。この発明も、請求項１記載のニューラルネットワークを対象とする。
【０１００】
以下、本発明の概念を説明する。図１３のニューラルネットワークに、（入力１，入力２）＝（０，０）〜（１，１）の０.２刻みの複数のデータを入力し、そのときに出力層
素子へ伝達される情報量が図１４のようになったとする。すなわち、中間層素子１については情報量が次第に増加し、中間層素子２についてはほぼ一定であり、中間層素子３については次第に減少していくとする。これから、以下のことが分かる。
（ａ）中間層素子１は正の相関、つまり、入力１は出力に対し正の相関がある。
（ｂ）中間層素子２は出力にほとんど影響を与えない。つまり、中間層素子２に結合している入力１、入力２の相互作用はほとんどない。
（ｃ）中間層素子３は、負の相関、つまり、入力２は出力に対し負の相関がある。
【０１０１】
また、以上の（ａ）〜（ｃ）より、（ｄ）が導かれる。
（ｄ）出力を大きくするためには、入力１に大きな値を入力し、入力２に小さな値を入力すればよい。
【０１０２】
以上のように、入力値に対する中間層素子の挙動（それぞれの中間層素子から出力層へ伝達される情報量）を検出することにより、未知データ（学習していないｘ1，ｘ2のパターン）に対しても、各入力因子や中間層素子の働きが判っているために出力値を容易に推定することができる。
（１３）第１３実施形態
次に、第１３実施形態を説明する。請求項１の発明に係るニューラルネットワークは、その内部に数式１６で示されるシグモイド関数を使用している。
［数式１６］
ｙ＝１／｛１＋ｅｘｐ（−ｘ）｝
シグモイド関数の出力範囲は０〜１であるため、実際に使用するときには、０〜１や０．１〜０．９の値に正規化して用いることが多い。例えば、気温を予測するニューラルネットワークでは、−２０〜＋５０℃を０〜１にし、株価を予測するニューラルネットワークでは、１日の変動幅として−２０００〜＋２０００円を０〜１にする。
【０１０３】
しかし、学習により構築したニューラルネットワークが期待通りの範囲の値を出力する保証はなく、狭い範囲の値しか出力しないことも多い。
そこで本発明は、ニューラルネットワーク出力の実際の上下限値を解析する方法に関する。
【０１０４】
その手順は、第１２実施形態と同様に、図１４に示すような、入力データと中間層素子から出力層素子へ伝達される情報量との関係を調べる。図１４の例において、出力層素子へ伝達される情報量を最小にするためには、中間層素子１（入力因子は入力１のみ）に結合された入力１の入力を０にし、中間層素子３（入力因子は入力２のみ）に結合された入力２の入力を１にすれば良いことが分かる。つまり、このニューラルネットワーク出力の下限値は、（入力１，入力２）＝（０，１）を入力したときに得られる。ちなみに、このニューラルネットワーク出力の上限値は、（入力１，入力２）＝（１，０）を入力したときに得られることになる。
（１４）第１４実施形態
第１４実施形態は、第９〜第１３実施形態によりニューラルネットワークを解析した結果、ニューラルネットワークが不合理な学習状態に陥ったことを判定するための異常判定方法に関する。また、これに付随する解析・診断システムも開示している。ニューラルネットワークの学習対象がある程度既知である場合には、第９〜第１３実施形態の解析方法によりニューラルネットワークの学習状態の良否を判定することができる。例えば、ニューラルネットワークによってダム流入量を予測する場合、ダム流入量は上流流量差分（上流流量の時間差分）との相関が非常に高く、以下の例によって学習不良と判断することが可能である。
（ａ）上流流量との結合が構築されなかった場合
（ｂ）既存の予測式と内部解析結果との相違が大きい（流量が増加しているのに、流入量が減っているなど）
図１５を参照しつつ、本発明の実施形態を説明する。
（１）学習済みニューロ読み込み（ステップＥ１）
請求項１のニューラルネットワーク構造のニューロを読み込む。ニューロを読み込むとは、その重みや素子数の定義を読み込むことである。
（２）異常判定用ＤＢ読み込み（ステップＥ２）
学習不良を判定するためのＤＢを読み込む。異常を判定するための基準は、各現象ごとに異なる。例えば、ダム流入量予測では、上述の判定項目（ａ），（ｂ）が考えられる。具体的な異常判定基準については後述する。
（３）ニューロ解析・診断（ステップＥ３）
ニューラルネットワークを請求項９〜１２の何れかの発明により解析する。そして、先に読み込んだ異常判定用ＤＢと照合して学習状態を診断する。具体的な異常判定方法については後述する。
（４）診断結果表示（ステップＥ４）
解析・診断の結果を表示し、必要に応じて警告音を発生したり外部へ伝送する。
【０１０５】
次に、本発明を実現する解析・診断システムを図１６に示す。図１６において、記憶装置２１とは、ＦＤＤ，ＨＤＤ，ＭＯ，ＲＡＭ，ＲＯＭ等の内部記憶装置と外部記憶装置を総称したものである。記憶装置２１には、ニューラルネットワークの重み、異常判定用ＤＢが保存されている。また、学習状態の診断結果も記憶装置２１に保存される。ニューロ読み込みモジュール２２、異常判定用ＤＢ読み込みモジュール２３、解析・診断モジュール２４の作用は、図１５のフローチャートで説明した通りである。
【０１０６】
解析・診断の結果は、運用者に知らせるためにＣＲＴ、プリンタ等の表示装置２６に表示（または印刷）される。この表示装置２６を持たない装置では、異常時にブザー２５により警告したり、ＬＡＮ・電話回線２７を介して他の計算機等へ伝送することも可能である。
（１５）第１５実施形態
第１５実施形態は、上述した第１４実施形態の異常判定方法において、学習対象の現象が定性的に判明しているときに、ニューラルネットワークの結合状態から異常判定を行う方法である。例えば、ダム流入量予測では、上述のように上流流量差分の影響が大きいことが定性的に判明している。つまり、入力因子としての上流流量差分につながる結合の重みが他の結合の重みと比較して一定値以下ならば異常（学習不良）と判定する方法である。ここで、上流流量差分につながる結合とは、入力層素子（上流流量差分の入力）と中間層素子との結合や、中間層素子（上流流量に関係する疎結合の中間層素子）と出力層素子との結合のことをいう。
【０１０７】
上記異常判定を実現する具体的な方法としては、異常判定データベースに、例えば上流流量差分につながる結合の重みが一定値以下の場合、もしくは他の結合の重みより一定値未満（他の重み平均の８０％未満等）の場合を異常と判定するように登録する。
（１６）第１６実施形態
第１６実施形態は、第１４実施形態の異常判定方法において、ニューラルネットワークの内部状態を示す数値指標から異常判定を行う方法である。第１５実施形態との違いは、第１５実施形態は重み自体を対象として異常判定データベースにより判定するのに対し、第１６実施形態では、第１０実施形態で説明した、goodness factor, effectiveness factor, 分散、逆写像等の、入力層素子、中間層素子の有効性を示す各種評価指標を用いて異常判定を行う点である。
【０１０８】
例えば、ダム流入量予測で異常と判定する基準は以下の通りであり、この一部もしくは複数が成立するときに、異常と判断する。
（ａ）上流流量差分に関するgoodness factorが他より低い
（ｂ）上流流量差分に関するeffectiveness factorが他より低い
（ｃ）上流流量差分に関する分散が他より低い
（ｄ）上流流量差分に関する逆写像の正負が逆（負のときに異常）
（１７）第１７実施形態
第１７実施形態は、第１４実施形態の異常判定方法において、学習対象の現象を表す数式が存在するときに、その数式とニューラルネットワークの内部状態との相関係数が一定値以下の場合には、学習不良による不合理な状態と判断して異常判定を行うものである。
【０１０９】
例えば、上述ダム流入量予測では、上流流量差分は出力に対して線形の関係であるとする。そのとき、上流流量差分に関する中間層素子出力が非線形を示す場合には学習不良による異常と判断する。
【０１１０】
それ以外の例として、翌日電力需要量予測において、気温と電力需要量とは２次の関係があることが判明している。従って、気温に関する中間層素子の出力が２次でないときには、学習不良による異常と判断する。
【０１１１】
この実施形態における具体的な異常判定には、相関係数を用いる。相関係数とは、−１〜１の範囲で出力される統計指標であり、運用者が予め異常判定データベースに設定した数式と、判定対象であるニューラルネットワークの出力の関係式との間の相関係数が一定値未満ならば、学習不良による異常と判定すればよい。
（１８）第１８実施形態
第１８実施形態は、第１４実施形態の異常判定方法において、ニューラルネットワークの出力の上限値が学習データの上限値よりも小さいとき、または、ニューラルネットワークの出力の下限値が学習データの下限値よりも大きいときに、学習不良による異常と判定する方法である。
【０１１２】
ニューラルネットワークは任意のデータを学習することで、学習データ通りに作用する内部構造を獲得する。しかし、学習不良時には、期待通りに作用しないこともある。学習不良の典型例は、上下限値の飽和である。実験データや自然現象から学習データを構築する場合には、その限界値（上下限値）のデータが不足することが多い。例えば、気温を予測するニューラルネットワークでは、１０〜２０℃のデータは豊富に用意することが可能であるが、４０℃近辺のデータは少ないので、４０℃近辺の学習不良が起こりやすい。
【０１１３】
通常、ニューラルネットワークには数十の入力因子があり、全ての入力パターンをテストすることは困難である。
本実施形態では、第１３実施形態により解析したニューラルネットワーク出力の上下限値が学習データの上下限値、もしくは期待した上下限値よりも狭い範囲であった場合には、学習不良と判断して異常判定を行う。
（１９）第１９実施形態
第１９実施形態は、ニューラルネットワークが学習不良であることが前述の第１４〜第１８実施形態等により判明したときに、自動的に再学習する方法に関する。
【０１１４】
この実施形態の処理を図１７に示す。図１７において、学習（ステップＦ２）、解析・診断処理（ステップＦ３）は、上述の各発明によって実現される。解析・診断により学習したニューラルネットワークが異常（学習不良）と判定されたとき（ステップＦ４）には、初期化（ステップＦ１）を経て、再度学習を実施する。初期化（ステップＦ１）では、学習条件、ニューラルネットワークの構造等の各種情報をニューラルネットワークに入力するが、通常は、前回の学習時と条件を変える。なお、初期化処理は省略することもできる。
（２０）第２０実施形態
第２０実施形態は、第１７実施形態において、学習状態の悪い範囲を自動的に特定し、その範囲の学習データを増加させて再学習させる方法に関する。例えば、一般に上流流量差分と出力との間には線形の関係があると言われているが、後述する図２７では非線形であり、入力データが０．８以上または０．２未満は飽和している。つまり、入力データが０．８以上と０．２未満は学習状態の悪い範囲である。
【０１１５】
通常、ニューラルネットワークの学習不良は、このようにある一定値以上または一定値以下において飽和する状態を示すことが多いため、飽和領域を検索することで容易に学習不良範囲を特定することが可能である。
【０１１６】
学習不良の原因は、その範囲の学習データが極度に不足していることが多い。従って、学習不良である範囲の学習データを増加させて再度学習させることで、良好な学習状態とすることができる。
〔実施例〕
以下、第１〜第２０実施形態に係る実施例を説明する。第１実施例は、主として第１４，第４，第８実施形態に係るものである。ここでは、簡単のために数式１７に示す２入力１出力の関数を学習させた。なお、ｘ１，ｘ２の符号は、入力層素子と入力データの両方の意味を持つものとする。
［数式１７］
ｙ＝ｘ1＋ｘ2＋ｘ1ｘ2
（ｘ1，ｘ2＝｛０.０〜１.０｝）
学習のアルゴリズムは、図１１に示したように３段階の学習を行う方法であり、第３，第４実施形態の中間層素子の融合学習方法、不要中間層素子を抑制する評価関数も組み合わせて使用している。
【０１１７】
第１段階、第２段階、第３段階で使用した各評価関数を数式１８、数式１９、数式２０にそれぞれ示す。なお、これらの数式において、γｉは部分ニューロの評価関数の重み、ε’は忘却係数、ｗは結合の重みである。
［数式１８］
【０１１８】
【数７】
2011054200.tif 000012
【０１１９】
［数式１９］
【０１２０】
【数８】
2011054200.tif 000013
【０１２１】
［数式２０］
【０１２２】
【数９】
2011054200.tif 000014
【０１２３】
このニューラルネットワークの学習誤差を表４に示す。表４によれば、誤差が極めて小さく、良好に学習できていることがわかる。
【０１２４】
【表４】
2011054200.tif 000015
【０１２５】
図１８（ａ）は、このニューラルネットワークの学習に使用した学習データｘ1，ｘ2，ｙを示し、図１８（ｂ）は学習結果を示している。
また、図１９は学習前のニューラルネットワークの構造であり、２個の入力層素子と、９個の中間層素子と、１個の出力層素子とからなっている。そして、入力層素子と中間層素子との結合関係では、入力層素子ｘ1とのみ結合している３個の中間層素子を含む疎結合部分１２Ａ及び入力層素子ｘ2とのみ結合している３個の中間層素子を含む疎結合部分１２Ｂと、全ての入力層素子ｘ1，ｘ2と結合している３個の中間層素子を含む全結合部分１１とから構成されている。
【０１２６】
第２実施例として、第１実施例により学習したニューラルネットワークの内部構造を解析する。この実施例は、主として第９〜第１１，第１５，第１６実施形態に関するものである。
【０１２７】
図２０において、左から１番目の中間層素子１はｘ1にのみ結合しており、疎結合部分
を構成している。この経路の情報はｘ1にのみ影響されるので、学習対象の関数には、ｘ1だけの項が存在することを示唆している。同様に、左から２番目の中間層素子２はｘ2に
のみ結合しており、疎結合部分を構成している。この経路の情報はｘ2にのみ影響される
ので、学習対象の関数には、ｘ2だけの項が存在することも示唆している。これらのこと
は、ニューラルネットワークの素子の結合状態から線形性等を判断する請求項９の発明によって解析される。
【０１２８】
なお、図２０では、入力層、中間層、出力層の各層の素子間の結合の重みを実線の太さで示してあり、細線が０.１〜１.０、太線が１.０〜１０である。
次に、図２０のニューラルネットワークについて、４個の中間層素子の評価指標を算出すると、表５のようになった。また、２個の入力層素子(入力因子)の評価指標は表６のようになった。
【０１２９】
【表５】
2011054200.tif 000016
【０１３０】
【表６】
2011054200.tif 000017
【０１３１】
表５によれば、１番目と２番目の中間層素子１，２のeffectiveness factor，goodness factor ，分散は同程度であるので、第１０実施形態を適用することにより、出力に対するｘ1，ｘ2の性質やその寄与度が同じ可能性が高いと判断される。
【０１３２】
また、３番目、４番目の中間層素子３，４は入力層素子ｘ1，ｘ2の両方に結合していて全結合部分を構成しており、第９実施形態によれば、これら入力層素子ｘ1，ｘ2の相互作用もしくはｘ1，ｘ2の非線形成分の存在が予想される。実際に、数式１７の対象関数は、ｘ1，ｘ2の独立した項とｘ1，ｘ2の相互作用の項（第３項）とを有し、また、ｘ1，ｘ2は第３項において非線形結合している。更に、表６によれば、入力層素子ｘ1，ｘ2に関してもeffectiveness factor，goodness factor ，分散は同程度であることがわかる。
【０１３３】
図２０に示すニューラルネットワークの入力層素子に代表的な値を入力したときの中間層素子（疎結合の中間層素子１，２、全結合の中間層素子３，４及びバイアス素子）の出力を、表７に示す。
【０１３４】
表７によれば、入力データに０を入れた場合でも出力が０にならない中間層素子があることが判る。従って、解析時には、各中間層出力の下限値を調べ、対象関数のｙ＝ｘ1＋ｘ2＋ｘ1ｘ2には表れていない固定分（ｙ＝ｘ1＋ｘ2＋ｘ1ｘ2＋ｄにおけるｄ）がどのくらいあるか調べる必要があることが判る。
【０１３５】
【表７】
2011054200.tif 000018
【０１３６】
図２１〜図２４に、入力データの影響度合いをシグモイド関数と共に模式的に表したグラフを示す。図２１は入力データｘ1，ｘ2が（０，０）の場合、図２２は同じく（０.５
，０.５）の場合、図２３は同じく（１，１）の場合、図２４は同じく（１，０）の場合
である。
【０１３７】
これらの図から、入力データの大きさに応じた、各中間層素子や各入力層素子の出力に対する影響度合いを容易に把握することが可能である。このことは、第１１実施形態の作用によるものである。更に、第１５実施形態によれば、入力素子ｘ1，ｘ2につながる結合が存在し、かつお互いの重みの結合が同程度であるので学習が正常に行われており、学習不良による異常はないと判定することができる。また、第１６実施形態でも、表５、表６においてｘ1，ｘ2に関する評価指標が同程度であるので、良好な学習が行われていて異常はないと判定することができる。
【０１３８】
次に、第３実施例を説明する。この実施例は、主として第９，第１０，第１２，第１５〜１７実施形態に関するものである。
この実施例では、ダムの流入量を予測するニューラルネットワークを解析する。予測に使用する入力因子は、表8に示すように、３つの測水所の流量、流量差分（１時間おきの
過去３時間分の流量）、予測対象ダムの流量、流量差分（１時間おきの過去２時間分の流量）、流域平均雨量（１時間おきの過去２０時間分の流域平均雨量）である。
【０１３９】
【表８】
2011054200.tif 000019
【０１４０】
図２５は予測対象ダムの上流域の模式図であり、各流域に雨量計が設置され、各流域ごとに測水所が設けられている。
第１実施例と同じ学習アルゴリズムによって獲得したニューラルネットワークの構造を図２６に示し、入力値に対する出力層に伝播する情報及び出力値を図２７に示す。
【０１４１】
学習前の初期中間層素子を１２個として学習を始めたが、学習により獲得した図２６の構造によれば、中間層素子が３個にまで削減された。構築された図２６のニューラルネットワークの中間層素子は、「上流流量差分」、「雨量」、「相互作用分（全結合部分）」につながり、「上流流量」、「ダム流量」、「ダム流量差分」のみにつながる中間層素子は構築されなかった。つまり、請求項９の発明から、「上流流量差分」、「雨量」、「相互作用分（全結合部分）」は予測に重要な因子であり、「上流流量」、「ダム流量」、「ダム流量差分」は重要度の低い因子であることが分かる。
【０１４２】
ここで、上記「相互作用分（全結合部分）」とは、複数の入力因子の作用であって単独の成分では表せない複雑な成分を示す。例えば、ｙ＝ｘ1＋ｘ2＋ｘ1ｘ2におけるｘ1ｘ2の部分に相当する。
【０１４３】
表９は、図２６の中間層素子１〜３のeffectiveness factor, goodness factor, 分散を示している。
【０１４４】
【表９】
2011054200.tif 000020
【０１４５】
表９のgoodness factorより、「上流流量差分」のサブネットワークは非常に重要な働
きを示すことが分かる。これは第１０実施形態による解析結果である。これらのことは、運用者の感覚とよく一致しており、良好な学習結果であると判定することができる。これは、第１５，第１６実施形態の異常判定方法によるものである。
【０１４６】
また、図２７から、ニューロ出力に対しては「上流流量差分」の成分が大きく影響しているが、入力値（入力層）がほぼ０．２以下、０．７以上の範囲では飽和している。第１２実施形態により、この範囲の入力値に対しては、このニューラルネットワークはほとんど出力の変化がないことがわかる。
【０１４７】
更に、運用者の感覚によれば、上流流量差分と出力とは線形の関係がある。図２８に、上流流量差分のみにつながる中間層素子１が出力層に伝搬する情報量を示す。上流流量差分は入力値に対して線形度の相関係数Ｒ2が少し小さいので、学習不良であることを示し
ている。これは、第１７実施形態による異常判別の結果である。特に、入力値がほぼ０．２以下と０．７以上の範囲の学習データに対しては学習不良である。
【０１４８】
「雨量」は、第１２実施形態によれば、入力値（入力層）が大きいときにのみ大きく変化する。このことは、雨量が少ないときには地面に吸収されやすく、多いときに流出しやすい現象を的確に表している。「相互作用分」の変動はごく小さく、補正程度に作用している。これは、第１２実施形態による解析結果である。
【０１４９】
表１０は、各入力因子を個別に評価した指標である。goodness factorが0.1以上の因子を見ると流量差分や雨量の一部であり、運用者の感覚とほぼ一致する。これは、第１６実施形態による。１０時間以前の雨量の因子は小さいものが多い。対象のダムは１０時間前までの雨量との相関が高いことがすでに判明しており、その結果とも一致している。
【表１０】
2011054200.tif 000021
【０１５０】
次に、第４実施例を説明する。この実施例は、主として第１１，第１３，第１７実施形態に関するものである。本実施例では、翌日電力需要量予測を例題にして解析を行う。入力因子は表１１に示すとおりであり、電力（最大電力）、気象（最高気温、最低気温、最小湿度、天気）、特異日フラグ（土曜、休日）に関して季節ごとに当日ｉから２日前（ｉ−２）まで、または当日ｉから７日前（ｉ−７）までとした。
【０１５１】
【表１１】
2011054200.tif 000022
【０１５２】
中間層素子を１２個用意して学習した結果、図２９に示す構造のニューラルネットワークが獲得できた。
図３０はこのニューラルネットワークの入出力関係を示すもので、電力需要量は、至近の電力実績に対しては正の相関があり、気温に対しては、正の相関と負の相関が入り交じっていることが分かる。気温が低い時には暖房機を、気温が高いときには冷房機を動かすために電力需要が増大する現象と一致する。このことは、電力需要予測を行う運用者の感覚とも完全に一致している。
【０１５３】
通常、気温と電力需要量との間には２次の関係があると言われる。図３１から、気温（気象）は２次式との相関が非常に強いため、第１７実施形態により学習が良好に行われていると判定することができる。また、電力需要量を下げる要因は、気温が中程度であって至近の電力需要量が小さいことであり、逆に電力需要量が上がる要因は、気温が高すぎるか低すぎるかのどちらかに偏り、至近の電力需要量が大きいことである。つまり、このニューラルネットワークの下限値を与える入力データは、電力に関する入力が０、気象に関する入力が０．５のときであることが第１３実施形態から判る。具体的な実績データを表１２に示す。
【０１５４】
【表１２】
2011054200.tif 000023
【０１５５】
表１２における基準値は、図２９のニューラルネットワークによる解析結果から、電力需要量を最低にするであろう入力データに基づいて作成した。これは、第１３実施形態による解析結果に基づく。実際、実データの値を数例入力し、解析結果による下限値より小さい値は出力されなかったことを確認した。
【０１５６】
以下は、３種類の春季予測用ニューラルネットワークに対し、実データを用いて請求項１１の発明により入力因子の出力への影響を解析した例である。
図３２（４月９日）は、気象と電力の相関がない時期であり、予測値は電力実績のみに左右される。
図３３（５月３０日）は、気象と電力の相関が現れ始め、予測値は電力と気象の２つの要因で決定される。
図３４（６月２５日）は、夏季に近く気温と電力の相関が強い時期である。予測値は電力の影響が低下し、気温の影響が強くなってきている。
【０１５７】
以上、第１〜第２０実施形態及び実施例を説明した。これらの発明によれば、従来のニューラルネットワークと互換性があり、しかも内部解析が可能である。すなわち、解析目的に応じたニューラルネットワーク構造を学習時に与えることで、任意の入力因子と出力との関係を容易に解析することができる。通常、この種の解析は目的を持って行うため、第１〜第２０実施形態によって必要を満たすことができるが、ニューラルネットワークの学習時に解析目的がはっきりしていないときには、適切なニューラルネットワークの構造を与えることができない場合がある。そこで、以下の発明は、第１〜第２０実施形態を改良し、入出力のデータの関係を自動的に解析して適切な構造のニューラルネットワークを構築するようにした学習方法を提供するものである。
（２１）第２１実施形態
第１〜第２０実施形態では、学習開始前に全結合部分と疎結合部分につながる中間層素子をあらかじめ用意する必要がある。そこで第２１実施形態では、疎結合部分だけで学習を行い、疎結合部分だけでは学習しきれないときにのみ全結合部分を追加することとした。すなわち、この発明によれば最初に用意する中間層素子が少なく計算量が少ないため、学習時間の短縮が可能になる。
【０１５８】
図３５は、本発明の実施形態の処理を示すフローチャートである。第１ステップＧ１は、通常のニューラルネットワークの初期化処理である。具体的には、全ての重みに対し初期値を小さい数の乱数で与える。このステップは、図５におけるステップＡ１と同一である。
【０１５９】
第２ステップＧ２は、解析可能なニューラルネットワーク構造へ変形するための処理であり、任意の重みを０にして削除する。ここで、全結合部分を生成せずに、疎結合部分のみを生成することが必要である。
【０１６０】
第３ステップＧ３は、通常のニューラルネットワークの重み修正量の計算である。修正量を算出するための評価関数は、前述した各評価関数の何れを用いても良い。
第４ステップＧ４は、解析可能なニューロ構造のための修正量の再修正である。第3ス
テップＧ３の計算により、削除したはずの結合が構築されることがある。それを防止するために、第２ステップで削除した重みに関する修正量を強制的に０にする。
【０１６１】
第５ステップＧ５は、重みの修正処理である。計算された修正量にしたがって重みを修正する。
第６ステップＧ６は、学習終了判断である。なお、このステップは図５におけるステップＡ６と同一であり、第４実施形態における「第６ステップ」とは異なる。このステップＧ６において、学習誤差が規定値以下になるか、もしくは規定学習回数に達したら、学習終了と判断する。学習誤差が規定値以下になったか否かは評価関数や全学習データに対する誤差により判断する。ここで、学習誤差が規定値よりも大きい時には学習が終了していないと判断して第７ステップＧ７に移行する。
【０１６２】
第７ステップＧ７は、全結合部分の中間層素子を追加する処理である。ステップＧ６までに学習が終了しないということは、疎結合部分の中間層だけでは学習ができないことを意味する。よって、全結合部分の中間層素子を任意の個数追加して第３ステップＧ３に戻る。全結合部分の中間層素子は通常は１つずつ追加するが、一度に複数個追加してもよい。
【０１６３】
また、上記ステップの説明では省略したが、第１〜第２０実施形態では、不要な中間層素子や結合を削除する技術を説明した。よって、これらの技術を応用し、本実施形態においても、追加しすぎた中間層素子や、学習中に発見された不要な中間層素子等がある場合には、これらを削除するようにしても良い。
（２２）第２２実施形態
次に、第２２実施形態を説明する。
【０１６４】
第１〜第２１実施形態においては、ニューラルネットワークの学習開始時（前記図５，８等における第２ステップとしての任意結合の削除ステップ）に、解析目的に応じて任意のニューラルネットワーク構造を与えなければならない。つまり解析目的がはっきりしていないときには、不適切な構造を与えてしまう可能性がある。
【０１６５】
そこで本発明では、学習開始時のステップ（任意結合の削除ステップ）においてニューラルネットワーク構造を自動的に構築する方法（自動的に結合を削除する方法）を提供し、学習データの入出力関係から、入力因子を自動的に複数のグループに分けることで適切な構造を与えるようにした。これにより、将来の解析において不要と思われる入力因子同士をまとめ、解析が必要と思われる入力因子同士を別々にすることで、想定される解析目的にあった構造のニューラルネットワークを前もって構築することができる。
【０１６６】
以下に、入力因子のグループ分けの原理を示す。簡単のため、電力需要量予測問題を例に説明する。
電力需要量予測問題とは、ある地域の翌日の最大電力を予測する問題であり、電力会社において、発電機の起動停止計画を立案するための重要な業務として位置付けられている。電力需要量は、曜日、気温、至近の電力実績等により予測することが可能である。表１３に、電力需要量予測を行うための入力因子の例を示す。
【０１６７】
【表１３】
2011054200.tif 000024
【０１６８】
表１３において、入力因子は電力（最大電力）、気象（最高気温、最低気温、天気）、特異日フラグ（土曜、休日）に関して季節ごとに当日ｉから２日前（ｉ−２）まで、または当日ｉから７日前（ｉ−７）までとし、合計で数十項目の因子により予測する。
【０１６９】
ここで、気温は１日前も２日前も極端に変化することは少なく、似たデータになる確率が高い。また１日前の気温と２日前の気温は予測値（ニューロ出力）に対し同じ傾向を示すことが容易に想像でき、個別に解析する必要性は低い。つまり、似ているデータ同士は個別に解析する必要は低いので１グループにまとめ、似ていないデータ同士は、個別に解析する可能性があるので別々にするようにした。
【０１７０】
以下に、入力因子をグループ化する方法を示す。
（１）第１ステップ
ニューラルネットワークが学習するための学習データの入出力関係を解析する。ここで、入力因子の似たもの同士を複数のグループに分ける。グループ分けの方法は、各入力因子の最大・最小値、標準偏差、相関係数等の単純な統計的手法を利用する方法や、クラスター分析、判別分析等の高度な統計手法等がある。
【０１７１】
（２）第２ステップ
第１ステップで得られたグループ分けにしたがって、ニューラルネットワークを構築する。図３６は４入力１出力のニューラルネットワークであり、入力１と入力２が同グループとして判定された例である。ここで、中間層素子数は、あらかじめ定義された学習条件により異なる。なお、１１は全結合部分、１２は疎結合部分を示す。
（２３）第２３実施形態
第２３実施形態は、第２２実施形態と同様に学習開始時のステップ（任意結合の削除ステップ）における入力因子のグループ分けに関するものであり、データの最大・最小・平均・標準偏差等の単純な統計値を用いて入力因子のグループ分けを行う方法である。
【０１７２】
特に、各入力因子の最大・最小値は、ニューラルネットワークがデータを学習する上で必ず算出する値であり、最大・最小値を使用する方法は、計算量の増加をほとんど伴わない方法である。以下に、グループ分けを行うための判別式の一例を示す。勿論、これらの式以外の形式でもグループ分けは可能である。ここで、評価値が同じ入力因子同士を同じグループと定義する。
（１）判別式例１
評価値i＝int(log10(abs(最大値i−最小値i))＋０.５) （最小値i≧０）
評価値i＝−int(log10(abs(最大値i−最小値i))＋０.５) （最小値i＜０）
（２）判別式例２
評価値i＝int(ln(標準偏差i)＋０.５) 
（３）判別式例３
評価値i＝int(log10(平均i)＋０.５) 
ただし、
ｉ：入力因子番号
評価値i：ｉ番目の入力因子の評価値
int：小数点以下を切り捨てて整数にする関数
abs：絶対値を求める関数
である。
（２４）第２４実施形態
第２４実施形態も、第２２実施形態と同様に学習開始時のステップ（任意結合の削除ステップ）における入力因子のグループ分けに関するものであり、入力因子間の相関係数を用いてグループ分けを行う方法である。
【０１７３】
相関係数とは、−１〜１の値をとるデータの相似度を求める係数である。入力因子が３つあるときには、入力１と入力２との相関係数、入力２と入力３との相関係数、入力３と入力１との相関係数の計３つの値を求める。
【０１７４】
グループ分けは、相関係数の高い入力因子同士を同じグループとしてまとめる。詳細は、実施例で説明する。
（２５）第２５実施形態
第２４実施形態では、入力因子間の相関係数によりグループ分けを行っている。しかしこの方法は、入力因子の数が増加すると指数関数的に計算量が増える欠点がある。そこで、簡便な方法として、入力因子と出力因子との間の相関係数だけに着目してグループ分けを行う。具体的には、出力因子に対して同程度の相関係数である入力因子同士を同じグループとしてまとめる。
【０１７５】
この発明では、学習開始時のステップ（任意結合の削除ステップ）において、入力因子が４つあるときには、入力１と出力との相関係数、入力２と出力との相関係数、入力３と出力との相関係数、入力４と出力との相関係数と計４つの相関係数を算出するだけで済む。従って、第２４実施形態と比べて入力因子の数が多いときには計算量が大幅に削減されるので効果的である。また、グループが多くなり過ぎないようにその数を規定値以下にすることも容易である。相関係数は−１〜１の値をとるので、２グループ以下に分けたいときには、相関係数が−１〜０，０〜１のグループ分けにし、４グループ以下に分けたいときには相関係数が−１〜−０．５，−０．５〜０，０〜０．５，０．５〜１のグループに分ければよい。
〔実施例〕
次に、第２３実施形態の実施例を説明する。
【０１７６】
この実施例では、入力因子を自動的に分類する方法を実施する。例題として用いるのは、冬季翌日最大電力需要量予測用とダム流入量予測用のニューラルネットワークである。翌日最大電力需要量予測における入力因子及び評価値を表１４に示し、ダム流入量予測における入力因子及び評価値を表１５に示す。なお、評価値は何れも以下の数式による。
評価値＝int(log10(abs(最大値i−最小値i))＋０.５) （最小値i≧０）
評価値＝−int(log10(abs(最大値i−最小値i))＋０.５) （最小値i＜０）
【０１７７】
【表１４】
2011054200.tif 000025
【０１７８】
【表１５】
2011054200.tif 000026
【０１７９】
翌日最大電力需要量予測用ニューラルネットワークでは、表１４に示すように、電力、気温、フラグ、天気がそれぞれグループ化された。ダム流入量予測でも、表１５に示すように、流量関係が２つに、流量差分関係が２つに、雨量が１グループの計５グループにグループ化された。これらの何れも、第１〜第２０実施形態の実施例において運用者が指定したグループとほぼ同じ結果であり、良好な結果を得た。
【０１８０】
第１〜第２０実施形態では、手作業により入力因子をグループ化する必要があるが、第２３実施形態では、上記のように入力因子を自動的にグループ分けすることが可能である。
【０１８１】
次に、第２４，２５実施形態の実施例を説明する。この実施例では、入力因子を自動的に分類する方法を実施する。例題として用いるのは、冬季翌日最大電力需要量予測である。入出力因子間の相関係数を表１６に示す。ここで、入力因子の番号は第２３実施形態の実施例と同じである。
【０１８２】
【表１６】
2011054200.tif 000027
【０１８３】
まず、最初に第２４実施形態の実施例について説明する。表１６において、相関係数（表１６の右端の出力値の列を除く値）が０.５以上の入力因子は、NO.３〜８の気温、No.９，NO.１２のフラグ、NO.１１，NO.１４のフラグである。この３グループは非常に似通った性質であり、良好にグループ分けされている。つまりこの例では、総計１５個の入力因子が７グループに分類された。
【０１８４】
次に、第２５実施形態の実施例について説明する。
各入力因子と出力との相関係数（表１６の右端の列）を０．２刻みにグループ化すれば、以下のように６グループに分類することができる。
【０１８５】
グループ１(0.4〜0.6)：入力因子１，２
グループ２(0.0〜0.2)：入力因子１３〜１５
グループ３(−0.0〜−0.2)：入力因子１１
グループ４(−0.2〜−0.4)：入力因子３〜７，１０
グループ５(−0.4〜−0.6)：入力因子８，１２
グループ６(−0.6〜−0.8)：入力因子９
【符号の説明】
【０１８６】
１１ 全結合部分
１２，１２Ａ，１２Ｂ 疎結合部分
１３ 記憶装置
１４ 入力データ読み込み部
１５ 重み読み込み部
１６ ニューロ算出部
１７ 表示・伝送装置
１８ 予測・診断の保存部
２１ 記憶装置
２２ ニューロ読み込みモジュール
２３ 異常判定用データベース読み込みモジュール
２４ 解析・診断モジュール
２５ ブザー
２６ 表示装置
２７ ＬＡＮ・電話回線
【図１】
2011054200.tif 000028
【図２】
2011054200.tif 000029
【図３】
2011054200.tif 000030
【図４】
2011054200.tif 000031
【図５】
2011054200.tif 000032
【図６】
2011054200.tif 000033
【図７】
2011054200.tif 000034
【図８】
2011054200.tif 000035
【図９】
2011054200.tif 000036
【図１０】
2011054200.tif 000037
【図１１】
2011054200.tif 000038
【図１２】
2011054200.tif 000039
【図１３】
2011054200.tif 000040
【図１４】
2011054200.tif 000041
【図１５】
2011054200.tif 000042
【図１６】
2011054200.tif 000043
【図１７】
2011054200.tif 000044
【図１８】
2011054200.tif 000045
【図１９】
2011054200.tif 000046
【図２０】
2011054200.tif 000047
【図２１】
2011054200.tif 000048
【図２２】
2011054200.tif 000049
【図２３】
2011054200.tif 000050
【図２４】
2011054200.tif 000051
【図２５】
2011054200.tif 000052
【図２６】
2011054200.tif 000053
【図２７】
2011054200.tif 000054
【図２８】
2011054200.tif 000055
【図２９】
2011054200.tif 000056
【図３０】
2011054200.tif 000057
【図３１】
2011054200.tif 000058
【図３２】
2011054200.tif 000059
【図３３】
2011054200.tif 000060
【図３４】
2011054200.tif 000061
【図３５】
2011054200.tif 000062
【図３６】
2011054200.tif 000063