(57)【特許請求の範囲】
【請求項１】
複数のネットワーク素子及び０又は１つ以上のバイアス素子からなる所定の結合構造を有するニューラルネットの結合重みを最適化するニューラルネット結合重み最適化方法であって、
１つ又は複数のニューラルネットと、当該ニューラルネットの結合重みを所定の評価関数に基づいて評価した評価結果とを対応付けて解候補ニューラルネット集合記憶手段に記憶する第１のステップと、
前記解候補ニューラルネット集合記憶手段に記憶された前記ニューラルネットから選択した所定数のニューラルネットの各々について、当該ニューラルネットの全結合重みのうち同一のネットワーク素子への入力に係る結合重みごとに、ネットワーク素子の機能を考慮した所定の符号化関数変換を施して符号化し、各ネットワーク素子について得られた符号を連結して、符号化ニューラルネットを生成する第２のステップと、
この第２のステップで生成された前記符号化ニューラルネットをもとにして、所定数の符号化ニューラルネットを新たに生成する第３のステップと、
この第３のステップで生成された前記符号化ニューラルネットの各々について、当該符号化ニューラルネットの全符号のうち各々のネットワーク素子に対応する符号部分ごとに、ネットワーク素子の機能を考慮した所定の逆関数変換を施して、前記解候補ニューラルネット集合記憶手段に記憶されている前記ニューラルネットと同じ形式のニューラルネットを新たに生成する第４のステップと、
この第４のステップで生成された前記ニューラルネットの各々について前記モデル評価関数に基づく評価を行って評価結果を求め、少なくとも、該評価結果に基づいて該ニューラルネット及びその評価結果を前記解候補ニューラルネット集合記憶手段に追加するか否かを判断し、追加すると判断された該ニューラルネットとその評価結果とを対応付けて前記解候補ニューラルネット集合記憶手段に記憶する第５のステップとを有することを特徴とするニューラルネット結合重み最適化方法。
【請求項２】
前記第５のステップでは、さらに、前記解候補ニューラルネット集合記憶手段に記憶されている既存の前記ニューラルネット及びその評価結果のうち所定の条件を満たすものを該解候補ニューラルネット集合記憶手段から削除することを特徴とする請求項１に記載のニューラルネット結合重み最適化方法。
【請求項３】
前記第５のステップでは、前記第４のステップで生成された前記ニューラルネットの評価結果と、前記解候補ニューラルネット集合記憶手段に記憶されている既存の前記ニューラルネットのうち前記第２のステップで選択された前記ニューラルネットの評価結果とを比較して、より良い評価結果を持つものを、前記第２のステップで前記ニューラルネットを選択した数と同じ数だけ選択し、選択されたニューラルネット及びその評価結果で、前記解候補ニューラルネット集合記憶手段に記憶されている前記ニューラルネット及びその評価結果のうち前記第２のステップで選択された前記ニューラルネット及び評価結果の部分を更新することを特徴とする請求項１に記載のニューラルネット結合重み最適化方法。
【請求項４】
前記第２のステップから前記第５のステップを、前記第５のステップの後において所定の終了条件が成立したと判断されるまで、繰り返し実行し、
前記第５のステップの後において所定の終了条件が成立したと判断された場合には、前記解候補ニューラルネット集合記憶手段に記憶されている前記ニューラルネットのうち、その時点で最も良い前記評価結果を持つものを、最適化されたニューラルネットとして選択することを特徴とする請求項１ないし３のいずれか１項に記載のニューラルネット結合重み最適化方法。
【請求項５】
前記第２のステップでは、前記ニューラルネットの前記同一のネットワーク素子への入力に係る結合重みに対して前記所定の符号化関数変換を施すにあたっては、当該ネットワーク素子への入力に係る全結合重みのうちバイアス素子からの入力に係る結合重み以外の結合重みからなる結合重みベクトルのベクトル長を求め、該ベクトル長又は該ベクトル長を正数倍した値に基づいて当該ネットワーク素子への入力に係る全結合重みの各々に所定の演算を施して得た値と、該ベクトル長又は該ベクトル長を正数倍した値とを、符号として連結することにより、前記符号化ニューラルネットを生成することを特徴とする請求項１ないし４のいずれか１項に記載のニューラルネット結合重み最適化方法。
【請求項６】
前記所定の演算は、前記結合重みを、前記ベクトル長又は前記ベクトル長を正数倍した値で除する演算であることを特徴とする請求項５に記載のニューラルネット結合重み最適化方法。
【請求項７】
前記第２のステップでは、前記ニューラルネットの前記同一のネットワーク素子への入力に係る結合重みに対して前記所定の符号化関数変換を施すにあたっては、当該ネットワーク素子への入力に係る全結合重みのうちバイアス素子からの入力に係る結合重み以外の結合重みからなる結合重みベクトルのベクトル長を求め、該ベクトル長を第１の正数倍した値に基づいて該バイアス素子からの入力に係る結合重み以外の結合重みの各々に所定の演算を施して得た値と、該ベクトル長を第２の正数倍（ただし、第１の正数と第２の正数とは異なる値であり且つ第１の正数と第２の正数の少なくとも一方は１ではない値）した値に基づいて該バイアス素子からの入力に係る結合重みの各々に所定の演算を施して得た値と、該ベクトル長を第１の正数倍した値及び該ベクトル長を第２の正数倍した値を特定可能とする値の組とを、符号として連結することにより、前記符号化ニューラルネットを生成することを特徴とする請求項１ないし４のいずれか１項に記載のニューラルネット結合重み最適化方法。
【請求項８】
前記所定の演算は、前記バイアス素子からの入力に係る結合重み以外の結合重みを、前記ベクトル長を第１の正数倍した値で除するとともに、前記バイアス素子からの入力に係る結合重みを、前記ベクトル長を第２の正数倍した値で除する演算であることを特徴とする請求項５または６に記載のニューラルネット結合重み最適化方法。
【請求項９】
前記第４のステップでは、前記符号化ニューラルネットの全符号のうち一つの前記ネットワーク素子に対応する符号部分に対して前記所定の逆関数変換を施すにあたっては、該符号部分のうち前記ベクトル長又は前記ベクトル長を正数倍した値に対応する符号値に基づいて、該符号部分のうち前記結合重みの各々に所定の演算を施して得た値に対応する符号値に対してそれぞれ所定の演算を施すことによって、新ニューラルネットにおける該当する結合重みを求めることを特徴とする請求項５または６に記載のニューラルネット結合重み最適化方法。
【請求項１０】
前記所定の演算は、前記符号部分のうち前記ベクトル長又は前記ベクトル長を正数倍した値に対応する符号値に対して所定の修正を施した修正値を求め、前記符号部分のうち前記結合重みの各々に所定の演算を施して得た値に対応する符号値に対してそれぞれ該修正値を乗ずる演算であることを特徴とする請求項９に記載のニューラルネット結合重み最適化方法。
【請求項１１】
前記第４のステップでは、前記符号化ニューラルネットの全符号のうち一つの前記ネットワーク素子に対応する符号部分に対して前記所定の逆関数変換を施すにあたっては、該符号部分のうち前記ベクトル長を第１の正数倍した値及び前記ベクトル長を第２の正数倍した値を特定可能とする値の組に対応する符号値の組に基づいて特定した前記ベクトル長を第１の正数倍した値に相当する値に基づいて、該符号部分のうち前記バイアス素子からの入力に係る結合重み以外の結合重みの各々に所定の演算を施して得た値に対応する符号値に対してそれぞれ所定の演算を施すとともに、該符号部分のうち前記ベクトル長を第１の正数倍した値及び前記ベクトル長を第２の正数倍した値を特定可能とする値の組に対応する符号値の組に基づいて特定した前記ベクトル長を第２の正数倍した値に相当する値に基づいて、該符号部分のうち前記バイアス素子からの入力に係る結合重みの各々に所定の演算を施して得た値に対応する符号値に対してそれぞれ所定の演算を施すことによって、新ニューラルネットにおける該当する結合重みを求めることを特徴とする請求項７または８に記載のニューラルネット結合重み最適化方法。
【請求項１２】
前記所定の演算は、特定された前記ベクトル長を第１の正数倍した値に相当する値に対して所定の修正を施した第１の修正値を求め、前記符号部分のうち前記バイアス素子からの入力に係る結合重み以外の結合重みの各々に所定の演算を施して得た値に対応する符号値に対してそれぞれ該第１の修正値を乗ずるとともに、特定された前記ベクトル長を第２の正数倍した値に相当する値に対して所定の修正を施した第２の修正値を求め、前記符号部分のうち前記バイアス素子からの入力に係る結合重みの各々に所定の演算を施して得た値に対応する符号値に対してそれぞれ該第２の修正値を乗ずる演算であることを特徴とする請求項１１に記載のニューラルネット結合重み最適化方法。
【請求項１３】
前記所定の修正は、前記値に対してその絶対値とる修正、または前記値が予め定められた正数のしきい値未満である場合に該値を該予め定められた正数のしきい値とする修正であることを特徴とする請求項１０または１２に記載のニューラルネット結合重み最適化方法。
【請求項１４】
前記第３のステップでは、遺伝的アルゴリズムによって、前記符号化ニューラルネットを生成することを特徴とする請求項１に記載のニューラルネット結合重み最適化方法。
【請求項１５】
複数のネットワーク素子及び０又は１つ以上のバイアス素子からなる所定の結合構造を有するニューラルネットの結合重みを最適化するニューラルネット結合重み最適化装置であって、
１つ又は複数のニューラルネットと、当該ニューラルネットの結合重みを所定の評価関数に基づいて評価した評価結果とを対応付けて記憶するための解候補ニューラルネット集合記憶手段と、
前記解候補ニューラルネット集合記憶手段に記憶された前記ニューラルネットから選択した所定数のニューラルネットの各々について、当該ニューラルネットの全結合重みのうち同一のネットワーク素子への入力に係る結合重みごとに、ネットワーク素子の機能を考慮した所定の符号化関数変換を施して符号化し、各ネットワーク素子について得られた符号を連結して、符号化ニューラルネットを生成するための手段と、
この手段により生成された前記符号化ニューラルネットをもとにして、所定数の符号化ニューラルネットを新たに生成するための手段と、
この手段により生成された前記符号化ニューラルネットの各々について、当該符号化ニューラルネットの全符号のうち各々のネットワーク素子に対応する符号部分ごとに、ネットワーク素子の機能を考慮した所定の逆関数変換を施して、前記解候補ニューラルネット集合記憶手段に記憶されている前記ニューラルネットと同じ形式のニューラルネットを新たに生成するための手段と、
この手段により生成された前記ニューラルネットの各々について前記モデル評価関数に基づく評価を行って評価結果を求め、少なくとも、該評価結果に基づいて該ニューラルネット及びその評価結果を前記解候補ニューラルネット集合記憶手段に追加するか否かを判断し、追加すると判断された該ニューラルネットとその評価結果とを対応付けて前記解候補ニューラルネット集合記憶手段に記憶するための手段とを備えたことを特徴とするニューラルネット結合重み最適化装置。
【請求項１６】
複数のネットワーク素子及び０又は１つ以上のバイアス素子からなる所定の結合構造を有するニューラルネットの結合重みを最適化するニューラルネット結合重み最適化装置としてコンピュータを機能させるためのプログラムであって、
１つ又は複数のニューラルネットと、当該ニューラルネットの結合重みを所定の評価関数に基づいて評価した評価結果とを対応付けて解候補ニューラルネット集合記憶手段に記憶するための機能と、
前記解候補ニューラルネット集合記憶手段に記憶された前記ニューラルネットから選択した所定数のニューラルネットの各々について、当該ニューラルネットの全結合重みのうち同一のネットワーク素子への入力に係る結合重みごとに、ネットワーク素子の機能を考慮した所定の符号化関数変換を施して符号化し、各ネットワーク素子について得られた符号を連結して、符号化ニューラルネットを生成するための機能と、
この機能により生成された前記符号化ニューラルネットをもとにして、所定数の符号化ニューラルネットを新たに生成するための機能と、
この機能により生成された前記符号化ニューラルネットの各々について、当該符号化ニューラルネットの全符号のうち各々のネットワーク素子に対応する符号部分ごとに、ネットワーク素子の機能を考慮した所定の逆関数変換を施して、前記解候補ニューラルネット集合記憶手段に記憶されている前記に属するニューラルネットと同じ形式のニューラルネットを新たに生成するための機能と、
この機能により生成された前記ニューラルネットの各々について前記モデル評価関数に基づく評価を行って評価結果を求め、少なくとも、該評価結果に基づいて該ニューラルネット及びその評価結果を前記解候補ニューラルネット集合記憶手段に追加するか否かを判断し、追加すると判断された該ニューラルネットとその評価結果とを対応付けて前記解候補ニューラルネット集合記憶手段に記憶するための機能とをコンピュータに実現させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ニューラルネットの好ましさを決定するモデル評価関数に基づいてニューラルネットの結合重みを最適化するためのニューラルネット結合重み最適化装置及び方法に関する。
【０００２】
【従来の技術】
ニューラルネットは、高度な情報処理機能を人工的に実現するために開発されたコンピュータ技術である。すなわち、ニューラルネットは、コンピュータを使用して脳の神経回路などを模擬した人工知能の技術であり、情報を入力するための入力素子の集まりである入力層、この入力から答えがどのような値になるのかを出力する出力素子の集まりである出力層、およびそれらの層の中間にある中間素子の集まりである中間層から構成され、各層の各素子は、結合重みパラメータを持つ多くの結合によって連結しあっている。
【０００３】
ニューラルネットは、何らかのモデル評価関数に基づいて、高い評価関数値（評価関数によっては低い評価関数値）をとるような結合重みパラメータの最適化を行うことにより、高度な情報処理機能を獲得することができる。
【０００４】
ニューラルネットの結合重みパラメータの最適化方法としては、誤差逆伝播法（例えば、Ｒｕｍｅｌｈａｌｔ，  Ｄ．Ｅ．，  Ｇ．Ｅ．Ｈｉｎｔｏｎ，  ａｎｄ  Ｒ．Ｊ．Ｗｉｌｌｉａｍｓ．，  “Ｌｅａｒｎｉｎｇ  ｒｅｐｒｅｓｅｎｔａｔｉｏｎｓ  ｂｙ  ｂａｃｋ−ｐｒｏｐａｇａｔｉｎｇ  ｅｒｒｏｒｓ．”，  Ｎａｔｕｒｅ  ３２３，  ｐｐ．５３３−５３６．，  １９８６．）などがあるが、すべてのパラメータに対して偏微分計算が可能であるなどモデル評価関数に多くの制約が必要になるという問題点がある。
【０００５】
また、一般的なモデル評価関数を対象とするパラメータ最適化法としては、遺伝的アルゴリズム（例えば、Ｇｏｌｄｂｅｒｇ，  Ｄ．Ｅ．，  “Ｇｅｎｅｔｉｃ  Ａｌｇｏｒｉｔｈｍｓ  ｉｎ  Ｓｅａｒｃｈ，  Ｏｐｔｉｍｉｚａｔｉｏｎ，  ａｎｄ  Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ．”，  Ａｄｄｉｓｏｎ−Ｗｅｓｌｅｙ  Ｐｕｂｌｉｓｈｉｎｇ  Ｃｏｍｐａｎｙ  Ｉｎｃ．，  １９８９．）などがあるが、ニューラルネットの結合重み値を単に集め実数ベクトルとするため、十分な最適化性能が得られないという問題点がある。
【０００６】
【発明が解決しようとする課題】
ニューラルネットの結合重みパラメータをモデル評価関数に対して最適化することにより高度な情報処理機能を獲得するための従来の技術として、誤差逆伝播法などのニューラルネットの結合重み最適化に特化した方法は、一般的なモデル評価関数に用いることはできないという問題があり、単にニューラルネットの結合重みを集めた実数ベクトルを用いた遺伝的アルゴリズムなどの方法は、一般的なモデル評価関数を用いることができるが、十分な最適化性能が得られないという問題があった。
【０００７】
本発明は、上記事情を考慮してなされたもので、一般的なモデル評価関数に基づくニューラルネットの結合重みの最適化として従来よりも優れた最適化を可能とするニューラルネット結合重み最適化装置及び方法を提供することを目的とする。
【０００８】
【課題を解決するための手段】
本発明は、複数のネットワーク素子及び０又は１つ以上のバイアス素子からなる所定の結合構造を有するニューラルネットの結合重みを最適化するニューラルネット結合重み最適化方法であって、１つ又は複数のニューラルネットと、当該ニューラルネットの結合重みを所定の評価関数に基づいて評価した評価結果とを対応付けて解候補ニューラルネット集合記憶手段に記憶する第１のステップと、前記解候補ニューラルネット集合記憶手段に記憶された前記ニューラルネットから選択した所定数のニューラルネットの各々について、当該ニューラルネットの全結合重みのうち同一のネットワーク素子への入力に係る結合重みごとに、ネットワーク素子の機能を考慮した所定の符号化関数変換を施して符号化し、各ネットワーク素子について得られた符号を連結して、符号化ニューラルネットを生成する第２のステップと、この第２のステップで生成された前記符号化ニューラルネットをもとにして、所定数の符号化ニューラルネットを新たに生成する第３のステップと、この第３のステップで生成された前記符号化ニューラルネットの各々について、当該符号化ニューラルネットの全符号のうち各々のネットワーク素子に対応する符号部分ごとに、ネットワーク素子の機能を考慮した所定の逆関数変換を施して、前記解候補ニューラルネット集合記憶手段に記憶されている前記ニューラルネットと同じ形式のニューラルネットを新たに生成する第４のステップと、この第４のステップで生成された前記ニューラルネットの各々について前記モデル評価関数に基づく評価を行って評価結果を求め、少なくとも、該評価結果に基づいて該ニューラルネット及びその評価結果を前記解候補ニューラルネット集合記憶手段に追加するか否かを判断し、追加すると判断された該ニューラルネットとその評価結果とを対応付けて前記解候補ニューラルネット集合記憶手段に記憶する第５のステップとを有することを特徴とする。
【０００９】
好ましくは、前記第５のステップでは、さらに、前記解候補ニューラルネット集合記憶手段に記憶されている既存の前記ニューラルネット及びその評価結果のうち所定の条件を満たすものを該解候補ニューラルネット集合記憶手段から削除するようにしてもよい。
【００１０】
好ましくは、前記第２のステップから前記第５のステップを、前記第５のステップの後において所定の終了条件が成立したと判断されるまで、繰り返し実行し、前記第５のステップの後において所定の終了条件が成立したと判断された場合には、前記解候補ニューラルネット集合記憶手段に記憶されている前記ニューラルネットのうち、その時点で最も良い前記評価結果を持つものを、最適化されたニューラルネットとして選択するようにしてもよい。
【００１１】
好ましくは、前記第２のステップでは、前記ニューラルネットの前記同一のネットワーク素子への入力に係る結合重みに対して前記所定の符号化関数変換を施すにあたっては、当該ネットワーク素子への入力に係る全結合重みのうちバイアス素子からの入力に係る結合重み以外の結合重みからなる結合重みベクトルのベクトル長を求め、該ベクトル長又は該ベクトル長を正数倍した値に基づいて当該ネットワーク素子への入力に係る全結合重みの各々に所定の演算を施して得た値と、該ベクトル長又は該ベクトル長を正数倍した値とを、符号として連結することにより、前記符号化ニューラルネットを生成するようにしてもよい。好ましくは、前記所定の演算は、前記結合重みを、前記ベクトル長又は前記ベクトル長を正数倍した値で除する演算であるようにしてもよい。
【００１２】
好ましくは、前記第４のステップでは、前記符号化ニューラルネットの全符号のうち一つの前記ネットワーク素子に対応する符号部分に対して前記所定の逆関数変換を施すにあたっては、該符号部分のうち前記ベクトル長又は前記ベクトル長を正数倍した値に対応する符号値に基づいて、該符号部分のうち前記結合重みの各々に所定の演算を施して得た値に対応する符号値に対してそれぞれ所定の演算を施すことによって、新ニューラルネットにおける該当する結合重みを求めるようにしてもよい。好ましくは、前記所定の演算は、前記符号部分のうち前記ベクトル長又は前記ベクトル長を正数倍した値に対応する符号値に対して所定の修正を施した修正値を求め、前記符号部分のうち前記結合重みの各々に所定の演算を施して得た値に対応する符号値に対してそれぞれ該修正値を乗ずる演算であるようにしてもよい。好ましくは、前記所定の修正は、前記値に対してその絶対値とる修正、または前記値が予め定められた正数のしきい値未満である場合に該値を該予め定められた正数のしきい値とする修正であるようにしてもよい。
【００１３】
好ましくは、前記第３のステップでは、遺伝的アルゴリズムによって、前記符号化ニューラルネットを生成するようにしてもよい。
【００１４】
なお、装置に係る本発明は方法に係る発明としても成立し、方法に係る本発明は装置に係る発明としても成立する。
また、装置または方法に係る本発明は、コンピュータに当該発明に相当する手順を実行させるための（あるいはコンピュータを当該発明に相当する手段として機能させるための、あるいはコンピュータに当該発明に相当する機能を実現させるための）プログラムとしても成立し、該プログラムを記録したコンピュータ読取り可能な記録媒体としても成立する。
【００１５】
さて、ニューラルネットの機能は、各ネットワーク素子の機能を集めることで実現されており、各ネットワーク素子の機能に影響しているのは、その素子に入力される結合重みのみと考えることができる。本発明では、ニューラルネットの全結合重みを各ネットワーク素子に入力される結合重みの部分集合ごとにグループ化し、符号化関数変換を施すことで、符号化ニューラルネットを生成し、符号化されたニューラルネット集合から新たに生成された新符号化ニューラルネットを各ネットワーク素子に入力される結合重みの部分集合ごとに逆符号化関数変換を施すことで、新ニューラルネット集合を生成するので、一般的なモデル評価関数に基づくニューラルネットの結合重みの最適化として従来よりも優れた最適化が可能になる。また、各ネットワーク素子の機能ごとに最適化を行うことができる。また、本発明によれば、機能的には似ているが加重値は大きく異なるニューラルネット素子を、似た符号ベクトルに変換できるので、各ネットワーク素子の機能上の重複を避けた結合重みパラメータの最適化を行うことができ、高性能な最適化が実現できる。
【００１６】
【発明の実施の形態】
以下、図面を参照しながら発明の実施の形態を説明する。
【００１７】
図１に、本発明の一実施形態に係るニューラルネットの結合重みパラメータに関する最適化処理を行うニューラルネット結合重み最適化装置の構成例を示す。
【００１８】
図１に示されるように、本実施形態のニューラルネット結合重み最適化装置は、解候補ニューラルネット集合記憶部１０１、モデル評価関数記憶部１０２、ニューラルネット素子符号化部１０３、符号化ニューラルネット集合記憶部１０４、新符号化ニューラルネット生成部１０５、新符号化ニューラルネット集合記憶部１０６、ニューラルネット素子復号化部１０７、新ニューラルネット集合記憶部１０８、新ニューラルネット評価・選択部１０９を備えている。
【００１９】
このニューラルネット結合重み最適化装置は、ソフトウェアによって実現することができる（すなわち計算機上でプログラムを実行する形で実現することができる）。その際、そのソフトウェアの一部または全部の機能をチップ化あるいはボード化して該計算機に組み込んで実現することもできる。また、このニューラルネット結合重み最適化装置は、ソフトウェアによって実現する場合には、他のソフトウェアの一機能として組み込むようにすることも可能である。また、このニューラルネット結合重み最適化装置を専用のハードウェアとして構成することも可能である。
【００２０】
解候補ニューラルネット集合記憶部１０１、モデル評価関数記憶部１０２、符号化ニューラルネット集合記憶部１０４、新符号化ニューラルネット集合記憶部１０６、新ニューラルネット集合記憶部１０８は、いずれも、例えばハードディスクや光ディスクや半導体メモリなどの記憶装置によって構成される。なお、各記憶部は、別々の記憶装置によって構成されていてもよいし、それらの全部または一部が同一の記憶装置によって構成されていてもよい。
【００２１】
なお、図１では省略しているが、ニューラルネット結合重み最適化装置は、外部とデータをやり取りするための入出力装置を備えている。もちろん、ＧＵＩ（グラフィカル・ユーザ・インタフェース）を備えてもよいし、ネットワーク接続インタフェースを備えてもよい。
【００２２】
図２に、本ニューラルネット結合重み最適化装置の全体的な処理手順の一例を示す。
【００２３】
あらかじめ、モデル評価関数記憶部１０２には、ニューラルネットを評価するためのモデル評価関数を示すデータが格納されている。モデル評価関数には、所望の一般的なモデル評価関数を用いることができる。
【００２４】
また、解候補ニューラルネット集合記憶部１０１には、予め作成された初期的なニューラルネットを示すデータが１つ以上格納されている。この初期的なニューラルネットの生成方法は、従来の方法に従って構わない（例えば、ニューラルネットの構造はユーザが作成あるいは選択し、結合重みは所定のアルゴリズムでランダムに生成する）。なお、解候補ニューラルネット集合記憶部１０１に予め格納されているニューラルネットの各々については、ステップＳ４で新ニューラルネットに対して行う評価と同様の方法による評価がなされ、その評価結果（例えば、評価関数値）が各ニューラルネットに対応付けて記憶されているものとする。
【００２５】
まず、ニューラルネット素子符号化部１０３は、解候補ニューラルネット集合記憶部１０１からｎ個（ｎは予め定められたもしくは指定された１以上の整数）のニューラルネットを取り出し、取り出したｎ個のニューラルネットの各々について、当該ニューラルネットにおける同一素子に入力している結合重みを同一グループとして扱い所定の符号化関数変換を施すことによって、ｎ個の符号化ニューラルネットを生成し、それらを符号化ニューラルネット集合記憶部１０４に格納する（ステップＳ１）。
【００２６】
次に、新符号化ニューラルネット生成部１０５は、このステップＳ１で生成され符号化ニューラルネット集合記憶部１０４に格納された符号化ニューラルネットをもとにして、例えば遺伝的アルゴリズムなどの所定の方法に従って、新符号化ニューラルネットをｍ個（ｍは予め定められたもしくは指定された１つ以上の整数）生成し、それらを新符号化ニューラルネット集合記憶部１０６に格納する（ステップＳ２）。
【００２７】
この生成方法としては、種々の方法を用いることが可能である。例えば、ｂｌｘ法（例えば、Ｅｓｈｅｌｍａｎ，  Ｌ．Ｊ．，  ａｎｄ  Ｓｃｈａｆｆｅｒ，  Ｊ．Ｄ．，  “Ｒｅａｌ−Ｃｏｄｅｄ  Ｇｅｎｅｔｉｃ  Ａｌｇｏｒｉｔｈｍｓ  ａｎｄ  Ｉｎｔｅｒｖａｌ−Ｓｃｈｅｍａｔａ．”，  Ｆｏｕｎｄａｔｉｏｎｓ  ｏｆ  Ｇｅｎｅｔｉｃ  Ａｌｇｏｒｉｔｈｍｓ  ２．，  ｐｐ．１８７−２０２．，  １９９３．）として知られる方法を用いてもよい。
【００２８】
次に、ニューラルネット素子復号化部１０７は、このステップＳ２で生成され新符号化ニューラルネット集合記憶部１０６に格納されたｍ個の新符号化ニューラルネットを取り出し、取り出したｍ個のニューラルネットの各々について、当該ニューラルネットにおける同一素子に対応している符号を同一グループとして扱い所定の逆関数変換を行うことによって、ｍ個の新ニューラルネットを生成し、それらを新ニューラルネット集合記憶部１０８に格納する（ステップＳ３）。
【００２９】
次に、新ニューラルネット評価・選択部１０９は、このステップＳ３で新ニューラルネット集合記憶部１０８に格納されたｍ個の新ニューラルネットの各々について、モデル評価関数記憶部１０２に格納された情報をもとにして評価を行い、この評価結果に基づいて、解候補ニューラルネット集合記憶部１０１に格納されている解候補ニューラルネットの全部又は一部と新ニューラルネット集合記憶部１０８に格納されたｍ個の新ニューラルネットの中から（あるいは新ニューラルネット集合記憶部１０８に格納されたｍ個の新ニューラルネットの中から）、１つ以上のニューラルネットを選択し、選択された新ニューラルネットのデータについては、これを該評価結果とともに新たな解候補ニューラルネットとして解候補ニューラルネット集合記憶部１０１に記憶する（ステップＳ４）。なお、選択された新ニューラルネットを解候補ニューラルネット集合記憶部１０１に記憶するにあたって、解候補ニューラルネット集合記憶部１０１から所定の基準で選択した１つ以上の解候補ニューラルネットを削除するようにしてもよい。
【００３０】
この評価・選択方法としては、種々の方法を用いることが可能である。例えば、ｍｇｇ法（例えば、佐藤、小野、小林、  「遺伝的アルゴリズムにおける世代交代モデルの提案と評価」、  人工知能学会誌、  ｖｏｌ．１２、Ｎｏ．５、  ｐｐ．７３４−７４４．、  １９９７．）として知られる方法を用いてもよい。
【００３１】
ここで、予め定められた所定の終了条件が満たされたか否かを判断し（ステップＳ５）、満たされなかった場合には、ステップＳ１に戻って、同様の処理を繰り返し行う。
【００３２】
なお、終了条件としては、例えば、繰り返し回数が予め定められた回数に達したこと、当該回と前回の評価結果（例えば、評価関数値）の差分が予め定められた値を下回ったこと、当該回と前回の評価結果（例えば、評価関数値）の変化率が予め定められた値を下回ったこと、これらの各条件の論理和あるいは論理積による組合せなど、種々のものが考えられる。
【００３３】
終了条件が満たされた場合には、処理ループを抜けて、解候補ニューラルネット集合記憶部１０１に記憶されているニューラルネットのうち、最も良い評価結果を持つものを選択する。この選択されたニューラルネットが、本最適化処理により得られたニューラルネットとなる。
【００３４】
ここで、図２の手順において遺伝的アルゴリズムを利用した場合に、１回のループ処理は、例えば、図３のようになる。すなわち、当該回のステップＳ１で解候補ニューラルネット集合記憶部１０１から例えば２個のニューラルネットをランダムに選択して取り出してそれぞれのニューラルネットａ，ｂを符号化ニューラルネットに変換した後、ステップＳ２でそれら符号化ニューラルネットに遺伝的アルゴリズムを適用して例えば４個の新符号化ニューラルネットを生成し、次いでステップＳ３でそれらを復号化して新ニューラルネットｃ〜ｆに逆変換し新ニューラルネット集合記憶部１０８に格納する。次に、ステップＳ４で、新ニューラルネットｃ〜ｆを評価し、次いで、例えばもとの解候補ニューラルネットａ，と新ニューラルネットｃ〜ｆについてそれらの評価結果に基づいて最も良い２つを選択し（例えばニューラルネットｅ，ｆとする）、それらが元のニューラルネット（ａ，ｂ）でなければ、選択したニューラルネットｅ，ｆで元のニューラルネットａ，ｂを更新する。もちろん、これは一例であって、遺伝的アルゴリズムを利用した場合の１回のループ処理としては他にも種々の方法が可能であり、また、遺伝的アルゴリズム以外のアルゴリズムを利用した様々な方法が可能である。
【００３５】
さて、以下では、本実施形態のニューラルネット結合重み最適化装置におけるニューラルネット素子符号化及びニューラルネット素子復号化について具体例を用いつつ説明する。
【００３６】
図４は、図１のニューラルネット結合重み最適化装置のうち解候補ニューラルネット集合記憶部１０１の記憶内容とニューラルネット素子符号化部１０３の処理と符号化ニューラルネット集合記憶部１０４の記憶内容を例示したものである。
【００３７】
前述したように、解候補ニューラルネット集合記憶部１０１には、１つ以上の解候補ニューラルネット（２０１）が、それぞれ評価結果を対応付けられて、格納されている。なお、複数の解候補ニューラルネットが格納されている場合には、全ての解候補ニューラルネットは同じ構造を持つものとする。
【００３８】
図４に例示した解候補ニューラルネット２０１は、３つのネットワーク素子（入力素子）ｉ１〜ｉ３及び１つのバイアス素子から３つのネットワーク素子（中間素子）ｈ１〜ｈ３へそれぞれ結合し、３つのネットワーク素子（中間素子）ｈ１〜ｈ３及び１つのバイアス素子から２つのネットワーク素子（出力素子）ｏ１，ｕへそれぞれ結合する例である。
【００３９】
ニューラルネット素子符号化部１０３では、各々の解候補ニューラルネットについて、当該解候補ニューラルネットの全結合重みを、同一ネットワーク素子に入力している結合重みごとにグループ化し、符号化関数変換（２０３）を行うことにより、符号化ニューラルネットを生成する。例えば、図４の解候補ニューラルネット（２０１）においてネットワーク素子ｕに入力している結合重みのグループ（２０２）に対して、符号化関数変換（２０３）を行うことにより、符号化ニューラルネットのｕに相当する部分（２０４）を生成する。このような処理をすべてのネットワーク素子ｈ１，ｈ２，ｈ３，ｏ１，ｕに対して行って、それらを連結することにより、符号化ニューラルネットを生成する。生成された符号化ニューラルネット（２０５）は、符号化ニューラルネット集合記憶部１０４に格納される。
【００４０】
ここで、符号化関数変換についてより詳しく説明する。
【００４１】
まず、図５に、従来方法による符号化ニューラルネット生成方法（１２０３）を示す。従来方法によれば、全ネットワーク素子に入力される全結合重みをそのまま順番に並べることにより、符号化ニューラルネットを生成する。
【００４２】
例えば、ネットワーク素子ｕ（１２０２）へ入力する結合重みＷｕ，１〜Ｗｕ，ｂをそのまま並べることにより、符号化されたニューラルネットのｕに相当する部分（１２０４）、
｛Ｗｕ，１  Ｗｕ，２  Ｗｕ，３  Ｗｕ，ｂ｝
を生成することになる。他のネットワーク素子ｈ１，ｈ２，ｈ３，ｏ１についても同様である。
【００４３】
そして、各ネットワーク素子ｈ１，ｈ２，ｈ３，ｏ１，ｕにそれぞれ相当する部分、
｛Ｗｈ１，１  Ｗｈ１，２  Ｗｈ１，３  Ｗｈ１，ｂ｝
｛Ｗｈ２，１  Ｗｈ２，２  Ｗｈ２，３  Ｗｈ２，ｂ｝
｛Ｗｈ３，１  Ｗｈ３，２  Ｗｈ３，３  Ｗｈ３，ｂ｝
｛Ｗｏ１，１  Ｗｏ１，２  Ｗｏ１，３  Ｗｏ１，ｂ｝
｛Ｗｕ，１  Ｗｕ，２  Ｗｕ，３  Ｗｕ，ｂ｝
を連結することにより、符号化ニューラルネット、
｛Ｗｈ１，１  Ｗｈ１，２  Ｗｈ１，３  Ｗｈ１，ｂ  Ｗｈ２，１  …  Ｗｏ１，ｂ  Ｗｕ，１  Ｗｕ，２  Ｗｕ，３  Ｗｕ，ｂ｝
を生成する。
【００４４】
従って、例えば、図４の解候補ニューラルネット（２０１）において、ネットワーク素子ｉ１，ｉ２，ｉ３及びバイアス素子からそれぞれネットワーク素子ｈ１へ入力する結合重みは、｛０．１，２．３，３．０，−２．０｝であり、同様に、ネットワーク素子ｈ２へ入力する結合重みは、｛２．３，−１．３，１０．０，１．０｝、ネットワーク素子ｈ３へ入力する結合重みは、｛２．１，２．２，−３．３，−２．０｝であり、また、ネットワーク素子ｈ１，ｈ２，ｈ３及びバイアス素子からそれぞれネットワーク素子ｏ１へ入力する結合重みは、｛−５．１，２．４，−１．０，２．０｝であり、同様に、ネットワーク素子ｕへ入力する結合重みは、｛−０．１，２０．４，−０．８，１．０｝であるとすると、従来方法により得られる符号化ニューラルネットは、
｛０．１，２．３，３．０，−２．０，２．３，−１．３，１０．０，１．０，２．１，２．２，−３．３，−２．０，−５．１，２．４，−１．０，２．０，−０．１，２０．４，−０．８，１．０｝
となる。
【００４５】
次に、図６に、本実施形態における符号化関数変換（２０３）の一例を示す。本例では、各々のネットワーク素子について、当該ネットワーク素子に入力される結合重みの部分集合に含まれる重みのうちバイアス素子との結合重み以外の結合重みベクトルのベクトル長を計算し、結合重みの部分集合の全要素をベクトル長で除したものと当該ベクトル長とを符号として連結することにより、当該ネットワーク素子に対応する部分の符号化ニューラルネットを生成する。
【００４６】
例えば、ネットワーク素子ｕ（２０２）へ入力する結合重みＷｕ，１〜Ｗｕ，ｂのうちＷｕ，１〜Ｗｕ，３をベクトルとしたときのベクトル長Ｌｕ、
Ｌｕ＝（Ｗｕ，１２＋Ｗｕ，２２＋Ｗｕ，３２）１／２ 
を計算し、Ｗｕ，１〜Ｗｕ，ｂをそれぞれＬｕで割って、
ｗｕ，１＝Ｗｕ，１／Ｌｕ
ｗｕ，２＝Ｗｕ，２／Ｌｕ
ｗｕ，３＝Ｗｕ，３／Ｌｕ
ｗｕ，ｂ＝Ｗｕ，ｂ／Ｌｕ
を計算し、ｗｕ，１、ｗｕ，２、ｗｕ，３、ｗｕ，ｂ、Ｌｕを並べることにより、符号化ニューラルネットのｕに相当する部分（２０４）、
｛ｗｕ，１  ｗｕ，２  ｗｕ，３  ｗｕ，ｂ  Ｌｕ｝
を生成する。他のネットワーク素子ｈ１，ｈ２，ｈ３，ｏ１についても同様である。
【００４７】
そして、各ネットワーク素子ｈ１，ｈ２，ｈ３，ｏ１，ｕにそれぞれ相当する部分、
｛ｗｈ１，１  ｗｈ１，２  ｗｈ１，３  ｗｈ１，ｂ  Ｌｈ１｝
｛ｗｈ２，１  ｗｈ２，２  ｗｈ２，３  ｗｈ２，ｂ  Ｌｈ２｝
｛ｗｈ３，１  ｗｈ３，２  ｗｈ３，３  ｗｈ３，ｂ  Ｌｈ３｝
｛ｗｏ１，１  ｗｏ１，２  ｗｏ１，３  ｗｏ１，ｂ  Ｌｏ１｝
｛ｗｕ，１  ｗｕ，２  ｗｕ，３  ｗｕ，ｂ  Ｌｕ｝
を連結することにより、符号化ニューラルネット、
｛ｗｈ１，１  ｗｈ１，２  ｗｈ１，３  ｗｈ１，ｂ  Ｌｈ１  ｗｈ２，１  …  ｗｏ１，ｂ  Ｌｏ１  ｗｕ，１  ｗｕ，２  ｗｕ，３  ｗｕ，ｂ  Ｌｕ｝
を生成する。
【００４８】
従って、例えば、図４の解候補ニューラルネット（２０１）において、上記にて例示した結合重みを持つものすると、本例による符号化関数変換により得られる符号化ニューラルネットは、
｛  ０．０２６４４４２…，  ０．６０８２１８７…，  ０．７９３３２８８…，−０．５２８８８５８…，３．７８１５３４０…，
０．２２２３７０１…，−０．１２５６８７４…，  ０．９６６８２６９…，  ０．０９６６８２６…，１０．３４３１１３…，
０．４６７９３９３…，  ０．４９０２２２１…，−０．７３５３３３２…，−０．４４５６５６５…，４．４８７７６１１…，
−０．８９０９０６１…，  ０．４１９２４９９…，−０．１７４６８７４…，  ０．３４９３７４９…，５．７２４５０８７…，
−０．００４８９８１…，  ０．９９９２１９９…，−０．０３９１８５０…，  ０．０４８９８１３…，２０．４１５９２５…｝
となる。
【００４９】
このようにすることによって、機能的には似ているが加重値は大きく異なるニューラルネット素子を、似た符号ベクトルに変換できるので（例えば、｛１０，２０，３０，−４０｝および｛２０，４０，６０，−８０｝という加重値ベクトルを｛１，２，３，−４，１０｝および｛１，２，３，−４，２０｝というベクトルに変換できる）、各ネットワーク素子の機能上の重複を避けた結合重みパラメータの最適化を行うことができ、高性能な最適化が実現できるようになる。
【００５０】
次に、図７は、図１のニューラルネット結合重み最適化装置のうちニューラルネット復号化部１０７の処理を例示したものである。
【００５１】
前述したように、ニューラルネット素子復号化部１０７は、新符号化ニューラルネットにおける同一素子に対応している符号を同一グループとして扱い所定の逆関数変換を行うことによって新ニューラルネットを生成する。
【００５２】
ここで、逆関数変換についてより詳しく説明する。
【００５３】
図７の例は、新符号化ニューラルネットにおける各ネットワーク素子に相当する符号ベクトルの各々について、当該符号ベクトルのうち長さを表す変数の絶対値をそれ以外の変数に乗ずることにより、当該符号ベクトルに対応する新ニューラルネットの部分を生成する。
【００５４】
例えば、新符号化ニューラルネットのうち素子ｕに対応している符号（３０１）、
｛ｗｕ，１ｎｅｗ  ｗｕ，２ｎｅｗ  ｗｕ，３ｎｅｗ  ｗｕ，ｂｎｅｗ  Ｌｕｎｅｗ｝
については、ベクトルの長さに対応する符号Ｌｕｎｅｗ（Ｌｕｎｅｗは負の値である場合がある）の絶対値｜Ｌｕｎｅｗ｜を取り、Ｌｕｎｅｗ以外の各結合重みに対応する符号Ｗｕ，１ｎｅｗ〜Ｗｕ，ｂｎｅｗにそれぞれ｜Ｌｕｎｅｗ｜を乗じて、
Ｗｕ，１ｎｅｗ  ＝ｗｕ，１ｎｅｗ  ・｜Ｌｕｎｅｗ｜
Ｗｕ，２ｎｅｗ  ＝ｗｕ，２ｎｅｗ  ・｜Ｌｕｎｅｗ｜
Ｗｕ，３ｎｅｗ  ＝ｗｕ，３ｎｅｗ  ・｜Ｌｕｎｅｗ｜
Ｗｕ，ｂｎｅｗ  ＝ｗｕ，ｂｎｅｗ  ・｜Ｌｕｎｅｗ｜
を計算し、新ニューラルネットの素子ｕに入力する結合重み（３０３）、
｛Ｗｕ，１ｎｅｗ  Ｗｕ，２ｎｅｗ  Ｗｕ，３ｎｅｗ  Ｗｕ，ｂｎｅｗ｝
を求める。新符号化ニューラルネットのうち素子ｈ１，ｈ２，ｈ３，ｏ１に対応している符号についてもそれぞれ同様である。
【００５５】
なお、逆関数変換には、種々のバリエーションが考えられる。
【００５６】
例えば、上記ではＬｎｅｗの絶対値をとったが、その代わりに、Ｌｎｅｗが予め定められたしきい値Ｌｔｈ以上である場合には、そのＬｎｅｗを用い、Ｌｎｅｗが予め定められたしきい値Ｌｔｈ未満である場合には、Ｌｎｅｗ＝Ｌｔｈとする方法もある。
【００５７】
また、上記では、新符号化ニューラルネット生成においてＬｎｅｗが負の値になる場合があることを想定したが、その代わりに、図２のステップＳ２において、Ｌｎｅｗが負の値にならないアルゴリズムを採用するか、またはＬｎｅｗが負の値（あるいは０以下）になる場合があるアルゴリズムであってもＬｎｅｗが負の値（あるいは０以下）になったときにはＬｎｅｗを０以上（あるいは正の値）に修正するかまたは当該新符号化ニューラルネットを用いない（破棄する）ようにしてもよい。この場合には、Ｌｎｅｗの絶対値をとるなどの処理が不要になる。
【００５８】
また、上記したものの他にも、符号化関数変換及び逆関数変換には、種々のバリエーションが考えられる。
【００５９】
例えば、上記した符号化関数変換例では、当該ネットワーク素子に入力される結合重みの部分集合に含まれる重み（Ｗ１〜Ｗｎとする）のうちバイアス素子との結合重み以外の結合重み（Ｗ１〜Ｗｔとする）のベクトル長Ｌ（＝（Ｗ１２＋…＋Ｗｔ２）１／２）を計算し、結合重みの部分集合の全要素（Ｗ１〜Ｗｎ）をベクトル長Ｌで除したものと当該ベクトル長とを符号として連結することにより、当該ネットワーク素子に対応する符号化ニューラルネットの部分（Ｗ１／Ｌ，…，Ｗｎ／Ｌ，Ｌ）を生成したが、その代わりに、ベクトル長Ｌをｋ倍し（ただし、ｋ＞０）、全要素Ｗ１〜ＷｎをＬ・ｋで除したものとＬ・ｋとを符号として連結することにより、当該ネットワーク素子に対応する符号化ニューラルネットの部分（Ｗ１／（Ｌ・ｋ），…，Ｗｎ／（Ｌ・ｋ），（Ｌ・ｋ））を生成する方法も可能である。このバリエーションに対応する逆関数変換は、Ｌ・ｋをＬとして扱えば、これまで説明した例と同様である。
【００６０】
また、例えば、ベクトル長Ｌをｋ倍し（ただし、ｋ＞０）、要素Ｗ１〜ＷｔをＬで除したものと、要素Ｗｔ＋１〜ＷｎをＬ・ｋで除したものと、ＬおよびＬ・ｋ（もしくは、Ｌおよびｋ）とを符号として連結することにより、当該ネットワーク素子に対応する符号化ニューラルネットの部分（Ｗ１／Ｌ，…，Ｗｔ／Ｌ，Ｗｔ＋１／（Ｌ・ｋ），…，Ｗｎ／（Ｌ・ｋ），Ｌ，（Ｌ・ｋ））を生成する方法（ベクトル長の部分は、Ｌ，（Ｌ・ｋ）の代わりにＬ，ｋでもよい）も可能である。このバリエーションに対応する逆関数変換は、ＬをＷ１〜Ｗｔに対するＬ、Ｌ・ｋをＷｔ＋１〜Ｗｎに対するＬとして扱えば、これまで説明した例と同様である。
【００６１】
また、例えば、ベクトル長Ｌをｋ１倍し（ただし、ｋ１＞０）、さらにベクトル長Ｌをｋ２倍し（ただし、ｋ２＞０）、要素Ｗ１〜ＷｔをＬ・ｋ１で除したものと、要素Ｗｔ＋１〜ＷｎをＬ・ｋ２で除したものと、Ｌ・ｋ１およびＬ・ｋ２（もしくは、Ｌ、ｋ１およびｋ２）とを符号として連結することにより、当該ネットワーク素子に対応する符号化ニューラルネットの部分（Ｗ１／（Ｌ・ｋ１），…，Ｗｔ／（Ｌ・ｋ１），Ｗｔ＋１／（Ｌ・ｋ２）…，Ｗｎ／（Ｌ・ｋ２），（Ｌ・ｋ１），（Ｌ・ｋ２））を生成する方法（ベクトル長の部分は、（Ｌ・ｋ１），（Ｌ・ｋ２）の代わりにＬ，ｋ１，ｋ２でもよい）も可能である。このバリエーションに対応する逆関数変換は、Ｌ・ｋ１をＷ１〜Ｗｔに対するＬ、Ｌ・ｋ２をＷｔ＋１〜Ｗｎに対するＬとして扱えば、これまで説明した例と同様である。
【００６２】
なお、ｋや、ｋ１及びｋ２は、固定にする方法と、ニューラルネット毎に決定する方法などがある。
【００６３】
もちろん、これらの他にも、符号化関数変換及び逆関数変換には、種々のバリエーションが考えられる。
【００６４】
以上説明してきたように、本実施形態によれば、一般的なモデル評価関数に対してニューラルネットの結合重みを最適化することが可能になる。また、各ネットワーク素子の機能ごとに最適化を行うことができる。
【００６５】
以下では、本実施形態のニューラルネットの結合重み最適化処理による作用・効果について次の例に従って説明する。
【００６６】
図８は、入力素子数１０、中間素子数５、出力素子数１のニューラルネットを例示しており、このネットワークの結合重みベクトルＷ（結合重みの個数＝６１）を最適化する。
【００６７】
図９は、次の最適化の基準となるモデル評価関数ｆに用いるデータ（入力及び教師信号）の一例を示している。
ｆ（Ｗ）＝Σ（ｔ（ｉ）−Ｏ（ｉｎ（ｉ），Ｗ））２
ここで、ｆ（Ｗ）：結合重みＷのネットワークのモデル評価関数値
Ｏ（ｉｎ（ｉ），Ｗ）：ｉｎ（ｉ）が入力されたときのネットワークの出力値である。また、総和を取る範囲は、ｉ＝１〜Ｎである。
なお、この例では、ｆ（Ｗ）が小さいネットワークほど、好ましいネットワークであると評価される。
なお、図４の例のように出力素子が複数ある場合には、例えば、各出力素子に対するモデル評価関数値ｆ（Ｗ）の総和をとればよい。
【００６８】
図１０と図１１に、図９のモデル評価関数を用い且つ新符号化ニューラルネット生成部１０５においてｂｌｘ法を用い且つ新ニューラルネット評価・選択部１０９においてｍｇｇ法を用いた場合における、本実施形態の図６及び図７の方法による最適化結果（Ｃ１，Ｃ３）と、図５の従来方法による最適化結果（Ｃ２，Ｃ４）とを示す。
【００６９】
図１０と図１１の横軸は、図２の手順のループ処理の反復回数であり、図１０の縦軸は、モデル評価関数値の変化を示し、図１１の縦軸は、図９のデータに関する分類精度の変化を示す。
【００７０】
図１０及び図１１から、本実施形態の最適化結果の方が優れていることが明らかである。
【００７１】
このように本実施形態によれば、ニューラルネット全結合重みを同一素子に入力しているグループごとに分け、それぞれのグループに符号化関数変換を行うことで、ニューラルネットの各素子ごとに独立に最適化を行うことができるので、従来手法と比較して効率的な結合重みの最適化を行うことができる。
【００７２】
なお、以上の各機能は、ソフトウェアとして実現可能である。
また、本実施形態は、コンピュータに所定の手段を実行させるための（あるいはコンピュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現させるための）プログラムとして実施することもでき、該プログラムを記録したコンピュータ読取り可能な記録媒体として実施することもできる。
【００７３】
なお、この発明の実施の形態で例示した構成は一例であって、それ以外の構成を排除する趣旨のものではなく、例示した構成の一部を他のもので置き換えたり、例示した構成の一部を省いたり、例示した構成に別の機能あるいは要素を付加したり、それらを組み合わせたりすることなどによって得られる別の構成も可能である。また、例示した構成と論理的に等価な別の構成、例示した構成と論理的に等価な部分を含む別の構成、例示した構成の要部と論理的に等価な別の構成なども可能である。また、例示した構成と同一もしくは類似の目的を達成する別の構成、例示した構成と同一もしくは類似の効果を奏する別の構成なども可能である。
また、この発明の実施の形態で例示した各種構成部分についての各種バリエーションは、適宜組み合わせて実施することが可能である。
また、この発明の実施の形態は、装置全体としての発明、装置内部の構成部分についての発明、またはそれらに対応する方法の発明等、種々の観点、段階、概念またはカテゴリに係る発明を包含・内在するものである。
従って、この発明の実施の形態に開示した内容からは、例示した構成に限定されることなく発明を抽出することができるものである。
【００７４】
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
【００７５】
【発明の効果】
本発明によれば、一般的なモデル評価関数に基づくニューラルネットの結合重みの最適化として従来よりも優れた最適化が可能になる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係るニューラルネット結合重み最適化装置の構成例を示す図
【図２】同実施形態に係るニューラルネット結合重み最適化装置の処理手順の一例を示すフローチャート
【図３】同実施形態に係るニューラルネット結合重み最適化装置の処理手順について説明するための図
【図４】同実施形態に係るニューラルネット結合重み最適化装置のニューラルネット素子符号化部の処理について説明するための図
【図５】従来方法における符号化関数変換について説明するための図
【図６】同実施形態に係るニューラルネット結合重み最適化装置における符号化関数変換について説明するための図
【図７】同実施形態に係るニューラルネット結合重み最適化装置における逆関数変換について説明するための図
【図８】解候補ニューラルネットの構造例を示す図
【図９】最適化の基準となるモデル評価関数の一例を示す図
【図１０】最適化結果の一例を従来方法と比較して説明するための図
【図１１】最適化結果の一例を従来方法と比較して説明するための図
【符号の説明】
１０１…解候補ニューラルネット集合記憶部
１０２…モデル評価関数記憶部
１０３…ニューラルネット素子符号化部
１０４…符号化ニューラルネット集合記憶部
１０５…新符号化ニューラルネット生成部
１０６…新符号化ニューラルネット集合記憶部
１０７…ニューラルネット素子復号化部
１０８…新ニューラルネット集合記憶部
１０９…新ニューラルネット評価・選択部
【図１】
0003631443.tif 000002
【図２】
0003631443.tif 000003
【図３】
0003631443.tif 000004
【図４】
0003631443.tif 000005
【図５】
0003631443.tif 000006
【図６】
0003631443.tif 000007
【図７】
0003631443.tif 000008
【図８】
0003631443.tif 000009
【図９】
0003631443.tif 000010
【図１０】
0003631443.tif 000011
【図１１】
0003631443.tif 000012