(57)【要約】【課題】  ネットワーク開発プロセスを自動化し、また、人工ニューラルネットワーク技術が用いられ得るハードウェアプラットフォームを増やす。【解決手段】  ニューラルネットワーク開発およびデータ解析ツールは、拡張マークアップ言語などのスクリプトプログラミング言語またはプロジェクト「ウィザード」の利用を介した、著しく単純化されたネットワーク開発を提供する。システムはまた、三次元ビュー、スケルトン化および様々な出力モジュールオプションを含む、訓練された人工ニューラルネットワークの解析および利用のための様々な分析ツールを提供する。システムはまた、システムによって訓練されているネットワークの自律的評価の可能性と、提供されたデータの所定のセットのための最適なネットワーク特性の決定とを提供する。【選択図】  図５
2008533615.tif 000002
【特許請求の範囲】
【請求項１】
訓練されていない人工ニューラルネットワークを訓練するためのスクリプト化訓練命令およびパラメータのユーザ決定セットを含むニューラルネットワークトレーナであって、前記スクリプト化訓練命令およびパラメータセットが、スクリプト言語によって指定されるニューラルネットワークトレーナ。
【請求項２】
前記スクリプト言語が拡張マークアップ言語である、請求項１に記載のニューラルネットワークトレーナ。
【請求項３】
前記スクリプト化訓練命令およびパラメータセットを生成するために動作可能な訓練ウィザードをさらに含む、請求項１に記載のニューラルネットワークトレーナ。
【請求項４】
第１の層および少なくとも１つの続く層を含む人工ニューラルネットワークであって、各前記層が少なくとも１つのニューロンをさらに含み、
前記層のいずれかにおける各前記ニューロンが、任意の続く層における前記ニューロンの少なくとも１つに結合され、各前記結合が、重み値と関連している人工ニューラルネットワークと、
前記人工ニューラルネットワークの三次元表現と、
を含む人工ニューラルネットワークに基づくデータ解析システム。
【請求項５】
前記人工ニューラルネットワークの前記三次元表現の二次元解釈を有する表示モードをさらに含み、前記人工ニューラルネットワークの前記二次元解釈が、複数の視点から見られるように操作可能である、請求項４に記載のニューラルネットワークトレーナ。
【請求項６】
前記第１の層における各ニューロンと前記続く層における前記ニューロンとの間の前記結合を分離して、前記結合に関連する前記重み値の大きさを決定することができる、請求項４に記載のニューラルネットワークトレーナ。
【請求項７】
前記人工ニューラルネットワークの前記三次元表現が、各前記ニューロンに対応する表示ノードをさらに含み、
各前記ニューロンが、前記人工ニューラルネットワークの前記三次元表現内の前記対応する表示ノードを選択することによって、解析のために分離され得る、請求項４に記載のニューラルネットワークトレーナ。
【請求項８】
各前記結合に関連する前記重み値の前記大きさに基づいて、前記結合のいずれかを選択的に除去するための手段をさらに含む、請求項６に記載のニューラルネットワークトレーナ。
【請求項９】
結合を選択的に除去するための前記手段が、より大きな相対的大きさの重み値を有する結合を除去する前に、より小さな相対的大きさの重み値を有する結合を除去する、請求項８に記載のニューラルネットワークトレーナ。
【請求項１０】
結合を選択的に除去するための前記手段がスライダを含む、請求項８に記載のニューラルネットワークトレーナ。
【請求項１１】
前記人工ニューラルネットワークの前記三次元表現が、
各前記ニューロンに対応する表示ノードと、
各前記結合に対応する表示線と、
を含み、
前記除去された結合に対応する前記表示線が、前記人工ニューラルネットワークの前記三次元表現から削除される、請求項９に記載のニューラルネットワークトレーナ。
【請求項１２】
前記人工ニューラルネットワークの前記三次元表現が、
各前記ニューロンに対応する表示ノードと、
各前記結合に対応する表示線と、
を含み、
各前記表示線が、前記対応する結合に関連する前記重み値の大きさおよび算術符号に基づいて色分けされる、請求項４に記載のニューラルネットワークトレーナ。
【請求項１３】
前記対応する結合が正の重みと関連している場合には、各前記表示線が第１の色でコード化され、前記対応する結合が負の重みと関連している場合には、各前記表示線が第２の色でコード化される、請求項１２に記載のニューラルネットワークトレーナ。
【請求項１４】
第１の層および少なくとも１つの続く層を含む人工ニューラルネットワークであって、各前記層が少なくとも１つのニューロンをさらに含む人工ニューラルネットワークと、
各前記第１の層のニューロンを分離し、前記第１の層のニューロンへの入力値を修正して、前記続く層の１つにおける関連する変化を直接観察するための手段と、
を含むニューラルネットワークトレーナ。
【請求項１５】
各前記第１の層のニューロンへの前記入力値を修正するための前記手段がスライダである、請求項１４に記載のニューラルネットワークトレーナ。
【請求項１６】
前記入力値が、前記人工ニューラルネットワークの訓練中に修正可能である、請求項１４に記載のニューラルネットワークトレーナ。
【請求項１７】
前記入力値が、前記人工ニューラルネットワークの訓練後に修正可能である、請求項１４に記載のニューラルネットワークトレーナ。
【請求項１８】
前記人工ニューラルネットワークが、第１の層および少なくとも１つの続く層であって、各前記層が、少なくとも１つのニューロンをさらに含み、
前記層のいずれかにおける各前記ニューロンが、任意の続く層における前記ニューロンの少なくとも１つに結合され、各前記結合が、重み値と関連している第１の層および少なくとも１つの続く層
を含み、
前記訓練された人工ニューラルネットワークの前記結合重みを、プログラミング言語で表現された人工ニューラルネットワークに翻訳するように動作する第１のプログラム機能をさらに含む、請求項１に記載のニューラルネットワークトレーナ。
【請求項１９】
前記プログラミング言語が、Ｃ、Ｃ＋＋、ジャバ（Ｊａｖａ（商標））、マイクロソフト（Ｍｉｃｒｏｓｏｆｔ（登録商標））ビジュアルベーシック（Ｖｉｓｕａｌ  Ｂａｓｉｃ（登録商標））、ＶＢＡ、ＡＳＰ、ジャバスクリプト（Ｊａｖａｓｃｒｉｐｔ（商標））、フォートラン（Ｆｏｒｔｒａｎ）、ＭＡＴＬＡＢファイル、およびハードウェアターゲット用のソフトウェアモジュールからなる群から選択される、請求項１８に記載のニューラルネットワークトレーナ。
【請求項２０】
訓練されていない人工ニューラルネットワークと、
前記訓練されていない人工ニューラルネットワークを訓練するための訓練命令およびパラメータセットと、
前記訓練された人工ニューラルネットワークをスプレッドシートフォーマットに変換するように動作するプログラム機能と、
を含むニューラルネットワークトレーナ。
【請求項２１】
前記第２のプログラム機能が、スプレッドシートプログラムへの前記訓練された人工ニューラルネットワークを、前記訓練されたニューラルネットワークをスクリプト言語に翻訳することと、前記翻訳された人工ニューラルネットワークを前記スプレッドシートに関連するマクロ空間へ転送することとによって転送する、請求項２０に記載のニューラルネットワークトレーナ。
【請求項２２】
前記第２のプログラムが、スプレッドシートプログラムへの前記訓練された人工ニューラルネットワークを、前記訓練された人工ニューラルネットワークを前記スプレッドシートプログラム内の一連の相互接続セルに翻訳することによって転送する、請求項２０に記載のニューラルネットワークトレーナ。
【請求項２３】
入力パターンセットと、前記入力パターンセットを前記訓練された人工ニューラルネットワークにバッチ方式で入力するように動作する第３のプログラム機能とをさらに含む、請求項１に記載のニューラルネットワークトレーナ。
【請求項２４】
少なくとも第１の層および少なくとも１つの続く層を含む訓練されていない人工ニューラルネットワークであって、各前記層が、少なくとも１つのニューロンをさらに含み、前記層のいずれかにおける各前記ニューロンが、任意の続く層における前記ニューロンの少なくとも１つと結合され、前記人工ニューラルネットワークが、少なくとも１つの入力パターンが前記第１の人工ニューラルネットワークに供給された場合に、少なくとも１つの出力パターンを生成するように動作する訓練されていない人工ニューラルネットワークと、
前記第１の人工ニューラルネットワークを訓練するためのユーザ決定スクリプト化訓練命令およびパラメータセットであって、スクリプト言語によって指定される訓練命令およびパラメータセットと、
を含む人工ニューラルネットワークに基づくデータ解析システム。
【請求項２５】
前記スクリプト言語が拡張マークアップ言語である、請求項２４に記載のシステム。
【請求項２６】
前記スクリプト化訓練命令およびパラメータセットを生成するように動作可能な訓練ウィザードをさらに含む、請求項２４に記載のシステム。
【請求項２７】
前記人工ニューラルネットワークの三次元表現をさらに含む、請求項２４に記載のシステム。
【請求項２８】
前記人工ニューラルネットワークの前記三次元表現が、複数の視点から見られるように操作可能な表示モードをさらに含む、請求項２７に記載のシステム。
【請求項２９】
各前記結合が重み値を有し、
各前記ニューロン間の前記結合を分離して、前記重み値の大きさおよび算術符号を決定することができる、請求項２７に記載のシステム。
【請求項３０】
各前記結合に関連する前記重み値の前記大きさに基づいて、前記結合のいずれかを選択的に除去するための手段をさらに含む、請求項２９に記載のシステム。
【請求項３１】
結合を選択的に除去するための前記手段が、より大きな相対的大きさの重み値を有する結合を除去する前に、より小さな相対的大きさの重み値を有する結合を除去する、請求項３０に記載のシステム。
【請求項３２】
結合を選択的に除去するための前記手段がスライダを含む、請求項３０に記載のシステム。
【請求項３３】
前記人工ニューラルネットワークの前記三次元表現が、
各前記ニューロンに対応する表示ノードと、
各前記結合に対応する表示線と、
を含み、
前記除去された結合に対応する前記表示線が、前記人工ニューラルネットワークの前記三次元表現から削除される、請求項３０に記載のシステム。
【請求項３４】
前記人工ニューラルネットワークの前記三次元表現が、
各前記ニューロンに対応する表示ノードと、
各前記結合に対応する表示線と、
を含み、
各前記表示線が、前記対応する結合に関連する前記重み値に基づいて色分けされる、請求項３０に記載のシステム。
【請求項３５】
前記対応する結合が正の算術符号を有する重み値と関連している場合には、各前記表示線が第１の色でコード化され、前記対応する結合が負の算術符号を有する重み値と関連している場合には、各前記表示線が第２の色でコード化される、請求項３４に記載のシステム。
【請求項３６】
各第１の層のニューロンを分離して変化させ、かつ前記第１の層のニューロンへの入力値を修正して、任意の続く層における関連する変化を直接観察するための手段をさらに含む、請求項２４に記載のシステム。
【請求項３７】
各第１の層のニューロンへの入力値を分離および変更するための前記手段がスライダである、請求項３６に記載のシステム。
【請求項３８】
前記入力値が、前記人工ニューラルネットワークの訓練中に修正可能である、請求項３６に記載のシステム。
【請求項３９】
前記入力値が、前記人工ニューラルネットワークの訓練後に修正可能である、請求項３６に記載のシステム。
【請求項４０】
前記訓練された人工ニューラルネットワークの前記結合重み値を、コンピュータ言語で表現された人工ニューラルネットワークモジュールに翻訳するように動作する第１のプログラム機能をさらに含む、請求項２４に記載のシステム。
【請求項４１】
前記プログラミング言語が、Ｃ、Ｃ＋＋、ジャバ（Ｊａｖａ（商標））、マイクロソフト（Ｍｉｃｒｏｓｏｆｔ（登録商標））ビジュアルベーシック（Ｖｉｓｕａｌ  Ｂａｓｉｃ（登録商標））、ＶＢＡ、ＡＳＰ、ジャバスクリプト（Ｊａｖａｓｃｒｉｐｔ（商標））、フォートラン（Ｆｏｒｔｒａｎ）、ＭＡＴＬＡＢファイル、およびハードウェアターゲット用のソフトウェアモジュールからなる群から選択される、請求項２４に記載のシステム。
【請求項４２】
前記訓練された人工ニューラルネットワークをスプレッドシートフォーマットに変換するように動作する第２のプログラム機能をさらに含む、請求項２４に記載のシステム。
【請求項４３】
前記第２のプログラム機能が、スプレッドシートプログラムへの前記訓練された人工ニューラルネットワークを、前記訓練されたニューラルネットワークをスクリプト言語に翻訳することと、前記翻訳された人工ニューラルネットワークを前記スプレッドシートに関連するマクロ空間へ転送することとによって転送する、請求項４２に記載のニューラルネットワークトレーナ。
【請求項４４】
前記第２のプログラムが、スプレッドシートプログラムへの前記訓練された人工ニューラルネットワークを、前記訓練された人工ニューラルネットワークを前記スプレッドシートプログラム内の一連の相互接続セルに翻訳することによって転送する、請求項４２に記載のシステム。
【請求項４５】
前記入力パターンセットを前記訓練された人工ニューラルネットワークにバッチ方式で入力するように動作する第３のプログラム機能をさらに含む、請求項２４に記載のシステム。
【請求項４６】
少なくとも１つの事前に訓練された人工ニューラルネットワークおよびメモリをさらに含み、前記事前に訓練された人工ニューラルネットワークが、前記メモリに格納され、前記システムへの導入およびその内部での利用が可能である、請求項２４に記載のシステム。
【請求項４７】
提案された、訓練されていない人工ニューラルネットワークを構築するように動作するシステムアルゴリズムと、
訓練入力パターンおよび対応する訓練出力パターンの少なくとも１つのペアを含む少なくとも１つの訓練ファイル、ならびに前記訓練ファイルの表現と、
を含む人工ニューラルネットワークに基づくデータ解析システムであって、
前記訓練されていない人工ニューラルネットワークの構築および訓練が、前記訓練ファイルの前記表現を選択することによって開始される人工ニューラルネットワークに基づくデータ解析システム。
【請求項４８】
訓練入力パターンおよび対応する訓練出力パターンの少なくとも第１のペアと、
第１の訓練されていない人工ニューラルネットワークと、
第２の自己連想人工ニューラルネットワークであって、デルタ値を生成し、かつ前記第１の人工ニューラルネットワークに関連する学習率を計算するように動作する第２の人工ニューラルネットワークと、
を含むニューラルネットワークトレーナであって、
前記デルタ値が新規メトリックを表わすニューラルネットワークトレーナ。
【請求項４９】
前記第２の自己連想人工ニューラルネットワークが、前記訓練入力パターンが前記第２のニューラルネットワークに供給された場合に、実際の出力パターンを生成するように動作し、
前記デルタ値が、前記訓練出力パターンと前記実際の出力パターンとの間の差に比例し、
前記新規メトリックが、前記訓練入力パターンに関連し、前記第１の人工ニューラルネットワークのための前記学習率が、前記新規メトリックに比例して調節される、請求項４８に記載のシステム。
【請求項５０】
第２の訓練入力および対応する第２の訓練出力を含む少なくとも第１の組み合わせ入力パターンをさらに含み、
前記第２の自己連想人工ニューラルネットワークが、前記組み合わせ入力パターンが前記第２のニューラルネットワークに供給された場合に、実際の組み合わせ出力を生成するように動作し、前記実際の組み合わせ出力が、実際の入力および対応する実際の出力を含み、
前記デルタ値が、前記組み合わせ入力パターンと前記実際の組み合わせ出力との間の差に比例し、
前記新規メトリックが、前記実際の組み合わせ出力に関連し、前記第１の人工ニューラルネットワークのための前記学習率が、前記新規メトリックに比例して調節される、請求項４８に記載のシステム。
【請求項５１】
指定された新規閾値をさらに含み、
前記新規メトリックが前記指定された新規閾値を超える場合には、前記第２の人工ニューラルネットワークが、前記ペアを拒否する、請求項４８に記載のシステム。
【請求項５２】
前記第２の人工ニューラルネットワークが、前記第１の人工ニューラルネットワークと共に訓練されている、請求項４８に記載のシステム。
【請求項５３】
訓練入力および対応する訓練出力の少なくとも第１のペアと、
少なくとも１つの入力が、前記第１の人工ニューラルネットワークに供給された場合に、少なくとも１つの出力を生成するように動作する第１の訓練されていない人工ニューラルネットワークと、
比較部であって、前記訓練入力パターンが第１の人工ニューラルネットワークに供給された結果として、前記第１の人工ニューラルネットワークによって生成された実際の出力パターンを、前記対応する訓練出力と比較し、前記実際の出力と前記対応する訓練出力との比較に基づいて、出力誤差を生成するようにさらに動作し、前記第１の人工ニューラルネットワークに関連する学習率および運動量を決定するように動作する比較部と、
を含む人工ニューラルネットワークに基づくデータ解析システムであって、
前記第１の人工ニューラルネットワークのための前記学習率および運動量が、前記出力誤差に比例して調節される人工ニューラルネットワークに基づくデータ解析システム。
【請求項５４】
前記比較部が、第２の自己連想人工ニューラルネットワークを含み、前記第２の人工ニューラルネットワークが、前記第１の人工ニューラルネットワークと共に訓練される、請求項５３に記載のシステム。
【請求項５５】
訓練入力パターンおよび対応する訓練出力パターンの少なくとも第１のペアと、
第１の訓練されていない人工ニューラルネットワークと、
前記システムに関連し、第１の人工ニューラルネットワークのためのアーキテクチャ、学習率および運動量をランダムにまたは系統的に生成するように動作する第１のアルゴリズムと、
少なくとも第２の訓練されていない人工ニューラルネットワークであって、前記第１の人工ニューラルネットワークと同時にまたはその後に続いて訓練される第２のニューラルネットワークと、
前記第２の人工ニューラルネットワークに関連する第２のアーキテクチャ、学習率および第２の運動量であって、前記第１のアルゴリズムによってランダムにまたは系統的に生成されるアーキテクチャ、学習率およびに運動量と、
前記訓練入力パターンがどちらかの前記人工ニューラルネットワークに供給された結果として、前記人工ニューラルネットワークのどちらかによって生成された実際の出力パターンを、前記対応する訓練出力パターンと比較するように動作し、累積学習誤差の計算に基づいて出力誤差を生成するようにさらに動作する比較器アルゴリズムと、
前記第１および第２の人工ニューラルネットワークに関連する前記アーキテクチャ、学習率、運動量および学習誤差を受信し、それらで訓練されるように動作する第３の人工ニューラルネットワークと、
前記第３の人工ニューラルネットワークへの入力を変更して、前記第３の人工ニューラルネットワークの関連出力を観察し、最適ネットワークアーキテクチャおよび最適学習パラメータセットを識別するための手段と、
を含む人工ニューラルネットワークに基づくデータ解析システム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２００５年３月１４日出願の仮特許出願第６０／６６１，３６９号の優先権を主張する。
【０００２】
発明の技術分野
本発明は、一般的に人工ニューラルネットワークの分野に関し、特に人工ニューラルネットワークおよびデータ解析ツールを開発するためのシステムに関する。
【背景技術】
【０００３】
発明の背景
ニューラルネットワークは、自律的にコンピュータプログラムを書くために自身を相互結合した「スイッチ」の集まりである。コンピュータコード内に典型的に存在する「ｉｆ−ｔｈｅｎ−ｅｌｓｅ」論理の全てを供給するのではなく、入力および所望のプログラム出力の例示的なセットだけが供給される。コンピュータアルゴリズムがこれらの「訓練手本」をネットワークに素早く示すと、訓練アルゴリズムが、全体的なニューラルネットワークモデルの精度を妨げているスイッチ間リンクを修正するので、相互結合の全ては、いわば数学的に「たたかれる」。したがって、統計学者が、ライン、多項式、サインおよびコサインのような周期関数またはウェーブレットなど、モデルシステムに対して適切な基底関数を入念に選択してもよいが、人工ニューラルネットワークは、どのように問題をモデル化するかの先入観なしに開始する。代わりに、それは、正確なモデルに到達するように数学的に強制されることによって、手元の問題のための最も適切なフィッティング関数を生成するように、内部的に自己組織化する。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
人工ニューラルネットワークは、通常、アルゴリズム的に訓練および実行される。これらの技術は、かかるアルゴリズム用の訓練および／またはインプリメンテーションソフトウェアの開発に多くの時間を費やすことができるニューラルネットワーク専門家の技能を必要とした。この事実ゆえに、これらのネットワークを開発するための十分な資源を有する専門家の比較的限られたグループを除く全てに対して、人工ニューラルネットワークの利用可能性は、大方排除される。訓練されたニューラルネットワークで、スクリプト言語、特に拡張マークアップ言語を用いる例があるが、研究者は、かかるプログラミングツールを用いてニューラルネットワークを実際に訓練することができなかった。
【０００５】
したがって、ネットワーク開発プロセスを自動化し、かつ人工ニューラルネットワーク技術が用いられ得るハードウェアプラットフォームを増やすことによってニューラルネットワーク技術を「民主化」するシステムを開発することは、有利であろう。
【０００６】
本発明は、上述の問題の１つまたは複数を克服することに関する。
【課題を解決するための手段】
【０００７】
発明の概要
本発明の一態様は、一般に、スクリプト化ニューラルネットワーク訓練を利用してニューラルネットワークアーキテクチャ、訓練手順および出力ファイルフォーマットを指定するニューラルネットワークに基づくデータ解析ツールに関する。
【０００８】
本発明の別の態様は、自己訓練人工ニューラルネットワークオブジェクトまたはＳＴＡＮＮＯを利用するニューラルネットワークに基づくデータ解析ツールに関する。
【０００９】
本発明の別の態様は、ニューラルネットワークに基づくデータ解析ツール、すなわち仮想現実内の三次元ニューラルネットワークの視覚化を提供して、ユーザが、全体としてニューラルネットワークを見るかまたは任意の角度からズームして、ニューロンの内部詳細およびそれらの相互結合の両方を検査できるようにするニューラルネットワークに基づくデータ解析ツールに関する。
【００１０】
本発明の別の態様は、個別モデル出力を分離し、かつ一連の簡単なマウスクリックを通して、その出力に影響を及ぼす非常に重要な入力要素およびスキーマを明らかにする能力を提供するニューラルネットワークに基づくデータ解析ツールに関する。
【００１１】
本発明の別の態様は、相対参照および常駐スプレッドシート関数を通してニューロンが共に結ばれるスプレッドシートフォーマットにおいて人工ニューラルネットワークを生成する能力を提供するニューラルネットワークに基づくデータ解析ツールに関する。
【００１２】
本発明の別の態様は、目標探索アルゴリズムを用いて、ニューラルネットワークアーキテクチャの最適化をもたらすニューラルネットワークに基づくデータ解析ツールに関するが、この場合には、「マスタ」ニューラルネットワークモデルが、アーキテクチャおよび学習パラメータに基づいて精度を予測するために、素早く生成される。
【００１３】
本発明の上記の態様によれば、訓練されていない人工ニューラルネットワークを訓練するためのスクリプト化訓練命令およびパラメータのユーザ決定セットを含むニューラルネットワークトレーナが提供されるが、スクリプト化訓練命令およびパラメータは、スクリプト言語によって指定される。
【００１４】
別の態様によれば、人工ニューラルネットワークに基づくデータ解析システムが提供されるが、このシステムには、第１の層および少なくとも１つの続く層を有する人工ニューラルネットワークであって、層のそれぞれが、少なくとも１つのニューロンを有し、層のいずれかにおける各ニューロンが、任意の続く層における少なくとも１つのニューロンと結合され、各結合が重み値を有する人工ニューラルネットワークと、人工ニューラルネットワークの三次元表現と、が含まれる。
【００１５】
別の態様によれば、ニューラルネットワークトレーナが提供されるが、このトレーナには、第１の層および少なくとも１つの続く層を有する人工ニューラルネットワークであって、各層が少なくとも１つのニューロンを有する人工ニューラルネットワークと、第１の層のニューロンのそれぞれを分離するための、かつこれらの第１の層のニューロンへの入力値を修正して、続く層における関連する変化を直接観察するための手段と、が含まれる。
【００１６】
本発明のさらに別の態様によれば、ニューラルネットワークトレーナが提供されるが、このトレーナには、人工ニューラルネットワークと、人工ニューラルネットワークを訓練するための訓練命令およびパラメータセットと、訓練された人工ニューラルネットワークをスプレッドシートフォーマットに変換するプログラム機能と、が含まれる。
【００１７】
別の態様によれば、提案された、訓練されていない人工ニューラルネットワークを構築するシステムアルゴリズムと、訓練入力パターンおよび対応する訓練出力パターンの少なくとも１つのペアを有する少なくとも１つの訓練ファイルならびに訓練ファイルの表現と、を含む人工ニューラルネットワークに基づくデータ解析システムであって、訓練されていない人工ニューラルネットワークの構築および訓練が、前記訓練ファイルの前記表現を選択することによって開始される人工ニューラルネットワークに基づくデータ解析システムが提供される。
【００１８】
別の態様によれば、訓練入力パターンおよび対応する訓練出力パターンの少なくとも第１のペアと、第１の訓練されていない人工ニューラルネットワークと、デルタ値を生成し、かつ第１の人工ニューラルネットワークに関連する学習率を計算する第２の自己連想人工ニューラルネットワークとを含むニューラルネットワークトレーナであって、デルタ値が新規メトリックを表わすニューラルネットワークトレーナが提供される。
【００１９】
さらに別の態様によれば、訓練入力および対応する訓練出力の少なくとも第１のペアと、少なくとも１つの入力が第１の人工ニューラルネットワークに供給された場合に、少なくとも１つの出力を生成する第１の訓練されていない人工ニューラルネットワークと、前記訓練入力パターンが第１の人工ニューラルネットワークに供給された結果として、第１の人工ニューラルネットワークによって生成された実際の出力パターンを、対応する訓練出力と比較し、その比較に基づいた出力誤差を生成し、かつ第１の人工ニューラルネットワークに関連する学習率と運動量を決定する比較部と、を含む人工ニューラルネットワークに基づくデータ解析システムであって、第１の人工ニューラルネットワークのための学習率および運動量が、出力誤差に比例して調節される人工ニューラルネットワークに基づくデータ解析システムが提供される。
【００２０】
本発明の別の態様によれば、人工ニューラルネットワークに基づくデータ解析システムが提供されるが、このシステムには、訓練入力パターンおよび対応する訓練出力パターンの少なくとも第１のペアと、第１の訓練されていない人工ニューラルネットワークと、第１の人工ニューラルネットワークのためのアーキテクチャ、学習率および運動量をランダムにまたは系統的に生成する第１のアルゴリズムと、第１の人工ニューラルネットワークとほぼ同時にまたはその後に続いて訓練される少なくとも第２の訓練されていない人工ニューラルネットワークと、第１のアルゴリズムによってランダムにまたは系統的に生成される、第２の人工ニューラルネットワークに関連する第２のアーキテクチャ、学習率、および第２の運動量と、訓練入力パターンがどちらかのネットワークに供給された結果として、ネットワークのどちらかによって生成された実際の出力パターンを対応する訓練出力パターンと比較し、かつ累積学習誤差の計算に基づいて出力誤差を生成する比較器アルゴリズムと、第１および第２の人工ニューラルネットワークに関連するアーキテクチャ、学習率、運動量、および学習誤差を受信し、それらで訓練される第３の人工ニューラルネットワークと、第３の人工ニューラルネットワークの関連出力を観察するために、第３の人工ニューラルネットワークへの入力を変更して、最適ネットワークアーキテクチャおよび最適学習パラメータセットを識別するための手段と、が含まれる。
【００２１】
これらの態様は、本発明に関連する非常に多くの態様の単なる例証であり、決して限定的なものとして考えるべきでない。本発明のこれらや他の態様、特徴および利点は、参考図面と関連して理解されるならば、以下の詳細な説明から明らかになるであろう。
【００２２】
ここで、本発明を実施するための既知の最良の形態を示す図面を参照するが、図面では、同じ参照数字は、いくつかの図の全体にわたって、同じかまたは類似の部分を示す。
【発明を実施するための最良の形態】
【００２３】
詳細な説明
以下の詳細な説明において、多くの特定の詳細は、本発明の完全な理解を提供するために述べられている。しかしながら、本発明がこれらの特定の詳細なしに実施可能であることを、当業者は理解されよう。たとえば、周知の方法、手順および構成要素は、本発明を曖昧にしないために、詳細には説明しなかった。
【００２４】
以下では、ニューラルネットワークなる用語が用いられる場合には、それは、ニューラルネットワークの主力であり、かつこのプロダクトの基盤である多層パーセプトロン（ＭＬＰ）と呼ばれる特定のパラダイムを指す。ＭＬＰは、３層以上のスイッチまたはニューロンを有するニューラルネットワークである。任意の所定の層内の各ニューロンは、続く層の内部の全てのニューロンと結合する。かかる結合は、従来の回帰の当てはめにおける重み係数に等しいが、モデルが所望のレベルの精度を達成するまで、訓練アルゴリズムの動作を通して繰り返し調節される。
【００２５】
本発明の一実施形態は、経験を積んだニューラルネットワーク専門家と同様に、初心者が使用可能なスクリプトベースのニューラルネットワークトレーナである。ユーザは、訓練されたニューラルネットワークの系図としての役割が後で可能な拡張マークアップ言語（ＸＭＬ）スクリプトを用いて、訓練セッションをセットアップする。システムは、ニューラルネットワークモデルの開発においてなされた全ての設計選択および作成された訓練パラメータの永久的記録を提供する。さらに、訓練に関して、何かの困難に遭遇した場合には、ＸＭＬスクリプトおよび必ずではないがユーザの独自データを、診断のために、第三者の技術サポート要員によって解析することができる。
【００２６】
システムはまた、ネットワークの三次元仮想現実モデルを生成することによって、何千〜何百万の入力および出力を有する大規模ニューラルネットワークモデルの訓練に伴うほとんどの視覚化問題を解決する。ネットワークをその全体において調査するために、ユーザは、マウスおよび／またはキーボードコマンドを用いて、ネットワーク中を「飛び回る」。一連のブックマークを設定することによって、オペレータは、ニューラルアーキテクチャ内のキーポイントに素早く戻ってもよい。さらに、単純なマウス動作を用いて、ネット内で、それほど重要でない結合重みを取り除いて、不可欠な入力要素およびスキーマ（すなわち基礎をなす論理）を明らかにしてもよい。
【００２７】
システムによってまた、ユーザは、訓練の最中でさえ、ネットワークモデルに問い合わせることが可能になる。各モデル入力に対応する一連のスライダ制御部を表示するビューを用いることにより、各スライダを手動で調節して、ネットワーク出力のそれぞれに対する効果を直接観察してもよい。この技術を用いて、モデル内のあるスイートスポットを探索するか、または感度解析を実行してもよい。
【００２８】
ユーザには、訓練されたニューラルネットワークのバッチファイル処理か、または自身の訓練されたニューラルネットワークを広範囲なフォーマットおよびコンピュータ言語へエクスポートするかのオプションがあるが、これらのフォーマットおよび言語には、Ｃ、Ｃ＋＋、ビジュアルベーシック（Ｖｉｓｕａｌ  Ｂａｓｉｃ（登録商標））、ＶＢＡ、ＡＳＰ、ジャバ（Ｊａｖａ（商標））、ジャバスクリプト（Ｊａｖａｓｃｒｉｐｔ（商標））、フォートラン（Ｆｏｒｔｒａｎ）７７およびフォートラン（Ｆｏｒｔｒａｎ）９０、ＭａｔＬａｂ（商標）  Ｍ−ｆｉｌｅ、ＭａｔＬａｂ  Ｓ−ｆｉｌｅ、他のＭａｔＬａｂフォーマット、ならびに並列ハードウェアおよび埋め込みターゲットのための専用言語が含まれる。
【００２９】
システムはまた、エクセル（Ｅｘｃｅｌ（商標））ワークシート内に実用的なニューラルネットワークを作成するために、スプレッドシートセルを機能的に接続するエクセル（Ｅｘｃｅｌ）エクスポートオプションを特徴とする。システムはまた、クリアスピード（ＣｌｅａｒＳｐｅｅｄ（商標））の最新世代の並列処理ボードと互換性がある並列化されたＣコードを生成することができる。代替として、今やユーザは、自身のニューラルネットワークを、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）のための設計環境であるスターブリッジ・システムズ・ビバ（Ｓｔａｒｂｒｉｄｇｅ  Ｓｙｓｔｅｍｓ  Ｖｉｖａ（登録商標））にエクスポートしてもよい。
【００３０】
システムは、ニューラルネットワークを用いて、様々な入力および出力間の関係を見つける。これらの入力および出力は、数的に表現できる任意の量または特性である。たとえば、ネットワークは、材料を製造するために用いられる成分と結果としての材料の特性との間の関係を見つけることが可能である。または、ニューラルネットワークは、資金の分散と結果としての利益との間の関係を見つけることが可能である。ニューラルネットワークは、人が実例に基づいて行動するのと同様に学習する。既知の出力を備えた入力セットが、ネットワークに提示される。入力および出力の各セットは、手本と呼ばれる。十分な手本を与えられたとすると、ネットワークは、関係を学習して、他の入力セットのための出力を予測することができる。
【００３１】
システムは、「自己訓練人工ニューラルネットワークオブジェクト」または「ＳＴＡＮＮＯ」を利用する。ＳＴＡＮＮＯは、高効率のオブジェクト指向ニューラルネットワークである。ＳＴＡＮＮＯはまた、米国特許第６，０１４，６５３号明細書に説明されており、この特許の開示は、参照により本明細書に明示的に援用されている。
【００３２】
システムの好ましい実施形態からの画面イメージを、図１〜図９に示す。図１には、主要な作業空間領域が含まれる。「ＸＭＬ」、「ネットワーク（Ｎｅｔｗｏｒｋ）」および「マニュアル（Ｍａｎｕａｌ）」とラベル付けされた、作業空間領域の上部のタブは、ネットワークの異なるビューである。ＸＭＬビューは、図に示されているビューである。このビューは、ネットワークのパラメータを含む生のＸＭＬコードである。ツリーウィンドウは、作業空間のＸＭＬビューで利用可能な情報の単純化されたコンパクトなビューを示す。データおよびパラメータは、作業空間ＸＭＬビューと同様に、このウィンドウにおいて修正することができる。一方に対する変更は、もう一方に直ちに現われる。ステータスウィンドウは、システムの現在のステータスを示す。それは、プログラムが何をしているかを表示し、任意の訓練がどれくらい進んだかを示し、遭遇したあらゆる誤差およびより多くのことを示す。プロジェクトに関する情報のために、このウィンドウをしばしばチェックすることが重要である。これらのウィンドウは、切り離して主要なアプリケーションウィンドウから移すことができる。そうするためには、ドッキンググリップ（ｄｏｃｋｉｎｇ  ｇｒｉｐ）をクリックし、それを所望の位置へドラッグする。
【００３３】
プロジェクトファイルは、標準ＸＭＬフォーマットに格納されている。以下は、各可能なタグおよびそれが何のために用いられるかの簡単な説明である。
【００３４】
＜Ｓｔａｎｎｏ＞−これは、各ｓｔａｎｎｏまたはニューラルネットワークのための親タグである。全てのネットワークは、ｓｔａｎｎｏタグの内部に存在しなければならない。
【００３５】
＜Ｔｉｔｌｅ＞−ネットワークの名称。これは、出力コードモジュール内で、クラスまたはモジュールの名前として時々用いられる。
例：＜ｔｉｔｌｅ＞Ｍｙ  Ｎｅｔｗｏｒｋ＜／ｔｉｔｌｅ＞
【００３６】
＜ＲｅｐｏｒｔＩｎｔｅｒｖａｌ＞−これは、訓練中に、ネットワークの現在のＲＭＳ誤差を、どのくらいの頻繁で（エポックで）報告すべきかを指定する。どんな場合でも、報告は、毎秒２回を超えてプリントされない。（デフォルト：１００）
例：＜ｒｅｐｏｒｔｉｎｔｅｒｖａｌ＞５０００＜／ｒｅｐｏｒｔｉｎｔｅｒｖａｌ＞
【００３７】
＜ＷｏｒｋＤｉｒ＞−ＷｏｒｋＤｉｒを用いて、ネットワーク用の訓練およびテストデータを保持するための別個のフォルダを指定することができる。（デフォルト：ブランク）
例：＜ｗｏｒｋｄｉｒ＞Ｃ：＼Ｐｒｏｊｅｃｔｓ＜／ｗｏｒｋｄｉｒ＞
【００３８】
＜ＤｅｓｔＤｉｒ＞−ＤｅｓｔＤｉｒを用いて、出力コードモジュールが保存される場所のための別個のフォルダを指定することができる。（デフォルト：ブランク）
例：＜ｄｅｓｔｄｉｒ＞Ｃ：＼Ｐｒｏｊｅｃｔｓ＜／ｄｅｓｔｄｉｒ＞
【００３９】
＜Ｌａｙｅｒｓ＞−これは、層数と同様に、各層のためのノード数を指定する。以下の例では、３入力２出力ネットワークが組み立てられる。Ｌａｙｅｒｓが存在しない場合には、ＡＮＮＭＬが、入力訓練データからアーキテクチャを決定しようとする。Ｌａｙｅｒｓは、訓練データから入力および出力数を決定できる場合には、２ｎ＋２ノードを含む隠れ層を備えた３層ネットワークにデフォルトでなる。ここでｎは、入力数に等しい。ほとんどのネットワークは、３層を必要とするだけである。特定のデータセットのためにより多くの層が必要とされる場合には、４で通常は十分である。より多くの層は、訓練をより正確にするが、訓練外におけるネットワークの汎化能力を害する。また、追加的な層によって、訓練はより遅くされる。ＡＮＮＭＬネットワークでは、６層まで有することができる。
例：＜ｌａｙｅｒｓ＞３，８，２＜／ｌａｙｅｒｓ＞
【００４０】
＜Ｓｅｅｋ＞−これは、自動アーキテクチャ探索のための親タグである。このタグが存在する場合には、システムは、現在のプロジェクトのための最適ネットワークアーキテクチャを見つけようと試みる。注：最適アーキテクチャを見つけた後で、＜Ｌａｙｅｒｓ＞タグにおける隠れ層ノードの数を変更して、新しいアーキテクチャと一致させることが必要である。さもなければ、最適化されたセットから任意の保存された重みをロードすることは、ネットワークのＸＭＬ記述と一致しない重みファイルにおける保存データのために、誤差に帰着する。また、最適化されたネットワークを訓練した後で、このタグおよびその子をＡＮＮＭＬプロジェクトから除去することが望ましいであろう。なぜなら、このタグブロック存在する状態での、ネットワークの任意のさらなる訓練は、結果として、最適アーキテクチャの別の探索をもたらすからである。
【００４１】
＜Ａｔｔｅｍｐｔｓ＞―これは、Ｓｅｅｋの子であり、勝者であるアーキテクチャを決定する前に試みる異なるアーキテクチャ数を指定する。 
例：＜ａｔｔｅｍｐｔｓ＞２０＜／ａｔｔｅｍｐｔｓ＞
【００４２】
＜Ｓｕｂｓｅｔ＞−これは、Ｓｅｅｋの子であり、最適アーキテクチャ探索の汎化段階のために留保すべきオリジナル入力データのパーセンテージを指定する。
例：＜ｓｕｂｓｅｔ＞１０＜／ｓｕｂｓｅｔ＞
【００４３】
＜ＭａｘＮｏｄｅｓ＞−これは、Ｓｅｅｋの子であり、探索段階中に、ネットワークにおける任意の所定の層にとって可能な最大ノード数を指定する。
例：＜ｍａｘｎｏｄｅｓ＞１００＜／ｍａｘｎｏｄｅｓ＞
【００４４】
＜ＭｉｎＮｏｄｅｓ＞−これは、Ｓｅｅｋの子であり、探索段階中に、ネットワークにおける任意の所定の層にとって可能な最小ノード数を指定する。
例：＜ｍｉｎｎｏｄｅｓ＞２０＜／ｍｉｎｎｏｄｅｓ＞
【００４５】
＜Ｅｔａ＞−このパラメータは、ネットワークの重みに適用される誤差量を制御することができる。１に近いかまたはそれを超える値は、ネットワークにより速く学習させることができるが、しかし入力データに大きな変動がある場合には、ネットワークは、あまりよく、または全く学習しない可能性がある。（デフォルト：１．０）
例：＜ｅｔａ＞０．１＜／ｅｔａ＞
【００４６】
＜Ａｌｐｈａ＞−このパラメータは、ネットワークにおける誤差量が、訓練の連続サイクルを通して、どのように繰り越されるかを制御する。ネットワークが「立ち往生」するのを避けて学習を停止するように、より高い値によって、前の誤差量のより大きな部分が練習を通して繰り越される。これは、訓練セットにおける異常な状態をならすのを支援することによって、いくつかの状況において学習率を改善することができる。（デフォルト：０．１）
例：＜／ａｌｐｈａ＞０．５＜／ａｌｐｈａ＞
【００４７】
＜Ｎｏｒｍａｌｉｚｅ＞―これは、イネーブルにされると、ネットワークへの送信前に入力を正規化する。これは、ネットワークの全入力空間にわたって入力データを分散するのに役立つ。データポイントが共に接近しすぎている場合には、ネットワークが最小および最大ポイント間の全範囲を包むように広げられている場合と同様には、ネットワークは学習しない可能性がある。（デフォルト：真）
例：＜ｎｏｒｍａｌｉｚｅ＞ｔｒｕｅ＜／ｎｏｒｍａｌｉｚｅ＞
【００４８】
＜ＳｃａｌＭａｒｇ＞−これは、正規化中に、入力および出力を特定の範囲にスケーリングする手段を提供する。ある例において、入力値が、共に接近しすぎているかまたはゼロおよび１に近すぎる場合には、ネットワークは、良好な学習率を達成することができない。Ｓｃａｌｅ  Ｍａｒｇｉｎは、最小および最大値間のデータを正規化し、この値の半分を、入力値に加えるかまたは差し引く。（デフォルト：０．１）
例：＜ｓｃａｌｍａｒｇ＞０．１＜／ｓｃａｌｍａｒｇ＞
【００４９】
＜Ｒａｎｄｏｍｉｚｅ＞―これは、訓練中に訓練セットをランダム化すべきかどうか、または訓練セットファイルに存在する訓練セットで連続的に訓練すべきかどうかを指定する。ランダム化された訓練は、「局所化された学習」を回避するのに役立つときがある。（デフォルト：偽）
例：＜ｒａｎｄｏｍｉｚｅ＞ｔｒｕｅ＜／ｒａｎｄｏｍｉｚｅ＞
【００５０】
＜Ｎｏｉｓｅ＞−これは、各入力値にどれほどのノイズを加えるべきかを指定する。フォーマットは、コンマによって区切られた２つの浮動小数点数である。第１の数は、ノイズ範囲の下限を表わす。第２の数は、上限を表わす。以下の例は、訓練中に、各入力値に−０．０１と＋０．０１との間の乱数を加えることになる。代替として、ノイズタグに１つの数だけが存在する場合には、その数の正および負値が、代わりに上限および下限として用いられる。（デフォルト：０．０、０．０）
例：＜ｎｏｉｓｅ＞−０．０１，０．０１＜／ｎｏｉｓｅ＞
【００５１】
＜ＴａｒｇＲＭＳ＞−これは、ネットワークが訓練で減らしていく目標ＲＭＳを指定する。ひとたびネットワークからの誤差がこのＲＭＳ以下に落ちれば、訓練は停止し、出力モジュールが生成される。ＴａｒｇＲＭＳは、目標ＲＭＳ探索をディスエーブルにするために、ゼロに設定することができる。この場合には、ＭａｘＥｐｏｃｈｓが、非ゼロ値に設定されなければならない。（デフォルト：０．０３）
例：＜ｔａｒｇｒｍｓ＞０．０５＜／ｔａｒｇｒｍｓ＞
【００５２】
＜ＭａｘＥｐｏｃｈｓ＞―これは、ネットワークが訓練される最大エポック数を指定する。ひとたびネットワークが、最大エポック数の訓練をされると、訓練は停止する。これをゼロに設定して、無制限のエポックを可能にすることができる。この場合には、ＴａｒｇＲＭＳは、非ゼロ値に設定されなければならない。（デフォルト：０）。注：また、ＭａｘＥｐｏｃｈｓタグは、Ｓｅｅｋタグの子として用いることができ、最適アーキテクチャを見つけるために、任意の外部ＭａｘＥｐｏｃｈｓタグに優先する。
例：＜ｍａｘｅｐｏｃｈｓ＞５０００００＜／ｍａｘｅｐｏｃｈｓ＞
【００５３】
＜ＴｅｓｔＩｎｔ＞−これは、所定のテストデータセットでネットワークをテストする間隔を指定する。（デフォルト：１００）
例：＜ｔｅｓｔｉｎｔ＞５０＜／ｔｅｓｔｉｎｔ＞
【００５４】
＜Ｄａｔａ＞−これは、各ｓｔａｎｎｏオブジェクトにおけるデータセットのための親タグである。
【００５５】
＜ＴｒｎＦｉｌｅ＞−これは、Ｄａｔａの子であり、入力訓練セットのファイル名を指定する。これは、ファイルへのフルパス名か、またはＡＮＮＭＬプロジェクトが存在するフォルダもしくはシステムアプリケーションが起動された場所であるフォルダに関するパスとすることができる。このファイルのフォーマットは、以下のＩｎｐｕｔｓに関するセクションで説明する。
例：＜ｔｒｎｆｉｌｅ＞ｔｒａｉｎｄａｔａ．ｐｍｐ＜／ｔｒｎｆｉｌｅ＞
【００５６】
＜ＬａｂｅｌＦｉｌｅ＞−これは、Ｄａｔａの子であり、入力ラベルのファイル名を指定する。これは、ファイルへのフルパス名か、またはＡＮＮＭＬプロジェクトが存在するフォルダもしくはシステムアプリケーションが起動された場所であるフォルダに関するパスとすることができる。このファイルのフォーマットは、タブによって分けられた各ラベルと、最後の入力ラベルおよび最初の出力ラベルを分ける２つのタブとを備えた単一のテキスト行である。このファイルは、入力訓練セットがそれ自身のラベルを含まない場合にのみ、用いられるべきである。（デフォルト：ブランク）
例：＜Ｉａｂｅｌｆｉｌｅ＞ｌａｂｅｌｓ．ｔｘｔ＜／ｌａｂｅｌｆｉｌｅ＞
【００５７】
＜Ｌａｂｅｌｓ＞―これは、Ｄａｔａの子であり、入力および出力ラベルとして用いられるテキスト行を指定する。このテキストのフォーマットは、コンマによって分けられた各ラベルと、最後の入力ラベルおよび最初の出力ラベルを分ける２つのコンマとを備えた単一のテキスト行である。このタグは、入力＼訓練セットがそれ自身のラベルを含まない場合にのみ、用いられるべきである。（デフォルト：ブランク）
例：＜ｌａｂｅｌｓ＞ｉｎ１，ｉｎ２，ｏｕｔ１＜／ｌａｂｅｌｓ＞
【００５８】
＜ＷｔＦｉｌｅ＞−これは、Ｄａｔａの子であり、ネットワーク重みファイルのファイル名を指定する。これは、ファイルへのフルパス名か、またはＡＮＮＭＬプロジェクトが存在するフォルダもしくはシステムアプリケーションが起動された場所であるフォルダに関するパスとすることができる。このファイルを用いて、ネットワークの重みをロードおよび保存する。（デフォルト：ブランク）
例：＜ｗｔｆｉｌｅ＞ｉｎｓｅｃｔｓ．ｗｔｓ＜／ｗｔｆｉｌｅ＞
【００５９】
＜ＬｏａｄＷｔｓ＞−これは、Ｄａｔａの子であり、ネットワーク重みファイルのファイル名を指定する。これは、ファイルへのフルパス名か、またはＡＮＮＭＬプロジェクトが存在するフォルダもしくはシステムアプリケーションが起動された場所であるフォルダに関するパスとすることができる。このファイルは、ネットワークの重みをロードするためにのみ用いられる。このタグをＳａｖｅＷｔｓと共に用い、保存に対し、ロードに異なるファイル名を指定する。（デフォルト：ブランク）
例：＜ｌｏａｄｗｔｓ＞ｉｎｓｅｃｔｓ．ｗｔｓ＜／ｌｏａｄｗｔｓ＞
【００６０】
＜ＳａｖｅＷｔｓ＞−これは、Ｄａｔａの子であり、ネットワーク重みファイルのファイル名を指定する。これは、ファイルへのフルパス名か、またはＡＮＮＭＬプロジェクトが存在するフォルダもしくはシステムアプリケーションが起動された場所であるフォルダに関するパスとすることができる。このファイルは、ネットワークの重みを保存するためにのみ用いられる。このタグをＳａｖｅＷｔｓと共に用い、保存に対し、ロードに異なるファイル名を指定する。（デフォルト：ブランク） 
例：＜ｓａｖｅｗｔｓ＞ｉｎｓｅｃｔｓ．ｗｔｓ＜／ｓａｖｅｗｔｓ＞
【００６１】
＜ＤＦｉｌｅ＞−これは、Ｄａｔａの子であり、要約のファイル名を指定する。このファイルは、訓練が停止したときに書き込まれ、ネットワークアーキテクチャの短い要約、ならびに訓練が停止したときのエポック数および誤差量を含む。（デフォルト：ブランク）
例：＜ｄｆｉｌｅ＞ｓｕｍｍａｒｙ．ｔｘｔ＜／ｄｆｉｌｅ＞
【００６２】
＜ＲＭＳＦｉｌｅ＞−これは、Ｄａｔａの子であり、ＲＭＳ誤差ログのファイル名を指定する。このファイルは、訓練中に書き込まれ、ネットワーク誤差を表わす一テキスト行を含む。このファイルは、ネットワークが訓練されているときに、誤差を経時的にグラフ化するために有用である。（デフォルト：ブランク）
例：＜ｒｍｓｆｉｌｅ＞ｅｒｒｏｒｌｏｇ．ｔｘｔ＜／ｒｍｓｆｉｌｅ＞
【００６３】
＜ＯｕｔＦｉｌｅ＞−これは、Ｄａｔａの子であり、各出力コードモジュールの親タグである。ＯｕｔＦｉｌｅタグが存在しない場合には、コードモジュールは生成されない。
【００６４】
＜Ｆｉｌｅｎａｍｅ＞−これは、ＯｕｔＦｉｌｅの子であり、ＤｅｓｔＤｉｒタグに対して、生成される出力のファイル名を指定する。
例：＜ｆｉｌｅｎａｍｅ＞ｅｘｃｅｌｏｕｔ．ｘｌｓ＜／ｆｉｌｅｎａｍｅ＞
【００６５】
＜Ｔｅｍｐｌａｔｅ＞−これもまたＯｕｔＦｉｌｅの子であり、ファイルを生成するために用いるテンプレートを指定する。次のいくつかの異なる組み込みテンプレートがある。
Ｃ／Ｃ＋＋
クリアスピード（ＣｌｅａｒＳｐｅｅｄ（商標））
フォートラン（Ｆｏｒｔｒａｎ）７７
フォートラン（Ｆｏｒｔｒａｎ）９０
ジャバ（Ｊａｖａ（商標））
ジャバスクリプト（ＪａｖａＳｃｒｉｐｔ（商標））
ビジュアルベーシック（Ｖｉｓｕａｌ  Ｂａｓｉｃ（商標））
ビバ（Ｖｉｖａ）
エクセル（Ｅｘｃｅｌ（商標））
ＭＡＴＬＡＢ（登録商標）Ｍ−ファイル
ＭＡＴＬＡＢ（登録商標）Ｓ−ファイル
このタグが組み込みテンプレートを用いるためには、上記のテンプレート名の１つを指定する。
例：＜ｔｅｍｐｌａｔｅ＞Ｅｘｃｅｌ＜／ｔｅｍｐｌａｔｅ＞ 
また、カスタムテンプレートを用いて、モジュールを生成することができる。代わりに、単に、テンプレートのファイル名を指定する。テンプレートファイルの説明は、以下において、新しいプロジェクトウィザードのための出力コードモジュールに関するセクションで提示する。
【００６６】
＜ＴｅｓｔＦｉｌｅ＞−これは、Ｄａｔａの子であり、訓練が完了した後で、ネットワークをテストするために用いる各訓練セットのための親タグである。
【００６７】
＜ＳｏｕｒｃｅＮａｍｅ＞−これは、ＴｅｓｔＦｉｌｅの子であり、訓練セットデータのファイル名を指定する。これは、生のタブ区切りデータまたは．ｐｍｐファイルとすることができる。
例：＜ｓｏｕｒｃｅｎａｍｅ＞ｔｅｓｔｄａｔａ．ｐｍｐ＜／ｓｏｕｒｃｅｎａｍｅ＞
【００６８】
＜ＴａｒｇｅｔＮａｍｅ＞−これは、ＴｅｓｔＦｉｌｅの子であり、ＤｅｓｔＤｉｒタグに対して、生成される出力ファイルのファイル名を指定する。
例：＜ｔａｒｇｅｔｎａｍｅ＞ｔｅｓｔ−ｏｕｔ．ｔｘｔ＜／ｔａｒｇｅｔｎａｍｅ＞
【００６９】
＜ＳｃａｌｅＩｎｐｕｔｓ＞−これは、ＴｅｓｔＦｉｌｅの子であり、入力をテストする前に、ゼロと１との間に入力をスケーリングまたは正規化すべきかどうかを指定する。（デフォルト：真）
例：＜ｓｃａｌｅｉｎｐｕｔｓ＞ｆａｌｓｅ＜／ｓｃａｌｅｉｎｐｕｔｓ＞
【００７０】
＜ＬｅａｖｅＩｎｐｕｔｓＳｃａｌｅｄ＞−これは、ＴｅｓｔＦｉｌｅの子であり、スケーリングされた入力を出力ファイルに書き込むべきか、またはオリジナル入力値を書き込むべきかどうかを指定する。（デフォルト：偽）
例：＜ｌｅａｖｅｉｎｐｕｔｓｓｃａｌｅｄ＞ｆａｌｓｅ＜／ｌｅａｖｅｉｎｐｕｔｓｓｃａｌｅｄ＞
【００７１】
＜ＳｃａｌｅＯｕｔｐｕｔｓ＞−これは、ＴｅｓｔＦｉｌｅの子であり、テスト後に、入力のオリジナルの範囲へ、出力をスケーリングまたは正規化すべきかどうかを指定する。（デフォルト：真）
例：＜ｓｃａｌｅｏｕｔｐｕｔｓ＞ｆａｌｓｅ＜／ｓｃａｌｅｏｕｔｐｕｔｓ＞
【００７２】
＜ＳｃａｌｅＭａｒｇｉｎ＞−ＴｅｓｔＦｉｌｅの子であり、この値は、ネットワークのＳｃａｌｅ  Ｍａｒｇｉｎが訓練に対して有するのと同じ効果を、訓練セットの入力および出力に有する。（デフォルト：ネットワークを訓練するために用いられるＳｃａｌｅ  Ｍａｒｇｉｎ）
例：＜ｓｃａｌｅｍａｒｇｉｎ＞０．１＜／ｓｃａｌｅｍａｒｇｉｎ＞
【００７３】
＜ＭｉｎＭａｘ＞−これは、ＴｅｓｔＦｉｌｅの子であり、スケーリングが用いられる場合に、訓練セットの検出された最小および最大値を置き換える。（デフォルト：０，０）
例：＜ｍｉｎｍａｘ＞０，１＜／ｍｉｎｍａｘ＞
【００７４】
システムは、主要なネットワークパラメータを通して進みかつ各パラメータの適切な答えのためにユーザを促すことによって、ネットワークの生成を通じてユーザを案内するプロジェクトウィザードを特徴とする。これらのパラメータには次のものが含まれる。すなわち、入力数と、出力数と、層数と、ネットワークが、ユーザが定義する静的ネットワークアーキテクチャを用いるか、またはシステムが、基礎となるアルゴリズムを用いて、最適なネットワークアーキテクチャを見つけるように自動的に試みるかということと、各隠れた層におけるノード数と、学習パラメータ（イータおよびアルファ）と、学習目標（Ｍａｘ  ＥｐｏｃｈｓおよびＴａｒｇｅｔ  ＲＭＳ）と、入力訓練ファイルと、出力コードモジュールとである。
【００７５】
システム内のアルゴリズムは、ユーザによって提供される情報に基づいて、適切なネットワークアーキテクチャを独立して開発する。
【００７６】
別の実施形態において、システムアルゴリズムは、選択された訓練データファイルに基づいて、適切なネットワークアーキテクチャのための最良の推測を生成する。認識された訓練データファイルが選択されると、アルゴリズムは、ネットワークのために、隠れ層の数と、隠れ層内のノードまたはニューロン数と、学習率（η）と、運動量（α）とを供給し、次に、訓練に先立ってネットワークを初期化する。有利なことに、この特定の実施形態は、ニューラルネットワーク初心者に適している。
【００７７】
最適ネットワークアーキテクチャを探索している場合には、システムは、いくつかのオリジナル訓練手本を用いて、最低の汎化誤差を決定することができる。 
Ｓｕｂｓｅｔ−０と９９との間の有効パーセンテージを指定しなければならない。この量は、訓練中に取り去られ、汎化のために用いられる。パターンのランダムなセレクションが、選択される。ゼロが入力された場合には、最適化は、汎化誤差の代わりに訓練誤差に基づき、Ｌｅａｒｎｉｎｇ  Ｔａｒｇｅｔセクションにおいて、ＴａｒｇｅｔＲＡＳタグの代わりにＭａｘＥｐｏｃｈｓタグを必要とする。注：訓練データのセットが小さい場合には、サブセットを留保すると、訓練を不正確にする可能性がある。たとえば、ユーザが、排他的論理和ネットワークを訓練している場合には、訓練データは次のものからなる。
【００７８】
【表１】
2008533615.tif 000003
【００７９】
第４の手本が留保された場合には、ネットワークは、排他的論理和ではなく「論理和」の振る舞いを学習する。 
【００８０】
Ｎｕｍｂｅｒ  ｏｆ  Ａｔｔｅｍｐｔｓ−これは、訓練すべき異なるアーキテクチャの数を指定する。ランダムなアーキテクチャが選択されて、別個のニューラルネットワークが結果を注視する間に、訓練される。ひとたび全てのアテンプトが完了すれば、別個のネットワークを用いて、最適アーキテクチャを生成する。
【００８１】
ネットワーク用の学習パラメータには、次のものが含まれる。 
Ｅｔａ（η）−このパラメータは、ネットワークの重みに適用される誤差量を制御することができる。１に近いかまたは１を超える値は、ネットワークに、より迅速に学習させることが可能だが、しかし入力データに大きなばらつきがある場合には、ネットワークは、あまりよく、または全く学習しない可能性がある。学習率が遅すぎるように思われる場合には、このパラメータを、ゼロにより近いものに設定して、それを上向きに徐々に動かすのがよりよい。 
Ａｌｐｈａ（α）−このパラメータは、ネットワークにおける誤差量が、訓練の連続サイクルを通して、どのように繰り越されるかを制御する。ネットワークが「立ち往生」するのを避けて学習を停止するように、より高い値によって、前の誤差量のより大きな部分が練習を通して繰り越される。これは、訓練セットにおける異常な状態をならすのを支援することによって、いくつかの状況において学習率を改善することができる。
【００８２】
Ｌｅａｒｎｉｎｇ  Ｔａｒｇｅｔは、何のイベントがネットワークに訓練を停止するようにトリガするかを指定する。これらのパラメータの両方とも、非ゼロ値に設定してもよいが、しかし少なくとも１つは、ネットワークの停止ポイントを提供するために、非ゼロでなければならない。 
Ｍａｘ  Ｅｐｏｃｈｓ−ネットワークのための最大エポック数を指定する。エポックは、完全な訓練セットを１回通過することである。 
Ｔａｒｇｅｔ  ＲＭＳ−ネットワークからの最大誤差量を指定する。各エポックのＲＭＳ誤差がこの量を超えている間、訓練は継続する。このオプションは、最適アーキテクチャ探索がイネーブルにされ、汎化誤差の代わりに学習誤差が用いられている場合には、ディスエーブルにされる。
【００８３】
入力ファイルのフォーマットは、タブ区切りテキストファイルである。二重タブが、目標出力データから入力データを分けるために用いられる。各訓練セットは、それ自身の行に基づかなければならない。空白行は許されない。入力用のラベルは、ファイルの第１行に存在しなければならず、入力訓練データと同じようにタブで区切られる。例として、２つの入力および１つの出力を備えたネットワークは、次のフォーマットの訓練データを有することになる。 
Ｉｎ１＜タブ＞Ｉｎ２＜タブ＞＜タブ＞Ｏｕｔ
０＜タブ＞１＜タブ＞＜タブ＞１
入力訓練データ用の拡張子は、「．ｐｍｐ」でなければならない。 
Ｒａｎｄｏｍｉｚｅ―これは、イネーブルにされると、ネットワークの訓練中に、訓練データからのパターンをランダム化する。これは、ネットワークをその学習プロセスにおいて陳腐にしてしまう「局所化された学習」を低減するのに役立つ。 
Ｎｏｒｍａｌｉｚｅ−これは、イネーブルにされると、ネットワークへの送信前に入力を正規化する。これは、ネットワークの全入力空間わたって入力データを分散するのに役立つ。データポイントが共に接近しすぎている場合には、入力が最小および最大ポイント間の全範囲を包むように分散されている場合と同様には、ネットワークは学習しない可能性がある。 
Ｓｃａｌｅ  Ｍａｒｇｉｎ−これによって、正規化中に、入力および出力を特定の範囲にスケーリングする手段が提供される。ある例において、入力値が、共に接近しすぎているかまたはゼロおよび１に近すぎる場合には、ネットワークは、良好な学習率を達成することができない。Ｓｃａｌｅ  Ｍａｒｇｉｎは、最小および最大値間のデータを正規化し、この値の半分を、入力値に加えるかまたは差し引く。この値は、正規化フラグがイネーブルにされている場合にのみ用いられる。Ｓｃａｌｅ  Ｍａｒｇｉｎは、出力に対しては反対の効果を有し、出力を逆にそのオリジナルの範囲に拡張する。例：入力が０と１との間の範囲に及び、Ｓｃａｌｅ  Ｍａｒｇｉｎが．１である状態では、入力は、０．０５および０．９５の範囲に圧縮される。 
Ａｄｄ  Ｎｏｉｓｅ−このオプションをイネーブルにすると、訓練中に、ランダムなノイズ量が各入力値に加えられる。その範囲は、上限および下限領域で指定される。上限および下限は、入力に追加できるノイズ量を表わす。ほとんどの場合に、下限は、上限の負量に等しい。入力値が、ノイズを加えた結果として０．０〜１．０の範囲から外れる場合には、それは、０．０または１．０にクリッピングされる。
【００８４】
ひとたびネットワークが訓練されると、出力コードモジュールを生成することができる。多数の出力ファイルを指定することができる。次の様々な異なるコードテンプレートがある。すなわち、Ｃ／Ｃ＋＋、クリアスピード（ＣｌｅａｒＳｐｅｅｄ（商標））、フォートラン（Ｆｏｒｔｒａｎ）７７、フォートラン（Ｆｏｒｔｒａｎ）９０、ジャバ（Ｊａｖａ（商標））、ジャバスクリプト（ＪａｖａＳｃｒｉｐｔ（商標））、ＭＡＴＬＡＢ（登録商標）Ｍ−ファイル、エクセル（Ｅｘｃｅｌ）、およびマイクロソフト（Ｍｉｃｒｏｓｏｆｔ（登録商標））ビジュアルベーシック（Ｖｉｓｕａｌ  Ｂａｓｉｃ（登録商標））である。また、カスタムテンプレートフォーマットを指定することができる。カスタムテンプレートは、テキスト置換アルゴリズムを用いてテンプレート内の変数を埋めるテキストファイルである。カスタムフォーマットでは、次の変数を用いることができる。 
％ＤＡＴＥ％−モジュールが生成される日付／時間。
％ＮＵＭＩＮＰＵＴＳ％−ネットワークのための入力数。
％ＮＵＭＯＵＴＰＵＴＳ％−ネットワークのための出力数。
％ＮＵＭＬＡＹＥＲＳ％−ネットワークのための合計層数。
％ＮＵＭＷＥＩＧＨＴＳ％−ネットワーク内の重みの合計数。
％ＭＡＸＮＯＤＥＳ％−ネットワークの任意の所定の層における最大ノード数
％ＮＯＤＥＳ％−ネットワークにおける各層のサイズのコンマ区切りリスト。
％ＤＳＣＡＬＭＡＲＧ％−ネットワークを訓練するために用いられるスケーリングマージン。
％ＩＭＩＮ％−入力における最小値のコンマ区切りリスト。
％ＩＭＡＸ％−入力における最大値のコンマ区切りリスト。
％ＯＭＩＮ％−出力における最小値のコンマ区切りリスト。
％ＯＭＡＸ％−出力における最大値のコンマ区切りリスト。
％ＷＥＩＧＨＴＳ％−ネットワークにおける内部重み全てのコンマ区切りリスト。
％ＴＩＴＬＥ％−ネットワークの名称。
％ＴＩＴＬＥ％＿％−任意のスペースが「＿」文字に変換されたネットワークの名称。
【００８５】
ＩＭＩＮ、ＩＭＡＸ、ＯＭＩＮ、ＯＭＡＸおよびＷＥＩＧＨＴＳ変数は、特別の方法で働く。それらは数の配列なので、出力方法は、多数の値を扱う必要がある。それゆえに、テンプレートにおいてこれらの変数のいずれかに遭遇したときはいつでも、これらの変数を囲む行内容が、変数自体が生成する各行のために生成される。たとえばテンプレートにおける以下の行、
％ＷＥＩＧＨＴＳ％＿
は、
０．００００００，０．４５６９６７８５，１．００００００，＿
０．１０００００，０．５５３４２３４４，０．９９９０００，＿
のように見えるコードを生成するであろう。 
先頭スペースおよび末尾のスペースならびに下線文字に注目されたい。この例におけるビジュアルベーシック（Ｖｉｓｕａｌ  Ｂａｓｉｃ）などのいくつかの言語は、末尾の文字を用いて行の継続を示す。
【００８６】
システムには、ニューラルネットワークの生成および視覚化を促進するのに役立ついくつかのビューがある。プロジェクトを作成している間、図１および２に示すツリービューおよびＸＭＬビューによって、ユーザは、プロジェクト用のデータを入力および編集することが可能になる。訓練中または訓練後に、ユーザは、ネットワークビュー（この例を図３に示す）へ切り換えることによって、ネットワークの現在の状態を見ることができる。これは、ニューラルネットワークの３Ｄビューであって、その入力、出力および現在の重みが、３Ｄオブジェクトによって表わされている。ネットワーク内の重みの分布もまた、ネットワークの下に表わされている。ネットワークビューのさらなる説明は、以下で提示する。訓練中または訓練後に、ユーザは、マニュアルビュー（図４に示す）においてネットワーク用の入力を手動で調節することによって、ネットワークをテストすることができる。ネットワークへの入力を表わす各スライダを調節することによって、それがネットワークの出力にどのように影響するかが分かる。
【００８７】
ネットワークビューは、３Ｄ空間において現在のプロジェクトを表示し、ネットワークの入力、出力、現在の重みおよび重み分布を表わす。このビューによって、ユーザは、ネットワークの三次元をあちこちナビゲートすることが可能になり、ユーザはまた、出力および隠れ層ニューロンを分離して、どの入力が各出力に最も大きく影響するかを確かめることが可能になる。ニューロンは、緑の球として表わされ、重みは青および赤の線によって表わされる。青線は、重みが正値であることを示す一方で、赤線は、重みが負値であることを示す。ニューロンを左クリックすると、そのニューロンに結合されていないが同じ層にある全ての重みが隠される。重み分布バーは、ネットワークにおける重みの分布を示すが、それらの符号を無視する。左端は、ネットワークにおける最も小さな重みに対応し、右端は、最も大きな重みに対応する。１つまたは複数の重みの存在は、垂直の緑のストライプによって示される。ストライプが明るければ明るいほど、より多くの重みがその値を共有する。
【００８８】
引き込み閾値（Ｄｒａｗ  Ｔｈｒｅｓｈｏｌｄ）スライダは、分布バーの下の白い円錐として表わされる。スライダの右方に自身の値が位置する重みだけが引かれる。その結果として、左端では、全ての重みが表示され、右端では、最も強い重みだけが示される。ネットワークをスケルトン化したい場合には、スライダは有用である（以下の例を参照されたい）。スライダは、マウスで移動することができる。重み分布バー上でマウスをクリックおよびドラッグすることによって、引き込み閾値を調節する。
【００８９】
次の３入力２出力ネットワークを検討する。第１の出力は、論理演算Ａ  ＯＲ（Ｂ  ＡＮＤ  Ｃ）を実行するが、これは、Ａが高い場合またはＢおよびＣの両方が高い場合に、出力が高いことを意味する。２番目は、Ａ、ＢもしくはＣ（または任意の組み合わせ）が高い場合に高い。
【００９０】
【表２】
2008533615.tif 000004
【００９１】
ネットワークを訓練した後で、ネットワークビューを用いて、ネットワークがどのように自身を組織したかを検査することができる。ネットワークは、どんな種類の特性を呈するのか。この質問に対する答えを理解するためには、単一のニューロンがどのように働くかを理解しなければならない。各ニューロンは、いくつかの数の入力を有し、そのそれぞれが、関連する重みを有する。各入力は、その重みを掛けられ、これらの値が、全ての入力／重みペアのために合計される。これらの値の合計が、ニューロンの出力値を決定し、今度はこの出力値が、別のニューロンへの入力として用いられ得る。したがって、例示的なネットワークにおいて、Ａ  ＯＲ（Ｂ  ＡＮＤ  Ｃ）とラベル付けされた第１の出力は、Ａだけが高い場合に、高い出力値を生成するが、しかしＡが低い場合には、高い出力を生成するためにＢおよびＣの両方を必要とすることになる。これは、Ａに関連する重み値が最も高いことを意味するはずである。ネットワークビューを用いて、これを検証することができる。どの入力が最も影響力があるか見つけるために、出力から入力へさかのぼるプロセスは、スケルトン化と呼ばれるが、例証のために上記の例を用いる。
【００９２】
サンプルネットワークビューを図５に提示する。重みの全てが表示されている。ユーザが、出力Ａ  ＯＲ（Ｂ  ＡＮＤ  Ｃ）に対する最も強い影響を検証することに興味がある場合には、その出力上でマウスを左クリックされたい。結果を図６に示す。そのニューロンを左クリックすると、もう一方の出力の重みが隠される。さらに、重み閾値スライダになされたどんな調節も、選択されたニューロンに影響するだけである。
【００９３】
次に、Ａ  ＯＲ（Ｂ  ＡＮＤ  Ｃ）に結合された重みのうちの１つだけが示されるまで、スライダを右に移動させる。結果を図７に示す。ここで、最高の大きさを備えた重みだけが、引かれている。図示の例において、それは、隠れ層において上端から下降して３番目のノードに結合されているが、しかしこれは、ネットワークごとに変化する。引き込み閾値スライダの位置は、隠れ層の右方の第２の重みセットに対する影響だけを示すことに留意されたい。これは、隠れ層の右方のニューロンが選択されたからである。
【００９４】
ここで、ユーザが、出力への結合がまだ見えている隠れ層ノードを左クリックすると、これによって、このノードに入る重みだけが引かれる。結果を図８に示す。新しい層が選択されたので、引き込み閾値スライダが左端に自動的にリセットされたことに留意されたい。隠れ層に入るただ１つの重みだけが示されるまで、スライダを右に移動した場合の結果を図９に示す。予想通り、出力Ａ  ＯＲ（Ｂ  ＡＮＤ  Ｃ）に対する最大の影響を備えた入力は、Ａである。両方の重みが正であることに留意されたい。共に掛けられた２つの正数は正数を生じるので、これは両方の重みが負であるのと同じである。両方のケースで、Ａにおける正の変化は、Ａ  ＯＲ（Ｂ  ＡＮＤ  Ｃ）における正の変化をもたらす。２つの重みの１つだけが負である場合には、Ａにおける負の変化は、出力における正の変化をもたらしたであろう。これは、ネットワークがＮＯＴ（Ａ）ＯＲ（Ｂ  ＡＮＤ  Ｃ）を実行するように訓練される場合に、見ることができる。ネットワークを常態に戻すかまたは別の出力をスケルトン化するためには、３Ｄビューのどこでもダブルクリックされたい。
【００９５】
システムの一実施形態において、ユーザは、単に特定の訓練データファイルを選択することによって、ネットワークの訓練を開始することができる。システム内の固有のアルゴリズムは、ネットワークのための適切なアーキテクチャに関する最良の推測、すなわちネットワークのための学習率および運動量と同様に、必要な隠れ層の数、各隠れ層内のニューロン数を自動的に推奨し、次に、この訓練されていないネットワークを初期化する。
【００９６】
別の実施形態において、システムは、第２の人工ニューラルネットワーク、好ましくは自己連想ネットワークを利用するが、このネットワークは、第１のネットワークと同時に訓練してもよい。第２の自己連想ネットワークの出力の１つは、第１のヘテロ連想ネットワークのための学習パラメータ（すなわち学習率および運動量）セットである。第２のネットワークはまた、デルタ値を計算する。一モードにおいて、このデルタ値は、供給された訓練出力パターンと、供給された訓練入力パターンに応じて第２のネットワークによって生成された実際の出力パターンとの間の差を表わす。本実施形態の一バージョンでは、デルタ値は、供給された訓練出力パターンと実際の出力パターンとの間のユークリッド距離に比例する。第２のネットワークによって計算されたデルタ値は、システムによってさらに利用される新規メトリックを表わす。このモードにおいて、デルタ値または新規メトリックを用いて、第１のネットワークのための学習パラメータを調節する。これは、第１のネットワーク用の学習強化の強度が第２のネットワークによって決定されるシステムの新規モードと一般に呼ばれる。このモードを図１０に図示する。
【００９７】
上記の実施形態の第２のモードにおいて、第２のネットワークに供給される「入力」パターンは、入力および対応する出力のペア（Ｐｉｎ、Ｐｏｕｔ）からなる。これに応じて、第２のネットワークは、入力および出力のペア（Ｐ’ｉｎ、Ｐ’ｏｕｔ）を生成する。この場合に、デルタ値（δ）は、（Ｐｉｎ、Ｐｏｕｔ）と（Ｐ’ｉｎ、Ｐ’ｏｕｔ）との間の差を表わす。一バージョンでは、デルタ値は、（Ｐｉｎ、Ｐｏｕｔ）−（Ｐ’ｉｎ、Ｐ’ｏｕｔ）の絶対値として計算される。別のバージョンでは、デルタ値は、（Ｐｉｎ、Ｐｏｕｔ）と（Ｐ’ｉｎ、Ｐ’ｏｕｔ）との間のユークリツド距離に比例する。デルタ値は、指定された新規閾値と比較される。入力および出力（Ｐｉｎ、Ｐｏｕｔ）の特定のペアのためのデルタ値が、新規閾値を超える場合には、その訓練ペアは拒否されて、第１のネットワークを訓練するためにさらに利用することから除外される。このモードを図１１に図示する。米国特許第６，０１４，６５３号明細書および同第５，８５２，８１６号明細書（これらの開示は参照により本明細書に明示的に援用されている）は、学習率を調節するかまたは手本を拒否するために、自己連想ネットを介して新規検出を利用することの追加的説明を提供している。
【００９８】
別の実施形態において、システムは、主に独立して動作して、最適アーキテクチャおよび所定の訓練データセットのための学習パラメータセットを決定する。システムは、一連のトライアルネットワークを自動的に生成し、そのそれぞれは、ランダムな隠れ層アーキテクチャおよび学習パラメータを提供される。これらの候補ネットワークのそれぞれが、提供されたデータで訓練されるとき、その訓練または汎化誤差は、それぞれ、訓練データまたは取って置かれたデータを用いて、計算される。次に、さらに別のネットワークであるマスタネットワークが、トライアルネットワークで用いられるアーキテクチャおよび学習パラメータにおける変動と、これらのネットワークにおける結果としての学習および汎化誤差と、からなるデータセットで訓練される。このデータは、トライアルネットワークによって「開発」されたときに、マスタネットワークへ直接送出されてもよいし、またはそれは、入力および出力パターンセットとしてメモリに格納され、トライアルネットワークの訓練が完了した後で、マスタネットワークに導入されるかもしくはそこからアクセスされてもよい。マスタネットワークの訓練に続いて、マスタネットワークは、その出力において最小の訓練または汎化誤差を生成する入力パターン（すなわち、隠れ層アーキテクチャおよび学習パラメータの組み合わせ）を見つけるために、確率的に問い合わされる。このプロセスを図１２に図示する。目標探索アルゴリズムの別の例が、米国特許第６，１１５，７０１号明細書に示され、またこの特許の完全な開示が、参照により本明細書に明示的に援用されている。
【００９９】
本発明の他の目的、特徴および利点が、当業者に明らかになるであろう。本発明の好ましい実施形態を図示し説明したが、それは、例示としてであって、本発明は、添付の特許請求の範囲およびそれらの均等物の範囲によって要求される場合を除いて、限定されるべきではない。
【図面の簡単な説明】
【０１００】
【図１】本発明の一実施形態によるニューラルネットワーク開発およびデータ解析ツールの実施形態における作業ウィンドウの画面イメージである。
【図２】図１の実施形態における「ツリービュー」の画面イメージである。
【図３】図１の実施形態における「ネットワークビュー」の画面イメージである。
【図４】図１の実施形態における「マニュアルビュー」の画面イメージである。
【図５】別の実施形態における「ネットワークビュー」の画面イメージである。
【図６】ただ１つの出力ニューロンの重みを示す、図５の「ネットワークビュー」の別の画面イメージである。
【図７】「スケルトン化」されたネットワークの第２の層を示す、図５の「ネットワークビュー」の別の画面イメージである。
【図８】表示された４つの重みを示す、図５の「ネットワークビュー」の別の画面イメージである。
【図９】図５〜８に示すネットワークの「スケルトン化」されたビューである。
【図１０】第１のヘテロ連想人工ニューラルネットワークおよび第２の自己連想人工ニューラルネットワークが共に訓練される別の実施形態の一般的な動作のダイアグラムである。
【図１１】代替モードで動作する図１０の実施形態のダイアグラムである。
【図１２】一連の訓練ネットワークおよびマスタネットワークを含む、本発明の目標探索実施形態のダイアグラムである。
【図１】
2008533615.tif 000005
【図２】
2008533615.tif 000006
【図３】
2008533615.tif 000007
【図４】
2008533615.tif 000008
【図５】
2008533615.tif 000009
【図６】
2008533615.tif 000010
【図７】
2008533615.tif 000011
【図８】
2008533615.tif 000012
【図９】
2008533615.tif 000013
【図１０】
2008533615.tif 000014
【図１１】
2008533615.tif 000015
【図１２】
2008533615.tif 000016
【国際調査報告】
2008533615.tif 000017
2008533615.tif 000018
2008533615.tif 000019
2008533615.tif 000020
2008533615.tif 000021
2008533615.tif 000022