(57)【特許請求の範囲】
【請求項１】
層内に配置される複数のニューロンを含む人工ニューラルネットワークであって、前記人工ニューラルネットワークは、トレーニング中に前記人工ニューラルネットワークの層内に新規なニューロンを受け入れるように構成され、前記新規なニューロンは、選択された出力に対する当該層内の他のニューロンが学習されるデータセットの入力ベクトルに関連付けられる関係を学習しえないときに前記ニューラルネットワークに追加され、
前記新規なニューロンは、当該層内の他のニューロンにより学習され得ない関係、及び前記ニューラルネットワークの前記選択された出力に寄与する当該層内の最後にトレーニングされたニューロンからの変更されたデータセットの両方で更新され、前記変更されたデータセットは、前記最後にトレーニングされたニューロンから前記新規なニューロンへの全ての学習された関係をコピーし、かつ当該層内の他のニューロンにより学習され得ない関係に基づいて、コピーされた前記関係を変更することにより、形成され、
前記新規なニューロンからの入力を受け付けるように一又はそれ以上の出力ニューロンを更新する、人工ニューラルネットワーク。
【請求項２】
前記人工ニューラルネットワークは、
（ｉ）トレーニングするニューラルネットワークの出力を選択し、前記ニューラルネットワークの出力ニューロンを、前記選択した出力のためのニューラルネットワークの入力層の一又はそれ以上の入力ニューロンに接続し、
（ｉｉ）前記ニューラルネットワークに学習させるデータセットを用意し、
（ｉｉｉ）前記用意したデータセットの入力ベクトルを前記ニューラルネットワークの第１の中間層に、又は前記ニューラルネットワークが少なくとも１つの中間層を有さなければ前記ニューラルネットワークの出力層に加えることにより前記用意したデータセットを前記ニューラルネットワークに加えて学習させ、前記ニューラルネットワークの各層における前記選択された出力のための少なくとも１つのニューロンが、入力ベクトルに対する関連付けられた出力の生成を学習しうるか否かを決定し、
前記ニューラルネットワークの各層における前記選択された出力のための少なくとも１つのニューロンが前記入力ベクトルに対する前記関連付けられた出力の生成を学習でき、かつ学習するために前記用意したデータセットのさらなる入力ベクトルが存在する場合には、次の入力ベクトルに対して（ｉｉｉ）を繰り返し、さもなければ、トレーニングすべき出力がまだある場合には、前記ニューラルネットワークの次の出力に対して（ｉ）から（ｉｉｉ）を繰り返し、
前記ニューラルネットワークの前記選択された出力に対する中間層のニューロンが前記入力ベクトルに対する前記関連付けられた出力の生成を学習できない場合には、前記選択された出力に対して当該中間層の全ての他のニューロンが学習できなかった前記関連付けられた出力を学習するために当該中間層に新規なニューロンが追加され、当該新規なニューロンは、最後にトレーニングされたニューロンにより学習された入力−出力の関連付けをコピーすること、及び学習されなかった最後の関連付けに基づき前記入力−出力の関連付けを変更することにより形成される、変更されたデータセットにより更新され、学習すべき前記データセットの入力ベクトルがまだある場合には、（ｉｉｉ）を繰り返し、さもなければ、トレーニングすべき出力がまだあるならば前記ニューラルネットワークの次の出力に対して（ｉ）から（ｉｉｉ）を繰り返し、
前記ニューラルネットワークの前記選択された出力に対する出力ニューロンが前記入力ベクトルに対する前記関連付けられた出力の生成を学習できなければ、当該出力ニューロンは前記ニューラルネットワークの中間層のニューロンとなり、出力ニューロンが学習できなかった前記関連付けられた出力を学習するために新規なニューロンが当該中間層に追加され、当該新規なニューロンは、最後にトレーニングされたニューロンにより学習された入力−出力の関連付けをコピーすること、及び学習されなかった最後の関連付けに基づき前記入力−出力の関連付けを変更することにより形成される、変更されたデータセットにより更新され、前記選択された出力に対して前記ニューラルネットワークに新規ニューロンが追加され、学習すべきデータセットの入力ベクトルがまだある場合には、（ｉｉｉ）を繰り返し、さもなければ、トレーニングすべき出力がまだある場合には、前記ニューラルネットワークの次の出力に対して（ｉ）から（ｉｉｉ）を繰り返すことによりトレーニングされるように構成される、請求項１に記載の人工ニューラルネットワーク。
【請求項３】
（ｉｉ）前記データセットを用意することは、（ｉ）前記ニューラルネットワークを形成することの前に行われる、請求項２に記載の人工ニューラルネットワーク。
【請求項４】
前記ニューラルネットワークの前記ニューロンは、線形閾値素子（ＬＴＧｓ）である、請求項１から３のいずれか一項に記載の人工ニューラルネットワーク。
【請求項５】
（ｉｉｉ）において、ＬＴＧが入力ベクトルに対して関連付けられる出力の生成を学習するか否かを決定することは、ＬＴＧの重みとＬＴＧの閾値との関係を示すＬＴＧの入力−出力の関連付けが、ＬＴＧの前の学習に基づく解答を有するか否かを決定することを含む、請求項４に記載の人工ニューラルネットワーク。
【請求項６】
前記関係は制約条件であり、入力ベクトル及びＬＴＧの重みベクトルは、ニューラルネットワークの選択された出力に基づくＬＴＧの閾値との関係を形成する、請求項５に記載の人工ニューラルネットワーク。
【請求項７】
制約条件の学習は、ＬＴＧの制約条件セットに前記制約条件を追加することである、請求項６に記載の人工ニューラルネットワーク。
【請求項８】
（ｉｉｉ）に係る中間層内の他のＬＴＧによって学習され得ない制約条件を学習するために新規なＬＴＧが前記中間層に追加される場合には、前記新規なＬＴＧは、前記ニューラルネットワークの選択された前記出力に寄与する次層内の全てのＬＴＧに接続され、前記新規なＬＴＧからの入力を受け付ける前記次層内の前記ＬＴＧの制約条件セットは、前記新規なＬＴＧからの入力を受け付けるために更新され、前記新規なＬＴＧを有する層が前記ニューラルネットワークの第１の中間層でない場合には、前記新規なＬＴＧは、前記ニューラルネットワークの選択された出力に寄与する先行層内の全てのＬＴＧからの入力に接続され、かつ全てのＬＴＧからの入力を受け付け、前記新規なＬＴＧの制約条件セットは、前記中間層内の他のＬＴＧにより学習され得ない制約条件のコピー及び変更されたデータセットを含むように更新され、
前記変更されたデータセットは、制約条件間の関係を以下のように変更することにより、前記中間層内の最後にトレーニングされたＬＴＧの制約条件セットから形成される、変更された制約条件セットとして前記新規なＬＴＧに対して表され、
ｘｉ．ｗ≧Ｔが学習され得ない場合には、最後にトレーニングされたＬＴＧの制約条件セットからｘｉ．ｗ＜Ｔであるとして全ての制約条件を変更し、
ｘｉ．ｗ＜Ｔが学習され得ない場合には、最後にトレーニングされたＬＴＧの制約条件セットからｘｉ．ｗ≧Ｔであるとして全ての制約条件を変更し、
ここでＴは、前記ＬＴＧの閾値である、請求項６に記載の人工ニューラルネットワーク。
【請求項９】
（ｉｉｉ）に係る前記ニューラルネットワークに新規な出力ＬＴＧが追加される場合には、前記新規な出力ＬＴＧは、前記中間層内のＬＴＧからの入力に接続され、かつ前記中間層内のＬＴＧからの入力を受け付けし、前記中間層が前記ニューラルネットワークの前記第１の中間層ではない場合には、前記中間層内の前記新規な出力ＬＴＧは、前記ニューラルネットワークの選択された前記出力に寄与する先行層内の全てのＬＴＧからの入力に接続され、かつ前記先行層内の全てのＬＴＧからの入力を受け付け、前記中間層に追加された前記新規なＬＴＧの制約条件セットは、前記先行層内の他のＬＴＧにより学習され得ない制約条件のコピー及び変更されたデータセットを含むように更新され、
前記変更されたデータセットは、制約条件間の関係を以下のように変更することにより、前記中間層内の先にトレーニングされたＬＴＧの制約条件セットから形成される、変更された制約条件セットとして前記新規なＬＴＧに対して表され、
ｘｉ．ｗ≧Ｔが学習され得ない場合には、先にトレーニングされたＬＴＧの制約条件セットからｘｉ．ｗ＜Ｔであるとして全ての制約条件を変更し、
ｘｉ．ｗ＜Ｔが学習され得ない場合には、先にトレーニングされたＬＴＧの制約条件セットからｘｉ．ｗ≧Ｔであるとして全ての制約条件を変更し、
ここでＴは、前記ＬＴＧの閾値であり、
前記新規な出力ＬＴＧは、前の出力ＬＴＧによって学習され得なかったものに従って所定の論理関係内に当該入力を結合する、請求項６又は請求項８に記載の人工ニューラルネットワーク。
【請求項１０】
（ｉｉｉ）に従って新規な出力ＬＴＧがニューラルネットワークに追加されるときに、この新規な出力ＬＴＧへの入力間に生じる論理関係は、論理ＯＲ、論理ＡＮＤ又は任意の他の等価な論理関係であり、
一又はそれ以上の前記論理ＯＲ及び前記論理ＡＮＤを用いる場合において、
前の出力ＬＴＧによって学習し得なかった入力ベクトルが出力１を生成する場合には、前記新規な出力ＬＴＧへの前記入力間で論理ＯＲが用いられること、及び前の出力ＬＴＧによって学習し得なかった入力ベクトルが出力０を生成する場合には、前記新規な出力ＬＴＧへの前記入力間で論理ＡＮＤが用いられることのいずれか又は両方が行われる、
請求項９に記載の人工ニューラルネットワーク。
【請求項１１】
トレーニング中にニューラルネットワークの層内に新規なニューロンを追加するための方法であって、前記新規なニューロンは、選択された出力に対する当該層内の他のニューロンが学習されるデータセットの入力ベクトルに関連付けられる関係を学習しえないときに前記ニューラルネットワークに追加され、前記方法は、
当該層内の他のニューロンにより学習され得ない関係、及び前記ニューラルネットワークの前記選択された出力に寄与する当該層内の最後にトレーニングされたニューロンからの変更されたデータセットの両方で前記新規なニューロンを更新するステップであって、前記最後にトレーニングされたニューロンから前記新規なニューロンへの全ての学習された関係をコピーし、かつ当該層内の他のニューロンにより学習され得ない関係に基づいて、コピーされた前記関係を変更することにより、前記変更されたデータセットが形成される、ステップと、
前記新規なニューロンからの入力を受け付けるように一又はそれ以上の出力ニューロンを更新するステップと、を含む、方法。
【請求項１２】
請求項１から１０のいずれか一項に記載の人工ニューラルネットワークにより学習された一又はそれ以上の関連付けを用いることを含む方法、又は請求項１１に記載の方法であって、前記人工ニューラルネットワークのニューロンはＬＴＧである、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般的に人工ニューラルネットワーク及びその操作に関し、特に、限定しないが、ニューラルネットワークのトレーニング法の改善及び／又は、トレーニング過程中の要求通りにネットワークにニューロンを追加できるシステムに関する。
【背景技術】
【０００２】
過去１０数年にわたり生成データセットのサイズが増殖するに従い、厳密に理解されないデータセットにおいて、そのデータセット内の関係を見出すために用いうる開発ツールへの関心が高まっている。データ探索のツールは、毎回固定した時間量において、入力と出力の間の関係についての顕著な情報を容易に決定しうるデータセットを矛盾なく学習しうることが望ましい。
【０００３】
データ探索のツールの１つは、フィードフォワードニューラルネットワークである。フィードフォワードニューラルネットワークは、データセットを有する多くの多様で困難なタスクを実施するために用いられ、過去およそ４０年にわたって大いに注目されてきた。これらには、「一般化する」能力があるという理由で、パターン分類及び機能概算を含む。このように、ニューラルネットワーク（以後、簡便のために”ＮＮ”と略称）は、非線形システムモデリング及びイメージ圧縮・再構成等のアプリケーションに用いうる。
【０００４】
ＮＮが関心を持たれる分野には、科学、商業、医学及び産業が含まれ、これらにおいてはデータに内在する関係性が不明であり、ＮＮであればそうしたデータをうまく分類する方法を学習できるからである。
【０００５】
ある場合においては、データが先行する分類に提示されてはならず、こうした状況では、で他を分類するために自己組織化マップ等の教師なしトレーニングを用いることが通常である。別の場合においては、データは分類されたデータサンプルに前もって分解され、こうした状況では未分類のデータをさらに分類できるようＮＮをトレーニングすることが通常である。後者の場合においては、教師あり学習アルゴリズムが伝統的に用いられる。分類された入力データ例には関連付けられる出力があり、トレーニング期間中にＮＮは入力ベクトルに関連付けられる望ましい出力を再現することを学習する。フィードフォワードＮＮは、伝統的には教師ありトレーニング法を用いてトレーニングされる。
【０００６】
人工ＮＮは多くのニューロンで構成され、これらはユニット又はノードと呼ぶことがある。これは生物学的ニューロンからインスピレーションを得ている。ニューロンは相互に接続せいてネットワークを形成する。各ニューロンには多くの他のニューロンからの入力がある。ニューロンは入力に応答して、発火するかしないかにより出力を生成する。このようにして、ニューロンの出力は多くの他のニューロンへの入力になりうる。これがフィードフォワードＮＮの基本構造である。
【０００７】
典型的にはニューロンは層を形成する。フィードフォワードＮＮにおいては、入力層、中間層及び出力層の、３タイプの層がある。第１の層は入力層であり、１以上のニューロンを内蔵する。同様に１以上のニューロンを有する出力層もある。ＮＮは１以上の中間層を有する場合もある。入力層の全てのニューロンは次の層、すなわち出力層又は１以上の中間層がある場合には第１の中間層へ、出力を提示する。中間層が１つだけであると、中間層のニューロンは出力層に対して出力を報告する。中間層が１よりも多いと、ニューロンは次の中間層等の入力に向かって出力を送り、最後の中間層は出力層の入力に向かってその出力を送る。
【０００８】
他のネットワークアーキテクチャも可能であり、ＮＮは特定のデータセットを学習するよう特異的に設計しうる。これは特にＮＮの入力ベクトルのシーケンス学習に見られ、これは接続にフィードバックループを有することもある。これらのＮＮは回帰フィードフォワードニューラルネットワークと呼ばれ、一般的にはこのＮＮの出力はしばしばＮＮの入力にフィードバックしうる。
【０００９】
最初の生物学的ニューロンモデルは、ＭｃＣｕｌｌｏｃｈ及びＰｉｔｔにより１９４３年に開発された。これは、ＭｃＣｕｌｌｏｃｈ−Ｐｉｔｔニュートンとして知られた。ＭｃＣｕｌｌｏｃｈ−Ｐｉｔｔニューロンモデル又は直線閾値ゲート（以後、ＬＴＧと略称、Ｌｉｎｅａｒ  Ｔｈｒｅｓｈｏｌｄ  Ｇａｔｅ）は、多くの入力接続及び各接続と関連付けられた重みを有するものとして定義される。入力は、数学的にベクトルｘｉとして定義され、
【００１０】
【数１】
0005395241.tif 000002
式中、ｎはＬＴＧへの入力数を示す正の整数であり、ｉはｉ番目の入力ベクトルである。入力接続はｎ個あるので、接続の重みは数学的にベクトルｗと定義されうる。
【００１１】
【数２】
0005395241.tif 000003
ＬＴＧへの各入力ベクトルは関連付けられた重みがかけ合わされて数学的にｘｉ・ｗと表され、この結果はＬＴＧの閾値Ｔと比較される。
【００１２】
【数３】
0005395241.tif 000004
ｘｉ・ｗ≧Ｔならば出力は１であり、さもなければｘｉ・ｗ＜Ｔとなって出力は０である。換言すれば、ＬＴＧはニューロンの活性化関数としての、このステップ関数又はＨｅａｖｉｓｉｄｅ関数を用いる。
【００１３】
ＬＴＧは次式の定義を用いて数学的に定義しうる。ｗ＝｛ｗ１，ｗ２，．．・ｗｎ｝及びｘｉ＝｛ｘ１，ｘ２，．．．ｘｎ｝ここで、
【００１４】
【数４】
0005395241.tif 000005
【００１５】
【数５】
0005395241.tif 000006
とおくと、ＬＴＧの挙動は次式１．１のようにまとめられる。
ｘｊ・ｗ＜Ｔ→０、及びｘｊ・ｗ＜Ｔ→１  （１．１）
【００１６】
このように、ＬＴＧ、Ｏの出力はバイナリ｛０，１｝である。ＬＴＧは活性化すると１を出力し、しなければ０を出力する。
【００１７】
１９６２年に、ＬＴＧは、永久的に１にセットされる追加バイアスで変更された。バイアス入力は閾値を吸収し、これをゼロにセットする。変更されたＬＴＧモデルはパーセプトロンと名称変更した。パーセプトロンモデルにおいては、閾値Ｔはｘｉ・ｗから除去されうるので、等式はｘｉ・ｗ＜Ｔ≡ｘｉ・ｗ−Ｔ＜０、及びｘｉ・ｗ＞Ｔ≡ｘｉ・ｗ−Ｔ≧０となるすなわち、閾値は、重みｗ０と共にニューロンへの別の入力になることが可能で、ニューロンへの入力を１に固定することにより常に存在することが確定し、Ｔ＝１・ｗ０となる。重みｗ０はバイアスウェイトと呼ばれる。従って、前式は次のようになる。
ｘｉ・ｗ−Ｗ０＜０、及びｘｉ・ｗ−Ｗ０≧０
【００１８】
１９６０年に、Ｒｏｓｅｎｂｌａｔｔはパーセプトロンモデルを用いて重みのための数値を見出すことに注目した。これ以降、ニューロン内の各重みに足して単一の数値を見出すことが、ニューロン及びＮＮをトレーニングする方法を確立してきた。ニューロンにより生成する関係は提案ロジックを用いて表現しうることが認識されていたが、重みと閾値との象徴的な関係を直接に見出すことは意図されてこなかった。ＮＮがトレーニング中に学習したデータセット内のルールは数値コード化され、これによりルールは非圧縮性となりうる。重み及び閾値により見出される数値から、ＮＮにより学習されたルールを見出すことが意図されてきた。このような方法は全てトレーニング後の追加プロセスであり、これらによってＮＮから直接にルールを読み出すことはできない。
【００１９】
１９６２年に、Ｒｏｓｅｎｂｌａｔｔはパーセプトロン学習アルゴリズムの収束を証明し、これは直線的に分離可能なデータセットを満足する数値を反復して見出すものであった。ニューロンは、特定の入力に与える所望の出力を生成するよう、接続の重みを加えることにより学習する。Ｒｏｓｅｎｂｌａｔｔのトレーニングルールは、式１．２に見られるように、入力ｘｉに基づいて重みｗｊが変更されるというものであり、式中、１≦ｊ≦ｎ、ｎはパーセプトロンへの入力の数、ｔは時間ステップ、ηは正のゲイン率で、η≦１である。Ｒｏｓｅｎｂｌａｔｔのルーツはバイナリ出力に対して動作する。特定の入力に対するパーセプトロンの出力が正しいならば、何も起こらない。
Ｗｊ（ｔ＋１）＝Ｗｊ（ｔ）  （１．２）
さもなければ、出力が０であり、かつ１でなければならない場合は、次のようになる。
Ｗｊ（ｔ＋１）＝Ｗｊ（ｔ）＋ηＸｉ（ｔ）  （１．３）
あるいは、出力が１であり、かつ０でなければならない場合は、次のようになる。
Ｗｊ（ｔ＋１）＝Ｗｊ（ｔ）−ηｘｉ（ｔ）  （１．４）
【００２０】
反復して重みを調節するアイデアは、今やフィードフォワードＮＮをトレーニングする方法として確立した。
【００２１】
１９６９年に、より複雑なデータセットに対してＲｏｓｅｎｂｌａｔｔの学習アルゴリズムは動作しないことが見出された。Ｍｉｎｓｋｙ及びＰａｐｅｒｔは、単一層のパーセプトロンは有名な排他的論理和（ＸＯＲ）問題を解けないことを示した。これが動作しない理由は、反復が重み空間内の単一点を見出すために用いられたからである。
【００２２】
Ｂｏｏｌｅａｎ関数の全てが単一のＬＴＧにより学習されうるとは限らない。ｎ個の入力変数には２ｎの組み合わせがあり、可能な出力と組み合わせると２ｎのユニークなＢｏｏｌｅａｎ関数（あるいはスイッチング関数として公知）が存在することになる。２ｎの関数のうち、あるもののみが単一のｎ−入力ＬＴＧにより表されうる。入力スペースが直線的に分離可能であるＢｏｏｌｅａｎ関数は単一のＬＴＧにより表すことができるが、直線的に分離可能ではないＢｏｏｌｅａｎ関数を学習するためには追加のＬＴＧが必要である。ＸＯＲは直線的に分離可能ではないＢｏｏｌｅａｎ関数の例であり、従って単一のＬＴＧでは学習できない。
【００２３】
ＬＴＧに追加の層を用いることで、直線的に分離可能ではない問題をＮＮに学習させることが可能になるが、しかしＬＴＧの複数の層を同時にトレーニングしうる実用でキナトレーニングルールはなかった。
【００２４】
結果として、ＬＴＧの複数の層をトレーニングしうる重み及び閾値のための数値を見出す反復方法がないという理由で、ニューロンのＭｃＣｕｌｌｏｃｈ−Ｐｉｔｔモデルは廃棄された。これは、バックプロパゲーションが開発されるまで続いた。
【００２５】
１９７４年に、Ｗｅｒｂｏｓはエラーバックプロパゲーション（又は「バックプロパゲーション」）のアイデアに至った。後に１９８６年に、Ｒｕｍｅｌｈａｒｔ及びＨｉｎｔｏｎ、さらに１９８６年にＷｉｌｌｉａｍｓ、及び１９８５年にＰａｒｋｅｒが到達したアルゴリズムも同様であり、これにより多層ＮＮモデルをトレーニングして反復的に重みのための数値を見出すことが可能になった。これにより、ＸＯＲ問題並びに単一層のパーセプトロンでは解けない他の多くの問題の解答が可能になった。ＭｃＣｕｌｌｏｃｈ−Ｐｉｔｔのニューロンモデルは活性化関数としてステップ関数に替えてシグモイド関数を用いるよう再び変更された。シグモイド関数の数学的定義は次式１．５で与えられる。
Ｏ＝１／（１＋ｅ−ｋｗｘ）  （１．５）
【００２６】
パーセプトロンは一般的にシグモイド関数をパーセプトロンの活性化関数として用いる。ｋ項は曲線の広がりを制御し、シグモイド関数は、
【００２７】
【数６】
0005395241.tif 000007
において出力が
【００２８】
【数７】
0005395241.tif 000008
となるようにステップ関数を近似する。しかしながら、ｔａｎｈ（ｋｗ・ｘ）等の他の活性化関数も用いうる。この活性化関数は−１から＋１の範囲であるため、ＮＮが負の数を出力可能である必要がある場合に用いられる。
【００２９】
バックプロパゲーションはＲｏｓｅｎｂｌａｔｔの学習アルゴリズムに基づいており、式１．２から式１．４に記載したものである。これは教師あり学習モデルであり、入力ベクトルをＮＮの入力層に加えることにより動作する。入力層はこの入力を第１の中間層に分配する。層内の各ニューロンの出力は式１．５にしたがって計算され、後続の層への入力となる。後続の層への入力となるニューロンの層の出力（又は活性化）を計算するプロセスは、ＮＮの出力が計算されるまでの間に繰り返される。実際の出力と所望の出力との間にはエラーが生じることもあり、エラーの量に従って重みが変更される。出力におけるエラーは、ＮＮ何のエラーを低減するために、今度は出力層への接続から中間層における接続に向かう接続の重みを調節することにより、ＮＮを通じて、フィードバックされるか、又は後方に伝播される。重みの量は、これらのユニット内のエラー量に比例して直接的に調節される。
【００３０】
バックプロパゲーションのデルタルールは式１．６で与えられ、式中、ｉは層、ｊはｉ−１層内に生起する接続元のパーセプトロン、ｋはｉ層内に向かう接続先のパーセプトロンである。
【００３１】
【数８】
0005395241.tif 000009
式中、
【００３２】
【数９】
0005395241.tif 000010
である。
【００３３】
【数１０】
0005395241.tif 000011
は、ＮＮ内の重みに関する数値のエラー低減を意図して重みが変更される量である。重みが変更される量は、ニューロンの出力Ｏｉｊｋ、ゲイン項η（これは学習速度及び出力エラーδｉｊｋとも呼ばれる）に基づく。ＮＮにおけるエラーは、ＮＮの実際の出力と所望の出力との差である。
【００３４】
ＮＮが十分にトレーニングされると、ＮＮにおけるエラーとしてのエラー関数の大局的極小値を最小値と呼ぶ。エラー内には多くの局所的極小値が潜在しているので、エラーは面でありうる、すなわち関数でありうると見なされる。しかしながら、いかなるＮＮに対してもエラー関数は知られていない。エラー関数は、ＮＮに加えられた全ての入力ベクトルに対する所望の出力と実際の出力との差に基づくので、経験的にのみ計算されうる。δｉｊｋ項はエラー関数の１次微分（出力におけるエラーの差に基づく微分）である。バックプロパゲーションがＮＮ内のエラーを最小化するときに、最小化されるのはエラー関数である。勾配（１次微分）を用いることで、ＮＮ内のエラーを最小化する重みを変化する方法の決定が可能になる。これは、勾配降下と呼ばれる。
【００３５】
バックプロパゲーションは、そのアルゴリズム内にＮＮへのニューロンの追加も除去も許容しないため、固定サイズのＮＮでの動作を要する。ＮＮがデータセットを学習するようトレーニングするときに、そのデータを学習するために何層の、各層にいくつのニューロンが必要であるかという推測がなされる。トレーニング後に、必要ではないニューロンを取り除くことにより、トレーニングしたＮＮの性能向上を試みてもよい。しかし、トレーニング中はニューロンの数は一定でなければならない。
【００３６】
伝統的なバックプロパゲーションアルゴリズムは以下のように要約される。（ａ）初期化：ＮＮ内の層数及び各層のニューロン数を定義し、ＮＮの重みをランダムな値で初期化する；（ｂ）トレーニングセットからＮＮに入力ベクトルを加えるる。式１．５を用い、入力層に続く第１層内の各ニューロンに対する出力を計算し、この出力を次の層への入力として用いる。このプロセスをＮＮの各層に対して、出力が計算されるまで繰り返す；（ｃ）式１．６を用い、ＮＮ内に存在するエラー量に従って重みを変更する；（ｄ）ステップ（ｂ）及び（ｃ）を、ＮＮがトレーニングされたと考えられるまで繰り返す。ＮＮは、トレーニングセット中のある数の入力ベクトルに対して、エラーが任意の数値以下に低下する時に、トレーニングされたと見なされる。
【００３７】
バックプロパゲーションを用いてＮＮがデータセットを学習するようトレーニングすることには多くの利点が伴う一方、バックプロパゲーションには限界がある。バックプロパゲーションでは、ＮＮはデータセットの学習に長時間が必要となりうるか、さらに悪い場合としては全くデータセットを学習しないかもしれない。いくつかの場合において、ＮＮがデータセットを学習しない理由の決定は不可能なことがあり、及び／又はトレーニング中にＮＮがデータセットを一体学ぶのかどうか、単に学習に時間がかかるのかを区別することは不可能である。
【００３８】
バックプロパゲーションでは、ＮＮはデータ学習に小さすぎる場合がある。伝統的には、ＮＮの設計者は各中間層に用いるニューロン数、及びデータセットの学習に要する中間層の数も推定しなければならない。ＮＮが大きすぎると、適切に一般化できない場合がある。従って、この問題の改善を意図して、ＮＮからニューロンが取り除かれることがある。ＮＮはエラー空間の局所的極小内に固定されることがある。ＮＮがデータセットの学習を完了すると、ＮＮはエラー空間の大局的極小内にある。エラー関数の形状は未知であり、関数は大きいエラー及び小さいエラーの領域を有する。バックプロパゲーションはエラー関数の１次微分を試行することによりエラーを最小化するよう動作するだけであり、これは局所領域のみの試行である。中間層におけるニューロンのトレーニングの目標はデータセット内の異なる特徴を学習することにある。しかしながら、バックプロパゲーションがＮＮ内にエラーを後方伝播するときは、全ての重みが幾分変更されるため、データセット内の特定の特徴に対する各ニューロンのユニークな関連付けが減少する可能性がある。これは、ニューロンは同一層にある他のニューロンが同一の特徴を学習しているか否かを決定できないために起こりうる。このために、特定のデータの特徴を学習し、その特徴を忘れてしまう重みが生じうる。
【００３９】
バックプロパゲーションでのＮＮのトレーニングにおける主要な問題は、ＮＮがデータセットを学習しない原因が上述の理由のいずれであるか決定できないことである。データセットを学習するかもしれないが単純に遅い、又はＮＮが小さすぎるために全くデータを学習しないかもしれない、又は局所的極小内に固定されるかもしれない。さらに顕著なバックプロパゲーションの問題は、ＮＮがデータセットを学習してしまうと、ＮＮが学習したものは不可解なことに数値としての重み及び閾値にコード化されるということである。
【００４０】
バックプロパゲーションでのＮＮのトレーニングが困難であるため、フィードフォワードＮＮをトレーニングするための代替アルゴリズム開発に多くの研究がなされてきた。
【００４１】
ィードフォワードＮＮをトレーニングするための代替アルゴリズム開発には多くの研究がある。代替アルゴリズムには２つの分類がある。（１）ニューロン又はＮＮの資源の数を固定することを要するアルゴリズム、及び（２）ＮＮに対して動的にニューロンを割り当てられるもの、である。
【００４２】
これらのアルゴリズムのほとんどは固定サイズのＮＮを有することに依存し、結果としてバックプロパゲーションと同一の問題を経験する。公知の方法の１つは、重みの数値を見出すために遺伝子アルゴリズムを用いる。遺伝子アルゴリズムは局所的極小点の問題を避けうるが、トレーニングの時間量は限りがなく、ＮＮが小さすぎるために適切なトレーニングではない場合がある。別の代替法は、動径基底関数（ＲＢＦ、Ｒａｄｉａｌ  Ｂａｓｉｓ  Ｆｕｎｃｔｉｏｎ）を用いることであり、ＮＮの学習に単一層のみを用いるが、１つのデータセットを学習するために利用可能な入力ベクトルをバックプロパゲーションよりも多く必要とする。固定サイズのＮＮに伴う問題の結果として、データセット学習のためにＮＮの成長を許容することが有用である。
【００４３】
フィードフォワードＮＮトレーニングアルゴリズムは、動的にニューロンを追加するものであり、データ内の特徴が確実に学習されるよう、必要なときにのみニューロンを追加する柔軟性をもたらすので、予め定義された構造の問題に対する解答として導入されてきた。従って、他のニューロンがデータセット内の特定の特徴を学習できないときにニューロンが追加され、結果としてトレーニングされたＮＮを用いて、トレーニング中にＮＮにより学習されたルールが何であるかをより効率的に確認できる。予め定義されたネットワーク構造は、ＮＮのデータ学習能力を制限する。ＮＮは重みを加えることにより学習し、これは生物学的なＮＮにおけるシナプスの重みに対応する。前述のように、フィードフォワードＮＮは生物学的なＮＮからインスピレーションを得ている。しかしながら、生物学的なＮＮは、要求されると動的に接続を生成する。
【００４４】
構造的な動的アルゴリズムには２つのアプローチがある。（１）ＮＮからニューロンを除去するもの。ＮＮからニューロンを除去するアプローチは２つある。（ｉ）エラー最小化プロセスにペナルティを追加するＲｕｍｅｌｈａｒｔの重み減衰等、トレーニング中に動作するもの、及び（ｉｉ）より一般的なアプローチ、すなわちＮＮからの重み除去後に大局的エラーへのインパクトを計算するＯｐｔｉｍａｌ  Ｂｒａｉｎ  Ｓｕｒｇｅｏｎ等、トレーニング後にニューロンを除去するもの。（２）Ｃａｓｃａｄｅ−Ｃｏｒｒｅｌａｔｉｏｎ  Ｎｅｔｗｏｒｋｓ（以後「ＣＣＮ」）、Ｄｙｎａｍｉｃ  Ｎｏｄｅ  Ｃｒｅａｔｉｏｎ（以後「ＤＮＣ」）、減数分裂及び超球面分類、例えば制限クーロンエネルギー分類（以後「ＲＣＥＣ」）及び多項式時間トレーニング超球面分類（以後「ＰＴＴＨＣｓ」）等、ＮＮにニューロンを追加するもの。
【００４５】
トレーニング中にＮＮにニューロンを動的に割り当てることにより動作するＮＮトレーニングアルゴリズムを提供する試みは数多くあるが、種々の広範な状況においてデータの効率的及び／又は正確な分類に対して理想的なものは１つもないと考えられている。
【００４６】
ＮＮが科学及び／又は産業に関心をもたれる主な理由は、データ内の関係を見出す能力のためであり、これによりデータが分類でき、次いでＮＮがトレーニング中には直面しなかった入力ベクトル又はパターンをうまく分類できる。この強力な特性は、ＮＮの「一般化」能力とも呼ばれることがある。トレーニング中にＮＮが直面しなかった入力ベクトルは、一般的には未知パターン又は未知入力ベクトルと呼ばれる。ＮＮが一般化を行うにはトレーニングが必要である。
【００４７】
トレーニング中、ニューロンはトレーニングのためのデータセット内の突出した特徴を学習し、これにより未知入力ベクトルの出力を「予言」できる。ＮＮが何を分類できるかは、ＮＮが何でトレーニングされたによる。
【００４８】
ＮＮがデータ内のノイズを処理しうるのは、ＮＮの一般化能力である。
【００４９】
良好な一般化を確実にするためには、ＮＮ内でトレーニングされる重みの数よりも多くの入力ベクトルが利用可能でなければならないと考えられている。
【００５０】
ＮＮが学習した入力ベクトル及びテストセットも同様に高率でうまく分類すると、トレーニングされたと見なされる。しかしながら、トレーニング及びＮＮをテストするために利用可能な分類されたデータセットの数はわずかに限られるので、データセットを分割する方法を考えなければならない。ＮＮをうまくトレーニングし、これによりテストも可能であることを決定するためのデータセットの分割法には多くのアプローチがある。
【００５１】
ＮＮがトレーニングされたか否かを決定する一般的な方法は、バックプロパゲーションでトレーニングされたＮＮを用いるときに入力ベクトルのそれぞれにエラーがいくつあるかを計算することによる。当業者であればＮＮ内のエラー確認にこれまで用いられてきたアプローチを考慮するであろうから、本願明細書においては同様の詳細な議論は示さない。
【００５２】
しかしながら、トレーニングアルゴリズム間の比較の根拠に用いうる属性について記載しておく。
【００５３】
学習アルゴリズムの比較の際に考慮する要因は数多くあるため、性能の客観測定が行われる。
【００５４】
典型的には、次の４つの学習アルゴリズムの属性が考慮される。（１）正確さ：これはトレーニング中に学習されるルールの信頼性である。（２）速度：これは入力ベクトルの分類に要する時間測定である。（３）学習時間：これは入力ベクトルの学習に要する時間測定である。（４）理解度：これは学習されたルールが代替方法に適用可能であることを解釈しうる能力である。このようなストラテジは定量化が困難である。
【００５５】
これらの属性の２つ、すなわちデータセットの学習に要する学習アルゴリズムの時間及びＮＮが学習したものの理解度が、さらに試験される。
【００５６】
前述したように、バックプロパゲーションでＮＮをトレーニングしてデータセットを学習することには長時間のトレーニングが必要であり、ＮＮは全くデータセットを学習しない可能性もある。固定サイズのＮＮのトレーニングにかかる時間は指数関数的であると言われてきた。この理由から、ＮＮのトレーニングにかかる時間は代替トレーニングアルゴリズム間の比較の標準となっている。理想的なトレーニングアルゴリズムは、トレーニング入力ベクトルに対する露出が最短となるであろう。最適化した状況において入力ベクトルに対する露出が最短でありうるのは、ＮＮを各入力ベクトルに１回のみ露出して十分にトレーニングすることであろう。このようなトレーニングアルゴリズムは単一パストレーニングアルゴリズムと呼ばれる。
【００５７】
フィードフォワードＮＮをトレーニングするアルゴリズム間の比較の基盤として一般的に用いられる４つの属性のうち、理解度は、特に数値としてトレーニングされるフィードフォワードＮＮにおいては、最も定量化できないものであり、これはトレーニング中にＮＮに学習されるルールが不可解にも数値としてコード化されているからである。トレーニング中に学習されるルールを抽出可能な方法の１つは、感度分析を実施することによる。感度分析はエラーに対する頑強性の測定として参照されうる。
【００５８】
ルール抽出はシステムが生成する結果におけるユーザの信頼性を与えるものとして関心をもたれ、これはＮＮが外科手術、航空交通管制、及び原子力発電所の監視等の危険な問題の領域に用いられるとき、又は天文データ等、ＮＮのトレーニングにより収集されたデータから理論が推定されるときに特に重要である。
【００５９】
理解度の保証に望まれるルールは、入力の同化に関する命題論理学のルールの形態である。
【００６０】
感度分析は、ＮＮ内に蓄積された情報を見出す１つの道筋であり、しばしばＮＮに実施される。ルールは不可解にも数値としてコード化されているので、ＮＮにより学習されたルールが何かを見出すことが望ましいく、感度分析のこのような実施はＮＮにとって貴重である。
【００６１】
ＮＮへの感度分析の実施に取られるアプローチは２つある。（１）重みを変更する効果、及び（２）ＮＮに対してノイズの多い入力を適用する効果である。
【００６２】
入力スペースが十分に既知であると、必要数のデータポイントの一般化と、以下の３つの方法により選択される入力ベクトルに対するＮＮの出力を見出すことが可能である。（１）データ空間内の全ポイントに対する出力を見出すこと。ＮＮがバイナリ（２値）データでトレーニングされていると、データセットは有限である必要がある。（２）入力スペースからデータポイントをランダムに選択すること、又は（３）入力スペース内の全てのｎ番目のデータポイント（ただしｎ＞ｌ）を選択すること。これにより、入力スペース上の分布も可能になる。
【００６３】
データポイントは、望ましいＮＮの反応が何であるかが既知ではない入力スペースの領域からも選択されうる。この場合、既知でないデータが与えられるときにＮＮがいかに反応するかが示される。
【００６４】
ここまで入力スペースの探求方法を精査してきたが、次いでＮＮ内のニューロンの重み空間を吟味する。
【００６５】
システムには、指定の実施を要求され、あるいは要求された実施をシステムに許容する、多くの構成要素がある。個々の構成要素が指定の実施を行うとき、その構成要素は自己の最適範囲にあると言われる。
【００６６】
感度分析は、システム内の構成要素に対する最適な値又は範囲から外れる効果の試験でありこの場合、最適範囲はトレーニングされたＮＮにおいて重みのためのものである。この場合には、ＮＮの挙動を変更することなく重みが変化できる範囲（又はインターバル）を見出すように、上限及び下限が確立される。感度分析の実施には、システム内の各構成要素が、他の全ての構成要素を一定にしたまま、順番に試験される。試験される構成要素は、システムの動作を決定するための、あらゆる可能な数値に設定される。このプロセス中、システムを最適に動作しうる構成要素の上限及び／又は下限が確認され、構成要素がこれらの範囲を外れるときにシステムの挙動が観察されうる。このプロセスは範囲試験と呼ばれる。上限及び下限は、制約条件として表されうる。
【００６７】
既知の感度分析は、ＮＮが理解可能に学習したものとなるであろう入力変数の同化に関する命題論理学のルールを生成しないと考えられている。
【００６８】
感度分析の目的は、ボリュームの形状を決定しうることにあり、これは構成要素の挙動を正確に画定するからである。しかしながら、既知のＮＮトレーニング法の制約によってニューロンの活性化を生じるボリュームの面を見出すことはできない。この面の試験が可能であった唯一の方法は、統計的手法によりそれぞれの重みの範囲を決定することによる。ボリュームの実際の面の知識があれば、それは重みの間に存在する関係を画定し、このことから所望であれば重みの範囲が決定されるので、理想であろう。
【００６９】
トレーニング中にフィードフォワードＮＮが何を学習したかを決定できることが強く望まれ、結果としてデータ内に存在する関係及びＮＮに学習された関係が何かを確認する試行に多くの研究がなされてきた。これが理解度と呼ばれるものであり、トレーニングアルゴリズムの良好さの決定に寄与する属性の１つである。現在、ＮＮからルールを抽出するために用いられる方法は、トレーニングの完了後に実施される。
【００７０】
見出す必要のある望ましい関係のタイプは、命題論理学により与えられる。この必要性は次のようにまとめられる。（ａ）トレーニング条件を満たす全ての数値解を定義し、これによりＮＮにおいて感度分析が容易に実施可能になるもの。（ｂ）トレーニング中にＮＮにより学習されるルールが、ＮＮにより読み取られるデータセットを容易に分類できるようにするもの。
【発明の概要】
【発明が解決しようとする課題】
【００７１】
種々の動的アルゴリズムに関し、上述の公知のトレーニング方法のうちで、ＮＮからのルールの直接読み取りを許容することに近い唯一のものは超球面分類であり、これは領域間にＯＲの関係を形成する。従って、入力スペース内の領域はあるカテゴリーに属するか又はそうでないため、領域がＡＮＤで結合されることはない。関係が領域内に属さないならば、活性化すべきでないニューロンの活性化を抑制するために球面が追加されるので、入力スペースを表すにはＯＲが適切である。入力スペースが複雑化すると超球面を定義する半径は０になる傾向があり、究極的には各入力ベクトルに超球面が追加される。中間層内のニューロンにより定義される領域は入力スペース内の領域に近いものであるが、画定するものではなく、最悪の場合を除いてはデータポイントと同数の超球面が存在する。ＰＴＴＨＣｓは入力スペースの範囲の改良を意図したものであり、これにより計算の複雑化という代償を払っても一般化の性能を向上するもので、従って非常に低速である。
【００７２】
ＣＣＮ、減数分裂及びＤＮＣは全て数値として重みをトレーニングするもので、このためトレーニング中にデータ内にいかなる関係が見出されたかを決定することは簡単ではない。
【００７３】
これらのアルゴリズムは、一般化に関する性能の成功の程度は様々であるが、全て動的にニューロンをＮＮに対して割り当てるものである。アルゴリズムによっては、あるデータセットについて他のものよりも良好で、超球面分類を除く全ては重み空間の境界条件の情報を失うので、ルール抽出に対して有用ではない。
【００７４】
アルゴリズムによっては、アニーリングに基づき、バックプロパゲーションよりもさらに低速な傾向のある減数分裂アルゴリズムのように、あるデータセットは他のものより迅速に学習するものもある。
【００７５】
ＣＣＮ及びＤＮＣは特定のデータセットに対してトレーニング時間が早いという報告があるが、これらは単一パスのアルゴリズムではなく、両者ともＮＮにニューロンが追加される前にシステム内のエラー量を低減するための反復に依存する。
【００７６】
これまでに、単一パスで学習し、要求通りにＮＮにニューロンも追加し、ＮＮから直接のルールの読み取りを許容する、ＮＮトレーニングアルゴリズムは存在していない。
【００７７】
このため、本発明は、ニューロンが要求通りにＮＮに割り当てられてデータセットを学習しうる意味において、関係性があり動的であるＮＮトレーニング方法を提供することを目的とする。
【００７８】
また、本発明は、単一バスでデータセットを学習しうるＮＮトレーニング方法を提供することを目的とする。
【００７９】
さらに、本発明はルールがＮＮから直接に読み取られることを許容するＮＮトレーニング方法を提供することを目的とする。
【課題を解決するための手段】
【００８０】
本発明の一態様によれば、入力ベクトルがニューロンによって既知であるか未知であるかを決定する方法が提供され、当該方法は、前記入力ベクトルから制約条件及びその補空間を構築するステップと、前記制約条件及び補空間を交互に前記ニューロンの制約条件セットに追加するステップと、いずれかの場合に解答があるか否かを決定するために前記制約条件セットを試験するステップであって、前記制約条件又はその補空間のいずれか一方に解答がある場合には、前記入力ベクトルは、前記ニューロンに既知であることが決定され、前記制約条件及びその補空間が交互に前記制約条件セットに追加されるときに解答がある場合には、前記入力ベクトルは、前記ニューロンによって既知ではないことが決定される、ステップと、を含む。
【００８１】
前記方法において、前記制約条件セットは、ＬＴＧニューロンから構築されるニューラルネットワークのニューロンの制約条件セットであることが好ましい。
【００８２】
また、前記方法において、前記ニューラルネットワークの未知入力ベクトルの出力を決定することを提供してもよい。
【００８３】
また、前記方法において、前記ニューラルネットワークのＬＴＧの未知入力ベクトルを決定するために、データセットに応じて、前記未知入力ベクトルのデフォルト出力は、１又は０にセットされることを提供してもよい。
【００８４】
また、前記方法において、前記ニューラルネットワークのＬＴＧの与えられた未知入力ベクトルが当該ＬＴＧに既知であるか未知であるかを決定することを提供してもよい。
【００８５】
本発明の他の態様によれば、制約条件セットの最小活性化体積（ＭＡＶ）を決定するための方法が提供され、当該方法は、（ｉ）前記制約条件セット内に残る制約条件を変化させずに前記制約条件セットからそれぞれの制約条件を一度に１つ除去するステップと、（ｉｉ）前記除去した制約条件セットの補空間を前記制約条件セットに追加するステップと、（ｉｉｉ）解答があるか否かを調べるために新規な制約条件セットをテストするステップと、を含み、解答がある場合には、ＭＡＶを定義する制約条件セットに最初の制約条件が追加され、前記制約条件セットに追加された前記補空間は除去され、最初の制約条件が前記制約条件セットに戻され、前記制約条件セット内にまだ制約条件がある場合には、ステップ（ｉ）から（ｉｉｉ）を繰り返し、さもなければ前記ＭＡＶは前記ＭＡＶを定義する制約条件セットの範囲内に保持される制約条件のセットとし、解答がない場合には、前記制約条件セットに追加された前記制約条件の補空間は除去され、最初の制約条件が前記制約条件セットに戻され、前記制約条件セットにテストする制約条件がまだある場合には、ステップ（ｉ）から（ｉｉｉ）を繰り返し、さもなければ前記ＭＡＶは前記ＭＡＶを定義する前記制約条件セットの範囲内に保持される制約条件のセットとする。
【００８６】
前記方法において、前記制約条件セットは、ＬＴＧニューロンから構築されるニューラルネットワークのニューロンの制約条件セットであることが好ましい。
【００８７】
また、前記方法において、ニューラルネットワークにおいて、各ＬＴＧに対するＭＡＶを決定することを提供してもよい。
【００８８】
本発明の他の態様によれば、バイナリフォーマットデータセット以外のデータセットをニューラルネットワークにより学習されるバイナリフォーマットデータセットに変換するための方法が提供され、当該方法は、（ｉ）前記データセットの各属性をバイナリで提示するためのビット数を別個に決定するステップと、（ｉｉ）計算式：範囲＝（最大−最小）＋１を用いて前記データセットの属性の範囲を計算し、ステップ（ｉ）で決定したビット数を用いて前記データセットの属性の範囲をコード化するステップと、を含む。
【００８９】
また、前記方法において、ニューラルネットワークによりトレーニングされるデータセットを用意することを提供してもよい。
【００９０】
本発明の他の態様によれば、ニューラルネットワークによりトレーニングされるデータセットをソートする方法が提供され、当該方法は、データセットの入力ベクトルを２つの群にソートするステップと、１を出力するものを０を出力するものと分離するステップと、ニューラルネットワークにより最初に学習される、前記２つの群の一方を選択するステップと、を含む。
【００９１】
また、前記方法において、ニューラルネットワークによりトレーニングされるデータセットをソートすることを提供してもよい。
【図面の簡単な説明】
【００９２】
本発明がより明確に理解され実用化されるために、以下に本発明に係るＮＮをトレーニングする方法及び／又はシステムの好適な構成を詳細に説明する。以下の説明は、非限定的な例としてのみ与えられ、添付の図面を参照する。
【図１】２入力１出力フィードフォワードＮＮの基本構造の例を示す模式図である。
【図２】本発明の好適な実施形態に係るＮＮのトレーニング方法を示すフロー図である。
【図３】図２のＮＮのトレーニング方法に従ってトレーニングされたＮＮの出力の単一のパターンを学習する好適な方法を示すフロー図である。
【図４】図２のＮＮのトレーニング方法に従ってトレーニングされたＮＮの中間層に新たなニューロンを割り当てる好適な方法を示すフロー図である。
【図５】図２のＮＮのトレーニング方法に従ってトレーニングされたＮＮに新たな出力ニューロンを割り当てる好適な方法を示すフロー図である。
【図６】本発明のＮＮトレーニング方法の好適な実施形態に従ってＮＮに新たなニューロンを割り当てる様子を示す模式図である。
【図７】２入力ＬＴＧ−ＮＮの基本構造の例を示す模式図である。
【図８】本発明のＮＮトレーニング方法に従ってＭｏｄｕｌｏ−８問題を用いてトレーニングされた、３出力ＮＮの好適な実施形態を示す模式図である。
【図９】本発明のＮＮトレーニング方法の好適な実施形態に従ってＮＮの中間層にニューロンを割り当てる様子を示す模式図である。
【図１０】本発明のＮＮトレーニング方法の好適な実施形態に従ってトレーニングされたＮＮに新たな出力層を追加する様子を示す模式図である。
【図１１】３入力ＬＴＧ−ＮＮの基本構造の例を示す模式図である。
【図１２】本発明の好適な実施形態に従って行われる、制約条件セットの入力ベクトルが既知か未知かを判定する方法を示すフロー図である。
【図１３】トレーニングされたＬＴＧの重み空間を一般化した図である。
【図１４】好適な実施形態に従って、本発明のＮＮトレーニング方法でトレーニングされたＭｏｄｕｌｏ−８問題を解決することができるＮＮを示す模式図である。
【図１５】本発明の好適な実施形態に従って行われる、制約条件セットの最小活性化体積（ＭＡＶ）を判定する方法を示すフロー図である。
【図１６】本発明の好適な実施形態に係るＮＮのトレーニング中に学習された活性化体積及びその他の制約条件を一般化した図である。
【図１７】ＮＮのトレーニングのテストに用いられる認められたデータセットである二重螺旋問題用のデータセットを示す図である。
【図１８】本発明のＮＮトレーニング方法の好適な実施形態に従って生成され、図１７のデータセット二重螺旋問題を解決するＮＮを示す模式図である。
【図１９】図１７の二重螺旋問題テストデータセットでトレーニングされた図１８のＮＮの結果を示す図である。
【図２０】図１７の二重螺旋問題テストデータセットでトレーニングされたときに図１８のＮＮの中間層の各ニューロンが本発明のＮＮトレーニング方法を用いて学習したことを示す図である。
【図２１】本発明のＮＮトレーニング方法の好適な実施形態に従って生成され、ドイツクレジットデータセット問題を解決するＮＮを示す模式図である。
【発明を実施するための形態】
【００９３】
以下、本発明の詳細な好適な構成を添付の図面を参照して説明する。以下の記載では、ＬＴＧニューロンモデルは、好適な実施形態としてのみ用いられる。利用可能なニューロンモデルは他にも多くあり、本発明のＤＲトレーニング方法又はアルゴリズムに係るＮＮの構成に用いうることは理解すべきである。従って、本発明は、添付の図面に示す特定のニューロンモデルに限定されるものではない。従って、以下の説明を通して「ＬＴＧ」又は「ＬＴＧｓ（複数）」という表記は、単に「任意の適切なニューロンモデル」を意味するものとして解されるべきである。
【００９４】
本発明のＤＲトレーニングアルゴリズムは、本発明のその他の様態と共に、以下に説明するように、任意の適切なコンピュータソフトウェア及び／又はハードウェアを用いて実装されてもよい。従って、本発明は、特定の実用上の実装に限定されるものではない。本発明のＤＲトレーニングアルゴリズムの性能評価の目的で、またアルゴリズム及び本発明のその他の様態が予想通りに動作することを証明する実験を行うために、アルゴリズムは、コードとしてプログラムされコンピュータ上のソフトウェアを用いて実装された。
【００９５】
ＮＮは、様々な形状で互いに接続されてネットワークを構成するニューロンの組み合わせである。２入力フィードフォワードＮＮ１０の基本構造を、例として模式的に図１に示す。ＮＮ１０は、第１又は入力層１６に設けられた２つの入力ニューロン１２、１４を備える。入力ニューロン１２、１４はそれぞれ、その出力を中間層２４に設けられた３つのニューロン１８、２０、２２へ送る。次に、中間層ニューロン１８、２０、２２はそれぞれ、その出力を出力層２８に設けられた１つのニューロン２６へ送る。
【００９６】
ＮＮはデータセット内の関係の判定に用いられる。ＮＮがトレーニングされる前に、利用可能なデータが、トレーニングに利用されるものとテストに利用されるものの２つのセットに分割される。トレーニングセットは、ＮＮのトレーニングに用いられる。テストデータセットは、ＮＮのトレーニング後まで保存する。テストデータセットは、トレーニング後、ＮＮが十分にデータを学習したかどうか、又はＮＮがデータのうちある様態を欠いていないかどうかを判定するためにＮＮに送られる。以下の説明を通じて、「ＮＮをトレーニングする」又は「トレーニング」という表記は全て、トレーニングデータセットでのＮＮのトレーニングについて述べるものとする。
【００９７】
ＮＮトレーニングアルゴリズムの多くは、トレーニング条件を満たそうとする１つの数値を見つけ、ＮＮの所望の出力と実際の出力との間の誤差に基づいて重みの値を繰り返し修正することにより学習する。
【００９８】
本発明のＤＲトレーニングアルゴリズムは、ニューロンのトレーニングに種々のアプローチをとる。このトレーニングアルゴリズムは、トレーニング条件を満足する重みについて単一の値を見つけることには基づいていない。その代わりに、本発明のＤＲトレーニングアルゴリズムは、トレーニング条件を満たすことになる重みを全て見つける。このため、入力ベクトルは、入力重みを閾値に関連付ける制約条件に変換されることが好ましい。各ニューロンは、互いに相互関係を形成する入力重みのセット及びトレーニング条件を満たす閾値を有している。ニューロンに制約条件を加えることにより、重み空間の領域にニューロンを活性化させる別の制約条件が置かれる。
【００９９】
本発明は制約条件に変換される入力ベクトルに関連して説明されるが、言うまでも無く、本発明は制約条件の使用にのみ限定されるものではない。制約条件は、入力重みと閾値との間の関係を表すにすぎない。同様の関係を他の方法で、例えば電子的又は磁気的に表すこともでき、そのため、本発明は与えられた具体例に限定されるものではない。
【０１００】
このニューロンのトレーニング方法を用いることにより、ＮＮにニューロンを動的に追加することによってＮＮを形成することができる。この方法は、ＮＮへのニューロン追加について厳密な基準を設けており、ニューロンを先に述べた標準的なフィードフォワードトポロジに追加することができる。
【０１０１】
このニューロンのトレーニング方法により、データセットは単一のパスで学習することができる。また、制約条件は各ニューロンの重みと閾値との間の関係を定義し、ニューロンがＮＮに追加されるときは前置詞的論理に従って追加されるため、トレーニング中に学習された規則の抽出は簡単になる。
【０１０２】
ＮＮが本発明のＤＲトレーニングアルゴリズムでデータセットを学習するには、一連のプロセスに取り組むことが望ましい。各データセットは固有であり、多数の出力を有し、これはデータセットに基づいている。このシーケンスを簡潔にまとめると以下のようになる。（１）ＮＮの初期化。（２）ＮＮにより学習されるデータの準備。（３）ＮＮにより学習されるデータを加える。（４）必要に応じてＮＮにニューロンの割当て。
【０１０３】
すでに述べたように、本発明の好適な実施形態に従って用いられるニューロンは、ＬＴＧすなわちマカロック−ピッツニューロンであり、制約条件セットを含むよう修正されている。ＬＴＧの初期化フェーズ（１）は、入力ニューロンの出力ニューロンへの接続と、最初にトレーニングされることになる出力の選択とを伴う。
【０１０４】
データ準備フェーズ（２）は、好ましくは、ＮＮにより学習されるデータを準備する多数のステップを含み、以下の点が指摘される。（ｉ）ＮＮに提示されるデータがトレーニングに適した適切なフォーマットでない場合、ＮＮに提示される前にデータセットが適切なフォーマットに変換されることが好ましい。本発明の好適な実施形態によれば、適切なデータフォーマットはバイナリデータである。従って、本発明のＤＲトレーニング方法でトレーニングされるデータセットは、ＮＮへの提示前にバイナリ形式に変換される。任意の適切なデータのデジタル化方法を用いることができる。本発明のさらなる様態によれば、適切なデータのデジタル化方法については後の実験結果を説明する部分で、本願明細書において説明する。バイナリデータは好適なトレーニングデータフォーマットとして提示されるが、本発明のＤＲトレーニングアルゴリズムは、例えば浮動小数点データ等のその他のデータフォーマットでも機能することは言うまでもなく、そのため、本発明は与えられた具体例に限定されると解釈するべきものではない。（ｉｉ）本発明のＤＲトレーニングアルゴリズムは単一パスアルゴリズムであるため、入力ベクトルの提示順にある程度の注意を払うことが好ましいが、これはＮＮが学習する規則とどれぐらいうまく動作するかに影響を与えることがあるためである。検討の価値があるとはいえ、本発明のＤＲトレーニングアルゴリズムはどの入力ベクトルがニューロンをＮＮに追加させるかを検知し報告することができるＮＮを構築するため、入力ベクトルの提示順は不可欠というわけではない。このステップは、トレーニングされたＮＮの動作がよくない場合に用いられることが好ましい。このステップは、データセットがＮＮへのＬＴＧ追加が必要とされるに十分複雑である場合には常に大いに推奨される。
【０１０５】
次のフェーズ（３）では、ＮＮ入力にデータを加え、データが重みと学習されるＬＴＧの閾値との間の関係である制約条件に変換されることが好ましい。中間層がある場合には、ＬＴＧの出力は次の層のＬＴＧへの入力になり、今度は次の層のＬＴＧは、受信する入力ベクトルをうまくいくならば学習しうる制約条件へと変形する。このプロセスはＮＮが所望の出力を生成するまで繰り返される。これがＮＮにより学習可能な場合には、次の入力ベクトルでトレーニングが継続され、そうでなければプロセスは次のＮＮに１つ以上のＬＴＧを追加するフェーズ（４）に移る。
【０１０６】
入力ベクトルの学習ができない場合の考えられるシナリオには、少なくとも２つある。これらは、以下の通りである。（ｉ）中間層が入力ベクトルを学習できなかった場合、新たなＬＴＧが中間層に追加される。（ｉｉ）出力層がその入力ベクトルを学習できなかった場合、新たな層がＮＮに追加され、古い出力が中間層のＬＴＧとなる。そして、別のＬＴＧがこの新たな中間層に追加されて古い出力ユニットが学習できなかったことを学習し、これらのＬＴＧはいずれも出力を組み合わせる新たな出力に接続される。
【０１０７】
ＬＴＧがＮＮに割り当てられた後は、以下のことが重要である。（ａ）新たなＬＴＧがＮＮ内の既存のＬＴＧに接続される。（ｂ）新たに追加されたＬＴＧの制約条件セットが空に設定される、又は以前の最後のＬＴＧからの制約条件が新たなＬＴＧにコピーされる。（ｃ）新たなＬＴＧの追加によりＮＮが以前に学習したことを忘れることがないようにする。これは単一パストレーニングアルゴリズムであるので、新たに追加されたＬＴＧがＮＮが以前に学習したことを生成することができるようにすることが不可欠である。
【０１０８】
本発明のＤＲトレーニングアルゴリズムは（１）〜（４）の一連のプロセスとの関連で提示されるが、これらのステップ又は少なくともこれらのステップそれぞれの様態が提示された以外の順序で行われてもよいことは言うまでもない。例えば、ステップ（１）及び（２）の場合、利用可能なデータセットは、トレーニングされるＮＮの出力が選択される前に適切なデータフォーマットに変換されてもよい（図２参照）。同様に、ステップ（４）の場合、新たな中間層ＬＴＧは、新たな出力ＬＴＧが追加される前にＮＮに追加されてもよいし、その逆でもよい。従って、本発明のＤＲトレーニングアルゴリズムは、提示されるステップ又はシーケンスの特定の順序に限定されるものではない。
【０１０９】
以下、本発明のＤＲトレーニングアルゴリズムの好適な実施形態、及び本発明のその他の様態を、上記で概観したフェーズに従って提示する。（１）ＮＮの初期化。（２）データの準備。（３）学習されるデータのＮＮへの提示。（４）必要に応じて、最終的にＬＴＧの割当て。
【０１１０】
（ＤＲトレーニングアルゴリズムの説明）
図２に、本発明の好適な実施形態に従って行われるＮＮトレーニング方法すなわちアルゴリズム３０のフロー図を示す。
【０１１１】
トレーニングプロセスはＬＴＧの入力層で始まる。以下、ＮＮにＬＴＧを動的に追加するＤＲトレーニングアルゴリズム３０をまとめて、以下のステップで提示する。
【０１１２】
（１）ＮＮの初期化
ＤＲトレーニングアルゴリズム３０によるＮＮの初期化は、一般に、図２のブロック３２により示される。ブロック３２において、ＮＮを初期化するプロセスは、以下のステップを含むことが好ましい。
ａ）出力ベクトルの各次元が個別にトレーニングされる。学習される次元Ｏｊを選択する。
ｂ）出力ＬＴＧＯｊの制約条件セットを空に設定する。
ｃ）出力ＬＴＧＯｊを入力層に完全に接続する。
【０１１３】
（２）ＮＮにより学習されるデータの準備
ＤＲトレーニングアルゴリズム３０によるＮＮにより学習されるデータの準備のプロセスは、一般に、図２のブロック３１及び３３より示される。ＮＮにより学習されるデータの準備プロセスは、少なくとも以下のステップを含むことが好ましい。
ａ）本発明のＤＲトレーニングアルゴリズム３０はバイナリデータで動作することが好ましいため、図２のブロック３１に示すようにデータセットをトレーニング前にバイナリに変換することが必要となることがある。本発明のさらなる様態による各種のデータセットをトレーニングのためにＮＮに提示する前にバイナリに変換するための適した技術についての考察は、後で述べる。言うまでも無く、本発明のＤＲトレーニングアルゴリズム３０に従ってその他のデータフォーマットを用いることもでき、そのため、ブロック３１は、単に利用可能なデータセットの任意の適切なデータフォーマットへの変換を言うものである。
ｂ）トレーニングセット内の矛盾したデータの有無を判定する。矛盾したデータは、異なる出力を生成する２つ以上の同一の入力ベクトルｘｉが存在するときに生じる。矛盾したデータの例としては、ｘｉ→０及びｘｉ→１であって、データセット中に同じ入力ベクトルが複数回表れ、異なる出力を生成するというものである。矛盾がある場合には、入力ベクトルｘｉの１つのみを用いるべきである。ＮＮはこのデータを学習することができるが、ＮＮはうまく動作しないことになる。ＮＮが矛盾したデータを学習する場合には、全ての入力について０を出力することになる。このような状況を回避するために、矛盾した出力の有無を判定するための入力ベクトルのチェックを行うことが好適である。このトレーニングセット内の矛盾したデータの有無を判定するプロセスは、図２には特に示されていないが、ブロック３１又は３３の一部として同様の動作を行うことができる。
ｃ）学習されるデータは、図２のブロック３３に示すように、任意の適切なソート技術を用いてソートされることが好ましい。ＤＲトレーニングアルゴリズム３０はデータをランダムに学習することができるが、結果として生じるＮＮは効率的にデータを分類するとは限らない。従って、好適なソート技術は以下を含む。
・入力ベクトルを２つのグループにソートし、１を出力するものをその出力について０を生成するものから分離する。入力ベクトルを１を出力するものと０を出力するものの２つのセットに分離する。これら２つのセットのいずれかを最初に学習することができる。又は、
・ＳＯＭ（自己組織化マップ）でデータをソートする。
【０１１４】
すでに検討したように、本発明は特定のソート技法に限定されるものではない。
ｄ）入力ベクトルのセットから１つのリストが生成される。このステップは、ブロック３３により表されるソートステップの一部である。
ｅ）学習対象のデータセットに０入力ベクトルが利用可能か否かを判定する。この０ベクトルは全ての入力次元を０に設定する。この入力ベクトルが利用可能である場合、この入力ベクトルをその出力にかかわらず最初に学習するものとしてソートする。０ベクトルがトレーニングに利用可能であり、その出力にかかわらず最初に学習されることが好適であるが、利用可能でない場合には、重要ではない。ここでも、このステップはブロック３３により表されるソートステップの一部である。
【０１１５】
（３）ＮＮにより学習されるデータを加える
ＤＲトレーニングアルゴリズム３０に従ってＮＮにより学習されるデータを加えるプロセスは、概ね、図２のブロック３４により表される。ブロック３４において、ＮＮの出力について各パターン（又は入力ベクトル及び関連付けられた出力の組み合わせ）が、これ以上学習するものがなくなるまで、学習されることがわかる。ＤＲトレーニングアルゴリズム３０に従って出力に対して単一のパターンを学習するプロセス４０の好適な実施形態を図３に示す。
【０１１６】
プロセス４０は、ブロック４１においてＮＮの第１層で始まる。そして、トレーニングセット内の各入力ベクトルについて、以下が行われる。
ａ）ブロック４２で、入力層に加えられた入力ベクトルに基づく制約条件が次の層の各ＬＴＧについて構築される。制約条件を生成するために、（ＬＴＧを定義した箇所ですでに検討した）ＬＴＧの定義が用いられ、入力ベクトルＸｉ及びＬＴＧの重みベクトルｗがＬＴＧの閾値ＴとＮＮの出力に基づいて関係を形成する。従って、ＬＴＧが１を生成するのであれば、構築される制約条件は以下のようになる。
ｘｉ・ｗ＞Ｔ→１
又は、出力が０であれば、生成される制約条件は以下の通りとなる。
ｘｉ・ｗ＜Ｔ→０
ｂ）またブロック４２において、入力ベクトルｘｉから構築された制約条件がこの層内のどのＬＴＧでも学習することができるかどうかを判定するテストが行われる。制約条件を学習するということは、ＬＴＧの制約条件セットに制約条件を追加することができるということである。制約条件は、数的な解答を見つけることができれば、追加することができる。アルゴリズムにとって、どのような数的解答であるかは関心のないことであり、見出すことができることが必要なだけである。これは、制約条件間に共通部分がなければならないことと等価である。このテストは、ＬＴＧをＮＮに追加する基準を構成する。入力ベクトルから形成される制約条件を学習することができるＬＴＧがなければ、これが新たなＬＴＧをＮＮに割り当てる基準となる。
・ＬＴＧが入力ベクトルを学習することができる場合、ブロック４３でＬＴＧの制約条件セットに制約条件が追加される。新たな制約条件の追加により、ＬＴＧの有効化を可能とするＬＴＧの重み空間の領域が減少する。次いでこの層からの出力は、ブロック４５で次の層に加えられ、ＮＮが正しい出力を出力するまでプロセス４０が繰り返される（ブロック４２に戻る）。ブロック４４において、現在の層が出力層であるかどうかを判定し、そうである場合には、プロセス４０はブロック４６で完結し、さらに学習するパターンがある場合には次のパターンが学習される。ある時点において１つの層内で入力ベクトルを学習できなければ、これはＬＴＧの割当ての根拠となる（図３のブロック４７〜４９で示される。これに続くステップ４を参照）。各層は所望のＮＮ出力を出力することができるＬＴＧを有していなければならない。前の層からの入力を受信する層の目的は、所望のＮＮ出力を生成するために前の層の出力を組み合わせることにある。
・すでに述べたように、ブロック４４での確認後、ブロック４５において、ＮＮが正しい回答を出力しさらに学習すべき入力ベクトルが存在する場合には、プロセス４０はステップ３の最初（ブロック４２）に戻る。
・ブロック４４において、ＮＮが正しい回答を生成しさらに学習すべき入力ベクトルが存在しない場合には、このＮＮのトレーニング出力はトレーニングを終了し、プロセス４０はブロック４６で完結し、さらに学習するパターンがある場合には次のパターンが学習される。
・ブロック３５において、ＤＲトレーニングアルゴリズム３０によりさらにトレーニングするＮＮの出力があると判定された場合には、図２に示すようにＤＲトレーニングプロセスは初期化ステップ１（ブロック３２）に戻る。
【０１１７】
（４）必要に応じたＮＮに新たなＬＴＧの割当て
新たなＬＴＧを必要に応じてＮＮに割り当てるプロセスは、概ね図３のブロック４７〜４９により表される。ブロック４７はＮＮの中間層への新たなＬＴＧの割当てを示し、ブロック４９はＮＮへの新たな出力ＬＴＧの割当てを示す。新たな中間層ＬＴＧをＮＮに割り当てるプロセス５０の好適な実施形態を、図４のフロー図に示す。同様に、新たな出力をＮＮに割り当てるプロセス６０の好適な実施形態を、図５のフロー図に示す。この新たなＬＴＧをＮＮに割り当てるプロセス５０、６０をよりよく理解するために、本発明のＤＲトレーニングアルゴリズム３０のプロセス５０、６０によるＮＮ７０の構築を模式的に示す図６ａ及び図６ｂを参照する。
【０１１８】
図３に示す出力について単一のパターンを学習する好適なプロセス４０において、新たな出力ＬＴＧの割当て（ブロック４９）の前に行われるものとして新たな中間層ＬＴＧのＮＮへの割当て（ブロック４７）が示される。図３において、ブロック４２でＬＴＧが入力ベクトル（又はパターン）を学習できない場合には、ブロック４７で新たなＬＴＧが現在の（中間）層に追加されて入力ベクトルを学習することが示される。ブロック４７で新たなＬＴＧが現在の層に追加された後、ブロック４８でテストが行われて、現在の層がＮＮの出力層であるかどうかが判定される。ブロック４８で現在の層がＮＮの出力層ではないと判定された場合、プロセス４０はブロック４５に続き、この（現在の）層からの出力が次の層に加えられる。その後、ＮＮが先に検討したように正しい出力を出力するまで、プロセス４０は繰り返される（ブロック４２に戻る）。ブロック４８で現在の層がＮＮの出力層であると判定された場合、プロセス４０はブロック４９に続き、新たな出力ＬＴＧがＮＮに追加される。ブロック４９で新たな出力ＬＴＧがＮＮに割り当てられた後、プロセス４０はブロック４６で完結し、さらに学習するパターンがある場合には次のパターンが学習される。
【０１１９】
図３のプロセス４０は新たな出力ＬＴＧがＮＮに割り当てられる（ブロック４９）前の新たなＬＴＧの中間層（ブロック４７）への割当てを示すが、言うまでもなく、新たな中間層ＬＴＧの割当て前に新たな出力ＬＴＧをＮＮに割り当てることができる。従って、本発明は特定の例に限定されるものではない。本発明のＤＲトレーニングアルゴリズム３０に従って、新たな出力ＬＴＧが新たな中間層ＬＴＧの割当て前にＮＮに割り当てることができることを説明するために、図６ａ及び図６ｂのＮＮ７０へのＬＴＧの割当てを、図３の好適なプロセス４０に示した順序とは逆の順序で示す。
【０１２０】
以下、新たな出力ＬＴＧをＮＮ７０に割り当てるプロセス６０（図６ａ及び図６ｂ）を、図５を参照して説明する。
・ブロック４２で出力ＬＴＧが入力ベクトルに必要な出力を生成できない場合（図３）、図６ａ及び図３のブロック４９に示すように新たな出力ＬＴＧがＮＮ７０に割り当てられる。
Ｉ．現在の出力ＬＴＧであるＬＴＧ−Ａは、Ｎ層にある。図６ａ（ｉ）参照。別のＬＴＧであるＬＴＧ−Ｂが、Ｎ層に追加される。図６ａ（ｉｉ）参照。ＬＴＧ−Ｂの制約条件セットが、好ましくは空のセットに初期化される。新たなＬＴＧであるＬＴＧ−ＢのＮＮ７０のＮ層への割当ては、図５のフロー図には示さないが、以下に説明するブロック６１の一部であることは言うまでもない。同様に、新たなＬＴＧであるＬＴＧ−ＢのＮ層への割当ては、新たな出力ＬＴＧであるＬＴＧ−ＣのＮ＋ｌ層への割当ての後に起こってもよい。
ＩＩ．ブロック６１において、出力Ｏｊについてのこの層の１つの新たなＬＴＧであるＬＴＧ−Ｃを有する新たな出力層であるＮ＋ｌ層が追加される。そして、ＬＴＧ−Ｃの制約条件セットが、好ましくはステップＶ及びＶＩに従って初期化される。
ＩＩＩ．ブロック６２でＮ層＞１である場合、ＬＴＧ−Ａに接続された前の層であるＮ−１層（図示せず）のＬＴＧから新たなＬＴＧであるＬＴＧ−Ｂに接続が追加される。
ＩＶ．またブロック６２において、Ｎ層のＬＴＧ−Ａ及びＬＴＧ−Ｂのそれぞれの出力がＮ＋１層の新たな出力ＬＴＧであるＬＴＧ−Ｃの入力に接続される。
Ｖ．学習される入力ベクトルが出力０を生成する場合、ブロック６３において以下を行う。
ａ）Ｎ層において新たなＬＴＧ−Ｂがこの層の制約条件に入力を学習するようトレーニングされる。これらのＬＴＧであるＬＴＧ−Ｂ及びＬＴＧ−Ｃは、ＬＴＧ−Ａがこのを学習できなかったために追加される。
ｂ）ＬＴＧ−Ａからの制約条件は、新たなＬＴＧであるＬＴＧ−Ｂの制約条件セットにコピーされ、ＬＴＧ−Ｂで全ての制約条件が≧閾値となるよう設定する。
ｃ）ＡＮＤを形成する制約条件が、Ｎ＋１層において、Ｎ層のＬＴＧ−ＡとＬＴＧ−Ｂの間の新たな出力ＬＴＧであるＬＴＧ−Ｃに追加される。
ＶＩ．学習される入力ベクトルが出力１を生成する場合、ブロック６４において以下を行う。
ａ）Ｎ層において新たなＬＴＧ−Ｂがこの入力の制約条件を学習するようトレーニングされる。
ｂ）ＬＴＧ−Ａからの制約条件は、新たなＬＴＧであるＬＴＧ−Ｂの制約条件セットにコピーされ、ＬＴＧ−Ｂで全ての制約条件を＜閾値に設定する。
ｃ）ＯＲを形成する制約条件が、Ｎ＋１層において、Ｎ層のＬＴＧ−ＡとＬＴＧ−Ｂの間の新たな出力ＬＴＧであるＬＴＧ−Ｃに追加される。
・ブロック４２（図３）でＮ層のＬＴＧが必要な出力を生成することを学習できない場合、新たなＬＴＧであるＬＴＧ−Ｄが図６ｂ及び図３のブロック４７に示すようにＮＮ７０のその層であるＮ層に割り当てられる。
【０１２１】
以下、新たな中間層ＬＴＧをＮＮ７０に割り当てるプロセス５０（図６ａ及び図６ｂ）を、図４を参照して説明する。
Ｉ．ブロック５１で、どのＬＴＧもデータを学習することができないＮ層に追加ＬＴＧであるＬＴＧ−Ｄが追加される。次いで、制約条件セットが好ましくはステップＶ及びＶＩに従って初期化される。残りのステップであるステップＩＩ〜ＶＩは、概ね置き換え可能であり、従ってこれらの手続きステップの順序は図４に示すものから変化してもよい。
ＩＩ．ブロック５３で、このＮＮ出力Ｏｊについて、ＬＴＧ−Ｄの出力からＮ層の出力層を形成するＮ＋１層内の全ＬＴＧへの接続が行われる。ブロック５４で、Ｎ層内のその他のＬＴＧであるＬＴＧ−Ａ及びＢにより学習されてはならないことに基づいて、Ｎ＋１層内のＬＴＧ（この場合はＬＴＧ−Ｃ）が新たなＬＴＧであるＬＴＧ−Ｄからの入力をどうすればよいかがわかるように、これらのＬＴＧが更新される。
ＩＩＩ．Ｎ層＞１のとき、ブロック５２で、このＮＮ出力Ｏｊについて、前の層であるＮ−１層（図示せず）の入力を形成する全てのＬＴＧから、ＬＴＧ−Ｄに入力接続が追加される。
ＩＶ．ブロック５５で、新たなＬＴＧであるＬＴＧ−ＤがＮ層が学習できない入力ベクトルを学習するようトレーニングされる。新たなＬＴＧであるＬＴＧ−ＤがＮ層内の他のＬＴＧが学習できない入力ベクトルを学習するトレーニングプロセス（ブロック５５）をよりよく理解するために、関連する好適な手続きのより詳細な分析を含むさらなるブロックであるブロック５６が設けられる。
Ｖ．学習する入力ベクトルが出力０を生成する場合、ブロック５７及び５８において、以下が行われる。
ａ）この層であるＮ層内の以前の最後のＬＴＧであるＬＴＧ−Ｂの制約条件が、新たなＬＴＧであるＬＴＧ−Ｄ制約条件セットにコピーされて（ブロック５７）、全ての制約条件を≧新たな閾値に設定する（ブロック５８）。
ｂ）ＬＴＧ−Ｃは、Ｎ層内のＬＴＧ−Ｄ及びその他のＬＴＧからの入力についてその制約条件セット内でＡＮＤを形成する。ブロック５４を参照のこと。論理は（Ａ・・・Ｂ）かつＤである。
ＶＩ．学習する入力ベクトルが出力１を生成する場合、ブロック５７及び５９において、以下が行われる。
ａ）この層であるＮ層内の以前の最後のＬＴＧであるＬＴＧ−Ｂの制約条件が、新たなＬＴＧであるＬＴＧ−Ｄ制約条件セットにコピーされ（ブロック５７）、全ての制約条件を＜新たな閾値に設定する（ブロック５９）。
ｂ）ＬＴＧ−Ｃは、Ｎ層内のＬＴＧ−Ｄ及びその他のＬＴＧからの入力についてその制約条件セット内でＯＲを形成する。ブロック５４を参照のこと。論理は（Ａ・・・Ｂ）又はＤである。
・図３を参照すると、新たなＬＴＧであるＬＴＧ−Ｄの割当ての後、ブロック４７で、ＮＮ７０が正しい回答を出力しさらに学習すべき入力ベクトルが存在する（ブロック４８）場合には、プロセス４０はステップ３の最初（ブロック４５を経由してブロック４２）に戻る。
また図３を参照すると、新たなＬＴＧであるＬＴＧ−Ｄの割当ての後、ブロック４７で、ＮＮ７０が正しい回答を出力しさらに学習すべき入力ベクトルが存在しないがさらに学習すべき出力が存在する（ブロック４８）場合には、プロセス４０は初期化ステップ１（図２のブロック３２）に戻る。
【０１２２】
言うまでもなく、制約条件をＮ層内で以前の最後のＬＴＧであるＬＴＧ−Ｂから新たなＬＴＧであるＬＴＧ−Ｄにコピーするときには、論理のその他の組み合わせも可能である。ここに示した具体例は、ＬＴＧをＮＮ７０に割り当てるいずれの場合（プロセス５０、６０）にも機能する単に好適な論理構成である。用いられる特定の学習論理は本発明に必須のものではないが、データはなんらかの形でコピーされる必要があり、そうでなければＮＮ７０はそれまでに学習したことを全て完全に忘れてしまうことになる。
【０１２３】
ＤＲトレーニングアルゴリズム３０によるＮＮ７０へのＬＴＧの割当てはどのような順序でも行うことができることは言うまでもない。従って、図６ａ及び図６ｂによれば、ＬＴＧ−Ｄは、ＬＴＧ−Ｃが新たな出力層であるＮ層＋１に追加される前に、Ｎ層に追加することができたはずである。同様に、手続きステップであるステップＩ〜ＶＩは、ＬＴＧをＮＮ７０に割り当てるいずれの場合（プロセス５０、６０）にも、概ね置き換え可能であり、そのため、本発明は特定のステップの順序に限定されるものではないことも言うまでもない。
【０１２４】
（ＤＲトレーニングアルゴリズムのフェーズの詳細な説明）ＤＲトレーニングアルゴリズム３０及び本発明のその他の様態をよりよく理解するために、以下にアルゴリズム３０の各フェーズ又はステップをより詳細に説明する。このトレーニングアルゴリズム３０は、フィードフォワードＮＮアーキテクチャに基づいており、これはトレーニング条件を満たす単一の数値を見つけることを試みるＬＴＧのＮＮをトレーニングする従来のアプローチとは異なっている。そのかわり、すでに述べたように、このアプローチは、重み空間内に各ＬＴＧについてトレーニング条件を満たす領域を見つけ、これはトレーニングデータセットの単一のパスで学習し、ＬＴＧを動的にＮＮに割り当てることを可能とし、入力ベクトルが分類可能であるか否かを判定することができ、トレーニング中に学習された規則がＮＮから容易に抽出できるようにする。
【０１２５】
初期化：特に、図２のＤＲトレーニングアルゴリズム３０のブロック３２を参照。出力のトレーニング開始には、少なくとも２つのステップが含まれることが好ましい。トレーニング対象の出力の選択、及びその出力に対する出力ＬＴＧの追加である。
【０１２６】
第１ステップ・学習対象出力の選択：ＮＮは、ＮＮの各出力の生成をデータセットごとに別々に学習する。各出力すなわち出力ベクトルの次元は、別の学習プロセスとして扱われる。これは、出力ベクトルの各次元が独立しているため、正当化される。
【０１２７】
トレーニングアルゴリズムにかかわらず、各ＬＴＧは、共通入力を共有するにもかかわらず、中間層にしろＮＮの出力層にしろ、その層内の他のＬＴＧとは別個に機能する。これは、バックプロパゲーションで訓練されたＮＮで問題を引き起こす。すなわち、ＮＮの誤差がＮＮを通してフィードバックされるとき、どの重みを増減するべきなのかを判定することができない。Ｆａｈｌｍａｎらは、これを信用割り当て問題（ｃｒｅｄｉｔ  ａｓｓｉｇｎｍｅｎｔ  ｐｒｏｂｌｅｍ）と呼んだ。この新たなアルゴリズム３０は、各ＬＴＧの独立行動を利用し、各出力ＬＴＧを別々にトレーニングする。これがＮＮの構築方法の主原則となる。出力ベクトルの次元が選択されると、出力ＬＴＧがＮＮに追加される。
【０１２８】
第２ステップ・出力ＬＴＧの追加：初めに、入力層のＬＴＧは完全に出力層ＬＴＧに接続される。また、出力ＬＴＧ内の制約条件セットは、空であることが好ましい。そして出力ＬＴＧにより学習されるデータを準備することができる。
【０１２９】
データ準備：特に、図２のＤＲトレーニングアルゴリズム３０のブロック３１及び３３を参照。これは単一パスのトレーニングアルゴリズムであるため、データがＮＮに提示される順番が重要になる。データの準備には、少なくとも４つのステップが含まれることが好ましい。
【０１３０】
第１ステップとして、ＮＮに提示されるデータがトレーニングに適した適切なフォーマットでない場合、図２のブロック３１に示すように、データセットはＮＮに提示される前に適切なフォーマットに変換されることが好ましい。
【０１３１】
第２ステップにおいてはデータの矛盾をチェックする。矛盾したデータはＮＮのトレーニングの際に問題を引き起こす。相反する出力を生成する入力ベクトルＸｉの例が２つ以上あるため、データの矛盾をチェックする必要がある。言い換えると、Ｘｉが出力０を生成するときに、出力１も生成される。ＮＮはこのデータを学習することができるが、データは矛盾しており、この問題を回避するためにＮＮが固有の入力ベクトルでトレーニングされることが好適である。このステップは、図２のＤＲトレーニングアルゴリズム３０のブロック３１又はブロック３３で行うことができる。
【０１３２】
第３ステップにおいては、トレーニングセット内のデータをＮＮのトレーニング前に順序付ける。０ベクトルの学習によりシステムの多くは不安定になり、これには否定の制約条件及びデータセット学習をバックプロパゲーションでトレーニングされたフィードフォワードＮＮを備えるシンプレックス法を含み、ここでは入力ベクトル０は出力が１であることを要求する。これがＮＮにとって問題である理由は、ニューロンの閾値が負数であることにある。本発明のＤＲトレーニングアルゴリズム３０は、トレーニングセット内のデータをＮＮのトレーニング前に順序付けることにより、このような状況を回避する。０ベクトルは、全ての入力次元が０である入力ベクトルと定義される。例えば、３入力のニューロン又はＮＮについての０ベクトルは、［０  ０  ０］である。０ベクトルがトレーニングセット内に利用可能である場合、これが最初にＮＮにより学習されるが、これにより０ベクトルがＮＮに１を出力させる場合にＮＮに起こりうる不安定性を回避するからである。
【０１３３】
第４ステップ：入力ベクトル０が既知である場合、利用可能であれば、これが最初に学習されるべきである。そして、特にトレーニング中にＬＴＧがＮＮに割り当てられる必要がある場合には、ブロック３３でＮＮのトレーニング前に入力ベクトルが何らかの順番にソートされることが好ましい。本発明のアルゴリズム３０は、データがＮＮに提示されたまま学習されるため、ビルトインのサーチメカニズムを有していない。これは、ＤＲ学習がＮＮを単一のパスでトレーニングするため、ＮＮが提示された全てのデータセットを学習できなければならないからである。
【０１３４】
本発明のさらなる様態によれば、好適なソート方法（ブロック３３）は、データをそれぞれ１又は０を生成するセットにソートし、データセットによっては１又は０を生成するこれらのベクトルを最初に学習する。大まかなガイドラインとして、０→０ならば、０を出力するベクトルを最初に学習し、そうでなければ１を出力するベクトルを最初に学習する。
【０１３５】
別の考えられるソート方法としては、生物学的な脳のソート技術の１つをシミュレートするＳＯＭすなわち自己組織化マップを使用する方法がある。生物学的な脳は、大脳皮質の表面上でＳＯＭに類似のメカニズムを用いる。ＳＯＭは、入力ベクトルをデータセットにおける特徴の２次元クラス表現に組織化又はソートすることにより機能する。特徴は入力ベクトルをその出力を参照することなく分類する。ＳＯＭで特定の特徴に属するものとして分類された入力ベクトルは、特徴に分離及びソート可能であり、トレーニングメカニズムに与えるために収集可能である。このようにして、ＤＲ学習はデータセットの特定の特徴を分類する方法を学習するＬＴＧをまとめてクラスター化することができる。
【０１３６】
この構造は３次元的にも想像可能であり２次元ＳＯＭ及び３次元はＤＲにトレーニングされたＮＮである。おおよそドーム型の生物学的な脳を単純化して見ると、ＳＯＭが表面にありフィードフォワードＮＮが表面から発生している。１つの考えられるモデルとしては、大脳皮質がフィードフォワードニューロンと相互に接続されたＳＯＭの層からなるというものがある。
【０１３７】
言うまでもなく、本発明のＤＲトレーニングアルゴリズム３０で用いることのできるソート技術としては数多く考えることができ、そのため、本発明は特定の例に限定されるものではない。
【０１３８】
ＮＮへのデータを加える：特に、図２のＤＲトレーニングアルゴリズム３０のブロック３４及び３５、より詳細には図３のプロセス４０を参照。本発明のＤＲトレーニングアルゴリズム３０は、好ましくは先に述べたようなＬＴＧを用いる。さらに、ＤＲトレーニングアルゴリズム３０、好ましくは、移転機能としてヘヴィサイド、又はステップ機能を用いる。このタイプのゲートは、入力空間のクラス間にはっきりとした境界を設け、入力ベクトルのクラスを綺麗に分けるため、用いられることが好ましい。
【０１３９】
本発明のＤＲトレーニングアルゴリズム３０は、重み及び閾値についてトレーニング条件を満たす単一の数値を見出すのではなく、ＬＴＧの重み空間を制約することにより学習するため、ＬＴＧでうまく機能する。そのため、重み空間内で重み及び閾値を満たす単一の値を見出すかわりに、空間の領域が見出される。制約条件は、教師ありトレーニングの概念に従って、入力ベクトル及び所望の出力から形成される。
【０１４０】
ＬＴＧの閾値Ｔは、定数として扱われる。Ｋｏｈａｖｉが示すように、ＬＴＧの閾値はそのようなものとして扱うことができる。Ｋｏｈａｖｉは補空間重み（論理ＮＯＴを用いて）を用い、Ｔ＜＝０及びＴ＞０の両方の閾値を説明する。本発明のトレーニングアルゴリズム３０において、データは、トレーニング中に、Ｔ＜＝０であるかＴ＞０であるかを判定する。
【０１４１】
もともとのＬＴＧに行われる修正は制約条件セットを含むことだけであり、これは初期化されてからにされる。これは、重みとニューロンの閾値との間の関係についてＬＴＧが学習したことを格納するために用いられるので、実装に必要なことである。すでに述べたように、本発明は制約条件の使用のみに限定されるものではない。制約条件は、入力重みのと閾値との間の関係を表すだけであり、単に本発明の好適な特徴である。
【０１４２】
単一のＬＴＧをトレーニングする制約条件が構築される方法について、以下で検討する。
【０１４３】
単一のＬＴＧについての制約の構築：特に、図３のＤＲトレーニングアルゴリズム３０に従って出力に対する単一のパターンを学習する好適なプロセス４０を参照。ＬＴＧに、ブロック４２で学習することになる入力ベクトル（又はパターン）が提示される。これらの入力ベクトルは、ＬＴＧの制約条件セットに記録される制約条件に変換される。学習に先立って、制約条件セットは空に初期化されることが好ましい。
【０１４４】
トレーニングの開始のために、制約条件を構築する際に第１ステップ（ブロック４２）で、各入力ベクトルｘｉがＬＴＧの入力重みベクトルｗに加えられｘｉ・ｗを生成する。積ｘｉ・ｗは、ＬＴＧの行動を定義する式１．１に基づいて、ＬＴＧの閾値Ｔとの考えられる関係を少なくとも２つ有する。これらの２つの考えられる関係は、それぞれ関連付けられた出力を生成する。Ｔに対する関係及び関連付けられた出力は、式２．１及び２．２で表される。
ｘｉ・ｗ≧Ｔ→１（２．１）
又は
ｘｉ・ｗ＜Ｔ→０（２．２）
【０１４５】
教師あり学習については、本明細書ですでに述べている。教師あり学習の原則を用いて、必要とされる出力が１であれば、必要な制約条件はｘｉ・ｗ≧Ｔである。同様に、生成される出力が０であれば、ｗはｘｉ・ｗ＜Ｔであるように制約される。新たな制約条件が、この制約条件及びその他の以前に追加された制約条件が解答を有するならば、そのＬＴＧの制約条件セットに追加される。これについては、後でより詳細に検討する。入力ベクトル及びＬＴＧの重みから構築される制約条件のＬＴＧの制約条件セットへの追加プロセスは、トレーニングセット中のｎ個の入力ベクトル全てについて繰り返される。
【０１４６】
図７に、２入力ＬＴＧのＮＮ８０の例を示す。この例では、重みベクトルを［ｗ１  ｗ２］Ｔ、入力ベクトルを［ｘ１  ｘ２］、［Ｏｊ］をＬＴＧの出力とする。入力［０  １］について出力が１になるのであれば、ＬＴＧ８２に対する制約条件はｗ２＞Ｔとなる。別の入力ベクトル［１  １］が出力０を生成すると予測されるならば、制約条件ｗ１＋ｗ２＜Ｔも追加される。これらの２つの入力が、｛ｗ２＞Ｔ，ｗ１＋ｗ２＜Ｔ｝というこのＬＴＧ８２についての制約条件セットとなる。制約条件セットを構築することにより、ＬＴＧ８２は入力／出力の分類を学習する。
【０１４７】
以上、ＬＴＧをトレーニングする入力ベクトルから制約条件を構築する方法を説明してきた。新たな入力ベクトルが学習され、関連付けられた制約条件をＬＴＧについての制約条件セットに追加できるようになる前に、ＬＴＧが入力ベクトルを形成する制約条件を学習することができるのかどうかを確認しなければならない。以下、新たな入力ベクトルを学習することができるか否か、ひいては制約条件がＬＴＧの制約条件セットに追加されるか否かを判定する、入力ベクトルの学習の基準に関する検討を行う。
【０１４８】
入力ベクトル学習の基準：特に、図３プロセス４０のブロック４２を参照。制約条件をＬＴＧの制約条件セットに追加する際の最も基本的な問題は、教えられたことを学習することができるかどうかを判定することである。これについては、本明細書においてすでにより詳細に述べている。
【０１４９】
ＬＴＧが入力ベクトルを学習することができるかどうかについてのテストは、ＬＴＧのＮＮを構築する際の基本である。単一のＬＴＧが全てのデータを学習することができない場合、追加のＬＴＧが必要となる。
【０１５０】
本発明のＤＲトレーニングアルゴリズム３０は入力ベクトルを関連付けられた出力から制約条件へと変換するため、新たな制約条件は重み空間内にＬＴＧがすでに学習した全ての制約条件に解答があるかどうかを判定するためにテストされてよい。これはシンプレックス法を用いて行われてもよい。重み及び閾値のそれぞれについて特定の数値を見出す必要はないが、このテストは、重み及び閾値について確実に数値を見出すことができるようにする。制約条件を満たす数的解答を見つけることができれば十分である。
【０１５１】
以下、重み及び閾値のそれぞれについて特定の数的解答を見出す上で、学習問題への一般的な解答を見出すことが好ましい理由について検討する。
【０１５２】
従来、一般的な解答を見出すことができなかったため、重みのそれぞれについて単一の数値が見出された。
【０１５３】
バックプロパゲーション等の従来のトレーニング方法でトレーニングされたＮＮの重みについて解答を見出すことができるならば、重みが以下の数式から選択されるとき全重みについて無限の数の解答が存在することになる。
【０１５４】
【数１１】
0005395241.tif 000012
この無限の数の解答は、各ＬＴＧについての重み空間に領域を形成する。通常はバックプロパゲーションで選択される解答は、予め指定された許容誤差内のＮＮを生成する見出される数値の最初のセットであることが多い。各ＬＴＧについて見いだされるｗは、ＬＴＧの重み空間内のこの領域の単一の値である。
【０１５５】
この重みの値の解答は、トレーニング中にＮＮに加えられた入力値に基づく平均のようなものであり、値の範囲が単一の解答を見出すために失われるため、両極端が失われている。
【０１５６】
本発明に係るニューロンのトレーニング方法は、一般的な解答が見出されるため、トレーニング中に学習された全情報が保存されるようにする。一般的な解答は、重み空間内の領域を分析してＬＴＧを有効化する重みと有効化しない重みとの間の境界を見出せるようにする。一般的な解答は、全ては互いに相対的であるように見えるため相対的な関係を定義し、そのほかの全てに関してのみ理解可能である。一般的な解答を見出すことにより重み間の関係を分析することができ、その結果、入力間の関係を分析することがでる。最後に、絶対に必要であれば、データセット内の関係をはっきりと具現化する特定の数値を見出すことができる。
【０１５７】
従って、本発明のＤＲトレーニングアルゴリズム３０で訓練されたＬＴＧにより新たな制約条件が学習可能であるかどうかを判定するテストが利用可能である。このテストは、またＬＴＧをＮＮに追加する基準である。入力ベクトルを学習することができなければ、ＬＴＧはＮＮに追加される。
【０１５８】
ＬＴＧのＮＮへの割当て：特に、図３プロセス４０のブロック４７及び４９、並びに図４及び図５の本発明のＤＲトレーニングアルゴリズム３０に従ってＬＴＧをＮＮに割り当てる好適なプロセス５０、６０を参照。単一のＬＴＧのトレーニング方法についてはすでに述べた。単一のＬＴＧの行動は、ＬＴＧのＮＮを構築するための基礎を形成する。単一のＬＴＧのトレーニングは、以下の３ステップを含む。１）入力ベクトルを重みと閾値との間の関係に変換する。２）ＬＴＧが新たな入力ベクトルを学習可能かどうかを判定する。ＬＴＧが入力ベクトルを学習可能かどうかの基準は、制約条件がＬＴＧの制約条件セットに追加される際に数的解答が見出されるか否かによって判定される。３）ＬＴＧが入力ベクトルを学習可能であれば、入力ベクトルから構築される制約条件がＬＴＧの制約条件セットに追加される。
【０１５９】
ＬＴＧがブロック４２で入力ベクトルを学習することができなければ、追加のＬＴＧが必要となる。従って、ステップ２はＬＴＧをＮＮに割り当てる基本的な基準を形成する。以下、ＮＮを構築するためにどのようにＬＴＧを追加するかを説明する。ＬＴＧは、入力ベクトルが必要な出力を生成できないときにのみ割り当てられる。
【０１６０】
このプロセスは、以下のステップを含む。１）新たなＬＴＧとすでにＮＮ内にあるＬＴＧとの間の接続を形成する（図４のブロック５２及び５３、図５のブロック６２）。２）新たなＬＴＧによりＮＮがすでに学習したことを忘れないようにする。
【０１６１】
以下、これらのプロセスのそれぞれをより詳細に説明する。まず、ＮＮアーキテクチャに対する一般的なアプローチについて述べる。その後、出力の選択及び出力を別の問題へ分離することの正当化について述べる。
【０１６２】
ＮＮアーキテクチャ：初めに、入力ＬＴＧが完全に出力ＬＴＧに接続される。入力ＬＴＧ及び出力ＬＴＧの数は、ＮＮによって学習されるデータセットに依存する。各出力は、その他の出力の独立した学習タスクとみなされる（図２のブロック３２）。
【０１６３】
ここでの説明のために、以下ではまず単一出力のＮＮについて考える。本発明のＤＲトレーニングアルゴリズム３０は、トポロジを成長させ、バックプロパゲーションを用いて形成される従来のＮＮに類似のＮＮを形成する。これはユニットを中間層に割当てることができ（図４のプロセス５０）、単一のＬＴＧを含む新たな出力層を追加することができる（図５のプロセス６０）。そして、以前の出力層が、ＮＮ内の中間層となる。この新たな中間層は、これに割り当てられた追加のＬＴＧを有し（図３のブロック４７）、その層内の他のＬＴＧが学習できなかったことを学習する。３つの出力Ｏ１、Ｏ２、Ｏ３を有するＮＮ９０の例を図８に示す。ＮＮ９０は、Ｍｏｄｕｌｏ−８問題データセットを用いて本発明のＤＲトレーニングアルゴリズム３０でトレーニングされた。
【０１６４】
図８に示すＮＮ９０において、Ｏ３は中間層が完全なトレーニング後に必要とされる解答を生成することができることを必要としなかったことがわかる。しかしながら、Ｏ１及びＯ２は中間層を必要とした。トレーニングの始めは、閾値Ｔ１１及びＴ１３のＬＴＧがもともとの出力であった。しかしながら、これらはデータを学習することができずＴ１２が中間層９２に追加され、Ｔ２１がにＯ１ついての出力となった。同様に、Ｔ１３がＯ２を生成できなかったときにはＴ１４が追加された。
【０１６５】
本明細書で用いるＬＴＧを指定する慣例は、ＬＴＧは閾値Ｔを有し、層Ｌに属するということである。どの機能も３層以内で学習することができるので、層の識別には１桁だけが割り当てられる。各層はＮ個のＬＴＧを有しており、これらはその層内を通してｋ＝１・・Ｎと数をつけられる。各ＬＴＧはＬＴＧＬＫと呼ばれ、これに関連付けられたＴＬＫと呼ばれる閾値を有する。各ＬＴＧは入力接続重みのセットを有する。重みベクトルの個々の要素はＷＬＫｊと呼ばれ、ここでｊは受け付けられた入力が送られてきた前の層のＬＴＧである。
【０１６６】
ＮＮの構築：ＬＴＧは、入力ベクトルがＮＮによって学習されることができないときのみＮＮに追加される（ブロック４２参照）。ＬＴＧをＮＮに追加する必要がある場合には、２つの場合がある。（１）まず、出力が必要とされる出力を生成できない場合である（ブロック４９）。（２）次に、中間層内のどのＬＴＧも入力ベクトルを学習することができない場合である（ブロック４７）。すでに述べたように、出力ＬＴＧと中間層ＬＴＧのＮＮへの割当てはどのような順序であってもよい。
【０１６７】
ＬＴＧをＮＮに追加するときに考慮することが好ましいことは以下の通りである。
ａ）ＮＮ内の既存のＬＴＧから形成することが必要な全ての接続は、新たなＬＴＧへと形成される（図４のブロック５２及び５３、及び図５のブロック６２）。
ｂ）新たなＬＴＧをＮＮに追加した後、新たに追加されたＬＴＧがそれまでにＮＮが学習したことをすべて学習することが重要である（ブロック５５）。これにより、ＮＮがそれまでに学習することを忘れることを意味する健忘症と呼ばれる状態を避けることができる。どのようにしてこれが回避されるのかについては、本明細書の後ろで学習論理について述べるときに検討する。
ｃ）ＮＮ内にすでに存在し新たに割り当てられたＬＴＧからの入力を受け付けることになるＬＴＧは、入力を受け付けるように処理されなければならない（ブロック５４）。新たに割り当てられたＬＴＧからこの新たな入力を受け付けることになるＬＴＧの処理ができない場合、これらは新たなＬＴＧの出力を無視する。
【０１６８】
ＬＴＧの中間層への追加：特に、図４の本発明のＤＲトレーニングアルゴリズム３０に従って新たなＬＴＧをＮＮの中間層に割り当てるプロセス５０を参照。ここでは、入力ベクトルが最初に出力を１つだけ有するＮＮに加えられる場合について考える。第１中間層の最初のＬＴＧで制約条件が形成される。層内の第１ＬＴＧが前述のテストで判定された制約条件を学習できない場合（図３のブロック４２）、この層内の次のＬＴＧは、層内のＬＴＧの１つがこれを学習するまで、その出力等で入力ベクトルから形成される制約条件を学習しようとする。しかしながら、この層内のいかなるＬＴＧも制約条件を学習することができない場合、さらにＬＴＧを層に追加してこれを学習しなければならない（ブロック４７）。これは図６ｂのＮＮ７０に示しており、ここでＬＴＧ−ＤがＮ層に追加される。
【０１６９】
例えば、図６ｂにおいて、ＬＴＧ−Ａ又はＬＴＧ−Ｂが新たな入力ベクトルを学習することができない場合、図示されるようにＬＴＧ−ＤがＮ層に追加される。ＬＴＧ−Ｄは、この層すなわちＮ層への入力に基づいて新たな制約条件を学習する（ブロック５５又は５６）。この新たなＬＴＧであるＬＴＧ−Ｄの出力は、出力Ｏｊを有するＮＮ７０の出力層であるＮ＋１層内の出力ＬＴＧであるＬＴＧ−Ｃへの入力にもなる（ブロック５３及び５４）。
【０１７０】
次に、任意の中間層について考える。入力ベクトルがＮＮに加えられるとき、第１中間層の各ＬＴＧは、ＬＴＧのトレーニングに依存して有効化される又はされないことにより応答する。これらのＬＴＧの応答は、次の層への入力ベクトルとして機能し、これは次にそのトレーニング等を前提として応答する。入力ベクトルの結果、受け付ける入力の分類を学習することができない中間層がある場合（ブロック４２）、新たなＬＴＧがその層に追加される（図４参照）。このＬＴＧの中間層への追加プロセスは、全ての入力データが学習されるまで繰り返される。
【０１７１】
ＬＴＧを確立した中間層に動的に割り当てる好適な形式化又はプロセス５０は、以下のアルゴリズムで行われる。
ａ）Ｎ−１層内の全てのＬＴＧへの接続を形成する（ブロック５２）。これらの接続は、新たに割り当てられたＬＴＧへの入力の役割を果たす。
ｂ）学習されている出力についてＮ＋１層内の全てのＬＴＧへの接続を形成する（ブロック５３）。これらの接続は、新たに割り当てられたＬＴＧからの出力の役割を果たす。
ｃ）Ｎ＋１層内のＬＴＧは、Ｎ層内の既存のＬＴＧと新たなＬＴＧとの間の論理関係を形成する（ブロック５４）。
ｄ）新たに割り当てられたＬＴＧは、Ｎ層内の他のＬＴＧが学習したことで処理される（ブロック５５又は５６）。
【０１７２】
十分に複雑なデータでトレーニングされた後にＮＮ１００が構築された接続形態を図９に示す。
【０１７３】
ＬＴＧ−ＨはＮ層のＮＮ１００に割り当てられる（ブロック５１）。ＬＴＧ−Ｈからの出力接続は、出力層ではなく次の中間層であるＮ層＋１内のＬＴＧＦ及びＧの入力へ形成される（ブロック５３）。これについては、個別の学習タスクとして各出力が解決されることについて検討した際に、すでに述べた。前の層であるＮ−１層内のＬＴＧであるＬＴＧ−Ａ、Ｂ及びＤからの入力接続が確立される（ブロック５２）。
【０１７４】
まとめると、中間層ＬＴＧのいずれもその層への入力により形成された制約条件を学習することができない場合、すなわち解答がない場合、ＬＴＧが中間層に追加される。新たなＬＴＧは、その出力を次の層内のＯｊに関連する全ＬＴＧに接続する。出力ＬＴＧが入力の制約条件を学習できない場合、現在の出力層ＬＴＧは中間層となり、図５のプロセス６０に従って新たな出力がＮＮへの出力として追加される。
【０１７５】
ＬＴＧを中間層に追加する方法について説明したので、次に、新たな出力をＮＮに追加する方法を検討する。
【０１７６】
新たな出力の追加：特に、図５のプロセス６０を参照。本発明のＤＲトレーニングアルゴリズム３０に従って新たな出力ＬＴＧをＮＮに割り当てる。トレーニングに出力Ｏｊを選択した後（図２のブロック３２）、すでに述べたように、全ての入力ソースが単一の出力ＬＴＧに直接接続される。単一の出力ＬＴＧは、同じくすでに図３を参照して説明したように、入力ベクトルをＬＴＧに連続的に加えて制約条件を形成することによりトレーニングされる。図１０ａ（ｉ）において、現在トレーニング中の出力Ｏｊを有する出力層１１２に配された単一のＬＴＧであるＬＴＧ−Ａを有するＮＮ１１０の模式図を示す。
【０１７７】
ＬＴＧ−Ａの制約条件セットの制約条件が、入力ベクトルが形成する各制約条件でテストされる（ブロック４２）。用いられるテストについてはすでに述べた。
【０１７８】
新たな制約条件が既存の制約条件セットで解答を持つ場合、制約条件セットに追加される。しかしながら、解答がない場合（ブロック４２）、図１０ａ（ｉｉ）に示すように、別の出力層１１４が追加され、新たなＬＴＧであるＬＴＧ−Ｃが追加される（ブロック６１）。ＬＴＧ−ＣがＮＮ１１０の新たな出力ＬＴＧＯｊとなる。中間層１１２（元の出力層１１２）内に入力ベクトルを学習できなかったＬＴＧであるＬＴＧ−Ａがあったため、図１０ａ（ｉｉ）に示すように、新たなＬＴＧであるＬＴＧ−Ｂが中間層１１２に追加される（これもブロック６１）。ＬＴＧ−Ａが学習することができなかった入力ベクトルは、ＬＴＧ−Ｂによって学習できるようになる。ＬＴＧ−Ａ及びＬＴＧ−Ｂの出力は、出力層１１４のＬＴＧ−Ｃの入力に接続される（ブロック６２）。ＬＴＧ−Ａ及びＢは、ＮＮ１１０の中間層１１２を形成する。
【０１７９】
また図１０ｂのＮＮ１１０のＬＴＧ−Ｃが学習できない入力があった場合、新たな中間層１１４（以前の出力層１１４）が追加されて、新たな出力層１１６がつくられる。このようにして、新たな中間層が作られて出力層が追加される。新たな中間層ＬＴＧであるＬＴＧＥが中間層１１４に追加され、新たな出力ＬＴＧであるＬＴＧＦが新たな出力層１１６に追加される図１０ｂを参照する。
【０１８０】
まとめると、出力ＬＴＧが入力ベクトルを学習できない場合、現在の出力層としての同じ層に別のＬＴＧが追加されて、全ての入力が直接これに接続される。このＬＴＧは古い出力が学習できなかった入力を学習する。追加のＬＴＧは次の層に追加される。このＬＴＧへの入力は、ＮＮの古い出力であり、その層に新たに追加されたＬＴＧである。
【０１８１】
ＮＮに動的に割り当てられたＬＴＧに接続を追加する方法を定めたので、次は、ＮＮがすでに学習したことを再生し続けるようにＬＴＧをトレーニングする方法を考慮することが重要である。以下、これについて検討する。
【０１８２】
論理の学習：本発明のＤＲトレーニングアルゴリズム３０は単一パスアルゴリズムであるので、ＬＴＧがＮＮに追加されるときでも、ＮＮは以前に学習した入力ベクトルに対して正しい応答を返さなければならない。従って、ＬＴＧの追加によりＮＮがすでに学習したことを忘れることがないようにしなければならない。これは、以下のような場合に起こる。（ａ）ＬＴＧが中間層に割り当てられる。（ｂ）新たな出力層がＮＮに追加される。この場合、新たなＬＴＧは中間層に割り当てられる。
【０１８３】
この問題を回避するために：（ａ）新たに中間層に割り当てられたＬＴＧは、特定の論理規則に従ってこの層の他のＬＴＧが学習したことで処理されなければならない（図４のブロック５５又は５６）。（ｂ）また、新たに割り当てられたＬＴＧが割り当てられている層から直接入力を受け付けるＬＴＧの層は、新たに割り当てられたＬＴＧの所望の行動に基づいて学習したことを更新する必要がある（ブロック５４）。この場合は新たな出力層の割当てをカバーする。
【０１８４】
次に、新たに割り当てられたＬＴＧが学習することについて検討する。まず、図１０ａ（ｉ）に示すＮＮ等の、中間層のないＮＮを考える。
【０１８５】
ＬＴＧが入力ベクトルを学習できない状況には少なくとも２つあり、これらは以下の通りである。（１）学習中の入力ベクトルが１を出力する必要があるが、ＬＴＧは以前に学習したことに基づいてこの入力ベクトルについて０しか出力できない場合。（２）学習中の入力ベクトルが０を出力する必要があるが、ＬＴＧは以前に学習したことに基づいてこの入力ベクトルについて１しか出力できない場合。
【０１８６】
すでに述べたように、このような状況においては、図１０ａ（ｉｉ）に示すように、新たな出力がＮＮに割り当てられる。
【０１８７】
続く層がＬＴＧが割り当てられた中間層からの入力を結合することができる考えられる少なくとも２つの方法は、以下の通りである。（１）出力ＬＴＧは中間層ＬＴＧからの入力ベクトルを論理ＯＲで結合する（ブロック６４）。（２）出力ＬＴＧは中間層ＬＴＧからの入力ベクトルを論理ＡＮＤで結合する（ブロック６３）。
【０１８８】
ＯＲの学習：特に、図５のプロセス６０のブロック６４を参照。初めに、ＬＴＧが学習することができなかった入力ベクトルについて検討する。ベクトルがＮＮに１を出力させることになっており、ＬＴＧが以前に学習したことの結果としてＬＴＧが０しか出力できない場合、新たな出力はその入力間にＯＲを形成する必要がある。
【０１８９】
再び図ｌ０ａ（ｉｉ）を参照すると、ＮＮ１１０の出力であるＬＴＧ−ＣはＬＴＧ−Ａが有効化されるとき有効化されることが必要であるが、この場合、ＬＴＧ−Ａは有効化される必要があるができないため、ＬＴＧ−Ｂが入力の特徴を学習する。ＬＴＧ−Ｂは、また、ＮＮ１１０により以前に学習された入力ベクトルを学習する必要がある。これにより、ＬＴＧ−Ｂは出力が有効化されるべきでないときに有効化されることがないようにする。このためには、ＬＴＧ−Ａの制約条件セット内の全ての制約条件がＬＴＧ−Ｂの制約条件セットにコピーされるが、全ての制約条件は＜Ｔとして学習される。ＬＴＧ−ＢはＬＴＧ−Ａが学習できなかった新たな制約条件を学習し、この入力ベクトルの検出により有効化されることになる。これにより、２つの入力をＯＲすることを学習するためＬＴＧ−Ｃが有効化されて、必要に応じて１を出力する。
【０１９０】
ＡＮＤの学習：特に、図５のプロセス６０のブロック６３を参照。出力が０でなくてはならないがＬＴＧは１を出力する場合、新たな出力はＬＴＧ−Ａからの入力と新たに割り当てられたＬＴＧであるＬＴＧ−ＢとをＡＮＤすることを学習する。この場合、制約条件は、０＜ＴがＬＴＧ−Ａの制約条件セットにある場合を除いて、ＬＴＧ−Ａの制約条件セットから≧Ｔとしてコピーされる。この場合、制約条件はそのままコピーされる。
【０１９１】
ＬＴＧがさらに既存の中間層に割り当てられる場合、すでに述べたように、制約条件はその層の以前のＬＴＧ（ＬＴＧ−Ｂ）からコピーされて適宜修正される。しかしながら、ＬＴＧがＮ層に追加される場合、Ｎ＋１層でＬＴＧが学習したことには修正が必要である。
【０１９２】
次の層が学習する論理は、（．．．（ｘ１  Ｏｐ１  ｘ２）Ｏｐ２  ｘ３）Ｏｐ３  ｘ４）．．．）であり、ここでＯｐ１．．．ＯｐＮは論理ＡＮＤ又はＯＲであり、ｘ１．．．．ｘＮは新たなＬＴＧを割り当てた中間層から受け付けた入力である。新たに割り当てられたＬＴＧが既存の中間層に割り当てられる場合、この層からの入力を受け付けるＬＴＧは、その論理に基づく制約条件を更新する必要があってもよい。例えば、この層が既存の論理（ｘ１  ＡＮＤ  ｘ２）を有する場合、制約条件｛ｗｎ１＋ｗｎ２＞Ｔｎ，ｗｎ１＜Ｔｎ，ｗｎ２＜Ｔｎ，０＜Ｔｎ｝を有する。論理が（ｘ１  ＡＮＤ  ｘ２）ＡＮＤ  ｘ３となる場合、制約条件セットは｛ｗｎ１＋ｗｎ２＋ｗｎ３≧Ｔｎ，ｗｎ１＋ｗｎ３＜Ｔｎ，ｗｎ２＋ｗｎ３＜Ｔｎ，ｗｎ３＜Ｔｎ，ｗｎ１＋ｗｎ２＜Ｔｎ，ｗｎ１＜Ｔｎ，ｗｎ２＜Ｔｎ，０＜Ｔｎ｝となる。
【０１９３】
入力ベクトルが学習されることができるときに層内のＬＴＧにより学習される論理は、これらがＮＮに追加される論理に従う。ＬＴＧがＡＮＤを形成するよう追加される場合、ＬＴＧは制約ｘｉ・ｗ≧Ｔを学習し、ＬＴＧがＯＲを形成するよう追加される場合、ＬＴＧはｘｉ・ｗ＜Ｔを学習する。
【０１９４】
（完全な学習と一般化についての説明）
以下、ＮＮが完全にトレーニングされた状態、言い換えると、ＮＮが学習したことを再生することができ一般化することができることを説明する。まず、ＬＴＧが学習した入力を回復することができ、従って十分にトレーニングされていることを説明する。
【０１９５】
ＬＴＧの完全なトレーニング：ＬＴＧがトレーニングされるとき、結果として生じる制約条件のセットをＬＴＧの出力の決定に用いることができる。これは、入力をトレーニングされたＬＴＧの制約条件セットに加え、マカロック−ピッツＬＴＧの行動を定義する式１．１を用いることによって行われる。これは、以下の例において説明される。
【０１９６】
図７に示すように、制約条件セット（ｗ１＋ｗ２＜Ｔ、Ｗ２≧Ｔ）を生成する２入力ＬＴＧ８２を考える。その後入力ベクトル［１  １］を加えると、１．Ｗ１＋１．Ｗ２＝Ｗ１＋Ｗ２＜Ｔであるため、ＬＴＧは０出力を生成する。従って、十分にトレーニングされるＬＴＧには重みに対する数値は必要ではない。
【０１９７】
この引数は、ＬＴＧが学習したことを重み及び閾値についての数値を見出すことなく生成することができることを説明する。また、トレーニングされたＮＮにより学習されたことが１００％の精度で思い出すことができることを説明する。
【０１９８】
本発明は、主要には入力ベクトルに関連付けられた適切な出力を決定するためのＮＮのトレーニングに関するが、ＮＮのトレーニングに用いられるデータ及びトレーニング中に起こりうる２つの問題についての検討も行う。
【０１９９】
一般化：本発明の好適な実施形態は、サンプルデータセットでトレーニング可能でありその後トレーニング中にはＮＮによって見ることのできなかったデータパターンをうまく分類することができるため、フィードフォワードＮＮを用いる。これを一般化と呼ぶ。
【０２００】
データ空間についてほとんどわからないブラックボックスＮＮ分類システムが望ましいこともあるが、データにはＮＮのトレーニングに極めて重大な少なくとも２つの様態があり、これは以下の通りである。（１）大きくノイズの多いデータセットの問題のひとつに、矛盾があるかもしれないことがあり、例えば、ある例ではＸｉ→０であり別の例ではＸｉ→１であるような入力ベクトルＸｉがあるとＮＮはこのベクトルの学習に困難が生じる。この問題は全ての学習アルゴリズムに共通する。（２）ＮＮをトレーニングするために用いられるトレーニングサンプルが確実にデータセットを表す。以下、これについてより詳細に述べる。
【０２０１】
各データセットはいくつかの特徴を有する。トレーニング中にＮＮがさらされるデータセットがＮＮを十分にトレーニングするために必要な全ての特徴を表すことが望まれる。しかしながら、データセットが大きくほとんどわからない場合、トレーニングセットが全データセットの全ての特徴を表していることを判断する方法はない。この場合、データセットは「未知」と呼ばれる。
【０２０２】
トレーニングされたＮＮをテストすることにより、ＮＮがデータセット中の全ての特徴を学習したかどうかを判定することが可能となる。追加の分類入力ベクトルを有するＮＮのテストは、これを実現するための好適な方法である。フィードフォワードＮＮをトレーニングするためのデータセットの分割については、すでに検討した。しかしながら、データセットがよく理解されておらず大きい場合には、それでもまだデータセットのその他の特徴がわからないことがある。
【０２０３】
以下、演繹法が常に機能するわけではない理由について検討する。演繹法は、トレーニングデータセットに欠けている特徴があると機能せず、この問題は「不十分なトレーニング」と呼ばれる。
【０２０４】
ＬＴＧの不十分なトレーニング：ＬＴＧがトレーニングされる各データセットは、データの特徴をいくつ持っていてもよい。トレーニングデータセットは、これらの特徴のうち、その内部で表される特徴を有してもよい。しかしながら、トレーニングセット内に未知のデータセット内の全ての特徴が提示されるという保証はない。
【０２０５】
従って、トレーニングデータセットに表れていない特徴があれば、ＬＴＧはトレーニング中にはデータセットの全ての特徴にさらされることがない。従って、ＬＴＧが見えない入力ベクトルでテストされるとき、間違った結果を出力することがある。従って、ＬＴＧが不十分にトレーニングされていると言うことができる。
【０２０６】
例えば、図７に示す、２つの入力ベクトル［０  ０］→０及び［０  １］→１のみでトレーニングされる２入力ＬＴＧ８２を考える。
【０２０７】
ＬＴＧ８２は入力ベクトルの最初のビットが設定されたどのベクトルにもまださらされていないため、［１  ０］と［１  １］とを正確に分類することができないかもしれない。このＬＴＧ８２が上記トレーニングセットから学習する制約条件セットは｛０＜Ｔ、ｗ２≧Ｔ｝であり、ｗ２についての情報はいくらかあるものの、ｗ１に対する関係は成立していない。例えば、Ｔに対する関係がｗ１＋ｗ２かｗ１かは未知である。その結果、入力ベクトル［１  １］及び［１  ０］についての出力を推定することができない。入力間で形成される論理関係については、これらはｘ２、ｘ１  ＯＲ  ｘ２、又はＸ１  ＸＯＲ  ｘ２であってもよいが、さらに情報がなければどちらであるかを言うことはできない。
【０２０８】
本発明のＤＲトレーニングアルゴリズム３０によれば、ＬＴＧが不十分にトレーニングされている場合、１を出力することが好ましいが、これはデータセットに依存し、かわりに０を出力してもよい。言い換えると、ＬＴＧはデータ入力に対する応答の仕方を学習するまで有効なままとなる。しかしながら、これはＮＮによって学習されているデータセットに応じて変化してもよい。
【０２０９】
従って、トレーニングセット内に欠けている特徴がある場合にはＬＴＧは正しい応答を出力することが難しくなることは言うまでもない。バックプロパゲーション等のその他のトレーニング方法でトレーニングされるその他のニューロンが経験する問題もある。しかしながら、バックプロパゲーションでトレーニングされる知覚とは異なり、本発明のＤＲトレーニングアルゴリズム３０はＬＴＧがデータパターンの分類の仕方を学習していない場合を識別することができ、言い換えると、本発明のＤＲトレーニングアルゴリズム３０でトレーニングされるＬＴＧは、入力ベクトルを正しく分類する方法を知らない場合を示すことができる。
【０２１０】
以下、ＬＴＧの最も有用な特性のひとつ、すなわちＬＴＧが十分にトレーニングされている場合に見えない入力ベクトの出力を推論することができるＬＴＧの能力について検討する。
【０２１１】
見えない入力ベクトルを推論する：ＮＮがトレーニングされているとき、ＮＮは入力ベクトルのセットでトレーニングされ、その後、ＮＮがトレーニング中にはさらされなかった多数の入力ベクトルでテストされる。これらの入力ベクトルは、「見えない」と呼ばれ、ＮＮがその関連付けられた出力を正しく判断することができるかどうかを判定する。
【０２１２】
ＮＮがトレーニング中に見られなかったデータパターンの分類を判断することができるためには、ＮＮが以前に学習したことから見えない入力ベクトルの分類を推論することができる必要がある。トレーニング中に全ての特徴を学習したことは保証されないため、ＬＴＧを考えられる全ての入力ベクトル及びその関連付けられた出力にさらさなければ、出力を正しく推論することはできないかもしれない。全てのデータパターン又は入力ベクトルが利用できるわけではないことが多く、入力データセットを十分に列挙して見出されたとしても分類の仕方がわからないこともある。入力データセットの比率にすぎないトレーニングセットがＮＮが学習のためにトレーニングされているそのデータセットを表すものかどうかを判定する方法があることはあまり考えられない。その結果、特定のデータセットでのトレーニングにより、見えないデータパターンの出力がＮＮによって正しく判定できることがあることを示すことができるだけである。
【０２１３】
命題３．１：見えない入力ベクトルについてＬＴＧの閾値に対する関係が以前に学習した制約条件から推論可能であれば、見えない入力ベクトルについての出力を判定することができる。
【０２１４】
図１１に示すＬＴＧ１２０を考えると、ＬＴＧは以下のような入力ベクトル及び出力ベクトルを用いてトレーニングされる。［０  ０  ０］→０、［０  ０  １］→１、［０  １  ０］→１、［１  １  １］→０。
【０２１５】
そして、ＬＴＧ１２０は、以下のような制約条件セットを有することになる。｛０＜Ｔ、ｗ３＞Ｔ、ｗ２＞Ｔ、ｗ１＋ｗ２＋ｗ３＜Ｔ｝。
【０２１６】
入力ベクトル［１  ０  ０］はトレーニング中にＬＴＧ１２０によって見られておらず、このベクトルに対する必要な出力は０である。ＬＴＧ１２０が閾値に対する関係を推論することができない場合、出力が０であることを判断することができない。
【０２１７】
０＜Ｔ、ｗ２≧Ｔ、及びｗ３≧Ｔであるため、ｗ２及びｗ３＞ＴではＴ、ｗ２、及びｗ３は全て正の数である。従って、ｗ２＋ｗ３は＞Ｔでなければならない。しかしながら、ｗ１が小さく負の数であることを意味するｗ１＋ｗ２＋ｗ３＜Ｔであるため、＜Ｔである。従って、ＬＴＧ１２０に加えられＬＴＧの行動を定義する式１．１を用いるときの入力ベクトル［１  ０  ０］では、１・ｗ１＋０．Ｗ２＋０・ｗ３＝Ｗ１＜Ｔが推論される。従って、ＬＴＧは０を出力する。
【０２１８】
従って、ＬＴＧ１２０は正しい出力を推論することができる。ＬＴＧ１２０が正しい出力を導き出すことができたので、十分にトレーニングされれば出力を推論することができることがわかる。
【０２１９】
本発明のＤＲトレーニングアルゴリズム３０はＮＮの構築にＬＴＧを用いることが好ましいため、演繹法の原則は、本発明によれば、ＮＮの見えない入力ベクトルの分類の推論に用いることができる。代替的に、本発明のさらなる様態に従って、トレーニング中に見えなかったデータパターンの分類を判定する異なる方法を用いることもできる。以下、この代替的なデータパターンの分類を判定する又は制約条件セットの入力ベクトルが既知か未知かを判定する方法を説明する。
【０２２０】
以下、ベクトルが明示的に学習されたかどうかにかかわらず、入力ベクトルを分類する方法を学習したかどうかを判定するために、新規なテストを行う。以下のテストは、ＮＮ出力が入力ベクトルについて既知であるかどうかを示す。
【０２２１】
ＬＴＧが入力ベクトルを知っているかどうかのテスト：トレーニングされたＬＴＧからパターンの分類又は入力ベクトルを見出すことができることが好適である。入力ベクトルがトレーニングされたＬＴＧに加えられるとき、以下のいずれかを行う。（１）有効化する。（２）有効化しない。（３）不十分なトレーニングの結果、入力ベクトルの分類方法を知らない。
【０２２２】
従来のトレーニングアルゴリズムは、ＬＴＧが入力ベクトルの分類方法を知らない状況をＬＴＧに識別させない。本発明のＤＲトレーニングアルゴリズム３０は、ＬＴＧが分類方法を知らない入力ベクトルの識別を可能とする。
【０２２３】
以下、本発明のさらなる様態に係る、制約条件セットの入力ベクトルが既知か未知かを判定する方法１３０の好適な実施形態を、図１２のフロー図を参照して説明する。制約条件セットが、本発明のＤＲトレーニングアルゴリズム３０に従ってトレーニングされたＮＮのニューロンの制約条件セットであることが好適である。言うまでもなく、入力ベクトルが既知か未知かを判定する方法１３０は、ＮＮに限定されるものではない。入力ベクトルを分類する方法１３０は、例えばＤＮＡといったデータストリングの分析等の制約条件のシステムを利用する他の分野においても有用であると考えられる。同様に、入力ベクトルを分類する方法１３０は、ＣＳＰやオペレーションリサーチの用途に利用することもできる。従って、本発明のこの様態は、独立しており、本発明のＤＲトレーニングアルゴリズム３０での使用に限定されるものではない。
【０２２４】
以下の入力ベクトルを分類する方法１３０の説明は、本発明のＤＲトレーニングアルゴリズム３０に従ってトレーニングされたＬＴＧの出力の判定の点から説明される。この説明は、本発明の方法１３０の考えられる使用の一例に過ぎない。
【０２２５】
ＬＴＧが不十分にトレーニングされたかどうか、言い換えると入力ベクトルＸｉの分類の仕方を知らないかどうかを判定するためには、まず、ブロック１３１で、先に述べたように制約条件とその補空間が入力ベクトルから構築される。形成される制約条件は、ｘｉ・ｗ＜Ｔとその補空間ｘｉ・ｗ≧Ｔ、又はｘｉ・ｗ≧Ｔとその補空間ｘｉ・ｗ＜Ｔである。
【０２２６】
この入力ベクトルに関連付けられた出力はまだ既知ではないとする。制約条件ｘｉ・ｗ＜Ｔ又はｘｉ・ｗ＞ＴはトレーニングされたＬＴＧ制約条件セットに追加され、その後、ブロック１３２で解答の有無を判定するために任意の適切な制約充足アルゴリズムを用いてテストされる（数的解答を見出すことができるが特定の解答を見出すには重要ではなく、又は同等に、図１２に示すように制約条件により定義された体積の共通部分を見出すことができる）。解答がない場合には、ＬＴＧはブロック１３３によって表される１又は０を出力しなければならず、ＬＴＧは十分にトレーニングされており入力ベクトルの分類の仕方を知っている。言い換えると、ｘｉ・ｗ≧Ｔ又はｘｉ・ｗ＜Ｔについての解答がなければならない。
【０２２７】
しかしながら、ブロック１３２で、制約条件ｘｉ・ｗ＜Ｔ又はｘｉ・ｗ≧ＴがトレーニングされたＬＴＧの制約条件セットに追加されたときに、解答がある場合、ブロック１３４において制約条件ｘｉ・ｗ＜Ｔ又はｘｉ・ｗ≧Ｔは取り除かれ、その補空間が代わりに追加される。ブロック１３５でチェックが行われたときに解答がない場合、ＬＴＧは入力ベクトルの分類の仕方を知っており、ブロック１３６により表されるように０又は１を出力する。
【０２２８】
しかしながら、ブロック１３５でチェックが行われたとき、制約条件及びその補空間が代替的にブロック１３４で追加されたときＬＴＧが解答を有していた場合、ブロック１３７により表されるように不十分にトレーニングされているため入力ベクトルをどのように分類するべきかは知られていない。言うまでもなく、これらのステップの順序は必須ではない。
【０２２９】
任意の適切な制約充足方法又はアルゴリズムを用いて制約条件を学習することができるかどうかをテストすることができる。重み及び閾値の特定の数的解答を見出すことは重要ではないが、これを見出すことができるか否かを判定することは不可欠である。これは、制約条件により定義された体積の共通部分を見出すことと同等に提示することができる。
【０２３０】
入力ベクトルが制約条件に変換されるとき、これはＬＴＧの重み空間内に面を形成する。入力ベクトルはＬＴＧにより学習されるたびに、重み空間を二分する面を形成し、トレーニング条件を満たす体積を減らしていく。これは図１３（ａ）で示され、囲まれたくぼみ領域がこれまでに学習したトレーニング条件を満足する重み空間である。領域を二分する面はＬＴＧに提示されている入力ベクトルから形成される。この状況では、ＬＴＧは、それぞれ図１３（ｂ）及び図１３（ｃ）に見られるように、ｘｉ・ｗ＜Ｔ又はｘｉ・ｗ≧Ｔを学習することができる。この場合、入力ベクトルの分類の仕方は知られていない。図１３（ｄ）において、ＬＴＧは面の上の領域を学習することができるだけであり、下は学習することができず、従って、出力はトレーニング条件を満たす重み空間の体積を交差する制約条件により決定されることになる。
【０２３１】
図１３（ｅ）において、ｘｉ・ｗ＝Ｔにより形成される面は凸部の体積を交差するが、図１３（ｆ）では、その面で形成された１つの制約条件のみがＬＴＧにより学習されることができる。出っ張り領域は、これらの制約条件の全ての共通部分により形成された領域にのみ交差が与えられるため、凹部領域を減らす。
【０２３２】
たまたまトレーニングセットに入力ベクトルがある場合には、これがトレーニング中に構築された制約条件セットにより定義される体積の表面の１つを形成することになり、入力ベクトルが既知となる。
【０２３３】
まとめると、制約条件及びその補空間はいずれも入力ベクトルから形成され（ブロック１３１及び１３４）、トレーニングされたＬＴＧの制約条件セットで共通部分の有無についてテストされる（ブロック１３２及び１３５）。制約条件のいずれかが解答を導くことができない場合（ブロック１３３及び１３６）、この入力ベクトル内の特徴はトレーニング中に学習済みであることを意味する。しかしながら、ＬＴＧがすでに学習した両方の制約条件について利用可能な解答がある場合には（ブロック１３７）、トレーニングセットから欠けている特徴がある。このような特性は、形式上、以下のように言うことができる。
【０２３４】
定理：制約条件ｘｉ・ｗ＜Ｔ又はｗ≧Ｔとその補空間をＬＴＧが学習した制約条件のリストに交互に追加し（ブロック１３１及び１３４）、共通部分をテストすることにより（ブロック１３２及び１３５）、ベクトルＸｉが学習されているか否かを判定することができる。両方のケースに解答がある場合には（ブロック１３７）、制約条件は学習されていない。しかしながら、ｘｉ・ｗ＜Ｔ又はその補空間のみが以前に学習した制約条件の解答を有する場合には、このベクトルはＬＴＧによって学習済みである（ブロック１３３及び１３６）。
【０２３５】
証明：図１３において、与えられた重み空間の図に、ＬＴＧが学習したことにより定義される２つの体積の表現を示す。くぼみ領域が図１３（ａ）から図１３（ｄ）に示されており、出っ張り領域が図１３（ｅ）及び図１３（ｆ）に示されている。ベクトルによって形成された面は、重み空間、すなわちｘｉ・ｗ＝Ｔに適用される。これは、図１３（ｄ）に示すように定義された体積に交差しないか、その他の全ての場合のように交差する。交差しない場合には、入力ベクトルは学習済みである。この場合、これは体積依存してＬＴＧを有効化する又は有効化しない、すなわちｘｉ・ｗ＜Ｔ又はｘｉ・ｗ≧Ｔは、ＬＴＧがすでに学習した制約条件により形成された体積に交差する。そうでない場合にはｘｉ・ｗは学習されていない。
【０２３６】
この場合、図１３（ｅ）及び図１３（ｆ）に示すように面は出っ張り領域に交差し、領域はＬＴＧが以前に学習した全ての制約条件に共通しなければならないため、これらのいずれか一方のみを学習することができる（関心は両方の共通領域にのみ与えられるため、図１３（ｅ）及び図１３（ｆ）の領域はくぼみ領域すなわちその共通部分に縮小されることに注意）。以下に、上記を示すための例を示す。
【０２３７】
図１１に示す３入力ＬＴＧ１２０について考える。ＬＴＧ１２０が入力ベクトル［０  １  ０］→１及び［０  １  ｌ］→０でトレーニングされる場合、ＬＴＧ１２０が学習する制約条件セットは｛ｗ２＞Ｔ、Ｗ２＋Ｗ３＜Ｔ｝である。ベクトル［１  ０  ０］及び［０  ０  １］の出力を判定する。
【０２３８】
入力ベクトル［１  ０  ０］について、面Ｗ１＝Ｔが領域｛ｗ２≧Ｔ、Ｗ２＋Ｗ３＜Ｔ｝に交差することが見いだされ、Ｗ１＜Ｔ及びＷ１≧Ｔの両方がＬＴＧ１２０により学習された領域と交差する。従って、ＬＴＧ１２０は出力が何であるべきかを知らない。すでに述べたように出力は１であるべきであるが、これは必要であれば学習されたデータセットに従って修正可能である。
【０２３９】
入力ベクトル［０  ０  １］について、面ｗ３＝Ｔが領域｛ｗ２＞Ｔ、ｗ２＋ｗ３＜Ｔ｝に交差しないことが見いだされ、そのような領域はｗ３＜Ｔのみとなる。従って、ベクトル［０  ０  １］の出力は０となることが知られている。
【０２４０】
入力空間についてはあまりよく知られていないが、本発明に従ってＬＴＧをトレーニングするＤＲトレーニングアルゴリズム３０は重み空間について多くの情報を与えない。
【０２４１】
制約条件セットへの各制約条件の追加により、このＬＴＧの全てのトレーニング条件を満たす重み空間の領域が減少する。
【０２４２】
言うまでもなく、入力ベクトルの出力を決定することが２つの考えられる制約条件を比較することである好適な方法は、ＬＴＧが学習した制約条件の閾値で形成されてもよい。これはＬＴＧを有効化する、もしく有効化しない、又は正しい出力を知らない。
【０２４３】
以上、ＮＮがどのようにトレーニングされ、テストされて見えない入力を推論するかを示したが、次に、本発明のＤＲトレーニングアルゴリズム３０及び一般化を説明するために十分に機能する例について述べる。
【０２４４】
（Ｍｏｄｕｌｏ−８問題を所与されたＤＲトレーニングアルゴリズムの使用に係る実施例）
本発明に係るＤＲトレーニングアルゴリズム３０についての詳細を以下に続く解説において例示する。本実施例において、Ｍｏｄｕｌｏ−８問題を解決するＮＮ１４０に係る好ましい実施形態を用いる。データセットは２進数の３次元入力ベクトルを含み、出力は順番における次の２進数である。入力ベクトル［１０１］を任意に選択して、テスト用に予約しておく。ＮＮ１４０をトレーニングする制約条件セットを作成した後、［１１０］となる入力ベクトル［１０１］に対する出力をＮＮが推定することができることを証明する。
【０２４５】
表１に記載したデータセットは、次に記載する入力と関連出力とを有する。
【０２４６】
【表１】
0005395241.tif 000013
ｍｏｄｕｌｏ−８を定義する入力ベクトル及び出力ベクトル
【０２４７】
「制約条件セット」の作成：入力ベクトルを［ｘ１  ｘ２  ｘ３］として定義し、かつ出力ベクトルを［Ｏ１  Ｏ２  Ｏ３］とする。出力ベクトル内にある第１の出力を選択してまずトレーニングする（図２のブロック３２）。ＬＴＧの閾値が有する添字によってＬＴＧを参照する。例えば、ＬＴＧ１１は閾値Ｔ１１を有する。まず、学習される０（この場合は［０００］）ベクトルが利用可能であるかを決定する。利用可能であれば、ベクトル｛０＜Ｔ１１｝を制約条件セットに付加する。現在トレーニングしている、出力ベクトル内の位置にある出力１を最初に学習するように入力ベクトルを整理する（ブロック３３）。図１４ａを参照のこと。
【０２４８】
図３のプロセス４０に従って、出力Ｏ１のためのトレーニングの結果、ＬＴＧ１１は｛０＜Ｔ１１、ｗ１１３＜Ｔ１１、ｗ１１２＜Ｔ１１、ｗ１１２＋ｗ１１３＞Ｔ１１、ｗ１１１＞Ｔ１１、ｗ１１１＋ｗ１１２≧Ｔ１１｝と定義される。
【０２４９】
これは、ブロック４２においてチェックすると解答を有する。なお、次に記載する制約条件を付加することは解答を有さない：ｗ１１１＋ｗ１１２＋ｗ１１３＜Ｔ１１。
【０２５０】
従って、ＬＴＧ１１は、入力ベクトル［１１１］に対して０の代わりに１を出力する。図４のプロセス５０に従って、新しいＬＴＧであるＬＴＧ１２をＮＮ１４０内に付加して入力ベクトル［１１１］を学習する。ＮＮ１４０に係る新しいトポロジーについては図１４ｂを参照のこと。制約条件｛ｗ１２１＋ｗ１２２＋ｗ１２３＜Ｔ１２｝をＬＴＧ１２の制約条件セットに付加する（ブロック５５）。ＬＴＧ１１が学習した情報をコピーし、かつ修正すると、ＬＴＧ１２の制約条件セットは｛ｗ１２１＋ｗ１２２＋ｗ１２３＜Ｔ１２、０≧Ｔ１２、ｗ１２３≧Ｔ１２、ｗ１２２≧Ｔ１２、ｗ１２２＋ｗ１２３＞Ｔ１２、ｗ１２１≧Ｔ１２、ｗ１２１＋Ｗ１２２＞Ｔ１２）になる。
【０２５１】
この時点でＬＴＧ１１は出力であるため（ブロック４８参照）、新しい出力ＬＴＧであるＬＴＧ２１を図５のプロセス６０に従ってＮＮ１４０に付加する。ＮＮ１４０に係る新しいトポロジーについては図１４ｃを参照のこと。出力が０の代わりに１になったので、このことは、新しい出力であるＬＴＧ２１がＬＴＧ１１とＬＴＧ１２との間にＡＮＤを形成することを意味する。
【０２５２】
ＬＴＧ２１がその入力間にＡＮＤを形成することになっているので、その制約条件セットは｛０＜Ｔ２１，ｗ２１１＜Ｔ２１，ｗ２１１＋Ｗ２１２≧Ｔ２１，ｗ２１２＜Ｔ２１）になる。
【０２５３】
第１の出力Ｏ１を学習するのに必要とされる３個のＬＴＧに対する制約条件セットは、ＬＴＧ１１：｛０＜Ｔ１１，ｗ１１３＜Ｔ１１，ｗ１１２＜Ｔ１１，ｗ１１２＋ｗ１１３≧Ｔ１１，ｗ１１１≧Ｔ１１，ｗ１１１＋ｗ１１２≧Ｔ１１，ｗ１１１＋ｗ１１２＋ｗ１１３≧Ｔ１１），ＬＴＧ１２：｛ｗ１２１＋ｗ１２２＋ｗ１２３＜Ｔ１２，０≧Ｔ１２，ｗ１２３≧Ｔ１２，ｗ１２２≧Ｔ１２，ｗ１２２＋ｗ１２３≧Ｔ１２，ｗ１２１≧Ｔ１２，ｗ１２１＋ｗ１２２≧Ｔ１２）、及びＬＴＧ２１：｛ｗ２１１＜Ｔ２１，ｗ２１１＋ｗ２１２≧Ｔ２１，ｗ２１２＜Ｔ２１，０＜Ｔ２１）である。
【０２５４】
出力Ｏ１の出力をトレーニングしたところで、プロセスは、出力Ｏ２のトレーニングへと進む（ブロック３５におけるチェック後、ブロック３２に戻る）。表２に記載したようにデータが整理される（ブロック３３）。入力ベクトル［１０１］をテスト用に除外してあることに留意することが大切である。図１４ｄは、現在のＮＮ１４０について、Ｏ２の最初の出力ＬＴＧであるＬＴＧ１３を示す概略図を提供する。
【０２５５】
【表２】
0005395241.tif 000014
Ｍｏｄｕｌｏ−８のデータセットの第２の出力
【０２５６】
ＬＴＧ１３は、制約条件｛０＜Ｔ１３，Ｗ１３３≧Ｔ１３，Ｗ１３２≧Ｔ１３，ｗ１３１＋Ｗ１２３≧Ｔ１３｝を学習する（ブロック３４）。
【０２５７】
なお、入力ベクトル［０１１］に対する制約条件ｗ１３３＋ｗ１３２＜Ｔ１３を制約条件セットに付加することは、図３のプロセス４０のブロック４２においてチェックすると解答を有さない。図４に示したプロセス５０に従って、新しいＬＴＧであるＬＴＧ１４をＮＮ１４０に割り当てて、ＬＴＧ１３を備えた中間層１４２を形成する。ＬＴＧ１４は、入力ベクトル［０１１］に対する制約条件ｗ１４３＋ｗ１４２＜Ｔ１４を学習する（ブロック５５）。ＮＮ１４０に係る新しいトポロジーについては１４ｅを参照のこと。
【０２５８】
ＬＴＧ１３が入力ベクトル［０１１］に対して求められる０の代わりに１を出力するので、このことは、出力ＬＴＧがその入力間にＡＮＤを形成しなければならないことを意味する（ブロック５４）。
【０２５９】
従って、この条件を学習するために新しいＬＴＧ１４を付加して、ＬＴＧ１４が入力ベクトル［０１１］を学習する。ＬＴＧ１４：｛０≧Ｔ１４，ｗ１４３＋ｗ１４３＜Ｔ１４，ｗ１４３≧Ｔ１４，ｗ１４２≧Ｔ１４｝
【０２６０】
図５のプロセス６０に従って、出力Ｏ２に対して、再び、新しい出力ＬＴＧであるＬＴＧ２２（ＡＮＤを用いることによってその入力を統合するよう学習する）を付加し、その結果、制約条件セット：｛０＜Ｔ２２，ｗ２２３＜Ｔ２２，ｗ２２３＋ｗ２２４≧Ｔ２２，ｗ２２４＜Ｔ２２）を生成する。ＮＮ１４０に係る新しいトポロジーの概略図については図１４ｆを参照のこと。
【０２６１】
ＬＴＧ１３が次のベクトル［１０１］を学習して、ＬＴＧ１３の制約条件セットがＬＴＧ−Ｂ：｛０＜Ｔ１３，ｗ１３３≧Ｔ１３，ｗ１３２≧Ｔ１３，Ｗ１３１＜Ｔ１３，ｗ１３１＋ｗ１３２≧Ｔ１３）になる。ＬＴＧ１４に対する制約条件セットは、ＬＴＧ１４：｛ｗ１４３＋ｗ１４３＜Ｔ１４，Ｗ１４３≧Ｔ１４，ｗ１４２≧Ｔ１４，０≧Ｔ１４，ｗ１４１≧Ｔ１４）になる。
【０２６２】
最終ベクトル［１１１］が形成する制約条件は、ＬＴＧ１３によって学習され得ないが、ＬＴＧ１４によって学習され得る、それゆえ３個のＬＴＧ全てに対する最終制約条件セットをここに列記する：ＬＴＧ１３｛０＜Ｔ１３，ｗ１３３≧Ｔ１３，Ｗ１３２≧Ｔ１３，ｗ１３１＜Ｔ１３，ｗ１３１＋ｗ１３２＞Ｔ１３，ｗ１３１＋ｗ１３２＋ｗ１３３≧Ｔ１３，ｗ１３３＋ｗ１３２≧Ｔ１３），ＬＴＧ１４：｛０≧Ｔ１４，ｗ１４３＋ｗ１４２＜Ｔ１４，ｗ１４３＋ｗ１４２＋ｗ１４１＜Ｔ１４，ｗ１４３≧Ｔ１４，ｗ１４２≧Ｔ１４，ｗ１４１≧Ｔ１４，ｗ１４１＋ｗ１４２＞Ｔ１４）、及びＬＴＧ２２：｛０＜Ｔ２２，Ｗ２２３＜Ｔ２２，Ｗ２２３＋Ｗ２２４≧Ｔ２２，Ｗ２２４≧Ｔ２２）。
【０２６３】
第２の出力をトレーニングしたところで、最後の出力Ｏ３をトレーニングしなければならない（ブロック３５におけるチェック後、ブロック３２に戻る）。ＬＴＧ１５は、次に記載する制約条件セットを学習することが（図３のプロセス４０を用いて）ブロック３４においてまず最初に分かる：ＬＴＧ１５：｛０≧Ｔ１５，ｗ１５３＜Ｔ１５，ｗ１５２≧Ｔ１５，ｗ１５３＋ｗ１５２＜Ｔ１５，ｗ１５１≧Ｔ１５，ｗ１５１＋ｗ１５２＋ｗ１５３＜Ｔ１５，ｗ１５２＋ｗ１５１≧Ｔ１５）。図１４ｇは、現在のＮＮ１４０について、Ｏ３に対する最初の出力ＬＴＧであるＬＴＧ１５を示す概略図である。
【０２６４】
ＬＴＧ１５は、全トレーニングセットにさらされ、ブロック４２においてチェックすると解答を有する、従って新しいＬＴＧをＮＮ１４０に付加する必要はなく、それゆえ図１４ｇは、Ｍｏｄｕｌｏ−８のデータセットを学習した最終の全トレーニング済みＮＮ１４０を示す概略図になる。
【０２６５】
次に、入力ベクトルが既知であるか又は未知であるかを決定する図１２に示した方法１３０に従って、見えない入力を推定する方法について考察する。
【０２６６】
（テスト入力ベクトルに対する出力の推定）
次に、見えない入力ベクトルをＮＮ１４０がいかによく分類するかを評価するが、この場合、見えない入力ベクトルは［１０１］であり、その関連出力は［１１０］である。入力ベクトルが分かる場合、ＮＮ１４０は、トレーニングされたデータから一般化することができる。
【０２６７】
まず、出力Ｏ１を推定する。Ｔ１１＞０、ｗ１１３＜Ｔ１１、ｗ１１２＜Ｔ１１かつｗ１１２＋ｗ１１３≧Ｔ１１であるので、それゆえ０＜ｗ１１３＜Ｔ１１であり、ｗ１１１＞Ｔ１１とすると、その結果ｗ１１１＋ｗ１１３≧Ｔ１１になる。従って、ＬＴＧ１１の出力は１である。また、制約条件ｗ１１１＋ｗ１１３＜Ｔ１１をＬＴＧ１１の制約条件セットに付加する場合は、解答がない。
【０２６８】
２個の制約条件ｗ１２１＋ｗ１２３＜Ｔ１２及びｗ１２１＋ｗ１２３≧Ｔ１２を付加することは解答を有し、このような制約条件の場合、デフォルトは１を出力する。
【０２６９】
ＬＴＧ２１は、１・ｗ２１１＋１・ｗ２１２を有し、かつｗ２１１＋ｗ２１２＞Ｔ２１であるので、Ｏ１は１になる。
【０２７０】
次に、Ｏ２の出力を推定する。ＬＴＧ１３は、ｗ１３１＋ｗ１３３＞Ｔ１３及びｗ１３１＋ｗ１３３＜Ｔ１３のどちらも学習することができるので、ＬＴＧ１３の出力は１である。
【０２７１】
また、ＬＴＧ１４は、ｗ１４１＋ｗ１４３≧Ｔ１４及びｗ１４１＋ｗ１４３＜Ｔ１４のどちらも学習することができるので、１を出力する。ＬＴＧ２２は、１・Ｗ２３１＋１・ｗ２４２を有し、かつｗ２３１＋ｗ２３２≧Ｔ２２であるので、Ｏ３は１になる。
【０２７２】
最後に、Ｏ３の出力を推定する。ｗ１５１＋ｗ１５２＋ｗ１５３＜Ｔ１５かつ０＞Ｔ１５かつｗ１５１＋ｗ１５２＞Ｔ１５であるので、ｗ１５３＜Ｔ１５＜０になる。ｗ１５１≧Ｔ１５であるにも係わらず、ｗ１５１＋ｗ１５２＋ｗ１５３＜Ｔ１５である、従って出力は０になる。
【０２７３】
従って、正しい出力を推定するか、又は［１１０］として一般化した。図１４ｇに、結果として生じたＮＮ１４０を示す。必要に応じて中間層と出力層との間にだけ結合が作られ、また中間層ＬＴＧは、Ｏ３にあるように必要とされるときにだけ付加されることが分かる。
【０２７４】
当該ＮＮ１４０において、ＮＮ内には重み及び閾値よりずっと少ないトレーニングサンプルがあり、またＮＮが完全にトレーニングされたものとして振る舞うことに気付かされる点が興味深い。ＮＮをトレーニングするには、ＮＮ内において重み及び閾値の数よりも多い入力ベクトルが必要とされると一般に考えられている。変数よりも多いトレーニングサンプルが必要とされるということが全てのケースにあてはまるわけではないと本実施例において分かった。これは、当該ＤＲトレーニング方法３０において各入力ベクトルがそれぞれの重みをトレーニングするからである。
【０２７５】
（本実施例におけるＬＴＧの数）本発明に係るＤＲトレーニングアルゴリズム３０を用いる場合、本実施例においてデータセットを学習するのに７個のＬＴＧが必要だった。図１４ｇにおいて、出力層１４４内にあるＬＴＧは、単に、それらが入力を求める先となる中間層１４２内にあるＬＴＧから入力を受け取るだけであることが分かる。また、不要なＬＴＧがＮＮ１４０に割り当てられることはない。例えば、ＬＴＧ１５は、あらゆる場合に、求められている出力を生成することができるので、Ｏ３を生成するのにそれ以上のＬＴＧを付加しない。
【０２７６】
本発明に係るＤＲトレーニングアルゴリズム３０がどのように動作するかを一実施例を用いて説明してきたところで、ＮＮによるトレーニング中に学習したルールを抽出する際に本アルゴリズムがいかに有用かを考察する。
【０２７７】
（本発明に係るＤＲトレーニングアルゴリズムのルール抽出に対する適用可能性）
本発明に係るＤＲトレーニングアルゴリズム３０の重要な利点は、当該アルゴリズムが少なくとも次に記載する特性を示すことから、ルール抽出に用いることができるということである。ａ）ＮＮ内に一ＬＴＧを付加すると、その新しいＬＴＧとその層内にある他のＬＴＧとの間において命題理論のルールが決定される。ｂ）重み空間内の体積に関する制約条件（そのＬＴＧに活性化する領域を縮小するもの）を付加することによって重みを適合させる。これは、そのＬＴＧが制約条件（そのＬＴＧに対する重み空間内の活性化領域の範囲を定める平面である）を用いるためである。これは、重み空間を記号を用いて定義することを可能にし、かつｃ）好ましい制約条件がそのＬＴＧ内の重みと閾値の関係（トレーニング中にＮＮによって学習されたルールを符号化するもの）を定義する。
【０２７８】
入力ベクトルと、ＬＴＧに活性化する重み空間内の体積を定める超平面との間にマッピングがあるので、ほとんどの情報を提供する正確な入力ベクトルを見い出すことが可能である。次に、本発明に係るＤＲトレーニングアルゴリズム３０の、ＬＴＧを活性化させる重み空間上に境界を設ける入力ベクトルを見つけ出す能力について解説する。
【０２７９】
従来の方法を使ってフィードフォワードＮＮをトレーニングする目的は、ＮＮが学習したデータセットのトレーニング条件を満たす、考えられ得る限り最良の平均値を表す単一数値をＮＮ内のそれぞれの重みに対して見出すことである。ＮＮ内にある各ＬＴＧの重み（及び閾値）は全て単一の（望ましくは）平均的な数値として表されるとおり、データセット内にある情報の多くは学習時に失われる。その情報のうち幾らかは、重要ではあるがトレーニング中に失われてしまう、ＬＴＧに活性化させる領域についての面情報の全てである。ほとんどのＬＴＧが２個以上の入力を有するとおり、この領域は、ＬＴＧの重み空間内において（超）体積として定義される。従って、ＬＴＧに活性化する領域を「活性化体積」と呼ぶ。面情報から：（ａ）ＬＴＧへの入力間の関係とそれゆえＮＮとを決定することができ、かつ（ｂ）各重みが取ることのできる値の範囲（ＮＮが必要に応じて振る舞うことを可能にする）を推論することができる。
【０２８０】
従来の方法を使ってトレーニングしたＮＮに対して感度分析を行なうことは、この失った面情報を回復する試みの一方法である。
【０２８１】
感度分析は、重みとニューロンへの入力との関係を決定しない一方で、求められるとおりにシステムが動作することを可能にする、システムの構成要素の各一が取ることのできる値の範囲を決定するのに用いることができる。この場合、構成要素とはＮＮ内にあるニューロンの各一に対する重みのことである。各重みは、トレーニングされるとおりにＮＮが動作することを可能にする値の範囲を有する。この範囲を「最適範囲」と呼ぶことができる。
【０２８２】
従来のトレーニング方法を使ってトレーニングしたＮＮに対して感度分析を行なうための通常の手法は、ＮＮの反応について一統計的分析を行なうことである。ニューロンの重み空間内にある各重み毎に範囲を決定する解析的方法がこれまでなかったため、統計的分析を行なってニューロンの実際の挙動ではなく一般的な挙動が調べられている。また、感度分析は、単に、従来の方法によってニューロンをトレーニングするときに、一度に１以上の重みを修正することの効果が調べられるのを可能にするだけである。従って、ニューロンが学習するよう求められている関係の平均値を、重みの単一数値がどれだけよく表しているかを決定することは可能ではない。
【０２８３】
なお、ニューロンにおける重みの範囲について統計的推定値を得ることが、感度分析にできる最善である。感度分析は、活性化体積の面を規定することが可能な方法を全く有していない。これは、重みが一度に１つずつ検討されるためであり、感度分析が行なわれているときは他の重みの各一が幾分その平均値近傍にあることが望まれる。
【０２８４】
本発明に係るＤＲトレーニングアルゴリズム３０を使うと、面情報の回収がかのうになり、システムは（ａ）重み間の関係と、これによりＬＴＧへの入力間の関係を決定でき、かつ（ｂ）各ＬＴＧ毎に重みの統計学的範囲よりも多くを見出すことができる。重みの正確な範囲が決定できるだけでなく、ＬＴＧを活性化する活性化体積の面も規定することができる。
【０２８５】
本発明に係るＤＲトレーニングアルゴリズム３０は、ＬＴＧを、好ましくは一群の制約条件としてトレーニングするので、トレーニング中にトレーニングセットについての情報のうち失われるものはなにもなく、これらの制約条件を分析して重みの範囲を見つけ出すことができる。
【０２８６】
次に、本発明のさらなる態様により、各ＬＴＧ毎に活性化体積の面が規定されるのを可能にする好ましい方法１５０について、図１５のフローチャートを参照して解説する。
【０２８７】
（活性化体積）
入力ベクトルをＮＮに加えることによってＬＴＧをトレーニングする場合に、データセットを学習するようにＮＮをトレーニングする方法を先に示した。重み空間を二等分する（超）面を形成する式ｘｉ・ｗを用いて、入力ベクトルを制約条件に変換した。ｘｉ・ｗは、閾値Ｔを有する制約条件を形成するため、（超）体積は、次に記載するような制約条件によって定義される。ａ）ＬＴＧが制約条件ｘｉ・ｗ＞Ｔを学習した場合、それは、ＬＴＧが学習した他の制約条件に応じてこの領域又はこの領域のサブセットがＬＴＧに活性化することを意味する。補空間の制約条件ｘｉ・ｗ＜Ｔは、ＬＴＧを全く活性化しない領域を画定し、ｂ）ＬＴＧが制約条件ｘｉ・ｗ＜Ｔを学習した場合、この領域はＬＴＧの活性化を生じない。しかしながら、補空間の制約条件ｘｊ・ｗ＞Ｔを満足する点はＬＴＧの活性化を生じてもよい。
【０２８８】
従って、（超）面ｘｉ・ｗは、ＬＴＧを活性化する可能性のある領域の面を形成する。多くの入力ベクトルが学習されると、ＬＴＧに活性化する可能性のある体積が重み空間内において定義され、「活性化体積」と呼びうる。これをコンピュータに実装するため、各入力ベクトルの制約条件が、それが学習できる各ＬＴＧと併せて蓄積される。その結果、重み空間内におけるＬＴＧを活性化する最小体積の面を形成する制約条件だけが重要なので、制約条件の冗長が生じることになる。重み空間内における最小活性化体積（Ｍｉｎｉｍｕｍ  Ａｃｔｉｖａｔｉｏｎ  Ｖｏｌｕｍｅ、以下「ＭＡＶ」）の面を見つけるため、制約条件を分析することができる。この活性化体積の面は、制約条件セット内にある他の制約条件が提供する情報の全てを包含する。
【０２８９】
ＬＴＧが受けたトレーニングのことを考えると、ＭＡＶは、ＬＴＧがそれまでに学習した制約条件によって制限される最小体積になる。トレーニング中には利用可能ではない、活性化体積をさらに減少させたであろう他のベクトルがあってもよいので、これは可能な限り最小な体積ではないと考えられる。
【０２９０】
トレーニング中に学習した他の制約条件（ＭＡＶ内にはないもの）は、ＭＡＶに関する輪郭のようなものを形成する。
【０２９１】
ＭＡＶの面が見つかると、ＭＡＶ及び重み間の関係を考察することにより、各重みの範囲を決定することができる。
【０２９２】
要するに、トレーニング中に学習した制約条件を分析してＭＡＶを見つけるのである。伝統的な感度分析を実施するならば、そのＭＡＶを用いて、各ＬＴＧ毎の重みの範囲及び重み間の関係を確かめることができる。
【０２９３】
フィードフォワードＮＮ内にあるＬＴＧをトレーニングするのに用いた従来のトレーニングアルゴリズムは、各入力結合重み毎に単一数値を見つけることに頼っていた。各ＬＴＧはｎ個の入力を有するので、入ってくる結合重みをベクトルとみなすことができる。トレーニング条件を満たす数値範囲があるので、これらの重みの単一数値が独自にトレーニング条件を解明することはない。
【０２９４】
重みの単一数値を決定するときのトレーニングプロセスは、ＮＮがトレーニング中に学習することになっているデータ内に組み込まれたルールを象徴した重み間の関係を表す平均的な数値を配置するよう試みる。
【０２９５】
なお、入力ベクトル内のどの特徴がデータセットの分類に対して顕著であるかを逆に明確にする重み間の関係を定義するのは、活性化体積の境界である。そのため、ルール抽出を行なうことができる場合は、ＬＴＧの活性化体積の境界を決定し得ることが必須になる。従来のトレーニング方法を用いる場合に、トレーニングアルゴリズムがトレーニング条件を解明する平均値を見つけることに焦点を合わせていると、入力ベクトルのどの次元がデータセットの分類に重要なのかについての情報を失う。ＮＮの挙動を説明するのに、これまで統計的方法及び確率が用いられてきた。しかしながら、統計及び確率のどちらも任意のデータセットを使ってトレーニングしたトレーニング済みＮＮの平均的な挙動を説明し、特定データセットを学習したＮＮに関する特定情報については説明しない。ＮＮからのルール抽出に関する要件は、特定データセットが分類されるのを可能にする特定ルールを決定することである。数値上トレーニングされたニューロンの活性化体積の境界を決定することはできないので、トレーニング中に重み値が提供した数値がいかによくトレーニングセット内に内在する関係の平均的な挙動に近づくかを決定することは可能ではない。
【０２９６】
トレーニングした各ＬＴＧ毎に正確な活性化体積を確かめることはできるので、ＭＡＶがその体積から余分な面を取り除いて、ＬＴＧが何を学習したかを定義する可能な限り最小な体積を残すことが分かる。このことから、ＬＴＧが、それゆえＮＮがどのルールをトレーニング中に学習したか決定することができる、従って、このことはＭＡＶを見つけ出すことが正しいことを証明している。
【０２９７】
（最小活性化体積（ＭＡＶ）の決定）
ＮＮのトレーニング中に多くの制約条件が学習される。活性化体積の形状は、ＬＴＧが学習しているデータセットによって異なる。１以上の次元において非有界であってもよい。
【０２９８】
図１６ａは、活性化体積及びトレーニング中に学習した他の制約条件を一般化した図を示す。閾値を使って形成する制約条件は、活性化体積を交差しなければならない、そうでなければ、ＬＴＧが制約条件を学習することができない。
【０２９９】
図１６ａにおいて、面（ａ）、（ｂ）、（ｃ）、（ｄ）及び（ｅ）は、異なった入力ベクトルＸｊ及びｗによって形成される（超）平面である。ＭＡＶ１６０は、図１６ａにおいて、（ａ）、（ｂ）及び（ｃ）によって定義される面によって有界になる。面（ｄ）及び（ｅ）は、ＭＡＶ１６０を交差しておらず、それゆえ最小体積の面を形成していない。しかしながら、それらが形成する体積はＭＡＶ１６０を交差する。図１６ｂに見られるように、面（ｄ）によって形成された体積１６２（薄い灰色の陰が付けられた領域）は、ＭＡＶ１６０（濃い灰色の領域）を交差している。
【０３００】
図１６ｃにおいて、面（ｄ）によって形成された補空間領域１６４が（濃い灰色の）ＭＡＶ領域１６０を交差しておらず、従って補空間領域を学習することができないことが分かる。
【０３０１】
ＬＴＧが学習した制約条件を分析すると、図１６ｃに見るように、制約条件（ａ）が存在するときは、最小体積を形成しない制約条件の補空間、すなわち図１６ｄにおける（ｄ）を学習することができない。そこで（ａ）を取り除くと、ＭＡＶ１６０を形成する制約条件と（ｄ）の補空間との間に共通部分１６６が存在するので、（ｄ）の補空間を学習することができる（図１６ｄを参照のこと）。図１６ｄにおいて、面（ａ）は、本来の場所を示すために図中に残してある。
【０３０２】
しかしながら、（ｄ）及び（ｅ）が存在するときは、ＬＴＧは制約条件（ａ）の補空間を学習することができる（図１６ｅを参照のこと）。言い換えれば、（ａ）の補空間と、ＭＡＶ１６０を形成する他の制約条件と、ＬＴＧがすでに学習した他の制約条件との間に共通部分１６８が存在することになる。
【０３０３】
原理：制約条件は、制約条件セットから取り除かれたときに、その補空間が学習されるならば、活性化体積の一面を形成する。
【０３０４】
証明：ある制約条件が活性化体積上の一面を形成する場合、その制約条件と、ｘｉ・ｗと閾値Ｔとの関係に制約を加えている活性化体積の面を形成する他の制約条件のうちのいずれとの間にも制約条件が全くないことを意味する。従って、制約条件（活性化体積の面を形成するもの）を取り除いたときに、ＬＴＧによって制約条件の補空間が学習されることが可能になる。
【０３０５】
次に、このことを例として説明する。ＬＴＧがトレーニング中に次に記載する制約条件セットを学習した場合：｛ｗ１＋ｗ２＜Ｔ、ｗ２≧Ｔ｝、制約条件ｗ２≧Ｔを制約条件セットから取り除くと、ＬＴＧがその制約条件の補空間Ｗ２＜Ｔを学習することができるようになるので、平面ｗ２＝ＴがＭＡＶの一面を形成することが分かる。
【０３０６】
しかしながら、トレーニング中にＬＴＧが次に記載する制約条件セットを学習した場合：｛ｗ１＋ｗ２≧Ｔ、ｗ２≧Ｔ、０＜Ｔ、ｗ１≧Ｔ｝、制約条件ｗ１＋ｗ２≧Ｔを制約条件セットから取り除くと、ＬＴＧはその代わりに補空間ｗ１＋ｗ２＜Ｔを学習することができないので、平面ｗ１＋ｗ２＝Ｔは、ＭＡＶの面上にはないことが分かる。
【０３０７】
次に、ＭＡＶを見つける方法１５０の好ましい実施形態を図１５を参照して説明する。
【０３０８】
ブロック１５１によって表されるとおり、当該ＬＴＧの制約条件セットにある各制約条件毎に、少なくとも次に記載する動作を実行する。ブロック１５２において、制約条件セットにある他の制約条件を変更しないで、各制約条件を一度に１つずつ制約条件セットから取り除く。取り除かれた制約条件は、群に付加されるそれの補空間を有し、続いてブロック１５３において解答があるかを判断するためにテストされる。解答がある場合は、ブロック１５４において、最初に制約条件セットから取り除いた制約条件をＭＡＶを定義する群に付加する。元の制約条件の補空間を制約条件セットから取り除き、元の制約条件を群に戻す。次に、ブロック１５５において解がない場合、ブロック１５６において制約条件セットにまだ制約条件があると判断されれば、方法１５０が次の制約条件へと続く。トレーニング中にＬＴＧが学習した制約条件セットにある各制約条件毎に本方法１５０を繰り返す（ブロック１５２に戻る）。ブロック１５６において、制約条件がもうないと判断されれば、方法１５０はブロック１５７で終了する。
【０３０９】
当該ＬＴＧが受けたトレーニングのことを考えると、活性化のため最小群に付加された制約条件がＭＡＶを定義する。次に、これらの制約条件を用いて体積を分析して、ＬＴＧ内にある重み間の関係を見つけ、かつ望ましければ、いつ重みが範囲外になるかを正確に知ることができる感度分析をＬＴＧに対して行なうことができる。
【０３１０】
ＭＡＶを見つける方法１５０は、ＮＮに限定されるものではないということを認識されたい。ＭＡＶを見つける方法１５０は、最適化のために用いられるＣＳＰ及びオペレーションリサーチ型の問題等、制約条件のシステムを用いる他の分野にも有用であると考えられる。従って、本発明に係る本態様は独立しており、本発明に係るＤＲトレーニングアルゴリズム３０を用いた利用に限定されるものではない。
【０３１１】
（ＭＡＶを決定する方法に係る実施例）
ＬＴＧを次に記載する制約条件を用いてトレーニングすると仮定する：｛０＜Ｔ，ｗ１＋ｗ２＜Ｔ，ｗ１＜Ｔ，ｗ２＜Ｔ，ｗ３＜Ｔ，ｗ１＋ｗ３＜Ｔ，ｗ２＋ｗ３＜Ｔ，ｗ１＋ｗ２＋ｗ３＞Ｔ｝。上記の制約条件に対して解答があるということが分かっている。方法１５０は、ブロック１５１において開始する。
【０３１２】
まず最初にブロック１５２において、０＜Ｔを取り除いて制約条件０≧Ｔを付加する、その結果、検討中の制約条件セットが｛０≧Ｔ，ｗ１＋ｗ２＜Ｔ，ｗ１＜Ｔ，ｗ２＜Ｔ，ｗ３＜Ｔ，ｗ１＋ｗ３＜Ｔ，ｗ２＋ｗ３＜Ｔ，ｗ１＋ｗ２＋ｗ３≧Ｔ｝になる。
【０３１３】
ブロック１５３において、これらの制約条件を、Ｓｉｃｓｔｕｓ  ｐｒｏｌｏｇのルーチン又は任意の他の好適なルーチンを使ってテストすることができる。これらの制約条件に対する解答がブロック１５３では見つからない、それゆえ０＜ＴがＭＡＶ上の一面を形成する制約条件のうちの１つではないということが分かる。ブロック１５５において、他の制約条件がこの情報全てを包含する、言い換えれば、ＬＴＧによって何が学習されたのかについてこの制約条件は新しい情報を全く提供しないので、この制約条件を残っている群から取り除く。
【０３１４】
ブロック１５６におけるチェックの後、続いてブロック１５２において次の制約条件であるｗ１＋ｗ２＜Ｔをテストする。この制約条件を取り除いて、この制約条件の補空間を群に付加する：｛ｗ１＋ｗ２≧Ｔ，ｗ１≧Ｔ，ｗ２＜Ｔ，ｗ３＜Ｔ，ｗ１＋ｗ３＜Ｔ，ｗ２＋ｗ３＜Ｔ，ｗ１＋ｗ２＋ｗ３≧Ｔ｝。この場合、ブロック１５３で解答が見つかるので、ＬＴＧが学習したことに対して元の制約条件は重要であり、制約条件セットに残しておかなければならない（ブロック１５４）。
【０３１５】
ブロック１５２においてテストされる次の制約条件は、ｗ１＜Ｔである。この制約条件を取り除いて、この制約条件の補空間を群に付加する：｛ｗ１＋ｗ２＜Ｔ，ｗ１≧Ｔ，ｗ２＜Ｔ，ｗ３＜Ｔ，ｗ１＋ｗ３＜Ｔ，ｗ２＋ｗ３＜Ｔ，ｗ１＋ｗ２＋ｗ３≧Ｔ｝。これらの制約条件をブロック１５３においてテストすると、解答がないということが分かる。従って、ブロック１５５において制約条件ｗ１＜Ｔを取り除くことができる。
【０３１６】
ブロック１５２においてテストされる次の制約条件は、ｗ２＜Ｔである。この制約条件を取り除いて、この制約条件の補空間を群に付加する：｛ｗ１＋ｗ２＜Ｔ，ｗ２≧Ｔ，ｗ３＜Ｔ，ｗ１＋ｗ３＜Ｔ，ｗ２＋ｗ３＜Ｔ，ｗ１＋ｗ２＋ｗ３≧Ｔ｝。ブロック１５３においてこれらの制約条件をテストすると、全く解答が見つからない。従って、ブロック１５５において制約条件ｗ２＜Ｔを取り除くことができる。
【０３１７】
ブロック１５２においてテストされる次の制約条件は、ｗ３＜Ｔである。この制約条件を取り除いて、この制約条件の補空間を群に付加する：｛ｗ１＋ｗ２＜Ｔ，ｗ３≧Ｔ，ｗ１＋ｗ３＜Ｔ，ｗ２＋ｗ３＜Ｔ，ｗ１＋ｗ２＋ｗ３≧Ｔ｝。ブロック１５３においてこれらの制約条件をテストすると、全く解答が見つからない。従って、ブロック１５５において制約条件ｗ３＜Ｔを取り除くことができる。
【０３１８】
ブロック１５２においてテストされる次の制約条件は、ｗ１＋ｗ３＜Ｔである。この制約条件を取り除いて、この制約条件の補空間を群に付加する：｛ｗ１＋ｗ２＜Ｔ，ｗ１＋ｗ３≧Ｔ，ｗ２＋ｗ３＜Ｔ，ｗ１＋ｗ２＋ｗ３≧Ｔ｝。この場合、ブロック１５３においてテストすると解答が見つかる、それゆえＬＴＧが学習したことに対して元の制約条件は重要であり、ブロック１５４によって表されるように制約条件セットに残しておかなければならない。
【０３１９】
ブロック１５２においてテストされる次の制約条件は、ｗ２＋ｗ３＜Ｔである。この制約条件を取り除いて、この制約条件の補空間を群に付加する：｛ｗ１＋ｗ２＜Ｔ，ｗ１＋ｗ３＜Ｔ，ｗ２＋ｗ３≧Ｔ，ｗ１＋ｗ２＋ｗ３≧Ｔ｝。この場合、ブロック１５３において解答が見つかる、それゆえＬＴＧが学習したことに対して元の制約条件は重要であり、制約条件セットに残しておかなければならない（ブロック１５４）。
【０３２０】
ブロック１５２においてテストされる次の制約条件は、ｗ１＋ｗ２＋ｗ３≧Ｔである。この制約条件を取り除いて、この制約条件の補空間を群に付加する：｛ｗ１＋ｗ２＜Ｔ，ｗ１＋ｗ３＜Ｔ，ｗ２＋ｗ３＜Ｔ，ｗ１＋ｗ２＋ｗ３＜Ｔ｝。この場合、ブロック１５３において解答が見つかるので、それゆえＬＴＧが学習したことに対して元の制約条件は重要であり、ブロック１５４によって表されるように、ここでも制約条件セットに残しておかなければならない。
【０３２１】
従って、方法１５０によって最小制約条件セットは｛ｗ１＋ｗ２＜Ｔ，ｗ１＋ｗ３＜Ｔ，ｗ２＋ｗ３＜Ｔ，ｗ１＋ｗ２＋ｗ３≧Ｔ｝であると決定する。
【０３２２】
制約条件をテストするための順番：本発明に係るＭＡＶを決定する方法１５０によって制約条件セットにおいて制約条件をテストする順番は重要ではない。制約条件は、テストされる群における任意の場所から選択してもよい。また、ＭＡＶを形成する制約条件を最初にテストするよう選択するか否かは無関係である。従って、本発明は、提供した特定の実施例に限定されるものではない。
【０３２３】
ＭＡＶ内に包含される情報：ＭＡＶは、学習した制約条件に関する全情報を包含している。ＬＴＧが何を学習したかについての情報は全てＭＡＶの面内に包含されるので、ＭＡＶの面を形成しない制約条件を取り除くことは可能である。制約条件を回復する必要はないが、回復できることを証明する。
【０３２４】
一実施例：最小活性化体積が｛ｗ１＋ｗ２＜Ｔ，ｗ１＋ｗ３＜Ｔ，ｗ２＋ｗ３＜Ｔ，ｗ１＋ｗ２＋ｗ３＞Ｔ｝からなるとすると、取り除かれる制約条件の群は｛０＜Ｔ，ｗ１＜Ｔ，ｗ２＜Ｔ，ｗ３＜Ｔ｝になる。
【０３２５】
ＬＴＧに対する制約条件及びその制約条件の補空間を付加することによって取り除かれた制約条件を回復することができることを証明するのは可能である。このことを示して、ＬＴＧとそれゆえにトレーニング中に学習したデータの損失ない圧縮に対してＭＡＶが見つからないときは、全く情報が失われていないことを証明する。
【０３２６】
他の取り除かれた制約条件を使ってこの制約条件を予めテストしていたならば、その後もこの制約条件の補空間を学習することができたであろう。
【０３２７】
ＭＡＶを使って０＜Ｔをテストする：０＜ＴをＭＡＶに付加することは解答を有する。しかしながら、０≧ＴをＭＡＶに付加することは解答を有さない。従って、ベクトル０＜Ｔを制約条件セットから取り除く前にはじめにトレーニングしたとおりに、ＬＴＧはその後も振る舞い続けるものである。
【０３２８】
ＭＡＶを使ってｗ１＜Ｔをテストする：ｗ１＜ＴをＭＡＶに付加することは解答を有する。しかしながら、ｗ１≧ＴをＭＡＶに付加することは解答を有さない。従って、ベクトルｗ１＜Ｔを制約条件セットから取り除く前にはじめにトレーニングしたとおりに、ＬＴＧはその後も振る舞い続けるものである。
【０３２９】
ＭＡＶを使ってｗ２＜Ｔをテストする：ｗ２＜ＴをＭＡＶに付加することは解答を有する。しかしながら、ｗ２≧ＴをＭＡＶに付加することは解答を有さない。従って、ベクトルｗ２＜Ｔを制約条件セットから取り除く前にはじめにトレーニングしたとおりに、ＬＴＧはその後も挙動し続けるものである。
【０３３０】
ＭＡＶを使ってｗ３＜Ｔをテストする：ｗ３＜ＴをＭＡＶを付加することは解答を有する。しかしながら、ｗ３≧ＴをＭＡＶに付加することは解答を有さない。従って、ベクトルｗ３＜Ｔを制約条件セットから取り除く前にはじめにトレーニングしたとおりに、ＬＴＧはその後も挙動し続けるものである。
【０３３１】
言い換えると、元の制約条件セット｛０＜Ｔ，ｗ１＜Ｔ，ｗ２＜Ｔ，ｗ３＜Ｔ，ｗ１＋ｗ２＜Ｔ，ｗ１＋ｗ３＜Ｔ，ｗ２＋ｗ３＜Ｔ，ｗ１＋ｗ２＋ｗ３≧Ｔ｝及び最小制約条件セット｛ｗ１＋ｗ２＜Ｔ，ｗ１＋ｗ３＜Ｔ，ｗ２＋ｗ３＜Ｔ，ｗ１＋ｗ２＋ｗ３≧Ｔ｝は、ＬＴＧの挙動といった観点からすると等価である。
【０３３２】
ＭＡＶを見つけることの利益は多い。これらの利益から幾つかを挙げると：（ａ）学習中及びＬＴＧ出力を決定するときにテストされる必要のある制約条件の数を潜在的に減らす。（ｂ）望ましければ、トレーニングしたＬＴＧに対して感度分析が行なわれるのを可能にする。（ｃ）重み間の関係が決定されるのを可能にする。
【０３３３】
クワイン−マクラスキー法（Ｑｕｉｎｅ−ＭｃＣｌｕｓｋｅｙ）及び反復コンセンサス法（ｉｔｅｒａｔｅｄ  ｃｏｎｓｅｎｓｕｓ）等の関数最小化技法は、独立した入力によって作成された入力ベクトルに対して、冗長な入力ベクトルを全て取り除いた（ＭＡＶが見つかるときに為されることである）後に用いることができる。
【０３３４】
（ＤＲトレーニングアルゴリズムの性能評価）
次に、本発明に係るＤＲトレーニングアルゴリズム３０に対して行なった実験の結果を記載する。これらの実験は、本発明に係るＤＲトレーニングアルゴリズムの性能を評価するものである。
【０３３５】
本発明に係るＤＲトレーニングアルゴリズム３０の主要な目的の１つは、ＮＮが入力ベクトルの関連出力を生成するのを可能にするデータセット内においてルールを見つけることである。従って、行なった実験の目的は、ＤＲアルゴリズム３０が種々のデータタイプを学習し、かつトレーニングしたＮＮからルールが抽出されるのを可能にするアルゴリズムであることを証明することであった。
【０３３６】
これらの実験において従った標準的な手順は：（ａ）幾らかのデータ作成があった。（ｂ）そのデータを用いてＮＮをトレーニングした。（ｃ）ＮＮをテストして、ＮＮをトレーニングした入力ベクトルに関連した出力を生成した後、トレーニングプロセスの間は見えなかった入力ベクトルに対する出力を正確に生成することができるかを決定した。（ｄ）テストセットからの正確な入力ベクトルについてパーセンテージに換算して、バックプロパゲーションを用いてトレーニングしたＮＮと本発明に係るＤＲトレーニングアルゴリズム３０を使ってトレーニングしたＮＮとの間で比較した。ＮＮをトレーニングする前に、テストをするためのテストセットを用意した。続いて、このパーセンテージを他の学習アルゴリズムの利用可能な結果と比較した。（ｅ）ＮＮをトレーニングするのに必要とされるトレーニング入力ベクトルにさらす回数を記録した。
【０３３７】
ＤＲによってデータセットに対する学習時間を定量化することの外に、扱った別の課題は、トレーニング中にＮＮによって学習されたルールの確定である。本発明のさらなる態様に従って、先に記載した好ましい方法を用いてトレーニングしたＮＮに対して感度分析を行なうことによってルールを抽出した。これがＮＮがトレーニングされるデータセットに関する情報を提供した。次に、本発明に係るＤＲトレーニングアルゴリズム３０の性能を評価するのに用いたデータセットの種類について解説する。
【０３３８】
（テストドメイン）
フィードフォワードＮＮは、データを分類するため、又は関数近似を行なうためのいずれかに用いることができる。入力空間内においてデータを分類する境界をモデル化することは、関数近似に相当するので、これら２つの特性は、同じ挙動を示す態様である。フィードフォワードＮＮを用いることによって利益を得ることができる潜在的な適用は多くあるが、フィードフォワードＮＮを実際に用いた適用は、関数近似の特性又はデータ分類の特性のいずれかを活用している。
【０３３９】
ＤＲトレーニングアルゴリズム３０の挙動を評価するため、（ａ）関数近似、及び（ｂ）データ分類を実行するデータセットを用いた。
【０３４０】
関数近似を実行するＤＲトレーニングアルゴリズム３０の能力を評価するために選んだデータセットは、「２つの螺旋を使った問題（Ｔｗｏ−Ｓｐｉｒａｌ  Ｐｒｏｂｌｅｍ）」及び分類については「ドイツの信用貸付問題（Ｇｅｒｍａｎ  Ｃｒｅｄｉｔ  Ｐｒｏｂｌｅｍ）」である。どちらのデータセットもフィードフォワードＮＮをテストするための標準的な問題である。
【０３４１】
関数近似のためによく用いられている一データセットが「２つの螺旋を使った問題」である。このデータセット（図１７参照）は、共通したスタート点だが互いに１８０度のオフセットを有する２つの螺旋を含むため、解決が極めて困難であると考えられている。従って、容易に線形分離可能ではない。一般に、線形分離可能性を用いて、一ニューロンがクラスを分割し、また複雑なデータセットの場合には、複数のニューロンがクラスを分割する。「２つの螺旋を使った問題」における螺旋を記述するのにデカルト座標を用いる場合は、データセットは、容易に線形分離可能ではない。
【０３４２】
「ドイツの信用貸付問題」は、ドイツの金融機関の債務者１０００人の記録を有する。この記録は、債務者の年齢、居住状態、信用履歴、会社員の場合はローンの目的等、たくさんの特徴を包含し、記録の分類は、債務者が良好な信用リスクであるかを明示している。トレーニングしたＮＮの目的は、ローンを求めている顧客を承認してよいか否かを予測することにある。また、金融機関は、誤りが生じた場合の誤りに対する優先事項も明示している。ある人物を誤って良好な信用リスクとするよりむしろある人物を誤って悪い信用リスクとする方がよいと考える。
【０３４３】
これらのデータセットについての正式な定義は以下のとおりである。
データセット１：２つの螺旋を使った問題−このデータセットを最初に提案したのは、ＭＩＴＲＥ社（ＭＩＴＲＥ  Ｃｏｒｐｏｒａｔｉｏｎ）のアレクシス・ウィーランド（Ａｌｅｘｉｓ  Ｗｉｅｌａｎｄ）である。このデータセットは、組み合わさった２つの螺旋に属する１９４個の入力ベクトルを有し、これらのデータ点の半分が出力−１を生成して、残りの半分が出力１を生成すると定義されている。各スパイラルは３つの段階を有し、各螺旋を１８０度に分ける。入力ベクトルは、各データ点の位置についての浮動小数点デカルト座標を表す２次元を有する。
【０３４４】
データセット２：ドイツの信用貸付問題−ハンブルグ大学の教授であるハンス・ホフマン博士によってこのデータセットが提供された。貸付を申請した顧客１０００人のサンプルを有する。各サンプルは、貸付を申請した人の年齢、その人の信用履歴、及び貸付の申請に関係すると考えられた他の属性等の２４個の正の整数属性からなる入力ベクトルである。ＮＮの出力が顧客を良好な信用リスク又は悪い信用リスクとして分類する。
【０３４５】
データセットの選択基準は、ＤＲ学習が（ａ）バックプロパゲーション（ｂａｃｋｐｒｏｐａｇａｔｉｏｎ）と同等によい、言い換えれば、バックプロパゲーションが学習することができるデータセットを学習することができること、及び（ｂ）トレーニングしたＮＮからルールが抽出させられるという点でバックプロパゲーションより優れていること、を証明することであった。
【０３４６】
「ドイツの信用貸付問題」のデータセットは、バックプロパゲーションによって学習されるのによく適しているので選択され、また「２つの螺旋を使った問題」は、バックプロパゲーションでは解決が困難であると考えられたために選択された。
【０３４７】
（データ準備）
はじめに、本発明のさらなる態様に従って、これらの実験においてＤＲトレーニングアルゴリズムを使ってＮＮをトレーニングするのに用いられるであろう形式へとデータを作成するのに用いる好ましい方法について解説する。データを作成するときの一目的は、依然としてそのデータを正確に符号化するのと同時に、ＮＮへの入力数を最小化することにある。ＮＮによって入力ベクトルが学習される度に、制約条件をテストしてＮＮによって入力ベクトルが学習されるかを決定しなければならないことを考えると、ＮＮへの入力数を最小化するということは、言い換えれば、より速いトレーニング時間になるということである。次に、解説するようなデータ変換方法は、本発明に係るＤＲトレーニングアルゴリズム３０を用いた利用に限定されるものではないことを認識されたい。これらのデータ変換方法は、他の既知のトレーニングアルゴリズムに有用であり、それ自体を本発明に係る独立した態様とみなす。
【０３４８】
（バイナリデータ）
先に解説したように、本発明に係るＤＲトレーニングアルゴリズムは、好ましくは、｛０、１｝ｎの形式（ｎは、ＮＮへの入力数である）である２進数の入力ベクトルによってトレーニングされて、２進数の出力を生成する。入力ベクトルは、求めた出力のバイナリ値に基づいて望ましい出力を生成する制約条件へと変換される。データがバイナリである場合は、学習されるようそのデータを修正する必要はない。しかしながら、たいていの場合にデータはバイナリ形式ではなく、従って、好ましくは、本発明に係るアルゴリズム３０によって学習される前にバイナリ形式に変換される。
【０３４９】
（整数）
入力ベクトル内の各次元は、その入力についての何らかの属性を表す。属性の１つが整数である場合、その整数は、好ましくはＤＲトレーニングアルゴリズムによって学習されるバイナリに変換される。次に、本発明に係るＤＲトレーニングアルゴリズム３０がいかに整数を学習することができるかに係る好ましい実施形態について解説する。
【０３５０】
初めに、バイナリでの属性表現に必要とされるビット数を決定することが必要である。そうするため、属性が取ることのできる整数値の範囲を、範囲＝（最大−最小）＋１として算出する。続いて、その範囲をバイナリで符号化するため、必要とされるビット数を決定する。
【０３５１】
これが属性を符号化するために必要とされるビット数を決定する一簡便な手法であって、次の（ａ）又は（ｂ）かについて考慮していない。（ａ）属性が負の整数を有する。負の整数がある場合、２の補数を用いて数字を表すことが可能である。ただし、その属性の正の値を表すのに用いられるビット数に対して付加されたビットを使用しなければならない。別の方法として、負の整数を使用しないようにその範囲を調整することができ、（ｂ）属性は範囲外になってもよい。従って、個人の年齢を備えた属性があってもよい。入力ベクトルの母集団において、単に１８歳から８４歳の年齢があるだけでもよい。ただし、トレーニングしたＮＮに８５歳の属性を与えることが必要になる場合がある。この場合、４０〜５９歳、６０歳以上といったサブ範囲の見地からデータを符号化することが可能であってもよい。
【０３５２】
ドイツの信用貸付データセットには、考慮すべき負の整数が全くない。なお、顧客の年齢属性は、１８〜７５歳の範囲に及ぶ。その範囲にある正確な年齢を符号化するには、６ビットを必要とする。なお、フィールドを符号化するのに２ビットだけが用いられるのを可能にする年齢の範囲、例えば、１８〜２５歳、２５〜４０歳、４０〜６０歳、及び６０歳＜が、顧客の年齢を符号化するためにさらに有用である場合があるということが考えられる。こうすることで、ＬＴＧへの入力数を最小化し、かつなおもデータフィールド内にある情報の大部分を保つことができる。例えば、ある人物が銀行のローンを支払う能力があるかを決定しようとしている場合、３７歳といった特定の年齢の人物の方が３８歳である場合よりもローンを支払う見込みがあるとは考えにくい。ただし、６０歳を超える人々の方が４０歳である人々よりも働いている可能性は低いことを考えれば、年齢の範囲が重要な役割を担なうことは可能であろう。
【０３５３】
属性の値を符号化するために必要とされるビット数は、各属性毎に個別に検討する必要がある。属性が取ることのできるある範囲の整数値を符号化するのに必要とされるビット数が確定すると、各ビット位置は、ＮＮへの個別の入力とみなすことができる。従って、単一の属性がＮＮへの複数の入力になってもよい。
【０３５４】
このプロセスは、入力及び出力のどちらにも用いられる。
【０３５５】
（浮動小数点データ）
ＮＮがトレーニングされることになっているほとんどのデータが浮動小数点データであるため、ＮＮをトレーニングしてこの種のデータを学習することができることは有用である。従って、浮動少数点データをバイナリデータに変換できることは有用であり、かつ好ましい。
【０３５６】
整数である属性と同様に、浮動小数点をバイナリで表すには多くのビットを割り当てなければならない。あらためて、属性が取ることのできる値の範囲、つまり属性が範囲外の値を取ることができるか、及び属性が負の値を取ることができるかについて検討する。なお、属性のデータ点及び属性を表すときに許容できる誤差の程度を表すのにどれだけの精度が必要とされるかも考慮しなければならない。
【０３５７】
このプロセスは、入力及び出力のどちらにも用いられる。
【０３５８】
次に、本発明に係るＤＲトレーニングアルゴリズム３０がいかに浮動小数点データを学習することができるかに係る好ましい実施形態を記載する。
【０３５９】
「２つの螺旋を使った問題（Ｔｗｏ−Ｓｐｉｒａｌ  Ｐｒｏｂｌｅｍ）」の場合、学習されるデータセットは、（ｘ，ｙ）形式（ｘ，ｙ∈Ｒ）のデカルト座標であり、ＮＮの出力は、データ点がどの螺旋に属するかを示す。
【０３６０】
アルキメデスの螺旋の極座標方程式から２クラスのデータ、ｒ＝θ及びｒ＝−θを取り出す。各螺旋上には９７個のデータ点があり、かつ各螺旋は３段階を有する、これにより点がおよそ７．４度離れることになる。続いて、問題の明細によって求められるとおりにその点をデカルト座標に変換する。
【０３６１】
データ点において充分な精度があることを保証するため、データ点は、好ましくは小数点以下第３位において四捨五入する。続いて、データ点に１００を掛けた後、バイナリに変換する。負の浮動小数点数の場合は、その数の２の補数を用いる。入力ベクトルを符号化できるように、データ点のデカルト座標（ｘ，ｙ）である属性の各一毎に１２個の２進数字を用いる。ＮＮへの２個の入力を有する代わりに、２４ビットある。座標を１２個のバイナリ位置に限定することが、入力空間が充分な精度をもってアクセス可能であることを保証する。
【０３６２】
螺旋からのサンプルデータ点を考察すると、極座標におけるｒ＝−θは（−π／２、π／２）である。この点をデカルト座標に変換すると、点は（０，−１．５７０８）になる。これらの値に１００を掛けて最も近い整数に丸めると（０，−１５７）になる。続いて、これらの値を最終的に１２桁の２進数（００００００００００００，１１１１０１１０００１１）に変換する。ＮＮに加えられる入力ベクトルは、００００００００００００１１１１０１１０００１１になる。
【０３６３】
バイナリデータ及び浮動小数点データが変換されたところで、記号データ（ｓｙｍｂｏｌｉｃ  ｄａｔａ）について解説する。
【０３６４】
（記号データ）
記号データ（ｓｙｍｂｏｌｉｃ  ｄａｔａ）は非数値データであり、演算目的においてバイナリでも浮動小数点でもない。そのデータが有する幾つかの非定量的属性を指してもよい。次に、本発明に係るＤＲトレーニングアルゴリズム３０がどのようにして記号データを学習することができるかに係る好ましい実施形態を記載する。
【０３６５】
性別等の属性の場合、属性は２つの可能な値を有するがゆえに、例えば、女性は１かつ男性は０と、単一のバイナリ入力を割り当ててデータを符号化することができる。また、他の記号属性をバイナリ値に与えてもよい。色という記号属性に係る若干より複雑な実施例は、緑、青及び黄色の３つの値を有する。この属性の値を符号化するのに２ビットを割り当てることが可能である。例えば、このフィールドを符号化するのに２ビットを割り当てて、０１−緑、１０−青、及び１１−黄色とバイナリ値を任意に割り当てることができる。０１−青、００−緑及び１０−黄色等、代わりに使用できたであろう組み合わせが他にも多く考えられるので、これは、多くの可能な符号技法のうちの１つにすぎないことを理解されたい。２ビットの代わりに３ビットといったように他の符号化戦略を代わりに用いてもよい。あるいは、この場合は色である属性に対して、何個の値がテストされているかに応じてビット数が異なってもよい。
【０３６６】
データ符号化戦略を選択する際の主な検討事項は、分類されるデータ及びデータから求められる分類によって決まる。
【０３６７】
例えば、ＮＮが学習することになっているデータ属性の１つが信用履歴であり、その値が「不充分」、「平均」、「良好」及び「優秀」である場合、トレーニングしたＮＮは、良好な信用リスクである顧客をそうでない顧客から分離することになる。良好な信用履歴を有する顧客とその顧客の潜在的なローン返済能力との間には相関関係があると仮定することができる。
【０３６８】
その属性に割り当てることができる記号値は４個あるので、４個全ての値を符号化するのに２ビットを有することが必要になるだけである。データからどんな出力が求められるかについては、値を割り当てるときに注意を払わなければならない。例えば、「不充分」を０１、「平均」を１０、「良好」を１１、及び「優秀」を００として符号化する場合、「良好」及び「優秀」が他の「不充分」及び「平均」の値から分離されることになるなら、そのデータは、入力空間においてＸＯＲを形成し、それゆえ、線形分離可能ではなくなる。本発明に係るＤＲトレーニングアルゴリズム３０は、ＸＯＲに相当するため、これを学習することができるが、そのデータを学習するには付加的なＬＴＧが必要とされる。このことを「記号上の対立（ｓｙｍｂｏｌｉｃ  ｃｏｎｆｌｉｃｔ）」を符号化すると呼ぶことができる。入力空間において値が線形分離可能であるように、異なって符号化することによって記号上の対立を回避することができる。例えば、「良好」を１１及び「優秀」を１０、及び「不充分」を００及び「平均」を０１として符号化することがこの問題を回避する。そうすると、「良好」／「優秀」は「不充分」／「平均」から線形分離可能になる。データを符号化する最良の方法は、符号化されるデータによって決まるので、結果として、各属性を個別に検討しなければならない。
【０３６９】
なお、任意の顧客が良好な信用リスクであるかを予測することにも影響を与える信用履歴の外に付加的な属性の関係があると仮定されるので、これは簡単化である。
【０３７０】
出力と属性値との間に明らかなつながりが全くなくてもよいのと同時に、記号上の対立を回避することが必ずしも可能でなくてもよい。本発明に係るＤＲトレーニングアルゴリズム３０は、ＮＮ内へ求められるとおりにＬＴＧを付加することができるので、記号上の対立（ｓｙｍｂｏｌｉｃ  ｃｏｎｆｌｉｃｔｓ）を学習することができる。
【０３７１】
非バイナリデータを作成する方法が本発明に係るＤＲトレーニングアルゴリズム３０によって学習されることを考察したところで、次に、実験手順について検討する。
【０３７２】
（実験手順）
上述したドメインの各一毎に同じ実験を行なった。データセットを使ってＮＮをトレーニングして、そのデータセットにさらした回数を記録した。トレーニング後にＮＮが、見えないデータをいかによく一般化できるようになったかといった見地からＮＮの性能を評価して、その結果を同じデータを使ってトレーニングしたＮＮのすでに公開されている結果と比較した。
【０３７３】
トレーニングが完了すると、ＮＮをテストして、ＮＮがトレーニングセットに対して正確な出力を再現し、かつテストセットのある部分を分類することができることを保証した。
【０３７４】
それぞれのＮＮに対してテストしたデータセットの概要は、上述したとおりである。先に定義した方法と同じ又は類似した好ましい方法を用いてデータセットをバイナリに変換した。
【０３７５】
（実験結果）
次に、２つのデータセットのテスト結果について検討する。トレーニングからの結果及びテスト段階からの結果と、重要な結果が２セットある。トレーニング段階においては、データセットを学習するのに何個のトレーニングパスが必要とされたかが重要である。テスト段階においては、何個の見えない入力ベクトルが上手く分類されたかが重要である。
【０３７６】
（２つの螺旋を使った問題（Ｔｗｏ−Ｓｐｉｒａｌ  Ｐｒｏｂｌｅｍ））
既知のアルゴリズムについて公開されている結果：Ｗｅｉｌａｎｄは、１５００００〜２０００００個のエポックにおいてバックプロパゲーションの修正版を用いてＮＮをトレーニングした。しかし、標準的なバックプロパゲーションでは解答が全く見つからなかった。しかしながら、Ｌａｎｇ及びＷｉｔｂｒｏｃｋは、２−５−５−５−１のアーキテクチャ、２個の入力、それぞれ５個の隠れユニットからなる３個の中間層、及び１個の出力ユニットを備えたＮＮをトレーニングした結果、そのＮＮは、標準的なバックプロパゲーションを用いて２００００個のエポックにおいてデータセットを学習した。なお、彼らのＮＮは、それぞれ「近道」結合を用いてそれより前にある全層内の各ユニットから直接入力を受け取る中間層ユニットを有した。
【０３７７】
（本発明に係るＤＲトレーニングアルゴリズムの実験結果）
図１７に、ＮＮがトレーニングされるデータセット１７０を示す。各螺旋は９７個のデータ点を有する。実験の結果、トレーニングしたＮＮは２４個の入力と５個の隠れＬＴＧと１個の出力ＬＴＧを有する。あらゆる場合にＡＮＤを用いてＬＴＧを結合した。ＮＮが学習したのは、単一エポックにおいてであった。
【０３７８】
（解説）
図１８に、生成されたＮＮ１８０の概略図を示す。本発明に係るＤＲトレーニングアルゴリズム３０を使って単一パスにおいてＮＮ１８０をトレーニングして、未知の入力ベクトルのデフォルトは１を出力することとした。ＤＲ学習の結果得られたＮＮ１８０は、バックプロパゲーションに必要とされるものより標準的で単純な構造を有する。図１８に見られるように、中間層１８２内にあるＬＴＧ（ＬＴＧ１１，ＬＴＧ１２，ＬＴＧ１３，ＬＴＧ１４，及びＬＴＧ１５）は、出力層１８４内のＬＴＧ  Ｔ２１によってあらゆる場合にＡＮＤを使って結合された。ＮＮ１８０がトレーニングされたデータセット１７０（図１７）は、それぞれ３つの段階からなる２つの螺旋を有する。各螺旋は、９７個のデータ点を有する。ＮＮ１８０は、正確に１００％のトレーニングベクトルをリコールすることができた。
【０３７９】
各螺旋毎に８０個の入力ベクトルを使ってＮＮ１８０をテストしたところ、トレーニングセットからはデータ点が全くなかった。１を出力することになっていた螺旋からの入力ベクトルについては、２１／８０個の入力ベクトルが間違って分類された。これは２６％の誤り率となる。
【０３８０】
０を出力するようにトレーニングされた螺旋からの８０個の入力ベクトルのうち、３５／８０個の入力ベクトルが間違って分類された。これは４３％の誤り率になる。この結果が非常に高くなった理由は、入力ベクトルの出力が不明であったＬＴＧについて、デフォルトの出力が１だったためである。
【０３８１】
どちらの螺旋も平均誤り率は３４．５％である。トレーニングセットに対して訂正出力を９８％予測することができたであろう場合に、ＮＮ１８０は、トレーニングされたとみなされたので、２つの螺旋を使った問題について比較できる誤り率を見つ出すことは困難であった。また、１は＞．５であって、０は＜．５であるとしてもよいので、カスケード相関アーキテクチャ（Ｃａｓｃａｄｅ−Ｃｏｒｒｅｌａｔｉｏｎ  Ａｒｃｈｉｔｅｃｔｕｒｅ、ＣＡＳ）について、誤り率を見つけ出すことは困難であった。Ｔｅｎｇらは、ニューロンが＞．８であれば有効であるとし、そうでなければ活性化されていないとした。Ｆｕら、Ｔｅｎｇら、及びＦａｈｌｍａｎらにとっていっそう重要なことは、中間層内にあるユニットの数及びＮＮをトレーニングするのに必要とされたエポック数又は時間であった。あらゆる場合に、本発明に係るＤＲトレーニングアルゴリズム３０は、１００％の正確さをもってデータセットを学習するのに最も少ない隠れユニット数を必要とし、かつたった１エポックだけを必要とした。ＤＲトレーニングアルゴリズム３０は、５個の隠れニューロンを必要とし、ＣＡＳは、平均して１２個の隠れニューロン及び１７００個のエポック、２０８２＋４７８個のエポック２１．１＋２．３個のサブＮＮ（１個以上のニューロンである）、並びに１０個の隠れユニットを必要とし、最低１０７３．４５個のＣＰＵ内において学習した。本発明に係るＤＲトレーニングアルゴリズムが最後の入力ベクトルを学習するのにかかった時間及びそれゆえに「２つの螺旋の問題」に対して任意の他の入力ベクトルを学習するのにかかった最長時間は、１５分５４秒であった。これは、制約充足ライブラリの使用のためであり、１８２個の中間層内に最後の入力ベクトルを学習するＬＴＧが５個あった。入力ベクトルをテストする平均時間は約３０分であった。バックプロパゲーションを使ってトレーニングしたＮＮは、固定サイズのＮＮを必要とするため、データセットを学習する時間は、バックプロパゲーションを使うよりも著しく短くなる。
【０３８２】
誤り率は、データセットの内側についてより小さかった。誤り率は、各螺旋毎に最初の１．５段階内において２３％及び３３％だった。誤差の増加は、データセットの内側にあるデータ点をトレーニングするより高い密度に起因するものと考えられる。
【０３８３】
なお、ｒ＝θを有する螺旋を予測するのによりよい成功を有した。図１９に、テストデータの結果を示す。
【０３８４】
「□」からなる曲線上の「＋」は、正確に識別された入力ベクトルであって、「○」からなる曲線上の「×」もまた正確に識別された入力ベクトルであることを示す。他では、それらは間違って識別される。ここで、ＮＮ１８０の一般化能力を高めるのに付加的なトレーニングを与えることを必要とするのは入力空間のどの部分であるかが分かる。フィードフォワードＮＮをトレーニングするには伝統的にとても困難なデータセットであることに留意されたい。
【０３８５】
最後の入力ベクトルを除いて、どの入力ベクトルに対しても、ＮＮ１８０の場合、中間層１８２内にある１つ以上のＬＴＧについて不完全な学習があった。ほとんどの場合、ＬＴＧ１５において不完全な学習があった。
【０３８６】
生成されたＮＮ１８０は、バックプロパゲーションを用いたときに生成されるＮＮよりより複雑ではない。さらには、それは困難なデータセットである。入力ベクトル数を増やしてトレーニングすることによって結果を改善することができたと考えられる。
【０３８７】
従って、本発明に係るＤＲトレーニングアルゴリズム３０は、その一般化能力に関して、フィードフォワードＮＮをトレーニングする他の手法と同様によく動作することができる。ＤＲトレーニングアルゴリズム３０は、類似した構造をトレーニングする異なったトレーニング方法である。
【０３８８】
次に、ＮＮ１８０内にあるＬＴＧの各一についてＭＡＶを考察して、ＬＴＧの各一が何を学習したかを明らかにする。
【０３８９】
（「２つの螺旋を使った問題」におけるＬＴＧのＭＡＶ決定）
ＬＴＧ１１の場合（閾値Ｔ１１を有する）図１５の方法１５０を用いてＭＡＶを見つけることで、制約条件数を１９４個から２９個に減らした。これは８５．１％の減少又は圧縮である。このＬＴＧによって学習された他の入力ベクトルは全て、先に解説したように、ＬＴＧのＭＡＶを形成する残された点から回復することができる。この重み空間は２４次元を有する。
【０３９０】
制約条件のうち、１３個の入力ベクトルがｘｉ・ｗ１１＞−Ｔ１１を形成し、残りの１６個の制約条件がｘｉ・ｗ１１＜Ｔ１１を形成した。
【０３９１】
ＬＴＧに活性化する重み空間内の領域の面を形成する平面を調べることによってＬＴＧが何を学習したかをグラフにすることができる。これらの平面をｘｉ・ｗ１１として表す。重み空間は入力空間の変形である。ＬＴＧが何を学習したかを明らかにすることができるように、ＭＡＶ内の制約条件をそれらの制約条件が形成された元の入力ベクトルに変換し直す。続いて、元の入力ベクトルがどうやって形成されたかに係るプロセスを１０進法から２進法へと逆にすることができる。これをどのようにはじめるかについての解説は、先の、浮動小数点数を作成する方法を解説したところに記載してある。次に、中間層１８２内にある各ＬＴＧが本発明に係る方法を用いて何を学習したかを説明する。
【０３９２】
図２０ａにおいて、中間層１８２内にある最初のＬＴＧであるＬＴＧ１１が何を学習したかが分かる。「○」及び「□」は、元の入力ベクトルであることを示す。「□」はｒ＝θの螺旋を表し、「○」はｒ＝−θの螺旋を表している。「＋」は、ＬＴＧ１１のＭＡＶを見つけた後に残った入力ベクトルであることを示し、このデータセットを分類することに対して顕著な入力ベクトルを表している。「×」は、ｘｉ・ｗ１１＜Ｔ１１を用いて学習された制約条件であることを示す。「＋」は、ｘｉ・ｗ１１＞Ｔ１１を用いて学習された制約条件であることを示す。後続のＬＴＧについても、この凡例に従う。以上がこのＬＴＧ１１が正確に学習したことである。また、入力空間ではなく重み空間内において規定した体積の面としてデータを符号化することによってデータセットが学習されることに留意する価値がある。
【０３９３】
伝統的に、学習しているクラスを線形分離するには入力空間を分析する。重み空間は２４次元空間なので、重み空間を調べることは不可能である。このことは、中間層１８２内にある他のＬＴＧについても同じである。なお、当該ＬＴＧであるＬＴＧ１１は、データセット全体を学習することはできない。次に、ＬＴＧ１２が何を学習したかを検討する。
【０３９４】
ＬＴＧ１２の場合、ＭＡＶを見つけることで制約条件数を１９４個から３４個に減らした。これは８２．５％の減少又は圧縮である。ｘｉ・ｗ１２＜Ｔ１２を形成する１６個を除いた全ての制約条件がｘｉ・ｗ１２≧Ｔ１２を形成する制約条件を生成した。図２０ｂにおいて、中間層１８２内にある第２のＬＴＧであるＬＴＧ１２が何を学習したかが分かる。
【０３９５】
図２０ａの場合と同じ凡例を用いると、ＬＴＧ１２が種々の入力ベクトルを学習したことが分かる。「□」の螺旋ｒ＝θ上において、学習した入力ベクトルの全てがそのクラス、すなわちｘｉ・ｗ１２≧Ｔ１２であることが分かるなお、このクラスでもある多くの入力ベクトルが「○」の螺旋ｒ＝−θ上にある。その理由は、当該ＬＴＧであるＬＴＧ１２がこのデータセット内にある全てを学習することができなかったためである。また、中間層１８２出力内にあるＬＴＧがＬＴＧ２１である出力ＬＴＧによってＡＮＤを使って結合される。このことは、当該ＬＴＧであるＬＴＧ１２がそれらの入力ベクトルに対して０の代わりに１という間違った結果を生成する場合に、当該層内にある別の１個のＬＴＧだけがそれらの入力ベクトルを学習することができ、かつ０を生成することを意味している。次に、ＬＴＧ１３が何を学習したかを検討する。
【０３９６】
ＬＴＧ１３の場合、ＭＡＶを見つけることで制約条件数を１９４個から５１個に減らした。これは７３．７％の制約条件の減少である。ｘｉ・ｗ１３＜Ｔ１３を形成する１０個を除いた全ての制約条件がｘｉ・ｗ１３＜Ｔ１３の形式を生成した。図２０ｃにおいて、中間層１８２の第３のＬＴＧであるＬＴＧ１３が何を学習したかが分かる。
【０３９７】
ＬＴＧ１４の場合、ＭＡＶを見つけることで制約条件数を１９４個から８１個に減らした。これは５８％の減少又は圧縮である。ｘｉ・ｗ１４＜Ｔ１４を形成する６個の制約条件を除いた全ての制約条件がｘｉ・ｗ１４≧Ｔ１４を形成する制約条件を生成した。図２０ｄにおいて、中間層１８２内にある第４のＬＴＧであるＬＴＧ１４が何を学習したかが分かる。
【０３９８】
次に、ＬＴＧ１５が何を学習したかを検討する。ＬＴＧ１５の場合、ＭＡＶを見つけることで制約条件数を１９４個から１５９個に減らした。これは１８％の減少又は圧縮である。ＬＴＧによって学習された制約条件全てが、１個の出力ベクトルを除いて、ｘｉ・ｗ１５＞Ｔ１５を形成する制約条件を生成した。図２０ｅにおいて、中間層１８２内にあるＬＴＧのうち最後に残ったＬＴＧ１５が何を学習したかが分かる。
【０３９９】
当該ＬＴＧであるＬＴＧ１５の主な目的は、「×」によって示された入力ベクトルを学習することである。また、当該ＬＴＧは、ｒ＝θ螺旋に「□」によって示されるほど多くの点を有する。
【０４００】
中間層１８２内にあるＬＴＧについては、２つの螺旋に対して異なった曲線部分を学習したことが分かる。ＮＮ１８０は１００％の正確さをもって教えられたことを再現することができたのを思い出すことが大切である。
【０４０１】
ＬＴＧ２１又はＮＮ１８０の出力ＬＴＧに対してもＭＡＶが配置された。それは、その入力結合全てとの間にＡＮＤを形成したため、３２個の制約条件があった。これでＭＡＶ内における制約条件が６個に減った。これは８１％の減少又は圧縮である。
【０４０２】
ＭＡＶを定義するものと判明した入力ベクトルに関数最小化を適用することはできない。その理由は、データが依存しているためであり、言い換えると、入力ベクトルが単一数を定義し、それゆえ関数最小化が意味のない情報を与えることになるからである。
【０４０３】
（ドイツの信用貸付問題（Ｇｅｒｍａｎ  Ｃｒｅｄｉｔ  Ｐｒｏｂｌｅｍ））このデータセットは、それに関連したコストマトリックスを有する。コストマトリックスを表３に記載する。縦の行が予測したクラスを示し、横の列が実際のクラスを示す。顧客が良好であると予測されて、かつローン返済にあたり良好である場合、また同様に顧客が不適当な信用リスクであると予測されて、かつそうであると証明される場合には損失はない。ただし、ある人物が実施には良好であるときに不適当な信用リスクであると予測される場合には、貸付機関の利益を損なうことになる。しかし、顧客が実際には不適当な信用リスクであるときに良好な信用リスクであると予測されるケースの方がいっそう悪い。ＮＮのコストを算出するときに考慮する必要がある誤りのクラスが２つある。
【０４０４】
【表３】
0005395241.tif 000015
ドイツの信用貸付問題データセットのコストマトリックス
【０４０５】
既知のアルゴリズムについて公開されている結果：バックプロパゲーションの誤り率を表４に記載する。バックプロパゲーションがコストマトリックスに対して求められるとおりには誤りクラスを識別しないため、これらの数値にはコストマトリックスが含まれない。
【０４０６】
【表４】
0005395241.tif 000016
バックプロパゲーションの誤り率
【０４０７】
このデータセットと併せてバックプロパゲーションを用いてＮＮをトレーニングするのに必要とされる時間及びテストするのに必要とされる時間を表５に記載する。
【０４０８】
【表５】
0005395241.tif 000017
バックプロパゲーションのトレーニング時間
【０４０９】
（本発明に係るＤＲトレーニングアルゴリズムの実験結果）
このデータセットを使ってトレーニングすると、１個の出力と２個の中間層ＬＴＧを有するＮＮを生成した。中間層のＬＴＧは、ＯＲ結合によって結合された。データセット内には１０００個の入力ベクトルがある。１０００個のベクトルからなるデータセットから１００個の入力ベクトルからなるテストセットを任意に選択した。トレーニング後に生成されたＮＮ１９０の概略図を図２１に示す。
【０４１０】
テストを行なうために取って置いた１００個の入力ベクトルの中から、出力に対して０を生成する８９個ある入力ベクトルのうち間違って識別された入力ベクトルは４個だった。従って、８５個の入力ベクトルが正しく識別された。テストセット内の出力に対して１を生成する１１個の入力ベクトルのうち、正しく識別された入力ベクトルは９個だった。従って、２個の入力ベクトルが間違って識別された。これらの結果を表６にまとめる。
【０４１１】
【表６】
0005395241.tif 000018
ドイツ信用問題の結果まとめ
【０４１２】
１を生成する入力ベクトルに対する誤り率が１８％と幾分高いことが分かった。０を生成する入力ベクトルに対する誤り率は４．４％である。誤りは全体で６％である。付加的なトレーニングは、どちらの種類の出力を備えた入力ベクトルに対しても誤り率を低くするものと考えられる。ＮＮ１９０は、学習したことを１００％の正確さをもって再現することができた。
【０４１３】
誤りの結果は全てバックプロパゲーションよりも良好であり、バックプロパゲーションでは０．４４６のトレーニング誤り及び０．７７２のテスト誤りがあった。
【０４１４】
この実験は、本発明に係るＤＲトレーニングアルゴリズムが提供する、バックプロパゲーション等の既知のトレーニングアルゴリズムに勝る重要な利点を明らかにしている。重みは、それらが学習しようとしているデータセットに固有のルールを符号化しようと試みる平均値を表すので、バックプロパゲーションの場合、誤りを０にすることはできない。バックプロパゲーションを用いるときの各知覚における単一重み値は、それが各入力ベクトル毎に正確な出力を生成するように学習するのを可能にするであろう各入力ベクトル毎に必要とされる重み値を正確に表すことができない。それは各入力ベクトル毎に正確な出力を可能にするので、これが、重み空間内においてその領域を見つけることの利益のうちの１つである。
【０４１５】
ＮＮ１９０を合計２６８個の入力ベクトルを使ってトレーニングしたところ、これらの入力ベクトルのうち１６８個が１を生成し、残りの１００個の入力ベクトルが０を生成した。これらの入力ベクトルは、テストに用いられず、残っていた９００個の入力ベクトルから任意に選択したものであった。トレーニングするのに、もっと多い入力ベクトルを用いることもできたであろう。
【０４１６】
トレーニングに利用可能なデータセットのうち＜１／３を使ってＮＮ１９０をトレーニングしたところ、バックプロパゲーションより良好な誤り率を生成した。
【０４１７】
これらの実験の結果は、本発明に係るＤＲトレーニングアルゴリズムが実際のデータセットに用いられるものであるならば、より高速な制約条件テスト方法が好ましいことを示している。
【０４１８】
また、実験の結果は、すでに学習した入力ベクトルの数に応じて、各入力ベクトルを学習するのに必要とされる時間量が増加したことも示した。このことを改善する方法は少なくとも２つあり、それらは、（１）平行プロセッサを用いること、又は（２）より効率のよい制約条件テストアルゴリズムを用いることである。多くのメモリを備えた最新式のプロセッサは、ＤＲトレーニングアルゴリズム３０の動作を向上させることができるとも考えられている。
【０４１９】
テスト用に予約してあった１００個の入力ベクトルのうち、１１個の入力ベクトルが出力１を生成し、残りの８９個の入力ベクトルが出力として０を生成する。データセット全体において１を生成する入力ベクトルは相対的に少ない。なお、出力が何であるべきかが分からないときは０を出力する傾向があるので、ＮＮ１９０が上手く１を出力する方法を学習するように、１を出力する相対的により多くの入力ベクトルを使ってトレーニングすることが決まった。このように１よりむしろ０を出力する傾向が選択されていた訳は、偽陰性の偽陽性より優先される比は５：１であると指定されているためである。このことは、偽陰性対偽陽性５：１の分類誤りを優先させることを示すコストマトリックスに基づいている。言い換えれば、顧客が実際には不適当であるのに良好な信用リスクであるとして誤って識別するよりもむしろ、顧客が実際には良好な信用リスクであるときに不適当な信用リスクとして分類することを優先させることになる。
【０４２０】
従って、表３におけるコストマトリックスを適用すると、コストは１４である。ＮＮをテストするとき平均誤りだけが回収されるので、従来のＮＮトレーニングアルゴリズムを使ってコストを決定することは可能ではない。
【０４２１】
制約条件をテストするライブラリ関数の結果として、トレーニング時間がバックプロパゲーションの場合より長くなったが、本発明に係るＤＲトレーニングアルゴリズム３０は、入力ベクトルを学習するのにデータセットのうち１パスのみ、及びＮＮ１９０をトレーニングするのに利用可能なデータセットのうち１／３のみを必要とした。
【０４２２】
（「ドイツの信用貸付問題」におけるＬＴＧのＭＡＶ決定）
図１５のＭＡＶを決定するための方法１５０を用いてＮＮ１９０内にあるＬＴＧに対してＭＡＶを配置した。層内にある最後のＬＴＧ又は現在の出力ＬＴＧの場合、トレーニング中にＬＴＧのＭＡＶを見つけることは、ＮＮ１９０が学習したことを忘れるであろうことを意味する可能性があるのが分かった。これは、先に、ＮＮ内にＬＴＧを付加するときのロジックを実装する方法を解説したところで記載したとおり、新しく付加したＬＴＧを層内にコピーするときに制約条件が修正されるためである。
【０４２３】
トレーニング中に形成された２６８個の制約条件のうち、ＬＴＧ１１のＭＡＶを見つけた後は４５個が残っていた。これは、ＬＴＧのために重み空間を定義する制約条件の８３％の減少である。これらの制約条件のうち、１８個がｘｉ・ｗ１１≧Ｔ１１の形式になる制約条件を生成した。
【０４２４】
トレーニング中に形成された制約条件を考察する際、ＬＴＧが何を学習したかは（ｘｉ・ｗ１１≧Ｔ１１  ＯＲ  ｘｉ＋１・ｗ１１＞Ｔ１１  ＯＲ．．．ＯＲ  ｘｉ＋ｎ・ｗ１１≧Ｔ１１）ＡＮＤ  ＮＯＴ（ｘｊ・ｗ１１＜Ｔ１１）ＡＮＤ  ＮＯＴ（ｘｊ＋１・ｗ１１＜Ｔ１１）ＡＮＤ  ＮＯＴ．．．の形式において読み取ることができる。
【０４２５】
それ自体を論理分析に与えるのがこの形式においてであるので、このデータセットの分類にどの変数が無関係であるかを推論することができる。
【０４２６】
一般によくあるように、入力は独立して存在することを考えると、クワイン−マクラスキー法（Ｑｕｉｎｅ−ＭｃＣｌｕｓｋｅｙ）又は反復コンセンサス法（ｉｔｅｒａｔｅｄ  ｃｏｎｓｅｎｓｕｓ）等の関数最小化技法の利用は、特に重要である変数を見つける。ＭＡＶを見つけることによって余分な入力ベクトルの全てを取り除くことができるので、関数最小化技法を用いるというタスクをはるかに容易にし、起こり得る指数的な複雑さを抑えるのに役立つ。
【０４２７】
なお、元のデータセット内にある幾つかの変数が複数のビット位置に変換されたので、それらの制約条件が何を表しているかを知ることはいっそう興味深い。
【０４２８】
第２のＬＴＧであるＬＴＧ１２を中間層１９２及び新しい出力ＬＴＧに付加させたのは、入力ベクトル［１０００１１１０１０１０１０００００１０００１１００１１０１０１０００１０１０００１］→ｌであった。ベクトルをフィールドに分割すると［１０  ００  １１１  ０１０１  ０１  ０００  ００１  ００  ０１１  ００  １１  ０１  ０１  ００  ０１  ０  １０  ０  ０  １］．このベクトルを翻訳すると「この顧客は預金口座を有してない、ローンは＜１２ヶ月でなければならない、指定期間内に現在あるクレジットの全てを返済した、家具／設備にローンを希望、１０００〜５０００ＤＭの間で借り入れを希望、顧客の就労期間は＜１年、自由に使える所得のパーセンテージは＜１％、既婚女性／離婚、保証人なし、同一住所に４年以上居住している、この顧客は幾らかの貯金又は生命保険を有する、年齢が２５〜４０歳の間の女性である、家屋を所有している、当行において他にクレジットなし、熟練労働者である、扶養義務のある人物がいない、その女性名義の電話がない、及び外国人労働者である」となる。
【０４２９】
トレーニング中に形成された２６８個の制約条件のうち、ＬＴＧ１２のＭＡＶを見つけた後は１３９個が残った。これは、ＬＴＧのために重み空間を定義する制約条件の４８％の減少である。これらの制約条件のうち１４個がｘｉ・ｗ１１＞Ｔ１２になるような制約条件を生成した。
【０４３０】
出力ＬＴＧであるＬＴＧ２１は、その入力結合間にＯＲを形成した。結果として４個の制約条件を形成した。ＭＡＶを決定した後、制約条件数は３個にまで減った。これは、制約条件数において２５％の減少である。
【０４３１】
このようなデータセットの場合、４２次元を有するので、このプロセスを自動化することが非常に望ましい。中間層１９２内にある各ＬＴＧ毎にＭＡＶを見つけた後もなお４５個及び１３９個の検討すべき制約条件又はルールがあり、このプロセスを自動化しなければ扱いにくくなる恐れがある。なお、良好な信用リスクである顧客を決定するためＬＴＧが学習したことを基にした大まかなルールは、「自宅を貸していない又は借りていない、若しくは不動産／貯蓄又は（深刻な借金及び保証人）を有する」といったようなものであるということができる。
【０４３２】
なお、ＮＮ１９０が入力ベクトルのうち２つをテストセットから正確に分類しなかったことを考えると、ＮＮ１９０がまだ学習していない付加的特徴がデータセット内に少なくとも１つあることになる。
【０４３３】
（両データセットの実験結果まとめ）
どちらの場合にもＮＮ１８０、１９０が１００％の正確さをもってトレーニングセットを再現することができたことを考えると、比較の基準に基づき、どちらの場合にも学習されたルールの正確さは極めて高い。このことは、バックプロパゲーションがトレーニング中に確定する平均重み値と対照をなす。必然的に、バックプロパゲーションを用いる場合、ＮＮがトレーニングされたデータ上においてＮＮをテストすると、出力に幾らかの誤差がある。入力ベクトルが分類される速度は、実行するルーチンを処理する制約条件に必要とされる時間に基づく。アルゴリズムがライブラリを処理する制約条件を頼りにすることを考えると、データセットを学習する時間は相対的に遅い。なお、アルゴリズム３０を動作させるのに適当なコード及び／又はハードウェアを用いれば、入力ベクトルを１秒未満で学習したであろうことが考えられる。また、データセットは、そのデータセットの単一パス内において学習されることが可能である。このことは、ＮＮが絶えずデータセットを学習するものであるかが分からないバックプロパゲーションと対照をなす。
【０４３４】
さらに、トレーニング中に学習されたルールは、非常にわかりやすいということが分かった。一方、数値アルゴリズムを使ってトレーニングしたＮＮ内において符号化されるルールは、ほぼ完全に理解不能である。
【０４３５】
従って、本発明は、フィードフォワードＮＮの利用に関連した多くの利益を提供する。主な貢献を次のようにまとめることができる。（ａ）ニューロン、好ましくはＬＴＧをトレーニングする新規方法である。（ｂ）ＬＴＧをトレーニングする新規方法に基づいてフィードフォワードＮＮをトレーニングするアルゴリズム３０は、（ｉ）データセットを学習するのに必要とされるとおりにＬＴＧをダイナミックに配置し、（ｉｉ）単一パス内において学習し、かつ（ｉｉｉ）簡易方法１５０が、得られたＮＮから容易に読み取られるようにトレーニング中に学習するルールを決定するのを可能にし、かつ（ｃ）ＬＴＧが何を学習したかを分析する簡易方法１３０を可能にする。
【０４３６】
ＬＴＧをトレーニングする新規方法は、重みと各ＬＴＧの閾値との関係を見つけ出すものである。これは、ＬＴＧが入力を正確に学習してリコールすることを可能にする。言い換えると、ニューロンをトレーニングする従来の方法が生成を希望する近似値の代わりに、入力が正確に再現されることが可能である。
【０４３７】
本発明に従ってＬＴＧをトレーニングする方法は、ＬＴＧに活性化する各ＬＴＧの重み空間内における体積を見つ出して、ＬＴＧへの入力間の関係を体積の面へと符号化する。
【０４３８】
この方法は、ＬＴＧが問い合わせられて、入力ベクトルを学習したか又は学習することができるかを、それゆえ入力ベクトルを分類する方法を知っているかを決定するのを可能にする。このテストは、ＬＴＧをＮＮ内に配置することがいつ必要とされるかを決定する容易な方法を提供する。
【０４３９】
その方法は、先に学習した入力をリコールしかつ一般化する等、従来の方法を使ってトレーニングしたニューロンが実行する機能の全てをＬＴＧが実行するのを可能にする。
【０４４０】
本発明に従って、ニューロン、好ましくはＬＴＧをトレーニングする新規トレーニング方法の主な適用は、データセットを学習するＮＮに対して求められるとおりにニューロンを配置するＤＲ学習アルゴリズム３０の開発である。これは、ＮＮの分野に対する重要な貢献である。
【０４４１】
フィードフォワードＮＮをトレーニングするこの方法が固定サイズのＮＮ（ＮＮ内にあまりに多い又はあまりに少ないニューロンを有する場合がある）の問題を解決する。
【０４４２】
本発明に係るＤＲトレーニングアルゴリズム３０の最も重要な特徴の１つが単一パスにおいてデータセットを学習する能力である。これは、潜在的に指数的なトレーニング時間になるという問題を解消するので、ＮＮの分野に対して大きな貢献である。トレーニング時間は、ＬＴＧに問い合わせて入力が学習されたか又は学習され得るかを決定するのに必要とされるソフトウェアを処理する制約条件の速度に依存する一方で、そのことは、決定論的な時間量のうちにＮＮは学習するものであることを意味する。
【０４４３】
また、トレーニングに先行して、データを適当なフォーマットに変換するための有用な方法も提供するので、ＮＮのトレーニング時間を改善するのに活用することができる。同様に、ＮＮによってトレーニングされるデータを予め仕分けるための有用な方法もまた提供するので、データ分類の効率を上げるのに活用することができる。これらの方法は、あらゆるＮＮトレーニングアルゴリズムに対して有用であると考えられる。
【０４４４】
本発明の別の利点は、フィードフォワードＮＮの挙動、特にトレーニングの進行中に学習したルールを見抜く能力である。トレーニング方法がリレーショナル（関係的）であるため、本発明の利点は、入力間の関係を見つけ出すことであることを意味しており、それら入力間の関係は、ＬＴＧに活性化する体積の重み空間内における領域の面として蓄積される。後で従来の感度分析を行なうのに用いることができるＭＡＶを見つけることによってこれらの関係が回復されるのを可能にする有用な方法１５０を提供する。ＬＴＧを層内に結合するのに用いる論理的関係をＮＮから直接読み取ることもできる。
【０４４５】
フィードフォワードＮＮのための従来のトレーニング方法は、トレーニング中に学習したルールをデータセットに関する多くの情報が失われる単一数値へと圧縮する。従来のトレーニング方法からでは、数値が表そうとしている考えられ得る限り最良の平均値をどれだけ正確に表しているかを決定することは可能ではない。
【０４４６】
本発明に係るＤＲトレーニングアルゴリズム３０は、好ましくは全ての入力ベクトルを制約条件に変換し、かつその制約条件内に包含される関係をＬＴＧを活性化する重み空間内における体積の面として蓄積する。このことは、全入力がリコールされるのを可能にし、本発明のさらなる態様によりＭＡＶを決定する方法１５０を用いることによって制約条件セットを最小数の制約条件にまで減らすことができる方法を提供する。ＬＴＧのＭＡＶを見つけることによって、ＬＴＧの制約条件セットから制約条件を取り除くときに情報は全く失われない。
【０４４７】
ＭＡＶを見つけ出す方法１５０は、ＮＮに限定されるものではない。ＭＡＶを見つけ出す方法は、最適化及びオペレーションリサーチ型の問題に用いられるＣＳＰ等の制約条件のシステムを用いる他の分野にも有用である。
【０４４８】
行なった実験は、ＮＮをトレーニングするのに、トレーニングされるＮＮ内にある重みよりも多くの入力ベクトルが必要とされるとは必ずしもいえないことを示した。これは、各入力ベクトルがＮＮ内にある各重みをトレーニングしているからである。ＤＲ学習は、どの入力ベクトルがＬＴＧをＮＮに付加せしめているのかを容易に識別する簡易テストを提供する。完全なデータセットを使ってトレーニングすることが必ずしも必要なわけではない。
【０４４９】
ＮＮが一般化できない潜在的な原因は、先に、ＮＮが充分にトレーニングされず、その結果、見えない入力ベクトルの出力が分からないということを述べたところで解説している。本発明のさらなる態様に従えば、逆に、見えない入力ベクトルに対する出力が何かをＮＮが知っているか決定するのに用いることができ、かつどの入力ベクトルが未知であるかを明らかに識別することができる方法１３０を提供する。従って、ＮＮは、どの入力ベクトルについて付加的なトレーニングを必要としているのかを特定することができる。
【０４５０】
入力ベクトルが既知であるか未知であるかを決定する方法１３０は、ＮＮに限定されるものではない。入力ベクトルを分類する方法は、サンプルＤＮＡに関して、データ列の分析等制約条件のシステムを用いる他の分野にも有用であると考えられる。同様に、入力ベクトルを分類する方法をＣＳＰ及びオペレーションリサーチの用途にも有用であり得る。
【０４５１】
本明細書において本発明の一般的な性質及び例として幾つかの具体的な実施形態のみを規定しているため、本発明は、当業者にとって容易に明らかになるであろう多くのさらなる変更及び本発明の広い範囲及び領域内に存在するとみなされるであろう多くのさらなる変更をも含むものであると理解されるであろう。
【図１】
0005395241.tif 000019
【図２】
0005395241.tif 000020
【図３】
0005395241.tif 000021
【図４】
0005395241.tif 000022
【図５】
0005395241.tif 000023
【図６】
0005395241.tif 000024
【図７】
0005395241.tif 000025
【図８】
0005395241.tif 000026
【図９】
0005395241.tif 000027
【図１０ａ】
0005395241.tif 000028
【図１０ｂ】
0005395241.tif 000029
【図１１】
0005395241.tif 000030
【図１２】
0005395241.tif 000031
【図１３】
0005395241.tif 000032
【図１４ａ】
0005395241.tif 000033
【図１４ｂ】
0005395241.tif 000034
【図１４ｃ】
0005395241.tif 000035
【図１４ｄ】
0005395241.tif 000036
【図１４ｅ】
0005395241.tif 000037
【図１４ｆ】
0005395241.tif 000038
【図１４ｇ】
0005395241.tif 000039
【図１５】
0005395241.tif 000040
【図１６】
0005395241.tif 000041
【図１７】
0005395241.tif 000042
【図１８】
0005395241.tif 000043
【図１９】
0005395241.tif 000044
【図２０ａ】
0005395241.tif 000045
【図２０ｂ】
0005395241.tif 000046
【図２０ｃ】
0005395241.tif 000047
【図２０ｄ】
0005395241.tif 000048
【図２０ｅ】
0005395241.tif 000049
【図２１】
0005395241.tif 000050