(57)【特許請求の範囲】
【請求項１】
ニューラルネットワークの入力層、中間層、および、出力層の素子間の結合係数を増減してニューラルネットワークを最適化するニューラルネットワークの最適化学習方法において、
重畳エネルギー関数法によるニューラルネットワークの学習を行い、
このニューラルネットワークの中間層の中の１個の素子の出力値系列を用いて求めた分散が所定値以下の場合にこの素子をバイアス素子に融合し、また、このニューラルネットワークの中間層の中の２個の素子の出力値系列を用いて求めた相関係数の絶対値が所定値以上の場合にこれら２個の素子を情報伝達的に同じ働きであるとして融合し、次に、中間素子を融合した前後のニューラルネットワークについての学習誤差を求め、学習誤差が予め定められた値を越える場合、または、学習誤差が予め定められた増加率を越える場合は、中間素子を融合した後のニューラルネットワークを破棄して中間素子を融合する前のニューラルネットワークを採用するコンパクト構造化を行い、
学習とコンパクト構造化とを交互に行って中間層の素子を削減しつつニューラルネットワークを最適化することを特徴とするニューラルネットワークの最適化学習方法。
【請求項２】
ニューラルネットワークの入力層、中間層、および、出力層の素子間の結合係数を増減してニューラルネットワークを最適化するニューラルネットワークの最適化学習方法において、
バックプロパゲーション法によるニューラルネットワークの学習を行い、
このニューラルネットワークの中間層の中の１個の素子の出力値系列を用いて求めた分散が所定値以下の場合にこの素子をバイアス素子に融合するコンパクト構造化を行い、
学習とコンパクト構造化とを交互に行って中間層の素子を削減したニューラルネットワークとし、
このニューラルネットワークの中間層の中の１個の素子の出力値系列を用いて求めた分散が所定値以下の場合にこの素子をバイアス素子に融合し、また、このニューラルネットワークの中間層の中の２個の素子の出力値系列を用いて求めた相関係数の絶対値が所定値以上の場合にこれら２個の素子を情報伝達的に同じ働きであるとして融合し、
中間層の素子を削減してニューラルネットワークを最適化することを特徴とするニューラルネットワークの最適化学習方法。
【請求項３】
ニューラルネットワークの入力層、中間層、および、出力層の素子間の結合係数を増減してニューラルネットワークを最適化するニューラルネットワークの最適化学習方法において、
重畳エネルギー関数法によるニューラルネットワークの学習を行い、
このニューラルネットワークの中間層の中の１個の素子の出力値系列を用いて求めた分散が所定値以下の場合にこの素子をバイアス素子に融合するコンパクト構造化を行い、
学習とコンパクト構造化とを交互に行って中間層の素子を削減したニューラルネットワークとし、
このニューラルネットワークの中間層の中の１個の素子の出力値系列を用いて求めた分散が所定値以下の場合にこの素子をバイアス素子に融合し、また、このニューラルネットワークの中間層の中の２個の素子の出力値系列を用いて求めた相関係数の絶対値が所定値以上の場合にこれら２個の素子を情報伝達的に同じ働きであるとして融合し、
中間層の素子を削減してニューラルネットワークを最適化することを特徴とするニューラルネットワークの最適化学習方法。
【請求項４】
請求項２または請求項３に記載のニューラルネットワークの最適化学習方法において、
コンパクト構造化を行う場合にコンパクト構造化の前後のニューラルネットワークについての学習誤差を求め、学習誤差が予め定められた値を越える場合、または、学習誤差が予め定められた増加率を越える場合は、コンパクト構造化後のニューラルネットワークを破棄してコンパクト構造化前のニューラルネットワークを採用することを特徴とするニューラルネットワークの最適化学習方法。
【請求項５】
請求項１〜請求項４の何れか１項に記載のニューラルネットワークの最適化学習方法において、
前記分散は、
【数１】
0004226754.tif 000014
で表され、かつ、前記相関係数は、
【数２】
0004226754.tif 000015
とすることを特徴とするニューラルネットワークの最適化学習方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、予測、診断、制御などの情報処理を行うようにニューラルネットワークを最適化するためのニューラルネットワークの最適化学習方法に関する。
【０００２】
【従来の技術】
ニューラルネットワークは、入出力のデータパターンを与えるだけで入出力の非線形な相関関係をモデル化・学習することが可能であり、予測、制御、診断などの情報処理分野において研究・実用化されている。
図８は、多層ニューラルネットワークを説明する概念図である。一般にニューラルネットワークとは、図８に示すように入力層、中間層、出力層からなる多層ニューラルネットワーク構造を有しており、さらに、入力層、中間層、出力層には素子が設けられ、入力層と中間層との素子間、中間層と出力層との素子間に結合を持つ。
【０００３】
ここで、中間層は、図８で示したような１層のみに限ることなく複数層にわたることもあり、また、素子数も図８で示したような３個に限定するものでなく任意数の素子とすることができる。このように中間層はブラックボックスであるため隠れ層とも呼ばれている。
なお、説明上、本明細書において入力層における素子を入力層素子と、中間層における素子を中間層素子と、また、出力層における素子を出力層素子と称して説明する。
また、一般的に、中間層素子と出力層素子とには、一定値（図８では１．０である）を出力するバイアス素子が結合されているが、必要時にのみバイアス素子を図示して説明し、それ以外は図示を省略する。
【０００４】
結合係数は、ニューラルネットワークの素子間の結合の重みを表すための係数である。結合係数が大きければ、結合が重みを有している、つまり、必要な結合であるとされ、結合係数が小さければ、結合が重みを有していない、つまり、不要な結合であるとされる。
このようなニューラルネットワークの学習とは、複数の入力層素子に入力された入力値に対し、所望の出力値が得られるように入力層と中間層、また、中間層と出力層との結合係数を変更することをいう。
【０００５】
ニューラルネットワークの学習では、中間層素子数が多ければより複雑な問題を学習することが可能になる。しかし、中間層素子が多すぎる場合には過学習という問題が発生する。過学習がおきると汎化能力が低下する。
【０００６】
例えば、ニューラルネットワークを用いるパターン分類問題で馬の絵のパターンを入力値として馬と判断したことに相当する値を出力させる場合において、中間層素子が多すぎて過学習が起きると特定の馬の絵のパターンからしか馬と判定できなくなり、それ以外の馬の絵のパターンからは馬と判定できなくなる。このように過学習がおきると、学習目標値にノイズがある場合、つまり、学習した馬の絵が良くない場合や、学習目標値と相関の低い入力値が入力された場合、つまり、入力された馬の絵が学習した馬の絵と異なる場合に馬と判定できないというような汎化能力が低下した状態を招く。中間層素子は適切な数とするのが望ましい。
【０００７】
このようなニューラルネットワークの学習は、多数提案されている。過学習を考慮しない一般的な学習方法として、従来例１：バックプロパゲーション法（誤差逆伝搬法）がある。このバックプロパゲーション法による学習アルゴリズムでは、ニューラルネットワークからの実際の出力値（以下、ニューロ出力値という。）から学習させたい出力（以下、学習目標値という。）を引いた値（以下、出力誤差という。）の２乗を評価関数とし、この評価関数値が小さくなるように結合係数を増減する。この評価関数は次式のようになる。
【０００８】
【数３】
0004226754.tif 000002
【０００９】
ここでニューロ出力値は、結合係数の増減によって変化する値であり、評価関数は結合係数をパラメータとする関数である。学習は、目標値とニューロ出力値とが近い結合係数となるように評価関数の微分により算出される修正量を用いて結合係数の修正を繰り返し行って学習するものである。
【００１０】
このバックプロパゲーション法では、ニューラルネットワークの階層数や素子数を事前に決定する必要がある。しかしながら、事前に最適な階層数や素子数に関する情報が得られることはなく、ニューラルネットワークの最適化のためには階層数および素子数を試行錯誤的に探索する必要がある。ニューラルネットワークの内部構造が複雑な場合は、探索に時間と手間がかかる。
また、バックプロパゲーション法により得られた学習後のニューラルネットワークはブラックボックスとなり、中間層素子の意味づけが困難なことが多い。
【００１１】
このように、バックプロパゲーション法は、最適な学習・最適な構造を求めることが困難であり、この問題点を改良するために、多くの観点から各種の学習アルゴリズムが提案されている。
【００１２】
例えば、従来法２：中間層の重要度順に学習する重畳エネルギー関数法（高橋：「重畳エネルギー関数による多層パーセプトロンの冗長性削減」、電子情報通信学会論文誌、Ｄ−ＩＩ、Vol.J80-D-ＩＩ,No.9,pp.2532-2540(1997)）では、中間層素子の重要度順に学習する学習アルゴリズムが提案されている。この学習アルゴリズムにより学習されるニューラルネットワークは、中間層素子がその重要度順に並ぶ傾向があり、また、不要な中間層素子の生成が抑制される。
【００１３】
図９は、重畳エネルギー関数法により学習された中間層素子を説明する説明図である。図９で示すように、この学習アルゴリズムで学習したニューラルネットワークは、重要度の高い中間層素子につながる結合係数が大きく（図９の太線の矢印）、また、重要度の低い中間層素子につながる結合係数は小さく（図９の細線の矢印）なる傾向がある。また、その結果不要な分散表現が抑制される。
【００１４】
不要な分散表現について概略説明する。分散表現とは、１つでも良い結合が複数の結合に分割されること、つまり、その結果多くの結合が必要になることを表す。図１０は不要な分散表現について説明する説明図であり、簡単化のため、単純なニューラルネットワークを仮定している。このニューラルネットワークの出力層素子への入力値は共に計１．０であるが、図１０（ａ）では２つの中間層素子に分散して情報が伝達されるのに対し、図１０（ｂ）では１つの中間層素子を経て情報が伝達されている点が相違する。図１０（ａ）のような場合を分散表現と呼んでいる。
【００１５】
重畳エネルギー関数は、このような不要な分散表現を抑制する。続いて、この重畳エネルギー関数について説明する。まず、重畳エネルギー関数で用いる部分ニューロの概念について説明する。図１１は、部分ニューロを説明する説明図である。図１１に示すようにＨ個の中間層素子を持つニューラルネットワークにおいて、中間層素子１のみを残し、中間層素子２〜Ｈの中間層素子を無視した構造を部分ニューロ１とし、中間層素子１、２だけを残し中間層素子３〜Ｈまでの中間層を無視した構造を部分ニューロ２とし、以下同様に中間層素子１〜ｉだけを残し中間層素子ｉ＋１〜Ｈまでの中間層を無視した構造を部分ニューロｉとしたＨ個の部分ニューロｉ（ｉ＝１、２、３・・・Ｈ）を仮定する。これら部分ニューロの評価関数は、次式のようになる。
【００１６】
【数４】
0004226754.tif 000003
【００１７】
ニューラルネットワーク全体の評価関数Ｊは部分ニューロの評価関数を足して次式になる。
【００１８】
【数５】
0004226754.tif 000004
【００１９】
このニューラルネットワーク全体の評価関数Ｊを重畳エネルギー関数と呼んでいる。この重畳エネルギー関数が最小となるとき、分散表現が抑制され、かつ中間層素子の重要度順に並んだニューラルネットワークとなる。
図１２は、重畳エネルギー関数法による学習の流れを示すフローチャートである。ニューラルネットワークの階層数や素子数を決定する初期化を行い（ステップＳ１００）、重畳エネルギー関数法による学習を行い（ステップＳ１１０）、学習を所定回数行ったか否かを判定して所定回数行ったならば学習終了と判断する（ステップＳ１２０）。
本学習アルゴリズムでは分散表現の発生が抑えられ、より単純なニューラルネットワーク構造となる。
【００２０】
また、従来法３：コンパクト構造化法（増田：「隠れユニットの合成による階層型ニューラルネットワークのコンパクト構造化」、計測自動制御学会論文集、Vol.28,No.4,pp.519-527(1992)）では、不要の中間層素子を他の中間層素子に融合させることで最適化を行う学習アルゴリズムが提案されている。
【００２１】
本学習アルゴリズムにより不要の中間層素子を他の中間層素子に融合する場合、２種類の融合がある。図１３は、融合を説明する説明図であり、図１３（ａ）では、入力層に入力される学習パターンの変化に対応して出力値が変化する場合に相関傾向を有する複数の中間層素子を説明し、図１３（ｂ）では、入力層の入力値が変化しても出力する値が変化せず一定値を出力するバイアス素子的な振る舞いをする中間層素子を説明する。
【００２２】
また、図１４は、学習パターンに対する中間層素子の出力を示す出力図であり、図１４（ａ）は、入力層に入力される学習パターンの変化に対応して出力値が変化する場合に相関傾向を有する複数の中間層素子の出力を、また、図１４（ｂ）では、入力層の入力値が変化しても出力する値が変化しないバイアス素子的な振る舞いをする中間層素子の出力をそれぞれ説明する。
【００２３】
図１３（ａ）で示す２つの中間層素子からは、図１４（ａ）で示すように、同傾向の出力値が出力され（相関の高い中間層素子出力）、また、図１３（ｂ）のバイアス素子的な中間層素子からは、図１４（ｂ）で示すように、学習パターンが変化するにも拘わらず一定値が出力される（バイアス素子的な振る舞いをする中間層素子出力）。このような相関の高い中間層素子出力およびバイアス素子的な振る舞いをする中間層素子出力を検出する必要がある。
なお、バイアス素子的な振る舞いをする中間層素子とは、バイアス素子とは別個に存在する素子であり、これらは区別される。
【００２４】
続いて、これら出力の検出方法について説明する。上述のような中間層素子出力をする中間層素子を検出するため、前記数式２で定義される相関係数γijを導入する。この数式２により、２つの中間層素子からの出力値系列の相関関係を定量的に扱うことができる。図１３（ａ）で示す２個の中間層素子の出力が、図１４（ａ）に示すように、２つの中間層素子からの出力値系列が同傾向の場合には相関係数γijは１に近い値となり、また、出力値系列が逆傾向の場合には相関係数γijは−１に近い値となる。
なお、全く相関関係にない場合は、０に近い値をとるため、相関係数γijにより相関関係が明確に認識できる。この特徴から相関係数の絶対値が１に近い程、相関が高い。
【００２５】
しかしながら、図１３（ｂ），図１４（ｂ）で示すようなバイアス素子的な振る舞いをする中間層素子について、相関係数γijでは判別ができない。そこで、このようなバイアス素子的な振る舞いをする中間層素子を判別するために前記数式１で定義される中間層素子出力値の分散ｓi2を導入する。
【００２６】
図１３（ｂ）で示す１個の中間層素子の出力が、図１４（ｂ）のような場合、分散ｓi2は０に近い値となる。中間層素子の出力は、学習パターンの変化にも拘わらず、ほぼ一定となっており、上の層の素子に対してバイアス素子的な振る舞いをしている。
以上、融合する中間層素子の検出について、
▲１▼相関の高い中間層素子については、中間層素子からの出力値の相関係数が高い２つの中間層素子を融合の対象とする。
▲２▼バイアス素子的な振る舞いをする中間層素子については、中間層素子からの出力の分散値が０に近い中間層素子をバイアス素子との融合の対象とする。
【００２７】
続いて、▲１▼相関の高い中間層素子についての融合手法について説明する。図１５は、ニューラルネットワークの融合を説明する説明図である。
図１５（ａ）で示すような中間層素子ｉ，ｊからの出力値の相関が高いため図１５（ｂ）で示すように中間層素子ｉ，ｊを融合する場合について説明する。
中間層素子ｉ，ｊからの出力値系列｛ＯiP｝，｛ＯjP｝の相関が高い場合、２変量Ｏi，Ｏj の関係は多変量解析で周知のように、次式の線形回帰式で近似的に表現することができる。
【００２８】
【数６】
0004226754.tif 000005
【００２９】
数式６を用いると、上の層に属する任意の素子（中間層素子や出力層素子など）ｋへの入力は、次式のようになる。
【００３０】
【数７】
0004226754.tif 000006
【００３１】
すなわち、図１５（ｂ）で示すように中間層素子ｉおよびバイアス素子から素子ｋへの結合係数を次式のように修正する。
【００３２】
【数８】
0004226754.tif 000007
【００３３】
この修正によって、中間層素子ｊを中間層素子ｉに融合することができる。なお、融合を行う際、中間層素子ｊと中間層素子ｉとでどちらを融合するかが問題となるが、出力値系列の分散の大きいほうを情報伝達的により活発に機能していると考える。相関の高い中間層素子出力についての融合はこのようになされる。
【００３４】
続いて、▲２▼バイアス素子的な振る舞いをする中間層素子とバイアス素子との融合について説明する。
図１５（ａ）で示すような中間層素子ｉとバイアス素子とを図１５（ｃ）で示すように融合する場合について説明する。
中間層素子ｉからの出力値系列｛ＯiP｝の分散が小さい場合、Ｏiの出力はほぼ一定で、Ｏiの出力は次式のように平均値で近似できる。
【００３５】
【数９】
0004226754.tif 000008
【００３６】
数式９を用いると、上の層に属する任意の素子（中間層素子や出力層素子など）ｋへの入力は、次式のようになる。
【００３７】
【数１０】
0004226754.tif 000009
【００３８】
すなわち、図１５（ｃ）で示すようにバイアス素子から素子ｋへの結合係数を次式のように修正する。
【００３９】
【数１１】
0004226754.tif 000010
【００４０】
この修正によって、バイアス素子的な傾向を有する中間層素子ｉをバイアス素子に融合することができる。
以上、ニューラルネットワークのコンパクト構造化法ではこのような２通りの融合により中間層素子の削減を行う。
【００４１】
図１６は、従来のコンパクト構造化の学習アルゴリズムのフローチャートである。図１６で示すようにバックプロパゲーション学習（Ｓ２０２）とコンパクト構造化（Ｓ２０３〜Ｓ２０８）を交互に行い、所定回数実施したならば学習終了と判断する（Ｓ２０９）ものである。
【００４２】
また、本発明者も複数の最適化アルゴリズムを複合的に組み合わせて学習能力を高めたニューラルネットワークの最適化学習法を発明しており、特願平１１−６６１６５号として特許出願されるに至っている。
【００４３】
【発明が解決しようとする課題】
このように従来法２，３の各種の学習アルゴリズムは、基本的には、不要な結合・不要な中間層素子の生成を抑制してニューラルネットワークを最適化するもの（従来法２）、もしくは、中間層素子を融合することで中間層素子を削減してニューラルネットワークを最適化するものである（従来法３）。
しかし、ニューラルネットワークの内部構造が複雑で解析困難なため、使い勝手が良い万能な学習アルゴリズムは提案されていないのが実状である。
また、高度な最適化のためのアルゴリズムは、一般的に計算量が厖大であり、学習に時間がかかる欠点がある。
【００４４】
以下に、本発明が解決しようとする課題を具体的に示す。
従来法２（重畳エネルギー関数法）の問題点は、
▲１▼不要な中間層素子の抑制が完全でなく、中間層素子が適数よりもはるかに多い状態で学習を行うと、多くの不要中間層素子が残る。
▲２▼不要な中間層素子を自動的に削減することができない。
▲３▼計算量が多く学習時間が長い。
という３点である。
【００４５】
▲１▼不要な中間層素子の抑制が完全でないため、中間層素子が適数よりもはるかに多い状態で学習を行うと、多くの不要中間層素子が残る。
中間層素子が最適数より若干多い程度から学習を開始すれば、最適数の中間層素子数に収束するが、この最適数を求める手段はない。最適数よりも多い中間層素子数で学習を開始すると、最適数よりも多い中間層素子数に収束し、最適数に収束しずらい。
【００４６】
▲２▼不要中間層素子を自動的に削減することができない。
通常、中間層素子の削除は、学習終了後に人が判断して削除する。また、削除対象とする中間層素子を判断する明確な基準はない。
このように、学習中に自動的に不要中間層素子を削除できなかった。
【００４７】
▲３▼計算量が多く学習時間が長い。
不要な中間層素子も含まれるニューラルネットワーク全体の結合係数の値を計算するため、計算量が多くなり、学習時間が長くなっている。
【００４８】
また、従来法３（コンパクト構造化法）の問題点は、
▲４▼中間層素子の過融合・過小融合
▲５▼学習初期段階では、中間層素子の融合処理を行うことができない。
という２点である。
【００４９】
▲４▼中間層素子の過融合・過小融合
融合を判断するための相関係数および分散のしきい値の設定方法が確立されておらず、不適切な相関係数および分散のしきい値とした場合は、中間層素子が過融合または過小融合することが多い。また、しきい値の調整だけでは、過融合または過小融合を防ぐことが困難な場合もある。
【００５０】
▲５▼学習初期段階では、中間層素子の融合処理を行うことができない。
学習初期段階でコンパクト構造化を行うと、良好な融合ができない。コンパクト構造化法は、まず、出力値系列の分散が小さい中間層素子を不要としてバイアス素子に融合し、その後に、出力値系列の相関係数の高い中間層素子どうしを融合する。
しかし、学習初期段階では、各中間層素子どうしの役割が分化しておらず、不要な中間層素子からの出力値系列でも分散および相関係数が大きい。このため、学習初期段階にコンパクト構造化を行うと不要な中間層素子とバイアス素子とを融合できないのみならず、不要な中間層素子と必要な中間層素子とを融合してしまうという問題点もあった。
【００５１】
また、特願平１１−６６１６５号の発明では、不要中間層素子の自動削除が可能となるように工夫されており、従来法２，３と比較して優れているが、学習終了後に中間層素子を削除する処理である。学習中でも中間層素子を削除できるようにして学習能力を高める学習アルゴリズムが必要とされていた。
【００５２】
このようにニューラルネットワークにおいて、中間層素子が最適数のニューラルネットワーク構造を生成する学習アルゴリズムが必要とされている。
また、不要な中間層素子を学習中に削除できるようにして計算時間を少なくし、高速化する学習アルゴリズムが必要とされている。
【００５３】
本発明は、以上の問題を改善するものであり、いくつかの有望な学習アルゴリズムを融合し、単体で適用した場合に生じる弱点を他の学習アルゴリズムで補ったり、適用方法を工夫することで、高速かつ効率的にニューラルネットワークを最適化するニューラルネットワークの最適化学習方法を提供することを目的とする。
【００５４】
【課題を解決するための手段】
上記課題を解決するため、請求項１に記載の発明は、
ニューラルネットワークの入力層、中間層、および、出力層の素子間の結合係数を増減してニューラルネットワークを最適化するニューラルネットワークの最適化学習方法において、
重畳エネルギー関数法によるニューラルネットワークの学習を行い、
このニューラルネットワークの中間層の中の１個の素子の出力値系列を用いて求めた分散が所定値以下の場合にこの素子をバイアス素子に融合し、また、このニューラルネットワークの中間層の中の２個の素子の出力値系列を用いて求めた相関係数の絶対値が所定値以上の場合にこれら２個の素子を情報伝達的に同じ働きであるとして融合し、次に、中間素子を融合した前後のニューラルネットワークについての学習誤差を求め、学習誤差が予め定められた値を越える場合、または、学習誤差が予め定められた増加率を越える場合は、中間素子を融合した後のニューラルネットワークを破棄して中間素子を融合する前のニューラルネットワークを採用するコンパクト構造化を行い、
学習とコンパクト構造化とを交互に行って中間層の素子を削減しつつニューラルネットワークを最適化することを特徴とする。
【００５５】
この請求項１の発明では、重畳エネルギー関数法によるニューラルネットワークの学習と不要な中間層素子を融合するコンパクト構造化を交互に行うことで、学習中に自動的に不要中間層素子を削減する（従来法２の問題▲２▼を解決する）。これによって、不要な中間層素子も含む初期中間層素子が最適数でないような場合の影響が緩和され、最適な中間層素子数に収束しやすくなる（従来法２の問題▲１▼を解決する）。
【００５６】
同時に学習中に中間層素子が削減され計算量が減るので学習の高速化が可能である（従来法２の問題▲まる３▼を解決する）。
また、重畳エネルギー関数は、中間層素子の役割を明確にすることができるので、例えば、重要度の低い中間層素子ならば分散および相関係数の不適切なしきい値の設定による過融合・過小融合の影響が緩和される（従来法３の問題▲まる４▼を解決する）。
また、重畳エネルギー関数法により学習初期段階から中間層素子の役割が分化しているため、コンパクト構造化法を学習初期段階から適用することが可能であり（従来法３の問題▲まる５▼を解決する）、さらなる学習の高速化にもつながる。
また、中間層素子の過融合を防止するために、融合前の学習誤差より融合後の学習誤差が一定値、もしくは、一定増加率を越えて増大するときには融合を禁止し、過融合を防ぐ。
【００５７】
また、請求項２に記載の発明は、
ニューラルネットワークの入力層、中間層、および、出力層の素子間の結合係数を増減してニューラルネットワークを最適化するニューラルネットワークの最適化学習方法において、
バックプロパゲーション法によるニューラルネットワークの学習を行い、
このニューラルネットワークの中間層の中の１個の素子の出力値系列を用いて求めた分散が所定値以下の場合にこの素子をバイアス素子に融合するコンパクト構造化を行い、
学習とコンパクト構造化とを交互に行って中間層の素子を削減したニューラルネットワークとし、
このニューラルネットワークの中間層の中の１個の素子の出力値系列を用いて求めた分散が所定値以下の場合にこの素子をバイアス素子に融合し、また、このニューラルネットワークの中間層の中の２個の素子の出力値系列を用いて求めた相関係数の絶対値が所定値以上の場合にこれら２個の素子を情報伝達的に同じ働きであるとして融合し、
中間層の素子を削減してニューラルネットワークを最適化することを特徴とする。
【００５８】
この請求項２の発明では、バックプロパゲーション法によるニューラルネットワークの学習と中間層素子を融合するコンパクト構造化を交互に行う場合にはバイアス素子的な働きをする中間層素子とバイアス素子とを融合するのみとし、学習終了後に、中間層素子とバイアス素子との融合に加えて、相関の高い出力をする中間層素子同士を融合する（従来法２の問題▲１▼〜▲３▼を解決する）。
コンパクト構造化において過度の融合を防ぐこととなり、分散および相関係数の不適切なしきい値の設定による過融合・過小融合の影響が緩和され（従来法３の問題▲４▼を解決する）、より良好なニューラルネットワークとする。
【００５９】
また、請求項３に記載の発明は、
ニューラルネットワークの入力層、中間層、および、出力層の素子間の結合係数を増減してニューラルネットワークを最適化するニューラルネットワークの最適化学習方法において、
重畳エネルギー関数法によるニューラルネットワークの学習を行い、
このニューラルネットワークの中間層の中の１個の素子の出力値系列を用いて求めた分散が所定値以下の場合にこの素子をバイアス素子に融合するコンパクト構造化を行い、
学習とコンパクト構造化とを交互に行って中間層の素子を削減したニューラルネットワークとし、
このニューラルネットワークの中間層の中の１個の素子の出力値系列を用いて求めた分散が所定値以下の場合にこの素子をバイアス素子に融合し、また、このニューラルネットワークの中間層の中の２個の素子の出力値系列を用いて求めた相関係数の絶対値が所定値以上の場合にこれら２個の素子を情報伝達的に同じ働きであるとして融合し、
中間層の素子を削減してニューラルネットワークを最適化することを特徴とする。
【００６０】
この請求項３の発明では、重畳エネルギー関数法によるニューラルネットワークの学習と中間層素子を融合するコンパクト構造化とを交互に行う場合にはバイアス素子的な働きをする中間層素子とバイアス素子とを融合するのみとし、学習終了後に、中間層素子とバイアス素子との融合に加えて、相関の高い出力をする中間層素子同士を融合する（従来法２の問題▲１▼〜▲３▼を解決する）。
学習中は、中間層素子をその重要度順に学習するとともにコンパクト構造化において過度の融合を防ぐこととなって分散および相関係数の不適切なしきい値の設定による過融合・過小融合の影響が緩和され（従来法３の問題▲４▼を解決する）、より良好なニューラルネットワークとなる。
また、重畳エネルギー関数法により学習初期段階から中間層素子の役割が分化しているため、コンパクト構造化法を学習初期段階から適用することが可能であり（従来法３の問題▲５▼を解決する）、さらなる学習の高速化にもつながる。
【００６１】
また、請求項４に記載の発明は、
請求項２または請求項３に記載のニューラルネットワークの最適化学習方法において、
コンパクト構造化を行う場合にコンパクト構造化の前後のニューラルネットワークについての学習誤差を求め、学習誤差が予め定められた値を越える場合、または、学習誤差が予め定められた増加率を越える場合は、コンパクト構造化後のニューラルネットワークを破棄してコンパクト構造化前のニューラルネットワークを採用することを特徴とする。
【００６２】
この請求項４の発明では、中間層素子の過融合を防止するために、融合前の学習誤差より融合後の学習誤差が一定値、もしくは、一定増加率を越えて増大するときには融合を禁止し、過融合を防ぐ。
【００６３】
また、請求項５に記載の発明は、
請求項１〜請求項４の何れか１項に記載のニューラルネットワークの最適化学習方法において、
前記分散は、数式１で表され、かつ、前記相関係数は、数式２で表すことを特徴とする。
【００６４】
【発明の実施の形態】
以下、図に沿って本発明の各実施形態を説明する。
まず、本発明の実施形態の一部である学習アルゴリズムＡでは図１６で示す従来法３の学習アルゴリズムを改良し、バックプロパゲーション法による学習の代わりに重畳エネルギー関数法による学習とし、この重畳エネルギー関数法による学習とコンパクト構造化を交互に行うようにした。この学習アルゴリズムＡについて説明する。
この学習アルゴリズムＡは、汎用計算機・制御装置等にプログラムされ、コンピュータにこの学習アルゴリズムＡを行わせることを想定して説明する。なお、後述の他の学習アルゴリズムも同様である。
【００６５】
図１は本発明の実施形態の一部である学習アルゴリズムＡのフローチャートである。
ステップＳ１は、初期化処理を行うステップである。学習アルゴリズムＡにおける初期化処理とは、中間層の階層数、各層の中間層素子数、分散のしきい値、相関係数のしきい値、学習回数などを入力する。
ステップＳ２は、重畳エネルギー関数法による学習を行うステップである。重畳エネルギー関数法により求めたニューラルネットワークの結合係数を新しい結合係数とし、古い結合係数と書き換えて保存する。
【００６６】
ステップＳ３は、コンパクト構造化を実行するか否かを判定するステップである。判定方法としては、重畳エネルギー関数法による学習回数が所定回数に達した場合や、学習誤差が減少しなくなったなどの場合が考えられるが、本学習アルゴリズムＡでは、学習回数が所定回数に達したか否かについて判定するものとする。学習回数が所定回数に達しているならばステップＳ４へ進み、学習回数が所定回数に達していないならば初期段階（つまり中間層素子は充分な分化が行われていない段階）としてステップＳ９へジャンプする。
【００６７】
ステップＳ４は、中間層素子からの出力値系列を用いて分散を算出するステップである。具体的には、複数ある中間層素子の出力値系列を用いて全ての中間層素子についての分散を求めるものであり、コンパクト構造化法で説明した数式１を用いて算出することとなる。
ステップＳ５は、ステップＳ４で算出した複数の分散について所定値以下か否かを判定するステップである。複数の分散のうち一つでも所定値以下（バイアス素子へ融合可）と判断するならばステップＳ８へジャンプし、また、全ての分散が所定値を越える（バイアス素子へ融合不可）と判断するならばステップＳ６へ進む。
【００６８】
ステップＳ６は、中間層素子からの出力値系列を用いて相関係数を算出するステップである。具体的には、複数ある中間層素子からある２つの中間層素子を選択してこれら２つの中間層素子の出力値系列を用いて相関係数を求めるという処理を全ての中間層素子で想定できる組み合わせについて行うものであり、コンパクト構造化法で説明した数式２を用いて算出することとなる。
例えば、仮に中間層素子１，２，３と３個ある場合には、中間層素子１，２の相関、中間層素子２，３の相関、および中間層素子１，３の相関について相関係数を算出することとなる。
【００６９】
ステップＳ７は、ステップＳ４で算出した複数の相関係数について所定値以上か否かを判定するステップである。相関係数は、先に説明したように、相似度を示す−１〜＋１の指標である。±１に近いと相関が高く、０に近いと相関がないことを表す。相関係数の絶対値が所定値以上（２つの中間層素子が融合可）と判断するならばステップＳ８へ進み、また、相関係数の絶対値が所定値未満（２つの中間層素子が融合不可）と判断するならばステップＳ９へジャンプする。
【００７０】
ステップＳ８は、融合を行うステップである。ステップＳ５からジャンプしてきたならば中間層素子とバイアス素子との融合を、また、ステップＳ７から来たならば中間層素子同士の融合を行う。
なお、複数の中間層素子の分散を算出して多数の分散が所定値以下の場合、最も分散が小さい中間層素子とバイアス素子とを融合させる。１度に融合可能な全ての素子を融合する場合も考えられるが、１度のコンパクト構造化に対し１回に融合制限した方が良好な学習結果が得られることが多い。
同様に、相関係数の絶対値が所定値以上の中間層素子の組み合わせが多数ある場合、相関係数の絶対値が最も大きい中間層素子の組み合わせを融合させる。この場合も、１度のコンパクト構造化に対し１回に融合制限した方が良好な結果が得られることが多いからである。
【００７１】
ステップＳ９は、学習終了か否かを判断するステップである。具体的には学習回数が所定回数に達したか否かを判断している。学習終了しない場合は、ステップＳ２の先頭へジャンプして再度重畳エネルギー関数法により学習を行い、学習終了の場合はフローを終了することととなる。
【００７２】
学習アルゴリムＡでは、重畳エネルギー関数法を用いることで、中間層素子の役割の分化が促進され、通常のコンパクト構造化法よりも早い段階で中間層素子を融合させることが可能である。
また、学習アルゴリムＡでは、コンパクト構造化法により中間層素子が削減されるため、計算量が減少し学習時間を短縮することが可能である。
さらに、重畳エネルギー関数は不要な中間層素子の生成を抑制するアルゴリズムであり、中間層素子の役割が明確な構造になりやすい。そのため不要な中間層素子と重要な中間層素子の判定は容易であり、コンパクト構造化法のしきい値の値が多少不適切でもその影響は緩和され、最適な中間層素子数が選択されやすくなる。
【００７３】
続いて他の実施形態を説明する。本実施形態の学習アルゴリズムＢでは、中間層素子とバイアス素子との融合のみを行うコンパクト構造化（以下、単にコンパクト構造化（１）という）、および、中間層素子とバイアス素子との融合と中間層素子同士の融合という２種類の融合を行うコンパクト構造化（以下、コンパクト構造化（２）という）を準備する。そして、バックプロパゲーション法による学習とコンパクト構造化（１）を交互に行うようにし、学習終了後にコンパクト構造化（２）を行うアルゴリズムとした。
【００７４】
この学習アルゴリムＢでは、学習中は中間層素子同士の融合を制限し、学習終了後に中間層素子同士の融合を行う。ニューラルネットワークの各中間層素子は、学習の進行にともない成長し役割が分化する。学習初期段階において不要な中間層素子（バイアス素子的であって分散が小さい）であっても学習の進行にともない重要な中間層素子に成長する可能性がある。また学習初期段階において出力値系列が同じような中間層素子（相関が高い）同士であっても学習の進行にともない出力値系列が変化して相関が低くなる可能性もある。そこで、学習中は融合を制限し、学習終了後に中間層素子の役割が充分に明確になった時点で融合する。この学習アルゴリズムＢについて説明する。
【００７５】
図２は本発明の実施形態の学習アルゴリズムＢのフローチャートである。
ステップＳ１１は、初期化処理を行うステップである。中間層の階層数、各層の中間層素子数、分散のしきい値、相関係数のしきい値、学習回数などを入力する。
ステップＳ１２は、バックプロパゲーション法による学習を行うステップである。バックプロパゲーション法により求めたニューラルネットワークの結合係数を新しい結合係数とし、書き換えて保存する。
【００７６】
ステップＳ１３は、コンパクト構造化を実行するか否かを判定するステップである。本学習アルゴリズムＢでも、学習回数が所定回数に達したか否かについて判定するものとする。学習回数が所定回数に達しているならばステップＳ１４へ進み、学習回数が所定回数に達していないならば初期段階（つまり中間層素子は充分な分化が行われていない段階）としてステップＳ１７へジャンプする。
【００７７】
ステップＳ１４は、中間層素子からの出力値系列を用いて分散を算出するステップである。具体的には、複数ある中間層素子の出力値系列を用いて全ての中間層素子についての分散を求めるものであり、コンパクト構造化法で説明した数式１を用いて算出することとなる。
ステップＳ１５は、ステップＳ１４で算出した複数の分散について所定値以下か否かを判定するステップである。複数の分散の一つでも所定値以下（バイアス素子へ融合可）と判断するならばステップＳ１６へ進み、また、全ての分散が所定値を越える（バイアス素子へ融合不可）と判断するならばステップＳ１７へジャンプする。
【００７８】
ステップＳ１６は、融合を行うステップである。中間層素子とバイアス素子との融合を行う。
なお、複数の中間層素子の分散を算出して多数の分散が所定値以下の場合、最も分散が小さい中間層素子とバイアス素子とを融合させる。１度に融合可能な全ての素子を融合する場合も考えられるが、１度のコンパクト構造化に対し１回に融合制限した方が良好な学習結果が得られることが多い。
【００７９】
ステップＳ１７は、学習終了か否かを判断するステップである。具体的には学習回数が所定回数に達したか否かを判断している。学習終了しない場合は、ステップＳ１２の先頭へジャンプして再度バックプロパゲーション法により学習を行う。学習終了の場合はコンパクト構造化（２）を行うためステップＳ１８へ進む。
【００８０】
ステップＳ１８は、中間層素子からの出力値系列を用いて分散を算出するステップである。先の数式１を用いて算出することとなる。
ステップＳ１９は、ステップＳ１８で算出した複数の分散について所定値以下か否かを判定するステップである。複数の分散の一つでも所定値以下（バイアス素子へ融合可）と判断するならばステップＳ２２へジャンプし、また、全ての分散が所定値を越える（バイアス素子へ融合不可）と判断するならばステップＳ２０へ進む。
【００８１】
ステップＳ２０は、中間層素子からの出力値系列を用いて２つの中間層素子の相関係数を算出するステップである。数式２を用いて算出することとなる。
ステップＳ２１は、ステップＳ２０で算出した複数の相関係数について所定値以上か否かを判定するステップである。複数のうち１つでも相関係数の絶対値が所定値以上（２つの中間層素子が融合可）と判断するならばステップＳ２２へ進み、また、相関係数が所定値未満（２つの中間層素子の融合不可）と判断するならばフローから抜けて終了する。
【００８２】
ステップＳ２２は、融合を行うステップである。ステップＳ１９からジャンプしてきたならば中間層素子とバイアス素子との融合を、また、ステップＳ２１から来たならば中間層素子同士の融合を行い、ステップＳ１８へジャンプする。
なお、コンパクト構造化（２）においても、複数の中間層素子の分散を算出して多数の分散が所定値以下の場合、最も分散が小さい中間層素子とバイアス素子とを融合させ、同様に、相関係数の絶対値が所定値以上の中間層素子の組み合わせが多数ある場合、最も相関係数の絶対値が大きい中間層素子の組み合わせを融合させる。
いずれも、１度のコンパクト構造化に対し１回に融合制限した方が良好な結果が得られることが多いからである。
【００８３】
この学習アルゴリズムＢでは、コンパクト構造化法の最大の欠点である不適切なしきい値の設定による過融合の発生を防止でき、良好な学習を行うことができる。
また、学習アルゴリムＢでは、コンパクト構造化法により中間層素子が削減されるため、計算量が減少し学習時間を短縮することが可能である。
【００８４】
続いて他の実施形態を説明する。本実施形態の学習アルゴリズムＣでは、図２で示す学習アルゴリズムＢを改良し、バックプロパゲーション法による学習の代わりに重畳エネルギー関数法による学習とし、重畳エネルギー関数法による学習とコンパクト構造化（１）を交互に行うようにし、学習終了後にコンパクト構造化（２）を行うアルゴリズムとした。
【００８５】
この学習アルゴリムＣでは、学習中は中間層素子同士の融合を制限し、学習終了後に中間層素子同士の融合を行う。ニューラルネットワークの各中間層素子は、学習の進行にともない成長し役割が分化する。学習初期段階において不要な中間層素子（バイアス素子的であって分散が小さい）であっても学習の進行にともない重要な中間層素子に成長する可能性があり、また、学習初期段階において出力値系列が同じような中間層素子（相関が高い）同士であっても学習の進行にともない出力値系列が変化して相関が低くなる可能性もある。さらに、重畳エネルギー関数は不要中間層素子の生成を抑制するアルゴリズムであり、学習が進むにつれて中間層素子の役割が明確な構造になりやすい。そのため不要な中間層素子と重要な中間層素子の判定は学習終了後は容易である。
そこで、学習中は融合を制限し、学習終了後に中間層素子の役割が充分に明確になった時点で融合する。この学習アルゴリズムＣについて説明する。
【００８６】
図３は本発明の実施形態の学習アルゴリズムＣのフローチャートである。
ステップＳ３１は、初期化処理を行うステップである。中間層の階層数、各層の中間層素子数、分散のしきい値、相関係数のしきい値、学習回数などを入力する。
ステップＳ３２は、重畳エネルギー関数法による学習を行うステップである。重畳エネルギー関数法により求めたニューラルネットワークの結合係数を新しい結合係数とし、書き換えて保存する。
【００８７】
ステップＳ３３は、コンパクト構造化を実行するか否かを判定するステップである。本学習アルゴリズムＣでも、学習回数が所定回数に達したか否かについて判定するものとする。学習回数が所定回数に達しているならばステップＳ３４へ進み、学習回数が所定回数に達していないならば初期段階（つまり中間層素子は充分な分化が行われていない段階）としてステップＳ３７へジャンプする。
【００８８】
ステップＳ３４は、中間層素子からの出力値系列を用いて分散を算出するステップである。具体的には、複数ある中間層素子の出力値系列を用いて全ての中間層素子についての分散を求めるものであり、コンパクト構造化法で説明した数式１を用いて算出することとなる。
ステップＳ３５は、ステップＳ３４で算出した複数の分散について所定値以下か否かを判定するステップである。複数の分散の一つでも所定値以下（バイアス素子へ融合可）と判断するならばステップＳ３６へ進み、また、全ての分散が所定値を越える（バイアス素子へ融合不可）と判断するならばステップＳ３７へジャンプする。
【００８９】
ステップＳ３６は、融合を行うステップである。中間層素子とバイアス素子との融合を行う。
なお、複数の中間層素子の分散を算出して多数の分散が所定値以下の場合、最も分散が小さい中間層素子とバイアス素子とを融合させる。１度に融合可能な全ての素子を融合する場合も考えられるが、１度のコンパクト構造化に対し１回に融合制限した方が良好な学習結果が得られることが多い。
【００９０】
ステップＳ３７は、学習終了か否かを判断するステップである。具体的には学習回数が所定回数に達したか否かを判断している。学習終了しない場合は、ステップＳ３２の先頭へジャンプして再度重畳エネルギー関数法により学習を行い、学習終了の場合はコンパクト構造化（２）を行うためステップＳ３８へ進む。
【００９１】
ステップＳ３８は、中間層素子からの出力値系列を用いて分散を算出するステップである。先の数式１を用いて算出することとなる。
ステップＳ３９は、ステップＳ３８で算出した複数の分散について所定値以下か否かを判定するステップである。複数の分散の一つでも所定値以下（バイアス素子へ融合可）と判断するならばステップＳ４２へジャンプし、また、全ての分散が所定値を越える（バイアス素子へ融合不可）と判断するならばステップＳ４０へ進む。
【００９２】
ステップＳ４０は、中間層素子からの出力値系列を用いて２つの中間層素子の相関係数を算出するステップである。数式２を用いて算出することとなる。
ステップＳ４１は、ステップＳ４０で算出した複数の相関係数について所定値以上か否かを判定するステップである。複数のうち１つでも相関係数の絶対値が所定値以上（２つの中間層素子が融合可）と判断するならばステップＳ４２へ進み、また、相関係数が所定値未満（２つの中間層素子の融合不可）と判断するならばフローから抜けて終了する。
【００９３】
ステップＳ４２は、融合を行うステップである。ステップＳ３９からジャンプしてきたならば中間層素子とバイアス素子との融合を、また、ステップＳ４１から来たならば中間層素子同士の融合を行い、ステップＳ３８にジャンプする。
なお、コンパクト構造化（２）においても、複数の中間層素子の分散を算出して多数の分散が所定値以下の場合、最も分散が小さい中間層素子とバイアス素子とを融合させ、同様に、相関係数の絶対値が所定値以上の中間層素子の組み合わせが多数ある場合、最も相関係数の絶対値が大きい中間層素子の組み合わせを融合させる。
いずれも、１度のコンパクト構造化に対し１回に融合制限した方が良好な結果が得られることが多いからである。
【００９４】
この学習アルゴリズムＣでは、コンパクト構造化法の最大の欠点である不適切なしきい値の設定による過融合の発生を防止でき、良好な学習を行うことができる。
また、学習アルゴリムＣでは、コンパクト構造化法により中間層素子が削減されるため、計算量が減少し、学習時間を短縮することが可能である。
さらに、重畳エネルギー関数は不要な中間層素子の生成を抑制するアルゴリズムであり、中間層素子の役割が明確な構造になりやすい。そのため不要な中間層素子と重要な中間層素子の判定は容易であり、コンパクト構造化法のしきい値の値が多少不適切でもその影響は緩和され、最適な中間層素子数が選択されやすくなる。
さらに、この学習アルゴリズムＣでは、学習アルゴリズムＡでは完全に防ぐことはできない過融合の発生を著しく低減する。
【００９５】
これら学習アルゴリズムＡ〜Ｃのコンパクト構造化法をさらに改良することにより、全体の学習アルゴリズムも改良することができる。このような改良コンパクト構造化法を説明する。図４は、コンパクト構造化法のフローチャートである。このフローチャートでは、図１で示したコンパクト構造化法、および、図２，図３で示したコンパクト構造化法（２）を改良するものである。
【００９６】
ステップＳ５１は、中間層素子からの出力値系列を用いて分散を算出するステップである。先の数式１を用いて算出することとなる。
ステップＳ５２は、ステップＳ５１で算出した複数の分散について所定値以下か否かを判定するステップである。複数の分散のうち一つでも所定値以下（バイアス素子へ融合可）と判断するならばステップＳ５５へジャンプし、また、全ての分散が所定値を越える（バイアス素子へ融合不可）と判断するならばステップＳ５３へ進む。
【００９７】
ステップＳ５３は、中間層素子からの出力値系列を用いて２つの中間層素子の相関係数を算出するステップである。数式２を用いて算出することとなる。
ステップＳ５４は、ステップＳ５３で算出した複数の相関係数について所定値以上か否かを判定するステップである。複数のうち１つでも相関係数の絶対値が所定値以上（２つの中間層素子が融合可）と判断するならばステップＳ５５へ進み、また、相関係数が所定値未満（２つの中間層素子の融合不可）と判断するならばフローから抜けて終了する。
【００９８】
ステップＳ５５は、ニューラルネットワークを保存するステップである。具体的には、ニューラルネットワークの結合係数を記憶保存する。
ステップＳ５６は、融合前の誤差を検出するステップである。ステップＳ５５で記憶保存されているニューラルネットワークを用いて実際の出力であるニューロ出力値と学習目標値との差である出力誤差を検出し、記憶保存しておく。
【００９９】
ステップＳ５７は、融合して新たにニューラルネットワークを生成するステップである。ステップＳ５２からジャンプしてきたならば中間層素子とバイアス素子との融合を、また、ステップＳ５４から来たならば中間層素子同士の融合を行う。
なお、改良コンパクト構造化法においても、複数の中間層素子の分散を算出して多数の分散が所定値以下の場合、最も分散が小さい中間層素子とバイアス素子とを融合させ、同様に、相関係数の絶対値が所定値以上の中間層素子の組み合わせが多数ある場合、最も相関係数の絶対値が大きい中間層素子の組み合わせを融合させる。
いずれも、１度のコンパクト構造化に対し１回に融合制限した方が良好な結果が得られることが多いからである。
【０１００】
ステップＳ５８は、融合後の誤差を検出するステップである。ステップＳ５７で生成した新しいニューラルネットワークを用いて実際の出力であるニューロ出力値と学習目標値との差である出力誤差を検出し、記憶保存する。
ステップＳ５９は、融合前後に求めた出力誤差を比較して出力誤差が悪化したか否かを判定するステップである。出力誤差が増えた、つまり、出力誤差が悪化した場合、ステップＳ６０へ進み、出力誤差が減った、つまり、出力誤差が改善された場合フローから抜けて終了する。
【０１０１】
ステップＳ６０は、ステップＳ５５で保存した融合前のニューラルネットワークを復元するステップである。具体的には、ニューラルネットワークの結合係数を元に戻す。その後フローを抜けて終了する。
【０１０２】
このように融合を実施する前に、学習誤差が予め定められた値を越える場合、または、学習誤差が予め定められた増加率を越える場合は、融合前のニューラルネットワークに戻し、学習誤差が改善するときのみ融合を実施することで、コンパクト構造化法の過融合を防止し、学習アルゴリズムＡ〜Ｃを改善する。
【０１０３】
【実施例】
続いて、本発明の一部である学習アルゴリズムＡに係る実施例について説明する。学習アルゴリズムＡに係る実施例では、重畳エネルギー関数により中間層素子の役割が明確になるため、学習初期段階よりコンパクト構造化法が適用可能となることを示す。
図５は、ニューラルネットワークの構造例を示す説明図である。本実施例では、図５で示すように、９個の中間層素子をもつニューラルネットワークとしている。このニューラルネットワークに次式のような関数を学習させる。
【０１０４】
【数１２】
0004226754.tif 000011
【０１０５】
学習アルゴリズムＡに係る実施例では、バックプロパゲーション法と重畳関数エネルギー法とでニューラルネットワークを学習させることで両者の比較を試みる。これは、図１６で示した従来法３によるバックプロパゲーション法・コンパクト構造化法による学習と、図１で示した本発明の実施形態の一部である学習アルゴリズムＡによる重畳エネルギー関数法・コンパクト構造化法による学習とを比較するものである。
図６，図７は、学習中のニューラルネットワークの中間層素子の分散変化を示す特性図であり、図６はバックプロパゲーション法・コンパクト構造化法による学習を、また、図７では重畳エネルギー関数法・コンパクト構造化法による学習をそれぞれ行った場合の分散変化を示す。
【０１０６】
分散は、中間層素子の重要度を示す評価指標としてよく使われる。つまり、分散が小さい素子は学習パターンの入力値系列が変化しても出力値系列が変わらない不要な素子であり、分散が大きい素子は学習パターンの入力値系列が変化するにつれて出力値系列が変化する重要な素子と見なすことができる。
図６，図７を比較すると重畳エネルギー関数法の方がバックプロパゲーション法よりも、学習初期段階で分散が大きい、つまり、不要な中間層素子と重要な中間層素子が早く、しかも明確に分化していることが分かる。
このように、重畳エネルギー関数法を適用することで、学習初期段階より、分散の小さい不要な中間層素子をバイアス素子に融合することが可能である。また、不要な中間層素子と重要な中間層素子の分散の差は大きく明確であるため、しきい値の設定が容易であり、最適な融合が容易である。
【０１０７】
続いて、第１実施例について説明する。
本実施例では各学習方法別に学習速度、ニューラルネットワークの最適化の度合いを示す。なお、学習する関数は学習アルゴリズムＡに係る実施例の数式１２と同様であり、説明を省略する。本実施例では比較のため６通りの方法で学習した。これら学習について、以下、検討１〜検討６として説明する。検討１〜検討３については表１として示されている。
【０１０８】
【表１】
0004226754.tif 000012
【０１０９】
検討１は、通常（従来法１）のバックプロパゲーション法によるニューラルネットワークの最適化である。
検討２は、通常（従来法２）の重畳エネルギー関数法である。最も誤差が小さいものの、学習時間が最長という欠点がある。
検討３は、通常（従来法３）のコンパクト構造化法である。学習時間が最短ではあるが、学習誤差が大きい。融合があまり起こらず中間層素子の数が多いにもかかわらず学習誤差が大きいのが問題である。このようにコンパクト構造化法は、しきい値等の設定が難しく、学習に悪影響を与えるというおそれがある。
【０１１０】
検討４〜検討６については表２として示されている。
【０１１１】
【表２】
0004226754.tif 000013
【０１１２】
検討４は、学習アルゴリズムＡである。検討３で示した通常（従来法３）のコンパクト構造化法よりも学習誤差が小さく、かつ、通常の重畳エネルギー関数法よりも学習時間が短い。学習誤差は、検討１（バックプロパゲーション法）の学習誤差よりも若干良い。
検討５は、学習アルゴリズムＢ（請求項２）と改良されたコンパクト構造化法（請求項４）の発明である。本発明はコンパクト構造化の過融合防止に力点をおいている。よって、コンパクト構造化法の過融合の欠点を意識することなく安心して使用することができる。
【０１１３】
本実施例では、融合が全く起きず検討１（バックプロパゲーション法）と同じ結果になってしまった。その原因は以下と考えられる。バックプロパゲーションをベースにした学習方法であるため、中間層素子の分化が進まず、分散の小さい素子がなく学習中に過融合が防止された（請求項２）。また、学習終了後、相関の高い中間層素子が多くあったが、学習誤差が規定値以上増加するため、同様に過融合が防止された（請求項４）。
【０１１４】
検討６は、学習アルゴリズムＣ（請求項３）と改良されたコンパクト構造化法（請求項４）とを組み合わせた発明である。学習誤差は検討２（重畳エネルギー関数法）とほぼ同程度であり、かつ学習時間は検討２（重畳エネルギー関数法）よりも短い。中間層素子の数も少なく、学習時間と学習誤差のバランスもとれた方法と言える。
【０１１５】
【発明の効果】
本発明によれば、いくつかの有望な学習アルゴリズムを融合し、単体で適用した場合に生じる弱点を他の学習アルゴリズムで補ったり、適用方法を工夫することで、高速かつ効率的にニューラルネットワークを最適化するニューラルネットワークの最適化学習方法を提供することができる。
【図面の簡単な説明】
【図１】  本発明の実施形態の一部である学習アルゴリズムＡのフローチャートである。
【図２】  本発明の実施形態の学習アルゴリズムＢのフローチャートである。
【図３】  本発明の実施形態の学習アルゴリズムＣのフローチャートである。
【図４】  コンパクト構造化法のフローチャートである。
【図５】  ニューラルネットワークの構造例を示す説明図である。
【図６】  学習中のニューラルネットワークの中間層素子の分散変化を示す特性図である。
【図７】  学習中のニューラルネットワークの中間層素子の分散変化を示す特性図である。
【図８】  多層ニューラルネットワークを説明する概念図である。
【図９】  重畳エネルギー関数法により学習された中間層素子を説明する説明図である。
【図１０】  不要な分散表現について説明する説明図である。
【図１１】  部分ニューロを説明する説明図である。
【図１２】  重畳エネルギー関数法による学習の流れを示すフローチャートである。
【図１３】  融合を説明する説明図である。
【図１４】  学習パターンに対する中間層素子の出力を示す出力図である。
【図１５】  ニューラルネットワークの融合を説明する説明図である。
【図１６】  従来のコンパクト構造化の学習アルゴリズムのフローチャートである。
【図１】
0004226754.tif 000016
【図２】
0004226754.tif 000017
【図３】
0004226754.tif 000018
【図４】
0004226754.tif 000019
【図５】
0004226754.tif 000020
【図６】
0004226754.tif 000021
【図７】
0004226754.tif 000022
【図８】
0004226754.tif 000023
【図９】
0004226754.tif 000024
【図１０】
0004226754.tif 000025
【図１１】
0004226754.tif 000026
【図１２】
0004226754.tif 000027
【図１３】
0004226754.tif 000028
【図１４】
0004226754.tif 000029
【図１５】
0004226754.tif 000030
【図１６】
0004226754.tif 000031