(57)【要約】【課題】０値を有するニューロン間の接続重みの数が非最多である相互接続型のニューラルネットワークモデルに基づく演算処理を実行する情報処理装置で、演算処理を効率化する。【解決手段】ニューロン間接続重み補正設定手段４が、０値を有するニューロン間の接続重みの数が多くなるように補正したニューロン間の接続重みを設定し、そして、演算処理実行手段４が、当該設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて相互接続型のニューラルネットワークモデルに基づく演算処理を実行し、更に、ニューロン間接続重み補正打ち消し補正手段４が、ニューロン間の接続重みに関する補正を打ち消すように、演算処理実行手段４による演算処理結果に関する補正を行う。【選択図】      図１
2005011024.tif 000002
【特許請求の範囲】
【請求項１】
相互接続型のニューラルネットワークモデルに基づく演算処理を実行する情報処理装置において、
０値を有するニューロン間の接続重みの数が多くなるようにニューロン間の接続重みを設定するニューロン間接続重み設定手段と、
ニューロン間接続重み設定手段による設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて相互接続型のニューラルネットワークモデルに基づく演算処理を実行する演算処理実行手段と、
を備えたことを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置において、
絶対値が所定の値以下又は未満であるニューロン間の接続重みを０値に補正したニューロン間の接続重みを設定する０値補正ニューロン間接続重み設定手段を備え、
演算処理実行手段は、ニューロン間接続重み設定手段による設定及び０値補正ニューロン間接続重み設定手段による設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて相互接続型のニューラルネットワークモデルに基づく演算処理を実行する、
ことを特徴とする情報処理装置。
【請求項３】
０値を有するニューロン間の接続重みの数が非最多である相互接続型のニューラルネットワークモデルに基づく演算処理を実行する情報処理装置において、
０値を有するニューロン間の接続重みの数が多くなるように補正したニューロン間の接続重みを設定するニューロン間接続重み補正設定手段と、
ニューロン間接続重み補正設定手段による設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて相互接続型のニューラルネットワークモデルに基づく演算処理を実行する演算処理実行手段と、
ニューロン間の接続重みに関する補正を打ち消すように、演算処理実行手段による演算処理結果に関する補正を行うニューロン間接続重み補正打ち消し補正手段と、
を備えたことを特徴とする情報処理装置。
【請求項４】
請求項３に記載の情報処理装置において、
ニューロン間接続重み補正打ち消し補正手段は、ニューロン間の接続重みに関する補正を打ち消すように、演算処理実行手段による演算処理結果を補正する、
ことを特徴とする情報処理装置。
【請求項５】
請求項３に記載の情報処理装置において、
演算処理実行手段による相互接続型のニューラルネットワークモデルに基づく演算処理の演算処理結果は、ニューロンにおいて他のニューロンからの入力値と当該他のニューロンとの接続重み値とを乗算した結果を複数の他のニューロンについて総和した値を含み、
ニューロン間接続重み補正打ち消し補正手段は、ニューロン間の接続重みに関する補正を打ち消すように、ニューロンの発火のための閾値を補正する、
ことを特徴とする情報処理装置。
【請求項６】
請求項３乃至請求項５のいずれか１項に記載の情報処理装置において、
ニューロン間接続重み補正打ち消し補正手段は、近似値を用いて補正を行う、
ことを特徴とする情報処理装置。
【請求項７】
請求項３乃至請求項６のいずれか１項に記載の情報処理装置において、
絶対値が所定の値以下又は未満であるニューロン間の接続重みを０値に補正したニューロン間の接続重みを設定する０値補正ニューロン間接続重み設定手段を備え、
演算処理実行手段は、ニューロン間接続重み補正設定手段による設定及び０値補正ニューロン間接続重み設定手段による設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて相互接続型のニューラルネットワークモデルに基づく演算処理を実行する、
ことを特徴とする情報処理装置。
【請求項８】
請求項１乃至請求項７のいずれか１項に記載の情報処理装置において、
相互接続型のニューラルネットワークモデルは、完全相互接続型のニューラルネットワークモデルである、
ことを特徴とする情報処理装置。
【請求項９】
相互接続型のニューラルネットワークモデルに基づく演算処理を実行する情報処理方法において、
０値を有するニューロン間の接続重みの数が多くなるようにニューロン間の接続重みを設定し、
当該設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて相互接続型のニューラルネットワークモデルに基づく演算処理を実行する、
ことを特徴とする情報処理方法。
【請求項１０】
０値を有するニューロン間の接続重みの数が非最多である相互接続型のニューラルネットワークモデルに基づく演算処理を実行する情報処理方法において、
０値を有するニューロン間の接続重みの数が多くなるように補正したニューロン間の接続重みを設定し、
当該設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて相互接続型のニューラルネットワークモデルに基づく演算処理を実行し、
ニューロン間の接続重みに関する補正を打ち消すように、当該演算処理結果に関する補正を行う、
ことを特徴とする情報処理方法。
【請求項１１】
相互接続型のニューラルネットワークモデルに基づく演算処理を実行するためのプログラムにおいて、
０値を有するニューロン間の接続重みの数が多くなるようにニューロン間の接続重みを設定する機能と、
当該設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて相互接続型のニューラルネットワークモデルに基づく演算処理を実行する機能と、
をコンピュータにより実現するプログラム。
【請求項１２】
０値を有するニューロン間の接続重みの数が非最多である相互接続型のニューラルネットワークモデルに基づく演算処理を実行するためのプログラムにおいて、
０値を有するニューロン間の接続重みの数が多くなるように補正したニューロン間の接続重みを設定する機能と、
当該設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて相互接続型のニューラルネットワークモデルに基づく演算処理を実行する機能と、
ニューロン間の接続重みに関する補正を打ち消すように、当該演算処理結果に関する補正を行う機能と、
をコンピュータにより実現するプログラム。
【請求項１３】
相互接続型のニューラルネットワークモデルに基づく演算処理をコンピュータに実行させるプログラムを当該コンピュータの入力手段により読み取り可能に記憶した記憶媒体において、
当該プログラムは、０値を有するニューロン間の接続重みの数が多くなるようにニューロン間の接続重みを設定する処理と、
当該設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて相互接続型のニューラルネットワークモデルに基づく演算処理を実行する処理を当該コンピュータに実行させる、
ことを特徴とする記憶媒体。
【請求項１４】
０値を有するニューロン間の接続重みの数が非最多である相互接続型のニューラルネットワークモデルに基づく演算処理をコンピュータに実行させるプログラムを当該コンピュータの入力手段により読み取り可能に記憶した記憶媒体において、
当該プログラムは、０値を有するニューロン間の接続重みの数が多くなるように補正したニューロン間の接続重みを設定する処理と、
当該設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて相互接続型のニューラルネットワークモデルに基づく演算処理を実行する処理と、
ニューロン間の接続重みに関する補正を打ち消すように、当該演算処理結果に関する補正を行う処理を当該コンピュータに実行させる、
ことを特徴とする記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、相互接続型のニューラルネットワークモデルに基づく演算処理を実行する情報処理装置などに関し、特に、演算処理を効率化する情報処理装置などに関する。
【０００２】
【従来の技術】
例えば、Ｈｏｐｆｉｅｌｄネットワーク（例えば、非特許文献１、２参照。）に代表される相互接続ニューラルネットワークでは、安定性実現のため、完全相互接続が基本である。しかしながら、完全相互接続においては、ニューロン数がＮ個であるネットワークでは計算量のオーダーがＯ（Ｎ２）必要になってしまい、現実問題に対応できるくらいに問題空間を大きくするに従って、処理時間が非実用的になっていってしまうという問題点があった。
【０００３】
また、例えば、接続密度を希釈化することによって、安定性を確保しつつ記憶容量を上げるｄｉｌｕｔｅｄ  Ｈｏｐｆｉｅｌｄ  ｍｏｄｅｌがある（例えば、非特許文献３参照。）。これは、１個のニューロンにつきＫ本のシナプスをランダム（＝Ｋ／Ｎの確率）に接続することにより、安定性確保と計算量爆発を防ぐことができるモデルである。しかしながら、上記したＨｏｐｆｉｅｌｄモデルと同等の安定性・記憶容量を求めるためには、“ｌｏｇ  Ｋ＜＜ｌｏｇ  Ｎ”という非現実的な条件が必要であった。
【０００４】
【非特許文献１】
Ｊ．  Ｊ．  Ｈｏｐｆｉｅｌｄ，  ”Ｎｅｕｒａｌ  ｎｅｔｗｏｒｋｓ  ａｎｄ  ｐｈｙｓｉｃａｌ  ｓｙｓｔｅｍｓ  ｗｉｔｈ  ｅｍｅｒｇｅｎｔ  ｃｏｌｌｅｃｔｉｖｅ  ｃｏｍｐｕｔａｔｉｏｎａｌ  ａｂｉｌｉｔｉｅｓ”，  Ｐｒｏｃ．  Ｎａｔｌ．  Ａｃａｄ．  Ｓｃｉ．  ＵＳＡ，  １９８２，  Ｖｏｌ．７９，  ｐｐ．２５５４−２５５８，  Ａｐｒ．，  Ｂｉｏｐｈｙｓｉｃｓ
【０００５】
【非特許文献２】
Ｃ．  Ｍｅｕｎｉｅｒ  ａｎｄ    Ｊ．−Ｐ．  Ｎａｄａｌ，  ”Ｓｐａｒｓｅｌｙ  Ｃｏｄｅｄ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ”，  ｐｐ．８９９−９０１，  ｉｎ  ｂｏｏｋ  Ｍ．  Ａ．  Ａｒｂｉｂ  ｅｄｓ．，  ”Ｔｈｅ  Ｈａｎｄｂｏｏｋ  ｏｆ  Ｂｒａｉｎ  Ｔｈｅｏｒｙ  ａｎｄ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ”，  Ｔｈｅ  ＭＩＴ  Ｐｒｅｓｓ，  １９９５
【０００６】
【非特許文献３】
Ａ．  Ｚｉｐｐｅｌｉｕｓ  ａｎｄ  Ａ．  Ｅｎｇｅｌ，  ”Ｓｔａｔｉｓｔｉｃａｌ  Ｍｅｃｈａｎｉｃｓ  ｏｆ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ”，  ｐｐ．９３０−９３４，  ｉｎ  ｂｏｏｋ  Ｍ．  Ａ．  Ａｒｂｉｂ  ｅｄｓ．，  ”Ｔｈｅ  Ｈａｎｄｂｏｏｋ  ｏｆ  Ｂｒａｉｎ  Ｔｈｅｏｒｙ  ａｎｄ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ”，  Ｔｈｅ  ＭＩＴ  Ｐｒｅｓｓ，  １９９５
【０００７】
【非特許文献４】
Ｇ．  Ｃｈｅｃｈｉｋ，  Ｉ．  Ｍｅｉｌｉｊｓｏｎ  ａｎｄ  Ｅ．  Ｒｕｐｐｉｎ，  鉄ｙｎａｐｔｉｃ  Ｐｒｕｎｉｎｇ  ｉｎ  Ｄｅｖｅｌｏｐｍｅｎｔ：  Ａ  Ｃｏｍｐｕｔａｔｉｏｎａｌ  Ａｃｃｏｕｎｔ・  Ｎｅｕｒａｌ  Ｃｏｍｐｕｔａｔｉｏｎ，  Ｖｏｌ．１０，  ｐｐ．１７５９−１７７７（１９９８）
【０００８】
【発明が解決しようとする課題】
上述のように、従来においては、完全相互接続型のニューラルネットワークモデルに基づく演算処理を実行するに際して、当該演算処理が膨大となってしまい、現実的に実施することが困難であるといった不具合があった。
本発明は、このような従来の課題を解決するために為されたもので、相互接続型のニューラルネットワークモデルに基づく演算処理を実行するに際して、演算処理を効率化することができる情報処理装置などを提供することを目的とする。
【０００９】
【課題を解決するための手段】
まず、ニューラルネットワークモデルなどについて説明する。
ニューラルネットワークモデルでは、例えば、複数のニューロンが設けられ、これら複数のニューロンが所定の配置で接続され、或るニューロンと他のニューロンとの間に接続重みの値が設けられ、それぞれのニューロンでは複数の入力値に対して１個の出力値を生成する。なお、ニューロン間の接続重みの値としては、例えば、正の値や、ゼロ（０）値や、負の値が用いられる。
【００１０】
一例として、それぞれのニューロンでは、複数の入力値のそれぞれに対して接続重みの値が設けられており、それぞれの入力値とそれぞれの接続重み値とを乗算した結果の総和値を出力値とする。また、一例として、それぞれのニューロンでは、発火のための閾値が設けられており、当該総和値が当該閾値を超えた場合に発火状態として出力値を１値とし、当該総和値が当該閾値未満である場合に非発火状態（発火していない状態）として出力値を０値とする。なお、当該総和値と当該閾値とが同一の値である場合には、発火状態とされてもよく、或いは、非発火状態とされてもよい。
【００１１】
また、相互接続型では、或るニューロン（ここで、ニューロンＡと言う）と他のニューロン（ここで、ニューロンＢと言う）とが互いに接続されており、つまり、ニューロンＡの出力値がニューロンＢに入力され、ニューロンＢの出力値がニューロンＡに入力される。
また、完全相互接続型では、全てのニューロンについて相互接続型の関係が成立し、つまり、複数のニューロンがある場合に、一のニューロンからの出力値が他の全てのニューロンに入力され、当該一のニューロンには当該他の全てのニューロンのそれぞれからの出力値が入力される。
【００１２】
本発明は、完全相互接続型のニューラルネットワークモデルに適用されるのが好ましいが、完全ではない相互接続型のニューラルネットワークについても適用されることが可能であり、例えば、相互接続型のニューロンの組が複数あるような場合に有効である。
【００１３】
また、ニューラルネットワークに基づく演算処理としては、種々な処理が用いられてもよく、例えば、複数のニューロンについてそれぞれのニューロンへの入力値から当該それぞれのニューロンからの出力値を演算する処理や、このようなそれぞれのニューロンに関する演算処理を組み合わせて複数のニューロン全体での出力値を演算する処理などを用いることができる。ニューラルネットワークに基づく演算処理では、一例として、このような演算処理の結果に基づいて、文字のパターン認識などの種々な判定を行うことが可能である。
【００１４】
次に、本発明に係る第１の構成例について説明する。
上記目的を達成するため、本発明に係る情報処理装置では、次のようにして、相互接続型のニューラルネットワークモデルに基づく演算処理を実行する。
すなわち、ニューロン間接続重み設定手段が、０値を有するニューロン間の接続重みの数が多くなるように、ニューロン間の接続重みを設定する。そして、演算処理実行手段が、ニューロン間接続重み設定手段による設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて、相互接続型のニューラルネットワークモデルに基づく演算処理を実行する。
【００１５】
従って、０値を有するニューロン間の接続重みの数が多くされて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて、ニューラルネットワークモデルに基づく演算処理が実行されるため、演算処理を効率化することができる。
【００１６】
ここで、０値を有するニューロン間の接続重みの数が多くなるようにする態様としては、種々な態様が用いられてもよく、例えば、０値を有するニューロン間の接続重みの数が最多となる（つまり、最も多くなる）ようにする態様を用いるのが好ましい。通常は、０値を有するニューロン間の接続重みの数が多いほど、演算処理が効率化される。
【００１７】
また、ニューロン間接続重み設定手段による設定としては、例えば、初期的な設定を用いることもでき、或いは、更新時の設定を用いることもでき、いわゆる上書きも含む。
また、ニューロン間接続重み設定手段による設定としては、例えば、情報処理装置により自動的に行われるが、他の構成例として、当該設定の一部又は全部が情報処理装置のユーザの操作により行われるような構成とすることも可能である。
【００１８】
また、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて、相互接続型のニューラルネットワークモデルに基づく演算処理を実行する態様としては、例えば、ニューロン間の接続重みが０値であるニューロン間接続の演算処理をもともと省略して行わずに、相互接続型のニューラルネットワークモデルに基づく演算処理を実行するような態様を用いることができる。
【００１９】
一般に、ニューロン間の接続重みが０値であるニューロン間接続の演算処理では演算結果として０値が得られるため、このように最終的な演算結果に影響を与えない演算処理を多くしてもともと行わないことにより、演算処理の負担を低減することができる。
【００２０】
本発明に係る情報処理装置では、一構成例として、次のような構成とした。
すなわち、０値補正ニューロン間接続重み設定手段が、絶対値が所定の値（以下で、所定の値Ａ１と言う）以下又は未満であるニューロン間の接続重みを０値に補正したニューロン間の接続重みを設定する。そして、演算処理実行手段は、ニューロン間接続重み設定手段による設定及び０値補正ニューロン間接続重み設定手段による設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて、相互接続型のニューラルネットワークモデルに基づく演算処理を実行する。
【００２１】
従って、所定の値以下又は未満である絶対値を有するニューロン間の接続重みを０値に補正して、ニューラルネットワークモデルに基づく演算処理が実行されるため、更に演算処理を効率化することができる。
なお、０値補正ニューロン間接続重み設定手段は、例えば、ニューロン間接続重み設定手段により設定されたニューロン間の接続重みについて当該接続重みの絶対値に基づいて補正を行う。
【００２２】
ここで、絶対値が所定の値以下又は未満であるニューロン間の接続重みを０値に補正する態様としては、例えば、絶対値が所定の値以下であるニューロン間の接続重みを０値に補正する態様が用いられてもよく、或いは、絶対値が所定の値未満であるニューロン間の接続重みを０値に補正する態様が用いられてもよい。
また、所定の値Ａ１としては、種々な値が用いられてもよい。通常は、所定の値Ａ１が大きいほど、演算処理の負担が低減されるが、演算処理の精度は低下する。
【００２３】
また、０値補正ニューロン間接続重み設定手段による設定としては、例えば、初期的な設定を用いることもでき、或いは、更新時の設定を用いることもでき、いわゆる上書きも含む。
また、０値補正ニューロン間接続重み設定手段による設定としては、例えば、情報処理装置により自動的に行われるが、他の構成例として、当該設定の一部又は全部が情報処理装置のユーザの操作により行われるような構成とすることも可能である。
【００２４】
本発明に係る情報処理装置では、好ましい適用例として、相互接続型のニューラルネットワークモデルは、完全相互接続型のニューラルネットワークモデルである。
【００２５】
次に、本発明に係る第２の構成例について説明する。
上記目的を達成するため、本発明に係る情報処理装置では、次のようにして、０値を有するニューロン間の接続重みの数が非最多である（つまり、最多ではない）相互接続型のニューラルネットワークモデルに基づく演算処理を実行する。
すなわち、ニューロン間接続重み補正設定手段が、０値を有するニューロン間の接続重みの数が多くなるように補正したニューロン間の接続重みを設定する。また、演算処理実行手段が、ニューロン間接続重み補正設定手段による設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて、相互接続型のニューラルネットワークモデルに基づく演算処理を実行する。そして、ニューロン間接続重み補正打ち消し補正手段が、前記したニューロン間の接続重みに関する補正を打ち消すように、演算処理実行手段による演算処理結果に関する補正を行う。
【００２６】
従って、０値を有するニューロン間の接続重みの数が多くされて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて、ニューラルネットワークモデルに基づく演算処理が実行されるため、演算処理を効率化することができる。また、０値を有するニューロン間の接続重みの数が多くなるようにした補正を打ち消すように演算処理結果に関する補正が行われるため、演算処理結果に関して正しい判定などが為されることを保証することができる。
【００２７】
ここで、０値を有するニューロン間の接続重みの数が多くなるように補正したニューロン間の接続重みを設定する態様としては、種々な態様が用いられてもよく、例えば、０値を有するニューロン間の接続重みの数が多くなるようにニューロン間の接続重みの値をずらして設定するような態様（以下で、態様Ａと言う）を用いることができる。
また、このような態様Ａでは、ニューロン間の接続重みに関する補正を打ち消すように演算処理結果に関する補正を行う態様としては、例えば、前記したニューロン間の接続重み値に与えたずれを補償するように補正を行う態様を用いることができる。
【００２８】
また、０値を有するニューロン間の接続重みの数が多くなるようにする態様としては、種々な態様が用いられてもよく、例えば、０値を有するニューロン間の接続重みの数が最多となる（つまり、最も多くなる）ようにする態様を用いるのが好ましい。通常は、０値を有するニューロン間の接続重みの数が多いほど、演算処理が効率化される。
【００２９】
また、ニューロン間接続重み補正設定手段による設定としては、例えば、初期的な設定を用いることもでき、或いは、更新時の設定を用いることもでき、いわゆる上書きも含む。
また、ニューロン間接続重み補正設定手段による設定としては、例えば、情報処理装置により自動的に行われるが、他の構成例として、当該設定の一部又は全部が情報処理装置のユーザの操作により行われるような構成とすることも可能である。
【００３０】
また、ニューロン間接続重み補正設定手段は、一例として、０値を有するニューロン間の接続重みの数が多くなるようにニューロン間の接続重みを補正して設定する手段から構成され、或いは、他の一例として、０値を有するニューロン間の接続重みの数が多くなるようにニューロン間の接続重みを補正する手段と、当該補正されたニューロン間の接続重みを設定する手段から構成される。
【００３１】
また、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて、相互接続型のニューラルネットワークモデルに基づく演算処理を実行する態様としては、例えば、ニューロン間の接続重みが０値であるニューロン間接続の演算処理をもともと省略して行わずに、相互接続型のニューラルネットワークモデルに基づく演算処理を実行するような態様を用いることができる。
【００３２】
一般に、ニューロン間の接続重みが０値であるニューロン間接続の演算処理では演算結果として０値が得られるため、このように最終的な演算結果に影響を与えない演算処理を多くしてもともと行わないことにより、演算処理の負担を低減することができる。
【００３３】
また、演算処理結果に関する補正としては、種々な補正が用いられてもよい。
一構成例として、本発明に係る情報処理装置では、ニューロン間接続重み補正打ち消し補正手段は、ニューロン間の接続重みに関する補正を打ち消すように、演算処理実行手段による演算処理結果を補正する。
従って、演算処理結果自体を補正することにより、正しい演算処理結果を得ることができる。
【００３４】
他の一構成例として、本発明に係る情報処理装置では、次のような構成とした。
すなわち、演算処理実行手段による相互接続型のニューラルネットワークモデルに基づく演算処理の演算処理結果は、ニューロンにおいて他のニューロンからの入力値と当該他のニューロンとの接続重み値とを乗算した結果を複数の他のニューロンについて総和した値を含む。そして、ニューロン間接続重み補正打ち消し補正手段は、ニューロン間の接続重みに関する補正を打ち消すように、ニューロンの発火のための閾値を補正する。
【００３５】
従って、演算処理結果に含まれる当該総和値自体は本来の正解からずれるが、当該総和値と大小関係が比較されるニューロン発火のための閾値を補正することにより、当該比較結果として本来の正解を得ることができる。
【００３６】
ここで、ニューロン発火のための閾値としては、種々な値が用いられてもよい。
また、ニューロン発火のための閾値を補正する仕方としては、種々な仕方が用いられてもよく、例えば、総和値と閾値との大小を比較する場合に、総和値が＋ｂだけずれるときには閾値を＋ｂだけずらすような補正の仕方を用いることができる。
【００３７】
本発明に係る情報処理装置では、一構成例として、ニューロン間接続重み補正打ち消し補正手段は、近似値を用いて補正を行う。
従って、近似値を用いて補正を行うことにより、演算処理の負担を低減することができる。
【００３８】
ここで、近似の程度としては、種々な程度が用いられてもよく、例えば、要求される演算処理結果の精度などに応じて、種々な程度の近似が設定されてもよい。
なお、ニューロン間接続重み補正打ち消し補正手段としては、例えば、厳密な値を用いて補正を行う構成が用いられてもよい。
【００３９】
本発明に係る情報処理装置では、一構成例として、次のような構成とした。
すなわち、０値補正ニューロン間接続重み設定手段が、絶対値が所定の値（以下で、所定の値Ａ２と言う）以下又は未満であるニューロン間の接続重みを０値に補正したニューロン間の接続重みを設定する。そして、演算処理実行手段は、ニューロン間接続重み補正設定手段による設定及び０値補正ニューロン間接続重み設定手段による設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて、相互接続型のニューラルネットワークモデルに基づく演算処理を実行する。
【００４０】
従って、所定の値以下又は未満である絶対値を有するニューロン間の接続重みを０値に補正して、ニューラルネットワークモデルに基づく演算処理が実行されるため、更に演算処理を効率化することができる。
なお、０値補正ニューロン間接続重み設定手段は、例えば、ニューロン間接続重み補正設定手段により設定されたニューロン間の接続重みについて当該接続重みの絶対値に基づいて補正を行う。
【００４１】
ここで、絶対値が所定の値以下又は未満であるニューロン間の接続重みを０値に補正する態様としては、例えば、絶対値が所定の値以下であるニューロン間の接続重みを０値に補正する態様が用いられてもよく、或いは、絶対値が所定の値未満であるニューロン間の接続重みを０値に補正する態様が用いられてもよい。
また、所定の値Ａ２としては、種々な値が用いられてもよい。通常は、所定の値Ａ２が大きいほど、演算処理の負担が低減されるが、演算処理の精度は低下する。
【００４２】
また、０値補正ニューロン間接続重み設定手段による設定としては、例えば、初期的な設定を用いることもでき、或いは、更新時の設定を用いることもでき、いわゆる上書きも含む。
また、０値補正ニューロン間接続重み設定手段による設定としては、例えば、情報処理装置により自動的に行われるが、他の構成例として、当該設定の一部又は全部が情報処理装置のユーザの操作により行われるような構成とすることも可能である。
【００４３】
本発明に係る情報処理装置では、好ましい適用例として、相互接続型のニューラルネットワークモデルは、完全相互接続型のニューラルネットワークモデルである。
【００４４】
次に、更に、上記した本発明に係る第１の構成例及び第２の構成例を説明する。
本発明では、以上に示したような種々な処理を行う方法を提供することも可能である。
一例（第１の構成例）として、本発明に係る情報処理方法では、次のようにして、相互接続型のニューラルネットワークモデルに基づく演算処理を実行する。
すなわち、０値を有するニューロン間の接続重みの数が多くなるようにニューロン間の接続重みを設定し、当該設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて相互接続型のニューラルネットワークモデルに基づく演算処理を実行する。
【００４５】
他の一例（第２の構成例）として、本発明に係る情報処理方法では、次のようにして、０値を有するニューロン間の接続重みの数が非最多である相互接続型のニューラルネットワークモデルに基づく演算処理を実行する。
すなわち、０値を有するニューロン間の接続重みの数が多くなるように補正したニューロン間の接続重みを設定し、当該設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて相互接続型のニューラルネットワークモデルに基づく演算処理を実行し、前記したニューロン間の接続重みに関する補正を打ち消すように、当該演算処理結果に関する補正を行う。
【００４６】
本発明では、以上に示したような種々な処理を行うためのプログラムを提供することも可能である。
一例（第１の構成例）として、本発明に係るプログラムは、相互接続型のニューラルネットワークモデルに基づく演算処理を実行するためのプログラムであり、０値を有するニューロン間の接続重みの数が多くなるようにニューロン間の接続重みを設定する機能と、当該設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて相互接続型のニューラルネットワークモデルに基づく演算処理を実行する機能をコンピュータにより実現する。
ここで、プログラムとしては、種々なものが用いられてもよい。
また、コンピュータとしては、種々なものが用いられてもよい。
【００４７】
他の一例（第２の構成例）として、本発明に係るプログラムは、０値を有するニューロン間の接続重みの数が非最多である相互接続型のニューラルネットワークモデルに基づく演算処理を実行するためのプログラムであり、０値を有するニューロン間の接続重みの数が多くなるように補正したニューロン間の接続重みを設定する機能と、当該設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて相互接続型のニューラルネットワークモデルに基づく演算処理を実行する機能と、前記したニューロン間の接続重みに関する補正を打ち消すように、当該演算処理結果に関する補正を行う機能をコンピュータにより実現する。
ここで、プログラムとしては、種々なものが用いられてもよい。
また、コンピュータとしては、種々なものが用いられてもよい。
【００４８】
本発明では、以上に示したような種々な処理を行うためのプログラムを記憶した記憶媒体を提供することも可能である。
一例（第１の構成例）として、本発明に係る記憶媒体では、相互接続型のニューラルネットワークモデルに基づく演算処理をコンピュータに実行させるプログラムを、当該コンピュータの入力手段により読み取り可能に記憶している。
そして、当該プログラムは、０値を有するニューロン間の接続重みの数が多くなるようにニューロン間の接続重みを設定する処理と、当該設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて相互接続型のニューラルネットワークモデルに基づく演算処理を実行する処理を当該コンピュータに実行させる。
【００４９】
ここで、コンピュータとしては、種々なものが用いられてもよい。
また、プログラムとしては、種々なものが用いられてもよい。
また、コンピュータの入力手段としては、種々なものが用いられてもよい。
また、記憶媒体としては、種々なものが用いられてもよく、例えば、フロッピー（登録商標）ディスクや、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）や、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｉｄｅｏ  Ｄｉｓｃ）などを用いることができる。
【００５０】
他の一例（第２の構成例）として、本発明に係る記憶媒体では、０値を有するニューロン間の接続重みの数が非最多である相互接続型のニューラルネットワークモデルに基づく演算処理をコンピュータに実行させるプログラムを、当該コンピュータの入力手段により読み取り可能に記憶している。
そして、当該プログラムは、０値を有するニューロン間の接続重みの数が多くなるように補正したニューロン間の接続重みを設定する処理と、当該設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて相互接続型のニューラルネットワークモデルに基づく演算処理を実行する処理と、前記したニューロン間の接続重みに関する補正を打ち消すように、当該演算処理結果に関する補正を行う処理を当該コンピュータに実行させる。
【００５１】
ここで、コンピュータとしては、種々なものが用いられてもよい。
また、プログラムとしては、種々なものが用いられてもよい。
また、コンピュータの入力手段としては、種々なものが用いられてもよい。
また、記憶媒体としては、種々なものが用いられてもよく、例えば、フロッピー（登録商標）ディスクや、ＣＤ−ＲＯＭや、ＤＶＤなどを用いることができる。
【００５２】
【発明の実施の形態】
本発明に係る一実施例を図面を参照して説明する。
まず、以下に示す実施例（第１実施例〜第３実施例）に係る情報処理装置の概要を説明する。
例えば、人間が扱うデータには偏りがあり、問題空間が広がる度合いと、それに伴って問題空間内で関係のある事象の組み合わせが増える度合いとは線形には比例しないことがほとんどである。
【００５３】
従って、人間が扱うデータを完全相互接続ネットワークに学習させた場合、ニューロン間接続の重み係数（ニューロン間の接続重み）にも偏りが発生する。そして、重み係数が０値である接続はニューロン間の状態を変化させないため、計算を行わなくてもよい接続である。このため、重み係数が０値である接続の計算を省略することによって、計算量を縮小することが可能である。
【００５４】
そこで、本実施例に係る情報処理装置では、完全相互接続ネットワーク中で一番多い重み係数の値を有する接続に注目する。そして、その重み係数が０値になるように、ネットワーク全体の重み係数の値をバイアスすることで、重み係数が０値である接続の数を最大とする。更に、ニューラルネットワークの計算結果が正しい値になるように、ニューラルネットワーク演算後に重み係数をバイアスした分の補正をする。このように、重み係数が０値である接続の演算を省略することによって、完全相互接続ニューラルネットワークの演算量を大幅に削減することが可能になる。
【００５５】
図１には、本実施例に係る情報処理装置のハードウエア構成例を示してある。
本実施例に係る情報処理装置には、計算機１と、入力装置２と、出力装置３と、ニューラルネットワーク演算補助装置４が備えられている。また、計算機１には、記憶装置１１と、演算装置１２が備えられている。
【００５６】
本実施例に係る情報処理装置では、記憶装置１１とその記憶内容を元にプログラムを実行する演算装置１２を備えるとともに入出力装置２、３を有した計算機１を母体として稼働する。また、本実施例に係る情報処理装置では、一構成例として、更に、ニューラルネットワークの計算に適した演算補助装置４が接続されている。
【００５７】
ここで、ニューラルネットワーク演算補助装置４は、例えば、複数のニューロンの機能を組み合わせたような構成を有している。また、各ニューロンは、例えば、１ビットＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて構成されており、複数の入力値に対してバイアスの重み係数の値を用いて演算を行い、当該演算結果を補正して出力する。
なお、ニューラルネットワーク演算補助装置４は、必ずしも備えられなくともよい。
【００５８】
一例として、本例の情報処理装置では、主としてニューラルネットワーク演算補助装置４によりニューラルネットワークに関する演算処理を実行する機能により、ニューロン間接続重み設定手段の機能や、演算処理実行手段の機能や、０値補正ニューロン間接続重み設定手段の機能が実現される。
他の一例として、本例の情報処理装置では、主としてニューラルネットワーク演算補助装置４によりニューラルネットワークに関する演算処理を実行する機能により、ニューロン間接続重み補正設定手段の機能や、演算処理実行手段の機能や、ニューロン間接続重み補正設定手段の機能や、０値補正ニューロン間接続重み設定手段の機能が実現される。
【００５９】
次に、本発明に係る第１実施例を説明する。
図２には、或る文例集を形態素解析して、全データ中５回以上出現した単語を辞書とし、一文あたりに辞書中の単語が平均何単語出てくるかが、問題空間（＝辞書空間）の増加に対してどのように増えていくかをプロットしたものを示してある。なお、グラフの横軸は一文あたりの平均単語数を示しており、縦軸は辞書空間をｌｏｇスケールで示している。
【００６０】
同図に示されるように、一文あたりの平均単語数は、辞書空間のｌｏｇに比例する直線に近い。このように、人間が扱うデータでは、問題空間（本例の場合には、辞書空間）の広がりに対して、一つの事象を表すデータの組み合わせの数が、線形に比例しない特性を有することが多い。
【００６１】
しかしながら、例えば、Ｈｏｐｆｉｅｌｄの原型の完全相互接続ネットワークでは、ニューロン間での重み係数は、同相（同じ値のもの同士）間は＋１値であり、  逆相（異なる値のもの同士）間は−１値であり、いずれかを学習させていく。このため、最終的な学習後のＨｏｐｆｉｅｌｄ型ニューラルネットワークでは、重み係数が０値となる接続はほとんど無く、例えば重み係数が０値である演算を省略してもさほどの計算量低減にはならない。
【００６２】
そこで、Ｈｏｐｆｉｅｌｄ型の完全相互接続ネットワーク学習則を一般化したものがあり、これは式１のように表される。式１は、安定性が証明されている学習条件である。
【００６３】
【数１】
2005011024.tif 000003
【００６４】
ここで、ニューロンは複数であるＮ個あり、ｉやｊはそれぞれのニューロンの番号を表しており、Ｊｉ，ｊはニューロンｉとニューロンｊとの間の重み係数の値を表しており、学習パターンは複数であるμ個あり、ｋはそれぞれの学習パターンの番号を表しており、ξｉｋは学習パターンｋについてのニューロンｉの信号を表しており、ａは学習パターンの信号平均値を表しており、ｂはバイアスを表している。
【００６５】
また、ａは、全てのニューロンｉ及び全てのパターンｋについての正しい信号ξｉｋの平均値であり、平均発火率を示す。
また、信号ξｉｋは、Ｈｏｐｆｉｅｌｄ型では０値又は１値のデジタル値を取り、ニューロンｉが発火しているか否かを示す。
また、ｂは、バイアスを示し、通常は、ニューロン発火の閾値に近い値となる。
【００６６】
一例として、文字のパターン認識を行う場合には、“あ”や“お”などのそれぞれの文字が学習パターンｋに相当し、一文字分を構成するそれぞれの位置の点（ドット）がニューロンｉに相当し、それぞれの学習パターンｋにおいてそれぞれの位置の点（ニューロンｉ）を１値（例えば、黒）とするか或いは０値（例えば、白）とするかを定める信号がξｉｋに相当する。
【００６７】
また、ａやｂは任意に設定されてもよい。
一例として、ａ＝１／２でありｂ＝０である場合には、上記した式１はＨｏｐｆｉｅｌｄの原型モデルとなり、平均の値をａにするとＣｏｖａｒｉａｎｃｅ  ｌｅａｒｎｉｎｇ  ｒｕｌｅとなる。
また、重み係数の値Ｊｉ，ｊは、例えば、一定値とされてもよく、或いは、適時に変更されてもよい。
【００６８】
次いで、上記した式１に関して、上記図２に示したグラフにおいて使用したデータを元に、単語一つにニューロン一つを割り当てて、文中に同時に出現する単語同士の関係についてＣｏｖａｒｉａｎｃｅ  ｌｅａｒｎｉｎｇ  ｒｕｌｅを用いてｂ＝０として重み係数を計算した。
図３には、この計算の結果として得られた重み係数のヒストグラムを示してある。グラフの横軸は正規化した重み係数（Ｗｅｉｇｈｔ）の値を示しており、縦軸は割合（Ｐｅｒｃｅｎｔ）を示している。
【００６９】
同図に示されるように、相関のあるニューロンの間の重み係数だけが、意味のある（つまり、計算する価値のある）値を取り、それ以外の重み係数は０値になる。本例では、約９３％の接続の重み係数がほぼ０値となる。
このため、このような重み係数のデータで完全相互接続ニューラルネットワークを計算してよい場合には、約９３％の接続についての重み係数の計算処理を省略することが可能である。
【００７０】
図４（ａ）、（ｂ）を参照して、接続の重み係数が０値である接続の計算を省略する方法の一例を示す。
同図（ａ）には、メモリの管理の仕方に関して、一般的な従来の方法の一例を示してある。
この方法では、各ニューロンｉ毎にＮ個の要素を持つ配列を用意し、他のニューロンｊとの接続の重み係数の値を各配列に対応させて格納させておく。
【００７１】
具体的には、同図（ａ）には、ニューロンｉが有する重み係数のデータの一例を示してあり、配列番号が０番目〜（Ｎ−１）番目であるＮ個の配列を有しており、０番目のニューロンに対しては“０”、１番目のニューロンに対しては“０”、２番目のニューロンに対しては“ｘｘｘ”といったように、各配列の要素として他の各ニューロンｊとの接続の重み係数の値を格納する。
【００７２】
なお、Ｎ個の配列の中で、ニューロンｉ自体に対応する配列の要素については空白（無データ）とするか或いは所定の値として、演算しないようにする。
そして、ニューロンｉにおいて、他のニューロンｊに対応する全ての配列要素について、各ニューロンｊの状態値と各ニューロンｊの重み係数値とを掛け合わせて合計することにより、当該合計結果がニューロンｉへの入力結果（入力の重み合計結果）として求められる。
【００７３】
一方、同図（ｂ）には、メモリの管理の仕方に関して、０値を有する重み係数に係る接続の計算を省略する方法の一例を示してある。
この方法では、ニューロンｉ毎に、処理に必要なニューロンｊつまり接続の重み係数が０値ではないニューロンｊのみについてのデータを列挙した間接参照配列を用意する。
【００７４】
具体的には、同図（ｂ）には、ニューロンｉが有する重み係数のデータの一例を示してあり、配列番号が０番目〜Ｍ番目であるＭ個の配列を有しており、Ｍはニューロンｉに対して接続の重み係数が０値ではない他のニューロンｊの総数に相当する。また、各配列には、間接参照配列として接続の重み係数が０値ではない他のニューロンｊに対応する番号を格納し、配列要素として当該他のニューロンｊとの接続の重み係数の値を格納する。
【００７５】
本例では、間接参照配列には“２”や“５”や“１１”などの番号が格納されており、配列要素には“ｘｘｘ”や“ｖｖｖ”や“ｚｚｚ”などの重み係数の値が格納されている。
また、本例では、間接参照配列に“−１”の値を格納することにより、間接参照の終了位置を示している。
【００７６】
そして、ニューロンｉにおいて、他のニューロンｊに対応する全ての配列要素について、各ニューロンｊの状態値と各ニューロンｊの重み係数値とを掛け合わせて合計することにより、当該合計結果がニューロンｉへの入力結果（入力の重み合計結果）として求められる。
例えば、このような間接参照配列を予め作成しておくことにより、間接参照配列の要素のみを計算するだけでニューロンｉへの入力結果を求めることができる。
【００７７】
次いで、上記図２に示されるように、問題空間の広がりに対して、一つの事象を表すデータの組み合わせの数が、対数比例が成り立つ関係を有するような場合を想定する。そして、この場合に、事象を表すデータ項目とニューロンとを１対１に対応させて、上記式１でｂ＝０としてＣｏｖａｒｉａｎｃｅ  ｌｅａｒｎｉｎｇ  ｒｕｌｅで学習させたときには、各ニューロンにおいて計算すべき結線数は、およそ、事象を表すデータ項目数となり、（ｃ・ｌｏｇＮ＋ｄ）のように表される。ここで、ｃ及びｄは、上記図２に示されるような対応関係を近似する係数であり、Ｎはニューロン数である。
このとき、重み係数が０値となる結線を省略させてニューラルネットワークの演算を行うと、計算量のオーダーはおよそＯ（Ｎ・ｌｏｇＮ）で済む。
【００７８】
以下で、具体的に、本例の情報処理装置により行われる処理を説明する。
例えば、Ｈｏｐｆｉｅｌｄのネットワークでは、上記した式１においてｂ＝０とした場合には、出力パターンの０値と１値との割合が５０対５０となる。
そこで、出力させたいパターンを構成する０値と１値との比が５０対５０ではない場合には、上記した式１におけるｂを０以外の値にすることや、或いは、別なニューロンモデル若しくは別なニューラルネットワークモデルを導入することが必要となる。
【００７９】
一例として、上記した式１においてｂを０でない値とした場合（つまり、ｂ≠０とした場合）には、上記図３に示した重み係数のヒストグラムは左右にｂだけシフトする。すると、０値を有する重み係数の接続が一番多い接続ではなくなってしまう。
具体的には、上記した式１の右辺からｂに係る項を除いた重み係数Ｊ’ｉ，ｊは、式２のように表される。
【００８０】
【数２】
2005011024.tif 000004
【００８１】
また、入力パターンＳの平均値が学習パターンξｉｋの平均値と近いと想定してよい場合には、各ニューロンｉへの入力結果Ｉｉの計算式は、式３のように近似することができる。なお、Ｓｊは、入力パターンＳの中で、ニューロンｊの状態値を表す。
また、通常は、Ｎは大きい数値となるため、式３中の“−ｂａ（Ｎ−１）”の項は、実用上では“−ｂａＮ”としてもよく、誤差の範囲内である。
【００８２】
【数３】
2005011024.tif 000005
【００８３】
人間が扱うデータでは、カイ２乗分布やポアソン分布のように、入力パターンの平均値が偏ることが確認されている。
図５には、上記図２のグラフに関して用いたデータを元に、文の長さ（一文あたりの単語数）の分布を（ａ）として示してある。グラフの横軸は一文あたりの単語数を示しており、縦軸は全体に占める割合を示している。
【００８４】
また、図５には、（ｂ）として、ポアソン分布を示してある。ポアソン分布は、平均とモードが近い分布であるため、好ましい。
このため、特に、ポアソン分布に近似することができるような場合には、入力パターンＳの平均は、学習パターンξｉｋの平均値に近い値となる確率が高い。
【００８５】
上記した式３中の“Ｊ’ｉ，ｊ”に係る項は上記した式１においてｂ＝０としたものと等価であり、このため、重み係数の分布は上記図３に示されるように０の値が一番多くなる。
【００８６】
また、上記した式３中の“−ｂａ（Ｎ−１）”の項は定数項である。
そこで、一例として、“Ｊ’ｉ，ｊ”に係る項の計算が終了した後に当該計算結果からｂａ（Ｎ−１）を引き算することにより、正しい値を有する各ニューロンｉへの入力結果Ｉｉを得ることができる。
また、他の一例として、上記した式３中の“Ｊ’ｉ，ｊ”に係る項の計算結果のみを各ニューロンｉへの入力結果Ｉｉとして得て、ニューロン発火の閾値にｂａ（Ｎ−１）を足し算することによっても、ニューロン発火の有無の判断結果としては同一の結果を得ることができる。
【００８７】
また、上記した式３中の“−ｂａ（Ｎ−１）”の項は、必ずしも全てのニューロンで計算する必要はなく、一回計算しておけばよいため、計算量を大幅に省略することができる。
また、上記した式３中の“Ｊ’ｉ，ｊ”に係る項の計算処理量は、上記した式１でｂ＝０とした場合に係る計算処理量と同じであるため、計算量のオーダーも同じとなっておよそＯ（Ｎ・ｌｏｇＮ）とすることができる。
【００８８】
次いで、図６には、（ａ）上記した式３のような近似を用いずに上記した式１でｂが０値ではない場合に計算を行った場合と、（ｂ）ランダムに接続を希釈化するｄｉｌｕｔｅｄ  Ｈｏｐｆｉｅｌｄ  ｍｏｄｅｌを用いて計算を行った場合と、（ｃ）上記した式３のような近似を用いた本例の情報処理装置により計算を行った場合（本提案の場合）について、パターン想起のシミュレーションの比較例を示してある。グラフの横軸は学習パターンと想起パターンとの誤差（ハミング距離）を例えば個数（ドット数）を単位として示しており、縦軸は全トライアルに対する比率を示している。
【００８９】
ここで、本シミュレーションでは、ニューロン数Ｎ＝１００、学習パターン数μ＝１５、ａ＝０．２、ｂ＝０．２という条件を用いた。
また、本シミュレーションでは、学習パターンに１０％のノイズを加えたパターンを入力として演算させることを行った。そして、同図に示したヒストグラムは、当該演算の後において学習させたパターンとどれだけ近い演算結果が得られたかを表す分布に相当する。
【００９０】
同図のヒストグラムに示されるように、入力パターンの平均と学習データの平均との差が無い（又は、ほとんど無い）ときには、ｂを付けた全接続の重み係数に係る計算を行う場合（ａ）においても、本提案の場合（ｃ）においても、ほとんど想起性能に差が無いことがわかった。また、本シミュレーションでは、パターンをランダムに生成しているため、０値を有する重み係数の接続は偏りが少なく、３６％前後である。そして、ランダムに接続を希釈化するｄｉｌｕｔｅｄ  Ｈｏｐｆｉｅｌｄ  ｍｏｄｅｌの場合（ｂ）において３６％程度の接続を省くように設定したときの誤差分布と比べても、本提案の場合（ｃ）には、ほとんど想起性能に差が無いことがわかった。
【００９１】
次いで、図７（Ａ）には、（ａ）従来方法の典型であるＨｏｐｆｉｅｌｄ型の完全相互結合により処理を行う場合と、（ｂ）本例の情報処理装置により処理を行う場合（本提案の場合）について、ニューロン数Ｎを増加させていったときにおける計算時間［秒（ｓ）］の増加をプロットしたものを示してある。グラフの横軸はニューロン数Ｎ（＝辞書空間）を示しており、縦軸は計算時間を示している。また、同図（Ｂ）には、同図（Ａ）に示した本提案の場合（ｂ）に着目して拡大したグラフを示してある。
【００９２】
ここで、学習データとしては上記図２のグラフで使用したデータを使用しており、計算機としては８００ＭＨｚのＣＰＵ（ｃｅｌｅｒｏｎ）を用いて計算した。
同図（Ａ）に示されるように、従来方法の場合（ａ）ではニューロン数Ｎの増加に伴って２乗のカーブで計算時間（計算量）が増加しているのに対して、本提案の場合（ｂ）ではニューロン数Ｎの増加があっても計算時間（計算量）がほぼ線形に（図では、右側へ）推移している。この差は、ニューロン数Ｎが増加するほど大きくなる。
【００９３】
このように、本例の情報処理装置による演算処理では、例えば従来と比べて、著しく計算量の削減を図ることができる。
また、本例の情報処理装置による演算処理では、例えば上記図４（ｂ）に示したように０値を有する重み係数に係るニューロン間の接続情報を持たないようにすることにより、計算量の差と比例したメモリ空間を節約することが可能になる。
【００９４】
日常世界では日々データが増え続けており、データの増加に対応するための計算量のオーダーが２乗以上であるようなシステムはすぐに破綻してしまう。このため、実験データでは有効であるが、現実問題に適応しようとした途端に、膨大なニューロン数となってしまって非実用的になってしまうような事例がよくある。
そこで、本例の情報処理装置を用いることにより、ニューロン数の増加に伴って計算時間が非現実的な時間になり非実用的になってしまうような応用例に対しても、有効な処理を実現することができる。
【００９５】
このように、本例の情報処理装置では、例えば人工ニューラルネットワークを使用して情報処理を行うシステムで、問題空間が大きくなるような場合においても、計算量の膨大化（爆発）が起こらないように計算量を押さえることができ、実用的な処理装置を実現することが可能である。
【００９６】
以上のように、本例の情報処理装置では、完全相互接続型のニューラルネットワークモデルをベースとした演算処理を行う構成において、一番接続数が多い重み係数の値が０になるようにバイアス値ｂを保留して学習させる機構と、接続の重み係数として０の値を有する接続の演算を省略する演算機構と、学習時のバイアス変更の補正分だけニューラルネットワーク演算時に演算結果を変更（補正）する機構或いは学習時のバイアス変更の補正分だけニューロン演算時に発火する閾値を変更（補正）する機構を備えている。なお、各接続の重み係数の値を求めることは、例えば、初期設定として行われてもよく、或いは、設定変更として行われてもよい。
【００９７】
具体的には、本例の情報処理装置では、０値を有するニューロン間の接続重み（重み係数）の数が非最多である（つまり、ｂが０ではない）完全相互接続型のニューラルネットワークモデルに基づく演算処理を実行するに際して、０値を有するニューロン間の接続重みの数が最多となるように補正したニューロン間の接続重みＪ’ｉ，ｊを設定し、当該設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて完全相互接続型のニューラルネットワークモデルに基づく演算処理を実行し、前記したニューロン間の接続重みに関する補正（ｂをずらした補正）を打ち消すように、当該演算処理結果に関する補正を行うことにより、演算処理の効率化を図ることができる。
【００９８】
ここで、本例では、一番接続数が多い重み係数の値が０ではない（つまり、ｂが０ではない）モデルに対する処理の一例を示したが、他の構成例として、初めから、一番接続数が多い重み係数の値が０となるようなモデルとなるように学習を行うことも可能である。
【００９９】
一例として、このような情報処理装置では、完全相互接続型のニューラルネットワークモデルをベースとした構成において、一番接続数が多い重み係数の値が０になるように学習させる機構と、接続の重み係数として０の値を有する接続の演算を省略する演算機構を備える。なお、各接続の重み係数の値を求めることは、例えば、初期設定として行われてもよく、或いは、設定変更として行われてもよい。
【０１００】
具体的には、このような情報処理装置では、完全相互接続型のニューラルネットワークモデルに基づく演算処理を実行するに際して、０値を有するニューロン間の接続重み（重み係数）の数が最多となるようにニューロン間の接続重みを設定し、当該設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて完全相互接続型のニューラルネットワークモデルに基づく演算処理を実行することにより、演算処理の効率化を図ることができる。
【０１０１】
次に、本発明に係る第２実施例を説明する。
なお、本例の情報処理装置の構成や動作の概要は、上記第１実施例に示した情報処理装置の構成や動作の概要と同様であり、本例では、異なる部分について詳しく説明する。
【０１０２】
上記第１実施例では、学習パターンの平均値のばらつきがほとんど無いことを想定して、上記した式３において、バイアス項ｂから計算される値の近似を行った。このため、学習パターンの平均値の分布に幅がある場合には、収束しにくくなる。
そこで、本例では、上記した式３において、近似前におけるバイアス項ｂに係る項に注目する。この項は、式４のように表される。
【０１０３】
【数４】
2005011024.tif 000006
【０１０４】
例えば、従来方法では、上記した式４に示した値をニューロン１個毎に計算していたため、各ニューロン毎に（Ｎ−１）回のループを回す必要があるので、計算量のオーダーがＯ（（Ｎ−１）２）になっていた。
そこで、本例では、例えば、入力パターンの平均値が想起すべき学習パターンの平均値と近いと想定してよいような場合には、上記した式４に示した値を各ニューロン毎に計算するのではなく、まとめて計算することにより、大幅な計算量の削減を図る。
【０１０５】
一例として、本例では、上記した式４に示した値を一回だけ計算しておいて、以降においては、当該計算結果を近似値として使用する。
他の一例として、本例では、Ｎ個のニューロンについて全部計算を行う毎に上記した式４に示した値を計算しておいて、以降においては、当該計算結果を使用する。つまり、入力から出力を特定するまでの計算をＮ個のニューロンで１回したら、上記した式４に示した値の厳密解を計算し、これを繰り返して行う。
【０１０６】
また、他の一例として、本例では、各ニューロンの計算毎に状態の変化分ΔＳｉを用いて上記した式４に示した値を補正する。つまり、いずれかのニューロンの値が変化したときだけ、差分だけを計算して補正する。この場合、例えば正しい初期値を設定すると、上記した式４に示した値は正確となり、これに基づいて行われるバイアス項ｂに関する補正も正確となる。
なお、上記した式４に示した値を求めるための上記した種々な仕方は、それぞれ、単独で用いられてもよく、或いは、２以上が組み合わされて用いられてもよい。
【０１０７】
以上のように、本例の情報処理装置では、学習時のバイアス変更の補正分として、必ずしも厳密な値を用いるばかりでなく、近似的な値を用いることもできる。また、当該補正分の値を、必ずしも変更がある度に計算するのではなく、或る程度の長さの期間を有した所定のタイミングで計算することもできる。また、必ずしも当該補正分の値自体を計算するのではなく、今回の変化量を計算して前回の補正分の値に加算していくこともできる。
【０１０８】
次に、本発明に係る第３実施例を説明する。
なお、本例の情報処理装置の構成や動作の概要は、上記第１実施例や上記第２実施例に示した情報処理装置の構成や動作の概要と同様であり、本例では、異なる部分について詳しく説明する。
【０１０９】
例えば、Ｈｏｐｆｉｅｌｄの元のモデルでは、接続の重み係数を整数で持っていたため、丸めによって重み係数が０値になる接続が多かった。しかしながら、接続の重み係数を実数で計算する場合には、ぴったり０値になることはまれである。そこで、少ない重み係数のシナプス接続を削除するＳｙｎａｐｔｉｃ  Ｐｒｕｎｉｎｇという考えがある（例えば、非特許文献４参照。）。これは、接続の重み係数の絶対値が指定値ｔ以下であれば０値にしてしまうものであり、記憶容量を保ったままシナプス数を削減することができる。
【０１１０】
ここで、上記した式１の学習則においてｂが０ではない場合には、分布の中心が０ではないため、Ｓｙｎａｐｔｉｃ  Ｐｒｕｎｉｎｇそのままでは、削減することができる接続の本数は最大ではない。
そこで、上記第１実施例や上記第２実施例と同様に、接続の重み係数の分布の中心が０値になるように接続の重み係数をｂだけシフトして設定した後に、ニューラルネットワーク計算時などに補正する方法を適用することにより、誤差を少なくしたまま、接続の本数の削減数を最大化することができる。
【０１１１】
以上のように、本例の情報処理装置では、接続の重み係数の絶対値が設定された閾値と比べて小さい場合にはその接続の重み係数を０値とする機構を備えており、０値に近い小さい絶対値を有する重み係数については計算上で省略することにより、演算処理の効率化を図ることができる。具体的には、例えば、上記第１実施例や上記第２実施例と同様にｂだけずらした接続の重み係数Ｊ’ｉ，ｊを生成し、その後、本例のように小さい絶対値の重み係数を０値とすることにより、０値を有する重み係数の数を更に増加させて、演算処理の効率化を更に図ることができる。
【０１１２】
ここで、本発明に係る情報処理装置などの構成としては、必ずしも以上に示したものに限られず、種々な構成が用いられてもよい。また、本発明は、例えば、本発明に係る処理を実行する方法或いは方式や、このような方法や方式を実現するためのプログラムや当該プログラムを記憶する記憶媒体などとして提供することも可能である。
また、本発明の適用分野としては、必ずしも以上に示したものに限られず、本発明は、種々な分野に適用することが可能なものである。
【０１１３】
一例として、本発明は、様々な任意のニューラルネットワークに適用することが可能である。例えば、Ｈｏｐｆｉｅｌｄ型のニューラルネットワークでは学習パターンの平均値ａや接続の重み係数Ｊｉ，ｊの値が発火パターンや想起パターンの安定性と関係するが、他の例として、学習パターンの平均値や接続の重み係数の値とは無関係に発火パターンや想起パターンが安定する特性を有する完全相互接続ニューラルネットワーク演算機構などに本発明を適用することも可能である。なお、学習パターンの平均値や接続の重み係数の値とは無関係に発火パターンや想起パターンが安定する特性を有する完全相互接続ニューラルネットワーク演算機構としては、例えば、パターン１とパターン２の中間といった解を出すものがある。
【０１１４】
また、本発明に係る情報処理装置などにおいて行われる各種の処理としては、例えばプロセッサやメモリ等を備えたハードウエア資源においてプロセッサがＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）に格納された制御プログラムを実行することにより制御される構成が用いられてもよく、また、例えば当該処理を実行するための各機能手段が独立したハードウエア回路として構成されてもよい。
また、本発明は上記の制御プログラムを格納したフロッピー（登録商標）ディスクやＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）−ＲＯＭ等のコンピュータにより読み取り可能な記憶媒体や当該プログラム（自体）として把握することもでき、当該制御プログラムを記憶媒体からコンピュータに入力してプロセッサに実行させることにより、本発明に係る処理を遂行させることができる。
【００１１５】
【発明の効果】
以上説明したように、本発明に係る情報処理装置などによると、相互接続型のニューラルネットワークモデルに基づく演算処理を実行する構成において、０値を有するニューロン間の接続重みの数が多くなるようにニューロン間の接続重みを設定し、そして、当該設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて相互接続型のニューラルネットワークモデルに基づく演算処理を実行するようにしたため、演算処理を効率化することができる。
【０１１６】
また、本発明に係る情報処理装置などによると、０値を有するニューロン間の接続重みの数が非最多である相互接続型のニューラルネットワークモデルに基づく演算処理を実行する構成において、０値を有するニューロン間の接続重みの数が多くなるように補正したニューロン間の接続重みを設定し、そして、当該設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて相互接続型のニューラルネットワークモデルに基づく演算処理を実行し、更に、前記したニューロン間の接続重みに関する補正を打ち消すように当該演算処理結果に関する補正を行うようにしたため、演算処理を効率化することができるとともに、演算処理結果に関して正しい判定などが為されることを保証することができる。
【図面の簡単な説明】
【図１】本発明の実施例に係る情報処理装置の構成例を示す図である。
【図２】一文あたりの平均単語数の一例を示す図である。
【図３】接続の重み係数に関するヒストグラムの一例を示す図である。
【図４】接続の重み係数が０値である接続の計算を省略するための方法の一例を示す図である。
【図５】一文の長さ（一文あたりの単語数）の分布の一例を示す図である。
【図６】パターン想起に関するシミュレーションの比較の一例を示す図である。
【図７】計算時間（計算量）の比較の一例を示す図である。
【符号の説明】
１・・計算機、  ２・・入力装置、  ３・・出力装置、
４・・ニューラルネットワーク演算補助装置、  １１・・記憶装置、
１２・・演算装置、
【図１】
2005011024.tif 000007
【図２】
2005011024.tif 000008
【図３】
2005011024.tif 000009
【図４】
2005011024.tif 000010
【図５】
2005011024.tif 000011
【図６】
2005011024.tif 000012
【図７】
2005011024.tif 000013
【手続補正書】
【提出日】平成15年6月19日(2003.6.19)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】発明の詳細な説明
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、相互接続型のニューラルネットワークモデルに基づく演算処理を実行する情報処理装置などに関し、特に、演算処理を効率化する情報処理装置などに関する。
【０００２】
【従来の技術】
例えば、Ｈｏｐｆｉｅｌｄネットワーク（例えば、非特許文献１、２参照。）に代表される相互接続ニューラルネットワークでは、安定性実現のため、完全相互接続が基本である。しかしながら、完全相互接続においては、ニューロン数がＮ個であるネットワークでは計算量のオーダーがＯ（Ｎ２）必要になってしまい、現実問題に対応できるくらいに問題空間を大きくするに従って、処理時間が非実用的になっていってしまうという問題点があった。
【０００３】
また、例えば、接続密度を希釈化することによって、安定性を確保しつつ記憶容量を上げるｄｉｌｕｔｅｄ  Ｈｏｐｆｉｅｌｄ  ｍｏｄｅｌがある（例えば、非特許文献３参照。）。これは、１個のニューロンにつきＫ本のシナプスをランダム（＝Ｋ／Ｎの確率）に接続することにより、安定性確保と計算量爆発を防ぐことができるモデルである。しかしながら、上記したＨｏｐｆｉｅｌｄモデルと同等の安定性・記憶容量を求めるためには、“ｌｏｇ  Ｋ＜＜ｌｏｇ  Ｎ”という非現実的な条件が必要であった。
【０００４】
【非特許文献１】
Ｊ．  Ｊ．  Ｈｏｐｆｉｅｌｄ，  ”Ｎｅｕｒａｌ  ｎｅｔｗｏｒｋｓ  ａｎｄ  ｐｈｙｓｉｃａｌ  ｓｙｓｔｅｍｓ  ｗｉｔｈ  ｅｍｅｒｇｅｎｔ  ｃｏｌｌｅｃｔｉｖｅ  ｃｏｍｐｕｔａｔｉｏｎａｌ  ａｂｉｌｉｔｉｅｓ”，  Ｐｒｏｃ．  Ｎａｔｌ．  Ａｃａｄ．  Ｓｃｉ．  ＵＳＡ，  １９８２，  Ｖｏｌ．７９，  ｐｐ．２５５４−２５５８，  Ａｐｒ．，  Ｂｉｏｐｈｙｓｉｃｓ
【０００５】
【非特許文献２】
Ｃ．  Ｍｅｕｎｉｅｒ  ａｎｄ    Ｊ．−Ｐ．  Ｎａｄａｌ，  ”Ｓｐａｒｓｅｌｙ  Ｃｏｄｅｄ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ”，  ｐｐ．８９９−９０１，  ｉｎ  ｂｏｏｋ  Ｍ．  Ａ．  Ａｒｂｉｂ  ｅｄｓ．，  ”Ｔｈｅ  Ｈａｎｄｂｏｏｋ  ｏｆ  Ｂｒａｉｎ  Ｔｈｅｏｒｙ  ａｎｄ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ”，  Ｔｈｅ  ＭＩＴ  Ｐｒｅｓｓ，  １９９５
【０００６】
【非特許文献３】
Ａ．  Ｚｉｐｐｅｌｉｕｓ  ａｎｄ  Ａ．  Ｅｎｇｅｌ，  ”Ｓｔａｔｉｓｔｉｃａｌ  Ｍｅｃｈａｎｉｃｓ  ｏｆ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ”，  ｐｐ．９３０−９３４，  ｉｎ  ｂｏｏｋ  Ｍ．  Ａ．  Ａｒｂｉｂ  ｅｄｓ．，  ”Ｔｈｅ  Ｈａｎｄｂｏｏｋ  ｏｆ  Ｂｒａｉｎ  Ｔｈｅｏｒｙ  ａｎｄ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ”，  Ｔｈｅ  ＭＩＴ  Ｐｒｅｓｓ，  １９９５
【０００７】
【非特許文献４】
Ｇ．  Ｃｈｅｃｈｉｋ，  Ｉ．  Ｍｅｉｌｉｊｓｏｎ  ａｎｄ  Ｅ．  Ｒｕｐｐｉｎ，  “Ｓｙｎａｐｔｉｃ  Ｐｒｕｎｉｎｇ  ｉｎ  Ｄｅｖｅｌｏｐｍｅｎｔ：  Ａ  Ｃｏｍｐｕｔａｔｉｏｎａｌ  Ａｃｃｏｕｎｔ・  Ｎｅｕｒａｌ  Ｃｏｍｐｕｔａｔｉｏｎ，  Ｖｏｌ．１０，ｐｐ．１７５９−１７７７（１９９８）
【０００８】
【発明が解決しようとする課題】
上述のように、従来においては、完全相互接続型のニューラルネットワークモデルに基づく演算処理を実行するに際して、当該演算処理が膨大となってしまい、現実的に実施することが困難であるといった不具合があった。
本発明は、このような従来の課題を解決するために為されたもので、相互接続型のニューラルネットワークモデルに基づく演算処理を実行するに際して、演算処理を効率化することができる情報処理装置などを提供することを目的とする。
【０００９】
【課題を解決するための手段】
まず、ニューラルネットワークモデルなどについて説明する。
ニューラルネットワークモデルでは、例えば、複数のニューロンが設けられ、これら複数のニューロンが所定の配置で接続され、或るニューロンと他のニューロンとの間に接続重みの値が設けられ、それぞれのニューロンでは複数の入力値に対して１個の出力値を生成する。なお、ニューロン間の接続重みの値としては、例えば、正の値や、ゼロ（０）値や、負の値が用いられる。
【００１０】
一例として、それぞれのニューロンでは、複数の入力値のそれぞれに対して接続重みの値が設けられており、それぞれの入力値とそれぞれの接続重み値とを乗算した結果の総和値を出力値とする。また、一例として、それぞれのニューロンでは、発火のための閾値が設けられており、当該総和値が当該閾値を超えた場合に発火状態として出力値を１値とし、当該総和値が当該閾値未満である場合に非発火状態（発火していない状態）として出力値を０値とする。なお、当該総和値と当該閾値とが同一の値である場合には、発火状態とされてもよく、或いは、非発火状態とされてもよい。
【００１１】
また、相互接続型では、或るニューロン（ここで、ニューロンＡと言う）と他のニューロン（ここで、ニューロンＢと言う）とが互いに接続されており、つまり、ニューロンＡの出力値がニューロンＢに入力され、ニューロンＢの出力値がニューロンＡに入力される。
また、完全相互接続型では、全てのニューロンについて相互接続型の関係が成立し、つまり、複数のニューロンがある場合に、一のニューロンからの出力値が他の全てのニューロンに入力され、当該一のニューロンには当該他の全てのニューロンのそれぞれからの出力値が入力される。
【００１２】
本発明は、完全相互接続型のニューラルネットワークモデルに適用されるのが好ましいが、完全ではない相互接続型のニューラルネットワークについても適用されることが可能であり、例えば、相互接続型のニューロンの組が複数あるような場合に有効である。
【００１３】
また、ニューラルネットワークに基づく演算処理としては、種々な処理が用いられてもよく、例えば、複数のニューロンについてそれぞれのニューロンへの入力値から当該それぞれのニューロンからの出力値を演算する処理や、このようなそれぞれのニューロンに関する演算処理を組み合わせて複数のニューロン全体での出力値を演算する処理などを用いることができる。ニューラルネットワークに基づく演算処理では、一例として、このような演算処理の結果に基づいて、文字のパターン認識などの種々な判定を行うことが可能である。
【００１４】
次に、本発明に係る第１の構成例について説明する。
上記目的を達成するため、本発明に係る情報処理装置では、次のようにして、相互接続型のニューラルネットワークモデルに基づく演算処理を実行する。
すなわち、ニューロン間接続重み設定手段が、０値を有するニューロン間の接続重みの数が多くなるように、ニューロン間の接続重みを設定する。そして、演算処理実行手段が、ニューロン間接続重み設定手段による設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて、相互接続型のニューラルネットワークモデルに基づく演算処理を実行する。
【００１５】
従って、０値を有するニューロン間の接続重みの数が多くされて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて、ニューラルネットワークモデルに基づく演算処理が実行されるため、演算処理を効率化することができる。
【００１６】
ここで、０値を有するニューロン間の接続重みの数が多くなるようにする態様としては、種々な態様が用いられてもよく、例えば、０値を有するニューロン間の接続重みの数が最多となる（つまり、最も多くなる）ようにする態様を用いるのが好ましい。通常は、０値を有するニューロン間の接続重みの数が多いほど、演算処理が効率化される。
【００１７】
また、ニューロン間接続重み設定手段による設定としては、例えば、初期的な設定を用いることもでき、或いは、更新時の設定を用いることもでき、いわゆる上書きも含む。
また、ニューロン間接続重み設定手段による設定としては、例えば、情報処理装置により自動的に行われるが、他の構成例として、当該設定の一部又は全部が情報処理装置のユーザの操作により行われるような構成とすることも可能である。
【００１８】
また、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて、相互接続型のニューラルネットワークモデルに基づく演算処理を実行する態様としては、例えば、ニューロン間の接続重みが０値であるニューロン間接続の演算処理をもともと省略して行わずに、相互接続型のニューラルネットワークモデルに基づく演算処理を実行するような態様を用いることができる。
【００１９】
一般に、ニューロン間の接続重みが０値であるニューロン間接続の演算処理では演算結果として０値が得られるため、このように最終的な演算結果に影響を与えない演算処理を多くしてもともと行わないことにより、演算処理の負担を低減することができる。
【００２０】
本発明に係る情報処理装置では、一構成例として、次のような構成とした。
すなわち、０値補正ニューロン間接続重み設定手段が、絶対値が所定の値（以下で、所定の値Ａ１と言う）以下又は未満であるニューロン間の接続重みを０値に補正したニューロン間の接続重みを設定する。そして、演算処理実行手段は、ニューロン間接続重み設定手段による設定及び０値補正ニューロン間接続重み設定手段による設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて、相互接続型のニューラルネットワークモデルに基づく演算処理を実行する。
【００２１】
従って、所定の値以下又は未満である絶対値を有するニューロン間の接続重みを０値に補正して、ニューラルネットワークモデルに基づく演算処理が実行されるため、更に演算処理を効率化することができる。
なお、０値補正ニューロン間接続重み設定手段は、例えば、ニューロン間接続重み設定手段により設定されたニューロン間の接続重みについて当該接続重みの絶対値に基づいて補正を行う。
【００２２】
ここで、絶対値が所定の値以下又は未満であるニューロン間の接続重みを０値に補正する態様としては、例えば、絶対値が所定の値以下であるニューロン間の接続重みを０値に補正する態様が用いられてもよく、或いは、絶対値が所定の値未満であるニューロン間の接続重みを０値に補正する態様が用いられてもよい。
また、所定の値Ａ１としては、種々な値が用いられてもよい。通常は、所定の値Ａ１が大きいほど、演算処理の負担が低減されるが、演算処理の精度は低下する。
【００２３】
また、０値補正ニューロン間接続重み設定手段による設定としては、例えば、初期的な設定を用いることもでき、或いは、更新時の設定を用いることもでき、いわゆる上書きも含む。
また、０値補正ニューロン間接続重み設定手段による設定としては、例えば、情報処理装置により自動的に行われるが、他の構成例として、当該設定の一部又は全部が情報処理装置のユーザの操作により行われるような構成とすることも可能である。
【００２４】
本発明に係る情報処理装置では、好ましい適用例として、相互接続型のニューラルネットワークモデルは、完全相互接続型のニューラルネットワークモデルである。
【００２５】
次に、本発明に係る第２の構成例について説明する。
上記目的を達成するため、本発明に係る情報処理装置では、次のようにして、０値を有するニューロン間の接続重みの数が非最多である（つまり、最多ではない）相互接続型のニューラルネットワークモデルに基づく演算処理を実行する。
すなわち、ニューロン間接続重み補正設定手段が、０値を有するニューロン間の接続重みの数が多くなるように補正したニューロン間の接続重みを設定する。また、演算処理実行手段が、ニューロン間接続重み補正設定手段による設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて、相互接続型のニューラルネットワークモデルに基づく演算処理を実行する。そして、ニューロン間接続重み補正打ち消し補正手段が、前記したニューロン間の接続重みに関する補正を打ち消すように、演算処理実行手段による演算処理結果に関する補正を行う。
【００２６】
従って、０値を有するニューロン間の接続重みの数が多くされて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて、ニューラルネットワークモデルに基づく演算処理が実行されるため、演算処理を効率化することができる。また、０値を有するニューロン間の接続重みの数が多くなるようにした補正を打ち消すように演算処理結果に関する補正が行われるため、演算処理結果に関して正しい判定などが為されることを保証することができる。
【００２７】
ここで、０値を有するニューロン間の接続重みの数が多くなるように補正したニューロン間の接続重みを設定する態様としては、種々な態様が用いられてもよく、例えば、０値を有するニューロン間の接続重みの数が多くなるようにニューロン間の接続重みの値をずらして設定するような態様（以下で、態様Ａと言う）を用いることができる。
また、このような態様Ａでは、ニューロン間の接続重みに関する補正を打ち消すように演算処理結果に関する補正を行う態様としては、例えば、前記したニューロン間の接続重み値に与えたずれを補償するように補正を行う態様を用いることができる。
【００２８】
また、０値を有するニューロン間の接続重みの数が多くなるようにする態様としては、種々な態様が用いられてもよく、例えば、０値を有するニューロン間の接続重みの数が最多となる（つまり、最も多くなる）ようにする態様を用いるのが好ましい。通常は、０値を有するニューロン間の接続重みの数が多いほど、演算処理が効率化される。
【００２９】
また、ニューロン間接続重み補正設定手段による設定としては、例えば、初期的な設定を用いることもでき、或いは、更新時の設定を用いることもでき、いわゆる上書きも含む。
また、ニューロン間接続重み補正設定手段による設定としては、例えば、情報処理装置により自動的に行われるが、他の構成例として、当該設定の一部又は全部が情報処理装置のユーザの操作により行われるような構成とすることも可能である。
【００３０】
また、ニューロン間接続重み補正設定手段は、一例として、０値を有するニューロン間の接続重みの数が多くなるようにニューロン間の接続重みを補正して設定する手段から構成され、或いは、他の一例として、０値を有するニューロン間の接続重みの数が多くなるようにニューロン間の接続重みを補正する手段と、当該補正されたニューロン間の接続重みを設定する手段から構成される。
【００３１】
また、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて、相互接続型のニューラルネットワークモデルに基づく演算処理を実行する態様としては、例えば、ニューロン間の接続重みが０値であるニューロン間接続の演算処理をもともと省略して行わずに、相互接続型のニューラルネットワークモデルに基づく演算処理を実行するような態様を用いることができる。
【００３２】
一般に、ニューロン間の接続重みが０値であるニューロン間接続の演算処理では演算結果として０値が得られるため、このように最終的な演算結果に影響を与えない演算処理を多くしてもともと行わないことにより、演算処理の負担を低減することができる。
【００３３】
また、演算処理結果に関する補正としては、種々な補正が用いられてもよい。
一構成例として、本発明に係る情報処理装置では、ニューロン間接続重み補正打ち消し補正手段は、ニューロン間の接続重みに関する補正を打ち消すように、演算処理実行手段による演算処理結果を補正する。
従って、演算処理結果自体を補正することにより、正しい演算処理結果を得ることができる。
【００３４】
他の一構成例として、本発明に係る情報処理装置では、次のような構成とした。
すなわち、演算処理実行手段による相互接続型のニューラルネットワークモデルに基づく演算処理の演算処理結果は、ニューロンにおいて他のニューロンからの入力値と当該他のニューロンとの接続重み値とを乗算した結果を複数の他のニューロンについて総和した値を含む。そして、ニューロン間接続重み補正打ち消し補正手段は、ニューロン間の接続重みに関する補正を打ち消すように、ニューロンの発火のための閾値を補正する。
【００３５】
従って、演算処理結果に含まれる当該総和値自体は本来の正解からずれるが、当該総和値と大小関係が比較されるニューロン発火のための閾値を補正することにより、当該比較結果として本来の正解を得ることができる。
【００３６】
ここで、ニューロン発火のための閾値としては、種々な値が用いられてもよい。
また、ニューロン発火のための閾値を補正する仕方としては、種々な仕方が用いられてもよく、例えば、総和値と閾値との大小を比較する場合に、総和値が＋ｂだけずれるときには閾値を＋ｂだけずらすような補正の仕方を用いることができる。
【００３７】
本発明に係る情報処理装置では、一構成例として、ニューロン間接続重み補正打ち消し補正手段は、近似値を用いて補正を行う。
従って、近似値を用いて補正を行うことにより、演算処理の負担を低減することができる。
【００３８】
ここで、近似の程度としては、種々な程度が用いられてもよく、例えば、要求される演算処理結果の精度などに応じて、種々な程度の近似が設定されてもよい。
なお、ニューロン間接続重み補正打ち消し補正手段としては、例えば、厳密な値を用いて補正を行う構成が用いられてもよい。
【００３９】
本発明に係る情報処理装置では、一構成例として、次のような構成とした。
すなわち、０値補正ニューロン間接続重み設定手段が、絶対値が所定の値（以下で、所定の値Ａ２と言う）以下又は未満であるニューロン間の接続重みを０値に補正したニューロン間の接続重みを設定する。そして、演算処理実行手段は、ニューロン間接続重み補正設定手段による設定及び０値補正ニューロン間接続重み設定手段による設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて、相互接続型のニューラルネットワークモデルに基づく演算処理を実行する。
【００４０】
従って、所定の値以下又は未満である絶対値を有するニューロン間の接続重みを０値に補正して、ニューラルネットワークモデルに基づく演算処理が実行されるため、更に演算処理を効率化することができる。
なお、０値補正ニューロン間接続重み設定手段は、例えば、ニューロン間接続重み補正設定手段により設定されたニューロン間の接続重みについて当該接続重みの絶対値に基づいて補正を行う。
【００４１】
ここで、絶対値が所定の値以下又は未満であるニューロン間の接続重みを０値に補正する態様としては、例えば、絶対値が所定の値以下であるニューロン間の接続重みを０値に補正する態様が用いられてもよく、或いは、絶対値が所定の値未満であるニューロン間の接続重みを０値に補正する態様が用いられてもよい。
また、所定の値Ａ２としては、種々な値が用いられてもよい。通常は、所定の値Ａ２が大きいほど、演算処理の負担が低減されるが、演算処理の精度は低下する。
【００４２】
また、０値補正ニューロン間接続重み設定手段による設定としては、例えば、初期的な設定を用いることもでき、或いは、更新時の設定を用いることもでき、いわゆる上書きも含む。
また、０値補正ニューロン間接続重み設定手段による設定としては、例えば、情報処理装置により自動的に行われるが、他の構成例として、当該設定の一部又は全部が情報処理装置のユーザの操作により行われるような構成とすることも可能である。
【００４３】
本発明に係る情報処理装置では、好ましい適用例として、相互接続型のニューラルネットワークモデルは、完全相互接続型のニューラルネットワークモデルである。
【００４４】
次に、更に、上記した本発明に係る第１の構成例及び第２の構成例を説明する。
本発明では、以上に示したような種々な処理を行う方法を提供することも可能である。
一例（第１の構成例）として、本発明に係る情報処理方法では、次のようにして、相互接続型のニューラルネットワークモデルに基づく演算処理を実行する。
すなわち、０値を有するニューロン間の接続重みの数が多くなるようにニューロン間の接続重みを設定し、当該設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて相互接続型のニューラルネットワークモデルに基づく演算処理を実行する。
【００４５】
他の一例（第２の構成例）として、本発明に係る情報処理方法では、次のようにして、０値を有するニューロン間の接続重みの数が非最多である相互接続型のニューラルネットワークモデルに基づく演算処理を実行する。
すなわち、０値を有するニューロン間の接続重みの数が多くなるように補正したニューロン間の接続重みを設定し、当該設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて相互接続型のニューラルネットワークモデルに基づく演算処理を実行し、前記したニューロン間の接続重みに関する補正を打ち消すように、当該演算処理結果に関する補正を行う。
【００４６】
本発明では、以上に示したような種々な処理を行うためのプログラムを提供することも可能である。
一例（第１の構成例）として、本発明に係るプログラムは、相互接続型のニューラルネットワークモデルに基づく演算処理を実行するためのプログラムであり、０値を有するニューロン間の接続重みの数が多くなるようにニューロン間の接続重みを設定する機能と、当該設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて相互接続型のニューラルネットワークモデルに基づく演算処理を実行する機能をコンピュータにより実現する。
ここで、プログラムとしては、種々なものが用いられてもよい。
また、コンピュータとしては、種々なものが用いられてもよい。
【００４７】
他の一例（第２の構成例）として、本発明に係るプログラムは、０値を有するニューロン間の接続重みの数が非最多である相互接続型のニューラルネットワークモデルに基づく演算処理を実行するためのプログラムであり、０値を有するニューロン間の接続重みの数が多くなるように補正したニューロン間の接続重みを設定する機能と、当該設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて相互接続型のニューラルネットワークモデルに基づく演算処理を実行する機能と、前記したニューロン間の接続重みに関する補正を打ち消すように、当該演算処理結果に関する補正を行う機能をコンピュータにより実現する。
ここで、プログラムとしては、種々なものが用いられてもよい。
また、コンピュータとしては、種々なものが用いられてもよい。
【００４８】
本発明では、以上に示したような種々な処理を行うためのプログラムを記憶した記憶媒体を提供することも可能である。
一例（第１の構成例）として、本発明に係る記憶媒体では、相互接続型のニューラルネットワークモデルに基づく演算処理をコンピュータに実行させるプログラムを、当該コンピュータの入力手段により読み取り可能に記憶している。
そして、当該プログラムは、０値を有するニューロン間の接続重みの数が多くなるようにニューロン間の接続重みを設定する処理と、当該設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて相互接続型のニューラルネットワークモデルに基づく演算処理を実行する処理を当該コンピュータに実行させる。
【００４９】
ここで、コンピュータとしては、種々なものが用いられてもよい。
また、プログラムとしては、種々なものが用いられてもよい。
また、コンピュータの入力手段としては、種々なものが用いられてもよい。
また、記憶媒体としては、種々なものが用いられてもよく、例えば、フロッピー（登録商標）ディスクや、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）や、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｉｄｅｏ  Ｄｉｓｃ）などを用いることができる。
【００５０】
他の一例（第２の構成例）として、本発明に係る記憶媒体では、０値を有するニューロン間の接続重みの数が非最多である相互接続型のニューラルネットワークモデルに基づく演算処理をコンピュータに実行させるプログラムを、当該コンピュータの入力手段により読み取り可能に記憶している。
そして、当該プログラムは、０値を有するニューロン間の接続重みの数が多くなるように補正したニューロン間の接続重みを設定する処理と、当該設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて相互接続型のニューラルネットワークモデルに基づく演算処理を実行する処理と、前記したニューロン間の接続重みに関する補正を打ち消すように、当該演算処理結果に関する補正を行う処理を当該コンピュータに実行させる。
【００５１】
ここで、コンピュータとしては、種々なものが用いられてもよい。
また、プログラムとしては、種々なものが用いられてもよい。
また、コンピュータの入力手段としては、種々なものが用いられてもよい。
また、記憶媒体としては、種々なものが用いられてもよく、例えば、フロッピー（登録商標）ディスクや、ＣＤ−ＲＯＭや、ＤＶＤなどを用いることができる。
【００５２】
【発明の実施の形態】
本発明に係る一実施例を図面を参照して説明する。
まず、以下に示す実施例（第１実施例〜第３実施例）に係る情報処理装置の概要を説明する。
例えば、人間が扱うデータには偏りがあり、問題空間が広がる度合いと、それに伴って問題空間内で関係のある事象の組み合わせが増える度合いとは線形には比例しないことがほとんどである。
【００５３】
従って、人間が扱うデータを完全相互接続ネットワークに学習させた場合、ニューロン間接続の重み係数（ニューロン間の接続重み）にも偏りが発生する。そして、重み係数が０値である接続はニューロン間の状態を変化させないため、計算を行わなくてもよい接続である。このため、重み係数が０値である接続の計算を省略することによって、計算量を縮小することが可能である。
【００５４】
そこで、本実施例に係る情報処理装置では、完全相互接続ネットワーク中で一番多い重み係数の値を有する接続に注目する。そして、その重み係数が０値になるように、ネットワーク全体の重み係数の値をバイアスすることで、重み係数が０値である接続の数を最大とする。更に、ニューラルネットワークの計算結果が正しい値になるように、ニューラルネットワーク演算後に重み係数をバイアスした分の補正をする。このように、重み係数が０値である接続の演算を省略することによって、完全相互接続ニューラルネットワークの演算量を大幅に削減することが可能になる。
【００５５】
図１には、本実施例に係る情報処理装置のハードウエア構成例を示してある。
本実施例に係る情報処理装置には、計算機１と、入力装置２と、出力装置３と、ニューラルネットワーク演算補助装置４が備えられている。また、計算機１には、記憶装置１１と、演算装置１２が備えられている。
【００５６】
本実施例に係る情報処理装置では、記憶装置１１とその記憶内容を元にプログラムを実行する演算装置１２を備えるとともに入出力装置２、３を有した計算機１を母体として稼働する。また、本実施例に係る情報処理装置では、一構成例として、更に、ニューラルネットワークの計算に適した演算補助装置４が接続されている。
【００５７】
ここで、ニューラルネットワーク演算補助装置４は、例えば、複数のニューロンの機能を組み合わせたような構成を有している。また、各ニューロンは、例えば、１ビットＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて構成されており、複数の入力値に対してバイアスの重み係数の値を用いて演算を行い、当該演算結果を補正して出力する。
なお、ニューラルネットワーク演算補助装置４は、必ずしも備えられなくともよい。
【００５８】
一例として、本例の情報処理装置では、主としてニューラルネットワーク演算補助装置４によりニューラルネットワークに関する演算処理を実行する機能により、ニューロン間接続重み設定手段の機能や、演算処理実行手段の機能や、０値補正ニューロン間接続重み設定手段の機能が実現される。
他の一例として、本例の情報処理装置では、主としてニューラルネットワーク演算補助装置４によりニューラルネットワークに関する演算処理を実行する機能により、ニューロン間接続重み補正設定手段の機能や、演算処理実行手段の機能や、ニューロン間接続重み補正設定手段の機能や、０値補正ニューロン間接続重み設定手段の機能が実現される。
【００５９】
次に、本発明に係る第１実施例を説明する。
図２には、或る文例集を形態素解析して、全データ中５回以上出現した単語を辞書とし、一文あたりに辞書中の単語が平均何単語出てくるかが、問題空間（＝辞書空間）の増加に対してどのように増えていくかをプロットしたものを示してある。なお、グラフの横軸は一文あたりの平均単語数を示しており、縦軸は辞書空間をｌｏｇスケールで示している。
【００６０】
同図に示されるように、一文あたりの平均単語数は、辞書空間のｌｏｇに比例する直線に近い。このように、人間が扱うデータでは、問題空間（本例の場合には、辞書空間）の広がりに対して、一つの事象を表すデータの組み合わせの数が、線形に比例しない特性を有することが多い。
【００６１】
しかしながら、例えば、Ｈｏｐｆｉｅｌｄの原型の完全相互接続ネットワークでは、ニューロン間での重み係数は、同相（同じ値のもの同士）間は＋１値であり、  逆相（異なる値のもの同士）間は−１値であり、いずれかを学習させていく。このため、最終的な学習後のＨｏｐｆｉｅｌｄ型ニューラルネットワークでは、重み係数が０値となる接続はほとんど無く、例えば重み係数が０値である演算を省略してもさほどの計算量低減にはならない。
【００６２】
そこで、Ｈｏｐｆｉｅｌｄ型の完全相互接続ネットワーク学習則を一般化したものがあり、これは式１のように表される。式１は、安定性が証明されている学習条件である。
【００６３】
【数１】
2005011024.tif 000014
【００６４】
ここで、ニューロンは複数であるＮ個あり、ｉやｊはそれぞれのニューロンの番号を表しており、Ｊｉ，ｊはニューロンｉとニューロンｊとの間の重み係数の値を表しており、学習パターンは複数であるμ個あり、ｋはそれぞれの学習パターンの番号を表しており、ξｉｋは学習パターンｋについてのニューロンｉの信号を表しており、ａは学習パターンの信号平均値を表しており、ｂはバイアスを表している。
【００６５】
また、ａは、全てのニューロンｉ及び全てのパターンｋについての正しい信号ξｉｋの平均値であり、平均発火率を示す。
また、信号ξｉｋは、Ｈｏｐｆｉｅｌｄ型では０値又は１値のデジタル値を取り、ニューロンｉが発火しているか否かを示す。
また、ｂは、バイアスを示し、通常は、ニューロン発火の閾値に近い値となる。
【００６６】
一例として、文字のパターン認識を行う場合には、“あ”や“お”などのそれぞれの文字が学習パターンｋに相当し、一文字分を構成するそれぞれの位置の点（ドット）がニューロンｉに相当し、それぞれの学習パターンｋにおいてそれぞれの位置の点（ニューロンｉ）を１値（例えば、黒）とするか或いは０値（例えば、白）とするかを定める信号がξｉｋに相当する。
【００６７】
また、ａやｂは任意に設定されてもよい。
一例として、ａ＝１／２でありｂ＝０である場合には、上記した式１はＨｏｐｆｉｅｌｄの原型モデルとなり、平均の値をａにするとＣｏｖａｒｉａｎｃｅ  ｌｅａｒｎｉｎｇ  ｒｕｌｅとなる。
また、重み係数の値Ｊｉ，ｊは、例えば、一定値とされてもよく、或いは、適時に変更されてもよい。
【００６８】
次いで、上記した式１に関して、上記図２に示したグラフにおいて使用したデータを元に、単語一つにニューロン一つを割り当てて、文中に同時に出現する単語同士の関係についてＣｏｖａｒｉａｎｃｅ  ｌｅａｒｎｉｎｇ  ｒｕｌｅを用いてｂ＝０として重み係数を計算した。
図３には、この計算の結果として得られた重み係数のヒストグラムを示してある。グラフの横軸は正規化した重み係数（Ｗｅｉｇｈｔ）の値を示しており、縦軸は割合（Ｐｅｒｃｅｎｔ）を示している。
【００６９】
同図に示されるように、相関のあるニューロンの間の重み係数だけが、意味のある（つまり、計算する価値のある）値を取り、それ以外の重み係数は０値になる。本例では、約９３％の接続の重み係数がほぼ０値となる。
このため、このような重み係数のデータで完全相互接続ニューラルネットワークを計算してよい場合には、約９３％の接続についての重み係数の計算処理を省略することが可能である。
【００７０】
図４（ａ）、（ｂ）を参照して、接続の重み係数が０値である接続の計算を省略する方法の一例を示す。
同図（ａ）には、メモリの管理の仕方に関して、一般的な従来の方法の一例を示してある。
この方法では、各ニューロンｉ毎にＮ個の要素を持つ配列を用意し、他のニューロンｊとの接続の重み係数の値を各配列に対応させて格納させておく。
【００７１】
具体的には、同図（ａ）には、ニューロンｉが有する重み係数のデータの一例を示してあり、配列番号が０番目〜（Ｎ−１）番目であるＮ個の配列を有しており、０番目のニューロンに対しては“０”、１番目のニューロンに対しては“０”、２番目のニューロンに対しては“ｘｘｘ”といったように、各配列の要素として他の各ニューロンｊとの接続の重み係数の値を格納する。
【００７２】
なお、Ｎ個の配列の中で、ニューロンｉ自体に対応する配列の要素については空白（無データ）とするか或いは所定の値として、演算しないようにする。
そして、ニューロンｉにおいて、他のニューロンｊに対応する全ての配列要素について、各ニューロンｊの状態値と各ニューロンｊの重み係数値とを掛け合わせて合計することにより、当該合計結果がニューロンｉへの入力結果（入力の重み合計結果）として求められる。
【００７３】
一方、同図（ｂ）には、メモリの管理の仕方に関して、０値を有する重み係数に係る接続の計算を省略する方法の一例を示してある。
この方法では、ニューロンｉ毎に、処理に必要なニューロンｊつまり接続の重み係数が０値ではないニューロンｊのみについてのデータを列挙した間接参照配列を用意する。
【００７４】
具体的には、同図（ｂ）には、ニューロンｉが有する重み係数のデータの一例を示してあり、配列番号が０番目〜Ｍ番目であるＭ個の配列を有しており、Ｍはニューロンｉに対して接続の重み係数が０値ではない他のニューロンｊの総数に相当する。また、各配列には、間接参照配列として接続の重み係数が０値ではない他のニューロンｊに対応する番号を格納し、配列要素として当該他のニューロンｊとの接続の重み係数の値を格納する。
【００７５】
本例では、間接参照配列には“２”や“５”や“１１”などの番号が格納されており、配列要素には“ｘｘｘ”や“ｖｖｖ”や“ｚｚｚ”などの重み係数の値が格納されている。
また、本例では、間接参照配列に“−１”の値を格納することにより、間接参照の終了位置を示している。
【００７６】
そして、ニューロンｉにおいて、他のニューロンｊに対応する全ての配列要素について、各ニューロンｊの状態値と各ニューロンｊの重み係数値とを掛け合わせて合計することにより、当該合計結果がニューロンｉへの入力結果（入力の重み合計結果）として求められる。
例えば、このような間接参照配列を予め作成しておくことにより、間接参照配列の要素のみを計算するだけでニューロンｉへの入力結果を求めることができる。
【００７７】
次いで、上記図２に示されるように、問題空間の広がりに対して、一つの事象を表すデータの組み合わせの数が、対数比例が成り立つ関係を有するような場合を想定する。そして、この場合に、事象を表すデータ項目とニューロンとを１対１に対応させて、上記式１でｂ＝０としてＣｏｖａｒｉａｎｃｅ  ｌｅａｒｎｉｎｇ  ｒｕｌｅで学習させたときには、各ニューロンにおいて計算すべき結線数は、およそ、事象を表すデータ項目数となり、（ｃ・ｌｏｇＮ＋ｄ）のように表される。ここで、ｃ及びｄは、上記図２に示されるような対応関係を近似する係数であり、Ｎはニューロン数である。
このとき、重み係数が０値となる結線を省略させてニューラルネットワークの演算を行うと、計算量のオーダーはおよそＯ（Ｎ・ｌｏｇＮ）で済む。
【００７８】
以下で、具体的に、本例の情報処理装置により行われる処理を説明する。
例えば、Ｈｏｐｆｉｅｌｄのネットワークでは、上記した式１においてｂ＝０とした場合には、出力パターンの０値と１値との割合が５０対５０となる。
そこで、出力させたいパターンを構成する０値と１値との比が５０対５０ではない場合には、上記した式１におけるｂを０以外の値にすることや、或いは、別なニューロンモデル若しくは別なニューラルネットワークモデルを導入することが必要となる。
【００７９】
一例として、上記した式１においてｂを０でない値とした場合（つまり、ｂ≠０とした場合）には、上記図３に示した重み係数のヒストグラムは左右にｂだけシフトする。すると、０値を有する重み係数の接続が一番多い接続ではなくなってしまう。
具体的には、上記した式１の右辺からｂに係る項を除いた重み係数Ｊ’ｉ，ｊは、式２のように表される。
【００８０】
【数２】
2005011024.tif 000015
【００８１】
また、入力パターンＳの平均値が学習パターンξｉｋの平均値と近いと想定してよい場合には、各ニューロンｉへの入力結果Ｉｉの計算式は、式３のように近似することができる。なお、Ｓｊは、入力パターンＳの中で、ニューロンｊの状態値を表す。
また、通常は、Ｎは大きい数値となるため、式３中の“−ｂａ（Ｎ−１）”の項は、実用上では“−ｂａＮ”としてもよく、誤差の範囲内である。
【００８２】
【数３】
2005011024.tif 000016
【００８３】
人間が扱うデータでは、カイ２乗分布やポアソン分布のように、入力パターンの平均値が偏ることが確認されている。
図５には、上記図２のグラフに関して用いたデータを元に、文の長さ（一文あたりの単語数）の分布を（ａ）として示してある。グラフの横軸は一文あたりの単語数を示しており、縦軸は全体に占める割合を示している。
【００８４】
また、図５には、（ｂ）として、ポアソン分布を示してある。ポアソン分布は、平均とモードが近い分布であるため、好ましい。
このため、特に、ポアソン分布に近似することができるような場合には、入力パターンＳの平均は、学習パターンξｉｋの平均値に近い値となる確率が高い。
【００８５】
上記した式３中の“Ｊ’ｉ，ｊ”に係る項は上記した式１においてｂ＝０としたものと等価であり、このため、重み係数の分布は上記図３に示されるように０の値が一番多くなる。
【００８６】
また、上記した式３中の“−ｂａ（Ｎ−１）”の項は定数項である。
そこで、一例として、“Ｊ’ｉ，ｊ”に係る項の計算が終了した後に当該計算結果からｂａ（Ｎ−１）を引き算することにより、正しい値を有する各ニューロンｉへの入力結果Ｉｉを得ることができる。
また、他の一例として、上記した式３中の“Ｊ’ｉ，ｊ”に係る項の計算結果のみを各ニューロンｉへの入力結果Ｉｉとして得て、ニューロン発火の閾値にｂａ（Ｎ−１）を足し算することによっても、ニューロン発火の有無の判断結果としては同一の結果を得ることができる。
【００８７】
また、上記した式３中の“−ｂａ（Ｎ−１）”の項は、必ずしも全てのニューロンで計算する必要はなく、一回計算しておけばよいため、計算量を大幅に省略することができる。
また、上記した式３中の“Ｊ’ｉ，ｊ”に係る項の計算処理量は、上記した式１でｂ＝０とした場合に係る計算処理量と同じであるため、計算量のオーダーも同じとなっておよそＯ（Ｎ・ｌｏｇＮ）とすることができる。
【００８８】
次いで、図６には、（ａ）上記した式３のような近似を用いずに上記した式１でｂが０値ではない場合に計算を行った場合と、（ｂ）ランダムに接続を希釈化するｄｉｌｕｔｅｄ  Ｈｏｐｆｉｅｌｄ  ｍｏｄｅｌを用いて計算を行った場合と、（ｃ）上記した式３のような近似を用いた本例の情報処理装置により計算を行った場合（本提案の場合）について、パターン想起のシミュレーションの比較例を示してある。グラフの横軸は学習パターンと想起パターンとの誤差（ハミング距離）を例えば個数（ドット数）を単位として示しており、縦軸は全トライアルに対する比率を示している。
【００８９】
ここで、本シミュレーションでは、ニューロン数Ｎ＝１００、学習パターン数μ＝１５、ａ＝０．２、ｂ＝０．２という条件を用いた。
また、本シミュレーションでは、学習パターンに１０％のノイズを加えたパターンを入力として演算させることを行った。そして、同図に示したヒストグラムは、当該演算の後において学習させたパターンとどれだけ近い演算結果が得られたかを表す分布に相当する。
【００９０】
同図のヒストグラムに示されるように、入力パターンの平均と学習データの平均との差が無い（又は、ほとんど無い）ときには、ｂを付けた全接続の重み係数に係る計算を行う場合（ａ）においても、本提案の場合（ｃ）においても、ほとんど想起性能に差が無いことがわかった。また、本シミュレーションでは、パターンをランダムに生成しているため、０値を有する重み係数の接続は偏りが少なく、３６％前後である。そして、ランダムに接続を希釈化するｄｉｌｕｔｅｄ  Ｈｏｐｆｉｅｌｄ  ｍｏｄｅｌの場合（ｂ）において３６％程度の接続を省くように設定したときの誤差分布と比べても、本提案の場合（ｃ）には、ほとんど想起性能に差が無いことがわかった。
【００９１】
次いで、図７（Ａ）には、（ａ）従来方法の典型であるＨｏｐｆｉｅｌｄ型の完全相互結合により処理を行う場合と、（ｂ）本例の情報処理装置により処理を行う場合（本提案の場合）について、ニューロン数Ｎを増加させていったときにおける計算時間［秒（ｓ）］の増加をプロットしたものを示してある。グラフの横軸はニューロン数Ｎ（＝辞書空間）を示しており、縦軸は計算時間を示している。また、同図（Ｂ）には、同図（Ａ）に示した本提案の場合（ｂ）に着目して拡大したグラフを示してある。
【００９２】
ここで、学習データとしては上記図２のグラフで使用したデータを使用しており、計算機としては８００ＭＨｚのＣＰＵ（ｃｅｌｅｒｏｎ）を用いて計算した。
同図（Ａ）に示されるように、従来方法の場合（ａ）ではニューロン数Ｎの増加に伴って２乗のカーブで計算時間（計算量）が増加しているのに対して、本提案の場合（ｂ）ではニューロン数Ｎの増加があっても計算時間（計算量）がほぼ線形に（図では、右側へ）推移している。この差は、ニューロン数Ｎが増加するほど大きくなる。
【００９３】
このように、本例の情報処理装置による演算処理では、例えば従来と比べて、著しく計算量の削減を図ることができる。
また、本例の情報処理装置による演算処理では、例えば上記図４（ｂ）に示したように０値を有する重み係数に係るニューロン間の接続情報を持たないようにすることにより、計算量の差と比例したメモリ空間を節約することが可能になる。
【００９４】
日常世界では日々データが増え続けており、データの増加に対応するための計算量のオーダーが２乗以上であるようなシステムはすぐに破綻してしまう。このため、実験データでは有効であるが、現実問題に適応しようとした途端に、膨大なニューロン数となってしまって非実用的になってしまうような事例がよくある。
そこで、本例の情報処理装置を用いることにより、ニューロン数の増加に伴って計算時間が非現実的な時間になり非実用的になってしまうような応用例に対しても、有効な処理を実現することができる。
【００９５】
このように、本例の情報処理装置では、例えば人工ニューラルネットワークを使用して情報処理を行うシステムで、問題空間が大きくなるような場合においても、計算量の膨大化（爆発）が起こらないように計算量を押さえることができ、実用的な処理装置を実現することが可能である。
【００９６】
以上のように、本例の情報処理装置では、完全相互接続型のニューラルネットワークモデルをベースとした演算処理を行う構成において、一番接続数が多い重み係数の値が０になるようにバイアス値ｂを保留して学習させる機構と、接続の重み係数として０の値を有する接続の演算を省略する演算機構と、学習時のバイアス変更の補正分だけニューラルネットワーク演算時に演算結果を変更（補正）する機構或いは学習時のバイアス変更の補正分だけニューロン演算時に発火する閾値を変更（補正）する機構を備えている。なお、各接続の重み係数の値を求めることは、例えば、初期設定として行われてもよく、或いは、設定変更として行われてもよい。
【００９７】
具体的には、本例の情報処理装置では、０値を有するニューロン間の接続重み（重み係数）の数が非最多である（つまり、ｂが０ではない）完全相互接続型のニューラルネットワークモデルに基づく演算処理を実行するに際して、０値を有するニューロン間の接続重みの数が最多となるように補正したニューロン間の接続重みＪ’ｉ，ｊを設定し、当該設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて完全相互接続型のニューラルネットワークモデルに基づく演算処理を実行し、前記したニューロン間の接続重みに関する補正（ｂをずらした補正）を打ち消すように、当該演算処理結果に関する補正を行うことにより、演算処理の効率化を図ることができる。
【００９８】
ここで、本例では、一番接続数が多い重み係数の値が０ではない（つまり、ｂが０ではない）モデルに対する処理の一例を示したが、他の構成例として、初めから、一番接続数が多い重み係数の値が０となるようなモデルとなるように学習を行うことも可能である。
【００９９】
一例として、このような情報処理装置では、完全相互接続型のニューラルネットワークモデルをベースとした構成において、一番接続数が多い重み係数の値が０になるように学習させる機構と、接続の重み係数として０の値を有する接続の演算を省略する演算機構を備える。なお、各接続の重み係数の値を求めることは、例えば、初期設定として行われてもよく、或いは、設定変更として行われてもよい。
【０１００】
具体的には、このような情報処理装置では、完全相互接続型のニューラルネットワークモデルに基づく演算処理を実行するに際して、０値を有するニューロン間の接続重み（重み係数）の数が最多となるようにニューロン間の接続重みを設定し、当該設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて完全相互接続型のニューラルネットワークモデルに基づく演算処理を実行することにより、演算処理の効率化を図ることができる。
【０１０１】
次に、本発明に係る第２実施例を説明する。
なお、本例の情報処理装置の構成や動作の概要は、上記第１実施例に示した情報処理装置の構成や動作の概要と同様であり、本例では、異なる部分について詳しく説明する。
【０１０２】
上記第１実施例では、学習パターンの平均値のばらつきがほとんど無いことを想定して、上記した式３において、バイアス項ｂから計算される値の近似を行った。このため、学習パターンの平均値の分布に幅がある場合には、収束しにくくなる。
そこで、本例では、上記した式３において、近似前におけるバイアス項ｂに係る項に注目する。この項は、式４のように表される。
【０１０３】
【数４】
2005011024.tif 000017
【０１０４】
例えば、従来方法では、上記した式４に示した値をニューロン１個毎に計算していたため、各ニューロン毎に（Ｎ−１）回のループを回す必要があるので、計算量のオーダーがＯ（（Ｎ−１）２）になっていた。
そこで、本例では、例えば、入力パターンの平均値が想起すべき学習パターンの平均値と近いと想定してよいような場合には、上記した式４に示した値を各ニューロン毎に計算するのではなく、まとめて計算することにより、大幅な計算量の削減を図る。
【０１０５】
一例として、本例では、上記した式４に示した値を一回だけ計算しておいて、以降においては、当該計算結果を近似値として使用する。
他の一例として、本例では、Ｎ個のニューロンについて全部計算を行う毎に上記した式４に示した値を計算しておいて、以降においては、当該計算結果を使用する。つまり、入力から出力を特定するまでの計算をＮ個のニューロンで１回したら、上記した式４に示した値の厳密解を計算し、これを繰り返して行う。
【０１０６】
また、他の一例として、本例では、各ニューロンの計算毎に状態の変化分ΔＳｉを用いて上記した式４に示した値を補正する。つまり、いずれかのニューロンの値が変化したときだけ、差分だけを計算して補正する。この場合、例えば正しい初期値を設定すると、上記した式４に示した値は正確となり、これに基づいて行われるバイアス項ｂに関する補正も正確となる。
なお、上記した式４に示した値を求めるための上記した種々な仕方は、それぞれ、単独で用いられてもよく、或いは、２以上が組み合わされて用いられてもよい。
【０１０７】
以上のように、本例の情報処理装置では、学習時のバイアス変更の補正分として、必ずしも厳密な値を用いるばかりでなく、近似的な値を用いることもできる。また、当該補正分の値を、必ずしも変更がある度に計算するのではなく、或る程度の長さの期間を有した所定のタイミングで計算することもできる。また、必ずしも当該補正分の値自体を計算するのではなく、今回の変化量を計算して前回の補正分の値に加算していくこともできる。
【０１０８】
次に、本発明に係る第３実施例を説明する。
なお、本例の情報処理装置の構成や動作の概要は、上記第１実施例や上記第２実施例に示した情報処理装置の構成や動作の概要と同様であり、本例では、異なる部分について詳しく説明する。
【０１０９】
例えば、Ｈｏｐｆｉｅｌｄの元のモデルでは、接続の重み係数を整数で持っていたため、丸めによって重み係数が０値になる接続が多かった。しかしながら、接続の重み係数を実数で計算する場合には、ぴったり０値になることはまれである。そこで、少ない重み係数のシナプス接続を削除するＳｙｎａｐｔｉｃ  Ｐｒｕｎｉｎｇという考えがある（例えば、非特許文献４参照。）。これは、接続の重み係数の絶対値が指定値ｔ以下であれば０値にしてしまうものであり、記憶容量を保ったままシナプス数を削減することができる。
【０１１０】
ここで、上記した式１の学習則においてｂが０ではない場合には、分布の中心が０ではないため、Ｓｙｎａｐｔｉｃ  Ｐｒｕｎｉｎｇそのままでは、削減することができる接続の本数は最大ではない。
そこで、上記第１実施例や上記第２実施例と同様に、接続の重み係数の分布の中心が０値になるように接続の重み係数をｂだけシフトして設定した後に、ニューラルネットワーク計算時などに補正する方法を適用することにより、誤差を少なくしたまま、接続の本数の削減数を最大化することができる。
【０１１１】
以上のように、本例の情報処理装置では、接続の重み係数の絶対値が設定された閾値と比べて小さい場合にはその接続の重み係数を０値とする機構を備えており、０値に近い小さい絶対値を有する重み係数については計算上で省略することにより、演算処理の効率化を図ることができる。具体的には、例えば、上記第１実施例や上記第２実施例と同様にｂだけずらした接続の重み係数Ｊ’ｉ，ｊを生成し、その後、本例のように小さい絶対値の重み係数を０値とすることにより、０値を有する重み係数の数を更に増加させて、演算処理の効率化を更に図ることができる。
【０１１２】
ここで、本発明に係る情報処理装置などの構成としては、必ずしも以上に示したものに限られず、種々な構成が用いられてもよい。また、本発明は、例えば、本発明に係る処理を実行する方法或いは方式や、このような方法や方式を実現するためのプログラムや当該プログラムを記憶する記憶媒体などとして提供することも可能である。
また、本発明の適用分野としては、必ずしも以上に示したものに限られず、本発明は、種々な分野に適用することが可能なものである。
【０１１３】
一例として、本発明は、様々な任意のニューラルネットワークに適用することが可能である。例えば、Ｈｏｐｆｉｅｌｄ型のニューラルネットワークでは学習パターンの平均値ａや接続の重み係数Ｊｉ，ｊの値が発火パターンや想起パターンの安定性と関係するが、他の例として、学習パターンの平均値や接続の重み係数の値とは無関係に発火パターンや想起パターンが安定する特性を有する完全相互接続ニューラルネットワーク演算機構などに本発明を適用することも可能である。なお、学習パターンの平均値や接続の重み係数の値とは無関係に発火パターンや想起パターンが安定する特性を有する完全相互接続ニューラルネットワーク演算機構としては、例えば、パターン１とパターン２の中間といった解を出すものがある。
【０１１４】
また、本発明に係る情報処理装置などにおいて行われる各種の処理としては、例えばプロセッサやメモリ等を備えたハードウエア資源においてプロセッサがＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）に格納された制御プログラムを実行することにより制御される構成が用いられてもよく、また、例えば当該処理を実行するための各機能手段が独立したハードウエア回路として構成されてもよい。
また、本発明は上記の制御プログラムを格納したフロッピー（登録商標）ディスクやＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）−ＲＯＭ等のコンピュータにより読み取り可能な記憶媒体や当該プログラム（自体）として把握することもでき、当該制御プログラムを記憶媒体からコンピュータに入力してプロセッサに実行させることにより、本発明に係る処理を遂行させることができる。
【０１１５】
【発明の効果】
以上説明したように、本発明に係る情報処理装置などによると、相互接続型のニューラルネットワークモデルに基づく演算処理を実行する構成において、０値を有するニューロン間の接続重みの数が多くなるようにニューロン間の接続重みを設定し、そして、当該設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて相互接続型のニューラルネットワークモデルに基づく演算処理を実行するようにしたため、演算処理を効率化することができる。
【０１１６】
また、本発明に係る情報処理装置などによると、０値を有するニューロン間の接続重みの数が非最多である相互接続型のニューラルネットワークモデルに基づく演算処理を実行する構成において、０値を有するニューロン間の接続重みの数が多くなるように補正したニューロン間の接続重みを設定し、そして、当該設定に基づいて、ニューロン間の接続重みが０値であるニューロン間接続の演算処理を除いて相互接続型のニューラルネットワークモデルに基づく演算処理を実行し、更に、前記したニューロン間の接続重みに関する補正を打ち消すように当該演算処理結果に関する補正を行うようにしたため、演算処理を効率化することができるとともに、演算処理結果に関して正しい判定などが為されることを保証することができる。