入力ベクトルがニューロンによって既知であるか未知であるかを決定する方法
【課題】本発明は入力ベクトルがニューロンによって既知であるか未知であるかを決定する方法を提供する。
【解決手段】本方法は、入力ベクトルから制約条件及びその補空間を構築するステップと、制約条件及び補空間を交互に前記ニューロンの制約条件セットに追加するステップと、いずれかの場合に解答があるか否かを決定するために制約条件セットを試験するステップと、を含む。制約条件又はその補空間のいずれかに解答があり、かつ制約条件及びその補空間の両方に解答がない場合には、入力ベクトルは、前記ニューロンに既知であることが決定され、制約条件及びその補空間が交互に前記制約条件セットに追加されるときに解答がある場合には、入力ベクトルは、ニューロンによって既知ではないことが決定される。
【解決手段】本方法は、入力ベクトルから制約条件及びその補空間を構築するステップと、制約条件及び補空間を交互に前記ニューロンの制約条件セットに追加するステップと、いずれかの場合に解答があるか否かを決定するために制約条件セットを試験するステップと、を含む。制約条件又はその補空間のいずれかに解答があり、かつ制約条件及びその補空間の両方に解答がない場合には、入力ベクトルは、前記ニューロンに既知であることが決定され、制約条件及びその補空間が交互に前記制約条件セットに追加されるときに解答がある場合には、入力ベクトルは、ニューロンによって既知ではないことが決定される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は一般的に人工ニューラルネットワーク及びその操作に関し、特に、限定しないが、ニューラルネットワークのトレーニング法の改善及び/又は、トレーニング過程中の要求通りにネットワークにニューロンを追加できるシステムに関する。
【背景技術】
【0002】
過去10数年にわたり生成データセットのサイズが増殖するに従い、厳密に理解されないデータセットにおいて、そのデータセット内の関係を見出すために用いうる開発ツールへの関心が高まっている。データ探索のツールは、毎回固定した時間量において、入力と出力の間の関係についての顕著な情報を容易に決定しうるデータセットを矛盾なく学習しうることが望ましい。
【0003】
データ探索のツールの1つは、フィードフォワードニューラルネットワークである。フィードフォワードニューラルネットワークは、データセットを有する多くの多様で困難なタスクを実施するために用いられ、過去およそ40年にわたって大いに注目されてきた。これらには、「一般化する」能力があるという理由で、パターン分類及び機能概算を含む。このように、ニューラルネットワーク(以後、簡便のために”NN”と略称)は、非線形システムモデリング及びイメージ圧縮・再構成等のアプリケーションに用いうる。
【0004】
NNが関心を持たれる分野には、科学、商業、医学及び産業が含まれ、これらにおいてはデータに内在する関係性が不明であり、NNであればそうしたデータをうまく分類する方法を学習できるからである。
【0005】
ある場合においては、データが先行する分類に提示されてはならず、こうした状況では、で他を分類するために自己組織化マップ等の教師なしトレーニングを用いることが通常である。別の場合においては、データは分類されたデータサンプルに前もって分解され、こうした状況では未分類のデータをさらに分類できるようNNをトレーニングすることが通常である。後者の場合においては、教師あり学習アルゴリズムが伝統的に用いられる。分類された入力データ例には関連付けられる出力があり、トレーニング期間中にNNは入力ベクトルに関連付けられる望ましい出力を再現することを学習する。フィードフォワードNNは、伝統的には教師ありトレーニング法を用いてトレーニングされる。
【0006】
人工NNは多くのニューロンで構成され、これらはユニット又はノードと呼ぶことがある。これは生物学的ニューロンからインスピレーションを得ている。ニューロンは相互に接続せいてネットワークを形成する。各ニューロンには多くの他のニューロンからの入力がある。ニューロンは入力に応答して、発火するかしないかにより出力を生成する。このようにして、ニューロンの出力は多くの他のニューロンへの入力になりうる。これがフィードフォワードNNの基本構造である。
【0007】
典型的にはニューロンは層を形成する。フィードフォワードNNにおいては、入力層、中間層及び出力層の、3タイプの層がある。第1の層は入力層であり、1以上のニューロンを内蔵する。同様に1以上のニューロンを有する出力層もある。NNは1以上の中間層を有する場合もある。入力層の全てのニューロンは次の層、すなわち出力層又は1以上の中間層がある場合には第1の中間層へ、出力を提示する。中間層が1つだけであると、中間層のニューロンは出力層に対して出力を報告する。中間層が1よりも多いと、ニューロンは次の中間層等の入力に向かって出力を送り、最後の中間層は出力層の入力に向かってその出力を送る。
【0008】
他のネットワークアーキテクチャも可能であり、NNは特定のデータセットを学習するよう特異的に設計しうる。これは特にNNの入力ベクトルのシーケンス学習に見られ、これは接続にフィードバックループを有することもある。これらのNNは回帰フィードフォワードニューラルネットワークと呼ばれ、一般的にはこのNNの出力はしばしばNNの入力にフィードバックしうる。
【0009】
最初の生物学的ニューロンモデルは、McCulloch及びPittにより1943年に開発された。これは、McCulloch−Pittニュートンとして知られた。McCulloch−Pittニューロンモデル又は直線閾値ゲート(以後、LTGと略称、Linear Threshold Gate)は、多くの入力接続及び各接続と関連付けられた重みを有するものとして定義される。入力は、数学的にベクトルxiとして定義され、
【0010】
【数1】
式中、nはLTGへの入力数を示す正の整数であり、iはi番目の入力ベクトルである。入力接続はn個あるので、接続の重みは数学的にベクトルwと定義されうる。
【0011】
【数2】
LTGへの各入力ベクトルは関連付けられた重みがかけ合わされて数学的にxi・wと表され、この結果はLTGの閾値Tと比較される。
【0012】
【数3】
xi・w≧Tならば出力は1であり、さもなければxi・w<Tとなって出力は0である。換言すれば、LTGはニューロンの活性化関数としての、このステップ関数又はHeaviside関数を用いる。
【0013】
LTGは次式の定義を用いて数学的に定義しうる。w={w1,w2,..・wn}及びxi={x1,x2,...xn}ここで、
【0014】
【数4】
【0015】
【数5】
とおくと、LTGの挙動は次式1.1のようにまとめられる。
xj・w<T→0、及びxj・w<T→1 (1.1)
【0016】
このように、LTG、Oの出力はバイナリ{0,1}である。LTGは活性化すると1を出力し、しなければ0を出力する。
【0017】
1962年に、LTGは、永久的に1にセットされる追加バイアスで変更された。バイアス入力は閾値を吸収し、これをゼロにセットする。変更されたLTGモデルはパーセプトロンと名称変更した。パーセプトロンモデルにおいては、閾値Tはxi・wから除去されうるので、等式はxi・w<T≡xi・w−T<0、及びxi・w>T≡xi・w−T≧0となるすなわち、閾値は、重みw0と共にニューロンへの別の入力になることが可能で、ニューロンへの入力を1に固定することにより常に存在することが確定し、T=1・w0となる。重みw0はバイアスウェイトと呼ばれる。従って、前式は次のようになる。
xi・w−W0<0、及びxi・w−W0≧0
【0018】
1960年に、Rosenblattはパーセプトロンモデルを用いて重みのための数値を見出すことに注目した。これ以降、ニューロン内の各重みに足して単一の数値を見出すことが、ニューロン及びNNをトレーニングする方法を確立してきた。ニューロンにより生成する関係は提案ロジックを用いて表現しうることが認識されていたが、重みと閾値との象徴的な関係を直接に見出すことは意図されてこなかった。NNがトレーニング中に学習したデータセット内のルールは数値コード化され、これによりルールは非圧縮性となりうる。重み及び閾値により見出される数値から、NNにより学習されたルールを見出すことが意図されてきた。このような方法は全てトレーニング後の追加プロセスであり、これらによってNNから直接にルールを読み出すことはできない。
【0019】
1962年に、Rosenblattはパーセプトロン学習アルゴリズムの収束を証明し、これは直線的に分離可能なデータセットを満足する数値を反復して見出すものであった。ニューロンは、特定の入力に与える所望の出力を生成するよう、接続の重みを加えることにより学習する。Rosenblattのトレーニングルールは、式1.2に見られるように、入力xiに基づいて重みwjが変更されるというものであり、式中、1≦j≦n、nはパーセプトロンへの入力の数、tは時間ステップ、ηは正のゲイン率で、η≦1である。Rosenblattのルーツはバイナリ出力に対して動作する。特定の入力に対するパーセプトロンの出力が正しいならば、何も起こらない。
Wj(t+1)=Wj(t) (1.2)
さもなければ、出力が0であり、かつ1でなければならない場合は、次のようになる。
Wj(t+1)=Wj(t)+ηXi(t) (1.3)
あるいは、出力が1であり、かつ0でなければならない場合は、次のようになる。
Wj(t+1)=Wj(t)−ηxi(t) (1.4)
【0020】
反復して重みを調節するアイデアは、今やフィードフォワードNNをトレーニングする方法として確立した。
【0021】
1969年に、より複雑なデータセットに対してRosenblattの学習アルゴリズムは動作しないことが見出された。Minsky及びPapertは、単一層のパーセプトロンは有名な排他的論理和(XOR)問題を解けないことを示した。これが動作しない理由は、反復が重み空間内の単一点を見出すために用いられたからである。
【0022】
Boolean関数の全てが単一のLTGにより学習されうるとは限らない。n個の入力変数には2nの組み合わせがあり、可能な出力と組み合わせると2nのユニークなBoolean関数(あるいはスイッチング関数として公知)が存在することになる。2nの関数のうち、あるもののみが単一のn−入力LTGにより表されうる。入力スペースが直線的に分離可能であるBoolean関数は単一のLTGにより表すことができるが、直線的に分離可能ではないBoolean関数を学習するためには追加のLTGが必要である。XORは直線的に分離可能ではないBoolean関数の例であり、従って単一のLTGでは学習できない。
【0023】
LTGに追加の層を用いることで、直線的に分離可能ではない問題をNNに学習させることが可能になるが、しかしLTGの複数の層を同時にトレーニングしうる実用でキナトレーニングルールはなかった。
【0024】
結果として、LTGの複数の層をトレーニングしうる重み及び閾値のための数値を見出す反復方法がないという理由で、ニューロンのMcCulloch−Pittモデルは廃棄された。これは、バックプロパゲーションが開発されるまで続いた。
【0025】
1974年に、Werbosはエラーバックプロパゲーション(又は「バックプロパゲーション」)のアイデアに至った。後に1986年に、Rumelhart及びHinton、さらに1986年にWilliams、及び1985年にParkerが到達したアルゴリズムも同様であり、これにより多層NNモデルをトレーニングして反復的に重みのための数値を見出すことが可能になった。これにより、XOR問題並びに単一層のパーセプトロンでは解けない他の多くの問題の解答が可能になった。McCulloch−Pittのニューロンモデルは活性化関数としてステップ関数に替えてシグモイド関数を用いるよう再び変更された。シグモイド関数の数学的定義は次式1.5で与えられる。
O=1/(1+e−kwx) (1.5)
【0026】
パーセプトロンは一般的にシグモイド関数をパーセプトロンの活性化関数として用いる。k項は曲線の広がりを制御し、シグモイド関数は、
【0027】
【数6】
において出力が
【0028】
【数7】
となるようにステップ関数を近似する。しかしながら、tanh(kw・x)等の他の活性化関数も用いうる。この活性化関数は−1から+1の範囲であるため、NNが負の数を出力可能である必要がある場合に用いられる。
【0029】
バックプロパゲーションはRosenblattの学習アルゴリズムに基づいており、式1.2から式1.4に記載したものである。これは教師あり学習モデルであり、入力ベクトルをNNの入力層に加えることにより動作する。入力層はこの入力を第1の中間層に分配する。層内の各ニューロンの出力は式1.5にしたがって計算され、後続の層への入力となる。後続の層への入力となるニューロンの層の出力(又は活性化)を計算するプロセスは、NNの出力が計算されるまでの間に繰り返される。実際の出力と所望の出力との間にはエラーが生じることもあり、エラーの量に従って重みが変更される。出力におけるエラーは、NN何のエラーを低減するために、今度は出力層への接続から中間層における接続に向かう接続の重みを調節することにより、NNを通じて、フィードバックされるか、又は後方に伝播される。重みの量は、これらのユニット内のエラー量に比例して直接的に調節される。
【0030】
バックプロパゲーションのデルタルールは式1.6で与えられ、式中、iは層、jはi−1層内に生起する接続元のパーセプトロン、kはi層内に向かう接続先のパーセプトロンである。
【0031】
【数8】
式中、
【0032】
【数9】
である。
【0033】
【数10】
は、NN内の重みに関する数値のエラー低減を意図して重みが変更される量である。重みが変更される量は、ニューロンの出力Oijk、ゲイン項η(これは学習速度及び出力エラーδijkとも呼ばれる)に基づく。NNにおけるエラーは、NNの実際の出力と所望の出力との差である。
【0034】
NNが十分にトレーニングされると、NNにおけるエラーとしてのエラー関数の大局的極小値を最小値と呼ぶ。エラー内には多くの局所的極小値が潜在しているので、エラーは面でありうる、すなわち関数でありうると見なされる。しかしながら、いかなるNNに対してもエラー関数は知られていない。エラー関数は、NNに加えられた全ての入力ベクトルに対する所望の出力と実際の出力との差に基づくので、経験的にのみ計算されうる。δijk項はエラー関数の1次微分(出力におけるエラーの差に基づく微分)である。バックプロパゲーションがNN内のエラーを最小化するときに、最小化されるのはエラー関数である。勾配(1次微分)を用いることで、NN内のエラーを最小化する重みを変化する方法の決定が可能になる。これは、勾配降下と呼ばれる。
【0035】
バックプロパゲーションは、そのアルゴリズム内にNNへのニューロンの追加も除去も許容しないため、固定サイズのNNでの動作を要する。NNがデータセットを学習するようトレーニングするときに、そのデータを学習するために何層の、各層にいくつのニューロンが必要であるかという推測がなされる。トレーニング後に、必要ではないニューロンを取り除くことにより、トレーニングしたNNの性能向上を試みてもよい。しかし、トレーニング中はニューロンの数は一定でなければならない。
【0036】
伝統的なバックプロパゲーションアルゴリズムは以下のように要約される。(a)初期化:NN内の層数及び各層のニューロン数を定義し、NNの重みをランダムな値で初期化する;(b)トレーニングセットからNNに入力ベクトルを加えるる。式1.5を用い、入力層に続く第1層内の各ニューロンに対する出力を計算し、この出力を次の層への入力として用いる。このプロセスをNNの各層に対して、出力が計算されるまで繰り返す;(c)式1.6を用い、NN内に存在するエラー量に従って重みを変更する;(d)ステップ(b)及び(c)を、NNがトレーニングされたと考えられるまで繰り返す。NNは、トレーニングセット中のある数の入力ベクトルに対して、エラーが任意の数値以下に低下する時に、トレーニングされたと見なされる。
【0037】
バックプロパゲーションを用いてNNがデータセットを学習するようトレーニングすることには多くの利点が伴う一方、バックプロパゲーションには限界がある。バックプロパゲーションでは、NNはデータセットの学習に長時間が必要となりうるか、さらに悪い場合としては全くデータセットを学習しないかもしれない。いくつかの場合において、NNがデータセットを学習しない理由の決定は不可能なことがあり、及び/又はトレーニング中にNNがデータセットを一体学ぶのかどうか、単に学習に時間がかかるのかを区別することは不可能である。
【0038】
バックプロパゲーションでは、NNはデータ学習に小さすぎる場合がある。伝統的には、NNの設計者は各中間層に用いるニューロン数、及びデータセットの学習に要する中間層の数も推定しなければならない。NNが大きすぎると、適切に一般化できない場合がある。従って、この問題の改善を意図して、NNからニューロンが取り除かれることがある。NNはエラー空間の局所的極小内に固定されることがある。NNがデータセットの学習を完了すると、NNはエラー空間の大局的極小内にある。エラー関数の形状は未知であり、関数は大きいエラー及び小さいエラーの領域を有する。バックプロパゲーションはエラー関数の1次微分を試行することによりエラーを最小化するよう動作するだけであり、これは局所領域のみの試行である。中間層におけるニューロンのトレーニングの目標はデータセット内の異なる特徴を学習することにある。しかしながら、バックプロパゲーションがNN内にエラーを後方伝播するときは、全ての重みが幾分変更されるため、データセット内の特定の特徴に対する各ニューロンのユニークな関連付けが減少する可能性がある。これは、ニューロンは同一層にある他のニューロンが同一の特徴を学習しているか否かを決定できないために起こりうる。このために、特定のデータの特徴を学習し、その特徴を忘れてしまう重みが生じうる。
【0039】
バックプロパゲーションでのNNのトレーニングにおける主要な問題は、NNがデータセットを学習しない原因が上述の理由のいずれであるか決定できないことである。データセットを学習するかもしれないが単純に遅い、又はNNが小さすぎるために全くデータを学習しないかもしれない、又は局所的極小内に固定されるかもしれない。さらに顕著なバックプロパゲーションの問題は、NNがデータセットを学習してしまうと、NNが学習したものは不可解なことに数値としての重み及び閾値にコード化されるということである。
【0040】
バックプロパゲーションでのNNのトレーニングが困難であるため、フィードフォワードNNをトレーニングするための代替アルゴリズム開発に多くの研究がなされてきた。
【0041】
ィードフォワードNNをトレーニングするための代替アルゴリズム開発には多くの研究がある。代替アルゴリズムには2つの分類がある。(1)ニューロン又はNNの資源の数を固定することを要するアルゴリズム、及び(2)NNに対して動的にニューロンを割り当てられるもの、である。
【0042】
これらのアルゴリズムのほとんどは固定サイズのNNを有することに依存し、結果としてバックプロパゲーションと同一の問題を経験する。公知の方法の1つは、重みの数値を見出すために遺伝子アルゴリズムを用いる。遺伝子アルゴリズムは局所的極小点の問題を避けうるが、トレーニングの時間量は限りがなく、NNが小さすぎるために適切なトレーニングではない場合がある。別の代替法は、動径基底関数(RBF、Radial Basis Function)を用いることであり、NNの学習に単一層のみを用いるが、1つのデータセットを学習するために利用可能な入力ベクトルをバックプロパゲーションよりも多く必要とする。固定サイズのNNに伴う問題の結果として、データセット学習のためにNNの成長を許容することが有用である。
【0043】
フィードフォワードNNトレーニングアルゴリズムは、動的にニューロンを追加するものであり、データ内の特徴が確実に学習されるよう、必要なときにのみニューロンを追加する柔軟性をもたらすので、予め定義された構造の問題に対する解答として導入されてきた。従って、他のニューロンがデータセット内の特定の特徴を学習できないときにニューロンが追加され、結果としてトレーニングされたNNを用いて、トレーニング中にNNにより学習されたルールが何であるかをより効率的に確認できる。予め定義されたネットワーク構造は、NNのデータ学習能力を制限する。NNは重みを加えることにより学習し、これは生物学的なNNにおけるシナプスの重みに対応する。前述のように、フィードフォワードNNは生物学的なNNからインスピレーションを得ている。しかしながら、生物学的なNNは、要求されると動的に接続を生成する。
【0044】
構造的な動的アルゴリズムには2つのアプローチがある。(1)NNからニューロンを除去するもの。NNからニューロンを除去するアプローチは2つある。(i)エラー最小化プロセスにペナルティを追加するRumelhartの重み減衰等、トレーニング中に動作するもの、及び(ii)より一般的なアプローチ、すなわちNNからの重み除去後に大局的エラーへのインパクトを計算するOptimal Brain Surgeon等、トレーニング後にニューロンを除去するもの。(2)Cascade−Correlation Networks(以後「CCN」)、Dynamic Node Creation(以後「DNC」)、減数分裂及び超球面分類、例えば制限クーロンエネルギー分類(以後「RCEC」)及び多項式時間トレーニング超球面分類(以後「PTTHCs」)等、NNにニューロンを追加するもの。
【0045】
トレーニング中にNNにニューロンを動的に割り当てることにより動作するNNトレーニングアルゴリズムを提供する試みは数多くあるが、種々の広範な状況においてデータの効率的及び/又は正確な分類に対して理想的なものは1つもないと考えられている。
【0046】
NNが科学及び/又は産業に関心をもたれる主な理由は、データ内の関係を見出す能力のためであり、これによりデータが分類でき、次いでNNがトレーニング中には直面しなかった入力ベクトル又はパターンをうまく分類できる。この強力な特性は、NNの「一般化」能力とも呼ばれることがある。トレーニング中にNNが直面しなかった入力ベクトルは、一般的には未知パターン又は未知入力ベクトルと呼ばれる。NNが一般化を行うにはトレーニングが必要である。
【0047】
トレーニング中、ニューロンはトレーニングのためのデータセット内の突出した特徴を学習し、これにより未知入力ベクトルの出力を「予言」できる。NNが何を分類できるかは、NNが何でトレーニングされたによる。
【0048】
NNがデータ内のノイズを処理しうるのは、NNの一般化能力である。
【0049】
良好な一般化を確実にするためには、NN内でトレーニングされる重みの数よりも多くの入力ベクトルが利用可能でなければならないと考えられている。
【0050】
NNが学習した入力ベクトル及びテストセットも同様に高率でうまく分類すると、トレーニングされたと見なされる。しかしながら、トレーニング及びNNをテストするために利用可能な分類されたデータセットの数はわずかに限られるので、データセットを分割する方法を考えなければならない。NNをうまくトレーニングし、これによりテストも可能であることを決定するためのデータセットの分割法には多くのアプローチがある。
【0051】
NNがトレーニングされたか否かを決定する一般的な方法は、バックプロパゲーションでトレーニングされたNNを用いるときに入力ベクトルのそれぞれにエラーがいくつあるかを計算することによる。当業者であればNN内のエラー確認にこれまで用いられてきたアプローチを考慮するであろうから、本願明細書においては同様の詳細な議論は示さない。
【0052】
しかしながら、トレーニングアルゴリズム間の比較の根拠に用いうる属性について記載しておく。
【0053】
学習アルゴリズムの比較の際に考慮する要因は数多くあるため、性能の客観測定が行われる。
【0054】
典型的には、次の4つの学習アルゴリズムの属性が考慮される。(1)正確さ:これはトレーニング中に学習されるルールの信頼性である。(2)速度:これは入力ベクトルの分類に要する時間測定である。(3)学習時間:これは入力ベクトルの学習に要する時間測定である。(4)理解度:これは学習されたルールが代替方法に適用可能であることを解釈しうる能力である。このようなストラテジは定量化が困難である。
【0055】
これらの属性の2つ、すなわちデータセットの学習に要する学習アルゴリズムの時間及びNNが学習したものの理解度が、さらに試験される。
【0056】
前述したように、バックプロパゲーションでNNをトレーニングしてデータセットを学習することには長時間のトレーニングが必要であり、NNは全くデータセットを学習しない可能性もある。固定サイズのNNのトレーニングにかかる時間は指数関数的であると言われてきた。この理由から、NNのトレーニングにかかる時間は代替トレーニングアルゴリズム間の比較の標準となっている。理想的なトレーニングアルゴリズムは、トレーニング入力ベクトルに対する露出が最短となるであろう。最適化した状況において入力ベクトルに対する露出が最短でありうるのは、NNを各入力ベクトルに1回のみ露出して十分にトレーニングすることであろう。このようなトレーニングアルゴリズムは単一パストレーニングアルゴリズムと呼ばれる。
【0057】
フィードフォワードNNをトレーニングするアルゴリズム間の比較の基盤として一般的に用いられる4つの属性のうち、理解度は、特に数値としてトレーニングされるフィードフォワードNNにおいては、最も定量化できないものであり、これはトレーニング中にNNに学習されるルールが不可解にも数値としてコード化されているからである。トレーニング中に学習されるルールを抽出可能な方法の1つは、感度分析を実施することによる。感度分析はエラーに対する頑強性の測定として参照されうる。
【0058】
ルール抽出はシステムが生成する結果におけるユーザの信頼性を与えるものとして関心をもたれ、これはNNが外科手術、航空交通管制、及び原子力発電所の監視等の危険な問題の領域に用いられるとき、又は天文データ等、NNのトレーニングにより収集されたデータから理論が推定されるときに特に重要である。
【0059】
理解度の保証に望まれるルールは、入力の同化に関する命題論理学のルールの形態である。
【0060】
感度分析は、NN内に蓄積された情報を見出す1つの道筋であり、しばしばNNに実施される。ルールは不可解にも数値としてコード化されているので、NNにより学習されたルールが何かを見出すことが望ましいく、感度分析のこのような実施はNNにとって貴重である。
【0061】
NNへの感度分析の実施に取られるアプローチは2つある。(1)重みを変更する効果、及び(2)NNに対してノイズの多い入力を適用する効果である。
【0062】
入力スペースが十分に既知であると、必要数のデータポイントの一般化と、以下の3つの方法により選択される入力ベクトルに対するNNの出力を見出すことが可能である。(1)データ空間内の全ポイントに対する出力を見出すこと。NNがバイナリ(2値)データでトレーニングされていると、データセットは有限である必要がある。(2)入力スペースからデータポイントをランダムに選択すること、又は(3)入力スペース内の全てのn番目のデータポイント(ただしn>l)を選択すること。これにより、入力スペース上の分布も可能になる。
【0063】
データポイントは、望ましいNNの反応が何であるかが既知ではない入力スペースの領域からも選択されうる。この場合、既知でないデータが与えられるときにNNがいかに反応するかが示される。
【0064】
ここまで入力スペースの探求方法を精査してきたが、次いでNN内のニューロンの重み空間を吟味する。
【0065】
システムには、指定の実施を要求され、あるいは要求された実施をシステムに許容する、多くの構成要素がある。個々の構成要素が指定の実施を行うとき、その構成要素は自己の最適範囲にあると言われる。
【0066】
感度分析は、システム内の構成要素に対する最適な値又は範囲から外れる効果の試験でありこの場合、最適範囲はトレーニングされたNNにおいて重みのためのものである。この場合には、NNの挙動を変更することなく重みが変化できる範囲(又はインターバル)を見出すように、上限及び下限が確立される。感度分析の実施には、システム内の各構成要素が、他の全ての構成要素を一定にしたまま、順番に試験される。試験される構成要素は、システムの動作を決定するための、あらゆる可能な数値に設定される。このプロセス中、システムを最適に動作しうる構成要素の上限及び/又は下限が確認され、構成要素がこれらの範囲を外れるときにシステムの挙動が観察されうる。このプロセスは範囲試験と呼ばれる。上限及び下限は、制約条件として表されうる。
【0067】
既知の感度分析は、NNが理解可能に学習したものとなるであろう入力変数の同化に関する命題論理学のルールを生成しないと考えられている。
【0068】
感度分析の目的は、ボリュームの形状を決定しうることにあり、これは構成要素の挙動を正確に画定するからである。しかしながら、既知のNNトレーニング法の制約によってニューロンの活性化を生じるボリュームの面を見出すことはできない。この面の試験が可能であった唯一の方法は、統計的手法によりそれぞれの重みの範囲を決定することによる。ボリュームの実際の面の知識があれば、それは重みの間に存在する関係を画定し、このことから所望であれば重みの範囲が決定されるので、理想であろう。
【0069】
トレーニング中にフィードフォワードNNが何を学習したかを決定できることが強く望まれ、結果としてデータ内に存在する関係及びNNに学習された関係が何かを確認する試行に多くの研究がなされてきた。これが理解度と呼ばれるものであり、トレーニングアルゴリズムの良好さの決定に寄与する属性の1つである。現在、NNからルールを抽出するために用いられる方法は、トレーニングの完了後に実施される。
【0070】
見出す必要のある望ましい関係のタイプは、命題論理学により与えられる。この必要性は次のようにまとめられる。(a)トレーニング条件を満たす全ての数値解を定義し、これによりNNにおいて感度分析が容易に実施可能になるもの。(b)トレーニング中にNNにより学習されるルールが、NNにより読み取られるデータセットを容易に分類できるようにするもの。
【発明の概要】
【発明が解決しようとする課題】
【0071】
種々の動的アルゴリズムに関し、上述の公知のトレーニング方法のうちで、NNからのルールの直接読み取りを許容することに近い唯一のものは超球面分類であり、これは領域間にORの関係を形成する。従って、入力スペース内の領域はあるカテゴリーに属するか又はそうでないため、領域がANDで結合されることはない。関係が領域内に属さないならば、活性化すべきでないニューロンの活性化を抑制するために球面が追加されるので、入力スペースを表すにはORが適切である。入力スペースが複雑化すると超球面を定義する半径は0になる傾向があり、究極的には各入力ベクトルに超球面が追加される。中間層内のニューロンにより定義される領域は入力スペース内の領域に近いものであるが、画定するものではなく、最悪の場合を除いてはデータポイントと同数の超球面が存在する。PTTHCsは入力スペースの範囲の改良を意図したものであり、これにより計算の複雑化という代償を払っても一般化の性能を向上するもので、従って非常に低速である。
【0072】
CCN、減数分裂及びDNCは全て数値として重みをトレーニングするもので、このためトレーニング中にデータ内にいかなる関係が見出されたかを決定することは簡単ではない。
【0073】
これらのアルゴリズムは、一般化に関する性能の成功の程度は様々であるが、全て動的にニューロンをNNに対して割り当てるものである。アルゴリズムによっては、あるデータセットについて他のものよりも良好で、超球面分類を除く全ては重み空間の境界条件の情報を失うので、ルール抽出に対して有用ではない。
【0074】
アルゴリズムによっては、アニーリングに基づき、バックプロパゲーションよりもさらに低速な傾向のある減数分裂アルゴリズムのように、あるデータセットは他のものより迅速に学習するものもある。
【0075】
CCN及びDNCは特定のデータセットに対してトレーニング時間が早いという報告があるが、これらは単一パスのアルゴリズムではなく、両者ともNNにニューロンが追加される前にシステム内のエラー量を低減するための反復に依存する。
【0076】
これまでに、単一パスで学習し、要求通りにNNにニューロンも追加し、NNから直接のルールの読み取りを許容する、NNトレーニングアルゴリズムは存在していない。
【0077】
このため、本発明は、ニューロンが要求通りにNNに割り当てられてデータセットを学習しうる意味において、関係性があり動的であるNNトレーニング方法を提供することを目的とする。
【0078】
また、本発明は、単一バスでデータセットを学習しうるNNトレーニング方法を提供することを目的とする。
【0079】
さらに、本発明はルールがNNから直接に読み取られることを許容するNNトレーニング方法を提供することを目的とする。
【課題を解決するための手段】
【0080】
本発明の一態様によれば、入力ベクトルがニューロンによって既知であるか未知であるかを決定する方法が提供され、当該方法は、前記入力ベクトルから制約条件及びその補空間を構築するステップと、前記制約条件及び補空間を交互に前記ニューロンの制約条件セットに追加するステップと、いずれかの場合に解答があるか否かを決定するために前記制約条件セットを試験するステップであって、前記制約条件又はその補空間のいずれか一方に解答がある場合には、前記入力ベクトルは、前記ニューロンに既知であることが決定され、前記制約条件及びその補空間が交互に前記制約条件セットに追加されるときに解答がある場合には、前記入力ベクトルは、前記ニューロンによって既知ではないことが決定される、ステップと、を含む。
【0081】
前記方法において、前記制約条件セットは、LTGニューロンから構築されるニューラルネットワークのニューロンの制約条件セットであることが好ましい。
【0082】
また、前記方法において、前記ニューラルネットワークの未知入力ベクトルの出力を決定することを提供してもよい。
【0083】
また、前記方法において、前記ニューラルネットワークのLTGの未知入力ベクトルを決定するために、データセットに応じて、前記未知入力ベクトルのデフォルト出力は、1又は0にセットされることを提供してもよい。
【0084】
また、前記方法において、前記ニューラルネットワークのLTGの与えられた未知入力ベクトルが当該LTGに既知であるか未知であるかを決定することを提供してもよい。
【0085】
本発明の他の態様によれば、制約条件セットの最小活性化体積(MAV)を決定するための方法が提供され、当該方法は、(i)前記制約条件セット内に残る制約条件を変化させずに前記制約条件セットからそれぞれの制約条件を一度に1つ除去するステップと、(ii)前記除去した制約条件セットの補空間を前記制約条件セットに追加するステップと、(iii)解答があるか否かを調べるために新規な制約条件セットをテストするステップと、を含み、解答がある場合には、MAVを定義する制約条件セットに最初の制約条件が追加され、前記制約条件セットに追加された前記補空間は除去され、最初の制約条件が前記制約条件セットに戻され、前記制約条件セット内にまだ制約条件がある場合には、ステップ(i)から(iii)を繰り返し、さもなければ前記MAVは前記MAVを定義する制約条件セットの範囲内に保持される制約条件のセットとし、解答がない場合には、前記制約条件セットに追加された前記制約条件の補空間は除去され、最初の制約条件が前記制約条件セットに戻され、前記制約条件セットにテストする制約条件がまだある場合には、ステップ(i)から(iii)を繰り返し、さもなければ前記MAVは前記MAVを定義する前記制約条件セットの範囲内に保持される制約条件のセットとする。
【0086】
前記方法において、前記制約条件セットは、LTGニューロンから構築されるニューラルネットワークのニューロンの制約条件セットであることが好ましい。
【0087】
また、前記方法において、ニューラルネットワークにおいて、各LTGに対するMAVを決定することを提供してもよい。
【0088】
本発明の他の態様によれば、バイナリフォーマットデータセット以外のデータセットをニューラルネットワークにより学習されるバイナリフォーマットデータセットに変換するための方法が提供され、当該方法は、(i)前記データセットの各属性をバイナリで提示するためのビット数を別個に決定するステップと、(ii)計算式:範囲=(最大−最小)+1を用いて前記データセットの属性の範囲を計算し、ステップ(i)で決定したビット数を用いて前記データセットの属性の範囲をコード化するステップと、を含む。
【0089】
また、前記方法において、ニューラルネットワークによりトレーニングされるデータセットを用意することを提供してもよい。
【0090】
本発明の他の態様によれば、ニューラルネットワークによりトレーニングされるデータセットをソートする方法が提供され、当該方法は、データセットの入力ベクトルを2つの群にソートするステップと、1を出力するものを0を出力するものと分離するステップと、ニューラルネットワークにより最初に学習される、前記2つの群の一方を選択するステップと、を含む。
【0091】
また、前記方法において、ニューラルネットワークによりトレーニングされるデータセットをソートすることを提供してもよい。
【図面の簡単な説明】
【0092】
本発明がより明確に理解され実用化されるために、以下に本発明に係るNNをトレーニングする方法及び/又はシステムの好適な構成を詳細に説明する。以下の説明は、非限定的な例としてのみ与えられ、添付の図面を参照する。
【図1】2入力1出力フィードフォワードNNの基本構造の例を示す模式図である。
【図2】本発明の好適な実施形態に係るNNのトレーニング方法を示すフロー図である。
【図3】図2のNNのトレーニング方法に従ってトレーニングされたNNの出力の単一のパターンを学習する好適な方法を示すフロー図である。
【図4】図2のNNのトレーニング方法に従ってトレーニングされたNNの中間層に新たなニューロンを割り当てる好適な方法を示すフロー図である。
【図5】図2のNNのトレーニング方法に従ってトレーニングされたNNに新たな出力ニューロンを割り当てる好適な方法を示すフロー図である。
【図6】本発明のNNトレーニング方法の好適な実施形態に従ってNNに新たなニューロンを割り当てる様子を示す模式図である。
【図7】2入力LTG−NNの基本構造の例を示す模式図である。
【図8】本発明のNNトレーニング方法に従ってModulo−8問題を用いてトレーニングされた、3出力NNの好適な実施形態を示す模式図である。
【図9】本発明のNNトレーニング方法の好適な実施形態に従ってNNの中間層にニューロンを割り当てる様子を示す模式図である。
【図10】本発明のNNトレーニング方法の好適な実施形態に従ってトレーニングされたNNに新たな出力層を追加する様子を示す模式図である。
【図11】3入力LTG−NNの基本構造の例を示す模式図である。
【図12】本発明の好適な実施形態に従って行われる、制約条件セットの入力ベクトルが既知か未知かを判定する方法を示すフロー図である。
【図13】トレーニングされたLTGの重み空間を一般化した図である。
【図14】好適な実施形態に従って、本発明のNNトレーニング方法でトレーニングされたModulo−8問題を解決することができるNNを示す模式図である。
【図15】本発明の好適な実施形態に従って行われる、制約条件セットの最小活性化体積(MAV)を判定する方法を示すフロー図である。
【図16】本発明の好適な実施形態に係るNNのトレーニング中に学習された活性化体積及びその他の制約条件を一般化した図である。
【図17】NNのトレーニングのテストに用いられる認められたデータセットである二重螺旋問題用のデータセットを示す図である。
【図18】本発明のNNトレーニング方法の好適な実施形態に従って生成され、図17のデータセット二重螺旋問題を解決するNNを示す模式図である。
【図19】図17の二重螺旋問題テストデータセットでトレーニングされた図18のNNの結果を示す図である。
【図20】図17の二重螺旋問題テストデータセットでトレーニングされたときに図18のNNの中間層の各ニューロンが本発明のNNトレーニング方法を用いて学習したことを示す図である。
【図21】本発明のNNトレーニング方法の好適な実施形態に従って生成され、ドイツクレジットデータセット問題を解決するNNを示す模式図である。
【発明を実施するための形態】
【0093】
以下、本発明の詳細な好適な構成を添付の図面を参照して説明する。以下の記載では、LTGニューロンモデルは、好適な実施形態としてのみ用いられる。利用可能なニューロンモデルは他にも多くあり、本発明のDRトレーニング方法又はアルゴリズムに係るNNの構成に用いうることは理解すべきである。従って、本発明は、添付の図面に示す特定のニューロンモデルに限定されるものではない。従って、以下の説明を通して「LTG」又は「LTGs(複数)」という表記は、単に「任意の適切なニューロンモデル」を意味するものとして解されるべきである。
【0094】
本発明のDRトレーニングアルゴリズムは、本発明のその他の様態と共に、以下に説明するように、任意の適切なコンピュータソフトウェア及び/又はハードウェアを用いて実装されてもよい。従って、本発明は、特定の実用上の実装に限定されるものではない。本発明のDRトレーニングアルゴリズムの性能評価の目的で、またアルゴリズム及び本発明のその他の様態が予想通りに動作することを証明する実験を行うために、アルゴリズムは、コードとしてプログラムされコンピュータ上のソフトウェアを用いて実装された。
【0095】
NNは、様々な形状で互いに接続されてネットワークを構成するニューロンの組み合わせである。2入力フィードフォワードNN10の基本構造を、例として模式的に図1に示す。NN10は、第1又は入力層16に設けられた2つの入力ニューロン12、14を備える。入力ニューロン12、14はそれぞれ、その出力を中間層24に設けられた3つのニューロン18、20、22へ送る。次に、中間層ニューロン18、20、22はそれぞれ、その出力を出力層28に設けられた1つのニューロン26へ送る。
【0096】
NNはデータセット内の関係の判定に用いられる。NNがトレーニングされる前に、利用可能なデータが、トレーニングに利用されるものとテストに利用されるものの2つのセットに分割される。トレーニングセットは、NNのトレーニングに用いられる。テストデータセットは、NNのトレーニング後まで保存する。テストデータセットは、トレーニング後、NNが十分にデータを学習したかどうか、又はNNがデータのうちある様態を欠いていないかどうかを判定するためにNNに送られる。以下の説明を通じて、「NNをトレーニングする」又は「トレーニング」という表記は全て、トレーニングデータセットでのNNのトレーニングについて述べるものとする。
【0097】
NNトレーニングアルゴリズムの多くは、トレーニング条件を満たそうとする1つの数値を見つけ、NNの所望の出力と実際の出力との間の誤差に基づいて重みの値を繰り返し修正することにより学習する。
【0098】
本発明のDRトレーニングアルゴリズムは、ニューロンのトレーニングに種々のアプローチをとる。このトレーニングアルゴリズムは、トレーニング条件を満足する重みについて単一の値を見つけることには基づいていない。その代わりに、本発明のDRトレーニングアルゴリズムは、トレーニング条件を満たすことになる重みを全て見つける。このため、入力ベクトルは、入力重みを閾値に関連付ける制約条件に変換されることが好ましい。各ニューロンは、互いに相互関係を形成する入力重みのセット及びトレーニング条件を満たす閾値を有している。ニューロンに制約条件を加えることにより、重み空間の領域にニューロンを活性化させる別の制約条件が置かれる。
【0099】
本発明は制約条件に変換される入力ベクトルに関連して説明されるが、言うまでも無く、本発明は制約条件の使用にのみ限定されるものではない。制約条件は、入力重みと閾値との間の関係を表すにすぎない。同様の関係を他の方法で、例えば電子的又は磁気的に表すこともでき、そのため、本発明は与えられた具体例に限定されるものではない。
【0100】
このニューロンのトレーニング方法を用いることにより、NNにニューロンを動的に追加することによってNNを形成することができる。この方法は、NNへのニューロン追加について厳密な基準を設けており、ニューロンを先に述べた標準的なフィードフォワードトポロジに追加することができる。
【0101】
このニューロンのトレーニング方法により、データセットは単一のパスで学習することができる。また、制約条件は各ニューロンの重みと閾値との間の関係を定義し、ニューロンがNNに追加されるときは前置詞的論理に従って追加されるため、トレーニング中に学習された規則の抽出は簡単になる。
【0102】
NNが本発明のDRトレーニングアルゴリズムでデータセットを学習するには、一連のプロセスに取り組むことが望ましい。各データセットは固有であり、多数の出力を有し、これはデータセットに基づいている。このシーケンスを簡潔にまとめると以下のようになる。(1)NNの初期化。(2)NNにより学習されるデータの準備。(3)NNにより学習されるデータを加える。(4)必要に応じてNNにニューロンの割当て。
【0103】
すでに述べたように、本発明の好適な実施形態に従って用いられるニューロンは、LTGすなわちマカロック−ピッツニューロンであり、制約条件セットを含むよう修正されている。LTGの初期化フェーズ(1)は、入力ニューロンの出力ニューロンへの接続と、最初にトレーニングされることになる出力の選択とを伴う。
【0104】
データ準備フェーズ(2)は、好ましくは、NNにより学習されるデータを準備する多数のステップを含み、以下の点が指摘される。(i)NNに提示されるデータがトレーニングに適した適切なフォーマットでない場合、NNに提示される前にデータセットが適切なフォーマットに変換されることが好ましい。本発明の好適な実施形態によれば、適切なデータフォーマットはバイナリデータである。従って、本発明のDRトレーニング方法でトレーニングされるデータセットは、NNへの提示前にバイナリ形式に変換される。任意の適切なデータのデジタル化方法を用いることができる。本発明のさらなる様態によれば、適切なデータのデジタル化方法については後の実験結果を説明する部分で、本願明細書において説明する。バイナリデータは好適なトレーニングデータフォーマットとして提示されるが、本発明のDRトレーニングアルゴリズムは、例えば浮動小数点データ等のその他のデータフォーマットでも機能することは言うまでもなく、そのため、本発明は与えられた具体例に限定されると解釈するべきものではない。(ii)本発明のDRトレーニングアルゴリズムは単一パスアルゴリズムであるため、入力ベクトルの提示順にある程度の注意を払うことが好ましいが、これはNNが学習する規則とどれぐらいうまく動作するかに影響を与えることがあるためである。検討の価値があるとはいえ、本発明のDRトレーニングアルゴリズムはどの入力ベクトルがニューロンをNNに追加させるかを検知し報告することができるNNを構築するため、入力ベクトルの提示順は不可欠というわけではない。このステップは、トレーニングされたNNの動作がよくない場合に用いられることが好ましい。このステップは、データセットがNNへのLTG追加が必要とされるに十分複雑である場合には常に大いに推奨される。
【0105】
次のフェーズ(3)では、NN入力にデータを加え、データが重みと学習されるLTGの閾値との間の関係である制約条件に変換されることが好ましい。中間層がある場合には、LTGの出力は次の層のLTGへの入力になり、今度は次の層のLTGは、受信する入力ベクトルをうまくいくならば学習しうる制約条件へと変形する。このプロセスはNNが所望の出力を生成するまで繰り返される。これがNNにより学習可能な場合には、次の入力ベクトルでトレーニングが継続され、そうでなければプロセスは次のNNに1つ以上のLTGを追加するフェーズ(4)に移る。
【0106】
入力ベクトルの学習ができない場合の考えられるシナリオには、少なくとも2つある。これらは、以下の通りである。(i)中間層が入力ベクトルを学習できなかった場合、新たなLTGが中間層に追加される。(ii)出力層がその入力ベクトルを学習できなかった場合、新たな層がNNに追加され、古い出力が中間層のLTGとなる。そして、別のLTGがこの新たな中間層に追加されて古い出力ユニットが学習できなかったことを学習し、これらのLTGはいずれも出力を組み合わせる新たな出力に接続される。
【0107】
LTGがNNに割り当てられた後は、以下のことが重要である。(a)新たなLTGがNN内の既存のLTGに接続される。(b)新たに追加されたLTGの制約条件セットが空に設定される、又は以前の最後のLTGからの制約条件が新たなLTGにコピーされる。(c)新たなLTGの追加によりNNが以前に学習したことを忘れることがないようにする。これは単一パストレーニングアルゴリズムであるので、新たに追加されたLTGがNNが以前に学習したことを生成することができるようにすることが不可欠である。
【0108】
本発明のDRトレーニングアルゴリズムは(1)〜(4)の一連のプロセスとの関連で提示されるが、これらのステップ又は少なくともこれらのステップそれぞれの様態が提示された以外の順序で行われてもよいことは言うまでもない。例えば、ステップ(1)及び(2)の場合、利用可能なデータセットは、トレーニングされるNNの出力が選択される前に適切なデータフォーマットに変換されてもよい(図2参照)。同様に、ステップ(4)の場合、新たな中間層LTGは、新たな出力LTGが追加される前にNNに追加されてもよいし、その逆でもよい。従って、本発明のDRトレーニングアルゴリズムは、提示されるステップ又はシーケンスの特定の順序に限定されるものではない。
【0109】
以下、本発明のDRトレーニングアルゴリズムの好適な実施形態、及び本発明のその他の様態を、上記で概観したフェーズに従って提示する。(1)NNの初期化。(2)データの準備。(3)学習されるデータのNNへの提示。(4)必要に応じて、最終的にLTGの割当て。
【0110】
(DRトレーニングアルゴリズムの説明)
図2に、本発明の好適な実施形態に従って行われるNNトレーニング方法すなわちアルゴリズム30のフロー図を示す。
【0111】
トレーニングプロセスはLTGの入力層で始まる。以下、NNにLTGを動的に追加するDRトレーニングアルゴリズム30をまとめて、以下のステップで提示する。
【0112】
(1)NNの初期化
DRトレーニングアルゴリズム30によるNNの初期化は、一般に、図2のブロック32により示される。ブロック32において、NNを初期化するプロセスは、以下のステップを含むことが好ましい。
a)出力ベクトルの各次元が個別にトレーニングされる。学習される次元Ojを選択する。
b)出力LTGOjの制約条件セットを空に設定する。
c)出力LTGOjを入力層に完全に接続する。
【0113】
(2)NNにより学習されるデータの準備
DRトレーニングアルゴリズム30によるNNにより学習されるデータの準備のプロセスは、一般に、図2のブロック31及び33より示される。NNにより学習されるデータの準備プロセスは、少なくとも以下のステップを含むことが好ましい。
a)本発明のDRトレーニングアルゴリズム30はバイナリデータで動作することが好ましいため、図2のブロック31に示すようにデータセットをトレーニング前にバイナリに変換することが必要となることがある。本発明のさらなる様態による各種のデータセットをトレーニングのためにNNに提示する前にバイナリに変換するための適した技術についての考察は、後で述べる。言うまでも無く、本発明のDRトレーニングアルゴリズム30に従ってその他のデータフォーマットを用いることもでき、そのため、ブロック31は、単に利用可能なデータセットの任意の適切なデータフォーマットへの変換を言うものである。
b)トレーニングセット内の矛盾したデータの有無を判定する。矛盾したデータは、異なる出力を生成する2つ以上の同一の入力ベクトルxiが存在するときに生じる。矛盾したデータの例としては、xi→0及びxi→1であって、データセット中に同じ入力ベクトルが複数回表れ、異なる出力を生成するというものである。矛盾がある場合には、入力ベクトルxiの1つのみを用いるべきである。NNはこのデータを学習することができるが、NNはうまく動作しないことになる。NNが矛盾したデータを学習する場合には、全ての入力について0を出力することになる。このような状況を回避するために、矛盾した出力の有無を判定するための入力ベクトルのチェックを行うことが好適である。このトレーニングセット内の矛盾したデータの有無を判定するプロセスは、図2には特に示されていないが、ブロック31又は33の一部として同様の動作を行うことができる。
c)学習されるデータは、図2のブロック33に示すように、任意の適切なソート技術を用いてソートされることが好ましい。DRトレーニングアルゴリズム30はデータをランダムに学習することができるが、結果として生じるNNは効率的にデータを分類するとは限らない。従って、好適なソート技術は以下を含む。
・入力ベクトルを2つのグループにソートし、1を出力するものをその出力について0を生成するものから分離する。入力ベクトルを1を出力するものと0を出力するものの2つのセットに分離する。これら2つのセットのいずれかを最初に学習することができる。又は、
・SOM(自己組織化マップ)でデータをソートする。
【0114】
すでに検討したように、本発明は特定のソート技法に限定されるものではない。
d)入力ベクトルのセットから1つのリストが生成される。このステップは、ブロック33により表されるソートステップの一部である。
e)学習対象のデータセットに0入力ベクトルが利用可能か否かを判定する。この0ベクトルは全ての入力次元を0に設定する。この入力ベクトルが利用可能である場合、この入力ベクトルをその出力にかかわらず最初に学習するものとしてソートする。0ベクトルがトレーニングに利用可能であり、その出力にかかわらず最初に学習されることが好適であるが、利用可能でない場合には、重要ではない。ここでも、このステップはブロック33により表されるソートステップの一部である。
【0115】
(3)NNにより学習されるデータを加える
DRトレーニングアルゴリズム30に従ってNNにより学習されるデータを加えるプロセスは、概ね、図2のブロック34により表される。ブロック34において、NNの出力について各パターン(又は入力ベクトル及び関連付けられた出力の組み合わせ)が、これ以上学習するものがなくなるまで、学習されることがわかる。DRトレーニングアルゴリズム30に従って出力に対して単一のパターンを学習するプロセス40の好適な実施形態を図3に示す。
【0116】
プロセス40は、ブロック41においてNNの第1層で始まる。そして、トレーニングセット内の各入力ベクトルについて、以下が行われる。
a)ブロック42で、入力層に加えられた入力ベクトルに基づく制約条件が次の層の各LTGについて構築される。制約条件を生成するために、(LTGを定義した箇所ですでに検討した)LTGの定義が用いられ、入力ベクトルXi及びLTGの重みベクトルwがLTGの閾値TとNNの出力に基づいて関係を形成する。従って、LTGが1を生成するのであれば、構築される制約条件は以下のようになる。
xi・w>T→1
又は、出力が0であれば、生成される制約条件は以下の通りとなる。
xi・w<T→0
b)またブロック42において、入力ベクトルxiから構築された制約条件がこの層内のどのLTGでも学習することができるかどうかを判定するテストが行われる。制約条件を学習するということは、LTGの制約条件セットに制約条件を追加することができるということである。制約条件は、数的な解答を見つけることができれば、追加することができる。アルゴリズムにとって、どのような数的解答であるかは関心のないことであり、見出すことができることが必要なだけである。これは、制約条件間に共通部分がなければならないことと等価である。このテストは、LTGをNNに追加する基準を構成する。入力ベクトルから形成される制約条件を学習することができるLTGがなければ、これが新たなLTGをNNに割り当てる基準となる。
・LTGが入力ベクトルを学習することができる場合、ブロック43でLTGの制約条件セットに制約条件が追加される。新たな制約条件の追加により、LTGの有効化を可能とするLTGの重み空間の領域が減少する。次いでこの層からの出力は、ブロック45で次の層に加えられ、NNが正しい出力を出力するまでプロセス40が繰り返される(ブロック42に戻る)。ブロック44において、現在の層が出力層であるかどうかを判定し、そうである場合には、プロセス40はブロック46で完結し、さらに学習するパターンがある場合には次のパターンが学習される。ある時点において1つの層内で入力ベクトルを学習できなければ、これはLTGの割当ての根拠となる(図3のブロック47〜49で示される。これに続くステップ4を参照)。各層は所望のNN出力を出力することができるLTGを有していなければならない。前の層からの入力を受信する層の目的は、所望のNN出力を生成するために前の層の出力を組み合わせることにある。
・すでに述べたように、ブロック44での確認後、ブロック45において、NNが正しい回答を出力しさらに学習すべき入力ベクトルが存在する場合には、プロセス40はステップ3の最初(ブロック42)に戻る。
・ブロック44において、NNが正しい回答を生成しさらに学習すべき入力ベクトルが存在しない場合には、このNNのトレーニング出力はトレーニングを終了し、プロセス40はブロック46で完結し、さらに学習するパターンがある場合には次のパターンが学習される。
・ブロック35において、DRトレーニングアルゴリズム30によりさらにトレーニングするNNの出力があると判定された場合には、図2に示すようにDRトレーニングプロセスは初期化ステップ1(ブロック32)に戻る。
【0117】
(4)必要に応じたNNに新たなLTGの割当て
新たなLTGを必要に応じてNNに割り当てるプロセスは、概ね図3のブロック47〜49により表される。ブロック47はNNの中間層への新たなLTGの割当てを示し、ブロック49はNNへの新たな出力LTGの割当てを示す。新たな中間層LTGをNNに割り当てるプロセス50の好適な実施形態を、図4のフロー図に示す。同様に、新たな出力をNNに割り当てるプロセス60の好適な実施形態を、図5のフロー図に示す。この新たなLTGをNNに割り当てるプロセス50、60をよりよく理解するために、本発明のDRトレーニングアルゴリズム30のプロセス50、60によるNN70の構築を模式的に示す図6a及び図6bを参照する。
【0118】
図3に示す出力について単一のパターンを学習する好適なプロセス40において、新たな出力LTGの割当て(ブロック49)の前に行われるものとして新たな中間層LTGのNNへの割当て(ブロック47)が示される。図3において、ブロック42でLTGが入力ベクトル(又はパターン)を学習できない場合には、ブロック47で新たなLTGが現在の(中間)層に追加されて入力ベクトルを学習することが示される。ブロック47で新たなLTGが現在の層に追加された後、ブロック48でテストが行われて、現在の層がNNの出力層であるかどうかが判定される。ブロック48で現在の層がNNの出力層ではないと判定された場合、プロセス40はブロック45に続き、この(現在の)層からの出力が次の層に加えられる。その後、NNが先に検討したように正しい出力を出力するまで、プロセス40は繰り返される(ブロック42に戻る)。ブロック48で現在の層がNNの出力層であると判定された場合、プロセス40はブロック49に続き、新たな出力LTGがNNに追加される。ブロック49で新たな出力LTGがNNに割り当てられた後、プロセス40はブロック46で完結し、さらに学習するパターンがある場合には次のパターンが学習される。
【0119】
図3のプロセス40は新たな出力LTGがNNに割り当てられる(ブロック49)前の新たなLTGの中間層(ブロック47)への割当てを示すが、言うまでもなく、新たな中間層LTGの割当て前に新たな出力LTGをNNに割り当てることができる。従って、本発明は特定の例に限定されるものではない。本発明のDRトレーニングアルゴリズム30に従って、新たな出力LTGが新たな中間層LTGの割当て前にNNに割り当てることができることを説明するために、図6a及び図6bのNN70へのLTGの割当てを、図3の好適なプロセス40に示した順序とは逆の順序で示す。
【0120】
以下、新たな出力LTGをNN70に割り当てるプロセス60(図6a及び図6b)を、図5を参照して説明する。
・ブロック42で出力LTGが入力ベクトルに必要な出力を生成できない場合(図3)、図6a及び図3のブロック49に示すように新たな出力LTGがNN70に割り当てられる。
I.現在の出力LTGであるLTG−Aは、N層にある。図6a(i)参照。別のLTGであるLTG−Bが、N層に追加される。図6a(ii)参照。LTG−Bの制約条件セットが、好ましくは空のセットに初期化される。新たなLTGであるLTG−BのNN70のN層への割当ては、図5のフロー図には示さないが、以下に説明するブロック61の一部であることは言うまでもない。同様に、新たなLTGであるLTG−BのN層への割当ては、新たな出力LTGであるLTG−CのN+l層への割当ての後に起こってもよい。
II.ブロック61において、出力Ojについてのこの層の1つの新たなLTGであるLTG−Cを有する新たな出力層であるN+l層が追加される。そして、LTG−Cの制約条件セットが、好ましくはステップV及びVIに従って初期化される。
III.ブロック62でN層>1である場合、LTG−Aに接続された前の層であるN−1層(図示せず)のLTGから新たなLTGであるLTG−Bに接続が追加される。
IV.またブロック62において、N層のLTG−A及びLTG−Bのそれぞれの出力がN+1層の新たな出力LTGであるLTG−Cの入力に接続される。
V.学習される入力ベクトルが出力0を生成する場合、ブロック63において以下を行う。
a)N層において新たなLTG−Bがこの層の制約条件に入力を学習するようトレーニングされる。これらのLTGであるLTG−B及びLTG−Cは、LTG−Aがこのを学習できなかったために追加される。
b)LTG−Aからの制約条件は、新たなLTGであるLTG−Bの制約条件セットにコピーされ、LTG−Bで全ての制約条件が≧閾値となるよう設定する。
c)ANDを形成する制約条件が、N+1層において、N層のLTG−AとLTG−Bの間の新たな出力LTGであるLTG−Cに追加される。
VI.学習される入力ベクトルが出力1を生成する場合、ブロック64において以下を行う。
a)N層において新たなLTG−Bがこの入力の制約条件を学習するようトレーニングされる。
b)LTG−Aからの制約条件は、新たなLTGであるLTG−Bの制約条件セットにコピーされ、LTG−Bで全ての制約条件を<閾値に設定する。
c)ORを形成する制約条件が、N+1層において、N層のLTG−AとLTG−Bの間の新たな出力LTGであるLTG−Cに追加される。
・ブロック42(図3)でN層のLTGが必要な出力を生成することを学習できない場合、新たなLTGであるLTG−Dが図6b及び図3のブロック47に示すようにNN70のその層であるN層に割り当てられる。
【0121】
以下、新たな中間層LTGをNN70に割り当てるプロセス50(図6a及び図6b)を、図4を参照して説明する。
I.ブロック51で、どのLTGもデータを学習することができないN層に追加LTGであるLTG−Dが追加される。次いで、制約条件セットが好ましくはステップV及びVIに従って初期化される。残りのステップであるステップII〜VIは、概ね置き換え可能であり、従ってこれらの手続きステップの順序は図4に示すものから変化してもよい。
II.ブロック53で、このNN出力Ojについて、LTG−Dの出力からN層の出力層を形成するN+1層内の全LTGへの接続が行われる。ブロック54で、N層内のその他のLTGであるLTG−A及びBにより学習されてはならないことに基づいて、N+1層内のLTG(この場合はLTG−C)が新たなLTGであるLTG−Dからの入力をどうすればよいかがわかるように、これらのLTGが更新される。
III.N層>1のとき、ブロック52で、このNN出力Ojについて、前の層であるN−1層(図示せず)の入力を形成する全てのLTGから、LTG−Dに入力接続が追加される。
IV.ブロック55で、新たなLTGであるLTG−DがN層が学習できない入力ベクトルを学習するようトレーニングされる。新たなLTGであるLTG−DがN層内の他のLTGが学習できない入力ベクトルを学習するトレーニングプロセス(ブロック55)をよりよく理解するために、関連する好適な手続きのより詳細な分析を含むさらなるブロックであるブロック56が設けられる。
V.学習する入力ベクトルが出力0を生成する場合、ブロック57及び58において、以下が行われる。
a)この層であるN層内の以前の最後のLTGであるLTG−Bの制約条件が、新たなLTGであるLTG−D制約条件セットにコピーされて(ブロック57)、全ての制約条件を≧新たな閾値に設定する(ブロック58)。
b)LTG−Cは、N層内のLTG−D及びその他のLTGからの入力についてその制約条件セット内でANDを形成する。ブロック54を参照のこと。論理は(A・・・B)かつDである。
VI.学習する入力ベクトルが出力1を生成する場合、ブロック57及び59において、以下が行われる。
a)この層であるN層内の以前の最後のLTGであるLTG−Bの制約条件が、新たなLTGであるLTG−D制約条件セットにコピーされ(ブロック57)、全ての制約条件を<新たな閾値に設定する(ブロック59)。
b)LTG−Cは、N層内のLTG−D及びその他のLTGからの入力についてその制約条件セット内でORを形成する。ブロック54を参照のこと。論理は(A・・・B)又はDである。
・図3を参照すると、新たなLTGであるLTG−Dの割当ての後、ブロック47で、NN70が正しい回答を出力しさらに学習すべき入力ベクトルが存在する(ブロック48)場合には、プロセス40はステップ3の最初(ブロック45を経由してブロック42)に戻る。
また図3を参照すると、新たなLTGであるLTG−Dの割当ての後、ブロック47で、NN70が正しい回答を出力しさらに学習すべき入力ベクトルが存在しないがさらに学習すべき出力が存在する(ブロック48)場合には、プロセス40は初期化ステップ1(図2のブロック32)に戻る。
【0122】
言うまでもなく、制約条件をN層内で以前の最後のLTGであるLTG−Bから新たなLTGであるLTG−Dにコピーするときには、論理のその他の組み合わせも可能である。ここに示した具体例は、LTGをNN70に割り当てるいずれの場合(プロセス50、60)にも機能する単に好適な論理構成である。用いられる特定の学習論理は本発明に必須のものではないが、データはなんらかの形でコピーされる必要があり、そうでなければNN70はそれまでに学習したことを全て完全に忘れてしまうことになる。
【0123】
DRトレーニングアルゴリズム30によるNN70へのLTGの割当てはどのような順序でも行うことができることは言うまでもない。従って、図6a及び図6bによれば、LTG−Dは、LTG−Cが新たな出力層であるN層+1に追加される前に、N層に追加することができたはずである。同様に、手続きステップであるステップI〜VIは、LTGをNN70に割り当てるいずれの場合(プロセス50、60)にも、概ね置き換え可能であり、そのため、本発明は特定のステップの順序に限定されるものではないことも言うまでもない。
【0124】
(DRトレーニングアルゴリズムのフェーズの詳細な説明)DRトレーニングアルゴリズム30及び本発明のその他の様態をよりよく理解するために、以下にアルゴリズム30の各フェーズ又はステップをより詳細に説明する。このトレーニングアルゴリズム30は、フィードフォワードNNアーキテクチャに基づいており、これはトレーニング条件を満たす単一の数値を見つけることを試みるLTGのNNをトレーニングする従来のアプローチとは異なっている。そのかわり、すでに述べたように、このアプローチは、重み空間内に各LTGについてトレーニング条件を満たす領域を見つけ、これはトレーニングデータセットの単一のパスで学習し、LTGを動的にNNに割り当てることを可能とし、入力ベクトルが分類可能であるか否かを判定することができ、トレーニング中に学習された規則がNNから容易に抽出できるようにする。
【0125】
初期化:特に、図2のDRトレーニングアルゴリズム30のブロック32を参照。出力のトレーニング開始には、少なくとも2つのステップが含まれることが好ましい。トレーニング対象の出力の選択、及びその出力に対する出力LTGの追加である。
【0126】
第1ステップ・学習対象出力の選択:NNは、NNの各出力の生成をデータセットごとに別々に学習する。各出力すなわち出力ベクトルの次元は、別の学習プロセスとして扱われる。これは、出力ベクトルの各次元が独立しているため、正当化される。
【0127】
トレーニングアルゴリズムにかかわらず、各LTGは、共通入力を共有するにもかかわらず、中間層にしろNNの出力層にしろ、その層内の他のLTGとは別個に機能する。これは、バックプロパゲーションで訓練されたNNで問題を引き起こす。すなわち、NNの誤差がNNを通してフィードバックされるとき、どの重みを増減するべきなのかを判定することができない。Fahlmanらは、これを信用割り当て問題(credit assignment problem)と呼んだ。この新たなアルゴリズム30は、各LTGの独立行動を利用し、各出力LTGを別々にトレーニングする。これがNNの構築方法の主原則となる。出力ベクトルの次元が選択されると、出力LTGがNNに追加される。
【0128】
第2ステップ・出力LTGの追加:初めに、入力層のLTGは完全に出力層LTGに接続される。また、出力LTG内の制約条件セットは、空であることが好ましい。そして出力LTGにより学習されるデータを準備することができる。
【0129】
データ準備:特に、図2のDRトレーニングアルゴリズム30のブロック31及び33を参照。これは単一パスのトレーニングアルゴリズムであるため、データがNNに提示される順番が重要になる。データの準備には、少なくとも4つのステップが含まれることが好ましい。
【0130】
第1ステップとして、NNに提示されるデータがトレーニングに適した適切なフォーマットでない場合、図2のブロック31に示すように、データセットはNNに提示される前に適切なフォーマットに変換されることが好ましい。
【0131】
第2ステップにおいてはデータの矛盾をチェックする。矛盾したデータはNNのトレーニングの際に問題を引き起こす。相反する出力を生成する入力ベクトルXiの例が2つ以上あるため、データの矛盾をチェックする必要がある。言い換えると、Xiが出力0を生成するときに、出力1も生成される。NNはこのデータを学習することができるが、データは矛盾しており、この問題を回避するためにNNが固有の入力ベクトルでトレーニングされることが好適である。このステップは、図2のDRトレーニングアルゴリズム30のブロック31又はブロック33で行うことができる。
【0132】
第3ステップにおいては、トレーニングセット内のデータをNNのトレーニング前に順序付ける。0ベクトルの学習によりシステムの多くは不安定になり、これには否定の制約条件及びデータセット学習をバックプロパゲーションでトレーニングされたフィードフォワードNNを備えるシンプレックス法を含み、ここでは入力ベクトル0は出力が1であることを要求する。これがNNにとって問題である理由は、ニューロンの閾値が負数であることにある。本発明のDRトレーニングアルゴリズム30は、トレーニングセット内のデータをNNのトレーニング前に順序付けることにより、このような状況を回避する。0ベクトルは、全ての入力次元が0である入力ベクトルと定義される。例えば、3入力のニューロン又はNNについての0ベクトルは、[0 0 0]である。0ベクトルがトレーニングセット内に利用可能である場合、これが最初にNNにより学習されるが、これにより0ベクトルがNNに1を出力させる場合にNNに起こりうる不安定性を回避するからである。
【0133】
第4ステップ:入力ベクトル0が既知である場合、利用可能であれば、これが最初に学習されるべきである。そして、特にトレーニング中にLTGがNNに割り当てられる必要がある場合には、ブロック33でNNのトレーニング前に入力ベクトルが何らかの順番にソートされることが好ましい。本発明のアルゴリズム30は、データがNNに提示されたまま学習されるため、ビルトインのサーチメカニズムを有していない。これは、DR学習がNNを単一のパスでトレーニングするため、NNが提示された全てのデータセットを学習できなければならないからである。
【0134】
本発明のさらなる様態によれば、好適なソート方法(ブロック33)は、データをそれぞれ1又は0を生成するセットにソートし、データセットによっては1又は0を生成するこれらのベクトルを最初に学習する。大まかなガイドラインとして、0→0ならば、0を出力するベクトルを最初に学習し、そうでなければ1を出力するベクトルを最初に学習する。
【0135】
別の考えられるソート方法としては、生物学的な脳のソート技術の1つをシミュレートするSOMすなわち自己組織化マップを使用する方法がある。生物学的な脳は、大脳皮質の表面上でSOMに類似のメカニズムを用いる。SOMは、入力ベクトルをデータセットにおける特徴の2次元クラス表現に組織化又はソートすることにより機能する。特徴は入力ベクトルをその出力を参照することなく分類する。SOMで特定の特徴に属するものとして分類された入力ベクトルは、特徴に分離及びソート可能であり、トレーニングメカニズムに与えるために収集可能である。このようにして、DR学習はデータセットの特定の特徴を分類する方法を学習するLTGをまとめてクラスター化することができる。
【0136】
この構造は3次元的にも想像可能であり2次元SOM及び3次元はDRにトレーニングされたNNである。おおよそドーム型の生物学的な脳を単純化して見ると、SOMが表面にありフィードフォワードNNが表面から発生している。1つの考えられるモデルとしては、大脳皮質がフィードフォワードニューロンと相互に接続されたSOMの層からなるというものがある。
【0137】
言うまでもなく、本発明のDRトレーニングアルゴリズム30で用いることのできるソート技術としては数多く考えることができ、そのため、本発明は特定の例に限定されるものではない。
【0138】
NNへのデータを加える:特に、図2のDRトレーニングアルゴリズム30のブロック34及び35、より詳細には図3のプロセス40を参照。本発明のDRトレーニングアルゴリズム30は、好ましくは先に述べたようなLTGを用いる。さらに、DRトレーニングアルゴリズム30、好ましくは、移転機能としてヘヴィサイド、又はステップ機能を用いる。このタイプのゲートは、入力空間のクラス間にはっきりとした境界を設け、入力ベクトルのクラスを綺麗に分けるため、用いられることが好ましい。
【0139】
本発明のDRトレーニングアルゴリズム30は、重み及び閾値についてトレーニング条件を満たす単一の数値を見出すのではなく、LTGの重み空間を制約することにより学習するため、LTGでうまく機能する。そのため、重み空間内で重み及び閾値を満たす単一の値を見出すかわりに、空間の領域が見出される。制約条件は、教師ありトレーニングの概念に従って、入力ベクトル及び所望の出力から形成される。
【0140】
LTGの閾値Tは、定数として扱われる。Kohaviが示すように、LTGの閾値はそのようなものとして扱うことができる。Kohaviは補空間重み(論理NOTを用いて)を用い、T<=0及びT>0の両方の閾値を説明する。本発明のトレーニングアルゴリズム30において、データは、トレーニング中に、T<=0であるかT>0であるかを判定する。
【0141】
もともとのLTGに行われる修正は制約条件セットを含むことだけであり、これは初期化されてからにされる。これは、重みとニューロンの閾値との間の関係についてLTGが学習したことを格納するために用いられるので、実装に必要なことである。すでに述べたように、本発明は制約条件の使用のみに限定されるものではない。制約条件は、入力重みのと閾値との間の関係を表すだけであり、単に本発明の好適な特徴である。
【0142】
単一のLTGをトレーニングする制約条件が構築される方法について、以下で検討する。
【0143】
単一のLTGについての制約の構築:特に、図3のDRトレーニングアルゴリズム30に従って出力に対する単一のパターンを学習する好適なプロセス40を参照。LTGに、ブロック42で学習することになる入力ベクトル(又はパターン)が提示される。これらの入力ベクトルは、LTGの制約条件セットに記録される制約条件に変換される。学習に先立って、制約条件セットは空に初期化されることが好ましい。
【0144】
トレーニングの開始のために、制約条件を構築する際に第1ステップ(ブロック42)で、各入力ベクトルxiがLTGの入力重みベクトルwに加えられxi・wを生成する。積xi・wは、LTGの行動を定義する式1.1に基づいて、LTGの閾値Tとの考えられる関係を少なくとも2つ有する。これらの2つの考えられる関係は、それぞれ関連付けられた出力を生成する。Tに対する関係及び関連付けられた出力は、式2.1及び2.2で表される。
xi・w≧T→1(2.1)
又は
xi・w<T→0(2.2)
【0145】
教師あり学習については、本明細書ですでに述べている。教師あり学習の原則を用いて、必要とされる出力が1であれば、必要な制約条件はxi・w≧Tである。同様に、生成される出力が0であれば、wはxi・w<Tであるように制約される。新たな制約条件が、この制約条件及びその他の以前に追加された制約条件が解答を有するならば、そのLTGの制約条件セットに追加される。これについては、後でより詳細に検討する。入力ベクトル及びLTGの重みから構築される制約条件のLTGの制約条件セットへの追加プロセスは、トレーニングセット中のn個の入力ベクトル全てについて繰り返される。
【0146】
図7に、2入力LTGのNN80の例を示す。この例では、重みベクトルを[w1 w2]T、入力ベクトルを[x1 x2]、[Oj]をLTGの出力とする。入力[0 1]について出力が1になるのであれば、LTG82に対する制約条件はw2>Tとなる。別の入力ベクトル[1 1]が出力0を生成すると予測されるならば、制約条件w1+w2<Tも追加される。これらの2つの入力が、{w2>T,w1+w2<T}というこのLTG82についての制約条件セットとなる。制約条件セットを構築することにより、LTG82は入力/出力の分類を学習する。
【0147】
以上、LTGをトレーニングする入力ベクトルから制約条件を構築する方法を説明してきた。新たな入力ベクトルが学習され、関連付けられた制約条件をLTGについての制約条件セットに追加できるようになる前に、LTGが入力ベクトルを形成する制約条件を学習することができるのかどうかを確認しなければならない。以下、新たな入力ベクトルを学習することができるか否か、ひいては制約条件がLTGの制約条件セットに追加されるか否かを判定する、入力ベクトルの学習の基準に関する検討を行う。
【0148】
入力ベクトル学習の基準:特に、図3プロセス40のブロック42を参照。制約条件をLTGの制約条件セットに追加する際の最も基本的な問題は、教えられたことを学習することができるかどうかを判定することである。これについては、本明細書においてすでにより詳細に述べている。
【0149】
LTGが入力ベクトルを学習することができるかどうかについてのテストは、LTGのNNを構築する際の基本である。単一のLTGが全てのデータを学習することができない場合、追加のLTGが必要となる。
【0150】
本発明のDRトレーニングアルゴリズム30は入力ベクトルを関連付けられた出力から制約条件へと変換するため、新たな制約条件は重み空間内にLTGがすでに学習した全ての制約条件に解答があるかどうかを判定するためにテストされてよい。これはシンプレックス法を用いて行われてもよい。重み及び閾値のそれぞれについて特定の数値を見出す必要はないが、このテストは、重み及び閾値について確実に数値を見出すことができるようにする。制約条件を満たす数的解答を見つけることができれば十分である。
【0151】
以下、重み及び閾値のそれぞれについて特定の数的解答を見出す上で、学習問題への一般的な解答を見出すことが好ましい理由について検討する。
【0152】
従来、一般的な解答を見出すことができなかったため、重みのそれぞれについて単一の数値が見出された。
【0153】
バックプロパゲーション等の従来のトレーニング方法でトレーニングされたNNの重みについて解答を見出すことができるならば、重みが以下の数式から選択されるとき全重みについて無限の数の解答が存在することになる。
【0154】
【数11】
この無限の数の解答は、各LTGについての重み空間に領域を形成する。通常はバックプロパゲーションで選択される解答は、予め指定された許容誤差内のNNを生成する見出される数値の最初のセットであることが多い。各LTGについて見いだされるwは、LTGの重み空間内のこの領域の単一の値である。
【0155】
この重みの値の解答は、トレーニング中にNNに加えられた入力値に基づく平均のようなものであり、値の範囲が単一の解答を見出すために失われるため、両極端が失われている。
【0156】
本発明に係るニューロンのトレーニング方法は、一般的な解答が見出されるため、トレーニング中に学習された全情報が保存されるようにする。一般的な解答は、重み空間内の領域を分析してLTGを有効化する重みと有効化しない重みとの間の境界を見出せるようにする。一般的な解答は、全ては互いに相対的であるように見えるため相対的な関係を定義し、そのほかの全てに関してのみ理解可能である。一般的な解答を見出すことにより重み間の関係を分析することができ、その結果、入力間の関係を分析することがでる。最後に、絶対に必要であれば、データセット内の関係をはっきりと具現化する特定の数値を見出すことができる。
【0157】
従って、本発明のDRトレーニングアルゴリズム30で訓練されたLTGにより新たな制約条件が学習可能であるかどうかを判定するテストが利用可能である。このテストは、またLTGをNNに追加する基準である。入力ベクトルを学習することができなければ、LTGはNNに追加される。
【0158】
LTGのNNへの割当て:特に、図3プロセス40のブロック47及び49、並びに図4及び図5の本発明のDRトレーニングアルゴリズム30に従ってLTGをNNに割り当てる好適なプロセス50、60を参照。単一のLTGのトレーニング方法についてはすでに述べた。単一のLTGの行動は、LTGのNNを構築するための基礎を形成する。単一のLTGのトレーニングは、以下の3ステップを含む。1)入力ベクトルを重みと閾値との間の関係に変換する。2)LTGが新たな入力ベクトルを学習可能かどうかを判定する。LTGが入力ベクトルを学習可能かどうかの基準は、制約条件がLTGの制約条件セットに追加される際に数的解答が見出されるか否かによって判定される。3)LTGが入力ベクトルを学習可能であれば、入力ベクトルから構築される制約条件がLTGの制約条件セットに追加される。
【0159】
LTGがブロック42で入力ベクトルを学習することができなければ、追加のLTGが必要となる。従って、ステップ2はLTGをNNに割り当てる基本的な基準を形成する。以下、NNを構築するためにどのようにLTGを追加するかを説明する。LTGは、入力ベクトルが必要な出力を生成できないときにのみ割り当てられる。
【0160】
このプロセスは、以下のステップを含む。1)新たなLTGとすでにNN内にあるLTGとの間の接続を形成する(図4のブロック52及び53、図5のブロック62)。2)新たなLTGによりNNがすでに学習したことを忘れないようにする。
【0161】
以下、これらのプロセスのそれぞれをより詳細に説明する。まず、NNアーキテクチャに対する一般的なアプローチについて述べる。その後、出力の選択及び出力を別の問題へ分離することの正当化について述べる。
【0162】
NNアーキテクチャ:初めに、入力LTGが完全に出力LTGに接続される。入力LTG及び出力LTGの数は、NNによって学習されるデータセットに依存する。各出力は、その他の出力の独立した学習タスクとみなされる(図2のブロック32)。
【0163】
ここでの説明のために、以下ではまず単一出力のNNについて考える。本発明のDRトレーニングアルゴリズム30は、トポロジを成長させ、バックプロパゲーションを用いて形成される従来のNNに類似のNNを形成する。これはユニットを中間層に割当てることができ(図4のプロセス50)、単一のLTGを含む新たな出力層を追加することができる(図5のプロセス60)。そして、以前の出力層が、NN内の中間層となる。この新たな中間層は、これに割り当てられた追加のLTGを有し(図3のブロック47)、その層内の他のLTGが学習できなかったことを学習する。3つの出力O1、O2、O3を有するNN90の例を図8に示す。NN90は、Modulo−8問題データセットを用いて本発明のDRトレーニングアルゴリズム30でトレーニングされた。
【0164】
図8に示すNN90において、O3は中間層が完全なトレーニング後に必要とされる解答を生成することができることを必要としなかったことがわかる。しかしながら、O1及びO2は中間層を必要とした。トレーニングの始めは、閾値T11及びT13のLTGがもともとの出力であった。しかしながら、これらはデータを学習することができずT12が中間層92に追加され、T21がにO1ついての出力となった。同様に、T13がO2を生成できなかったときにはT14が追加された。
【0165】
本明細書で用いるLTGを指定する慣例は、LTGは閾値Tを有し、層Lに属するということである。どの機能も3層以内で学習することができるので、層の識別には1桁だけが割り当てられる。各層はN個のLTGを有しており、これらはその層内を通してk=1・・Nと数をつけられる。各LTGはLTGLKと呼ばれ、これに関連付けられたTLKと呼ばれる閾値を有する。各LTGは入力接続重みのセットを有する。重みベクトルの個々の要素はWLKjと呼ばれ、ここでjは受け付けられた入力が送られてきた前の層のLTGである。
【0166】
NNの構築:LTGは、入力ベクトルがNNによって学習されることができないときのみNNに追加される(ブロック42参照)。LTGをNNに追加する必要がある場合には、2つの場合がある。(1)まず、出力が必要とされる出力を生成できない場合である(ブロック49)。(2)次に、中間層内のどのLTGも入力ベクトルを学習することができない場合である(ブロック47)。すでに述べたように、出力LTGと中間層LTGのNNへの割当てはどのような順序であってもよい。
【0167】
LTGをNNに追加するときに考慮することが好ましいことは以下の通りである。
a)NN内の既存のLTGから形成することが必要な全ての接続は、新たなLTGへと形成される(図4のブロック52及び53、及び図5のブロック62)。
b)新たなLTGをNNに追加した後、新たに追加されたLTGがそれまでにNNが学習したことをすべて学習することが重要である(ブロック55)。これにより、NNがそれまでに学習することを忘れることを意味する健忘症と呼ばれる状態を避けることができる。どのようにしてこれが回避されるのかについては、本明細書の後ろで学習論理について述べるときに検討する。
c)NN内にすでに存在し新たに割り当てられたLTGからの入力を受け付けることになるLTGは、入力を受け付けるように処理されなければならない(ブロック54)。新たに割り当てられたLTGからこの新たな入力を受け付けることになるLTGの処理ができない場合、これらは新たなLTGの出力を無視する。
【0168】
LTGの中間層への追加:特に、図4の本発明のDRトレーニングアルゴリズム30に従って新たなLTGをNNの中間層に割り当てるプロセス50を参照。ここでは、入力ベクトルが最初に出力を1つだけ有するNNに加えられる場合について考える。第1中間層の最初のLTGで制約条件が形成される。層内の第1LTGが前述のテストで判定された制約条件を学習できない場合(図3のブロック42)、この層内の次のLTGは、層内のLTGの1つがこれを学習するまで、その出力等で入力ベクトルから形成される制約条件を学習しようとする。しかしながら、この層内のいかなるLTGも制約条件を学習することができない場合、さらにLTGを層に追加してこれを学習しなければならない(ブロック47)。これは図6bのNN70に示しており、ここでLTG−DがN層に追加される。
【0169】
例えば、図6bにおいて、LTG−A又はLTG−Bが新たな入力ベクトルを学習することができない場合、図示されるようにLTG−DがN層に追加される。LTG−Dは、この層すなわちN層への入力に基づいて新たな制約条件を学習する(ブロック55又は56)。この新たなLTGであるLTG−Dの出力は、出力Ojを有するNN70の出力層であるN+1層内の出力LTGであるLTG−Cへの入力にもなる(ブロック53及び54)。
【0170】
次に、任意の中間層について考える。入力ベクトルがNNに加えられるとき、第1中間層の各LTGは、LTGのトレーニングに依存して有効化される又はされないことにより応答する。これらのLTGの応答は、次の層への入力ベクトルとして機能し、これは次にそのトレーニング等を前提として応答する。入力ベクトルの結果、受け付ける入力の分類を学習することができない中間層がある場合(ブロック42)、新たなLTGがその層に追加される(図4参照)。このLTGの中間層への追加プロセスは、全ての入力データが学習されるまで繰り返される。
【0171】
LTGを確立した中間層に動的に割り当てる好適な形式化又はプロセス50は、以下のアルゴリズムで行われる。
a)N−1層内の全てのLTGへの接続を形成する(ブロック52)。これらの接続は、新たに割り当てられたLTGへの入力の役割を果たす。
b)学習されている出力についてN+1層内の全てのLTGへの接続を形成する(ブロック53)。これらの接続は、新たに割り当てられたLTGからの出力の役割を果たす。
c)N+1層内のLTGは、N層内の既存のLTGと新たなLTGとの間の論理関係を形成する(ブロック54)。
d)新たに割り当てられたLTGは、N層内の他のLTGが学習したことで処理される(ブロック55又は56)。
【0172】
十分に複雑なデータでトレーニングされた後にNN100が構築された接続形態を図9に示す。
【0173】
LTG−HはN層のNN100に割り当てられる(ブロック51)。LTG−Hからの出力接続は、出力層ではなく次の中間層であるN層+1内のLTGF及びGの入力へ形成される(ブロック53)。これについては、個別の学習タスクとして各出力が解決されることについて検討した際に、すでに述べた。前の層であるN−1層内のLTGであるLTG−A、B及びDからの入力接続が確立される(ブロック52)。
【0174】
まとめると、中間層LTGのいずれもその層への入力により形成された制約条件を学習することができない場合、すなわち解答がない場合、LTGが中間層に追加される。新たなLTGは、その出力を次の層内のOjに関連する全LTGに接続する。出力LTGが入力の制約条件を学習できない場合、現在の出力層LTGは中間層となり、図5のプロセス60に従って新たな出力がNNへの出力として追加される。
【0175】
LTGを中間層に追加する方法について説明したので、次に、新たな出力をNNに追加する方法を検討する。
【0176】
新たな出力の追加:特に、図5のプロセス60を参照。本発明のDRトレーニングアルゴリズム30に従って新たな出力LTGをNNに割り当てる。トレーニングに出力Ojを選択した後(図2のブロック32)、すでに述べたように、全ての入力ソースが単一の出力LTGに直接接続される。単一の出力LTGは、同じくすでに図3を参照して説明したように、入力ベクトルをLTGに連続的に加えて制約条件を形成することによりトレーニングされる。図10a(i)において、現在トレーニング中の出力Ojを有する出力層112に配された単一のLTGであるLTG−Aを有するNN110の模式図を示す。
【0177】
LTG−Aの制約条件セットの制約条件が、入力ベクトルが形成する各制約条件でテストされる(ブロック42)。用いられるテストについてはすでに述べた。
【0178】
新たな制約条件が既存の制約条件セットで解答を持つ場合、制約条件セットに追加される。しかしながら、解答がない場合(ブロック42)、図10a(ii)に示すように、別の出力層114が追加され、新たなLTGであるLTG−Cが追加される(ブロック61)。LTG−CがNN110の新たな出力LTGOjとなる。中間層112(元の出力層112)内に入力ベクトルを学習できなかったLTGであるLTG−Aがあったため、図10a(ii)に示すように、新たなLTGであるLTG−Bが中間層112に追加される(これもブロック61)。LTG−Aが学習することができなかった入力ベクトルは、LTG−Bによって学習できるようになる。LTG−A及びLTG−Bの出力は、出力層114のLTG−Cの入力に接続される(ブロック62)。LTG−A及びBは、NN110の中間層112を形成する。
【0179】
また図10bのNN110のLTG−Cが学習できない入力があった場合、新たな中間層114(以前の出力層114)が追加されて、新たな出力層116がつくられる。このようにして、新たな中間層が作られて出力層が追加される。新たな中間層LTGであるLTGEが中間層114に追加され、新たな出力LTGであるLTGFが新たな出力層116に追加される図10bを参照する。
【0180】
まとめると、出力LTGが入力ベクトルを学習できない場合、現在の出力層としての同じ層に別のLTGが追加されて、全ての入力が直接これに接続される。このLTGは古い出力が学習できなかった入力を学習する。追加のLTGは次の層に追加される。このLTGへの入力は、NNの古い出力であり、その層に新たに追加されたLTGである。
【0181】
NNに動的に割り当てられたLTGに接続を追加する方法を定めたので、次は、NNがすでに学習したことを再生し続けるようにLTGをトレーニングする方法を考慮することが重要である。以下、これについて検討する。
【0182】
論理の学習:本発明のDRトレーニングアルゴリズム30は単一パスアルゴリズムであるので、LTGがNNに追加されるときでも、NNは以前に学習した入力ベクトルに対して正しい応答を返さなければならない。従って、LTGの追加によりNNがすでに学習したことを忘れることがないようにしなければならない。これは、以下のような場合に起こる。(a)LTGが中間層に割り当てられる。(b)新たな出力層がNNに追加される。この場合、新たなLTGは中間層に割り当てられる。
【0183】
この問題を回避するために:(a)新たに中間層に割り当てられたLTGは、特定の論理規則に従ってこの層の他のLTGが学習したことで処理されなければならない(図4のブロック55又は56)。(b)また、新たに割り当てられたLTGが割り当てられている層から直接入力を受け付けるLTGの層は、新たに割り当てられたLTGの所望の行動に基づいて学習したことを更新する必要がある(ブロック54)。この場合は新たな出力層の割当てをカバーする。
【0184】
次に、新たに割り当てられたLTGが学習することについて検討する。まず、図10a(i)に示すNN等の、中間層のないNNを考える。
【0185】
LTGが入力ベクトルを学習できない状況には少なくとも2つあり、これらは以下の通りである。(1)学習中の入力ベクトルが1を出力する必要があるが、LTGは以前に学習したことに基づいてこの入力ベクトルについて0しか出力できない場合。(2)学習中の入力ベクトルが0を出力する必要があるが、LTGは以前に学習したことに基づいてこの入力ベクトルについて1しか出力できない場合。
【0186】
すでに述べたように、このような状況においては、図10a(ii)に示すように、新たな出力がNNに割り当てられる。
【0187】
続く層がLTGが割り当てられた中間層からの入力を結合することができる考えられる少なくとも2つの方法は、以下の通りである。(1)出力LTGは中間層LTGからの入力ベクトルを論理ORで結合する(ブロック64)。(2)出力LTGは中間層LTGからの入力ベクトルを論理ANDで結合する(ブロック63)。
【0188】
ORの学習:特に、図5のプロセス60のブロック64を参照。初めに、LTGが学習することができなかった入力ベクトルについて検討する。ベクトルがNNに1を出力させることになっており、LTGが以前に学習したことの結果としてLTGが0しか出力できない場合、新たな出力はその入力間にORを形成する必要がある。
【0189】
再び図l0a(ii)を参照すると、NN110の出力であるLTG−CはLTG−Aが有効化されるとき有効化されることが必要であるが、この場合、LTG−Aは有効化される必要があるができないため、LTG−Bが入力の特徴を学習する。LTG−Bは、また、NN110により以前に学習された入力ベクトルを学習する必要がある。これにより、LTG−Bは出力が有効化されるべきでないときに有効化されることがないようにする。このためには、LTG−Aの制約条件セット内の全ての制約条件がLTG−Bの制約条件セットにコピーされるが、全ての制約条件は<Tとして学習される。LTG−BはLTG−Aが学習できなかった新たな制約条件を学習し、この入力ベクトルの検出により有効化されることになる。これにより、2つの入力をORすることを学習するためLTG−Cが有効化されて、必要に応じて1を出力する。
【0190】
ANDの学習:特に、図5のプロセス60のブロック63を参照。出力が0でなくてはならないがLTGは1を出力する場合、新たな出力はLTG−Aからの入力と新たに割り当てられたLTGであるLTG−BとをANDすることを学習する。この場合、制約条件は、0<TがLTG−Aの制約条件セットにある場合を除いて、LTG−Aの制約条件セットから≧Tとしてコピーされる。この場合、制約条件はそのままコピーされる。
【0191】
LTGがさらに既存の中間層に割り当てられる場合、すでに述べたように、制約条件はその層の以前のLTG(LTG−B)からコピーされて適宜修正される。しかしながら、LTGがN層に追加される場合、N+1層でLTGが学習したことには修正が必要である。
【0192】
次の層が学習する論理は、(...(x1 Op1 x2)Op2 x3)Op3 x4)...)であり、ここでOp1...OpNは論理AND又はORであり、x1....xNは新たなLTGを割り当てた中間層から受け付けた入力である。新たに割り当てられたLTGが既存の中間層に割り当てられる場合、この層からの入力を受け付けるLTGは、その論理に基づく制約条件を更新する必要があってもよい。例えば、この層が既存の論理(x1 AND x2)を有する場合、制約条件{wn1+wn2>Tn,wn1<Tn,wn2<Tn,0<Tn}を有する。論理が(x1 AND x2)AND x3となる場合、制約条件セットは{wn1+wn2+wn3≧Tn,wn1+wn3<Tn,wn2+wn3<Tn,wn3<Tn,wn1+wn2<Tn,wn1<Tn,wn2<Tn,0<Tn}となる。
【0193】
入力ベクトルが学習されることができるときに層内のLTGにより学習される論理は、これらがNNに追加される論理に従う。LTGがANDを形成するよう追加される場合、LTGは制約xi・w≧Tを学習し、LTGがORを形成するよう追加される場合、LTGはxi・w<Tを学習する。
【0194】
(完全な学習と一般化についての説明)
以下、NNが完全にトレーニングされた状態、言い換えると、NNが学習したことを再生することができ一般化することができることを説明する。まず、LTGが学習した入力を回復することができ、従って十分にトレーニングされていることを説明する。
【0195】
LTGの完全なトレーニング:LTGがトレーニングされるとき、結果として生じる制約条件のセットをLTGの出力の決定に用いることができる。これは、入力をトレーニングされたLTGの制約条件セットに加え、マカロック−ピッツLTGの行動を定義する式1.1を用いることによって行われる。これは、以下の例において説明される。
【0196】
図7に示すように、制約条件セット(w1+w2<T、W2≧T)を生成する2入力LTG82を考える。その後入力ベクトル[1 1]を加えると、1.W1+1.W2=W1+W2<Tであるため、LTGは0出力を生成する。従って、十分にトレーニングされるLTGには重みに対する数値は必要ではない。
【0197】
この引数は、LTGが学習したことを重み及び閾値についての数値を見出すことなく生成することができることを説明する。また、トレーニングされたNNにより学習されたことが100%の精度で思い出すことができることを説明する。
【0198】
本発明は、主要には入力ベクトルに関連付けられた適切な出力を決定するためのNNのトレーニングに関するが、NNのトレーニングに用いられるデータ及びトレーニング中に起こりうる2つの問題についての検討も行う。
【0199】
一般化:本発明の好適な実施形態は、サンプルデータセットでトレーニング可能でありその後トレーニング中にはNNによって見ることのできなかったデータパターンをうまく分類することができるため、フィードフォワードNNを用いる。これを一般化と呼ぶ。
【0200】
データ空間についてほとんどわからないブラックボックスNN分類システムが望ましいこともあるが、データにはNNのトレーニングに極めて重大な少なくとも2つの様態があり、これは以下の通りである。(1)大きくノイズの多いデータセットの問題のひとつに、矛盾があるかもしれないことがあり、例えば、ある例ではXi→0であり別の例ではXi→1であるような入力ベクトルXiがあるとNNはこのベクトルの学習に困難が生じる。この問題は全ての学習アルゴリズムに共通する。(2)NNをトレーニングするために用いられるトレーニングサンプルが確実にデータセットを表す。以下、これについてより詳細に述べる。
【0201】
各データセットはいくつかの特徴を有する。トレーニング中にNNがさらされるデータセットがNNを十分にトレーニングするために必要な全ての特徴を表すことが望まれる。しかしながら、データセットが大きくほとんどわからない場合、トレーニングセットが全データセットの全ての特徴を表していることを判断する方法はない。この場合、データセットは「未知」と呼ばれる。
【0202】
トレーニングされたNNをテストすることにより、NNがデータセット中の全ての特徴を学習したかどうかを判定することが可能となる。追加の分類入力ベクトルを有するNNのテストは、これを実現するための好適な方法である。フィードフォワードNNをトレーニングするためのデータセットの分割については、すでに検討した。しかしながら、データセットがよく理解されておらず大きい場合には、それでもまだデータセットのその他の特徴がわからないことがある。
【0203】
以下、演繹法が常に機能するわけではない理由について検討する。演繹法は、トレーニングデータセットに欠けている特徴があると機能せず、この問題は「不十分なトレーニング」と呼ばれる。
【0204】
LTGの不十分なトレーニング:LTGがトレーニングされる各データセットは、データの特徴をいくつ持っていてもよい。トレーニングデータセットは、これらの特徴のうち、その内部で表される特徴を有してもよい。しかしながら、トレーニングセット内に未知のデータセット内の全ての特徴が提示されるという保証はない。
【0205】
従って、トレーニングデータセットに表れていない特徴があれば、LTGはトレーニング中にはデータセットの全ての特徴にさらされることがない。従って、LTGが見えない入力ベクトルでテストされるとき、間違った結果を出力することがある。従って、LTGが不十分にトレーニングされていると言うことができる。
【0206】
例えば、図7に示す、2つの入力ベクトル[0 0]→0及び[0 1]→1のみでトレーニングされる2入力LTG82を考える。
【0207】
LTG82は入力ベクトルの最初のビットが設定されたどのベクトルにもまださらされていないため、[1 0]と[1 1]とを正確に分類することができないかもしれない。このLTG82が上記トレーニングセットから学習する制約条件セットは{0<T、w2≧T}であり、w2についての情報はいくらかあるものの、w1に対する関係は成立していない。例えば、Tに対する関係がw1+w2かw1かは未知である。その結果、入力ベクトル[1 1]及び[1 0]についての出力を推定することができない。入力間で形成される論理関係については、これらはx2、x1 OR x2、又はX1 XOR x2であってもよいが、さらに情報がなければどちらであるかを言うことはできない。
【0208】
本発明のDRトレーニングアルゴリズム30によれば、LTGが不十分にトレーニングされている場合、1を出力することが好ましいが、これはデータセットに依存し、かわりに0を出力してもよい。言い換えると、LTGはデータ入力に対する応答の仕方を学習するまで有効なままとなる。しかしながら、これはNNによって学習されているデータセットに応じて変化してもよい。
【0209】
従って、トレーニングセット内に欠けている特徴がある場合にはLTGは正しい応答を出力することが難しくなることは言うまでもない。バックプロパゲーション等のその他のトレーニング方法でトレーニングされるその他のニューロンが経験する問題もある。しかしながら、バックプロパゲーションでトレーニングされる知覚とは異なり、本発明のDRトレーニングアルゴリズム30はLTGがデータパターンの分類の仕方を学習していない場合を識別することができ、言い換えると、本発明のDRトレーニングアルゴリズム30でトレーニングされるLTGは、入力ベクトルを正しく分類する方法を知らない場合を示すことができる。
【0210】
以下、LTGの最も有用な特性のひとつ、すなわちLTGが十分にトレーニングされている場合に見えない入力ベクトの出力を推論することができるLTGの能力について検討する。
【0211】
見えない入力ベクトルを推論する:NNがトレーニングされているとき、NNは入力ベクトルのセットでトレーニングされ、その後、NNがトレーニング中にはさらされなかった多数の入力ベクトルでテストされる。これらの入力ベクトルは、「見えない」と呼ばれ、NNがその関連付けられた出力を正しく判断することができるかどうかを判定する。
【0212】
NNがトレーニング中に見られなかったデータパターンの分類を判断することができるためには、NNが以前に学習したことから見えない入力ベクトルの分類を推論することができる必要がある。トレーニング中に全ての特徴を学習したことは保証されないため、LTGを考えられる全ての入力ベクトル及びその関連付けられた出力にさらさなければ、出力を正しく推論することはできないかもしれない。全てのデータパターン又は入力ベクトルが利用できるわけではないことが多く、入力データセットを十分に列挙して見出されたとしても分類の仕方がわからないこともある。入力データセットの比率にすぎないトレーニングセットがNNが学習のためにトレーニングされているそのデータセットを表すものかどうかを判定する方法があることはあまり考えられない。その結果、特定のデータセットでのトレーニングにより、見えないデータパターンの出力がNNによって正しく判定できることがあることを示すことができるだけである。
【0213】
命題3.1:見えない入力ベクトルについてLTGの閾値に対する関係が以前に学習した制約条件から推論可能であれば、見えない入力ベクトルについての出力を判定することができる。
【0214】
図11に示すLTG120を考えると、LTGは以下のような入力ベクトル及び出力ベクトルを用いてトレーニングされる。[0 0 0]→0、[0 0 1]→1、[0 1 0]→1、[1 1 1]→0。
【0215】
そして、LTG120は、以下のような制約条件セットを有することになる。{0<T、w3>T、w2>T、w1+w2+w3<T}。
【0216】
入力ベクトル[1 0 0]はトレーニング中にLTG120によって見られておらず、このベクトルに対する必要な出力は0である。LTG120が閾値に対する関係を推論することができない場合、出力が0であることを判断することができない。
【0217】
0<T、w2≧T、及びw3≧Tであるため、w2及びw3>TではT、w2、及びw3は全て正の数である。従って、w2+w3は>Tでなければならない。しかしながら、w1が小さく負の数であることを意味するw1+w2+w3<Tであるため、<Tである。従って、LTG120に加えられLTGの行動を定義する式1.1を用いるときの入力ベクトル[1 0 0]では、1・w1+0.W2+0・w3=W1<Tが推論される。従って、LTGは0を出力する。
【0218】
従って、LTG120は正しい出力を推論することができる。LTG120が正しい出力を導き出すことができたので、十分にトレーニングされれば出力を推論することができることがわかる。
【0219】
本発明のDRトレーニングアルゴリズム30はNNの構築にLTGを用いることが好ましいため、演繹法の原則は、本発明によれば、NNの見えない入力ベクトルの分類の推論に用いることができる。代替的に、本発明のさらなる様態に従って、トレーニング中に見えなかったデータパターンの分類を判定する異なる方法を用いることもできる。以下、この代替的なデータパターンの分類を判定する又は制約条件セットの入力ベクトルが既知か未知かを判定する方法を説明する。
【0220】
以下、ベクトルが明示的に学習されたかどうかにかかわらず、入力ベクトルを分類する方法を学習したかどうかを判定するために、新規なテストを行う。以下のテストは、NN出力が入力ベクトルについて既知であるかどうかを示す。
【0221】
LTGが入力ベクトルを知っているかどうかのテスト:トレーニングされたLTGからパターンの分類又は入力ベクトルを見出すことができることが好適である。入力ベクトルがトレーニングされたLTGに加えられるとき、以下のいずれかを行う。(1)有効化する。(2)有効化しない。(3)不十分なトレーニングの結果、入力ベクトルの分類方法を知らない。
【0222】
従来のトレーニングアルゴリズムは、LTGが入力ベクトルの分類方法を知らない状況をLTGに識別させない。本発明のDRトレーニングアルゴリズム30は、LTGが分類方法を知らない入力ベクトルの識別を可能とする。
【0223】
以下、本発明のさらなる様態に係る、制約条件セットの入力ベクトルが既知か未知かを判定する方法130の好適な実施形態を、図12のフロー図を参照して説明する。制約条件セットが、本発明のDRトレーニングアルゴリズム30に従ってトレーニングされたNNのニューロンの制約条件セットであることが好適である。言うまでもなく、入力ベクトルが既知か未知かを判定する方法130は、NNに限定されるものではない。入力ベクトルを分類する方法130は、例えばDNAといったデータストリングの分析等の制約条件のシステムを利用する他の分野においても有用であると考えられる。同様に、入力ベクトルを分類する方法130は、CSPやオペレーションリサーチの用途に利用することもできる。従って、本発明のこの様態は、独立しており、本発明のDRトレーニングアルゴリズム30での使用に限定されるものではない。
【0224】
以下の入力ベクトルを分類する方法130の説明は、本発明のDRトレーニングアルゴリズム30に従ってトレーニングされたLTGの出力の判定の点から説明される。この説明は、本発明の方法130の考えられる使用の一例に過ぎない。
【0225】
LTGが不十分にトレーニングされたかどうか、言い換えると入力ベクトルXiの分類の仕方を知らないかどうかを判定するためには、まず、ブロック131で、先に述べたように制約条件とその補空間が入力ベクトルから構築される。形成される制約条件は、xi・w<Tとその補空間xi・w≧T、又はxi・w≧Tとその補空間xi・w<Tである。
【0226】
この入力ベクトルに関連付けられた出力はまだ既知ではないとする。制約条件xi・w<T又はxi・w>TはトレーニングされたLTG制約条件セットに追加され、その後、ブロック132で解答の有無を判定するために任意の適切な制約充足アルゴリズムを用いてテストされる(数的解答を見出すことができるが特定の解答を見出すには重要ではなく、又は同等に、図12に示すように制約条件により定義された体積の共通部分を見出すことができる)。解答がない場合には、LTGはブロック133によって表される1又は0を出力しなければならず、LTGは十分にトレーニングされており入力ベクトルの分類の仕方を知っている。言い換えると、xi・w≧T又はxi・w<Tについての解答がなければならない。
【0227】
しかしながら、ブロック132で、制約条件xi・w<T又はxi・w≧TがトレーニングされたLTGの制約条件セットに追加されたときに、解答がある場合、ブロック134において制約条件xi・w<T又はxi・w≧Tは取り除かれ、その補空間が代わりに追加される。ブロック135でチェックが行われたときに解答がない場合、LTGは入力ベクトルの分類の仕方を知っており、ブロック136により表されるように0又は1を出力する。
【0228】
しかしながら、ブロック135でチェックが行われたとき、制約条件及びその補空間が代替的にブロック134で追加されたときLTGが解答を有していた場合、ブロック137により表されるように不十分にトレーニングされているため入力ベクトルをどのように分類するべきかは知られていない。言うまでもなく、これらのステップの順序は必須ではない。
【0229】
任意の適切な制約充足方法又はアルゴリズムを用いて制約条件を学習することができるかどうかをテストすることができる。重み及び閾値の特定の数的解答を見出すことは重要ではないが、これを見出すことができるか否かを判定することは不可欠である。これは、制約条件により定義された体積の共通部分を見出すことと同等に提示することができる。
【0230】
入力ベクトルが制約条件に変換されるとき、これはLTGの重み空間内に面を形成する。入力ベクトルはLTGにより学習されるたびに、重み空間を二分する面を形成し、トレーニング条件を満たす体積を減らしていく。これは図13(a)で示され、囲まれたくぼみ領域がこれまでに学習したトレーニング条件を満足する重み空間である。領域を二分する面はLTGに提示されている入力ベクトルから形成される。この状況では、LTGは、それぞれ図13(b)及び図13(c)に見られるように、xi・w<T又はxi・w≧Tを学習することができる。この場合、入力ベクトルの分類の仕方は知られていない。図13(d)において、LTGは面の上の領域を学習することができるだけであり、下は学習することができず、従って、出力はトレーニング条件を満たす重み空間の体積を交差する制約条件により決定されることになる。
【0231】
図13(e)において、xi・w=Tにより形成される面は凸部の体積を交差するが、図13(f)では、その面で形成された1つの制約条件のみがLTGにより学習されることができる。出っ張り領域は、これらの制約条件の全ての共通部分により形成された領域にのみ交差が与えられるため、凹部領域を減らす。
【0232】
たまたまトレーニングセットに入力ベクトルがある場合には、これがトレーニング中に構築された制約条件セットにより定義される体積の表面の1つを形成することになり、入力ベクトルが既知となる。
【0233】
まとめると、制約条件及びその補空間はいずれも入力ベクトルから形成され(ブロック131及び134)、トレーニングされたLTGの制約条件セットで共通部分の有無についてテストされる(ブロック132及び135)。制約条件のいずれかが解答を導くことができない場合(ブロック133及び136)、この入力ベクトル内の特徴はトレーニング中に学習済みであることを意味する。しかしながら、LTGがすでに学習した両方の制約条件について利用可能な解答がある場合には(ブロック137)、トレーニングセットから欠けている特徴がある。このような特性は、形式上、以下のように言うことができる。
【0234】
定理:制約条件xi・w<T又はw≧Tとその補空間をLTGが学習した制約条件のリストに交互に追加し(ブロック131及び134)、共通部分をテストすることにより(ブロック132及び135)、ベクトルXiが学習されているか否かを判定することができる。両方のケースに解答がある場合には(ブロック137)、制約条件は学習されていない。しかしながら、xi・w<T又はその補空間のみが以前に学習した制約条件の解答を有する場合には、このベクトルはLTGによって学習済みである(ブロック133及び136)。
【0235】
証明:図13において、与えられた重み空間の図に、LTGが学習したことにより定義される2つの体積の表現を示す。くぼみ領域が図13(a)から図13(d)に示されており、出っ張り領域が図13(e)及び図13(f)に示されている。ベクトルによって形成された面は、重み空間、すなわちxi・w=Tに適用される。これは、図13(d)に示すように定義された体積に交差しないか、その他の全ての場合のように交差する。交差しない場合には、入力ベクトルは学習済みである。この場合、これは体積依存してLTGを有効化する又は有効化しない、すなわちxi・w<T又はxi・w≧Tは、LTGがすでに学習した制約条件により形成された体積に交差する。そうでない場合にはxi・wは学習されていない。
【0236】
この場合、図13(e)及び図13(f)に示すように面は出っ張り領域に交差し、領域はLTGが以前に学習した全ての制約条件に共通しなければならないため、これらのいずれか一方のみを学習することができる(関心は両方の共通領域にのみ与えられるため、図13(e)及び図13(f)の領域はくぼみ領域すなわちその共通部分に縮小されることに注意)。以下に、上記を示すための例を示す。
【0237】
図11に示す3入力LTG120について考える。LTG120が入力ベクトル[0 1 0]→1及び[0 1 l]→0でトレーニングされる場合、LTG120が学習する制約条件セットは{w2>T、W2+W3<T}である。ベクトル[1 0 0]及び[0 0 1]の出力を判定する。
【0238】
入力ベクトル[1 0 0]について、面W1=Tが領域{w2≧T、W2+W3<T}に交差することが見いだされ、W1<T及びW1≧Tの両方がLTG120により学習された領域と交差する。従って、LTG120は出力が何であるべきかを知らない。すでに述べたように出力は1であるべきであるが、これは必要であれば学習されたデータセットに従って修正可能である。
【0239】
入力ベクトル[0 0 1]について、面w3=Tが領域{w2>T、w2+w3<T}に交差しないことが見いだされ、そのような領域はw3<Tのみとなる。従って、ベクトル[0 0 1]の出力は0となることが知られている。
【0240】
入力空間についてはあまりよく知られていないが、本発明に従ってLTGをトレーニングするDRトレーニングアルゴリズム30は重み空間について多くの情報を与えない。
【0241】
制約条件セットへの各制約条件の追加により、このLTGの全てのトレーニング条件を満たす重み空間の領域が減少する。
【0242】
言うまでもなく、入力ベクトルの出力を決定することが2つの考えられる制約条件を比較することである好適な方法は、LTGが学習した制約条件の閾値で形成されてもよい。これはLTGを有効化する、もしく有効化しない、又は正しい出力を知らない。
【0243】
以上、NNがどのようにトレーニングされ、テストされて見えない入力を推論するかを示したが、次に、本発明のDRトレーニングアルゴリズム30及び一般化を説明するために十分に機能する例について述べる。
【0244】
(Modulo−8問題を所与されたDRトレーニングアルゴリズムの使用に係る実施例)
本発明に係るDRトレーニングアルゴリズム30についての詳細を以下に続く解説において例示する。本実施例において、Modulo−8問題を解決するNN140に係る好ましい実施形態を用いる。データセットは2進数の3次元入力ベクトルを含み、出力は順番における次の2進数である。入力ベクトル[101]を任意に選択して、テスト用に予約しておく。NN140をトレーニングする制約条件セットを作成した後、[110]となる入力ベクトル[101]に対する出力をNNが推定することができることを証明する。
【0245】
表1に記載したデータセットは、次に記載する入力と関連出力とを有する。
【0246】
【表1】
modulo−8を定義する入力ベクトル及び出力ベクトル
【0247】
「制約条件セット」の作成:入力ベクトルを[x1 x2 x3]として定義し、かつ出力ベクトルを[O1 O2 O3]とする。出力ベクトル内にある第1の出力を選択してまずトレーニングする(図2のブロック32)。LTGの閾値が有する添字によってLTGを参照する。例えば、LTG11は閾値T11を有する。まず、学習される0(この場合は[000])ベクトルが利用可能であるかを決定する。利用可能であれば、ベクトル{0<T11}を制約条件セットに付加する。現在トレーニングしている、出力ベクトル内の位置にある出力1を最初に学習するように入力ベクトルを整理する(ブロック33)。図14aを参照のこと。
【0248】
図3のプロセス40に従って、出力O1のためのトレーニングの結果、LTG11は{0<T11、w113<T11、w112<T11、w112+w113>T11、w111>T11、w111+w112≧T11}と定義される。
【0249】
これは、ブロック42においてチェックすると解答を有する。なお、次に記載する制約条件を付加することは解答を有さない:w111+w112+w113<T11。
【0250】
従って、LTG11は、入力ベクトル[111]に対して0の代わりに1を出力する。図4のプロセス50に従って、新しいLTGであるLTG12をNN140内に付加して入力ベクトル[111]を学習する。NN140に係る新しいトポロジーについては図14bを参照のこと。制約条件{w121+w122+w123<T12}をLTG12の制約条件セットに付加する(ブロック55)。LTG11が学習した情報をコピーし、かつ修正すると、LTG12の制約条件セットは{w121+w122+w123<T12、0≧T12、w123≧T12、w122≧T12、w122+w123>T12、w121≧T12、w121+W122>T12)になる。
【0251】
この時点でLTG11は出力であるため(ブロック48参照)、新しい出力LTGであるLTG21を図5のプロセス60に従ってNN140に付加する。NN140に係る新しいトポロジーについては図14cを参照のこと。出力が0の代わりに1になったので、このことは、新しい出力であるLTG21がLTG11とLTG12との間にANDを形成することを意味する。
【0252】
LTG21がその入力間にANDを形成することになっているので、その制約条件セットは{0<T21,w211<T21,w211+W212≧T21,w212<T21)になる。
【0253】
第1の出力O1を学習するのに必要とされる3個のLTGに対する制約条件セットは、LTG11:{0<T11,w113<T11,w112<T11,w112+w113≧T11,w111≧T11,w111+w112≧T11,w111+w112+w113≧T11),LTG12:{w121+w122+w123<T12,0≧T12,w123≧T12,w122≧T12,w122+w123≧T12,w121≧T12,w121+w122≧T12)、及びLTG21:{w211<T21,w211+w212≧T21,w212<T21,0<T21)である。
【0254】
出力O1の出力をトレーニングしたところで、プロセスは、出力O2のトレーニングへと進む(ブロック35におけるチェック後、ブロック32に戻る)。表2に記載したようにデータが整理される(ブロック33)。入力ベクトル[101]をテスト用に除外してあることに留意することが大切である。図14dは、現在のNN140について、O2の最初の出力LTGであるLTG13を示す概略図を提供する。
【0255】
【表2】
Modulo−8のデータセットの第2の出力
【0256】
LTG13は、制約条件{0<T13,W133≧T13,W132≧T13,w131+W123≧T13}を学習する(ブロック34)。
【0257】
なお、入力ベクトル[011]に対する制約条件w133+w132<T13を制約条件セットに付加することは、図3のプロセス40のブロック42においてチェックすると解答を有さない。図4に示したプロセス50に従って、新しいLTGであるLTG14をNN140に割り当てて、LTG13を備えた中間層142を形成する。LTG14は、入力ベクトル[011]に対する制約条件w143+w142<T14を学習する(ブロック55)。NN140に係る新しいトポロジーについては14eを参照のこと。
【0258】
LTG13が入力ベクトル[011]に対して求められる0の代わりに1を出力するので、このことは、出力LTGがその入力間にANDを形成しなければならないことを意味する(ブロック54)。
【0259】
従って、この条件を学習するために新しいLTG14を付加して、LTG14が入力ベクトル[011]を学習する。LTG14:{0≧T14,w143+w143<T14,w143≧T14,w142≧T14}
【0260】
図5のプロセス60に従って、出力O2に対して、再び、新しい出力LTGであるLTG22(ANDを用いることによってその入力を統合するよう学習する)を付加し、その結果、制約条件セット:{0<T22,w223<T22,w223+w224≧T22,w224<T22)を生成する。NN140に係る新しいトポロジーの概略図については図14fを参照のこと。
【0261】
LTG13が次のベクトル[101]を学習して、LTG13の制約条件セットがLTG−B:{0<T13,w133≧T13,w132≧T13,W131<T13,w131+w132≧T13)になる。LTG14に対する制約条件セットは、LTG14:{w143+w143<T14,W143≧T14,w142≧T14,0≧T14,w141≧T14)になる。
【0262】
最終ベクトル[111]が形成する制約条件は、LTG13によって学習され得ないが、LTG14によって学習され得る、それゆえ3個のLTG全てに対する最終制約条件セットをここに列記する:LTG13{0<T13,w133≧T13,W132≧T13,w131<T13,w131+w132>T13,w131+w132+w133≧T13,w133+w132≧T13),LTG14:{0≧T14,w143+w142<T14,w143+w142+w141<T14,w143≧T14,w142≧T14,w141≧T14,w141+w142>T14)、及びLTG22:{0<T22,W223<T22,W223+W224≧T22,W224≧T22)。
【0263】
第2の出力をトレーニングしたところで、最後の出力O3をトレーニングしなければならない(ブロック35におけるチェック後、ブロック32に戻る)。LTG15は、次に記載する制約条件セットを学習することが(図3のプロセス40を用いて)ブロック34においてまず最初に分かる:LTG15:{0≧T15,w153<T15,w152≧T15,w153+w152<T15,w151≧T15,w151+w152+w153<T15,w152+w151≧T15)。図14gは、現在のNN140について、O3に対する最初の出力LTGであるLTG15を示す概略図である。
【0264】
LTG15は、全トレーニングセットにさらされ、ブロック42においてチェックすると解答を有する、従って新しいLTGをNN140に付加する必要はなく、それゆえ図14gは、Modulo−8のデータセットを学習した最終の全トレーニング済みNN140を示す概略図になる。
【0265】
次に、入力ベクトルが既知であるか又は未知であるかを決定する図12に示した方法130に従って、見えない入力を推定する方法について考察する。
【0266】
(テスト入力ベクトルに対する出力の推定)
次に、見えない入力ベクトルをNN140がいかによく分類するかを評価するが、この場合、見えない入力ベクトルは[101]であり、その関連出力は[110]である。入力ベクトルが分かる場合、NN140は、トレーニングされたデータから一般化することができる。
【0267】
まず、出力O1を推定する。T11>0、w113<T11、w112<T11かつw112+w113≧T11であるので、それゆえ0<w113<T11であり、w111>T11とすると、その結果w111+w113≧T11になる。従って、LTG11の出力は1である。また、制約条件w111+w113<T11をLTG11の制約条件セットに付加する場合は、解答がない。
【0268】
2個の制約条件w121+w123<T12及びw121+w123≧T12を付加することは解答を有し、このような制約条件の場合、デフォルトは1を出力する。
【0269】
LTG21は、1・w211+1・w212を有し、かつw211+w212>T21であるので、O1は1になる。
【0270】
次に、O2の出力を推定する。LTG13は、w131+w133>T13及びw131+w133<T13のどちらも学習することができるので、LTG13の出力は1である。
【0271】
また、LTG14は、w141+w143≧T14及びw141+w143<T14のどちらも学習することができるので、1を出力する。LTG22は、1・W231+1・w242を有し、かつw231+w232≧T22であるので、O3は1になる。
【0272】
最後に、O3の出力を推定する。w151+w152+w153<T15かつ0>T15かつw151+w152>T15であるので、w153<T15<0になる。w151≧T15であるにも係わらず、w151+w152+w153<T15である、従って出力は0になる。
【0273】
従って、正しい出力を推定するか、又は[110]として一般化した。図14gに、結果として生じたNN140を示す。必要に応じて中間層と出力層との間にだけ結合が作られ、また中間層LTGは、O3にあるように必要とされるときにだけ付加されることが分かる。
【0274】
当該NN140において、NN内には重み及び閾値よりずっと少ないトレーニングサンプルがあり、またNNが完全にトレーニングされたものとして振る舞うことに気付かされる点が興味深い。NNをトレーニングするには、NN内において重み及び閾値の数よりも多い入力ベクトルが必要とされると一般に考えられている。変数よりも多いトレーニングサンプルが必要とされるということが全てのケースにあてはまるわけではないと本実施例において分かった。これは、当該DRトレーニング方法30において各入力ベクトルがそれぞれの重みをトレーニングするからである。
【0275】
(本実施例におけるLTGの数)本発明に係るDRトレーニングアルゴリズム30を用いる場合、本実施例においてデータセットを学習するのに7個のLTGが必要だった。図14gにおいて、出力層144内にあるLTGは、単に、それらが入力を求める先となる中間層142内にあるLTGから入力を受け取るだけであることが分かる。また、不要なLTGがNN140に割り当てられることはない。例えば、LTG15は、あらゆる場合に、求められている出力を生成することができるので、O3を生成するのにそれ以上のLTGを付加しない。
【0276】
本発明に係るDRトレーニングアルゴリズム30がどのように動作するかを一実施例を用いて説明してきたところで、NNによるトレーニング中に学習したルールを抽出する際に本アルゴリズムがいかに有用かを考察する。
【0277】
(本発明に係るDRトレーニングアルゴリズムのルール抽出に対する適用可能性)
本発明に係るDRトレーニングアルゴリズム30の重要な利点は、当該アルゴリズムが少なくとも次に記載する特性を示すことから、ルール抽出に用いることができるということである。a)NN内に一LTGを付加すると、その新しいLTGとその層内にある他のLTGとの間において命題理論のルールが決定される。b)重み空間内の体積に関する制約条件(そのLTGに活性化する領域を縮小するもの)を付加することによって重みを適合させる。これは、そのLTGが制約条件(そのLTGに対する重み空間内の活性化領域の範囲を定める平面である)を用いるためである。これは、重み空間を記号を用いて定義することを可能にし、かつc)好ましい制約条件がそのLTG内の重みと閾値の関係(トレーニング中にNNによって学習されたルールを符号化するもの)を定義する。
【0278】
入力ベクトルと、LTGに活性化する重み空間内の体積を定める超平面との間にマッピングがあるので、ほとんどの情報を提供する正確な入力ベクトルを見い出すことが可能である。次に、本発明に係るDRトレーニングアルゴリズム30の、LTGを活性化させる重み空間上に境界を設ける入力ベクトルを見つけ出す能力について解説する。
【0279】
従来の方法を使ってフィードフォワードNNをトレーニングする目的は、NNが学習したデータセットのトレーニング条件を満たす、考えられ得る限り最良の平均値を表す単一数値をNN内のそれぞれの重みに対して見出すことである。NN内にある各LTGの重み(及び閾値)は全て単一の(望ましくは)平均的な数値として表されるとおり、データセット内にある情報の多くは学習時に失われる。その情報のうち幾らかは、重要ではあるがトレーニング中に失われてしまう、LTGに活性化させる領域についての面情報の全てである。ほとんどのLTGが2個以上の入力を有するとおり、この領域は、LTGの重み空間内において(超)体積として定義される。従って、LTGに活性化する領域を「活性化体積」と呼ぶ。面情報から:(a)LTGへの入力間の関係とそれゆえNNとを決定することができ、かつ(b)各重みが取ることのできる値の範囲(NNが必要に応じて振る舞うことを可能にする)を推論することができる。
【0280】
従来の方法を使ってトレーニングしたNNに対して感度分析を行なうことは、この失った面情報を回復する試みの一方法である。
【0281】
感度分析は、重みとニューロンへの入力との関係を決定しない一方で、求められるとおりにシステムが動作することを可能にする、システムの構成要素の各一が取ることのできる値の範囲を決定するのに用いることができる。この場合、構成要素とはNN内にあるニューロンの各一に対する重みのことである。各重みは、トレーニングされるとおりにNNが動作することを可能にする値の範囲を有する。この範囲を「最適範囲」と呼ぶことができる。
【0282】
従来のトレーニング方法を使ってトレーニングしたNNに対して感度分析を行なうための通常の手法は、NNの反応について一統計的分析を行なうことである。ニューロンの重み空間内にある各重み毎に範囲を決定する解析的方法がこれまでなかったため、統計的分析を行なってニューロンの実際の挙動ではなく一般的な挙動が調べられている。また、感度分析は、単に、従来の方法によってニューロンをトレーニングするときに、一度に1以上の重みを修正することの効果が調べられるのを可能にするだけである。従って、ニューロンが学習するよう求められている関係の平均値を、重みの単一数値がどれだけよく表しているかを決定することは可能ではない。
【0283】
なお、ニューロンにおける重みの範囲について統計的推定値を得ることが、感度分析にできる最善である。感度分析は、活性化体積の面を規定することが可能な方法を全く有していない。これは、重みが一度に1つずつ検討されるためであり、感度分析が行なわれているときは他の重みの各一が幾分その平均値近傍にあることが望まれる。
【0284】
本発明に係るDRトレーニングアルゴリズム30を使うと、面情報の回収がかのうになり、システムは(a)重み間の関係と、これによりLTGへの入力間の関係を決定でき、かつ(b)各LTG毎に重みの統計学的範囲よりも多くを見出すことができる。重みの正確な範囲が決定できるだけでなく、LTGを活性化する活性化体積の面も規定することができる。
【0285】
本発明に係るDRトレーニングアルゴリズム30は、LTGを、好ましくは一群の制約条件としてトレーニングするので、トレーニング中にトレーニングセットについての情報のうち失われるものはなにもなく、これらの制約条件を分析して重みの範囲を見つけ出すことができる。
【0286】
次に、本発明のさらなる態様により、各LTG毎に活性化体積の面が規定されるのを可能にする好ましい方法150について、図15のフローチャートを参照して解説する。
【0287】
(活性化体積)
入力ベクトルをNNに加えることによってLTGをトレーニングする場合に、データセットを学習するようにNNをトレーニングする方法を先に示した。重み空間を二等分する(超)面を形成する式xi・wを用いて、入力ベクトルを制約条件に変換した。xi・wは、閾値Tを有する制約条件を形成するため、(超)体積は、次に記載するような制約条件によって定義される。a)LTGが制約条件xi・w>Tを学習した場合、それは、LTGが学習した他の制約条件に応じてこの領域又はこの領域のサブセットがLTGに活性化することを意味する。補空間の制約条件xi・w<Tは、LTGを全く活性化しない領域を画定し、b)LTGが制約条件xi・w<Tを学習した場合、この領域はLTGの活性化を生じない。しかしながら、補空間の制約条件xj・w>Tを満足する点はLTGの活性化を生じてもよい。
【0288】
従って、(超)面xi・wは、LTGを活性化する可能性のある領域の面を形成する。多くの入力ベクトルが学習されると、LTGに活性化する可能性のある体積が重み空間内において定義され、「活性化体積」と呼びうる。これをコンピュータに実装するため、各入力ベクトルの制約条件が、それが学習できる各LTGと併せて蓄積される。その結果、重み空間内におけるLTGを活性化する最小体積の面を形成する制約条件だけが重要なので、制約条件の冗長が生じることになる。重み空間内における最小活性化体積(Minimum Activation Volume、以下「MAV」)の面を見つけるため、制約条件を分析することができる。この活性化体積の面は、制約条件セット内にある他の制約条件が提供する情報の全てを包含する。
【0289】
LTGが受けたトレーニングのことを考えると、MAVは、LTGがそれまでに学習した制約条件によって制限される最小体積になる。トレーニング中には利用可能ではない、活性化体積をさらに減少させたであろう他のベクトルがあってもよいので、これは可能な限り最小な体積ではないと考えられる。
【0290】
トレーニング中に学習した他の制約条件(MAV内にはないもの)は、MAVに関する輪郭のようなものを形成する。
【0291】
MAVの面が見つかると、MAV及び重み間の関係を考察することにより、各重みの範囲を決定することができる。
【0292】
要するに、トレーニング中に学習した制約条件を分析してMAVを見つけるのである。伝統的な感度分析を実施するならば、そのMAVを用いて、各LTG毎の重みの範囲及び重み間の関係を確かめることができる。
【0293】
フィードフォワードNN内にあるLTGをトレーニングするのに用いた従来のトレーニングアルゴリズムは、各入力結合重み毎に単一数値を見つけることに頼っていた。各LTGはn個の入力を有するので、入ってくる結合重みをベクトルとみなすことができる。トレーニング条件を満たす数値範囲があるので、これらの重みの単一数値が独自にトレーニング条件を解明することはない。
【0294】
重みの単一数値を決定するときのトレーニングプロセスは、NNがトレーニング中に学習することになっているデータ内に組み込まれたルールを象徴した重み間の関係を表す平均的な数値を配置するよう試みる。
【0295】
なお、入力ベクトル内のどの特徴がデータセットの分類に対して顕著であるかを逆に明確にする重み間の関係を定義するのは、活性化体積の境界である。そのため、ルール抽出を行なうことができる場合は、LTGの活性化体積の境界を決定し得ることが必須になる。従来のトレーニング方法を用いる場合に、トレーニングアルゴリズムがトレーニング条件を解明する平均値を見つけることに焦点を合わせていると、入力ベクトルのどの次元がデータセットの分類に重要なのかについての情報を失う。NNの挙動を説明するのに、これまで統計的方法及び確率が用いられてきた。しかしながら、統計及び確率のどちらも任意のデータセットを使ってトレーニングしたトレーニング済みNNの平均的な挙動を説明し、特定データセットを学習したNNに関する特定情報については説明しない。NNからのルール抽出に関する要件は、特定データセットが分類されるのを可能にする特定ルールを決定することである。数値上トレーニングされたニューロンの活性化体積の境界を決定することはできないので、トレーニング中に重み値が提供した数値がいかによくトレーニングセット内に内在する関係の平均的な挙動に近づくかを決定することは可能ではない。
【0296】
トレーニングした各LTG毎に正確な活性化体積を確かめることはできるので、MAVがその体積から余分な面を取り除いて、LTGが何を学習したかを定義する可能な限り最小な体積を残すことが分かる。このことから、LTGが、それゆえNNがどのルールをトレーニング中に学習したか決定することができる、従って、このことはMAVを見つけ出すことが正しいことを証明している。
【0297】
(最小活性化体積(MAV)の決定)
NNのトレーニング中に多くの制約条件が学習される。活性化体積の形状は、LTGが学習しているデータセットによって異なる。1以上の次元において非有界であってもよい。
【0298】
図16aは、活性化体積及びトレーニング中に学習した他の制約条件を一般化した図を示す。閾値を使って形成する制約条件は、活性化体積を交差しなければならない、そうでなければ、LTGが制約条件を学習することができない。
【0299】
図16aにおいて、面(a)、(b)、(c)、(d)及び(e)は、異なった入力ベクトルXj及びwによって形成される(超)平面である。MAV160は、図16aにおいて、(a)、(b)及び(c)によって定義される面によって有界になる。面(d)及び(e)は、MAV160を交差しておらず、それゆえ最小体積の面を形成していない。しかしながら、それらが形成する体積はMAV160を交差する。図16bに見られるように、面(d)によって形成された体積162(薄い灰色の陰が付けられた領域)は、MAV160(濃い灰色の領域)を交差している。
【0300】
図16cにおいて、面(d)によって形成された補空間領域164が(濃い灰色の)MAV領域160を交差しておらず、従って補空間領域を学習することができないことが分かる。
【0301】
LTGが学習した制約条件を分析すると、図16cに見るように、制約条件(a)が存在するときは、最小体積を形成しない制約条件の補空間、すなわち図16dにおける(d)を学習することができない。そこで(a)を取り除くと、MAV160を形成する制約条件と(d)の補空間との間に共通部分166が存在するので、(d)の補空間を学習することができる(図16dを参照のこと)。図16dにおいて、面(a)は、本来の場所を示すために図中に残してある。
【0302】
しかしながら、(d)及び(e)が存在するときは、LTGは制約条件(a)の補空間を学習することができる(図16eを参照のこと)。言い換えれば、(a)の補空間と、MAV160を形成する他の制約条件と、LTGがすでに学習した他の制約条件との間に共通部分168が存在することになる。
【0303】
原理:制約条件は、制約条件セットから取り除かれたときに、その補空間が学習されるならば、活性化体積の一面を形成する。
【0304】
証明:ある制約条件が活性化体積上の一面を形成する場合、その制約条件と、xi・wと閾値Tとの関係に制約を加えている活性化体積の面を形成する他の制約条件のうちのいずれとの間にも制約条件が全くないことを意味する。従って、制約条件(活性化体積の面を形成するもの)を取り除いたときに、LTGによって制約条件の補空間が学習されることが可能になる。
【0305】
次に、このことを例として説明する。LTGがトレーニング中に次に記載する制約条件セットを学習した場合:{w1+w2<T、w2≧T}、制約条件w2≧Tを制約条件セットから取り除くと、LTGがその制約条件の補空間W2<Tを学習することができるようになるので、平面w2=TがMAVの一面を形成することが分かる。
【0306】
しかしながら、トレーニング中にLTGが次に記載する制約条件セットを学習した場合:{w1+w2≧T、w2≧T、0<T、w1≧T}、制約条件w1+w2≧Tを制約条件セットから取り除くと、LTGはその代わりに補空間w1+w2<Tを学習することができないので、平面w1+w2=Tは、MAVの面上にはないことが分かる。
【0307】
次に、MAVを見つける方法150の好ましい実施形態を図15を参照して説明する。
【0308】
ブロック151によって表されるとおり、当該LTGの制約条件セットにある各制約条件毎に、少なくとも次に記載する動作を実行する。ブロック152において、制約条件セットにある他の制約条件を変更しないで、各制約条件を一度に1つずつ制約条件セットから取り除く。取り除かれた制約条件は、群に付加されるそれの補空間を有し、続いてブロック153において解答があるかを判断するためにテストされる。解答がある場合は、ブロック154において、最初に制約条件セットから取り除いた制約条件をMAVを定義する群に付加する。元の制約条件の補空間を制約条件セットから取り除き、元の制約条件を群に戻す。次に、ブロック155において解がない場合、ブロック156において制約条件セットにまだ制約条件があると判断されれば、方法150が次の制約条件へと続く。トレーニング中にLTGが学習した制約条件セットにある各制約条件毎に本方法150を繰り返す(ブロック152に戻る)。ブロック156において、制約条件がもうないと判断されれば、方法150はブロック157で終了する。
【0309】
当該LTGが受けたトレーニングのことを考えると、活性化のため最小群に付加された制約条件がMAVを定義する。次に、これらの制約条件を用いて体積を分析して、LTG内にある重み間の関係を見つけ、かつ望ましければ、いつ重みが範囲外になるかを正確に知ることができる感度分析をLTGに対して行なうことができる。
【0310】
MAVを見つける方法150は、NNに限定されるものではないということを認識されたい。MAVを見つける方法150は、最適化のために用いられるCSP及びオペレーションリサーチ型の問題等、制約条件のシステムを用いる他の分野にも有用であると考えられる。従って、本発明に係る本態様は独立しており、本発明に係るDRトレーニングアルゴリズム30を用いた利用に限定されるものではない。
【0311】
(MAVを決定する方法に係る実施例)
LTGを次に記載する制約条件を用いてトレーニングすると仮定する:{0<T,w1+w2<T,w1<T,w2<T,w3<T,w1+w3<T,w2+w3<T,w1+w2+w3>T}。上記の制約条件に対して解答があるということが分かっている。方法150は、ブロック151において開始する。
【0312】
まず最初にブロック152において、0<Tを取り除いて制約条件0≧Tを付加する、その結果、検討中の制約条件セットが{0≧T,w1+w2<T,w1<T,w2<T,w3<T,w1+w3<T,w2+w3<T,w1+w2+w3≧T}になる。
【0313】
ブロック153において、これらの制約条件を、Sicstus prologのルーチン又は任意の他の好適なルーチンを使ってテストすることができる。これらの制約条件に対する解答がブロック153では見つからない、それゆえ0<TがMAV上の一面を形成する制約条件のうちの1つではないということが分かる。ブロック155において、他の制約条件がこの情報全てを包含する、言い換えれば、LTGによって何が学習されたのかについてこの制約条件は新しい情報を全く提供しないので、この制約条件を残っている群から取り除く。
【0314】
ブロック156におけるチェックの後、続いてブロック152において次の制約条件であるw1+w2<Tをテストする。この制約条件を取り除いて、この制約条件の補空間を群に付加する:{w1+w2≧T,w1≧T,w2<T,w3<T,w1+w3<T,w2+w3<T,w1+w2+w3≧T}。この場合、ブロック153で解答が見つかるので、LTGが学習したことに対して元の制約条件は重要であり、制約条件セットに残しておかなければならない(ブロック154)。
【0315】
ブロック152においてテストされる次の制約条件は、w1<Tである。この制約条件を取り除いて、この制約条件の補空間を群に付加する:{w1+w2<T,w1≧T,w2<T,w3<T,w1+w3<T,w2+w3<T,w1+w2+w3≧T}。これらの制約条件をブロック153においてテストすると、解答がないということが分かる。従って、ブロック155において制約条件w1<Tを取り除くことができる。
【0316】
ブロック152においてテストされる次の制約条件は、w2<Tである。この制約条件を取り除いて、この制約条件の補空間を群に付加する:{w1+w2<T,w2≧T,w3<T,w1+w3<T,w2+w3<T,w1+w2+w3≧T}。ブロック153においてこれらの制約条件をテストすると、全く解答が見つからない。従って、ブロック155において制約条件w2<Tを取り除くことができる。
【0317】
ブロック152においてテストされる次の制約条件は、w3<Tである。この制約条件を取り除いて、この制約条件の補空間を群に付加する:{w1+w2<T,w3≧T,w1+w3<T,w2+w3<T,w1+w2+w3≧T}。ブロック153においてこれらの制約条件をテストすると、全く解答が見つからない。従って、ブロック155において制約条件w3<Tを取り除くことができる。
【0318】
ブロック152においてテストされる次の制約条件は、w1+w3<Tである。この制約条件を取り除いて、この制約条件の補空間を群に付加する:{w1+w2<T,w1+w3≧T,w2+w3<T,w1+w2+w3≧T}。この場合、ブロック153においてテストすると解答が見つかる、それゆえLTGが学習したことに対して元の制約条件は重要であり、ブロック154によって表されるように制約条件セットに残しておかなければならない。
【0319】
ブロック152においてテストされる次の制約条件は、w2+w3<Tである。この制約条件を取り除いて、この制約条件の補空間を群に付加する:{w1+w2<T,w1+w3<T,w2+w3≧T,w1+w2+w3≧T}。この場合、ブロック153において解答が見つかる、それゆえLTGが学習したことに対して元の制約条件は重要であり、制約条件セットに残しておかなければならない(ブロック154)。
【0320】
ブロック152においてテストされる次の制約条件は、w1+w2+w3≧Tである。この制約条件を取り除いて、この制約条件の補空間を群に付加する:{w1+w2<T,w1+w3<T,w2+w3<T,w1+w2+w3<T}。この場合、ブロック153において解答が見つかるので、それゆえLTGが学習したことに対して元の制約条件は重要であり、ブロック154によって表されるように、ここでも制約条件セットに残しておかなければならない。
【0321】
従って、方法150によって最小制約条件セットは{w1+w2<T,w1+w3<T,w2+w3<T,w1+w2+w3≧T}であると決定する。
【0322】
制約条件をテストするための順番:本発明に係るMAVを決定する方法150によって制約条件セットにおいて制約条件をテストする順番は重要ではない。制約条件は、テストされる群における任意の場所から選択してもよい。また、MAVを形成する制約条件を最初にテストするよう選択するか否かは無関係である。従って、本発明は、提供した特定の実施例に限定されるものではない。
【0323】
MAV内に包含される情報:MAVは、学習した制約条件に関する全情報を包含している。LTGが何を学習したかについての情報は全てMAVの面内に包含されるので、MAVの面を形成しない制約条件を取り除くことは可能である。制約条件を回復する必要はないが、回復できることを証明する。
【0324】
一実施例:最小活性化体積が{w1+w2<T,w1+w3<T,w2+w3<T,w1+w2+w3>T}からなるとすると、取り除かれる制約条件の群は{0<T,w1<T,w2<T,w3<T}になる。
【0325】
LTGに対する制約条件及びその制約条件の補空間を付加することによって取り除かれた制約条件を回復することができることを証明するのは可能である。このことを示して、LTGとそれゆえにトレーニング中に学習したデータの損失ない圧縮に対してMAVが見つからないときは、全く情報が失われていないことを証明する。
【0326】
他の取り除かれた制約条件を使ってこの制約条件を予めテストしていたならば、その後もこの制約条件の補空間を学習することができたであろう。
【0327】
MAVを使って0<Tをテストする:0<TをMAVに付加することは解答を有する。しかしながら、0≧TをMAVに付加することは解答を有さない。従って、ベクトル0<Tを制約条件セットから取り除く前にはじめにトレーニングしたとおりに、LTGはその後も振る舞い続けるものである。
【0328】
MAVを使ってw1<Tをテストする:w1<TをMAVに付加することは解答を有する。しかしながら、w1≧TをMAVに付加することは解答を有さない。従って、ベクトルw1<Tを制約条件セットから取り除く前にはじめにトレーニングしたとおりに、LTGはその後も振る舞い続けるものである。
【0329】
MAVを使ってw2<Tをテストする:w2<TをMAVに付加することは解答を有する。しかしながら、w2≧TをMAVに付加することは解答を有さない。従って、ベクトルw2<Tを制約条件セットから取り除く前にはじめにトレーニングしたとおりに、LTGはその後も挙動し続けるものである。
【0330】
MAVを使ってw3<Tをテストする:w3<TをMAVを付加することは解答を有する。しかしながら、w3≧TをMAVに付加することは解答を有さない。従って、ベクトルw3<Tを制約条件セットから取り除く前にはじめにトレーニングしたとおりに、LTGはその後も挙動し続けるものである。
【0331】
言い換えると、元の制約条件セット{0<T,w1<T,w2<T,w3<T,w1+w2<T,w1+w3<T,w2+w3<T,w1+w2+w3≧T}及び最小制約条件セット{w1+w2<T,w1+w3<T,w2+w3<T,w1+w2+w3≧T}は、LTGの挙動といった観点からすると等価である。
【0332】
MAVを見つけることの利益は多い。これらの利益から幾つかを挙げると:(a)学習中及びLTG出力を決定するときにテストされる必要のある制約条件の数を潜在的に減らす。(b)望ましければ、トレーニングしたLTGに対して感度分析が行なわれるのを可能にする。(c)重み間の関係が決定されるのを可能にする。
【0333】
クワイン−マクラスキー法(Quine−McCluskey)及び反復コンセンサス法(iterated consensus)等の関数最小化技法は、独立した入力によって作成された入力ベクトルに対して、冗長な入力ベクトルを全て取り除いた(MAVが見つかるときに為されることである)後に用いることができる。
【0334】
(DRトレーニングアルゴリズムの性能評価)
次に、本発明に係るDRトレーニングアルゴリズム30に対して行なった実験の結果を記載する。これらの実験は、本発明に係るDRトレーニングアルゴリズムの性能を評価するものである。
【0335】
本発明に係るDRトレーニングアルゴリズム30の主要な目的の1つは、NNが入力ベクトルの関連出力を生成するのを可能にするデータセット内においてルールを見つけることである。従って、行なった実験の目的は、DRアルゴリズム30が種々のデータタイプを学習し、かつトレーニングしたNNからルールが抽出されるのを可能にするアルゴリズムであることを証明することであった。
【0336】
これらの実験において従った標準的な手順は:(a)幾らかのデータ作成があった。(b)そのデータを用いてNNをトレーニングした。(c)NNをテストして、NNをトレーニングした入力ベクトルに関連した出力を生成した後、トレーニングプロセスの間は見えなかった入力ベクトルに対する出力を正確に生成することができるかを決定した。(d)テストセットからの正確な入力ベクトルについてパーセンテージに換算して、バックプロパゲーションを用いてトレーニングしたNNと本発明に係るDRトレーニングアルゴリズム30を使ってトレーニングしたNNとの間で比較した。NNをトレーニングする前に、テストをするためのテストセットを用意した。続いて、このパーセンテージを他の学習アルゴリズムの利用可能な結果と比較した。(e)NNをトレーニングするのに必要とされるトレーニング入力ベクトルにさらす回数を記録した。
【0337】
DRによってデータセットに対する学習時間を定量化することの外に、扱った別の課題は、トレーニング中にNNによって学習されたルールの確定である。本発明のさらなる態様に従って、先に記載した好ましい方法を用いてトレーニングしたNNに対して感度分析を行なうことによってルールを抽出した。これがNNがトレーニングされるデータセットに関する情報を提供した。次に、本発明に係るDRトレーニングアルゴリズム30の性能を評価するのに用いたデータセットの種類について解説する。
【0338】
(テストドメイン)
フィードフォワードNNは、データを分類するため、又は関数近似を行なうためのいずれかに用いることができる。入力空間内においてデータを分類する境界をモデル化することは、関数近似に相当するので、これら2つの特性は、同じ挙動を示す態様である。フィードフォワードNNを用いることによって利益を得ることができる潜在的な適用は多くあるが、フィードフォワードNNを実際に用いた適用は、関数近似の特性又はデータ分類の特性のいずれかを活用している。
【0339】
DRトレーニングアルゴリズム30の挙動を評価するため、(a)関数近似、及び(b)データ分類を実行するデータセットを用いた。
【0340】
関数近似を実行するDRトレーニングアルゴリズム30の能力を評価するために選んだデータセットは、「2つの螺旋を使った問題(Two−Spiral Problem)」及び分類については「ドイツの信用貸付問題(German Credit Problem)」である。どちらのデータセットもフィードフォワードNNをテストするための標準的な問題である。
【0341】
関数近似のためによく用いられている一データセットが「2つの螺旋を使った問題」である。このデータセット(図17参照)は、共通したスタート点だが互いに180度のオフセットを有する2つの螺旋を含むため、解決が極めて困難であると考えられている。従って、容易に線形分離可能ではない。一般に、線形分離可能性を用いて、一ニューロンがクラスを分割し、また複雑なデータセットの場合には、複数のニューロンがクラスを分割する。「2つの螺旋を使った問題」における螺旋を記述するのにデカルト座標を用いる場合は、データセットは、容易に線形分離可能ではない。
【0342】
「ドイツの信用貸付問題」は、ドイツの金融機関の債務者1000人の記録を有する。この記録は、債務者の年齢、居住状態、信用履歴、会社員の場合はローンの目的等、たくさんの特徴を包含し、記録の分類は、債務者が良好な信用リスクであるかを明示している。トレーニングしたNNの目的は、ローンを求めている顧客を承認してよいか否かを予測することにある。また、金融機関は、誤りが生じた場合の誤りに対する優先事項も明示している。ある人物を誤って良好な信用リスクとするよりむしろある人物を誤って悪い信用リスクとする方がよいと考える。
【0343】
これらのデータセットについての正式な定義は以下のとおりである。
データセット1:2つの螺旋を使った問題−このデータセットを最初に提案したのは、MITRE社(MITRE Corporation)のアレクシス・ウィーランド(Alexis Wieland)である。このデータセットは、組み合わさった2つの螺旋に属する194個の入力ベクトルを有し、これらのデータ点の半分が出力−1を生成して、残りの半分が出力1を生成すると定義されている。各スパイラルは3つの段階を有し、各螺旋を180度に分ける。入力ベクトルは、各データ点の位置についての浮動小数点デカルト座標を表す2次元を有する。
【0344】
データセット2:ドイツの信用貸付問題−ハンブルグ大学の教授であるハンス・ホフマン博士によってこのデータセットが提供された。貸付を申請した顧客1000人のサンプルを有する。各サンプルは、貸付を申請した人の年齢、その人の信用履歴、及び貸付の申請に関係すると考えられた他の属性等の24個の正の整数属性からなる入力ベクトルである。NNの出力が顧客を良好な信用リスク又は悪い信用リスクとして分類する。
【0345】
データセットの選択基準は、DR学習が(a)バックプロパゲーション(backpropagation)と同等によい、言い換えれば、バックプロパゲーションが学習することができるデータセットを学習することができること、及び(b)トレーニングしたNNからルールが抽出させられるという点でバックプロパゲーションより優れていること、を証明することであった。
【0346】
「ドイツの信用貸付問題」のデータセットは、バックプロパゲーションによって学習されるのによく適しているので選択され、また「2つの螺旋を使った問題」は、バックプロパゲーションでは解決が困難であると考えられたために選択された。
【0347】
(データ準備)
はじめに、本発明のさらなる態様に従って、これらの実験においてDRトレーニングアルゴリズムを使ってNNをトレーニングするのに用いられるであろう形式へとデータを作成するのに用いる好ましい方法について解説する。データを作成するときの一目的は、依然としてそのデータを正確に符号化するのと同時に、NNへの入力数を最小化することにある。NNによって入力ベクトルが学習される度に、制約条件をテストしてNNによって入力ベクトルが学習されるかを決定しなければならないことを考えると、NNへの入力数を最小化するということは、言い換えれば、より速いトレーニング時間になるということである。次に、解説するようなデータ変換方法は、本発明に係るDRトレーニングアルゴリズム30を用いた利用に限定されるものではないことを認識されたい。これらのデータ変換方法は、他の既知のトレーニングアルゴリズムに有用であり、それ自体を本発明に係る独立した態様とみなす。
【0348】
(バイナリデータ)
先に解説したように、本発明に係るDRトレーニングアルゴリズムは、好ましくは、{0、1}nの形式(nは、NNへの入力数である)である2進数の入力ベクトルによってトレーニングされて、2進数の出力を生成する。入力ベクトルは、求めた出力のバイナリ値に基づいて望ましい出力を生成する制約条件へと変換される。データがバイナリである場合は、学習されるようそのデータを修正する必要はない。しかしながら、たいていの場合にデータはバイナリ形式ではなく、従って、好ましくは、本発明に係るアルゴリズム30によって学習される前にバイナリ形式に変換される。
【0349】
(整数)
入力ベクトル内の各次元は、その入力についての何らかの属性を表す。属性の1つが整数である場合、その整数は、好ましくはDRトレーニングアルゴリズムによって学習されるバイナリに変換される。次に、本発明に係るDRトレーニングアルゴリズム30がいかに整数を学習することができるかに係る好ましい実施形態について解説する。
【0350】
初めに、バイナリでの属性表現に必要とされるビット数を決定することが必要である。そうするため、属性が取ることのできる整数値の範囲を、範囲=(最大−最小)+1として算出する。続いて、その範囲をバイナリで符号化するため、必要とされるビット数を決定する。
【0351】
これが属性を符号化するために必要とされるビット数を決定する一簡便な手法であって、次の(a)又は(b)かについて考慮していない。(a)属性が負の整数を有する。負の整数がある場合、2の補数を用いて数字を表すことが可能である。ただし、その属性の正の値を表すのに用いられるビット数に対して付加されたビットを使用しなければならない。別の方法として、負の整数を使用しないようにその範囲を調整することができ、(b)属性は範囲外になってもよい。従って、個人の年齢を備えた属性があってもよい。入力ベクトルの母集団において、単に18歳から84歳の年齢があるだけでもよい。ただし、トレーニングしたNNに85歳の属性を与えることが必要になる場合がある。この場合、40〜59歳、60歳以上といったサブ範囲の見地からデータを符号化することが可能であってもよい。
【0352】
ドイツの信用貸付データセットには、考慮すべき負の整数が全くない。なお、顧客の年齢属性は、18〜75歳の範囲に及ぶ。その範囲にある正確な年齢を符号化するには、6ビットを必要とする。なお、フィールドを符号化するのに2ビットだけが用いられるのを可能にする年齢の範囲、例えば、18〜25歳、25〜40歳、40〜60歳、及び60歳<が、顧客の年齢を符号化するためにさらに有用である場合があるということが考えられる。こうすることで、LTGへの入力数を最小化し、かつなおもデータフィールド内にある情報の大部分を保つことができる。例えば、ある人物が銀行のローンを支払う能力があるかを決定しようとしている場合、37歳といった特定の年齢の人物の方が38歳である場合よりもローンを支払う見込みがあるとは考えにくい。ただし、60歳を超える人々の方が40歳である人々よりも働いている可能性は低いことを考えれば、年齢の範囲が重要な役割を担なうことは可能であろう。
【0353】
属性の値を符号化するために必要とされるビット数は、各属性毎に個別に検討する必要がある。属性が取ることのできるある範囲の整数値を符号化するのに必要とされるビット数が確定すると、各ビット位置は、NNへの個別の入力とみなすことができる。従って、単一の属性がNNへの複数の入力になってもよい。
【0354】
このプロセスは、入力及び出力のどちらにも用いられる。
【0355】
(浮動小数点データ)
NNがトレーニングされることになっているほとんどのデータが浮動小数点データであるため、NNをトレーニングしてこの種のデータを学習することができることは有用である。従って、浮動少数点データをバイナリデータに変換できることは有用であり、かつ好ましい。
【0356】
整数である属性と同様に、浮動小数点をバイナリで表すには多くのビットを割り当てなければならない。あらためて、属性が取ることのできる値の範囲、つまり属性が範囲外の値を取ることができるか、及び属性が負の値を取ることができるかについて検討する。なお、属性のデータ点及び属性を表すときに許容できる誤差の程度を表すのにどれだけの精度が必要とされるかも考慮しなければならない。
【0357】
このプロセスは、入力及び出力のどちらにも用いられる。
【0358】
次に、本発明に係るDRトレーニングアルゴリズム30がいかに浮動小数点データを学習することができるかに係る好ましい実施形態を記載する。
【0359】
「2つの螺旋を使った問題(Two−Spiral Problem)」の場合、学習されるデータセットは、(x,y)形式(x,y∈R)のデカルト座標であり、NNの出力は、データ点がどの螺旋に属するかを示す。
【0360】
アルキメデスの螺旋の極座標方程式から2クラスのデータ、r=θ及びr=−θを取り出す。各螺旋上には97個のデータ点があり、かつ各螺旋は3段階を有する、これにより点がおよそ7.4度離れることになる。続いて、問題の明細によって求められるとおりにその点をデカルト座標に変換する。
【0361】
データ点において充分な精度があることを保証するため、データ点は、好ましくは小数点以下第3位において四捨五入する。続いて、データ点に100を掛けた後、バイナリに変換する。負の浮動小数点数の場合は、その数の2の補数を用いる。入力ベクトルを符号化できるように、データ点のデカルト座標(x,y)である属性の各一毎に12個の2進数字を用いる。NNへの2個の入力を有する代わりに、24ビットある。座標を12個のバイナリ位置に限定することが、入力空間が充分な精度をもってアクセス可能であることを保証する。
【0362】
螺旋からのサンプルデータ点を考察すると、極座標におけるr=−θは(−π/2、π/2)である。この点をデカルト座標に変換すると、点は(0,−1.5708)になる。これらの値に100を掛けて最も近い整数に丸めると(0,−157)になる。続いて、これらの値を最終的に12桁の2進数(000000000000,111101100011)に変換する。NNに加えられる入力ベクトルは、000000000000111101100011になる。
【0363】
バイナリデータ及び浮動小数点データが変換されたところで、記号データ(symbolic data)について解説する。
【0364】
(記号データ)
記号データ(symbolic data)は非数値データであり、演算目的においてバイナリでも浮動小数点でもない。そのデータが有する幾つかの非定量的属性を指してもよい。次に、本発明に係るDRトレーニングアルゴリズム30がどのようにして記号データを学習することができるかに係る好ましい実施形態を記載する。
【0365】
性別等の属性の場合、属性は2つの可能な値を有するがゆえに、例えば、女性は1かつ男性は0と、単一のバイナリ入力を割り当ててデータを符号化することができる。また、他の記号属性をバイナリ値に与えてもよい。色という記号属性に係る若干より複雑な実施例は、緑、青及び黄色の3つの値を有する。この属性の値を符号化するのに2ビットを割り当てることが可能である。例えば、このフィールドを符号化するのに2ビットを割り当てて、01−緑、10−青、及び11−黄色とバイナリ値を任意に割り当てることができる。01−青、00−緑及び10−黄色等、代わりに使用できたであろう組み合わせが他にも多く考えられるので、これは、多くの可能な符号技法のうちの1つにすぎないことを理解されたい。2ビットの代わりに3ビットといったように他の符号化戦略を代わりに用いてもよい。あるいは、この場合は色である属性に対して、何個の値がテストされているかに応じてビット数が異なってもよい。
【0366】
データ符号化戦略を選択する際の主な検討事項は、分類されるデータ及びデータから求められる分類によって決まる。
【0367】
例えば、NNが学習することになっているデータ属性の1つが信用履歴であり、その値が「不充分」、「平均」、「良好」及び「優秀」である場合、トレーニングしたNNは、良好な信用リスクである顧客をそうでない顧客から分離することになる。良好な信用履歴を有する顧客とその顧客の潜在的なローン返済能力との間には相関関係があると仮定することができる。
【0368】
その属性に割り当てることができる記号値は4個あるので、4個全ての値を符号化するのに2ビットを有することが必要になるだけである。データからどんな出力が求められるかについては、値を割り当てるときに注意を払わなければならない。例えば、「不充分」を01、「平均」を10、「良好」を11、及び「優秀」を00として符号化する場合、「良好」及び「優秀」が他の「不充分」及び「平均」の値から分離されることになるなら、そのデータは、入力空間においてXORを形成し、それゆえ、線形分離可能ではなくなる。本発明に係るDRトレーニングアルゴリズム30は、XORに相当するため、これを学習することができるが、そのデータを学習するには付加的なLTGが必要とされる。このことを「記号上の対立(symbolic conflict)」を符号化すると呼ぶことができる。入力空間において値が線形分離可能であるように、異なって符号化することによって記号上の対立を回避することができる。例えば、「良好」を11及び「優秀」を10、及び「不充分」を00及び「平均」を01として符号化することがこの問題を回避する。そうすると、「良好」/「優秀」は「不充分」/「平均」から線形分離可能になる。データを符号化する最良の方法は、符号化されるデータによって決まるので、結果として、各属性を個別に検討しなければならない。
【0369】
なお、任意の顧客が良好な信用リスクであるかを予測することにも影響を与える信用履歴の外に付加的な属性の関係があると仮定されるので、これは簡単化である。
【0370】
出力と属性値との間に明らかなつながりが全くなくてもよいのと同時に、記号上の対立を回避することが必ずしも可能でなくてもよい。本発明に係るDRトレーニングアルゴリズム30は、NN内へ求められるとおりにLTGを付加することができるので、記号上の対立(symbolic conflicts)を学習することができる。
【0371】
非バイナリデータを作成する方法が本発明に係るDRトレーニングアルゴリズム30によって学習されることを考察したところで、次に、実験手順について検討する。
【0372】
(実験手順)
上述したドメインの各一毎に同じ実験を行なった。データセットを使ってNNをトレーニングして、そのデータセットにさらした回数を記録した。トレーニング後にNNが、見えないデータをいかによく一般化できるようになったかといった見地からNNの性能を評価して、その結果を同じデータを使ってトレーニングしたNNのすでに公開されている結果と比較した。
【0373】
トレーニングが完了すると、NNをテストして、NNがトレーニングセットに対して正確な出力を再現し、かつテストセットのある部分を分類することができることを保証した。
【0374】
それぞれのNNに対してテストしたデータセットの概要は、上述したとおりである。先に定義した方法と同じ又は類似した好ましい方法を用いてデータセットをバイナリに変換した。
【0375】
(実験結果)
次に、2つのデータセットのテスト結果について検討する。トレーニングからの結果及びテスト段階からの結果と、重要な結果が2セットある。トレーニング段階においては、データセットを学習するのに何個のトレーニングパスが必要とされたかが重要である。テスト段階においては、何個の見えない入力ベクトルが上手く分類されたかが重要である。
【0376】
(2つの螺旋を使った問題(Two−Spiral Problem))
既知のアルゴリズムについて公開されている結果:Weilandは、150000〜200000個のエポックにおいてバックプロパゲーションの修正版を用いてNNをトレーニングした。しかし、標準的なバックプロパゲーションでは解答が全く見つからなかった。しかしながら、Lang及びWitbrockは、2−5−5−5−1のアーキテクチャ、2個の入力、それぞれ5個の隠れユニットからなる3個の中間層、及び1個の出力ユニットを備えたNNをトレーニングした結果、そのNNは、標準的なバックプロパゲーションを用いて20000個のエポックにおいてデータセットを学習した。なお、彼らのNNは、それぞれ「近道」結合を用いてそれより前にある全層内の各ユニットから直接入力を受け取る中間層ユニットを有した。
【0377】
(本発明に係るDRトレーニングアルゴリズムの実験結果)
図17に、NNがトレーニングされるデータセット170を示す。各螺旋は97個のデータ点を有する。実験の結果、トレーニングしたNNは24個の入力と5個の隠れLTGと1個の出力LTGを有する。あらゆる場合にANDを用いてLTGを結合した。NNが学習したのは、単一エポックにおいてであった。
【0378】
(解説)
図18に、生成されたNN180の概略図を示す。本発明に係るDRトレーニングアルゴリズム30を使って単一パスにおいてNN180をトレーニングして、未知の入力ベクトルのデフォルトは1を出力することとした。DR学習の結果得られたNN180は、バックプロパゲーションに必要とされるものより標準的で単純な構造を有する。図18に見られるように、中間層182内にあるLTG(LTG11,LTG12,LTG13,LTG14,及びLTG15)は、出力層184内のLTG T21によってあらゆる場合にANDを使って結合された。NN180がトレーニングされたデータセット170(図17)は、それぞれ3つの段階からなる2つの螺旋を有する。各螺旋は、97個のデータ点を有する。NN180は、正確に100%のトレーニングベクトルをリコールすることができた。
【0379】
各螺旋毎に80個の入力ベクトルを使ってNN180をテストしたところ、トレーニングセットからはデータ点が全くなかった。1を出力することになっていた螺旋からの入力ベクトルについては、21/80個の入力ベクトルが間違って分類された。これは26%の誤り率となる。
【0380】
0を出力するようにトレーニングされた螺旋からの80個の入力ベクトルのうち、35/80個の入力ベクトルが間違って分類された。これは43%の誤り率になる。この結果が非常に高くなった理由は、入力ベクトルの出力が不明であったLTGについて、デフォルトの出力が1だったためである。
【0381】
どちらの螺旋も平均誤り率は34.5%である。トレーニングセットに対して訂正出力を98%予測することができたであろう場合に、NN180は、トレーニングされたとみなされたので、2つの螺旋を使った問題について比較できる誤り率を見つ出すことは困難であった。また、1は>.5であって、0は<.5であるとしてもよいので、カスケード相関アーキテクチャ(Cascade−Correlation Architecture、CAS)について、誤り率を見つけ出すことは困難であった。Tengらは、ニューロンが>.8であれば有効であるとし、そうでなければ活性化されていないとした。Fuら、Tengら、及びFahlmanらにとっていっそう重要なことは、中間層内にあるユニットの数及びNNをトレーニングするのに必要とされたエポック数又は時間であった。あらゆる場合に、本発明に係るDRトレーニングアルゴリズム30は、100%の正確さをもってデータセットを学習するのに最も少ない隠れユニット数を必要とし、かつたった1エポックだけを必要とした。DRトレーニングアルゴリズム30は、5個の隠れニューロンを必要とし、CASは、平均して12個の隠れニューロン及び1700個のエポック、2082+478個のエポック21.1+2.3個のサブNN(1個以上のニューロンである)、並びに10個の隠れユニットを必要とし、最低1073.45個のCPU内において学習した。本発明に係るDRトレーニングアルゴリズムが最後の入力ベクトルを学習するのにかかった時間及びそれゆえに「2つの螺旋の問題」に対して任意の他の入力ベクトルを学習するのにかかった最長時間は、15分54秒であった。これは、制約充足ライブラリの使用のためであり、182個の中間層内に最後の入力ベクトルを学習するLTGが5個あった。入力ベクトルをテストする平均時間は約30分であった。バックプロパゲーションを使ってトレーニングしたNNは、固定サイズのNNを必要とするため、データセットを学習する時間は、バックプロパゲーションを使うよりも著しく短くなる。
【0382】
誤り率は、データセットの内側についてより小さかった。誤り率は、各螺旋毎に最初の1.5段階内において23%及び33%だった。誤差の増加は、データセットの内側にあるデータ点をトレーニングするより高い密度に起因するものと考えられる。
【0383】
なお、r=θを有する螺旋を予測するのによりよい成功を有した。図19に、テストデータの結果を示す。
【0384】
「□」からなる曲線上の「+」は、正確に識別された入力ベクトルであって、「○」からなる曲線上の「×」もまた正確に識別された入力ベクトルであることを示す。他では、それらは間違って識別される。ここで、NN180の一般化能力を高めるのに付加的なトレーニングを与えることを必要とするのは入力空間のどの部分であるかが分かる。フィードフォワードNNをトレーニングするには伝統的にとても困難なデータセットであることに留意されたい。
【0385】
最後の入力ベクトルを除いて、どの入力ベクトルに対しても、NN180の場合、中間層182内にある1つ以上のLTGについて不完全な学習があった。ほとんどの場合、LTG15において不完全な学習があった。
【0386】
生成されたNN180は、バックプロパゲーションを用いたときに生成されるNNよりより複雑ではない。さらには、それは困難なデータセットである。入力ベクトル数を増やしてトレーニングすることによって結果を改善することができたと考えられる。
【0387】
従って、本発明に係るDRトレーニングアルゴリズム30は、その一般化能力に関して、フィードフォワードNNをトレーニングする他の手法と同様によく動作することができる。DRトレーニングアルゴリズム30は、類似した構造をトレーニングする異なったトレーニング方法である。
【0388】
次に、NN180内にあるLTGの各一についてMAVを考察して、LTGの各一が何を学習したかを明らかにする。
【0389】
(「2つの螺旋を使った問題」におけるLTGのMAV決定)
LTG11の場合(閾値T11を有する)図15の方法150を用いてMAVを見つけることで、制約条件数を194個から29個に減らした。これは85.1%の減少又は圧縮である。このLTGによって学習された他の入力ベクトルは全て、先に解説したように、LTGのMAVを形成する残された点から回復することができる。この重み空間は24次元を有する。
【0390】
制約条件のうち、13個の入力ベクトルがxi・w11>−T11を形成し、残りの16個の制約条件がxi・w11<T11を形成した。
【0391】
LTGに活性化する重み空間内の領域の面を形成する平面を調べることによってLTGが何を学習したかをグラフにすることができる。これらの平面をxi・w11として表す。重み空間は入力空間の変形である。LTGが何を学習したかを明らかにすることができるように、MAV内の制約条件をそれらの制約条件が形成された元の入力ベクトルに変換し直す。続いて、元の入力ベクトルがどうやって形成されたかに係るプロセスを10進法から2進法へと逆にすることができる。これをどのようにはじめるかについての解説は、先の、浮動小数点数を作成する方法を解説したところに記載してある。次に、中間層182内にある各LTGが本発明に係る方法を用いて何を学習したかを説明する。
【0392】
図20aにおいて、中間層182内にある最初のLTGであるLTG11が何を学習したかが分かる。「○」及び「□」は、元の入力ベクトルであることを示す。「□」はr=θの螺旋を表し、「○」はr=−θの螺旋を表している。「+」は、LTG11のMAVを見つけた後に残った入力ベクトルであることを示し、このデータセットを分類することに対して顕著な入力ベクトルを表している。「×」は、xi・w11<T11を用いて学習された制約条件であることを示す。「+」は、xi・w11>T11を用いて学習された制約条件であることを示す。後続のLTGについても、この凡例に従う。以上がこのLTG11が正確に学習したことである。また、入力空間ではなく重み空間内において規定した体積の面としてデータを符号化することによってデータセットが学習されることに留意する価値がある。
【0393】
伝統的に、学習しているクラスを線形分離するには入力空間を分析する。重み空間は24次元空間なので、重み空間を調べることは不可能である。このことは、中間層182内にある他のLTGについても同じである。なお、当該LTGであるLTG11は、データセット全体を学習することはできない。次に、LTG12が何を学習したかを検討する。
【0394】
LTG12の場合、MAVを見つけることで制約条件数を194個から34個に減らした。これは82.5%の減少又は圧縮である。xi・w12<T12を形成する16個を除いた全ての制約条件がxi・w12≧T12を形成する制約条件を生成した。図20bにおいて、中間層182内にある第2のLTGであるLTG12が何を学習したかが分かる。
【0395】
図20aの場合と同じ凡例を用いると、LTG12が種々の入力ベクトルを学習したことが分かる。「□」の螺旋r=θ上において、学習した入力ベクトルの全てがそのクラス、すなわちxi・w12≧T12であることが分かるなお、このクラスでもある多くの入力ベクトルが「○」の螺旋r=−θ上にある。その理由は、当該LTGであるLTG12がこのデータセット内にある全てを学習することができなかったためである。また、中間層182出力内にあるLTGがLTG21である出力LTGによってANDを使って結合される。このことは、当該LTGであるLTG12がそれらの入力ベクトルに対して0の代わりに1という間違った結果を生成する場合に、当該層内にある別の1個のLTGだけがそれらの入力ベクトルを学習することができ、かつ0を生成することを意味している。次に、LTG13が何を学習したかを検討する。
【0396】
LTG13の場合、MAVを見つけることで制約条件数を194個から51個に減らした。これは73.7%の制約条件の減少である。xi・w13<T13を形成する10個を除いた全ての制約条件がxi・w13<T13の形式を生成した。図20cにおいて、中間層182の第3のLTGであるLTG13が何を学習したかが分かる。
【0397】
LTG14の場合、MAVを見つけることで制約条件数を194個から81個に減らした。これは58%の減少又は圧縮である。xi・w14<T14を形成する6個の制約条件を除いた全ての制約条件がxi・w14≧T14を形成する制約条件を生成した。図20dにおいて、中間層182内にある第4のLTGであるLTG14が何を学習したかが分かる。
【0398】
次に、LTG15が何を学習したかを検討する。LTG15の場合、MAVを見つけることで制約条件数を194個から159個に減らした。これは18%の減少又は圧縮である。LTGによって学習された制約条件全てが、1個の出力ベクトルを除いて、xi・w15>T15を形成する制約条件を生成した。図20eにおいて、中間層182内にあるLTGのうち最後に残ったLTG15が何を学習したかが分かる。
【0399】
当該LTGであるLTG15の主な目的は、「×」によって示された入力ベクトルを学習することである。また、当該LTGは、r=θ螺旋に「□」によって示されるほど多くの点を有する。
【0400】
中間層182内にあるLTGについては、2つの螺旋に対して異なった曲線部分を学習したことが分かる。NN180は100%の正確さをもって教えられたことを再現することができたのを思い出すことが大切である。
【0401】
LTG21又はNN180の出力LTGに対してもMAVが配置された。それは、その入力結合全てとの間にANDを形成したため、32個の制約条件があった。これでMAV内における制約条件が6個に減った。これは81%の減少又は圧縮である。
【0402】
MAVを定義するものと判明した入力ベクトルに関数最小化を適用することはできない。その理由は、データが依存しているためであり、言い換えると、入力ベクトルが単一数を定義し、それゆえ関数最小化が意味のない情報を与えることになるからである。
【0403】
(ドイツの信用貸付問題(German Credit Problem))このデータセットは、それに関連したコストマトリックスを有する。コストマトリックスを表3に記載する。縦の行が予測したクラスを示し、横の列が実際のクラスを示す。顧客が良好であると予測されて、かつローン返済にあたり良好である場合、また同様に顧客が不適当な信用リスクであると予測されて、かつそうであると証明される場合には損失はない。ただし、ある人物が実施には良好であるときに不適当な信用リスクであると予測される場合には、貸付機関の利益を損なうことになる。しかし、顧客が実際には不適当な信用リスクであるときに良好な信用リスクであると予測されるケースの方がいっそう悪い。NNのコストを算出するときに考慮する必要がある誤りのクラスが2つある。
【0404】
【表3】
ドイツの信用貸付問題データセットのコストマトリックス
【0405】
既知のアルゴリズムについて公開されている結果:バックプロパゲーションの誤り率を表4に記載する。バックプロパゲーションがコストマトリックスに対して求められるとおりには誤りクラスを識別しないため、これらの数値にはコストマトリックスが含まれない。
【0406】
【表4】
バックプロパゲーションの誤り率
【0407】
このデータセットと併せてバックプロパゲーションを用いてNNをトレーニングするのに必要とされる時間及びテストするのに必要とされる時間を表5に記載する。
【0408】
【表5】
バックプロパゲーションのトレーニング時間
【0409】
(本発明に係るDRトレーニングアルゴリズムの実験結果)
このデータセットを使ってトレーニングすると、1個の出力と2個の中間層LTGを有するNNを生成した。中間層のLTGは、OR結合によって結合された。データセット内には1000個の入力ベクトルがある。1000個のベクトルからなるデータセットから100個の入力ベクトルからなるテストセットを任意に選択した。トレーニング後に生成されたNN190の概略図を図21に示す。
【0410】
テストを行なうために取って置いた100個の入力ベクトルの中から、出力に対して0を生成する89個ある入力ベクトルのうち間違って識別された入力ベクトルは4個だった。従って、85個の入力ベクトルが正しく識別された。テストセット内の出力に対して1を生成する11個の入力ベクトルのうち、正しく識別された入力ベクトルは9個だった。従って、2個の入力ベクトルが間違って識別された。これらの結果を表6にまとめる。
【0411】
【表6】
ドイツ信用問題の結果まとめ
【0412】
1を生成する入力ベクトルに対する誤り率が18%と幾分高いことが分かった。0を生成する入力ベクトルに対する誤り率は4.4%である。誤りは全体で6%である。付加的なトレーニングは、どちらの種類の出力を備えた入力ベクトルに対しても誤り率を低くするものと考えられる。NN190は、学習したことを100%の正確さをもって再現することができた。
【0413】
誤りの結果は全てバックプロパゲーションよりも良好であり、バックプロパゲーションでは0.446のトレーニング誤り及び0.772のテスト誤りがあった。
【0414】
この実験は、本発明に係るDRトレーニングアルゴリズムが提供する、バックプロパゲーション等の既知のトレーニングアルゴリズムに勝る重要な利点を明らかにしている。重みは、それらが学習しようとしているデータセットに固有のルールを符号化しようと試みる平均値を表すので、バックプロパゲーションの場合、誤りを0にすることはできない。バックプロパゲーションを用いるときの各知覚における単一重み値は、それが各入力ベクトル毎に正確な出力を生成するように学習するのを可能にするであろう各入力ベクトル毎に必要とされる重み値を正確に表すことができない。それは各入力ベクトル毎に正確な出力を可能にするので、これが、重み空間内においてその領域を見つけることの利益のうちの1つである。
【0415】
NN190を合計268個の入力ベクトルを使ってトレーニングしたところ、これらの入力ベクトルのうち168個が1を生成し、残りの100個の入力ベクトルが0を生成した。これらの入力ベクトルは、テストに用いられず、残っていた900個の入力ベクトルから任意に選択したものであった。トレーニングするのに、もっと多い入力ベクトルを用いることもできたであろう。
【0416】
トレーニングに利用可能なデータセットのうち<1/3を使ってNN190をトレーニングしたところ、バックプロパゲーションより良好な誤り率を生成した。
【0417】
これらの実験の結果は、本発明に係るDRトレーニングアルゴリズムが実際のデータセットに用いられるものであるならば、より高速な制約条件テスト方法が好ましいことを示している。
【0418】
また、実験の結果は、すでに学習した入力ベクトルの数に応じて、各入力ベクトルを学習するのに必要とされる時間量が増加したことも示した。このことを改善する方法は少なくとも2つあり、それらは、(1)平行プロセッサを用いること、又は(2)より効率のよい制約条件テストアルゴリズムを用いることである。多くのメモリを備えた最新式のプロセッサは、DRトレーニングアルゴリズム30の動作を向上させることができるとも考えられている。
【0419】
テスト用に予約してあった100個の入力ベクトルのうち、11個の入力ベクトルが出力1を生成し、残りの89個の入力ベクトルが出力として0を生成する。データセット全体において1を生成する入力ベクトルは相対的に少ない。なお、出力が何であるべきかが分からないときは0を出力する傾向があるので、NN190が上手く1を出力する方法を学習するように、1を出力する相対的により多くの入力ベクトルを使ってトレーニングすることが決まった。このように1よりむしろ0を出力する傾向が選択されていた訳は、偽陰性の偽陽性より優先される比は5:1であると指定されているためである。このことは、偽陰性対偽陽性5:1の分類誤りを優先させることを示すコストマトリックスに基づいている。言い換えれば、顧客が実際には不適当であるのに良好な信用リスクであるとして誤って識別するよりもむしろ、顧客が実際には良好な信用リスクであるときに不適当な信用リスクとして分類することを優先させることになる。
【0420】
従って、表3におけるコストマトリックスを適用すると、コストは14である。NNをテストするとき平均誤りだけが回収されるので、従来のNNトレーニングアルゴリズムを使ってコストを決定することは可能ではない。
【0421】
制約条件をテストするライブラリ関数の結果として、トレーニング時間がバックプロパゲーションの場合より長くなったが、本発明に係るDRトレーニングアルゴリズム30は、入力ベクトルを学習するのにデータセットのうち1パスのみ、及びNN190をトレーニングするのに利用可能なデータセットのうち1/3のみを必要とした。
【0422】
(「ドイツの信用貸付問題」におけるLTGのMAV決定)
図15のMAVを決定するための方法150を用いてNN190内にあるLTGに対してMAVを配置した。層内にある最後のLTG又は現在の出力LTGの場合、トレーニング中にLTGのMAVを見つけることは、NN190が学習したことを忘れるであろうことを意味する可能性があるのが分かった。これは、先に、NN内にLTGを付加するときのロジックを実装する方法を解説したところで記載したとおり、新しく付加したLTGを層内にコピーするときに制約条件が修正されるためである。
【0423】
トレーニング中に形成された268個の制約条件のうち、LTG11のMAVを見つけた後は45個が残っていた。これは、LTGのために重み空間を定義する制約条件の83%の減少である。これらの制約条件のうち、18個がxi・w11≧T11の形式になる制約条件を生成した。
【0424】
トレーニング中に形成された制約条件を考察する際、LTGが何を学習したかは(xi・w11≧T11 OR xi+1・w11>T11 OR...OR xi+n・w11≧T11)AND NOT(xj・w11<T11)AND NOT(xj+1・w11<T11)AND NOT...の形式において読み取ることができる。
【0425】
それ自体を論理分析に与えるのがこの形式においてであるので、このデータセットの分類にどの変数が無関係であるかを推論することができる。
【0426】
一般によくあるように、入力は独立して存在することを考えると、クワイン−マクラスキー法(Quine−McCluskey)又は反復コンセンサス法(iterated consensus)等の関数最小化技法の利用は、特に重要である変数を見つける。MAVを見つけることによって余分な入力ベクトルの全てを取り除くことができるので、関数最小化技法を用いるというタスクをはるかに容易にし、起こり得る指数的な複雑さを抑えるのに役立つ。
【0427】
なお、元のデータセット内にある幾つかの変数が複数のビット位置に変換されたので、それらの制約条件が何を表しているかを知ることはいっそう興味深い。
【0428】
第2のLTGであるLTG12を中間層192及び新しい出力LTGに付加させたのは、入力ベクトル[100011101010100000100011001101010001010001]→lであった。ベクトルをフィールドに分割すると[10 00 111 0101 01 000 001 00 011 00 11 01 01 00 01 0 10 0 0 1].このベクトルを翻訳すると「この顧客は預金口座を有してない、ローンは<12ヶ月でなければならない、指定期間内に現在あるクレジットの全てを返済した、家具/設備にローンを希望、1000〜5000DMの間で借り入れを希望、顧客の就労期間は<1年、自由に使える所得のパーセンテージは<1%、既婚女性/離婚、保証人なし、同一住所に4年以上居住している、この顧客は幾らかの貯金又は生命保険を有する、年齢が25〜40歳の間の女性である、家屋を所有している、当行において他にクレジットなし、熟練労働者である、扶養義務のある人物がいない、その女性名義の電話がない、及び外国人労働者である」となる。
【0429】
トレーニング中に形成された268個の制約条件のうち、LTG12のMAVを見つけた後は139個が残った。これは、LTGのために重み空間を定義する制約条件の48%の減少である。これらの制約条件のうち14個がxi・w11>T12になるような制約条件を生成した。
【0430】
出力LTGであるLTG21は、その入力結合間にORを形成した。結果として4個の制約条件を形成した。MAVを決定した後、制約条件数は3個にまで減った。これは、制約条件数において25%の減少である。
【0431】
このようなデータセットの場合、42次元を有するので、このプロセスを自動化することが非常に望ましい。中間層192内にある各LTG毎にMAVを見つけた後もなお45個及び139個の検討すべき制約条件又はルールがあり、このプロセスを自動化しなければ扱いにくくなる恐れがある。なお、良好な信用リスクである顧客を決定するためLTGが学習したことを基にした大まかなルールは、「自宅を貸していない又は借りていない、若しくは不動産/貯蓄又は(深刻な借金及び保証人)を有する」といったようなものであるということができる。
【0432】
なお、NN190が入力ベクトルのうち2つをテストセットから正確に分類しなかったことを考えると、NN190がまだ学習していない付加的特徴がデータセット内に少なくとも1つあることになる。
【0433】
(両データセットの実験結果まとめ)
どちらの場合にもNN180、190が100%の正確さをもってトレーニングセットを再現することができたことを考えると、比較の基準に基づき、どちらの場合にも学習されたルールの正確さは極めて高い。このことは、バックプロパゲーションがトレーニング中に確定する平均重み値と対照をなす。必然的に、バックプロパゲーションを用いる場合、NNがトレーニングされたデータ上においてNNをテストすると、出力に幾らかの誤差がある。入力ベクトルが分類される速度は、実行するルーチンを処理する制約条件に必要とされる時間に基づく。アルゴリズムがライブラリを処理する制約条件を頼りにすることを考えると、データセットを学習する時間は相対的に遅い。なお、アルゴリズム30を動作させるのに適当なコード及び/又はハードウェアを用いれば、入力ベクトルを1秒未満で学習したであろうことが考えられる。また、データセットは、そのデータセットの単一パス内において学習されることが可能である。このことは、NNが絶えずデータセットを学習するものであるかが分からないバックプロパゲーションと対照をなす。
【0434】
さらに、トレーニング中に学習されたルールは、非常にわかりやすいということが分かった。一方、数値アルゴリズムを使ってトレーニングしたNN内において符号化されるルールは、ほぼ完全に理解不能である。
【0435】
従って、本発明は、フィードフォワードNNの利用に関連した多くの利益を提供する。主な貢献を次のようにまとめることができる。(a)ニューロン、好ましくはLTGをトレーニングする新規方法である。(b)LTGをトレーニングする新規方法に基づいてフィードフォワードNNをトレーニングするアルゴリズム30は、(i)データセットを学習するのに必要とされるとおりにLTGをダイナミックに配置し、(ii)単一パス内において学習し、かつ(iii)簡易方法150が、得られたNNから容易に読み取られるようにトレーニング中に学習するルールを決定するのを可能にし、かつ(c)LTGが何を学習したかを分析する簡易方法130を可能にする。
【0436】
LTGをトレーニングする新規方法は、重みと各LTGの閾値との関係を見つけ出すものである。これは、LTGが入力を正確に学習してリコールすることを可能にする。言い換えると、ニューロンをトレーニングする従来の方法が生成を希望する近似値の代わりに、入力が正確に再現されることが可能である。
【0437】
本発明に従ってLTGをトレーニングする方法は、LTGに活性化する各LTGの重み空間内における体積を見つ出して、LTGへの入力間の関係を体積の面へと符号化する。
【0438】
この方法は、LTGが問い合わせられて、入力ベクトルを学習したか又は学習することができるかを、それゆえ入力ベクトルを分類する方法を知っているかを決定するのを可能にする。このテストは、LTGをNN内に配置することがいつ必要とされるかを決定する容易な方法を提供する。
【0439】
その方法は、先に学習した入力をリコールしかつ一般化する等、従来の方法を使ってトレーニングしたニューロンが実行する機能の全てをLTGが実行するのを可能にする。
【0440】
本発明に従って、ニューロン、好ましくはLTGをトレーニングする新規トレーニング方法の主な適用は、データセットを学習するNNに対して求められるとおりにニューロンを配置するDR学習アルゴリズム30の開発である。これは、NNの分野に対する重要な貢献である。
【0441】
フィードフォワードNNをトレーニングするこの方法が固定サイズのNN(NN内にあまりに多い又はあまりに少ないニューロンを有する場合がある)の問題を解決する。
【0442】
本発明に係るDRトレーニングアルゴリズム30の最も重要な特徴の1つが単一パスにおいてデータセットを学習する能力である。これは、潜在的に指数的なトレーニング時間になるという問題を解消するので、NNの分野に対して大きな貢献である。トレーニング時間は、LTGに問い合わせて入力が学習されたか又は学習され得るかを決定するのに必要とされるソフトウェアを処理する制約条件の速度に依存する一方で、そのことは、決定論的な時間量のうちにNNは学習するものであることを意味する。
【0443】
また、トレーニングに先行して、データを適当なフォーマットに変換するための有用な方法も提供するので、NNのトレーニング時間を改善するのに活用することができる。同様に、NNによってトレーニングされるデータを予め仕分けるための有用な方法もまた提供するので、データ分類の効率を上げるのに活用することができる。これらの方法は、あらゆるNNトレーニングアルゴリズムに対して有用であると考えられる。
【0444】
本発明の別の利点は、フィードフォワードNNの挙動、特にトレーニングの進行中に学習したルールを見抜く能力である。トレーニング方法がリレーショナル(関係的)であるため、本発明の利点は、入力間の関係を見つけ出すことであることを意味しており、それら入力間の関係は、LTGに活性化する体積の重み空間内における領域の面として蓄積される。後で従来の感度分析を行なうのに用いることができるMAVを見つけることによってこれらの関係が回復されるのを可能にする有用な方法150を提供する。LTGを層内に結合するのに用いる論理的関係をNNから直接読み取ることもできる。
【0445】
フィードフォワードNNのための従来のトレーニング方法は、トレーニング中に学習したルールをデータセットに関する多くの情報が失われる単一数値へと圧縮する。従来のトレーニング方法からでは、数値が表そうとしている考えられ得る限り最良の平均値をどれだけ正確に表しているかを決定することは可能ではない。
【0446】
本発明に係るDRトレーニングアルゴリズム30は、好ましくは全ての入力ベクトルを制約条件に変換し、かつその制約条件内に包含される関係をLTGを活性化する重み空間内における体積の面として蓄積する。このことは、全入力がリコールされるのを可能にし、本発明のさらなる態様によりMAVを決定する方法150を用いることによって制約条件セットを最小数の制約条件にまで減らすことができる方法を提供する。LTGのMAVを見つけることによって、LTGの制約条件セットから制約条件を取り除くときに情報は全く失われない。
【0447】
MAVを見つけ出す方法150は、NNに限定されるものではない。MAVを見つけ出す方法は、最適化及びオペレーションリサーチ型の問題に用いられるCSP等の制約条件のシステムを用いる他の分野にも有用である。
【0448】
行なった実験は、NNをトレーニングするのに、トレーニングされるNN内にある重みよりも多くの入力ベクトルが必要とされるとは必ずしもいえないことを示した。これは、各入力ベクトルがNN内にある各重みをトレーニングしているからである。DR学習は、どの入力ベクトルがLTGをNNに付加せしめているのかを容易に識別する簡易テストを提供する。完全なデータセットを使ってトレーニングすることが必ずしも必要なわけではない。
【0449】
NNが一般化できない潜在的な原因は、先に、NNが充分にトレーニングされず、その結果、見えない入力ベクトルの出力が分からないということを述べたところで解説している。本発明のさらなる態様に従えば、逆に、見えない入力ベクトルに対する出力が何かをNNが知っているか決定するのに用いることができ、かつどの入力ベクトルが未知であるかを明らかに識別することができる方法130を提供する。従って、NNは、どの入力ベクトルについて付加的なトレーニングを必要としているのかを特定することができる。
【0450】
入力ベクトルが既知であるか未知であるかを決定する方法130は、NNに限定されるものではない。入力ベクトルを分類する方法は、サンプルDNAに関して、データ列の分析等制約条件のシステムを用いる他の分野にも有用であると考えられる。同様に、入力ベクトルを分類する方法をCSP及びオペレーションリサーチの用途にも有用であり得る。
【0451】
本明細書において本発明の一般的な性質及び例として幾つかの具体的な実施形態のみを規定しているため、本発明は、当業者にとって容易に明らかになるであろう多くのさらなる変更及び本発明の広い範囲及び領域内に存在するとみなされるであろう多くのさらなる変更をも含むものであると理解されるであろう。
【技術分野】
【0001】
本発明は一般的に人工ニューラルネットワーク及びその操作に関し、特に、限定しないが、ニューラルネットワークのトレーニング法の改善及び/又は、トレーニング過程中の要求通りにネットワークにニューロンを追加できるシステムに関する。
【背景技術】
【0002】
過去10数年にわたり生成データセットのサイズが増殖するに従い、厳密に理解されないデータセットにおいて、そのデータセット内の関係を見出すために用いうる開発ツールへの関心が高まっている。データ探索のツールは、毎回固定した時間量において、入力と出力の間の関係についての顕著な情報を容易に決定しうるデータセットを矛盾なく学習しうることが望ましい。
【0003】
データ探索のツールの1つは、フィードフォワードニューラルネットワークである。フィードフォワードニューラルネットワークは、データセットを有する多くの多様で困難なタスクを実施するために用いられ、過去およそ40年にわたって大いに注目されてきた。これらには、「一般化する」能力があるという理由で、パターン分類及び機能概算を含む。このように、ニューラルネットワーク(以後、簡便のために”NN”と略称)は、非線形システムモデリング及びイメージ圧縮・再構成等のアプリケーションに用いうる。
【0004】
NNが関心を持たれる分野には、科学、商業、医学及び産業が含まれ、これらにおいてはデータに内在する関係性が不明であり、NNであればそうしたデータをうまく分類する方法を学習できるからである。
【0005】
ある場合においては、データが先行する分類に提示されてはならず、こうした状況では、で他を分類するために自己組織化マップ等の教師なしトレーニングを用いることが通常である。別の場合においては、データは分類されたデータサンプルに前もって分解され、こうした状況では未分類のデータをさらに分類できるようNNをトレーニングすることが通常である。後者の場合においては、教師あり学習アルゴリズムが伝統的に用いられる。分類された入力データ例には関連付けられる出力があり、トレーニング期間中にNNは入力ベクトルに関連付けられる望ましい出力を再現することを学習する。フィードフォワードNNは、伝統的には教師ありトレーニング法を用いてトレーニングされる。
【0006】
人工NNは多くのニューロンで構成され、これらはユニット又はノードと呼ぶことがある。これは生物学的ニューロンからインスピレーションを得ている。ニューロンは相互に接続せいてネットワークを形成する。各ニューロンには多くの他のニューロンからの入力がある。ニューロンは入力に応答して、発火するかしないかにより出力を生成する。このようにして、ニューロンの出力は多くの他のニューロンへの入力になりうる。これがフィードフォワードNNの基本構造である。
【0007】
典型的にはニューロンは層を形成する。フィードフォワードNNにおいては、入力層、中間層及び出力層の、3タイプの層がある。第1の層は入力層であり、1以上のニューロンを内蔵する。同様に1以上のニューロンを有する出力層もある。NNは1以上の中間層を有する場合もある。入力層の全てのニューロンは次の層、すなわち出力層又は1以上の中間層がある場合には第1の中間層へ、出力を提示する。中間層が1つだけであると、中間層のニューロンは出力層に対して出力を報告する。中間層が1よりも多いと、ニューロンは次の中間層等の入力に向かって出力を送り、最後の中間層は出力層の入力に向かってその出力を送る。
【0008】
他のネットワークアーキテクチャも可能であり、NNは特定のデータセットを学習するよう特異的に設計しうる。これは特にNNの入力ベクトルのシーケンス学習に見られ、これは接続にフィードバックループを有することもある。これらのNNは回帰フィードフォワードニューラルネットワークと呼ばれ、一般的にはこのNNの出力はしばしばNNの入力にフィードバックしうる。
【0009】
最初の生物学的ニューロンモデルは、McCulloch及びPittにより1943年に開発された。これは、McCulloch−Pittニュートンとして知られた。McCulloch−Pittニューロンモデル又は直線閾値ゲート(以後、LTGと略称、Linear Threshold Gate)は、多くの入力接続及び各接続と関連付けられた重みを有するものとして定義される。入力は、数学的にベクトルxiとして定義され、
【0010】
【数1】
式中、nはLTGへの入力数を示す正の整数であり、iはi番目の入力ベクトルである。入力接続はn個あるので、接続の重みは数学的にベクトルwと定義されうる。
【0011】
【数2】
LTGへの各入力ベクトルは関連付けられた重みがかけ合わされて数学的にxi・wと表され、この結果はLTGの閾値Tと比較される。
【0012】
【数3】
xi・w≧Tならば出力は1であり、さもなければxi・w<Tとなって出力は0である。換言すれば、LTGはニューロンの活性化関数としての、このステップ関数又はHeaviside関数を用いる。
【0013】
LTGは次式の定義を用いて数学的に定義しうる。w={w1,w2,..・wn}及びxi={x1,x2,...xn}ここで、
【0014】
【数4】
【0015】
【数5】
とおくと、LTGの挙動は次式1.1のようにまとめられる。
xj・w<T→0、及びxj・w<T→1 (1.1)
【0016】
このように、LTG、Oの出力はバイナリ{0,1}である。LTGは活性化すると1を出力し、しなければ0を出力する。
【0017】
1962年に、LTGは、永久的に1にセットされる追加バイアスで変更された。バイアス入力は閾値を吸収し、これをゼロにセットする。変更されたLTGモデルはパーセプトロンと名称変更した。パーセプトロンモデルにおいては、閾値Tはxi・wから除去されうるので、等式はxi・w<T≡xi・w−T<0、及びxi・w>T≡xi・w−T≧0となるすなわち、閾値は、重みw0と共にニューロンへの別の入力になることが可能で、ニューロンへの入力を1に固定することにより常に存在することが確定し、T=1・w0となる。重みw0はバイアスウェイトと呼ばれる。従って、前式は次のようになる。
xi・w−W0<0、及びxi・w−W0≧0
【0018】
1960年に、Rosenblattはパーセプトロンモデルを用いて重みのための数値を見出すことに注目した。これ以降、ニューロン内の各重みに足して単一の数値を見出すことが、ニューロン及びNNをトレーニングする方法を確立してきた。ニューロンにより生成する関係は提案ロジックを用いて表現しうることが認識されていたが、重みと閾値との象徴的な関係を直接に見出すことは意図されてこなかった。NNがトレーニング中に学習したデータセット内のルールは数値コード化され、これによりルールは非圧縮性となりうる。重み及び閾値により見出される数値から、NNにより学習されたルールを見出すことが意図されてきた。このような方法は全てトレーニング後の追加プロセスであり、これらによってNNから直接にルールを読み出すことはできない。
【0019】
1962年に、Rosenblattはパーセプトロン学習アルゴリズムの収束を証明し、これは直線的に分離可能なデータセットを満足する数値を反復して見出すものであった。ニューロンは、特定の入力に与える所望の出力を生成するよう、接続の重みを加えることにより学習する。Rosenblattのトレーニングルールは、式1.2に見られるように、入力xiに基づいて重みwjが変更されるというものであり、式中、1≦j≦n、nはパーセプトロンへの入力の数、tは時間ステップ、ηは正のゲイン率で、η≦1である。Rosenblattのルーツはバイナリ出力に対して動作する。特定の入力に対するパーセプトロンの出力が正しいならば、何も起こらない。
Wj(t+1)=Wj(t) (1.2)
さもなければ、出力が0であり、かつ1でなければならない場合は、次のようになる。
Wj(t+1)=Wj(t)+ηXi(t) (1.3)
あるいは、出力が1であり、かつ0でなければならない場合は、次のようになる。
Wj(t+1)=Wj(t)−ηxi(t) (1.4)
【0020】
反復して重みを調節するアイデアは、今やフィードフォワードNNをトレーニングする方法として確立した。
【0021】
1969年に、より複雑なデータセットに対してRosenblattの学習アルゴリズムは動作しないことが見出された。Minsky及びPapertは、単一層のパーセプトロンは有名な排他的論理和(XOR)問題を解けないことを示した。これが動作しない理由は、反復が重み空間内の単一点を見出すために用いられたからである。
【0022】
Boolean関数の全てが単一のLTGにより学習されうるとは限らない。n個の入力変数には2nの組み合わせがあり、可能な出力と組み合わせると2nのユニークなBoolean関数(あるいはスイッチング関数として公知)が存在することになる。2nの関数のうち、あるもののみが単一のn−入力LTGにより表されうる。入力スペースが直線的に分離可能であるBoolean関数は単一のLTGにより表すことができるが、直線的に分離可能ではないBoolean関数を学習するためには追加のLTGが必要である。XORは直線的に分離可能ではないBoolean関数の例であり、従って単一のLTGでは学習できない。
【0023】
LTGに追加の層を用いることで、直線的に分離可能ではない問題をNNに学習させることが可能になるが、しかしLTGの複数の層を同時にトレーニングしうる実用でキナトレーニングルールはなかった。
【0024】
結果として、LTGの複数の層をトレーニングしうる重み及び閾値のための数値を見出す反復方法がないという理由で、ニューロンのMcCulloch−Pittモデルは廃棄された。これは、バックプロパゲーションが開発されるまで続いた。
【0025】
1974年に、Werbosはエラーバックプロパゲーション(又は「バックプロパゲーション」)のアイデアに至った。後に1986年に、Rumelhart及びHinton、さらに1986年にWilliams、及び1985年にParkerが到達したアルゴリズムも同様であり、これにより多層NNモデルをトレーニングして反復的に重みのための数値を見出すことが可能になった。これにより、XOR問題並びに単一層のパーセプトロンでは解けない他の多くの問題の解答が可能になった。McCulloch−Pittのニューロンモデルは活性化関数としてステップ関数に替えてシグモイド関数を用いるよう再び変更された。シグモイド関数の数学的定義は次式1.5で与えられる。
O=1/(1+e−kwx) (1.5)
【0026】
パーセプトロンは一般的にシグモイド関数をパーセプトロンの活性化関数として用いる。k項は曲線の広がりを制御し、シグモイド関数は、
【0027】
【数6】
において出力が
【0028】
【数7】
となるようにステップ関数を近似する。しかしながら、tanh(kw・x)等の他の活性化関数も用いうる。この活性化関数は−1から+1の範囲であるため、NNが負の数を出力可能である必要がある場合に用いられる。
【0029】
バックプロパゲーションはRosenblattの学習アルゴリズムに基づいており、式1.2から式1.4に記載したものである。これは教師あり学習モデルであり、入力ベクトルをNNの入力層に加えることにより動作する。入力層はこの入力を第1の中間層に分配する。層内の各ニューロンの出力は式1.5にしたがって計算され、後続の層への入力となる。後続の層への入力となるニューロンの層の出力(又は活性化)を計算するプロセスは、NNの出力が計算されるまでの間に繰り返される。実際の出力と所望の出力との間にはエラーが生じることもあり、エラーの量に従って重みが変更される。出力におけるエラーは、NN何のエラーを低減するために、今度は出力層への接続から中間層における接続に向かう接続の重みを調節することにより、NNを通じて、フィードバックされるか、又は後方に伝播される。重みの量は、これらのユニット内のエラー量に比例して直接的に調節される。
【0030】
バックプロパゲーションのデルタルールは式1.6で与えられ、式中、iは層、jはi−1層内に生起する接続元のパーセプトロン、kはi層内に向かう接続先のパーセプトロンである。
【0031】
【数8】
式中、
【0032】
【数9】
である。
【0033】
【数10】
は、NN内の重みに関する数値のエラー低減を意図して重みが変更される量である。重みが変更される量は、ニューロンの出力Oijk、ゲイン項η(これは学習速度及び出力エラーδijkとも呼ばれる)に基づく。NNにおけるエラーは、NNの実際の出力と所望の出力との差である。
【0034】
NNが十分にトレーニングされると、NNにおけるエラーとしてのエラー関数の大局的極小値を最小値と呼ぶ。エラー内には多くの局所的極小値が潜在しているので、エラーは面でありうる、すなわち関数でありうると見なされる。しかしながら、いかなるNNに対してもエラー関数は知られていない。エラー関数は、NNに加えられた全ての入力ベクトルに対する所望の出力と実際の出力との差に基づくので、経験的にのみ計算されうる。δijk項はエラー関数の1次微分(出力におけるエラーの差に基づく微分)である。バックプロパゲーションがNN内のエラーを最小化するときに、最小化されるのはエラー関数である。勾配(1次微分)を用いることで、NN内のエラーを最小化する重みを変化する方法の決定が可能になる。これは、勾配降下と呼ばれる。
【0035】
バックプロパゲーションは、そのアルゴリズム内にNNへのニューロンの追加も除去も許容しないため、固定サイズのNNでの動作を要する。NNがデータセットを学習するようトレーニングするときに、そのデータを学習するために何層の、各層にいくつのニューロンが必要であるかという推測がなされる。トレーニング後に、必要ではないニューロンを取り除くことにより、トレーニングしたNNの性能向上を試みてもよい。しかし、トレーニング中はニューロンの数は一定でなければならない。
【0036】
伝統的なバックプロパゲーションアルゴリズムは以下のように要約される。(a)初期化:NN内の層数及び各層のニューロン数を定義し、NNの重みをランダムな値で初期化する;(b)トレーニングセットからNNに入力ベクトルを加えるる。式1.5を用い、入力層に続く第1層内の各ニューロンに対する出力を計算し、この出力を次の層への入力として用いる。このプロセスをNNの各層に対して、出力が計算されるまで繰り返す;(c)式1.6を用い、NN内に存在するエラー量に従って重みを変更する;(d)ステップ(b)及び(c)を、NNがトレーニングされたと考えられるまで繰り返す。NNは、トレーニングセット中のある数の入力ベクトルに対して、エラーが任意の数値以下に低下する時に、トレーニングされたと見なされる。
【0037】
バックプロパゲーションを用いてNNがデータセットを学習するようトレーニングすることには多くの利点が伴う一方、バックプロパゲーションには限界がある。バックプロパゲーションでは、NNはデータセットの学習に長時間が必要となりうるか、さらに悪い場合としては全くデータセットを学習しないかもしれない。いくつかの場合において、NNがデータセットを学習しない理由の決定は不可能なことがあり、及び/又はトレーニング中にNNがデータセットを一体学ぶのかどうか、単に学習に時間がかかるのかを区別することは不可能である。
【0038】
バックプロパゲーションでは、NNはデータ学習に小さすぎる場合がある。伝統的には、NNの設計者は各中間層に用いるニューロン数、及びデータセットの学習に要する中間層の数も推定しなければならない。NNが大きすぎると、適切に一般化できない場合がある。従って、この問題の改善を意図して、NNからニューロンが取り除かれることがある。NNはエラー空間の局所的極小内に固定されることがある。NNがデータセットの学習を完了すると、NNはエラー空間の大局的極小内にある。エラー関数の形状は未知であり、関数は大きいエラー及び小さいエラーの領域を有する。バックプロパゲーションはエラー関数の1次微分を試行することによりエラーを最小化するよう動作するだけであり、これは局所領域のみの試行である。中間層におけるニューロンのトレーニングの目標はデータセット内の異なる特徴を学習することにある。しかしながら、バックプロパゲーションがNN内にエラーを後方伝播するときは、全ての重みが幾分変更されるため、データセット内の特定の特徴に対する各ニューロンのユニークな関連付けが減少する可能性がある。これは、ニューロンは同一層にある他のニューロンが同一の特徴を学習しているか否かを決定できないために起こりうる。このために、特定のデータの特徴を学習し、その特徴を忘れてしまう重みが生じうる。
【0039】
バックプロパゲーションでのNNのトレーニングにおける主要な問題は、NNがデータセットを学習しない原因が上述の理由のいずれであるか決定できないことである。データセットを学習するかもしれないが単純に遅い、又はNNが小さすぎるために全くデータを学習しないかもしれない、又は局所的極小内に固定されるかもしれない。さらに顕著なバックプロパゲーションの問題は、NNがデータセットを学習してしまうと、NNが学習したものは不可解なことに数値としての重み及び閾値にコード化されるということである。
【0040】
バックプロパゲーションでのNNのトレーニングが困難であるため、フィードフォワードNNをトレーニングするための代替アルゴリズム開発に多くの研究がなされてきた。
【0041】
ィードフォワードNNをトレーニングするための代替アルゴリズム開発には多くの研究がある。代替アルゴリズムには2つの分類がある。(1)ニューロン又はNNの資源の数を固定することを要するアルゴリズム、及び(2)NNに対して動的にニューロンを割り当てられるもの、である。
【0042】
これらのアルゴリズムのほとんどは固定サイズのNNを有することに依存し、結果としてバックプロパゲーションと同一の問題を経験する。公知の方法の1つは、重みの数値を見出すために遺伝子アルゴリズムを用いる。遺伝子アルゴリズムは局所的極小点の問題を避けうるが、トレーニングの時間量は限りがなく、NNが小さすぎるために適切なトレーニングではない場合がある。別の代替法は、動径基底関数(RBF、Radial Basis Function)を用いることであり、NNの学習に単一層のみを用いるが、1つのデータセットを学習するために利用可能な入力ベクトルをバックプロパゲーションよりも多く必要とする。固定サイズのNNに伴う問題の結果として、データセット学習のためにNNの成長を許容することが有用である。
【0043】
フィードフォワードNNトレーニングアルゴリズムは、動的にニューロンを追加するものであり、データ内の特徴が確実に学習されるよう、必要なときにのみニューロンを追加する柔軟性をもたらすので、予め定義された構造の問題に対する解答として導入されてきた。従って、他のニューロンがデータセット内の特定の特徴を学習できないときにニューロンが追加され、結果としてトレーニングされたNNを用いて、トレーニング中にNNにより学習されたルールが何であるかをより効率的に確認できる。予め定義されたネットワーク構造は、NNのデータ学習能力を制限する。NNは重みを加えることにより学習し、これは生物学的なNNにおけるシナプスの重みに対応する。前述のように、フィードフォワードNNは生物学的なNNからインスピレーションを得ている。しかしながら、生物学的なNNは、要求されると動的に接続を生成する。
【0044】
構造的な動的アルゴリズムには2つのアプローチがある。(1)NNからニューロンを除去するもの。NNからニューロンを除去するアプローチは2つある。(i)エラー最小化プロセスにペナルティを追加するRumelhartの重み減衰等、トレーニング中に動作するもの、及び(ii)より一般的なアプローチ、すなわちNNからの重み除去後に大局的エラーへのインパクトを計算するOptimal Brain Surgeon等、トレーニング後にニューロンを除去するもの。(2)Cascade−Correlation Networks(以後「CCN」)、Dynamic Node Creation(以後「DNC」)、減数分裂及び超球面分類、例えば制限クーロンエネルギー分類(以後「RCEC」)及び多項式時間トレーニング超球面分類(以後「PTTHCs」)等、NNにニューロンを追加するもの。
【0045】
トレーニング中にNNにニューロンを動的に割り当てることにより動作するNNトレーニングアルゴリズムを提供する試みは数多くあるが、種々の広範な状況においてデータの効率的及び/又は正確な分類に対して理想的なものは1つもないと考えられている。
【0046】
NNが科学及び/又は産業に関心をもたれる主な理由は、データ内の関係を見出す能力のためであり、これによりデータが分類でき、次いでNNがトレーニング中には直面しなかった入力ベクトル又はパターンをうまく分類できる。この強力な特性は、NNの「一般化」能力とも呼ばれることがある。トレーニング中にNNが直面しなかった入力ベクトルは、一般的には未知パターン又は未知入力ベクトルと呼ばれる。NNが一般化を行うにはトレーニングが必要である。
【0047】
トレーニング中、ニューロンはトレーニングのためのデータセット内の突出した特徴を学習し、これにより未知入力ベクトルの出力を「予言」できる。NNが何を分類できるかは、NNが何でトレーニングされたによる。
【0048】
NNがデータ内のノイズを処理しうるのは、NNの一般化能力である。
【0049】
良好な一般化を確実にするためには、NN内でトレーニングされる重みの数よりも多くの入力ベクトルが利用可能でなければならないと考えられている。
【0050】
NNが学習した入力ベクトル及びテストセットも同様に高率でうまく分類すると、トレーニングされたと見なされる。しかしながら、トレーニング及びNNをテストするために利用可能な分類されたデータセットの数はわずかに限られるので、データセットを分割する方法を考えなければならない。NNをうまくトレーニングし、これによりテストも可能であることを決定するためのデータセットの分割法には多くのアプローチがある。
【0051】
NNがトレーニングされたか否かを決定する一般的な方法は、バックプロパゲーションでトレーニングされたNNを用いるときに入力ベクトルのそれぞれにエラーがいくつあるかを計算することによる。当業者であればNN内のエラー確認にこれまで用いられてきたアプローチを考慮するであろうから、本願明細書においては同様の詳細な議論は示さない。
【0052】
しかしながら、トレーニングアルゴリズム間の比較の根拠に用いうる属性について記載しておく。
【0053】
学習アルゴリズムの比較の際に考慮する要因は数多くあるため、性能の客観測定が行われる。
【0054】
典型的には、次の4つの学習アルゴリズムの属性が考慮される。(1)正確さ:これはトレーニング中に学習されるルールの信頼性である。(2)速度:これは入力ベクトルの分類に要する時間測定である。(3)学習時間:これは入力ベクトルの学習に要する時間測定である。(4)理解度:これは学習されたルールが代替方法に適用可能であることを解釈しうる能力である。このようなストラテジは定量化が困難である。
【0055】
これらの属性の2つ、すなわちデータセットの学習に要する学習アルゴリズムの時間及びNNが学習したものの理解度が、さらに試験される。
【0056】
前述したように、バックプロパゲーションでNNをトレーニングしてデータセットを学習することには長時間のトレーニングが必要であり、NNは全くデータセットを学習しない可能性もある。固定サイズのNNのトレーニングにかかる時間は指数関数的であると言われてきた。この理由から、NNのトレーニングにかかる時間は代替トレーニングアルゴリズム間の比較の標準となっている。理想的なトレーニングアルゴリズムは、トレーニング入力ベクトルに対する露出が最短となるであろう。最適化した状況において入力ベクトルに対する露出が最短でありうるのは、NNを各入力ベクトルに1回のみ露出して十分にトレーニングすることであろう。このようなトレーニングアルゴリズムは単一パストレーニングアルゴリズムと呼ばれる。
【0057】
フィードフォワードNNをトレーニングするアルゴリズム間の比較の基盤として一般的に用いられる4つの属性のうち、理解度は、特に数値としてトレーニングされるフィードフォワードNNにおいては、最も定量化できないものであり、これはトレーニング中にNNに学習されるルールが不可解にも数値としてコード化されているからである。トレーニング中に学習されるルールを抽出可能な方法の1つは、感度分析を実施することによる。感度分析はエラーに対する頑強性の測定として参照されうる。
【0058】
ルール抽出はシステムが生成する結果におけるユーザの信頼性を与えるものとして関心をもたれ、これはNNが外科手術、航空交通管制、及び原子力発電所の監視等の危険な問題の領域に用いられるとき、又は天文データ等、NNのトレーニングにより収集されたデータから理論が推定されるときに特に重要である。
【0059】
理解度の保証に望まれるルールは、入力の同化に関する命題論理学のルールの形態である。
【0060】
感度分析は、NN内に蓄積された情報を見出す1つの道筋であり、しばしばNNに実施される。ルールは不可解にも数値としてコード化されているので、NNにより学習されたルールが何かを見出すことが望ましいく、感度分析のこのような実施はNNにとって貴重である。
【0061】
NNへの感度分析の実施に取られるアプローチは2つある。(1)重みを変更する効果、及び(2)NNに対してノイズの多い入力を適用する効果である。
【0062】
入力スペースが十分に既知であると、必要数のデータポイントの一般化と、以下の3つの方法により選択される入力ベクトルに対するNNの出力を見出すことが可能である。(1)データ空間内の全ポイントに対する出力を見出すこと。NNがバイナリ(2値)データでトレーニングされていると、データセットは有限である必要がある。(2)入力スペースからデータポイントをランダムに選択すること、又は(3)入力スペース内の全てのn番目のデータポイント(ただしn>l)を選択すること。これにより、入力スペース上の分布も可能になる。
【0063】
データポイントは、望ましいNNの反応が何であるかが既知ではない入力スペースの領域からも選択されうる。この場合、既知でないデータが与えられるときにNNがいかに反応するかが示される。
【0064】
ここまで入力スペースの探求方法を精査してきたが、次いでNN内のニューロンの重み空間を吟味する。
【0065】
システムには、指定の実施を要求され、あるいは要求された実施をシステムに許容する、多くの構成要素がある。個々の構成要素が指定の実施を行うとき、その構成要素は自己の最適範囲にあると言われる。
【0066】
感度分析は、システム内の構成要素に対する最適な値又は範囲から外れる効果の試験でありこの場合、最適範囲はトレーニングされたNNにおいて重みのためのものである。この場合には、NNの挙動を変更することなく重みが変化できる範囲(又はインターバル)を見出すように、上限及び下限が確立される。感度分析の実施には、システム内の各構成要素が、他の全ての構成要素を一定にしたまま、順番に試験される。試験される構成要素は、システムの動作を決定するための、あらゆる可能な数値に設定される。このプロセス中、システムを最適に動作しうる構成要素の上限及び/又は下限が確認され、構成要素がこれらの範囲を外れるときにシステムの挙動が観察されうる。このプロセスは範囲試験と呼ばれる。上限及び下限は、制約条件として表されうる。
【0067】
既知の感度分析は、NNが理解可能に学習したものとなるであろう入力変数の同化に関する命題論理学のルールを生成しないと考えられている。
【0068】
感度分析の目的は、ボリュームの形状を決定しうることにあり、これは構成要素の挙動を正確に画定するからである。しかしながら、既知のNNトレーニング法の制約によってニューロンの活性化を生じるボリュームの面を見出すことはできない。この面の試験が可能であった唯一の方法は、統計的手法によりそれぞれの重みの範囲を決定することによる。ボリュームの実際の面の知識があれば、それは重みの間に存在する関係を画定し、このことから所望であれば重みの範囲が決定されるので、理想であろう。
【0069】
トレーニング中にフィードフォワードNNが何を学習したかを決定できることが強く望まれ、結果としてデータ内に存在する関係及びNNに学習された関係が何かを確認する試行に多くの研究がなされてきた。これが理解度と呼ばれるものであり、トレーニングアルゴリズムの良好さの決定に寄与する属性の1つである。現在、NNからルールを抽出するために用いられる方法は、トレーニングの完了後に実施される。
【0070】
見出す必要のある望ましい関係のタイプは、命題論理学により与えられる。この必要性は次のようにまとめられる。(a)トレーニング条件を満たす全ての数値解を定義し、これによりNNにおいて感度分析が容易に実施可能になるもの。(b)トレーニング中にNNにより学習されるルールが、NNにより読み取られるデータセットを容易に分類できるようにするもの。
【発明の概要】
【発明が解決しようとする課題】
【0071】
種々の動的アルゴリズムに関し、上述の公知のトレーニング方法のうちで、NNからのルールの直接読み取りを許容することに近い唯一のものは超球面分類であり、これは領域間にORの関係を形成する。従って、入力スペース内の領域はあるカテゴリーに属するか又はそうでないため、領域がANDで結合されることはない。関係が領域内に属さないならば、活性化すべきでないニューロンの活性化を抑制するために球面が追加されるので、入力スペースを表すにはORが適切である。入力スペースが複雑化すると超球面を定義する半径は0になる傾向があり、究極的には各入力ベクトルに超球面が追加される。中間層内のニューロンにより定義される領域は入力スペース内の領域に近いものであるが、画定するものではなく、最悪の場合を除いてはデータポイントと同数の超球面が存在する。PTTHCsは入力スペースの範囲の改良を意図したものであり、これにより計算の複雑化という代償を払っても一般化の性能を向上するもので、従って非常に低速である。
【0072】
CCN、減数分裂及びDNCは全て数値として重みをトレーニングするもので、このためトレーニング中にデータ内にいかなる関係が見出されたかを決定することは簡単ではない。
【0073】
これらのアルゴリズムは、一般化に関する性能の成功の程度は様々であるが、全て動的にニューロンをNNに対して割り当てるものである。アルゴリズムによっては、あるデータセットについて他のものよりも良好で、超球面分類を除く全ては重み空間の境界条件の情報を失うので、ルール抽出に対して有用ではない。
【0074】
アルゴリズムによっては、アニーリングに基づき、バックプロパゲーションよりもさらに低速な傾向のある減数分裂アルゴリズムのように、あるデータセットは他のものより迅速に学習するものもある。
【0075】
CCN及びDNCは特定のデータセットに対してトレーニング時間が早いという報告があるが、これらは単一パスのアルゴリズムではなく、両者ともNNにニューロンが追加される前にシステム内のエラー量を低減するための反復に依存する。
【0076】
これまでに、単一パスで学習し、要求通りにNNにニューロンも追加し、NNから直接のルールの読み取りを許容する、NNトレーニングアルゴリズムは存在していない。
【0077】
このため、本発明は、ニューロンが要求通りにNNに割り当てられてデータセットを学習しうる意味において、関係性があり動的であるNNトレーニング方法を提供することを目的とする。
【0078】
また、本発明は、単一バスでデータセットを学習しうるNNトレーニング方法を提供することを目的とする。
【0079】
さらに、本発明はルールがNNから直接に読み取られることを許容するNNトレーニング方法を提供することを目的とする。
【課題を解決するための手段】
【0080】
本発明の一態様によれば、入力ベクトルがニューロンによって既知であるか未知であるかを決定する方法が提供され、当該方法は、前記入力ベクトルから制約条件及びその補空間を構築するステップと、前記制約条件及び補空間を交互に前記ニューロンの制約条件セットに追加するステップと、いずれかの場合に解答があるか否かを決定するために前記制約条件セットを試験するステップであって、前記制約条件又はその補空間のいずれか一方に解答がある場合には、前記入力ベクトルは、前記ニューロンに既知であることが決定され、前記制約条件及びその補空間が交互に前記制約条件セットに追加されるときに解答がある場合には、前記入力ベクトルは、前記ニューロンによって既知ではないことが決定される、ステップと、を含む。
【0081】
前記方法において、前記制約条件セットは、LTGニューロンから構築されるニューラルネットワークのニューロンの制約条件セットであることが好ましい。
【0082】
また、前記方法において、前記ニューラルネットワークの未知入力ベクトルの出力を決定することを提供してもよい。
【0083】
また、前記方法において、前記ニューラルネットワークのLTGの未知入力ベクトルを決定するために、データセットに応じて、前記未知入力ベクトルのデフォルト出力は、1又は0にセットされることを提供してもよい。
【0084】
また、前記方法において、前記ニューラルネットワークのLTGの与えられた未知入力ベクトルが当該LTGに既知であるか未知であるかを決定することを提供してもよい。
【0085】
本発明の他の態様によれば、制約条件セットの最小活性化体積(MAV)を決定するための方法が提供され、当該方法は、(i)前記制約条件セット内に残る制約条件を変化させずに前記制約条件セットからそれぞれの制約条件を一度に1つ除去するステップと、(ii)前記除去した制約条件セットの補空間を前記制約条件セットに追加するステップと、(iii)解答があるか否かを調べるために新規な制約条件セットをテストするステップと、を含み、解答がある場合には、MAVを定義する制約条件セットに最初の制約条件が追加され、前記制約条件セットに追加された前記補空間は除去され、最初の制約条件が前記制約条件セットに戻され、前記制約条件セット内にまだ制約条件がある場合には、ステップ(i)から(iii)を繰り返し、さもなければ前記MAVは前記MAVを定義する制約条件セットの範囲内に保持される制約条件のセットとし、解答がない場合には、前記制約条件セットに追加された前記制約条件の補空間は除去され、最初の制約条件が前記制約条件セットに戻され、前記制約条件セットにテストする制約条件がまだある場合には、ステップ(i)から(iii)を繰り返し、さもなければ前記MAVは前記MAVを定義する前記制約条件セットの範囲内に保持される制約条件のセットとする。
【0086】
前記方法において、前記制約条件セットは、LTGニューロンから構築されるニューラルネットワークのニューロンの制約条件セットであることが好ましい。
【0087】
また、前記方法において、ニューラルネットワークにおいて、各LTGに対するMAVを決定することを提供してもよい。
【0088】
本発明の他の態様によれば、バイナリフォーマットデータセット以外のデータセットをニューラルネットワークにより学習されるバイナリフォーマットデータセットに変換するための方法が提供され、当該方法は、(i)前記データセットの各属性をバイナリで提示するためのビット数を別個に決定するステップと、(ii)計算式:範囲=(最大−最小)+1を用いて前記データセットの属性の範囲を計算し、ステップ(i)で決定したビット数を用いて前記データセットの属性の範囲をコード化するステップと、を含む。
【0089】
また、前記方法において、ニューラルネットワークによりトレーニングされるデータセットを用意することを提供してもよい。
【0090】
本発明の他の態様によれば、ニューラルネットワークによりトレーニングされるデータセットをソートする方法が提供され、当該方法は、データセットの入力ベクトルを2つの群にソートするステップと、1を出力するものを0を出力するものと分離するステップと、ニューラルネットワークにより最初に学習される、前記2つの群の一方を選択するステップと、を含む。
【0091】
また、前記方法において、ニューラルネットワークによりトレーニングされるデータセットをソートすることを提供してもよい。
【図面の簡単な説明】
【0092】
本発明がより明確に理解され実用化されるために、以下に本発明に係るNNをトレーニングする方法及び/又はシステムの好適な構成を詳細に説明する。以下の説明は、非限定的な例としてのみ与えられ、添付の図面を参照する。
【図1】2入力1出力フィードフォワードNNの基本構造の例を示す模式図である。
【図2】本発明の好適な実施形態に係るNNのトレーニング方法を示すフロー図である。
【図3】図2のNNのトレーニング方法に従ってトレーニングされたNNの出力の単一のパターンを学習する好適な方法を示すフロー図である。
【図4】図2のNNのトレーニング方法に従ってトレーニングされたNNの中間層に新たなニューロンを割り当てる好適な方法を示すフロー図である。
【図5】図2のNNのトレーニング方法に従ってトレーニングされたNNに新たな出力ニューロンを割り当てる好適な方法を示すフロー図である。
【図6】本発明のNNトレーニング方法の好適な実施形態に従ってNNに新たなニューロンを割り当てる様子を示す模式図である。
【図7】2入力LTG−NNの基本構造の例を示す模式図である。
【図8】本発明のNNトレーニング方法に従ってModulo−8問題を用いてトレーニングされた、3出力NNの好適な実施形態を示す模式図である。
【図9】本発明のNNトレーニング方法の好適な実施形態に従ってNNの中間層にニューロンを割り当てる様子を示す模式図である。
【図10】本発明のNNトレーニング方法の好適な実施形態に従ってトレーニングされたNNに新たな出力層を追加する様子を示す模式図である。
【図11】3入力LTG−NNの基本構造の例を示す模式図である。
【図12】本発明の好適な実施形態に従って行われる、制約条件セットの入力ベクトルが既知か未知かを判定する方法を示すフロー図である。
【図13】トレーニングされたLTGの重み空間を一般化した図である。
【図14】好適な実施形態に従って、本発明のNNトレーニング方法でトレーニングされたModulo−8問題を解決することができるNNを示す模式図である。
【図15】本発明の好適な実施形態に従って行われる、制約条件セットの最小活性化体積(MAV)を判定する方法を示すフロー図である。
【図16】本発明の好適な実施形態に係るNNのトレーニング中に学習された活性化体積及びその他の制約条件を一般化した図である。
【図17】NNのトレーニングのテストに用いられる認められたデータセットである二重螺旋問題用のデータセットを示す図である。
【図18】本発明のNNトレーニング方法の好適な実施形態に従って生成され、図17のデータセット二重螺旋問題を解決するNNを示す模式図である。
【図19】図17の二重螺旋問題テストデータセットでトレーニングされた図18のNNの結果を示す図である。
【図20】図17の二重螺旋問題テストデータセットでトレーニングされたときに図18のNNの中間層の各ニューロンが本発明のNNトレーニング方法を用いて学習したことを示す図である。
【図21】本発明のNNトレーニング方法の好適な実施形態に従って生成され、ドイツクレジットデータセット問題を解決するNNを示す模式図である。
【発明を実施するための形態】
【0093】
以下、本発明の詳細な好適な構成を添付の図面を参照して説明する。以下の記載では、LTGニューロンモデルは、好適な実施形態としてのみ用いられる。利用可能なニューロンモデルは他にも多くあり、本発明のDRトレーニング方法又はアルゴリズムに係るNNの構成に用いうることは理解すべきである。従って、本発明は、添付の図面に示す特定のニューロンモデルに限定されるものではない。従って、以下の説明を通して「LTG」又は「LTGs(複数)」という表記は、単に「任意の適切なニューロンモデル」を意味するものとして解されるべきである。
【0094】
本発明のDRトレーニングアルゴリズムは、本発明のその他の様態と共に、以下に説明するように、任意の適切なコンピュータソフトウェア及び/又はハードウェアを用いて実装されてもよい。従って、本発明は、特定の実用上の実装に限定されるものではない。本発明のDRトレーニングアルゴリズムの性能評価の目的で、またアルゴリズム及び本発明のその他の様態が予想通りに動作することを証明する実験を行うために、アルゴリズムは、コードとしてプログラムされコンピュータ上のソフトウェアを用いて実装された。
【0095】
NNは、様々な形状で互いに接続されてネットワークを構成するニューロンの組み合わせである。2入力フィードフォワードNN10の基本構造を、例として模式的に図1に示す。NN10は、第1又は入力層16に設けられた2つの入力ニューロン12、14を備える。入力ニューロン12、14はそれぞれ、その出力を中間層24に設けられた3つのニューロン18、20、22へ送る。次に、中間層ニューロン18、20、22はそれぞれ、その出力を出力層28に設けられた1つのニューロン26へ送る。
【0096】
NNはデータセット内の関係の判定に用いられる。NNがトレーニングされる前に、利用可能なデータが、トレーニングに利用されるものとテストに利用されるものの2つのセットに分割される。トレーニングセットは、NNのトレーニングに用いられる。テストデータセットは、NNのトレーニング後まで保存する。テストデータセットは、トレーニング後、NNが十分にデータを学習したかどうか、又はNNがデータのうちある様態を欠いていないかどうかを判定するためにNNに送られる。以下の説明を通じて、「NNをトレーニングする」又は「トレーニング」という表記は全て、トレーニングデータセットでのNNのトレーニングについて述べるものとする。
【0097】
NNトレーニングアルゴリズムの多くは、トレーニング条件を満たそうとする1つの数値を見つけ、NNの所望の出力と実際の出力との間の誤差に基づいて重みの値を繰り返し修正することにより学習する。
【0098】
本発明のDRトレーニングアルゴリズムは、ニューロンのトレーニングに種々のアプローチをとる。このトレーニングアルゴリズムは、トレーニング条件を満足する重みについて単一の値を見つけることには基づいていない。その代わりに、本発明のDRトレーニングアルゴリズムは、トレーニング条件を満たすことになる重みを全て見つける。このため、入力ベクトルは、入力重みを閾値に関連付ける制約条件に変換されることが好ましい。各ニューロンは、互いに相互関係を形成する入力重みのセット及びトレーニング条件を満たす閾値を有している。ニューロンに制約条件を加えることにより、重み空間の領域にニューロンを活性化させる別の制約条件が置かれる。
【0099】
本発明は制約条件に変換される入力ベクトルに関連して説明されるが、言うまでも無く、本発明は制約条件の使用にのみ限定されるものではない。制約条件は、入力重みと閾値との間の関係を表すにすぎない。同様の関係を他の方法で、例えば電子的又は磁気的に表すこともでき、そのため、本発明は与えられた具体例に限定されるものではない。
【0100】
このニューロンのトレーニング方法を用いることにより、NNにニューロンを動的に追加することによってNNを形成することができる。この方法は、NNへのニューロン追加について厳密な基準を設けており、ニューロンを先に述べた標準的なフィードフォワードトポロジに追加することができる。
【0101】
このニューロンのトレーニング方法により、データセットは単一のパスで学習することができる。また、制約条件は各ニューロンの重みと閾値との間の関係を定義し、ニューロンがNNに追加されるときは前置詞的論理に従って追加されるため、トレーニング中に学習された規則の抽出は簡単になる。
【0102】
NNが本発明のDRトレーニングアルゴリズムでデータセットを学習するには、一連のプロセスに取り組むことが望ましい。各データセットは固有であり、多数の出力を有し、これはデータセットに基づいている。このシーケンスを簡潔にまとめると以下のようになる。(1)NNの初期化。(2)NNにより学習されるデータの準備。(3)NNにより学習されるデータを加える。(4)必要に応じてNNにニューロンの割当て。
【0103】
すでに述べたように、本発明の好適な実施形態に従って用いられるニューロンは、LTGすなわちマカロック−ピッツニューロンであり、制約条件セットを含むよう修正されている。LTGの初期化フェーズ(1)は、入力ニューロンの出力ニューロンへの接続と、最初にトレーニングされることになる出力の選択とを伴う。
【0104】
データ準備フェーズ(2)は、好ましくは、NNにより学習されるデータを準備する多数のステップを含み、以下の点が指摘される。(i)NNに提示されるデータがトレーニングに適した適切なフォーマットでない場合、NNに提示される前にデータセットが適切なフォーマットに変換されることが好ましい。本発明の好適な実施形態によれば、適切なデータフォーマットはバイナリデータである。従って、本発明のDRトレーニング方法でトレーニングされるデータセットは、NNへの提示前にバイナリ形式に変換される。任意の適切なデータのデジタル化方法を用いることができる。本発明のさらなる様態によれば、適切なデータのデジタル化方法については後の実験結果を説明する部分で、本願明細書において説明する。バイナリデータは好適なトレーニングデータフォーマットとして提示されるが、本発明のDRトレーニングアルゴリズムは、例えば浮動小数点データ等のその他のデータフォーマットでも機能することは言うまでもなく、そのため、本発明は与えられた具体例に限定されると解釈するべきものではない。(ii)本発明のDRトレーニングアルゴリズムは単一パスアルゴリズムであるため、入力ベクトルの提示順にある程度の注意を払うことが好ましいが、これはNNが学習する規則とどれぐらいうまく動作するかに影響を与えることがあるためである。検討の価値があるとはいえ、本発明のDRトレーニングアルゴリズムはどの入力ベクトルがニューロンをNNに追加させるかを検知し報告することができるNNを構築するため、入力ベクトルの提示順は不可欠というわけではない。このステップは、トレーニングされたNNの動作がよくない場合に用いられることが好ましい。このステップは、データセットがNNへのLTG追加が必要とされるに十分複雑である場合には常に大いに推奨される。
【0105】
次のフェーズ(3)では、NN入力にデータを加え、データが重みと学習されるLTGの閾値との間の関係である制約条件に変換されることが好ましい。中間層がある場合には、LTGの出力は次の層のLTGへの入力になり、今度は次の層のLTGは、受信する入力ベクトルをうまくいくならば学習しうる制約条件へと変形する。このプロセスはNNが所望の出力を生成するまで繰り返される。これがNNにより学習可能な場合には、次の入力ベクトルでトレーニングが継続され、そうでなければプロセスは次のNNに1つ以上のLTGを追加するフェーズ(4)に移る。
【0106】
入力ベクトルの学習ができない場合の考えられるシナリオには、少なくとも2つある。これらは、以下の通りである。(i)中間層が入力ベクトルを学習できなかった場合、新たなLTGが中間層に追加される。(ii)出力層がその入力ベクトルを学習できなかった場合、新たな層がNNに追加され、古い出力が中間層のLTGとなる。そして、別のLTGがこの新たな中間層に追加されて古い出力ユニットが学習できなかったことを学習し、これらのLTGはいずれも出力を組み合わせる新たな出力に接続される。
【0107】
LTGがNNに割り当てられた後は、以下のことが重要である。(a)新たなLTGがNN内の既存のLTGに接続される。(b)新たに追加されたLTGの制約条件セットが空に設定される、又は以前の最後のLTGからの制約条件が新たなLTGにコピーされる。(c)新たなLTGの追加によりNNが以前に学習したことを忘れることがないようにする。これは単一パストレーニングアルゴリズムであるので、新たに追加されたLTGがNNが以前に学習したことを生成することができるようにすることが不可欠である。
【0108】
本発明のDRトレーニングアルゴリズムは(1)〜(4)の一連のプロセスとの関連で提示されるが、これらのステップ又は少なくともこれらのステップそれぞれの様態が提示された以外の順序で行われてもよいことは言うまでもない。例えば、ステップ(1)及び(2)の場合、利用可能なデータセットは、トレーニングされるNNの出力が選択される前に適切なデータフォーマットに変換されてもよい(図2参照)。同様に、ステップ(4)の場合、新たな中間層LTGは、新たな出力LTGが追加される前にNNに追加されてもよいし、その逆でもよい。従って、本発明のDRトレーニングアルゴリズムは、提示されるステップ又はシーケンスの特定の順序に限定されるものではない。
【0109】
以下、本発明のDRトレーニングアルゴリズムの好適な実施形態、及び本発明のその他の様態を、上記で概観したフェーズに従って提示する。(1)NNの初期化。(2)データの準備。(3)学習されるデータのNNへの提示。(4)必要に応じて、最終的にLTGの割当て。
【0110】
(DRトレーニングアルゴリズムの説明)
図2に、本発明の好適な実施形態に従って行われるNNトレーニング方法すなわちアルゴリズム30のフロー図を示す。
【0111】
トレーニングプロセスはLTGの入力層で始まる。以下、NNにLTGを動的に追加するDRトレーニングアルゴリズム30をまとめて、以下のステップで提示する。
【0112】
(1)NNの初期化
DRトレーニングアルゴリズム30によるNNの初期化は、一般に、図2のブロック32により示される。ブロック32において、NNを初期化するプロセスは、以下のステップを含むことが好ましい。
a)出力ベクトルの各次元が個別にトレーニングされる。学習される次元Ojを選択する。
b)出力LTGOjの制約条件セットを空に設定する。
c)出力LTGOjを入力層に完全に接続する。
【0113】
(2)NNにより学習されるデータの準備
DRトレーニングアルゴリズム30によるNNにより学習されるデータの準備のプロセスは、一般に、図2のブロック31及び33より示される。NNにより学習されるデータの準備プロセスは、少なくとも以下のステップを含むことが好ましい。
a)本発明のDRトレーニングアルゴリズム30はバイナリデータで動作することが好ましいため、図2のブロック31に示すようにデータセットをトレーニング前にバイナリに変換することが必要となることがある。本発明のさらなる様態による各種のデータセットをトレーニングのためにNNに提示する前にバイナリに変換するための適した技術についての考察は、後で述べる。言うまでも無く、本発明のDRトレーニングアルゴリズム30に従ってその他のデータフォーマットを用いることもでき、そのため、ブロック31は、単に利用可能なデータセットの任意の適切なデータフォーマットへの変換を言うものである。
b)トレーニングセット内の矛盾したデータの有無を判定する。矛盾したデータは、異なる出力を生成する2つ以上の同一の入力ベクトルxiが存在するときに生じる。矛盾したデータの例としては、xi→0及びxi→1であって、データセット中に同じ入力ベクトルが複数回表れ、異なる出力を生成するというものである。矛盾がある場合には、入力ベクトルxiの1つのみを用いるべきである。NNはこのデータを学習することができるが、NNはうまく動作しないことになる。NNが矛盾したデータを学習する場合には、全ての入力について0を出力することになる。このような状況を回避するために、矛盾した出力の有無を判定するための入力ベクトルのチェックを行うことが好適である。このトレーニングセット内の矛盾したデータの有無を判定するプロセスは、図2には特に示されていないが、ブロック31又は33の一部として同様の動作を行うことができる。
c)学習されるデータは、図2のブロック33に示すように、任意の適切なソート技術を用いてソートされることが好ましい。DRトレーニングアルゴリズム30はデータをランダムに学習することができるが、結果として生じるNNは効率的にデータを分類するとは限らない。従って、好適なソート技術は以下を含む。
・入力ベクトルを2つのグループにソートし、1を出力するものをその出力について0を生成するものから分離する。入力ベクトルを1を出力するものと0を出力するものの2つのセットに分離する。これら2つのセットのいずれかを最初に学習することができる。又は、
・SOM(自己組織化マップ)でデータをソートする。
【0114】
すでに検討したように、本発明は特定のソート技法に限定されるものではない。
d)入力ベクトルのセットから1つのリストが生成される。このステップは、ブロック33により表されるソートステップの一部である。
e)学習対象のデータセットに0入力ベクトルが利用可能か否かを判定する。この0ベクトルは全ての入力次元を0に設定する。この入力ベクトルが利用可能である場合、この入力ベクトルをその出力にかかわらず最初に学習するものとしてソートする。0ベクトルがトレーニングに利用可能であり、その出力にかかわらず最初に学習されることが好適であるが、利用可能でない場合には、重要ではない。ここでも、このステップはブロック33により表されるソートステップの一部である。
【0115】
(3)NNにより学習されるデータを加える
DRトレーニングアルゴリズム30に従ってNNにより学習されるデータを加えるプロセスは、概ね、図2のブロック34により表される。ブロック34において、NNの出力について各パターン(又は入力ベクトル及び関連付けられた出力の組み合わせ)が、これ以上学習するものがなくなるまで、学習されることがわかる。DRトレーニングアルゴリズム30に従って出力に対して単一のパターンを学習するプロセス40の好適な実施形態を図3に示す。
【0116】
プロセス40は、ブロック41においてNNの第1層で始まる。そして、トレーニングセット内の各入力ベクトルについて、以下が行われる。
a)ブロック42で、入力層に加えられた入力ベクトルに基づく制約条件が次の層の各LTGについて構築される。制約条件を生成するために、(LTGを定義した箇所ですでに検討した)LTGの定義が用いられ、入力ベクトルXi及びLTGの重みベクトルwがLTGの閾値TとNNの出力に基づいて関係を形成する。従って、LTGが1を生成するのであれば、構築される制約条件は以下のようになる。
xi・w>T→1
又は、出力が0であれば、生成される制約条件は以下の通りとなる。
xi・w<T→0
b)またブロック42において、入力ベクトルxiから構築された制約条件がこの層内のどのLTGでも学習することができるかどうかを判定するテストが行われる。制約条件を学習するということは、LTGの制約条件セットに制約条件を追加することができるということである。制約条件は、数的な解答を見つけることができれば、追加することができる。アルゴリズムにとって、どのような数的解答であるかは関心のないことであり、見出すことができることが必要なだけである。これは、制約条件間に共通部分がなければならないことと等価である。このテストは、LTGをNNに追加する基準を構成する。入力ベクトルから形成される制約条件を学習することができるLTGがなければ、これが新たなLTGをNNに割り当てる基準となる。
・LTGが入力ベクトルを学習することができる場合、ブロック43でLTGの制約条件セットに制約条件が追加される。新たな制約条件の追加により、LTGの有効化を可能とするLTGの重み空間の領域が減少する。次いでこの層からの出力は、ブロック45で次の層に加えられ、NNが正しい出力を出力するまでプロセス40が繰り返される(ブロック42に戻る)。ブロック44において、現在の層が出力層であるかどうかを判定し、そうである場合には、プロセス40はブロック46で完結し、さらに学習するパターンがある場合には次のパターンが学習される。ある時点において1つの層内で入力ベクトルを学習できなければ、これはLTGの割当ての根拠となる(図3のブロック47〜49で示される。これに続くステップ4を参照)。各層は所望のNN出力を出力することができるLTGを有していなければならない。前の層からの入力を受信する層の目的は、所望のNN出力を生成するために前の層の出力を組み合わせることにある。
・すでに述べたように、ブロック44での確認後、ブロック45において、NNが正しい回答を出力しさらに学習すべき入力ベクトルが存在する場合には、プロセス40はステップ3の最初(ブロック42)に戻る。
・ブロック44において、NNが正しい回答を生成しさらに学習すべき入力ベクトルが存在しない場合には、このNNのトレーニング出力はトレーニングを終了し、プロセス40はブロック46で完結し、さらに学習するパターンがある場合には次のパターンが学習される。
・ブロック35において、DRトレーニングアルゴリズム30によりさらにトレーニングするNNの出力があると判定された場合には、図2に示すようにDRトレーニングプロセスは初期化ステップ1(ブロック32)に戻る。
【0117】
(4)必要に応じたNNに新たなLTGの割当て
新たなLTGを必要に応じてNNに割り当てるプロセスは、概ね図3のブロック47〜49により表される。ブロック47はNNの中間層への新たなLTGの割当てを示し、ブロック49はNNへの新たな出力LTGの割当てを示す。新たな中間層LTGをNNに割り当てるプロセス50の好適な実施形態を、図4のフロー図に示す。同様に、新たな出力をNNに割り当てるプロセス60の好適な実施形態を、図5のフロー図に示す。この新たなLTGをNNに割り当てるプロセス50、60をよりよく理解するために、本発明のDRトレーニングアルゴリズム30のプロセス50、60によるNN70の構築を模式的に示す図6a及び図6bを参照する。
【0118】
図3に示す出力について単一のパターンを学習する好適なプロセス40において、新たな出力LTGの割当て(ブロック49)の前に行われるものとして新たな中間層LTGのNNへの割当て(ブロック47)が示される。図3において、ブロック42でLTGが入力ベクトル(又はパターン)を学習できない場合には、ブロック47で新たなLTGが現在の(中間)層に追加されて入力ベクトルを学習することが示される。ブロック47で新たなLTGが現在の層に追加された後、ブロック48でテストが行われて、現在の層がNNの出力層であるかどうかが判定される。ブロック48で現在の層がNNの出力層ではないと判定された場合、プロセス40はブロック45に続き、この(現在の)層からの出力が次の層に加えられる。その後、NNが先に検討したように正しい出力を出力するまで、プロセス40は繰り返される(ブロック42に戻る)。ブロック48で現在の層がNNの出力層であると判定された場合、プロセス40はブロック49に続き、新たな出力LTGがNNに追加される。ブロック49で新たな出力LTGがNNに割り当てられた後、プロセス40はブロック46で完結し、さらに学習するパターンがある場合には次のパターンが学習される。
【0119】
図3のプロセス40は新たな出力LTGがNNに割り当てられる(ブロック49)前の新たなLTGの中間層(ブロック47)への割当てを示すが、言うまでもなく、新たな中間層LTGの割当て前に新たな出力LTGをNNに割り当てることができる。従って、本発明は特定の例に限定されるものではない。本発明のDRトレーニングアルゴリズム30に従って、新たな出力LTGが新たな中間層LTGの割当て前にNNに割り当てることができることを説明するために、図6a及び図6bのNN70へのLTGの割当てを、図3の好適なプロセス40に示した順序とは逆の順序で示す。
【0120】
以下、新たな出力LTGをNN70に割り当てるプロセス60(図6a及び図6b)を、図5を参照して説明する。
・ブロック42で出力LTGが入力ベクトルに必要な出力を生成できない場合(図3)、図6a及び図3のブロック49に示すように新たな出力LTGがNN70に割り当てられる。
I.現在の出力LTGであるLTG−Aは、N層にある。図6a(i)参照。別のLTGであるLTG−Bが、N層に追加される。図6a(ii)参照。LTG−Bの制約条件セットが、好ましくは空のセットに初期化される。新たなLTGであるLTG−BのNN70のN層への割当ては、図5のフロー図には示さないが、以下に説明するブロック61の一部であることは言うまでもない。同様に、新たなLTGであるLTG−BのN層への割当ては、新たな出力LTGであるLTG−CのN+l層への割当ての後に起こってもよい。
II.ブロック61において、出力Ojについてのこの層の1つの新たなLTGであるLTG−Cを有する新たな出力層であるN+l層が追加される。そして、LTG−Cの制約条件セットが、好ましくはステップV及びVIに従って初期化される。
III.ブロック62でN層>1である場合、LTG−Aに接続された前の層であるN−1層(図示せず)のLTGから新たなLTGであるLTG−Bに接続が追加される。
IV.またブロック62において、N層のLTG−A及びLTG−Bのそれぞれの出力がN+1層の新たな出力LTGであるLTG−Cの入力に接続される。
V.学習される入力ベクトルが出力0を生成する場合、ブロック63において以下を行う。
a)N層において新たなLTG−Bがこの層の制約条件に入力を学習するようトレーニングされる。これらのLTGであるLTG−B及びLTG−Cは、LTG−Aがこのを学習できなかったために追加される。
b)LTG−Aからの制約条件は、新たなLTGであるLTG−Bの制約条件セットにコピーされ、LTG−Bで全ての制約条件が≧閾値となるよう設定する。
c)ANDを形成する制約条件が、N+1層において、N層のLTG−AとLTG−Bの間の新たな出力LTGであるLTG−Cに追加される。
VI.学習される入力ベクトルが出力1を生成する場合、ブロック64において以下を行う。
a)N層において新たなLTG−Bがこの入力の制約条件を学習するようトレーニングされる。
b)LTG−Aからの制約条件は、新たなLTGであるLTG−Bの制約条件セットにコピーされ、LTG−Bで全ての制約条件を<閾値に設定する。
c)ORを形成する制約条件が、N+1層において、N層のLTG−AとLTG−Bの間の新たな出力LTGであるLTG−Cに追加される。
・ブロック42(図3)でN層のLTGが必要な出力を生成することを学習できない場合、新たなLTGであるLTG−Dが図6b及び図3のブロック47に示すようにNN70のその層であるN層に割り当てられる。
【0121】
以下、新たな中間層LTGをNN70に割り当てるプロセス50(図6a及び図6b)を、図4を参照して説明する。
I.ブロック51で、どのLTGもデータを学習することができないN層に追加LTGであるLTG−Dが追加される。次いで、制約条件セットが好ましくはステップV及びVIに従って初期化される。残りのステップであるステップII〜VIは、概ね置き換え可能であり、従ってこれらの手続きステップの順序は図4に示すものから変化してもよい。
II.ブロック53で、このNN出力Ojについて、LTG−Dの出力からN層の出力層を形成するN+1層内の全LTGへの接続が行われる。ブロック54で、N層内のその他のLTGであるLTG−A及びBにより学習されてはならないことに基づいて、N+1層内のLTG(この場合はLTG−C)が新たなLTGであるLTG−Dからの入力をどうすればよいかがわかるように、これらのLTGが更新される。
III.N層>1のとき、ブロック52で、このNN出力Ojについて、前の層であるN−1層(図示せず)の入力を形成する全てのLTGから、LTG−Dに入力接続が追加される。
IV.ブロック55で、新たなLTGであるLTG−DがN層が学習できない入力ベクトルを学習するようトレーニングされる。新たなLTGであるLTG−DがN層内の他のLTGが学習できない入力ベクトルを学習するトレーニングプロセス(ブロック55)をよりよく理解するために、関連する好適な手続きのより詳細な分析を含むさらなるブロックであるブロック56が設けられる。
V.学習する入力ベクトルが出力0を生成する場合、ブロック57及び58において、以下が行われる。
a)この層であるN層内の以前の最後のLTGであるLTG−Bの制約条件が、新たなLTGであるLTG−D制約条件セットにコピーされて(ブロック57)、全ての制約条件を≧新たな閾値に設定する(ブロック58)。
b)LTG−Cは、N層内のLTG−D及びその他のLTGからの入力についてその制約条件セット内でANDを形成する。ブロック54を参照のこと。論理は(A・・・B)かつDである。
VI.学習する入力ベクトルが出力1を生成する場合、ブロック57及び59において、以下が行われる。
a)この層であるN層内の以前の最後のLTGであるLTG−Bの制約条件が、新たなLTGであるLTG−D制約条件セットにコピーされ(ブロック57)、全ての制約条件を<新たな閾値に設定する(ブロック59)。
b)LTG−Cは、N層内のLTG−D及びその他のLTGからの入力についてその制約条件セット内でORを形成する。ブロック54を参照のこと。論理は(A・・・B)又はDである。
・図3を参照すると、新たなLTGであるLTG−Dの割当ての後、ブロック47で、NN70が正しい回答を出力しさらに学習すべき入力ベクトルが存在する(ブロック48)場合には、プロセス40はステップ3の最初(ブロック45を経由してブロック42)に戻る。
また図3を参照すると、新たなLTGであるLTG−Dの割当ての後、ブロック47で、NN70が正しい回答を出力しさらに学習すべき入力ベクトルが存在しないがさらに学習すべき出力が存在する(ブロック48)場合には、プロセス40は初期化ステップ1(図2のブロック32)に戻る。
【0122】
言うまでもなく、制約条件をN層内で以前の最後のLTGであるLTG−Bから新たなLTGであるLTG−Dにコピーするときには、論理のその他の組み合わせも可能である。ここに示した具体例は、LTGをNN70に割り当てるいずれの場合(プロセス50、60)にも機能する単に好適な論理構成である。用いられる特定の学習論理は本発明に必須のものではないが、データはなんらかの形でコピーされる必要があり、そうでなければNN70はそれまでに学習したことを全て完全に忘れてしまうことになる。
【0123】
DRトレーニングアルゴリズム30によるNN70へのLTGの割当てはどのような順序でも行うことができることは言うまでもない。従って、図6a及び図6bによれば、LTG−Dは、LTG−Cが新たな出力層であるN層+1に追加される前に、N層に追加することができたはずである。同様に、手続きステップであるステップI〜VIは、LTGをNN70に割り当てるいずれの場合(プロセス50、60)にも、概ね置き換え可能であり、そのため、本発明は特定のステップの順序に限定されるものではないことも言うまでもない。
【0124】
(DRトレーニングアルゴリズムのフェーズの詳細な説明)DRトレーニングアルゴリズム30及び本発明のその他の様態をよりよく理解するために、以下にアルゴリズム30の各フェーズ又はステップをより詳細に説明する。このトレーニングアルゴリズム30は、フィードフォワードNNアーキテクチャに基づいており、これはトレーニング条件を満たす単一の数値を見つけることを試みるLTGのNNをトレーニングする従来のアプローチとは異なっている。そのかわり、すでに述べたように、このアプローチは、重み空間内に各LTGについてトレーニング条件を満たす領域を見つけ、これはトレーニングデータセットの単一のパスで学習し、LTGを動的にNNに割り当てることを可能とし、入力ベクトルが分類可能であるか否かを判定することができ、トレーニング中に学習された規則がNNから容易に抽出できるようにする。
【0125】
初期化:特に、図2のDRトレーニングアルゴリズム30のブロック32を参照。出力のトレーニング開始には、少なくとも2つのステップが含まれることが好ましい。トレーニング対象の出力の選択、及びその出力に対する出力LTGの追加である。
【0126】
第1ステップ・学習対象出力の選択:NNは、NNの各出力の生成をデータセットごとに別々に学習する。各出力すなわち出力ベクトルの次元は、別の学習プロセスとして扱われる。これは、出力ベクトルの各次元が独立しているため、正当化される。
【0127】
トレーニングアルゴリズムにかかわらず、各LTGは、共通入力を共有するにもかかわらず、中間層にしろNNの出力層にしろ、その層内の他のLTGとは別個に機能する。これは、バックプロパゲーションで訓練されたNNで問題を引き起こす。すなわち、NNの誤差がNNを通してフィードバックされるとき、どの重みを増減するべきなのかを判定することができない。Fahlmanらは、これを信用割り当て問題(credit assignment problem)と呼んだ。この新たなアルゴリズム30は、各LTGの独立行動を利用し、各出力LTGを別々にトレーニングする。これがNNの構築方法の主原則となる。出力ベクトルの次元が選択されると、出力LTGがNNに追加される。
【0128】
第2ステップ・出力LTGの追加:初めに、入力層のLTGは完全に出力層LTGに接続される。また、出力LTG内の制約条件セットは、空であることが好ましい。そして出力LTGにより学習されるデータを準備することができる。
【0129】
データ準備:特に、図2のDRトレーニングアルゴリズム30のブロック31及び33を参照。これは単一パスのトレーニングアルゴリズムであるため、データがNNに提示される順番が重要になる。データの準備には、少なくとも4つのステップが含まれることが好ましい。
【0130】
第1ステップとして、NNに提示されるデータがトレーニングに適した適切なフォーマットでない場合、図2のブロック31に示すように、データセットはNNに提示される前に適切なフォーマットに変換されることが好ましい。
【0131】
第2ステップにおいてはデータの矛盾をチェックする。矛盾したデータはNNのトレーニングの際に問題を引き起こす。相反する出力を生成する入力ベクトルXiの例が2つ以上あるため、データの矛盾をチェックする必要がある。言い換えると、Xiが出力0を生成するときに、出力1も生成される。NNはこのデータを学習することができるが、データは矛盾しており、この問題を回避するためにNNが固有の入力ベクトルでトレーニングされることが好適である。このステップは、図2のDRトレーニングアルゴリズム30のブロック31又はブロック33で行うことができる。
【0132】
第3ステップにおいては、トレーニングセット内のデータをNNのトレーニング前に順序付ける。0ベクトルの学習によりシステムの多くは不安定になり、これには否定の制約条件及びデータセット学習をバックプロパゲーションでトレーニングされたフィードフォワードNNを備えるシンプレックス法を含み、ここでは入力ベクトル0は出力が1であることを要求する。これがNNにとって問題である理由は、ニューロンの閾値が負数であることにある。本発明のDRトレーニングアルゴリズム30は、トレーニングセット内のデータをNNのトレーニング前に順序付けることにより、このような状況を回避する。0ベクトルは、全ての入力次元が0である入力ベクトルと定義される。例えば、3入力のニューロン又はNNについての0ベクトルは、[0 0 0]である。0ベクトルがトレーニングセット内に利用可能である場合、これが最初にNNにより学習されるが、これにより0ベクトルがNNに1を出力させる場合にNNに起こりうる不安定性を回避するからである。
【0133】
第4ステップ:入力ベクトル0が既知である場合、利用可能であれば、これが最初に学習されるべきである。そして、特にトレーニング中にLTGがNNに割り当てられる必要がある場合には、ブロック33でNNのトレーニング前に入力ベクトルが何らかの順番にソートされることが好ましい。本発明のアルゴリズム30は、データがNNに提示されたまま学習されるため、ビルトインのサーチメカニズムを有していない。これは、DR学習がNNを単一のパスでトレーニングするため、NNが提示された全てのデータセットを学習できなければならないからである。
【0134】
本発明のさらなる様態によれば、好適なソート方法(ブロック33)は、データをそれぞれ1又は0を生成するセットにソートし、データセットによっては1又は0を生成するこれらのベクトルを最初に学習する。大まかなガイドラインとして、0→0ならば、0を出力するベクトルを最初に学習し、そうでなければ1を出力するベクトルを最初に学習する。
【0135】
別の考えられるソート方法としては、生物学的な脳のソート技術の1つをシミュレートするSOMすなわち自己組織化マップを使用する方法がある。生物学的な脳は、大脳皮質の表面上でSOMに類似のメカニズムを用いる。SOMは、入力ベクトルをデータセットにおける特徴の2次元クラス表現に組織化又はソートすることにより機能する。特徴は入力ベクトルをその出力を参照することなく分類する。SOMで特定の特徴に属するものとして分類された入力ベクトルは、特徴に分離及びソート可能であり、トレーニングメカニズムに与えるために収集可能である。このようにして、DR学習はデータセットの特定の特徴を分類する方法を学習するLTGをまとめてクラスター化することができる。
【0136】
この構造は3次元的にも想像可能であり2次元SOM及び3次元はDRにトレーニングされたNNである。おおよそドーム型の生物学的な脳を単純化して見ると、SOMが表面にありフィードフォワードNNが表面から発生している。1つの考えられるモデルとしては、大脳皮質がフィードフォワードニューロンと相互に接続されたSOMの層からなるというものがある。
【0137】
言うまでもなく、本発明のDRトレーニングアルゴリズム30で用いることのできるソート技術としては数多く考えることができ、そのため、本発明は特定の例に限定されるものではない。
【0138】
NNへのデータを加える:特に、図2のDRトレーニングアルゴリズム30のブロック34及び35、より詳細には図3のプロセス40を参照。本発明のDRトレーニングアルゴリズム30は、好ましくは先に述べたようなLTGを用いる。さらに、DRトレーニングアルゴリズム30、好ましくは、移転機能としてヘヴィサイド、又はステップ機能を用いる。このタイプのゲートは、入力空間のクラス間にはっきりとした境界を設け、入力ベクトルのクラスを綺麗に分けるため、用いられることが好ましい。
【0139】
本発明のDRトレーニングアルゴリズム30は、重み及び閾値についてトレーニング条件を満たす単一の数値を見出すのではなく、LTGの重み空間を制約することにより学習するため、LTGでうまく機能する。そのため、重み空間内で重み及び閾値を満たす単一の値を見出すかわりに、空間の領域が見出される。制約条件は、教師ありトレーニングの概念に従って、入力ベクトル及び所望の出力から形成される。
【0140】
LTGの閾値Tは、定数として扱われる。Kohaviが示すように、LTGの閾値はそのようなものとして扱うことができる。Kohaviは補空間重み(論理NOTを用いて)を用い、T<=0及びT>0の両方の閾値を説明する。本発明のトレーニングアルゴリズム30において、データは、トレーニング中に、T<=0であるかT>0であるかを判定する。
【0141】
もともとのLTGに行われる修正は制約条件セットを含むことだけであり、これは初期化されてからにされる。これは、重みとニューロンの閾値との間の関係についてLTGが学習したことを格納するために用いられるので、実装に必要なことである。すでに述べたように、本発明は制約条件の使用のみに限定されるものではない。制約条件は、入力重みのと閾値との間の関係を表すだけであり、単に本発明の好適な特徴である。
【0142】
単一のLTGをトレーニングする制約条件が構築される方法について、以下で検討する。
【0143】
単一のLTGについての制約の構築:特に、図3のDRトレーニングアルゴリズム30に従って出力に対する単一のパターンを学習する好適なプロセス40を参照。LTGに、ブロック42で学習することになる入力ベクトル(又はパターン)が提示される。これらの入力ベクトルは、LTGの制約条件セットに記録される制約条件に変換される。学習に先立って、制約条件セットは空に初期化されることが好ましい。
【0144】
トレーニングの開始のために、制約条件を構築する際に第1ステップ(ブロック42)で、各入力ベクトルxiがLTGの入力重みベクトルwに加えられxi・wを生成する。積xi・wは、LTGの行動を定義する式1.1に基づいて、LTGの閾値Tとの考えられる関係を少なくとも2つ有する。これらの2つの考えられる関係は、それぞれ関連付けられた出力を生成する。Tに対する関係及び関連付けられた出力は、式2.1及び2.2で表される。
xi・w≧T→1(2.1)
又は
xi・w<T→0(2.2)
【0145】
教師あり学習については、本明細書ですでに述べている。教師あり学習の原則を用いて、必要とされる出力が1であれば、必要な制約条件はxi・w≧Tである。同様に、生成される出力が0であれば、wはxi・w<Tであるように制約される。新たな制約条件が、この制約条件及びその他の以前に追加された制約条件が解答を有するならば、そのLTGの制約条件セットに追加される。これについては、後でより詳細に検討する。入力ベクトル及びLTGの重みから構築される制約条件のLTGの制約条件セットへの追加プロセスは、トレーニングセット中のn個の入力ベクトル全てについて繰り返される。
【0146】
図7に、2入力LTGのNN80の例を示す。この例では、重みベクトルを[w1 w2]T、入力ベクトルを[x1 x2]、[Oj]をLTGの出力とする。入力[0 1]について出力が1になるのであれば、LTG82に対する制約条件はw2>Tとなる。別の入力ベクトル[1 1]が出力0を生成すると予測されるならば、制約条件w1+w2<Tも追加される。これらの2つの入力が、{w2>T,w1+w2<T}というこのLTG82についての制約条件セットとなる。制約条件セットを構築することにより、LTG82は入力/出力の分類を学習する。
【0147】
以上、LTGをトレーニングする入力ベクトルから制約条件を構築する方法を説明してきた。新たな入力ベクトルが学習され、関連付けられた制約条件をLTGについての制約条件セットに追加できるようになる前に、LTGが入力ベクトルを形成する制約条件を学習することができるのかどうかを確認しなければならない。以下、新たな入力ベクトルを学習することができるか否か、ひいては制約条件がLTGの制約条件セットに追加されるか否かを判定する、入力ベクトルの学習の基準に関する検討を行う。
【0148】
入力ベクトル学習の基準:特に、図3プロセス40のブロック42を参照。制約条件をLTGの制約条件セットに追加する際の最も基本的な問題は、教えられたことを学習することができるかどうかを判定することである。これについては、本明細書においてすでにより詳細に述べている。
【0149】
LTGが入力ベクトルを学習することができるかどうかについてのテストは、LTGのNNを構築する際の基本である。単一のLTGが全てのデータを学習することができない場合、追加のLTGが必要となる。
【0150】
本発明のDRトレーニングアルゴリズム30は入力ベクトルを関連付けられた出力から制約条件へと変換するため、新たな制約条件は重み空間内にLTGがすでに学習した全ての制約条件に解答があるかどうかを判定するためにテストされてよい。これはシンプレックス法を用いて行われてもよい。重み及び閾値のそれぞれについて特定の数値を見出す必要はないが、このテストは、重み及び閾値について確実に数値を見出すことができるようにする。制約条件を満たす数的解答を見つけることができれば十分である。
【0151】
以下、重み及び閾値のそれぞれについて特定の数的解答を見出す上で、学習問題への一般的な解答を見出すことが好ましい理由について検討する。
【0152】
従来、一般的な解答を見出すことができなかったため、重みのそれぞれについて単一の数値が見出された。
【0153】
バックプロパゲーション等の従来のトレーニング方法でトレーニングされたNNの重みについて解答を見出すことができるならば、重みが以下の数式から選択されるとき全重みについて無限の数の解答が存在することになる。
【0154】
【数11】
この無限の数の解答は、各LTGについての重み空間に領域を形成する。通常はバックプロパゲーションで選択される解答は、予め指定された許容誤差内のNNを生成する見出される数値の最初のセットであることが多い。各LTGについて見いだされるwは、LTGの重み空間内のこの領域の単一の値である。
【0155】
この重みの値の解答は、トレーニング中にNNに加えられた入力値に基づく平均のようなものであり、値の範囲が単一の解答を見出すために失われるため、両極端が失われている。
【0156】
本発明に係るニューロンのトレーニング方法は、一般的な解答が見出されるため、トレーニング中に学習された全情報が保存されるようにする。一般的な解答は、重み空間内の領域を分析してLTGを有効化する重みと有効化しない重みとの間の境界を見出せるようにする。一般的な解答は、全ては互いに相対的であるように見えるため相対的な関係を定義し、そのほかの全てに関してのみ理解可能である。一般的な解答を見出すことにより重み間の関係を分析することができ、その結果、入力間の関係を分析することがでる。最後に、絶対に必要であれば、データセット内の関係をはっきりと具現化する特定の数値を見出すことができる。
【0157】
従って、本発明のDRトレーニングアルゴリズム30で訓練されたLTGにより新たな制約条件が学習可能であるかどうかを判定するテストが利用可能である。このテストは、またLTGをNNに追加する基準である。入力ベクトルを学習することができなければ、LTGはNNに追加される。
【0158】
LTGのNNへの割当て:特に、図3プロセス40のブロック47及び49、並びに図4及び図5の本発明のDRトレーニングアルゴリズム30に従ってLTGをNNに割り当てる好適なプロセス50、60を参照。単一のLTGのトレーニング方法についてはすでに述べた。単一のLTGの行動は、LTGのNNを構築するための基礎を形成する。単一のLTGのトレーニングは、以下の3ステップを含む。1)入力ベクトルを重みと閾値との間の関係に変換する。2)LTGが新たな入力ベクトルを学習可能かどうかを判定する。LTGが入力ベクトルを学習可能かどうかの基準は、制約条件がLTGの制約条件セットに追加される際に数的解答が見出されるか否かによって判定される。3)LTGが入力ベクトルを学習可能であれば、入力ベクトルから構築される制約条件がLTGの制約条件セットに追加される。
【0159】
LTGがブロック42で入力ベクトルを学習することができなければ、追加のLTGが必要となる。従って、ステップ2はLTGをNNに割り当てる基本的な基準を形成する。以下、NNを構築するためにどのようにLTGを追加するかを説明する。LTGは、入力ベクトルが必要な出力を生成できないときにのみ割り当てられる。
【0160】
このプロセスは、以下のステップを含む。1)新たなLTGとすでにNN内にあるLTGとの間の接続を形成する(図4のブロック52及び53、図5のブロック62)。2)新たなLTGによりNNがすでに学習したことを忘れないようにする。
【0161】
以下、これらのプロセスのそれぞれをより詳細に説明する。まず、NNアーキテクチャに対する一般的なアプローチについて述べる。その後、出力の選択及び出力を別の問題へ分離することの正当化について述べる。
【0162】
NNアーキテクチャ:初めに、入力LTGが完全に出力LTGに接続される。入力LTG及び出力LTGの数は、NNによって学習されるデータセットに依存する。各出力は、その他の出力の独立した学習タスクとみなされる(図2のブロック32)。
【0163】
ここでの説明のために、以下ではまず単一出力のNNについて考える。本発明のDRトレーニングアルゴリズム30は、トポロジを成長させ、バックプロパゲーションを用いて形成される従来のNNに類似のNNを形成する。これはユニットを中間層に割当てることができ(図4のプロセス50)、単一のLTGを含む新たな出力層を追加することができる(図5のプロセス60)。そして、以前の出力層が、NN内の中間層となる。この新たな中間層は、これに割り当てられた追加のLTGを有し(図3のブロック47)、その層内の他のLTGが学習できなかったことを学習する。3つの出力O1、O2、O3を有するNN90の例を図8に示す。NN90は、Modulo−8問題データセットを用いて本発明のDRトレーニングアルゴリズム30でトレーニングされた。
【0164】
図8に示すNN90において、O3は中間層が完全なトレーニング後に必要とされる解答を生成することができることを必要としなかったことがわかる。しかしながら、O1及びO2は中間層を必要とした。トレーニングの始めは、閾値T11及びT13のLTGがもともとの出力であった。しかしながら、これらはデータを学習することができずT12が中間層92に追加され、T21がにO1ついての出力となった。同様に、T13がO2を生成できなかったときにはT14が追加された。
【0165】
本明細書で用いるLTGを指定する慣例は、LTGは閾値Tを有し、層Lに属するということである。どの機能も3層以内で学習することができるので、層の識別には1桁だけが割り当てられる。各層はN個のLTGを有しており、これらはその層内を通してk=1・・Nと数をつけられる。各LTGはLTGLKと呼ばれ、これに関連付けられたTLKと呼ばれる閾値を有する。各LTGは入力接続重みのセットを有する。重みベクトルの個々の要素はWLKjと呼ばれ、ここでjは受け付けられた入力が送られてきた前の層のLTGである。
【0166】
NNの構築:LTGは、入力ベクトルがNNによって学習されることができないときのみNNに追加される(ブロック42参照)。LTGをNNに追加する必要がある場合には、2つの場合がある。(1)まず、出力が必要とされる出力を生成できない場合である(ブロック49)。(2)次に、中間層内のどのLTGも入力ベクトルを学習することができない場合である(ブロック47)。すでに述べたように、出力LTGと中間層LTGのNNへの割当てはどのような順序であってもよい。
【0167】
LTGをNNに追加するときに考慮することが好ましいことは以下の通りである。
a)NN内の既存のLTGから形成することが必要な全ての接続は、新たなLTGへと形成される(図4のブロック52及び53、及び図5のブロック62)。
b)新たなLTGをNNに追加した後、新たに追加されたLTGがそれまでにNNが学習したことをすべて学習することが重要である(ブロック55)。これにより、NNがそれまでに学習することを忘れることを意味する健忘症と呼ばれる状態を避けることができる。どのようにしてこれが回避されるのかについては、本明細書の後ろで学習論理について述べるときに検討する。
c)NN内にすでに存在し新たに割り当てられたLTGからの入力を受け付けることになるLTGは、入力を受け付けるように処理されなければならない(ブロック54)。新たに割り当てられたLTGからこの新たな入力を受け付けることになるLTGの処理ができない場合、これらは新たなLTGの出力を無視する。
【0168】
LTGの中間層への追加:特に、図4の本発明のDRトレーニングアルゴリズム30に従って新たなLTGをNNの中間層に割り当てるプロセス50を参照。ここでは、入力ベクトルが最初に出力を1つだけ有するNNに加えられる場合について考える。第1中間層の最初のLTGで制約条件が形成される。層内の第1LTGが前述のテストで判定された制約条件を学習できない場合(図3のブロック42)、この層内の次のLTGは、層内のLTGの1つがこれを学習するまで、その出力等で入力ベクトルから形成される制約条件を学習しようとする。しかしながら、この層内のいかなるLTGも制約条件を学習することができない場合、さらにLTGを層に追加してこれを学習しなければならない(ブロック47)。これは図6bのNN70に示しており、ここでLTG−DがN層に追加される。
【0169】
例えば、図6bにおいて、LTG−A又はLTG−Bが新たな入力ベクトルを学習することができない場合、図示されるようにLTG−DがN層に追加される。LTG−Dは、この層すなわちN層への入力に基づいて新たな制約条件を学習する(ブロック55又は56)。この新たなLTGであるLTG−Dの出力は、出力Ojを有するNN70の出力層であるN+1層内の出力LTGであるLTG−Cへの入力にもなる(ブロック53及び54)。
【0170】
次に、任意の中間層について考える。入力ベクトルがNNに加えられるとき、第1中間層の各LTGは、LTGのトレーニングに依存して有効化される又はされないことにより応答する。これらのLTGの応答は、次の層への入力ベクトルとして機能し、これは次にそのトレーニング等を前提として応答する。入力ベクトルの結果、受け付ける入力の分類を学習することができない中間層がある場合(ブロック42)、新たなLTGがその層に追加される(図4参照)。このLTGの中間層への追加プロセスは、全ての入力データが学習されるまで繰り返される。
【0171】
LTGを確立した中間層に動的に割り当てる好適な形式化又はプロセス50は、以下のアルゴリズムで行われる。
a)N−1層内の全てのLTGへの接続を形成する(ブロック52)。これらの接続は、新たに割り当てられたLTGへの入力の役割を果たす。
b)学習されている出力についてN+1層内の全てのLTGへの接続を形成する(ブロック53)。これらの接続は、新たに割り当てられたLTGからの出力の役割を果たす。
c)N+1層内のLTGは、N層内の既存のLTGと新たなLTGとの間の論理関係を形成する(ブロック54)。
d)新たに割り当てられたLTGは、N層内の他のLTGが学習したことで処理される(ブロック55又は56)。
【0172】
十分に複雑なデータでトレーニングされた後にNN100が構築された接続形態を図9に示す。
【0173】
LTG−HはN層のNN100に割り当てられる(ブロック51)。LTG−Hからの出力接続は、出力層ではなく次の中間層であるN層+1内のLTGF及びGの入力へ形成される(ブロック53)。これについては、個別の学習タスクとして各出力が解決されることについて検討した際に、すでに述べた。前の層であるN−1層内のLTGであるLTG−A、B及びDからの入力接続が確立される(ブロック52)。
【0174】
まとめると、中間層LTGのいずれもその層への入力により形成された制約条件を学習することができない場合、すなわち解答がない場合、LTGが中間層に追加される。新たなLTGは、その出力を次の層内のOjに関連する全LTGに接続する。出力LTGが入力の制約条件を学習できない場合、現在の出力層LTGは中間層となり、図5のプロセス60に従って新たな出力がNNへの出力として追加される。
【0175】
LTGを中間層に追加する方法について説明したので、次に、新たな出力をNNに追加する方法を検討する。
【0176】
新たな出力の追加:特に、図5のプロセス60を参照。本発明のDRトレーニングアルゴリズム30に従って新たな出力LTGをNNに割り当てる。トレーニングに出力Ojを選択した後(図2のブロック32)、すでに述べたように、全ての入力ソースが単一の出力LTGに直接接続される。単一の出力LTGは、同じくすでに図3を参照して説明したように、入力ベクトルをLTGに連続的に加えて制約条件を形成することによりトレーニングされる。図10a(i)において、現在トレーニング中の出力Ojを有する出力層112に配された単一のLTGであるLTG−Aを有するNN110の模式図を示す。
【0177】
LTG−Aの制約条件セットの制約条件が、入力ベクトルが形成する各制約条件でテストされる(ブロック42)。用いられるテストについてはすでに述べた。
【0178】
新たな制約条件が既存の制約条件セットで解答を持つ場合、制約条件セットに追加される。しかしながら、解答がない場合(ブロック42)、図10a(ii)に示すように、別の出力層114が追加され、新たなLTGであるLTG−Cが追加される(ブロック61)。LTG−CがNN110の新たな出力LTGOjとなる。中間層112(元の出力層112)内に入力ベクトルを学習できなかったLTGであるLTG−Aがあったため、図10a(ii)に示すように、新たなLTGであるLTG−Bが中間層112に追加される(これもブロック61)。LTG−Aが学習することができなかった入力ベクトルは、LTG−Bによって学習できるようになる。LTG−A及びLTG−Bの出力は、出力層114のLTG−Cの入力に接続される(ブロック62)。LTG−A及びBは、NN110の中間層112を形成する。
【0179】
また図10bのNN110のLTG−Cが学習できない入力があった場合、新たな中間層114(以前の出力層114)が追加されて、新たな出力層116がつくられる。このようにして、新たな中間層が作られて出力層が追加される。新たな中間層LTGであるLTGEが中間層114に追加され、新たな出力LTGであるLTGFが新たな出力層116に追加される図10bを参照する。
【0180】
まとめると、出力LTGが入力ベクトルを学習できない場合、現在の出力層としての同じ層に別のLTGが追加されて、全ての入力が直接これに接続される。このLTGは古い出力が学習できなかった入力を学習する。追加のLTGは次の層に追加される。このLTGへの入力は、NNの古い出力であり、その層に新たに追加されたLTGである。
【0181】
NNに動的に割り当てられたLTGに接続を追加する方法を定めたので、次は、NNがすでに学習したことを再生し続けるようにLTGをトレーニングする方法を考慮することが重要である。以下、これについて検討する。
【0182】
論理の学習:本発明のDRトレーニングアルゴリズム30は単一パスアルゴリズムであるので、LTGがNNに追加されるときでも、NNは以前に学習した入力ベクトルに対して正しい応答を返さなければならない。従って、LTGの追加によりNNがすでに学習したことを忘れることがないようにしなければならない。これは、以下のような場合に起こる。(a)LTGが中間層に割り当てられる。(b)新たな出力層がNNに追加される。この場合、新たなLTGは中間層に割り当てられる。
【0183】
この問題を回避するために:(a)新たに中間層に割り当てられたLTGは、特定の論理規則に従ってこの層の他のLTGが学習したことで処理されなければならない(図4のブロック55又は56)。(b)また、新たに割り当てられたLTGが割り当てられている層から直接入力を受け付けるLTGの層は、新たに割り当てられたLTGの所望の行動に基づいて学習したことを更新する必要がある(ブロック54)。この場合は新たな出力層の割当てをカバーする。
【0184】
次に、新たに割り当てられたLTGが学習することについて検討する。まず、図10a(i)に示すNN等の、中間層のないNNを考える。
【0185】
LTGが入力ベクトルを学習できない状況には少なくとも2つあり、これらは以下の通りである。(1)学習中の入力ベクトルが1を出力する必要があるが、LTGは以前に学習したことに基づいてこの入力ベクトルについて0しか出力できない場合。(2)学習中の入力ベクトルが0を出力する必要があるが、LTGは以前に学習したことに基づいてこの入力ベクトルについて1しか出力できない場合。
【0186】
すでに述べたように、このような状況においては、図10a(ii)に示すように、新たな出力がNNに割り当てられる。
【0187】
続く層がLTGが割り当てられた中間層からの入力を結合することができる考えられる少なくとも2つの方法は、以下の通りである。(1)出力LTGは中間層LTGからの入力ベクトルを論理ORで結合する(ブロック64)。(2)出力LTGは中間層LTGからの入力ベクトルを論理ANDで結合する(ブロック63)。
【0188】
ORの学習:特に、図5のプロセス60のブロック64を参照。初めに、LTGが学習することができなかった入力ベクトルについて検討する。ベクトルがNNに1を出力させることになっており、LTGが以前に学習したことの結果としてLTGが0しか出力できない場合、新たな出力はその入力間にORを形成する必要がある。
【0189】
再び図l0a(ii)を参照すると、NN110の出力であるLTG−CはLTG−Aが有効化されるとき有効化されることが必要であるが、この場合、LTG−Aは有効化される必要があるができないため、LTG−Bが入力の特徴を学習する。LTG−Bは、また、NN110により以前に学習された入力ベクトルを学習する必要がある。これにより、LTG−Bは出力が有効化されるべきでないときに有効化されることがないようにする。このためには、LTG−Aの制約条件セット内の全ての制約条件がLTG−Bの制約条件セットにコピーされるが、全ての制約条件は<Tとして学習される。LTG−BはLTG−Aが学習できなかった新たな制約条件を学習し、この入力ベクトルの検出により有効化されることになる。これにより、2つの入力をORすることを学習するためLTG−Cが有効化されて、必要に応じて1を出力する。
【0190】
ANDの学習:特に、図5のプロセス60のブロック63を参照。出力が0でなくてはならないがLTGは1を出力する場合、新たな出力はLTG−Aからの入力と新たに割り当てられたLTGであるLTG−BとをANDすることを学習する。この場合、制約条件は、0<TがLTG−Aの制約条件セットにある場合を除いて、LTG−Aの制約条件セットから≧Tとしてコピーされる。この場合、制約条件はそのままコピーされる。
【0191】
LTGがさらに既存の中間層に割り当てられる場合、すでに述べたように、制約条件はその層の以前のLTG(LTG−B)からコピーされて適宜修正される。しかしながら、LTGがN層に追加される場合、N+1層でLTGが学習したことには修正が必要である。
【0192】
次の層が学習する論理は、(...(x1 Op1 x2)Op2 x3)Op3 x4)...)であり、ここでOp1...OpNは論理AND又はORであり、x1....xNは新たなLTGを割り当てた中間層から受け付けた入力である。新たに割り当てられたLTGが既存の中間層に割り当てられる場合、この層からの入力を受け付けるLTGは、その論理に基づく制約条件を更新する必要があってもよい。例えば、この層が既存の論理(x1 AND x2)を有する場合、制約条件{wn1+wn2>Tn,wn1<Tn,wn2<Tn,0<Tn}を有する。論理が(x1 AND x2)AND x3となる場合、制約条件セットは{wn1+wn2+wn3≧Tn,wn1+wn3<Tn,wn2+wn3<Tn,wn3<Tn,wn1+wn2<Tn,wn1<Tn,wn2<Tn,0<Tn}となる。
【0193】
入力ベクトルが学習されることができるときに層内のLTGにより学習される論理は、これらがNNに追加される論理に従う。LTGがANDを形成するよう追加される場合、LTGは制約xi・w≧Tを学習し、LTGがORを形成するよう追加される場合、LTGはxi・w<Tを学習する。
【0194】
(完全な学習と一般化についての説明)
以下、NNが完全にトレーニングされた状態、言い換えると、NNが学習したことを再生することができ一般化することができることを説明する。まず、LTGが学習した入力を回復することができ、従って十分にトレーニングされていることを説明する。
【0195】
LTGの完全なトレーニング:LTGがトレーニングされるとき、結果として生じる制約条件のセットをLTGの出力の決定に用いることができる。これは、入力をトレーニングされたLTGの制約条件セットに加え、マカロック−ピッツLTGの行動を定義する式1.1を用いることによって行われる。これは、以下の例において説明される。
【0196】
図7に示すように、制約条件セット(w1+w2<T、W2≧T)を生成する2入力LTG82を考える。その後入力ベクトル[1 1]を加えると、1.W1+1.W2=W1+W2<Tであるため、LTGは0出力を生成する。従って、十分にトレーニングされるLTGには重みに対する数値は必要ではない。
【0197】
この引数は、LTGが学習したことを重み及び閾値についての数値を見出すことなく生成することができることを説明する。また、トレーニングされたNNにより学習されたことが100%の精度で思い出すことができることを説明する。
【0198】
本発明は、主要には入力ベクトルに関連付けられた適切な出力を決定するためのNNのトレーニングに関するが、NNのトレーニングに用いられるデータ及びトレーニング中に起こりうる2つの問題についての検討も行う。
【0199】
一般化:本発明の好適な実施形態は、サンプルデータセットでトレーニング可能でありその後トレーニング中にはNNによって見ることのできなかったデータパターンをうまく分類することができるため、フィードフォワードNNを用いる。これを一般化と呼ぶ。
【0200】
データ空間についてほとんどわからないブラックボックスNN分類システムが望ましいこともあるが、データにはNNのトレーニングに極めて重大な少なくとも2つの様態があり、これは以下の通りである。(1)大きくノイズの多いデータセットの問題のひとつに、矛盾があるかもしれないことがあり、例えば、ある例ではXi→0であり別の例ではXi→1であるような入力ベクトルXiがあるとNNはこのベクトルの学習に困難が生じる。この問題は全ての学習アルゴリズムに共通する。(2)NNをトレーニングするために用いられるトレーニングサンプルが確実にデータセットを表す。以下、これについてより詳細に述べる。
【0201】
各データセットはいくつかの特徴を有する。トレーニング中にNNがさらされるデータセットがNNを十分にトレーニングするために必要な全ての特徴を表すことが望まれる。しかしながら、データセットが大きくほとんどわからない場合、トレーニングセットが全データセットの全ての特徴を表していることを判断する方法はない。この場合、データセットは「未知」と呼ばれる。
【0202】
トレーニングされたNNをテストすることにより、NNがデータセット中の全ての特徴を学習したかどうかを判定することが可能となる。追加の分類入力ベクトルを有するNNのテストは、これを実現するための好適な方法である。フィードフォワードNNをトレーニングするためのデータセットの分割については、すでに検討した。しかしながら、データセットがよく理解されておらず大きい場合には、それでもまだデータセットのその他の特徴がわからないことがある。
【0203】
以下、演繹法が常に機能するわけではない理由について検討する。演繹法は、トレーニングデータセットに欠けている特徴があると機能せず、この問題は「不十分なトレーニング」と呼ばれる。
【0204】
LTGの不十分なトレーニング:LTGがトレーニングされる各データセットは、データの特徴をいくつ持っていてもよい。トレーニングデータセットは、これらの特徴のうち、その内部で表される特徴を有してもよい。しかしながら、トレーニングセット内に未知のデータセット内の全ての特徴が提示されるという保証はない。
【0205】
従って、トレーニングデータセットに表れていない特徴があれば、LTGはトレーニング中にはデータセットの全ての特徴にさらされることがない。従って、LTGが見えない入力ベクトルでテストされるとき、間違った結果を出力することがある。従って、LTGが不十分にトレーニングされていると言うことができる。
【0206】
例えば、図7に示す、2つの入力ベクトル[0 0]→0及び[0 1]→1のみでトレーニングされる2入力LTG82を考える。
【0207】
LTG82は入力ベクトルの最初のビットが設定されたどのベクトルにもまださらされていないため、[1 0]と[1 1]とを正確に分類することができないかもしれない。このLTG82が上記トレーニングセットから学習する制約条件セットは{0<T、w2≧T}であり、w2についての情報はいくらかあるものの、w1に対する関係は成立していない。例えば、Tに対する関係がw1+w2かw1かは未知である。その結果、入力ベクトル[1 1]及び[1 0]についての出力を推定することができない。入力間で形成される論理関係については、これらはx2、x1 OR x2、又はX1 XOR x2であってもよいが、さらに情報がなければどちらであるかを言うことはできない。
【0208】
本発明のDRトレーニングアルゴリズム30によれば、LTGが不十分にトレーニングされている場合、1を出力することが好ましいが、これはデータセットに依存し、かわりに0を出力してもよい。言い換えると、LTGはデータ入力に対する応答の仕方を学習するまで有効なままとなる。しかしながら、これはNNによって学習されているデータセットに応じて変化してもよい。
【0209】
従って、トレーニングセット内に欠けている特徴がある場合にはLTGは正しい応答を出力することが難しくなることは言うまでもない。バックプロパゲーション等のその他のトレーニング方法でトレーニングされるその他のニューロンが経験する問題もある。しかしながら、バックプロパゲーションでトレーニングされる知覚とは異なり、本発明のDRトレーニングアルゴリズム30はLTGがデータパターンの分類の仕方を学習していない場合を識別することができ、言い換えると、本発明のDRトレーニングアルゴリズム30でトレーニングされるLTGは、入力ベクトルを正しく分類する方法を知らない場合を示すことができる。
【0210】
以下、LTGの最も有用な特性のひとつ、すなわちLTGが十分にトレーニングされている場合に見えない入力ベクトの出力を推論することができるLTGの能力について検討する。
【0211】
見えない入力ベクトルを推論する:NNがトレーニングされているとき、NNは入力ベクトルのセットでトレーニングされ、その後、NNがトレーニング中にはさらされなかった多数の入力ベクトルでテストされる。これらの入力ベクトルは、「見えない」と呼ばれ、NNがその関連付けられた出力を正しく判断することができるかどうかを判定する。
【0212】
NNがトレーニング中に見られなかったデータパターンの分類を判断することができるためには、NNが以前に学習したことから見えない入力ベクトルの分類を推論することができる必要がある。トレーニング中に全ての特徴を学習したことは保証されないため、LTGを考えられる全ての入力ベクトル及びその関連付けられた出力にさらさなければ、出力を正しく推論することはできないかもしれない。全てのデータパターン又は入力ベクトルが利用できるわけではないことが多く、入力データセットを十分に列挙して見出されたとしても分類の仕方がわからないこともある。入力データセットの比率にすぎないトレーニングセットがNNが学習のためにトレーニングされているそのデータセットを表すものかどうかを判定する方法があることはあまり考えられない。その結果、特定のデータセットでのトレーニングにより、見えないデータパターンの出力がNNによって正しく判定できることがあることを示すことができるだけである。
【0213】
命題3.1:見えない入力ベクトルについてLTGの閾値に対する関係が以前に学習した制約条件から推論可能であれば、見えない入力ベクトルについての出力を判定することができる。
【0214】
図11に示すLTG120を考えると、LTGは以下のような入力ベクトル及び出力ベクトルを用いてトレーニングされる。[0 0 0]→0、[0 0 1]→1、[0 1 0]→1、[1 1 1]→0。
【0215】
そして、LTG120は、以下のような制約条件セットを有することになる。{0<T、w3>T、w2>T、w1+w2+w3<T}。
【0216】
入力ベクトル[1 0 0]はトレーニング中にLTG120によって見られておらず、このベクトルに対する必要な出力は0である。LTG120が閾値に対する関係を推論することができない場合、出力が0であることを判断することができない。
【0217】
0<T、w2≧T、及びw3≧Tであるため、w2及びw3>TではT、w2、及びw3は全て正の数である。従って、w2+w3は>Tでなければならない。しかしながら、w1が小さく負の数であることを意味するw1+w2+w3<Tであるため、<Tである。従って、LTG120に加えられLTGの行動を定義する式1.1を用いるときの入力ベクトル[1 0 0]では、1・w1+0.W2+0・w3=W1<Tが推論される。従って、LTGは0を出力する。
【0218】
従って、LTG120は正しい出力を推論することができる。LTG120が正しい出力を導き出すことができたので、十分にトレーニングされれば出力を推論することができることがわかる。
【0219】
本発明のDRトレーニングアルゴリズム30はNNの構築にLTGを用いることが好ましいため、演繹法の原則は、本発明によれば、NNの見えない入力ベクトルの分類の推論に用いることができる。代替的に、本発明のさらなる様態に従って、トレーニング中に見えなかったデータパターンの分類を判定する異なる方法を用いることもできる。以下、この代替的なデータパターンの分類を判定する又は制約条件セットの入力ベクトルが既知か未知かを判定する方法を説明する。
【0220】
以下、ベクトルが明示的に学習されたかどうかにかかわらず、入力ベクトルを分類する方法を学習したかどうかを判定するために、新規なテストを行う。以下のテストは、NN出力が入力ベクトルについて既知であるかどうかを示す。
【0221】
LTGが入力ベクトルを知っているかどうかのテスト:トレーニングされたLTGからパターンの分類又は入力ベクトルを見出すことができることが好適である。入力ベクトルがトレーニングされたLTGに加えられるとき、以下のいずれかを行う。(1)有効化する。(2)有効化しない。(3)不十分なトレーニングの結果、入力ベクトルの分類方法を知らない。
【0222】
従来のトレーニングアルゴリズムは、LTGが入力ベクトルの分類方法を知らない状況をLTGに識別させない。本発明のDRトレーニングアルゴリズム30は、LTGが分類方法を知らない入力ベクトルの識別を可能とする。
【0223】
以下、本発明のさらなる様態に係る、制約条件セットの入力ベクトルが既知か未知かを判定する方法130の好適な実施形態を、図12のフロー図を参照して説明する。制約条件セットが、本発明のDRトレーニングアルゴリズム30に従ってトレーニングされたNNのニューロンの制約条件セットであることが好適である。言うまでもなく、入力ベクトルが既知か未知かを判定する方法130は、NNに限定されるものではない。入力ベクトルを分類する方法130は、例えばDNAといったデータストリングの分析等の制約条件のシステムを利用する他の分野においても有用であると考えられる。同様に、入力ベクトルを分類する方法130は、CSPやオペレーションリサーチの用途に利用することもできる。従って、本発明のこの様態は、独立しており、本発明のDRトレーニングアルゴリズム30での使用に限定されるものではない。
【0224】
以下の入力ベクトルを分類する方法130の説明は、本発明のDRトレーニングアルゴリズム30に従ってトレーニングされたLTGの出力の判定の点から説明される。この説明は、本発明の方法130の考えられる使用の一例に過ぎない。
【0225】
LTGが不十分にトレーニングされたかどうか、言い換えると入力ベクトルXiの分類の仕方を知らないかどうかを判定するためには、まず、ブロック131で、先に述べたように制約条件とその補空間が入力ベクトルから構築される。形成される制約条件は、xi・w<Tとその補空間xi・w≧T、又はxi・w≧Tとその補空間xi・w<Tである。
【0226】
この入力ベクトルに関連付けられた出力はまだ既知ではないとする。制約条件xi・w<T又はxi・w>TはトレーニングされたLTG制約条件セットに追加され、その後、ブロック132で解答の有無を判定するために任意の適切な制約充足アルゴリズムを用いてテストされる(数的解答を見出すことができるが特定の解答を見出すには重要ではなく、又は同等に、図12に示すように制約条件により定義された体積の共通部分を見出すことができる)。解答がない場合には、LTGはブロック133によって表される1又は0を出力しなければならず、LTGは十分にトレーニングされており入力ベクトルの分類の仕方を知っている。言い換えると、xi・w≧T又はxi・w<Tについての解答がなければならない。
【0227】
しかしながら、ブロック132で、制約条件xi・w<T又はxi・w≧TがトレーニングされたLTGの制約条件セットに追加されたときに、解答がある場合、ブロック134において制約条件xi・w<T又はxi・w≧Tは取り除かれ、その補空間が代わりに追加される。ブロック135でチェックが行われたときに解答がない場合、LTGは入力ベクトルの分類の仕方を知っており、ブロック136により表されるように0又は1を出力する。
【0228】
しかしながら、ブロック135でチェックが行われたとき、制約条件及びその補空間が代替的にブロック134で追加されたときLTGが解答を有していた場合、ブロック137により表されるように不十分にトレーニングされているため入力ベクトルをどのように分類するべきかは知られていない。言うまでもなく、これらのステップの順序は必須ではない。
【0229】
任意の適切な制約充足方法又はアルゴリズムを用いて制約条件を学習することができるかどうかをテストすることができる。重み及び閾値の特定の数的解答を見出すことは重要ではないが、これを見出すことができるか否かを判定することは不可欠である。これは、制約条件により定義された体積の共通部分を見出すことと同等に提示することができる。
【0230】
入力ベクトルが制約条件に変換されるとき、これはLTGの重み空間内に面を形成する。入力ベクトルはLTGにより学習されるたびに、重み空間を二分する面を形成し、トレーニング条件を満たす体積を減らしていく。これは図13(a)で示され、囲まれたくぼみ領域がこれまでに学習したトレーニング条件を満足する重み空間である。領域を二分する面はLTGに提示されている入力ベクトルから形成される。この状況では、LTGは、それぞれ図13(b)及び図13(c)に見られるように、xi・w<T又はxi・w≧Tを学習することができる。この場合、入力ベクトルの分類の仕方は知られていない。図13(d)において、LTGは面の上の領域を学習することができるだけであり、下は学習することができず、従って、出力はトレーニング条件を満たす重み空間の体積を交差する制約条件により決定されることになる。
【0231】
図13(e)において、xi・w=Tにより形成される面は凸部の体積を交差するが、図13(f)では、その面で形成された1つの制約条件のみがLTGにより学習されることができる。出っ張り領域は、これらの制約条件の全ての共通部分により形成された領域にのみ交差が与えられるため、凹部領域を減らす。
【0232】
たまたまトレーニングセットに入力ベクトルがある場合には、これがトレーニング中に構築された制約条件セットにより定義される体積の表面の1つを形成することになり、入力ベクトルが既知となる。
【0233】
まとめると、制約条件及びその補空間はいずれも入力ベクトルから形成され(ブロック131及び134)、トレーニングされたLTGの制約条件セットで共通部分の有無についてテストされる(ブロック132及び135)。制約条件のいずれかが解答を導くことができない場合(ブロック133及び136)、この入力ベクトル内の特徴はトレーニング中に学習済みであることを意味する。しかしながら、LTGがすでに学習した両方の制約条件について利用可能な解答がある場合には(ブロック137)、トレーニングセットから欠けている特徴がある。このような特性は、形式上、以下のように言うことができる。
【0234】
定理:制約条件xi・w<T又はw≧Tとその補空間をLTGが学習した制約条件のリストに交互に追加し(ブロック131及び134)、共通部分をテストすることにより(ブロック132及び135)、ベクトルXiが学習されているか否かを判定することができる。両方のケースに解答がある場合には(ブロック137)、制約条件は学習されていない。しかしながら、xi・w<T又はその補空間のみが以前に学習した制約条件の解答を有する場合には、このベクトルはLTGによって学習済みである(ブロック133及び136)。
【0235】
証明:図13において、与えられた重み空間の図に、LTGが学習したことにより定義される2つの体積の表現を示す。くぼみ領域が図13(a)から図13(d)に示されており、出っ張り領域が図13(e)及び図13(f)に示されている。ベクトルによって形成された面は、重み空間、すなわちxi・w=Tに適用される。これは、図13(d)に示すように定義された体積に交差しないか、その他の全ての場合のように交差する。交差しない場合には、入力ベクトルは学習済みである。この場合、これは体積依存してLTGを有効化する又は有効化しない、すなわちxi・w<T又はxi・w≧Tは、LTGがすでに学習した制約条件により形成された体積に交差する。そうでない場合にはxi・wは学習されていない。
【0236】
この場合、図13(e)及び図13(f)に示すように面は出っ張り領域に交差し、領域はLTGが以前に学習した全ての制約条件に共通しなければならないため、これらのいずれか一方のみを学習することができる(関心は両方の共通領域にのみ与えられるため、図13(e)及び図13(f)の領域はくぼみ領域すなわちその共通部分に縮小されることに注意)。以下に、上記を示すための例を示す。
【0237】
図11に示す3入力LTG120について考える。LTG120が入力ベクトル[0 1 0]→1及び[0 1 l]→0でトレーニングされる場合、LTG120が学習する制約条件セットは{w2>T、W2+W3<T}である。ベクトル[1 0 0]及び[0 0 1]の出力を判定する。
【0238】
入力ベクトル[1 0 0]について、面W1=Tが領域{w2≧T、W2+W3<T}に交差することが見いだされ、W1<T及びW1≧Tの両方がLTG120により学習された領域と交差する。従って、LTG120は出力が何であるべきかを知らない。すでに述べたように出力は1であるべきであるが、これは必要であれば学習されたデータセットに従って修正可能である。
【0239】
入力ベクトル[0 0 1]について、面w3=Tが領域{w2>T、w2+w3<T}に交差しないことが見いだされ、そのような領域はw3<Tのみとなる。従って、ベクトル[0 0 1]の出力は0となることが知られている。
【0240】
入力空間についてはあまりよく知られていないが、本発明に従ってLTGをトレーニングするDRトレーニングアルゴリズム30は重み空間について多くの情報を与えない。
【0241】
制約条件セットへの各制約条件の追加により、このLTGの全てのトレーニング条件を満たす重み空間の領域が減少する。
【0242】
言うまでもなく、入力ベクトルの出力を決定することが2つの考えられる制約条件を比較することである好適な方法は、LTGが学習した制約条件の閾値で形成されてもよい。これはLTGを有効化する、もしく有効化しない、又は正しい出力を知らない。
【0243】
以上、NNがどのようにトレーニングされ、テストされて見えない入力を推論するかを示したが、次に、本発明のDRトレーニングアルゴリズム30及び一般化を説明するために十分に機能する例について述べる。
【0244】
(Modulo−8問題を所与されたDRトレーニングアルゴリズムの使用に係る実施例)
本発明に係るDRトレーニングアルゴリズム30についての詳細を以下に続く解説において例示する。本実施例において、Modulo−8問題を解決するNN140に係る好ましい実施形態を用いる。データセットは2進数の3次元入力ベクトルを含み、出力は順番における次の2進数である。入力ベクトル[101]を任意に選択して、テスト用に予約しておく。NN140をトレーニングする制約条件セットを作成した後、[110]となる入力ベクトル[101]に対する出力をNNが推定することができることを証明する。
【0245】
表1に記載したデータセットは、次に記載する入力と関連出力とを有する。
【0246】
【表1】
modulo−8を定義する入力ベクトル及び出力ベクトル
【0247】
「制約条件セット」の作成:入力ベクトルを[x1 x2 x3]として定義し、かつ出力ベクトルを[O1 O2 O3]とする。出力ベクトル内にある第1の出力を選択してまずトレーニングする(図2のブロック32)。LTGの閾値が有する添字によってLTGを参照する。例えば、LTG11は閾値T11を有する。まず、学習される0(この場合は[000])ベクトルが利用可能であるかを決定する。利用可能であれば、ベクトル{0<T11}を制約条件セットに付加する。現在トレーニングしている、出力ベクトル内の位置にある出力1を最初に学習するように入力ベクトルを整理する(ブロック33)。図14aを参照のこと。
【0248】
図3のプロセス40に従って、出力O1のためのトレーニングの結果、LTG11は{0<T11、w113<T11、w112<T11、w112+w113>T11、w111>T11、w111+w112≧T11}と定義される。
【0249】
これは、ブロック42においてチェックすると解答を有する。なお、次に記載する制約条件を付加することは解答を有さない:w111+w112+w113<T11。
【0250】
従って、LTG11は、入力ベクトル[111]に対して0の代わりに1を出力する。図4のプロセス50に従って、新しいLTGであるLTG12をNN140内に付加して入力ベクトル[111]を学習する。NN140に係る新しいトポロジーについては図14bを参照のこと。制約条件{w121+w122+w123<T12}をLTG12の制約条件セットに付加する(ブロック55)。LTG11が学習した情報をコピーし、かつ修正すると、LTG12の制約条件セットは{w121+w122+w123<T12、0≧T12、w123≧T12、w122≧T12、w122+w123>T12、w121≧T12、w121+W122>T12)になる。
【0251】
この時点でLTG11は出力であるため(ブロック48参照)、新しい出力LTGであるLTG21を図5のプロセス60に従ってNN140に付加する。NN140に係る新しいトポロジーについては図14cを参照のこと。出力が0の代わりに1になったので、このことは、新しい出力であるLTG21がLTG11とLTG12との間にANDを形成することを意味する。
【0252】
LTG21がその入力間にANDを形成することになっているので、その制約条件セットは{0<T21,w211<T21,w211+W212≧T21,w212<T21)になる。
【0253】
第1の出力O1を学習するのに必要とされる3個のLTGに対する制約条件セットは、LTG11:{0<T11,w113<T11,w112<T11,w112+w113≧T11,w111≧T11,w111+w112≧T11,w111+w112+w113≧T11),LTG12:{w121+w122+w123<T12,0≧T12,w123≧T12,w122≧T12,w122+w123≧T12,w121≧T12,w121+w122≧T12)、及びLTG21:{w211<T21,w211+w212≧T21,w212<T21,0<T21)である。
【0254】
出力O1の出力をトレーニングしたところで、プロセスは、出力O2のトレーニングへと進む(ブロック35におけるチェック後、ブロック32に戻る)。表2に記載したようにデータが整理される(ブロック33)。入力ベクトル[101]をテスト用に除外してあることに留意することが大切である。図14dは、現在のNN140について、O2の最初の出力LTGであるLTG13を示す概略図を提供する。
【0255】
【表2】
Modulo−8のデータセットの第2の出力
【0256】
LTG13は、制約条件{0<T13,W133≧T13,W132≧T13,w131+W123≧T13}を学習する(ブロック34)。
【0257】
なお、入力ベクトル[011]に対する制約条件w133+w132<T13を制約条件セットに付加することは、図3のプロセス40のブロック42においてチェックすると解答を有さない。図4に示したプロセス50に従って、新しいLTGであるLTG14をNN140に割り当てて、LTG13を備えた中間層142を形成する。LTG14は、入力ベクトル[011]に対する制約条件w143+w142<T14を学習する(ブロック55)。NN140に係る新しいトポロジーについては14eを参照のこと。
【0258】
LTG13が入力ベクトル[011]に対して求められる0の代わりに1を出力するので、このことは、出力LTGがその入力間にANDを形成しなければならないことを意味する(ブロック54)。
【0259】
従って、この条件を学習するために新しいLTG14を付加して、LTG14が入力ベクトル[011]を学習する。LTG14:{0≧T14,w143+w143<T14,w143≧T14,w142≧T14}
【0260】
図5のプロセス60に従って、出力O2に対して、再び、新しい出力LTGであるLTG22(ANDを用いることによってその入力を統合するよう学習する)を付加し、その結果、制約条件セット:{0<T22,w223<T22,w223+w224≧T22,w224<T22)を生成する。NN140に係る新しいトポロジーの概略図については図14fを参照のこと。
【0261】
LTG13が次のベクトル[101]を学習して、LTG13の制約条件セットがLTG−B:{0<T13,w133≧T13,w132≧T13,W131<T13,w131+w132≧T13)になる。LTG14に対する制約条件セットは、LTG14:{w143+w143<T14,W143≧T14,w142≧T14,0≧T14,w141≧T14)になる。
【0262】
最終ベクトル[111]が形成する制約条件は、LTG13によって学習され得ないが、LTG14によって学習され得る、それゆえ3個のLTG全てに対する最終制約条件セットをここに列記する:LTG13{0<T13,w133≧T13,W132≧T13,w131<T13,w131+w132>T13,w131+w132+w133≧T13,w133+w132≧T13),LTG14:{0≧T14,w143+w142<T14,w143+w142+w141<T14,w143≧T14,w142≧T14,w141≧T14,w141+w142>T14)、及びLTG22:{0<T22,W223<T22,W223+W224≧T22,W224≧T22)。
【0263】
第2の出力をトレーニングしたところで、最後の出力O3をトレーニングしなければならない(ブロック35におけるチェック後、ブロック32に戻る)。LTG15は、次に記載する制約条件セットを学習することが(図3のプロセス40を用いて)ブロック34においてまず最初に分かる:LTG15:{0≧T15,w153<T15,w152≧T15,w153+w152<T15,w151≧T15,w151+w152+w153<T15,w152+w151≧T15)。図14gは、現在のNN140について、O3に対する最初の出力LTGであるLTG15を示す概略図である。
【0264】
LTG15は、全トレーニングセットにさらされ、ブロック42においてチェックすると解答を有する、従って新しいLTGをNN140に付加する必要はなく、それゆえ図14gは、Modulo−8のデータセットを学習した最終の全トレーニング済みNN140を示す概略図になる。
【0265】
次に、入力ベクトルが既知であるか又は未知であるかを決定する図12に示した方法130に従って、見えない入力を推定する方法について考察する。
【0266】
(テスト入力ベクトルに対する出力の推定)
次に、見えない入力ベクトルをNN140がいかによく分類するかを評価するが、この場合、見えない入力ベクトルは[101]であり、その関連出力は[110]である。入力ベクトルが分かる場合、NN140は、トレーニングされたデータから一般化することができる。
【0267】
まず、出力O1を推定する。T11>0、w113<T11、w112<T11かつw112+w113≧T11であるので、それゆえ0<w113<T11であり、w111>T11とすると、その結果w111+w113≧T11になる。従って、LTG11の出力は1である。また、制約条件w111+w113<T11をLTG11の制約条件セットに付加する場合は、解答がない。
【0268】
2個の制約条件w121+w123<T12及びw121+w123≧T12を付加することは解答を有し、このような制約条件の場合、デフォルトは1を出力する。
【0269】
LTG21は、1・w211+1・w212を有し、かつw211+w212>T21であるので、O1は1になる。
【0270】
次に、O2の出力を推定する。LTG13は、w131+w133>T13及びw131+w133<T13のどちらも学習することができるので、LTG13の出力は1である。
【0271】
また、LTG14は、w141+w143≧T14及びw141+w143<T14のどちらも学習することができるので、1を出力する。LTG22は、1・W231+1・w242を有し、かつw231+w232≧T22であるので、O3は1になる。
【0272】
最後に、O3の出力を推定する。w151+w152+w153<T15かつ0>T15かつw151+w152>T15であるので、w153<T15<0になる。w151≧T15であるにも係わらず、w151+w152+w153<T15である、従って出力は0になる。
【0273】
従って、正しい出力を推定するか、又は[110]として一般化した。図14gに、結果として生じたNN140を示す。必要に応じて中間層と出力層との間にだけ結合が作られ、また中間層LTGは、O3にあるように必要とされるときにだけ付加されることが分かる。
【0274】
当該NN140において、NN内には重み及び閾値よりずっと少ないトレーニングサンプルがあり、またNNが完全にトレーニングされたものとして振る舞うことに気付かされる点が興味深い。NNをトレーニングするには、NN内において重み及び閾値の数よりも多い入力ベクトルが必要とされると一般に考えられている。変数よりも多いトレーニングサンプルが必要とされるということが全てのケースにあてはまるわけではないと本実施例において分かった。これは、当該DRトレーニング方法30において各入力ベクトルがそれぞれの重みをトレーニングするからである。
【0275】
(本実施例におけるLTGの数)本発明に係るDRトレーニングアルゴリズム30を用いる場合、本実施例においてデータセットを学習するのに7個のLTGが必要だった。図14gにおいて、出力層144内にあるLTGは、単に、それらが入力を求める先となる中間層142内にあるLTGから入力を受け取るだけであることが分かる。また、不要なLTGがNN140に割り当てられることはない。例えば、LTG15は、あらゆる場合に、求められている出力を生成することができるので、O3を生成するのにそれ以上のLTGを付加しない。
【0276】
本発明に係るDRトレーニングアルゴリズム30がどのように動作するかを一実施例を用いて説明してきたところで、NNによるトレーニング中に学習したルールを抽出する際に本アルゴリズムがいかに有用かを考察する。
【0277】
(本発明に係るDRトレーニングアルゴリズムのルール抽出に対する適用可能性)
本発明に係るDRトレーニングアルゴリズム30の重要な利点は、当該アルゴリズムが少なくとも次に記載する特性を示すことから、ルール抽出に用いることができるということである。a)NN内に一LTGを付加すると、その新しいLTGとその層内にある他のLTGとの間において命題理論のルールが決定される。b)重み空間内の体積に関する制約条件(そのLTGに活性化する領域を縮小するもの)を付加することによって重みを適合させる。これは、そのLTGが制約条件(そのLTGに対する重み空間内の活性化領域の範囲を定める平面である)を用いるためである。これは、重み空間を記号を用いて定義することを可能にし、かつc)好ましい制約条件がそのLTG内の重みと閾値の関係(トレーニング中にNNによって学習されたルールを符号化するもの)を定義する。
【0278】
入力ベクトルと、LTGに活性化する重み空間内の体積を定める超平面との間にマッピングがあるので、ほとんどの情報を提供する正確な入力ベクトルを見い出すことが可能である。次に、本発明に係るDRトレーニングアルゴリズム30の、LTGを活性化させる重み空間上に境界を設ける入力ベクトルを見つけ出す能力について解説する。
【0279】
従来の方法を使ってフィードフォワードNNをトレーニングする目的は、NNが学習したデータセットのトレーニング条件を満たす、考えられ得る限り最良の平均値を表す単一数値をNN内のそれぞれの重みに対して見出すことである。NN内にある各LTGの重み(及び閾値)は全て単一の(望ましくは)平均的な数値として表されるとおり、データセット内にある情報の多くは学習時に失われる。その情報のうち幾らかは、重要ではあるがトレーニング中に失われてしまう、LTGに活性化させる領域についての面情報の全てである。ほとんどのLTGが2個以上の入力を有するとおり、この領域は、LTGの重み空間内において(超)体積として定義される。従って、LTGに活性化する領域を「活性化体積」と呼ぶ。面情報から:(a)LTGへの入力間の関係とそれゆえNNとを決定することができ、かつ(b)各重みが取ることのできる値の範囲(NNが必要に応じて振る舞うことを可能にする)を推論することができる。
【0280】
従来の方法を使ってトレーニングしたNNに対して感度分析を行なうことは、この失った面情報を回復する試みの一方法である。
【0281】
感度分析は、重みとニューロンへの入力との関係を決定しない一方で、求められるとおりにシステムが動作することを可能にする、システムの構成要素の各一が取ることのできる値の範囲を決定するのに用いることができる。この場合、構成要素とはNN内にあるニューロンの各一に対する重みのことである。各重みは、トレーニングされるとおりにNNが動作することを可能にする値の範囲を有する。この範囲を「最適範囲」と呼ぶことができる。
【0282】
従来のトレーニング方法を使ってトレーニングしたNNに対して感度分析を行なうための通常の手法は、NNの反応について一統計的分析を行なうことである。ニューロンの重み空間内にある各重み毎に範囲を決定する解析的方法がこれまでなかったため、統計的分析を行なってニューロンの実際の挙動ではなく一般的な挙動が調べられている。また、感度分析は、単に、従来の方法によってニューロンをトレーニングするときに、一度に1以上の重みを修正することの効果が調べられるのを可能にするだけである。従って、ニューロンが学習するよう求められている関係の平均値を、重みの単一数値がどれだけよく表しているかを決定することは可能ではない。
【0283】
なお、ニューロンにおける重みの範囲について統計的推定値を得ることが、感度分析にできる最善である。感度分析は、活性化体積の面を規定することが可能な方法を全く有していない。これは、重みが一度に1つずつ検討されるためであり、感度分析が行なわれているときは他の重みの各一が幾分その平均値近傍にあることが望まれる。
【0284】
本発明に係るDRトレーニングアルゴリズム30を使うと、面情報の回収がかのうになり、システムは(a)重み間の関係と、これによりLTGへの入力間の関係を決定でき、かつ(b)各LTG毎に重みの統計学的範囲よりも多くを見出すことができる。重みの正確な範囲が決定できるだけでなく、LTGを活性化する活性化体積の面も規定することができる。
【0285】
本発明に係るDRトレーニングアルゴリズム30は、LTGを、好ましくは一群の制約条件としてトレーニングするので、トレーニング中にトレーニングセットについての情報のうち失われるものはなにもなく、これらの制約条件を分析して重みの範囲を見つけ出すことができる。
【0286】
次に、本発明のさらなる態様により、各LTG毎に活性化体積の面が規定されるのを可能にする好ましい方法150について、図15のフローチャートを参照して解説する。
【0287】
(活性化体積)
入力ベクトルをNNに加えることによってLTGをトレーニングする場合に、データセットを学習するようにNNをトレーニングする方法を先に示した。重み空間を二等分する(超)面を形成する式xi・wを用いて、入力ベクトルを制約条件に変換した。xi・wは、閾値Tを有する制約条件を形成するため、(超)体積は、次に記載するような制約条件によって定義される。a)LTGが制約条件xi・w>Tを学習した場合、それは、LTGが学習した他の制約条件に応じてこの領域又はこの領域のサブセットがLTGに活性化することを意味する。補空間の制約条件xi・w<Tは、LTGを全く活性化しない領域を画定し、b)LTGが制約条件xi・w<Tを学習した場合、この領域はLTGの活性化を生じない。しかしながら、補空間の制約条件xj・w>Tを満足する点はLTGの活性化を生じてもよい。
【0288】
従って、(超)面xi・wは、LTGを活性化する可能性のある領域の面を形成する。多くの入力ベクトルが学習されると、LTGに活性化する可能性のある体積が重み空間内において定義され、「活性化体積」と呼びうる。これをコンピュータに実装するため、各入力ベクトルの制約条件が、それが学習できる各LTGと併せて蓄積される。その結果、重み空間内におけるLTGを活性化する最小体積の面を形成する制約条件だけが重要なので、制約条件の冗長が生じることになる。重み空間内における最小活性化体積(Minimum Activation Volume、以下「MAV」)の面を見つけるため、制約条件を分析することができる。この活性化体積の面は、制約条件セット内にある他の制約条件が提供する情報の全てを包含する。
【0289】
LTGが受けたトレーニングのことを考えると、MAVは、LTGがそれまでに学習した制約条件によって制限される最小体積になる。トレーニング中には利用可能ではない、活性化体積をさらに減少させたであろう他のベクトルがあってもよいので、これは可能な限り最小な体積ではないと考えられる。
【0290】
トレーニング中に学習した他の制約条件(MAV内にはないもの)は、MAVに関する輪郭のようなものを形成する。
【0291】
MAVの面が見つかると、MAV及び重み間の関係を考察することにより、各重みの範囲を決定することができる。
【0292】
要するに、トレーニング中に学習した制約条件を分析してMAVを見つけるのである。伝統的な感度分析を実施するならば、そのMAVを用いて、各LTG毎の重みの範囲及び重み間の関係を確かめることができる。
【0293】
フィードフォワードNN内にあるLTGをトレーニングするのに用いた従来のトレーニングアルゴリズムは、各入力結合重み毎に単一数値を見つけることに頼っていた。各LTGはn個の入力を有するので、入ってくる結合重みをベクトルとみなすことができる。トレーニング条件を満たす数値範囲があるので、これらの重みの単一数値が独自にトレーニング条件を解明することはない。
【0294】
重みの単一数値を決定するときのトレーニングプロセスは、NNがトレーニング中に学習することになっているデータ内に組み込まれたルールを象徴した重み間の関係を表す平均的な数値を配置するよう試みる。
【0295】
なお、入力ベクトル内のどの特徴がデータセットの分類に対して顕著であるかを逆に明確にする重み間の関係を定義するのは、活性化体積の境界である。そのため、ルール抽出を行なうことができる場合は、LTGの活性化体積の境界を決定し得ることが必須になる。従来のトレーニング方法を用いる場合に、トレーニングアルゴリズムがトレーニング条件を解明する平均値を見つけることに焦点を合わせていると、入力ベクトルのどの次元がデータセットの分類に重要なのかについての情報を失う。NNの挙動を説明するのに、これまで統計的方法及び確率が用いられてきた。しかしながら、統計及び確率のどちらも任意のデータセットを使ってトレーニングしたトレーニング済みNNの平均的な挙動を説明し、特定データセットを学習したNNに関する特定情報については説明しない。NNからのルール抽出に関する要件は、特定データセットが分類されるのを可能にする特定ルールを決定することである。数値上トレーニングされたニューロンの活性化体積の境界を決定することはできないので、トレーニング中に重み値が提供した数値がいかによくトレーニングセット内に内在する関係の平均的な挙動に近づくかを決定することは可能ではない。
【0296】
トレーニングした各LTG毎に正確な活性化体積を確かめることはできるので、MAVがその体積から余分な面を取り除いて、LTGが何を学習したかを定義する可能な限り最小な体積を残すことが分かる。このことから、LTGが、それゆえNNがどのルールをトレーニング中に学習したか決定することができる、従って、このことはMAVを見つけ出すことが正しいことを証明している。
【0297】
(最小活性化体積(MAV)の決定)
NNのトレーニング中に多くの制約条件が学習される。活性化体積の形状は、LTGが学習しているデータセットによって異なる。1以上の次元において非有界であってもよい。
【0298】
図16aは、活性化体積及びトレーニング中に学習した他の制約条件を一般化した図を示す。閾値を使って形成する制約条件は、活性化体積を交差しなければならない、そうでなければ、LTGが制約条件を学習することができない。
【0299】
図16aにおいて、面(a)、(b)、(c)、(d)及び(e)は、異なった入力ベクトルXj及びwによって形成される(超)平面である。MAV160は、図16aにおいて、(a)、(b)及び(c)によって定義される面によって有界になる。面(d)及び(e)は、MAV160を交差しておらず、それゆえ最小体積の面を形成していない。しかしながら、それらが形成する体積はMAV160を交差する。図16bに見られるように、面(d)によって形成された体積162(薄い灰色の陰が付けられた領域)は、MAV160(濃い灰色の領域)を交差している。
【0300】
図16cにおいて、面(d)によって形成された補空間領域164が(濃い灰色の)MAV領域160を交差しておらず、従って補空間領域を学習することができないことが分かる。
【0301】
LTGが学習した制約条件を分析すると、図16cに見るように、制約条件(a)が存在するときは、最小体積を形成しない制約条件の補空間、すなわち図16dにおける(d)を学習することができない。そこで(a)を取り除くと、MAV160を形成する制約条件と(d)の補空間との間に共通部分166が存在するので、(d)の補空間を学習することができる(図16dを参照のこと)。図16dにおいて、面(a)は、本来の場所を示すために図中に残してある。
【0302】
しかしながら、(d)及び(e)が存在するときは、LTGは制約条件(a)の補空間を学習することができる(図16eを参照のこと)。言い換えれば、(a)の補空間と、MAV160を形成する他の制約条件と、LTGがすでに学習した他の制約条件との間に共通部分168が存在することになる。
【0303】
原理:制約条件は、制約条件セットから取り除かれたときに、その補空間が学習されるならば、活性化体積の一面を形成する。
【0304】
証明:ある制約条件が活性化体積上の一面を形成する場合、その制約条件と、xi・wと閾値Tとの関係に制約を加えている活性化体積の面を形成する他の制約条件のうちのいずれとの間にも制約条件が全くないことを意味する。従って、制約条件(活性化体積の面を形成するもの)を取り除いたときに、LTGによって制約条件の補空間が学習されることが可能になる。
【0305】
次に、このことを例として説明する。LTGがトレーニング中に次に記載する制約条件セットを学習した場合:{w1+w2<T、w2≧T}、制約条件w2≧Tを制約条件セットから取り除くと、LTGがその制約条件の補空間W2<Tを学習することができるようになるので、平面w2=TがMAVの一面を形成することが分かる。
【0306】
しかしながら、トレーニング中にLTGが次に記載する制約条件セットを学習した場合:{w1+w2≧T、w2≧T、0<T、w1≧T}、制約条件w1+w2≧Tを制約条件セットから取り除くと、LTGはその代わりに補空間w1+w2<Tを学習することができないので、平面w1+w2=Tは、MAVの面上にはないことが分かる。
【0307】
次に、MAVを見つける方法150の好ましい実施形態を図15を参照して説明する。
【0308】
ブロック151によって表されるとおり、当該LTGの制約条件セットにある各制約条件毎に、少なくとも次に記載する動作を実行する。ブロック152において、制約条件セットにある他の制約条件を変更しないで、各制約条件を一度に1つずつ制約条件セットから取り除く。取り除かれた制約条件は、群に付加されるそれの補空間を有し、続いてブロック153において解答があるかを判断するためにテストされる。解答がある場合は、ブロック154において、最初に制約条件セットから取り除いた制約条件をMAVを定義する群に付加する。元の制約条件の補空間を制約条件セットから取り除き、元の制約条件を群に戻す。次に、ブロック155において解がない場合、ブロック156において制約条件セットにまだ制約条件があると判断されれば、方法150が次の制約条件へと続く。トレーニング中にLTGが学習した制約条件セットにある各制約条件毎に本方法150を繰り返す(ブロック152に戻る)。ブロック156において、制約条件がもうないと判断されれば、方法150はブロック157で終了する。
【0309】
当該LTGが受けたトレーニングのことを考えると、活性化のため最小群に付加された制約条件がMAVを定義する。次に、これらの制約条件を用いて体積を分析して、LTG内にある重み間の関係を見つけ、かつ望ましければ、いつ重みが範囲外になるかを正確に知ることができる感度分析をLTGに対して行なうことができる。
【0310】
MAVを見つける方法150は、NNに限定されるものではないということを認識されたい。MAVを見つける方法150は、最適化のために用いられるCSP及びオペレーションリサーチ型の問題等、制約条件のシステムを用いる他の分野にも有用であると考えられる。従って、本発明に係る本態様は独立しており、本発明に係るDRトレーニングアルゴリズム30を用いた利用に限定されるものではない。
【0311】
(MAVを決定する方法に係る実施例)
LTGを次に記載する制約条件を用いてトレーニングすると仮定する:{0<T,w1+w2<T,w1<T,w2<T,w3<T,w1+w3<T,w2+w3<T,w1+w2+w3>T}。上記の制約条件に対して解答があるということが分かっている。方法150は、ブロック151において開始する。
【0312】
まず最初にブロック152において、0<Tを取り除いて制約条件0≧Tを付加する、その結果、検討中の制約条件セットが{0≧T,w1+w2<T,w1<T,w2<T,w3<T,w1+w3<T,w2+w3<T,w1+w2+w3≧T}になる。
【0313】
ブロック153において、これらの制約条件を、Sicstus prologのルーチン又は任意の他の好適なルーチンを使ってテストすることができる。これらの制約条件に対する解答がブロック153では見つからない、それゆえ0<TがMAV上の一面を形成する制約条件のうちの1つではないということが分かる。ブロック155において、他の制約条件がこの情報全てを包含する、言い換えれば、LTGによって何が学習されたのかについてこの制約条件は新しい情報を全く提供しないので、この制約条件を残っている群から取り除く。
【0314】
ブロック156におけるチェックの後、続いてブロック152において次の制約条件であるw1+w2<Tをテストする。この制約条件を取り除いて、この制約条件の補空間を群に付加する:{w1+w2≧T,w1≧T,w2<T,w3<T,w1+w3<T,w2+w3<T,w1+w2+w3≧T}。この場合、ブロック153で解答が見つかるので、LTGが学習したことに対して元の制約条件は重要であり、制約条件セットに残しておかなければならない(ブロック154)。
【0315】
ブロック152においてテストされる次の制約条件は、w1<Tである。この制約条件を取り除いて、この制約条件の補空間を群に付加する:{w1+w2<T,w1≧T,w2<T,w3<T,w1+w3<T,w2+w3<T,w1+w2+w3≧T}。これらの制約条件をブロック153においてテストすると、解答がないということが分かる。従って、ブロック155において制約条件w1<Tを取り除くことができる。
【0316】
ブロック152においてテストされる次の制約条件は、w2<Tである。この制約条件を取り除いて、この制約条件の補空間を群に付加する:{w1+w2<T,w2≧T,w3<T,w1+w3<T,w2+w3<T,w1+w2+w3≧T}。ブロック153においてこれらの制約条件をテストすると、全く解答が見つからない。従って、ブロック155において制約条件w2<Tを取り除くことができる。
【0317】
ブロック152においてテストされる次の制約条件は、w3<Tである。この制約条件を取り除いて、この制約条件の補空間を群に付加する:{w1+w2<T,w3≧T,w1+w3<T,w2+w3<T,w1+w2+w3≧T}。ブロック153においてこれらの制約条件をテストすると、全く解答が見つからない。従って、ブロック155において制約条件w3<Tを取り除くことができる。
【0318】
ブロック152においてテストされる次の制約条件は、w1+w3<Tである。この制約条件を取り除いて、この制約条件の補空間を群に付加する:{w1+w2<T,w1+w3≧T,w2+w3<T,w1+w2+w3≧T}。この場合、ブロック153においてテストすると解答が見つかる、それゆえLTGが学習したことに対して元の制約条件は重要であり、ブロック154によって表されるように制約条件セットに残しておかなければならない。
【0319】
ブロック152においてテストされる次の制約条件は、w2+w3<Tである。この制約条件を取り除いて、この制約条件の補空間を群に付加する:{w1+w2<T,w1+w3<T,w2+w3≧T,w1+w2+w3≧T}。この場合、ブロック153において解答が見つかる、それゆえLTGが学習したことに対して元の制約条件は重要であり、制約条件セットに残しておかなければならない(ブロック154)。
【0320】
ブロック152においてテストされる次の制約条件は、w1+w2+w3≧Tである。この制約条件を取り除いて、この制約条件の補空間を群に付加する:{w1+w2<T,w1+w3<T,w2+w3<T,w1+w2+w3<T}。この場合、ブロック153において解答が見つかるので、それゆえLTGが学習したことに対して元の制約条件は重要であり、ブロック154によって表されるように、ここでも制約条件セットに残しておかなければならない。
【0321】
従って、方法150によって最小制約条件セットは{w1+w2<T,w1+w3<T,w2+w3<T,w1+w2+w3≧T}であると決定する。
【0322】
制約条件をテストするための順番:本発明に係るMAVを決定する方法150によって制約条件セットにおいて制約条件をテストする順番は重要ではない。制約条件は、テストされる群における任意の場所から選択してもよい。また、MAVを形成する制約条件を最初にテストするよう選択するか否かは無関係である。従って、本発明は、提供した特定の実施例に限定されるものではない。
【0323】
MAV内に包含される情報:MAVは、学習した制約条件に関する全情報を包含している。LTGが何を学習したかについての情報は全てMAVの面内に包含されるので、MAVの面を形成しない制約条件を取り除くことは可能である。制約条件を回復する必要はないが、回復できることを証明する。
【0324】
一実施例:最小活性化体積が{w1+w2<T,w1+w3<T,w2+w3<T,w1+w2+w3>T}からなるとすると、取り除かれる制約条件の群は{0<T,w1<T,w2<T,w3<T}になる。
【0325】
LTGに対する制約条件及びその制約条件の補空間を付加することによって取り除かれた制約条件を回復することができることを証明するのは可能である。このことを示して、LTGとそれゆえにトレーニング中に学習したデータの損失ない圧縮に対してMAVが見つからないときは、全く情報が失われていないことを証明する。
【0326】
他の取り除かれた制約条件を使ってこの制約条件を予めテストしていたならば、その後もこの制約条件の補空間を学習することができたであろう。
【0327】
MAVを使って0<Tをテストする:0<TをMAVに付加することは解答を有する。しかしながら、0≧TをMAVに付加することは解答を有さない。従って、ベクトル0<Tを制約条件セットから取り除く前にはじめにトレーニングしたとおりに、LTGはその後も振る舞い続けるものである。
【0328】
MAVを使ってw1<Tをテストする:w1<TをMAVに付加することは解答を有する。しかしながら、w1≧TをMAVに付加することは解答を有さない。従って、ベクトルw1<Tを制約条件セットから取り除く前にはじめにトレーニングしたとおりに、LTGはその後も振る舞い続けるものである。
【0329】
MAVを使ってw2<Tをテストする:w2<TをMAVに付加することは解答を有する。しかしながら、w2≧TをMAVに付加することは解答を有さない。従って、ベクトルw2<Tを制約条件セットから取り除く前にはじめにトレーニングしたとおりに、LTGはその後も挙動し続けるものである。
【0330】
MAVを使ってw3<Tをテストする:w3<TをMAVを付加することは解答を有する。しかしながら、w3≧TをMAVに付加することは解答を有さない。従って、ベクトルw3<Tを制約条件セットから取り除く前にはじめにトレーニングしたとおりに、LTGはその後も挙動し続けるものである。
【0331】
言い換えると、元の制約条件セット{0<T,w1<T,w2<T,w3<T,w1+w2<T,w1+w3<T,w2+w3<T,w1+w2+w3≧T}及び最小制約条件セット{w1+w2<T,w1+w3<T,w2+w3<T,w1+w2+w3≧T}は、LTGの挙動といった観点からすると等価である。
【0332】
MAVを見つけることの利益は多い。これらの利益から幾つかを挙げると:(a)学習中及びLTG出力を決定するときにテストされる必要のある制約条件の数を潜在的に減らす。(b)望ましければ、トレーニングしたLTGに対して感度分析が行なわれるのを可能にする。(c)重み間の関係が決定されるのを可能にする。
【0333】
クワイン−マクラスキー法(Quine−McCluskey)及び反復コンセンサス法(iterated consensus)等の関数最小化技法は、独立した入力によって作成された入力ベクトルに対して、冗長な入力ベクトルを全て取り除いた(MAVが見つかるときに為されることである)後に用いることができる。
【0334】
(DRトレーニングアルゴリズムの性能評価)
次に、本発明に係るDRトレーニングアルゴリズム30に対して行なった実験の結果を記載する。これらの実験は、本発明に係るDRトレーニングアルゴリズムの性能を評価するものである。
【0335】
本発明に係るDRトレーニングアルゴリズム30の主要な目的の1つは、NNが入力ベクトルの関連出力を生成するのを可能にするデータセット内においてルールを見つけることである。従って、行なった実験の目的は、DRアルゴリズム30が種々のデータタイプを学習し、かつトレーニングしたNNからルールが抽出されるのを可能にするアルゴリズムであることを証明することであった。
【0336】
これらの実験において従った標準的な手順は:(a)幾らかのデータ作成があった。(b)そのデータを用いてNNをトレーニングした。(c)NNをテストして、NNをトレーニングした入力ベクトルに関連した出力を生成した後、トレーニングプロセスの間は見えなかった入力ベクトルに対する出力を正確に生成することができるかを決定した。(d)テストセットからの正確な入力ベクトルについてパーセンテージに換算して、バックプロパゲーションを用いてトレーニングしたNNと本発明に係るDRトレーニングアルゴリズム30を使ってトレーニングしたNNとの間で比較した。NNをトレーニングする前に、テストをするためのテストセットを用意した。続いて、このパーセンテージを他の学習アルゴリズムの利用可能な結果と比較した。(e)NNをトレーニングするのに必要とされるトレーニング入力ベクトルにさらす回数を記録した。
【0337】
DRによってデータセットに対する学習時間を定量化することの外に、扱った別の課題は、トレーニング中にNNによって学習されたルールの確定である。本発明のさらなる態様に従って、先に記載した好ましい方法を用いてトレーニングしたNNに対して感度分析を行なうことによってルールを抽出した。これがNNがトレーニングされるデータセットに関する情報を提供した。次に、本発明に係るDRトレーニングアルゴリズム30の性能を評価するのに用いたデータセットの種類について解説する。
【0338】
(テストドメイン)
フィードフォワードNNは、データを分類するため、又は関数近似を行なうためのいずれかに用いることができる。入力空間内においてデータを分類する境界をモデル化することは、関数近似に相当するので、これら2つの特性は、同じ挙動を示す態様である。フィードフォワードNNを用いることによって利益を得ることができる潜在的な適用は多くあるが、フィードフォワードNNを実際に用いた適用は、関数近似の特性又はデータ分類の特性のいずれかを活用している。
【0339】
DRトレーニングアルゴリズム30の挙動を評価するため、(a)関数近似、及び(b)データ分類を実行するデータセットを用いた。
【0340】
関数近似を実行するDRトレーニングアルゴリズム30の能力を評価するために選んだデータセットは、「2つの螺旋を使った問題(Two−Spiral Problem)」及び分類については「ドイツの信用貸付問題(German Credit Problem)」である。どちらのデータセットもフィードフォワードNNをテストするための標準的な問題である。
【0341】
関数近似のためによく用いられている一データセットが「2つの螺旋を使った問題」である。このデータセット(図17参照)は、共通したスタート点だが互いに180度のオフセットを有する2つの螺旋を含むため、解決が極めて困難であると考えられている。従って、容易に線形分離可能ではない。一般に、線形分離可能性を用いて、一ニューロンがクラスを分割し、また複雑なデータセットの場合には、複数のニューロンがクラスを分割する。「2つの螺旋を使った問題」における螺旋を記述するのにデカルト座標を用いる場合は、データセットは、容易に線形分離可能ではない。
【0342】
「ドイツの信用貸付問題」は、ドイツの金融機関の債務者1000人の記録を有する。この記録は、債務者の年齢、居住状態、信用履歴、会社員の場合はローンの目的等、たくさんの特徴を包含し、記録の分類は、債務者が良好な信用リスクであるかを明示している。トレーニングしたNNの目的は、ローンを求めている顧客を承認してよいか否かを予測することにある。また、金融機関は、誤りが生じた場合の誤りに対する優先事項も明示している。ある人物を誤って良好な信用リスクとするよりむしろある人物を誤って悪い信用リスクとする方がよいと考える。
【0343】
これらのデータセットについての正式な定義は以下のとおりである。
データセット1:2つの螺旋を使った問題−このデータセットを最初に提案したのは、MITRE社(MITRE Corporation)のアレクシス・ウィーランド(Alexis Wieland)である。このデータセットは、組み合わさった2つの螺旋に属する194個の入力ベクトルを有し、これらのデータ点の半分が出力−1を生成して、残りの半分が出力1を生成すると定義されている。各スパイラルは3つの段階を有し、各螺旋を180度に分ける。入力ベクトルは、各データ点の位置についての浮動小数点デカルト座標を表す2次元を有する。
【0344】
データセット2:ドイツの信用貸付問題−ハンブルグ大学の教授であるハンス・ホフマン博士によってこのデータセットが提供された。貸付を申請した顧客1000人のサンプルを有する。各サンプルは、貸付を申請した人の年齢、その人の信用履歴、及び貸付の申請に関係すると考えられた他の属性等の24個の正の整数属性からなる入力ベクトルである。NNの出力が顧客を良好な信用リスク又は悪い信用リスクとして分類する。
【0345】
データセットの選択基準は、DR学習が(a)バックプロパゲーション(backpropagation)と同等によい、言い換えれば、バックプロパゲーションが学習することができるデータセットを学習することができること、及び(b)トレーニングしたNNからルールが抽出させられるという点でバックプロパゲーションより優れていること、を証明することであった。
【0346】
「ドイツの信用貸付問題」のデータセットは、バックプロパゲーションによって学習されるのによく適しているので選択され、また「2つの螺旋を使った問題」は、バックプロパゲーションでは解決が困難であると考えられたために選択された。
【0347】
(データ準備)
はじめに、本発明のさらなる態様に従って、これらの実験においてDRトレーニングアルゴリズムを使ってNNをトレーニングするのに用いられるであろう形式へとデータを作成するのに用いる好ましい方法について解説する。データを作成するときの一目的は、依然としてそのデータを正確に符号化するのと同時に、NNへの入力数を最小化することにある。NNによって入力ベクトルが学習される度に、制約条件をテストしてNNによって入力ベクトルが学習されるかを決定しなければならないことを考えると、NNへの入力数を最小化するということは、言い換えれば、より速いトレーニング時間になるということである。次に、解説するようなデータ変換方法は、本発明に係るDRトレーニングアルゴリズム30を用いた利用に限定されるものではないことを認識されたい。これらのデータ変換方法は、他の既知のトレーニングアルゴリズムに有用であり、それ自体を本発明に係る独立した態様とみなす。
【0348】
(バイナリデータ)
先に解説したように、本発明に係るDRトレーニングアルゴリズムは、好ましくは、{0、1}nの形式(nは、NNへの入力数である)である2進数の入力ベクトルによってトレーニングされて、2進数の出力を生成する。入力ベクトルは、求めた出力のバイナリ値に基づいて望ましい出力を生成する制約条件へと変換される。データがバイナリである場合は、学習されるようそのデータを修正する必要はない。しかしながら、たいていの場合にデータはバイナリ形式ではなく、従って、好ましくは、本発明に係るアルゴリズム30によって学習される前にバイナリ形式に変換される。
【0349】
(整数)
入力ベクトル内の各次元は、その入力についての何らかの属性を表す。属性の1つが整数である場合、その整数は、好ましくはDRトレーニングアルゴリズムによって学習されるバイナリに変換される。次に、本発明に係るDRトレーニングアルゴリズム30がいかに整数を学習することができるかに係る好ましい実施形態について解説する。
【0350】
初めに、バイナリでの属性表現に必要とされるビット数を決定することが必要である。そうするため、属性が取ることのできる整数値の範囲を、範囲=(最大−最小)+1として算出する。続いて、その範囲をバイナリで符号化するため、必要とされるビット数を決定する。
【0351】
これが属性を符号化するために必要とされるビット数を決定する一簡便な手法であって、次の(a)又は(b)かについて考慮していない。(a)属性が負の整数を有する。負の整数がある場合、2の補数を用いて数字を表すことが可能である。ただし、その属性の正の値を表すのに用いられるビット数に対して付加されたビットを使用しなければならない。別の方法として、負の整数を使用しないようにその範囲を調整することができ、(b)属性は範囲外になってもよい。従って、個人の年齢を備えた属性があってもよい。入力ベクトルの母集団において、単に18歳から84歳の年齢があるだけでもよい。ただし、トレーニングしたNNに85歳の属性を与えることが必要になる場合がある。この場合、40〜59歳、60歳以上といったサブ範囲の見地からデータを符号化することが可能であってもよい。
【0352】
ドイツの信用貸付データセットには、考慮すべき負の整数が全くない。なお、顧客の年齢属性は、18〜75歳の範囲に及ぶ。その範囲にある正確な年齢を符号化するには、6ビットを必要とする。なお、フィールドを符号化するのに2ビットだけが用いられるのを可能にする年齢の範囲、例えば、18〜25歳、25〜40歳、40〜60歳、及び60歳<が、顧客の年齢を符号化するためにさらに有用である場合があるということが考えられる。こうすることで、LTGへの入力数を最小化し、かつなおもデータフィールド内にある情報の大部分を保つことができる。例えば、ある人物が銀行のローンを支払う能力があるかを決定しようとしている場合、37歳といった特定の年齢の人物の方が38歳である場合よりもローンを支払う見込みがあるとは考えにくい。ただし、60歳を超える人々の方が40歳である人々よりも働いている可能性は低いことを考えれば、年齢の範囲が重要な役割を担なうことは可能であろう。
【0353】
属性の値を符号化するために必要とされるビット数は、各属性毎に個別に検討する必要がある。属性が取ることのできるある範囲の整数値を符号化するのに必要とされるビット数が確定すると、各ビット位置は、NNへの個別の入力とみなすことができる。従って、単一の属性がNNへの複数の入力になってもよい。
【0354】
このプロセスは、入力及び出力のどちらにも用いられる。
【0355】
(浮動小数点データ)
NNがトレーニングされることになっているほとんどのデータが浮動小数点データであるため、NNをトレーニングしてこの種のデータを学習することができることは有用である。従って、浮動少数点データをバイナリデータに変換できることは有用であり、かつ好ましい。
【0356】
整数である属性と同様に、浮動小数点をバイナリで表すには多くのビットを割り当てなければならない。あらためて、属性が取ることのできる値の範囲、つまり属性が範囲外の値を取ることができるか、及び属性が負の値を取ることができるかについて検討する。なお、属性のデータ点及び属性を表すときに許容できる誤差の程度を表すのにどれだけの精度が必要とされるかも考慮しなければならない。
【0357】
このプロセスは、入力及び出力のどちらにも用いられる。
【0358】
次に、本発明に係るDRトレーニングアルゴリズム30がいかに浮動小数点データを学習することができるかに係る好ましい実施形態を記載する。
【0359】
「2つの螺旋を使った問題(Two−Spiral Problem)」の場合、学習されるデータセットは、(x,y)形式(x,y∈R)のデカルト座標であり、NNの出力は、データ点がどの螺旋に属するかを示す。
【0360】
アルキメデスの螺旋の極座標方程式から2クラスのデータ、r=θ及びr=−θを取り出す。各螺旋上には97個のデータ点があり、かつ各螺旋は3段階を有する、これにより点がおよそ7.4度離れることになる。続いて、問題の明細によって求められるとおりにその点をデカルト座標に変換する。
【0361】
データ点において充分な精度があることを保証するため、データ点は、好ましくは小数点以下第3位において四捨五入する。続いて、データ点に100を掛けた後、バイナリに変換する。負の浮動小数点数の場合は、その数の2の補数を用いる。入力ベクトルを符号化できるように、データ点のデカルト座標(x,y)である属性の各一毎に12個の2進数字を用いる。NNへの2個の入力を有する代わりに、24ビットある。座標を12個のバイナリ位置に限定することが、入力空間が充分な精度をもってアクセス可能であることを保証する。
【0362】
螺旋からのサンプルデータ点を考察すると、極座標におけるr=−θは(−π/2、π/2)である。この点をデカルト座標に変換すると、点は(0,−1.5708)になる。これらの値に100を掛けて最も近い整数に丸めると(0,−157)になる。続いて、これらの値を最終的に12桁の2進数(000000000000,111101100011)に変換する。NNに加えられる入力ベクトルは、000000000000111101100011になる。
【0363】
バイナリデータ及び浮動小数点データが変換されたところで、記号データ(symbolic data)について解説する。
【0364】
(記号データ)
記号データ(symbolic data)は非数値データであり、演算目的においてバイナリでも浮動小数点でもない。そのデータが有する幾つかの非定量的属性を指してもよい。次に、本発明に係るDRトレーニングアルゴリズム30がどのようにして記号データを学習することができるかに係る好ましい実施形態を記載する。
【0365】
性別等の属性の場合、属性は2つの可能な値を有するがゆえに、例えば、女性は1かつ男性は0と、単一のバイナリ入力を割り当ててデータを符号化することができる。また、他の記号属性をバイナリ値に与えてもよい。色という記号属性に係る若干より複雑な実施例は、緑、青及び黄色の3つの値を有する。この属性の値を符号化するのに2ビットを割り当てることが可能である。例えば、このフィールドを符号化するのに2ビットを割り当てて、01−緑、10−青、及び11−黄色とバイナリ値を任意に割り当てることができる。01−青、00−緑及び10−黄色等、代わりに使用できたであろう組み合わせが他にも多く考えられるので、これは、多くの可能な符号技法のうちの1つにすぎないことを理解されたい。2ビットの代わりに3ビットといったように他の符号化戦略を代わりに用いてもよい。あるいは、この場合は色である属性に対して、何個の値がテストされているかに応じてビット数が異なってもよい。
【0366】
データ符号化戦略を選択する際の主な検討事項は、分類されるデータ及びデータから求められる分類によって決まる。
【0367】
例えば、NNが学習することになっているデータ属性の1つが信用履歴であり、その値が「不充分」、「平均」、「良好」及び「優秀」である場合、トレーニングしたNNは、良好な信用リスクである顧客をそうでない顧客から分離することになる。良好な信用履歴を有する顧客とその顧客の潜在的なローン返済能力との間には相関関係があると仮定することができる。
【0368】
その属性に割り当てることができる記号値は4個あるので、4個全ての値を符号化するのに2ビットを有することが必要になるだけである。データからどんな出力が求められるかについては、値を割り当てるときに注意を払わなければならない。例えば、「不充分」を01、「平均」を10、「良好」を11、及び「優秀」を00として符号化する場合、「良好」及び「優秀」が他の「不充分」及び「平均」の値から分離されることになるなら、そのデータは、入力空間においてXORを形成し、それゆえ、線形分離可能ではなくなる。本発明に係るDRトレーニングアルゴリズム30は、XORに相当するため、これを学習することができるが、そのデータを学習するには付加的なLTGが必要とされる。このことを「記号上の対立(symbolic conflict)」を符号化すると呼ぶことができる。入力空間において値が線形分離可能であるように、異なって符号化することによって記号上の対立を回避することができる。例えば、「良好」を11及び「優秀」を10、及び「不充分」を00及び「平均」を01として符号化することがこの問題を回避する。そうすると、「良好」/「優秀」は「不充分」/「平均」から線形分離可能になる。データを符号化する最良の方法は、符号化されるデータによって決まるので、結果として、各属性を個別に検討しなければならない。
【0369】
なお、任意の顧客が良好な信用リスクであるかを予測することにも影響を与える信用履歴の外に付加的な属性の関係があると仮定されるので、これは簡単化である。
【0370】
出力と属性値との間に明らかなつながりが全くなくてもよいのと同時に、記号上の対立を回避することが必ずしも可能でなくてもよい。本発明に係るDRトレーニングアルゴリズム30は、NN内へ求められるとおりにLTGを付加することができるので、記号上の対立(symbolic conflicts)を学習することができる。
【0371】
非バイナリデータを作成する方法が本発明に係るDRトレーニングアルゴリズム30によって学習されることを考察したところで、次に、実験手順について検討する。
【0372】
(実験手順)
上述したドメインの各一毎に同じ実験を行なった。データセットを使ってNNをトレーニングして、そのデータセットにさらした回数を記録した。トレーニング後にNNが、見えないデータをいかによく一般化できるようになったかといった見地からNNの性能を評価して、その結果を同じデータを使ってトレーニングしたNNのすでに公開されている結果と比較した。
【0373】
トレーニングが完了すると、NNをテストして、NNがトレーニングセットに対して正確な出力を再現し、かつテストセットのある部分を分類することができることを保証した。
【0374】
それぞれのNNに対してテストしたデータセットの概要は、上述したとおりである。先に定義した方法と同じ又は類似した好ましい方法を用いてデータセットをバイナリに変換した。
【0375】
(実験結果)
次に、2つのデータセットのテスト結果について検討する。トレーニングからの結果及びテスト段階からの結果と、重要な結果が2セットある。トレーニング段階においては、データセットを学習するのに何個のトレーニングパスが必要とされたかが重要である。テスト段階においては、何個の見えない入力ベクトルが上手く分類されたかが重要である。
【0376】
(2つの螺旋を使った問題(Two−Spiral Problem))
既知のアルゴリズムについて公開されている結果:Weilandは、150000〜200000個のエポックにおいてバックプロパゲーションの修正版を用いてNNをトレーニングした。しかし、標準的なバックプロパゲーションでは解答が全く見つからなかった。しかしながら、Lang及びWitbrockは、2−5−5−5−1のアーキテクチャ、2個の入力、それぞれ5個の隠れユニットからなる3個の中間層、及び1個の出力ユニットを備えたNNをトレーニングした結果、そのNNは、標準的なバックプロパゲーションを用いて20000個のエポックにおいてデータセットを学習した。なお、彼らのNNは、それぞれ「近道」結合を用いてそれより前にある全層内の各ユニットから直接入力を受け取る中間層ユニットを有した。
【0377】
(本発明に係るDRトレーニングアルゴリズムの実験結果)
図17に、NNがトレーニングされるデータセット170を示す。各螺旋は97個のデータ点を有する。実験の結果、トレーニングしたNNは24個の入力と5個の隠れLTGと1個の出力LTGを有する。あらゆる場合にANDを用いてLTGを結合した。NNが学習したのは、単一エポックにおいてであった。
【0378】
(解説)
図18に、生成されたNN180の概略図を示す。本発明に係るDRトレーニングアルゴリズム30を使って単一パスにおいてNN180をトレーニングして、未知の入力ベクトルのデフォルトは1を出力することとした。DR学習の結果得られたNN180は、バックプロパゲーションに必要とされるものより標準的で単純な構造を有する。図18に見られるように、中間層182内にあるLTG(LTG11,LTG12,LTG13,LTG14,及びLTG15)は、出力層184内のLTG T21によってあらゆる場合にANDを使って結合された。NN180がトレーニングされたデータセット170(図17)は、それぞれ3つの段階からなる2つの螺旋を有する。各螺旋は、97個のデータ点を有する。NN180は、正確に100%のトレーニングベクトルをリコールすることができた。
【0379】
各螺旋毎に80個の入力ベクトルを使ってNN180をテストしたところ、トレーニングセットからはデータ点が全くなかった。1を出力することになっていた螺旋からの入力ベクトルについては、21/80個の入力ベクトルが間違って分類された。これは26%の誤り率となる。
【0380】
0を出力するようにトレーニングされた螺旋からの80個の入力ベクトルのうち、35/80個の入力ベクトルが間違って分類された。これは43%の誤り率になる。この結果が非常に高くなった理由は、入力ベクトルの出力が不明であったLTGについて、デフォルトの出力が1だったためである。
【0381】
どちらの螺旋も平均誤り率は34.5%である。トレーニングセットに対して訂正出力を98%予測することができたであろう場合に、NN180は、トレーニングされたとみなされたので、2つの螺旋を使った問題について比較できる誤り率を見つ出すことは困難であった。また、1は>.5であって、0は<.5であるとしてもよいので、カスケード相関アーキテクチャ(Cascade−Correlation Architecture、CAS)について、誤り率を見つけ出すことは困難であった。Tengらは、ニューロンが>.8であれば有効であるとし、そうでなければ活性化されていないとした。Fuら、Tengら、及びFahlmanらにとっていっそう重要なことは、中間層内にあるユニットの数及びNNをトレーニングするのに必要とされたエポック数又は時間であった。あらゆる場合に、本発明に係るDRトレーニングアルゴリズム30は、100%の正確さをもってデータセットを学習するのに最も少ない隠れユニット数を必要とし、かつたった1エポックだけを必要とした。DRトレーニングアルゴリズム30は、5個の隠れニューロンを必要とし、CASは、平均して12個の隠れニューロン及び1700個のエポック、2082+478個のエポック21.1+2.3個のサブNN(1個以上のニューロンである)、並びに10個の隠れユニットを必要とし、最低1073.45個のCPU内において学習した。本発明に係るDRトレーニングアルゴリズムが最後の入力ベクトルを学習するのにかかった時間及びそれゆえに「2つの螺旋の問題」に対して任意の他の入力ベクトルを学習するのにかかった最長時間は、15分54秒であった。これは、制約充足ライブラリの使用のためであり、182個の中間層内に最後の入力ベクトルを学習するLTGが5個あった。入力ベクトルをテストする平均時間は約30分であった。バックプロパゲーションを使ってトレーニングしたNNは、固定サイズのNNを必要とするため、データセットを学習する時間は、バックプロパゲーションを使うよりも著しく短くなる。
【0382】
誤り率は、データセットの内側についてより小さかった。誤り率は、各螺旋毎に最初の1.5段階内において23%及び33%だった。誤差の増加は、データセットの内側にあるデータ点をトレーニングするより高い密度に起因するものと考えられる。
【0383】
なお、r=θを有する螺旋を予測するのによりよい成功を有した。図19に、テストデータの結果を示す。
【0384】
「□」からなる曲線上の「+」は、正確に識別された入力ベクトルであって、「○」からなる曲線上の「×」もまた正確に識別された入力ベクトルであることを示す。他では、それらは間違って識別される。ここで、NN180の一般化能力を高めるのに付加的なトレーニングを与えることを必要とするのは入力空間のどの部分であるかが分かる。フィードフォワードNNをトレーニングするには伝統的にとても困難なデータセットであることに留意されたい。
【0385】
最後の入力ベクトルを除いて、どの入力ベクトルに対しても、NN180の場合、中間層182内にある1つ以上のLTGについて不完全な学習があった。ほとんどの場合、LTG15において不完全な学習があった。
【0386】
生成されたNN180は、バックプロパゲーションを用いたときに生成されるNNよりより複雑ではない。さらには、それは困難なデータセットである。入力ベクトル数を増やしてトレーニングすることによって結果を改善することができたと考えられる。
【0387】
従って、本発明に係るDRトレーニングアルゴリズム30は、その一般化能力に関して、フィードフォワードNNをトレーニングする他の手法と同様によく動作することができる。DRトレーニングアルゴリズム30は、類似した構造をトレーニングする異なったトレーニング方法である。
【0388】
次に、NN180内にあるLTGの各一についてMAVを考察して、LTGの各一が何を学習したかを明らかにする。
【0389】
(「2つの螺旋を使った問題」におけるLTGのMAV決定)
LTG11の場合(閾値T11を有する)図15の方法150を用いてMAVを見つけることで、制約条件数を194個から29個に減らした。これは85.1%の減少又は圧縮である。このLTGによって学習された他の入力ベクトルは全て、先に解説したように、LTGのMAVを形成する残された点から回復することができる。この重み空間は24次元を有する。
【0390】
制約条件のうち、13個の入力ベクトルがxi・w11>−T11を形成し、残りの16個の制約条件がxi・w11<T11を形成した。
【0391】
LTGに活性化する重み空間内の領域の面を形成する平面を調べることによってLTGが何を学習したかをグラフにすることができる。これらの平面をxi・w11として表す。重み空間は入力空間の変形である。LTGが何を学習したかを明らかにすることができるように、MAV内の制約条件をそれらの制約条件が形成された元の入力ベクトルに変換し直す。続いて、元の入力ベクトルがどうやって形成されたかに係るプロセスを10進法から2進法へと逆にすることができる。これをどのようにはじめるかについての解説は、先の、浮動小数点数を作成する方法を解説したところに記載してある。次に、中間層182内にある各LTGが本発明に係る方法を用いて何を学習したかを説明する。
【0392】
図20aにおいて、中間層182内にある最初のLTGであるLTG11が何を学習したかが分かる。「○」及び「□」は、元の入力ベクトルであることを示す。「□」はr=θの螺旋を表し、「○」はr=−θの螺旋を表している。「+」は、LTG11のMAVを見つけた後に残った入力ベクトルであることを示し、このデータセットを分類することに対して顕著な入力ベクトルを表している。「×」は、xi・w11<T11を用いて学習された制約条件であることを示す。「+」は、xi・w11>T11を用いて学習された制約条件であることを示す。後続のLTGについても、この凡例に従う。以上がこのLTG11が正確に学習したことである。また、入力空間ではなく重み空間内において規定した体積の面としてデータを符号化することによってデータセットが学習されることに留意する価値がある。
【0393】
伝統的に、学習しているクラスを線形分離するには入力空間を分析する。重み空間は24次元空間なので、重み空間を調べることは不可能である。このことは、中間層182内にある他のLTGについても同じである。なお、当該LTGであるLTG11は、データセット全体を学習することはできない。次に、LTG12が何を学習したかを検討する。
【0394】
LTG12の場合、MAVを見つけることで制約条件数を194個から34個に減らした。これは82.5%の減少又は圧縮である。xi・w12<T12を形成する16個を除いた全ての制約条件がxi・w12≧T12を形成する制約条件を生成した。図20bにおいて、中間層182内にある第2のLTGであるLTG12が何を学習したかが分かる。
【0395】
図20aの場合と同じ凡例を用いると、LTG12が種々の入力ベクトルを学習したことが分かる。「□」の螺旋r=θ上において、学習した入力ベクトルの全てがそのクラス、すなわちxi・w12≧T12であることが分かるなお、このクラスでもある多くの入力ベクトルが「○」の螺旋r=−θ上にある。その理由は、当該LTGであるLTG12がこのデータセット内にある全てを学習することができなかったためである。また、中間層182出力内にあるLTGがLTG21である出力LTGによってANDを使って結合される。このことは、当該LTGであるLTG12がそれらの入力ベクトルに対して0の代わりに1という間違った結果を生成する場合に、当該層内にある別の1個のLTGだけがそれらの入力ベクトルを学習することができ、かつ0を生成することを意味している。次に、LTG13が何を学習したかを検討する。
【0396】
LTG13の場合、MAVを見つけることで制約条件数を194個から51個に減らした。これは73.7%の制約条件の減少である。xi・w13<T13を形成する10個を除いた全ての制約条件がxi・w13<T13の形式を生成した。図20cにおいて、中間層182の第3のLTGであるLTG13が何を学習したかが分かる。
【0397】
LTG14の場合、MAVを見つけることで制約条件数を194個から81個に減らした。これは58%の減少又は圧縮である。xi・w14<T14を形成する6個の制約条件を除いた全ての制約条件がxi・w14≧T14を形成する制約条件を生成した。図20dにおいて、中間層182内にある第4のLTGであるLTG14が何を学習したかが分かる。
【0398】
次に、LTG15が何を学習したかを検討する。LTG15の場合、MAVを見つけることで制約条件数を194個から159個に減らした。これは18%の減少又は圧縮である。LTGによって学習された制約条件全てが、1個の出力ベクトルを除いて、xi・w15>T15を形成する制約条件を生成した。図20eにおいて、中間層182内にあるLTGのうち最後に残ったLTG15が何を学習したかが分かる。
【0399】
当該LTGであるLTG15の主な目的は、「×」によって示された入力ベクトルを学習することである。また、当該LTGは、r=θ螺旋に「□」によって示されるほど多くの点を有する。
【0400】
中間層182内にあるLTGについては、2つの螺旋に対して異なった曲線部分を学習したことが分かる。NN180は100%の正確さをもって教えられたことを再現することができたのを思い出すことが大切である。
【0401】
LTG21又はNN180の出力LTGに対してもMAVが配置された。それは、その入力結合全てとの間にANDを形成したため、32個の制約条件があった。これでMAV内における制約条件が6個に減った。これは81%の減少又は圧縮である。
【0402】
MAVを定義するものと判明した入力ベクトルに関数最小化を適用することはできない。その理由は、データが依存しているためであり、言い換えると、入力ベクトルが単一数を定義し、それゆえ関数最小化が意味のない情報を与えることになるからである。
【0403】
(ドイツの信用貸付問題(German Credit Problem))このデータセットは、それに関連したコストマトリックスを有する。コストマトリックスを表3に記載する。縦の行が予測したクラスを示し、横の列が実際のクラスを示す。顧客が良好であると予測されて、かつローン返済にあたり良好である場合、また同様に顧客が不適当な信用リスクであると予測されて、かつそうであると証明される場合には損失はない。ただし、ある人物が実施には良好であるときに不適当な信用リスクであると予測される場合には、貸付機関の利益を損なうことになる。しかし、顧客が実際には不適当な信用リスクであるときに良好な信用リスクであると予測されるケースの方がいっそう悪い。NNのコストを算出するときに考慮する必要がある誤りのクラスが2つある。
【0404】
【表3】
ドイツの信用貸付問題データセットのコストマトリックス
【0405】
既知のアルゴリズムについて公開されている結果:バックプロパゲーションの誤り率を表4に記載する。バックプロパゲーションがコストマトリックスに対して求められるとおりには誤りクラスを識別しないため、これらの数値にはコストマトリックスが含まれない。
【0406】
【表4】
バックプロパゲーションの誤り率
【0407】
このデータセットと併せてバックプロパゲーションを用いてNNをトレーニングするのに必要とされる時間及びテストするのに必要とされる時間を表5に記載する。
【0408】
【表5】
バックプロパゲーションのトレーニング時間
【0409】
(本発明に係るDRトレーニングアルゴリズムの実験結果)
このデータセットを使ってトレーニングすると、1個の出力と2個の中間層LTGを有するNNを生成した。中間層のLTGは、OR結合によって結合された。データセット内には1000個の入力ベクトルがある。1000個のベクトルからなるデータセットから100個の入力ベクトルからなるテストセットを任意に選択した。トレーニング後に生成されたNN190の概略図を図21に示す。
【0410】
テストを行なうために取って置いた100個の入力ベクトルの中から、出力に対して0を生成する89個ある入力ベクトルのうち間違って識別された入力ベクトルは4個だった。従って、85個の入力ベクトルが正しく識別された。テストセット内の出力に対して1を生成する11個の入力ベクトルのうち、正しく識別された入力ベクトルは9個だった。従って、2個の入力ベクトルが間違って識別された。これらの結果を表6にまとめる。
【0411】
【表6】
ドイツ信用問題の結果まとめ
【0412】
1を生成する入力ベクトルに対する誤り率が18%と幾分高いことが分かった。0を生成する入力ベクトルに対する誤り率は4.4%である。誤りは全体で6%である。付加的なトレーニングは、どちらの種類の出力を備えた入力ベクトルに対しても誤り率を低くするものと考えられる。NN190は、学習したことを100%の正確さをもって再現することができた。
【0413】
誤りの結果は全てバックプロパゲーションよりも良好であり、バックプロパゲーションでは0.446のトレーニング誤り及び0.772のテスト誤りがあった。
【0414】
この実験は、本発明に係るDRトレーニングアルゴリズムが提供する、バックプロパゲーション等の既知のトレーニングアルゴリズムに勝る重要な利点を明らかにしている。重みは、それらが学習しようとしているデータセットに固有のルールを符号化しようと試みる平均値を表すので、バックプロパゲーションの場合、誤りを0にすることはできない。バックプロパゲーションを用いるときの各知覚における単一重み値は、それが各入力ベクトル毎に正確な出力を生成するように学習するのを可能にするであろう各入力ベクトル毎に必要とされる重み値を正確に表すことができない。それは各入力ベクトル毎に正確な出力を可能にするので、これが、重み空間内においてその領域を見つけることの利益のうちの1つである。
【0415】
NN190を合計268個の入力ベクトルを使ってトレーニングしたところ、これらの入力ベクトルのうち168個が1を生成し、残りの100個の入力ベクトルが0を生成した。これらの入力ベクトルは、テストに用いられず、残っていた900個の入力ベクトルから任意に選択したものであった。トレーニングするのに、もっと多い入力ベクトルを用いることもできたであろう。
【0416】
トレーニングに利用可能なデータセットのうち<1/3を使ってNN190をトレーニングしたところ、バックプロパゲーションより良好な誤り率を生成した。
【0417】
これらの実験の結果は、本発明に係るDRトレーニングアルゴリズムが実際のデータセットに用いられるものであるならば、より高速な制約条件テスト方法が好ましいことを示している。
【0418】
また、実験の結果は、すでに学習した入力ベクトルの数に応じて、各入力ベクトルを学習するのに必要とされる時間量が増加したことも示した。このことを改善する方法は少なくとも2つあり、それらは、(1)平行プロセッサを用いること、又は(2)より効率のよい制約条件テストアルゴリズムを用いることである。多くのメモリを備えた最新式のプロセッサは、DRトレーニングアルゴリズム30の動作を向上させることができるとも考えられている。
【0419】
テスト用に予約してあった100個の入力ベクトルのうち、11個の入力ベクトルが出力1を生成し、残りの89個の入力ベクトルが出力として0を生成する。データセット全体において1を生成する入力ベクトルは相対的に少ない。なお、出力が何であるべきかが分からないときは0を出力する傾向があるので、NN190が上手く1を出力する方法を学習するように、1を出力する相対的により多くの入力ベクトルを使ってトレーニングすることが決まった。このように1よりむしろ0を出力する傾向が選択されていた訳は、偽陰性の偽陽性より優先される比は5:1であると指定されているためである。このことは、偽陰性対偽陽性5:1の分類誤りを優先させることを示すコストマトリックスに基づいている。言い換えれば、顧客が実際には不適当であるのに良好な信用リスクであるとして誤って識別するよりもむしろ、顧客が実際には良好な信用リスクであるときに不適当な信用リスクとして分類することを優先させることになる。
【0420】
従って、表3におけるコストマトリックスを適用すると、コストは14である。NNをテストするとき平均誤りだけが回収されるので、従来のNNトレーニングアルゴリズムを使ってコストを決定することは可能ではない。
【0421】
制約条件をテストするライブラリ関数の結果として、トレーニング時間がバックプロパゲーションの場合より長くなったが、本発明に係るDRトレーニングアルゴリズム30は、入力ベクトルを学習するのにデータセットのうち1パスのみ、及びNN190をトレーニングするのに利用可能なデータセットのうち1/3のみを必要とした。
【0422】
(「ドイツの信用貸付問題」におけるLTGのMAV決定)
図15のMAVを決定するための方法150を用いてNN190内にあるLTGに対してMAVを配置した。層内にある最後のLTG又は現在の出力LTGの場合、トレーニング中にLTGのMAVを見つけることは、NN190が学習したことを忘れるであろうことを意味する可能性があるのが分かった。これは、先に、NN内にLTGを付加するときのロジックを実装する方法を解説したところで記載したとおり、新しく付加したLTGを層内にコピーするときに制約条件が修正されるためである。
【0423】
トレーニング中に形成された268個の制約条件のうち、LTG11のMAVを見つけた後は45個が残っていた。これは、LTGのために重み空間を定義する制約条件の83%の減少である。これらの制約条件のうち、18個がxi・w11≧T11の形式になる制約条件を生成した。
【0424】
トレーニング中に形成された制約条件を考察する際、LTGが何を学習したかは(xi・w11≧T11 OR xi+1・w11>T11 OR...OR xi+n・w11≧T11)AND NOT(xj・w11<T11)AND NOT(xj+1・w11<T11)AND NOT...の形式において読み取ることができる。
【0425】
それ自体を論理分析に与えるのがこの形式においてであるので、このデータセットの分類にどの変数が無関係であるかを推論することができる。
【0426】
一般によくあるように、入力は独立して存在することを考えると、クワイン−マクラスキー法(Quine−McCluskey)又は反復コンセンサス法(iterated consensus)等の関数最小化技法の利用は、特に重要である変数を見つける。MAVを見つけることによって余分な入力ベクトルの全てを取り除くことができるので、関数最小化技法を用いるというタスクをはるかに容易にし、起こり得る指数的な複雑さを抑えるのに役立つ。
【0427】
なお、元のデータセット内にある幾つかの変数が複数のビット位置に変換されたので、それらの制約条件が何を表しているかを知ることはいっそう興味深い。
【0428】
第2のLTGであるLTG12を中間層192及び新しい出力LTGに付加させたのは、入力ベクトル[100011101010100000100011001101010001010001]→lであった。ベクトルをフィールドに分割すると[10 00 111 0101 01 000 001 00 011 00 11 01 01 00 01 0 10 0 0 1].このベクトルを翻訳すると「この顧客は預金口座を有してない、ローンは<12ヶ月でなければならない、指定期間内に現在あるクレジットの全てを返済した、家具/設備にローンを希望、1000〜5000DMの間で借り入れを希望、顧客の就労期間は<1年、自由に使える所得のパーセンテージは<1%、既婚女性/離婚、保証人なし、同一住所に4年以上居住している、この顧客は幾らかの貯金又は生命保険を有する、年齢が25〜40歳の間の女性である、家屋を所有している、当行において他にクレジットなし、熟練労働者である、扶養義務のある人物がいない、その女性名義の電話がない、及び外国人労働者である」となる。
【0429】
トレーニング中に形成された268個の制約条件のうち、LTG12のMAVを見つけた後は139個が残った。これは、LTGのために重み空間を定義する制約条件の48%の減少である。これらの制約条件のうち14個がxi・w11>T12になるような制約条件を生成した。
【0430】
出力LTGであるLTG21は、その入力結合間にORを形成した。結果として4個の制約条件を形成した。MAVを決定した後、制約条件数は3個にまで減った。これは、制約条件数において25%の減少である。
【0431】
このようなデータセットの場合、42次元を有するので、このプロセスを自動化することが非常に望ましい。中間層192内にある各LTG毎にMAVを見つけた後もなお45個及び139個の検討すべき制約条件又はルールがあり、このプロセスを自動化しなければ扱いにくくなる恐れがある。なお、良好な信用リスクである顧客を決定するためLTGが学習したことを基にした大まかなルールは、「自宅を貸していない又は借りていない、若しくは不動産/貯蓄又は(深刻な借金及び保証人)を有する」といったようなものであるということができる。
【0432】
なお、NN190が入力ベクトルのうち2つをテストセットから正確に分類しなかったことを考えると、NN190がまだ学習していない付加的特徴がデータセット内に少なくとも1つあることになる。
【0433】
(両データセットの実験結果まとめ)
どちらの場合にもNN180、190が100%の正確さをもってトレーニングセットを再現することができたことを考えると、比較の基準に基づき、どちらの場合にも学習されたルールの正確さは極めて高い。このことは、バックプロパゲーションがトレーニング中に確定する平均重み値と対照をなす。必然的に、バックプロパゲーションを用いる場合、NNがトレーニングされたデータ上においてNNをテストすると、出力に幾らかの誤差がある。入力ベクトルが分類される速度は、実行するルーチンを処理する制約条件に必要とされる時間に基づく。アルゴリズムがライブラリを処理する制約条件を頼りにすることを考えると、データセットを学習する時間は相対的に遅い。なお、アルゴリズム30を動作させるのに適当なコード及び/又はハードウェアを用いれば、入力ベクトルを1秒未満で学習したであろうことが考えられる。また、データセットは、そのデータセットの単一パス内において学習されることが可能である。このことは、NNが絶えずデータセットを学習するものであるかが分からないバックプロパゲーションと対照をなす。
【0434】
さらに、トレーニング中に学習されたルールは、非常にわかりやすいということが分かった。一方、数値アルゴリズムを使ってトレーニングしたNN内において符号化されるルールは、ほぼ完全に理解不能である。
【0435】
従って、本発明は、フィードフォワードNNの利用に関連した多くの利益を提供する。主な貢献を次のようにまとめることができる。(a)ニューロン、好ましくはLTGをトレーニングする新規方法である。(b)LTGをトレーニングする新規方法に基づいてフィードフォワードNNをトレーニングするアルゴリズム30は、(i)データセットを学習するのに必要とされるとおりにLTGをダイナミックに配置し、(ii)単一パス内において学習し、かつ(iii)簡易方法150が、得られたNNから容易に読み取られるようにトレーニング中に学習するルールを決定するのを可能にし、かつ(c)LTGが何を学習したかを分析する簡易方法130を可能にする。
【0436】
LTGをトレーニングする新規方法は、重みと各LTGの閾値との関係を見つけ出すものである。これは、LTGが入力を正確に学習してリコールすることを可能にする。言い換えると、ニューロンをトレーニングする従来の方法が生成を希望する近似値の代わりに、入力が正確に再現されることが可能である。
【0437】
本発明に従ってLTGをトレーニングする方法は、LTGに活性化する各LTGの重み空間内における体積を見つ出して、LTGへの入力間の関係を体積の面へと符号化する。
【0438】
この方法は、LTGが問い合わせられて、入力ベクトルを学習したか又は学習することができるかを、それゆえ入力ベクトルを分類する方法を知っているかを決定するのを可能にする。このテストは、LTGをNN内に配置することがいつ必要とされるかを決定する容易な方法を提供する。
【0439】
その方法は、先に学習した入力をリコールしかつ一般化する等、従来の方法を使ってトレーニングしたニューロンが実行する機能の全てをLTGが実行するのを可能にする。
【0440】
本発明に従って、ニューロン、好ましくはLTGをトレーニングする新規トレーニング方法の主な適用は、データセットを学習するNNに対して求められるとおりにニューロンを配置するDR学習アルゴリズム30の開発である。これは、NNの分野に対する重要な貢献である。
【0441】
フィードフォワードNNをトレーニングするこの方法が固定サイズのNN(NN内にあまりに多い又はあまりに少ないニューロンを有する場合がある)の問題を解決する。
【0442】
本発明に係るDRトレーニングアルゴリズム30の最も重要な特徴の1つが単一パスにおいてデータセットを学習する能力である。これは、潜在的に指数的なトレーニング時間になるという問題を解消するので、NNの分野に対して大きな貢献である。トレーニング時間は、LTGに問い合わせて入力が学習されたか又は学習され得るかを決定するのに必要とされるソフトウェアを処理する制約条件の速度に依存する一方で、そのことは、決定論的な時間量のうちにNNは学習するものであることを意味する。
【0443】
また、トレーニングに先行して、データを適当なフォーマットに変換するための有用な方法も提供するので、NNのトレーニング時間を改善するのに活用することができる。同様に、NNによってトレーニングされるデータを予め仕分けるための有用な方法もまた提供するので、データ分類の効率を上げるのに活用することができる。これらの方法は、あらゆるNNトレーニングアルゴリズムに対して有用であると考えられる。
【0444】
本発明の別の利点は、フィードフォワードNNの挙動、特にトレーニングの進行中に学習したルールを見抜く能力である。トレーニング方法がリレーショナル(関係的)であるため、本発明の利点は、入力間の関係を見つけ出すことであることを意味しており、それら入力間の関係は、LTGに活性化する体積の重み空間内における領域の面として蓄積される。後で従来の感度分析を行なうのに用いることができるMAVを見つけることによってこれらの関係が回復されるのを可能にする有用な方法150を提供する。LTGを層内に結合するのに用いる論理的関係をNNから直接読み取ることもできる。
【0445】
フィードフォワードNNのための従来のトレーニング方法は、トレーニング中に学習したルールをデータセットに関する多くの情報が失われる単一数値へと圧縮する。従来のトレーニング方法からでは、数値が表そうとしている考えられ得る限り最良の平均値をどれだけ正確に表しているかを決定することは可能ではない。
【0446】
本発明に係るDRトレーニングアルゴリズム30は、好ましくは全ての入力ベクトルを制約条件に変換し、かつその制約条件内に包含される関係をLTGを活性化する重み空間内における体積の面として蓄積する。このことは、全入力がリコールされるのを可能にし、本発明のさらなる態様によりMAVを決定する方法150を用いることによって制約条件セットを最小数の制約条件にまで減らすことができる方法を提供する。LTGのMAVを見つけることによって、LTGの制約条件セットから制約条件を取り除くときに情報は全く失われない。
【0447】
MAVを見つけ出す方法150は、NNに限定されるものではない。MAVを見つけ出す方法は、最適化及びオペレーションリサーチ型の問題に用いられるCSP等の制約条件のシステムを用いる他の分野にも有用である。
【0448】
行なった実験は、NNをトレーニングするのに、トレーニングされるNN内にある重みよりも多くの入力ベクトルが必要とされるとは必ずしもいえないことを示した。これは、各入力ベクトルがNN内にある各重みをトレーニングしているからである。DR学習は、どの入力ベクトルがLTGをNNに付加せしめているのかを容易に識別する簡易テストを提供する。完全なデータセットを使ってトレーニングすることが必ずしも必要なわけではない。
【0449】
NNが一般化できない潜在的な原因は、先に、NNが充分にトレーニングされず、その結果、見えない入力ベクトルの出力が分からないということを述べたところで解説している。本発明のさらなる態様に従えば、逆に、見えない入力ベクトルに対する出力が何かをNNが知っているか決定するのに用いることができ、かつどの入力ベクトルが未知であるかを明らかに識別することができる方法130を提供する。従って、NNは、どの入力ベクトルについて付加的なトレーニングを必要としているのかを特定することができる。
【0450】
入力ベクトルが既知であるか未知であるかを決定する方法130は、NNに限定されるものではない。入力ベクトルを分類する方法は、サンプルDNAに関して、データ列の分析等制約条件のシステムを用いる他の分野にも有用であると考えられる。同様に、入力ベクトルを分類する方法をCSP及びオペレーションリサーチの用途にも有用であり得る。
【0451】
本明細書において本発明の一般的な性質及び例として幾つかの具体的な実施形態のみを規定しているため、本発明は、当業者にとって容易に明らかになるであろう多くのさらなる変更及び本発明の広い範囲及び領域内に存在するとみなされるであろう多くのさらなる変更をも含むものであると理解されるであろう。
【特許請求の範囲】
【請求項1】
入力ベクトルがニューロンによって既知であるか未知であるかを決定する方法であって、前記入力ベクトルから制約条件及びその補空間を構築するステップと、前記制約条件及び補空間を交互に前記ニューロンの制約条件セットに追加するステップと、いずれかの場合に解答があるか否かを決定するために前記制約条件セットを試験するステップであって、前記制約条件又はその補空間のいずれか一方に解答がある場合には、前記入力ベクトルは、前記ニューロンに既知であることが決定され、前記制約条件及びその補空間が交互に前記制約条件セットに追加されるときに解答がある場合には、前記入力ベクトルは、前記ニューロンによって既知ではないことが決定される、ステップと、を含む、方法。
【請求項2】
前記制約条件セットは、LTGニューロンから構築されるニューラルネットワークのニューロンの制約条件セットである、請求項1に記載の方法。
【請求項3】
前記ニューラルネットワークの未知入力ベクトルの出力を決定する、請求項1に記載の方法。
【請求項4】
前記ニューラルネットワークのLTGの未知入力ベクトルを決定するために、データセットに応じて、前記未知入力ベクトルのデフォルト出力は、1又は0にセットされる、請求項1に記載の方法。
【請求項5】
前記ニューラルネットワークのLTGの与えられた未知入力ベクトルが当該LTGに既知であるか未知であるかを決定する、請求項1に記載の方法。
【請求項6】
制約条件セットの最小活性化体積(MAV)を決定するための方法であって、
(i)前記制約条件セット内に残る制約条件を変化させずに前記制約条件セットからそれぞれの制約条件を一度に1つ除去するステップと、
(ii)前記除去した制約条件セットの補空間を前記制約条件セットに追加するステップと、
(iii)解答があるか否かを調べるために新規な制約条件セットをテストするステップと、を含み、
解答がある場合には、MAVを定義する制約条件セットに最初の制約条件が追加され、前記制約条件セットに追加された前記補空間は除去され、最初の制約条件が前記制約条件セットに戻され、前記制約条件セット内にまだ制約条件がある場合には、ステップ(i)から(iii)を繰り返し、さもなければ前記MAVは前記MAVを定義する制約条件セットの範囲内に保持される制約条件のセットとし、
解答がない場合には、前記制約条件セットに追加された前記制約条件の補空間は除去され、最初の制約条件が前記制約条件セットに戻され、前記制約条件セットにテストする制約条件がまだある場合には、ステップ(i)から(iii)を繰り返し、さもなければ前記MAVは前記MAVを定義する前記制約条件セットの範囲内に保持される制約条件のセットとする、方法。
【請求項7】
前記制約条件セットは、LTGニューロンから構築されるニューラルネットワークのニューロンの制約条件セットである、請求項6に記載の方法。
【請求項8】
ニューラルネットワークにおいて、各LTGに対するMAVを決定する、請求項7に記載の方法の使用。
【請求項9】
バイナリフォーマットデータセット以外のデータセットをニューラルネットワークにより学習されるバイナリフォーマットデータセットに変換するための方法であって、
(i)前記データセットの各属性をバイナリで提示するためのビット数を別個に決定するステップと、
(ii)計算式:範囲=(最大−最小)+1を用いて前記データセットの属性の範囲を計算し、ステップ(i)で決定したビット数を用いて前記データセットの属性の範囲をコード化するステップと、を含む、方法。
【請求項10】
ニューラルネットワークによりトレーニングされるデータセットを用意する、請求項9に記載の方法。
【請求項11】
データセットの入力ベクトルを2つの群にソートするステップと、1を出力するものを0を出力するものと分離するステップと、ニューラルネットワークにより最初に学習される、前記2つの群の一方を選択するステップと、を含む、ニューラルネットワークによりトレーニングされるデータセットをソートする方法。
【請求項12】
ニューラルネットワークによりトレーニングされるデータセットをソートする、請求項11に記載の方法。
【請求項1】
入力ベクトルがニューロンによって既知であるか未知であるかを決定する方法であって、前記入力ベクトルから制約条件及びその補空間を構築するステップと、前記制約条件及び補空間を交互に前記ニューロンの制約条件セットに追加するステップと、いずれかの場合に解答があるか否かを決定するために前記制約条件セットを試験するステップであって、前記制約条件又はその補空間のいずれか一方に解答がある場合には、前記入力ベクトルは、前記ニューロンに既知であることが決定され、前記制約条件及びその補空間が交互に前記制約条件セットに追加されるときに解答がある場合には、前記入力ベクトルは、前記ニューロンによって既知ではないことが決定される、ステップと、を含む、方法。
【請求項2】
前記制約条件セットは、LTGニューロンから構築されるニューラルネットワークのニューロンの制約条件セットである、請求項1に記載の方法。
【請求項3】
前記ニューラルネットワークの未知入力ベクトルの出力を決定する、請求項1に記載の方法。
【請求項4】
前記ニューラルネットワークのLTGの未知入力ベクトルを決定するために、データセットに応じて、前記未知入力ベクトルのデフォルト出力は、1又は0にセットされる、請求項1に記載の方法。
【請求項5】
前記ニューラルネットワークのLTGの与えられた未知入力ベクトルが当該LTGに既知であるか未知であるかを決定する、請求項1に記載の方法。
【請求項6】
制約条件セットの最小活性化体積(MAV)を決定するための方法であって、
(i)前記制約条件セット内に残る制約条件を変化させずに前記制約条件セットからそれぞれの制約条件を一度に1つ除去するステップと、
(ii)前記除去した制約条件セットの補空間を前記制約条件セットに追加するステップと、
(iii)解答があるか否かを調べるために新規な制約条件セットをテストするステップと、を含み、
解答がある場合には、MAVを定義する制約条件セットに最初の制約条件が追加され、前記制約条件セットに追加された前記補空間は除去され、最初の制約条件が前記制約条件セットに戻され、前記制約条件セット内にまだ制約条件がある場合には、ステップ(i)から(iii)を繰り返し、さもなければ前記MAVは前記MAVを定義する制約条件セットの範囲内に保持される制約条件のセットとし、
解答がない場合には、前記制約条件セットに追加された前記制約条件の補空間は除去され、最初の制約条件が前記制約条件セットに戻され、前記制約条件セットにテストする制約条件がまだある場合には、ステップ(i)から(iii)を繰り返し、さもなければ前記MAVは前記MAVを定義する前記制約条件セットの範囲内に保持される制約条件のセットとする、方法。
【請求項7】
前記制約条件セットは、LTGニューロンから構築されるニューラルネットワークのニューロンの制約条件セットである、請求項6に記載の方法。
【請求項8】
ニューラルネットワークにおいて、各LTGに対するMAVを決定する、請求項7に記載の方法の使用。
【請求項9】
バイナリフォーマットデータセット以外のデータセットをニューラルネットワークにより学習されるバイナリフォーマットデータセットに変換するための方法であって、
(i)前記データセットの各属性をバイナリで提示するためのビット数を別個に決定するステップと、
(ii)計算式:範囲=(最大−最小)+1を用いて前記データセットの属性の範囲を計算し、ステップ(i)で決定したビット数を用いて前記データセットの属性の範囲をコード化するステップと、を含む、方法。
【請求項10】
ニューラルネットワークによりトレーニングされるデータセットを用意する、請求項9に記載の方法。
【請求項11】
データセットの入力ベクトルを2つの群にソートするステップと、1を出力するものを0を出力するものと分離するステップと、ニューラルネットワークにより最初に学習される、前記2つの群の一方を選択するステップと、を含む、ニューラルネットワークによりトレーニングされるデータセットをソートする方法。
【請求項12】
ニューラルネットワークによりトレーニングされるデータセットをソートする、請求項11に記載の方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10a】
【図10b】
【図11】
【図12】
【図13】
【図14a】
【図14b】
【図14c】
【図14d】
【図14e】
【図14f】
【図14g】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20a】
【図20b】
【図20c】
【図20d】
【図20e】
【図21】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10a】
【図10b】
【図11】
【図12】
【図13】
【図14a】
【図14b】
【図14c】
【図14d】
【図14e】
【図14f】
【図14g】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20a】
【図20b】
【図20c】
【図20d】
【図20e】
【図21】
【公開番号】特開2013−20638(P2013−20638A)
【公開日】平成25年1月31日(2013.1.31)
【国際特許分類】
【出願番号】特願2012−215316(P2012−215316)
【出願日】平成24年9月27日(2012.9.27)
【分割の表示】特願2008−539194(P2008−539194)の分割
【原出願日】平成18年11月15日(2006.11.15)
【出願人】(508143638)
【公開日】平成25年1月31日(2013.1.31)
【国際特許分類】
【出願日】平成24年9月27日(2012.9.27)
【分割の表示】特願2008−539194(P2008−539194)の分割
【原出願日】平成18年11月15日(2006.11.15)
【出願人】(508143638)
[ Back to top ]