JP2009516246A - ニューラルネットワークのトレーニング方法 - Google Patents
ニューラルネットワークのトレーニング方法 Download PDFInfo
- Publication number
- JP2009516246A JP2009516246A JP2008539194A JP2008539194A JP2009516246A JP 2009516246 A JP2009516246 A JP 2009516246A JP 2008539194 A JP2008539194 A JP 2008539194A JP 2008539194 A JP2008539194 A JP 2008539194A JP 2009516246 A JP2009516246 A JP 2009516246A
- Authority
- JP
- Japan
- Prior art keywords
- ltg
- output
- neural network
- constraint
- layer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
- 238000012549 training Methods 0.000 title claims abstract description 457
- 238000000034 method Methods 0.000 title claims abstract description 323
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 99
- 239000013598 vector Substances 0.000 claims abstract description 447
- 210000002569 neuron Anatomy 0.000 claims abstract description 212
- 210000004205 output neuron Anatomy 0.000 claims abstract description 22
- 230000008569 process Effects 0.000 claims description 78
- 238000012360 testing method Methods 0.000 claims description 71
- 230000000295 complement effect Effects 0.000 claims description 47
- 230000004913 activation Effects 0.000 claims description 38
- 210000002364 input neuron Anatomy 0.000 claims description 5
- 238000012986 modification Methods 0.000 claims description 5
- 230000004048 modification Effects 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 claims 1
- 239000010410 layer Substances 0.000 description 302
- 238000004422 calculation algorithm Methods 0.000 description 172
- 230000006870 function Effects 0.000 description 46
- 238000010586 diagram Methods 0.000 description 29
- 238000010206 sensitivity analysis Methods 0.000 description 22
- 230000006399 behavior Effects 0.000 description 18
- 230000008901 benefit Effects 0.000 description 17
- 238000013459 approach Methods 0.000 description 15
- 238000002474 experimental method Methods 0.000 description 13
- 230000002829 reductive effect Effects 0.000 description 11
- 238000000605 extraction Methods 0.000 description 9
- 230000009467 reduction Effects 0.000 description 9
- 238000002360 preparation method Methods 0.000 description 8
- 230000006835 compression Effects 0.000 description 7
- 238000007906 compression Methods 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 7
- 238000007792 addition Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 6
- 238000011160 research Methods 0.000 description 6
- 238000002507 cathodic stripping potentiometry Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000007796 conventional method Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 210000004556 brain Anatomy 0.000 description 4
- 238000010276 construction Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000021121 meiosis Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 239000002356 single layer Substances 0.000 description 3
- 238000007619 statistical method Methods 0.000 description 3
- 241000714197 Avian myeloblastosis-associated virus Species 0.000 description 2
- 101150037717 Mavs gene Proteins 0.000 description 2
- 210000003710 cerebral cortex Anatomy 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000002068 genetic effect Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 208000000044 Amnesia Diseases 0.000 description 1
- 208000031091 Amnestic disease Diseases 0.000 description 1
- 241000975394 Evechinus chloroticus Species 0.000 description 1
- 230000006986 amnesia Effects 0.000 description 1
- 238000000137 annealing Methods 0.000 description 1
- 229960000106 biosimilars Drugs 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008555 neuronal activation Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
- 230000000946 synaptic effect Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B13/00—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B13/00—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
- G05B13/02—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
- G05B13/0265—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion
- G05B13/027—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion using neural networks only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06J—HYBRID COMPUTING ARRANGEMENTS
- G06J1/00—Hybrid computing arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Automation & Control Theory (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Computer Hardware Design (AREA)
- Fuzzy Systems (AREA)
- Image Analysis (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Physiology (AREA)
- Feedback Control In General (AREA)
- Machine Translation (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
【課題】本発明は人工ニューラルネットワーク(NN)をトレーニングする方法(30)を提供する。
【解決手段】前記方法(30)は:トレーニングするNNの出力を選択し、NNのニューロンの出力を前記選択した出力のためのNNの入力層に接続することによりNNを初期化するステップ;NNに学習させるデータセットを用意するステップ;並びに、前記用意したデータセットの入力ベクトルをNNの第1の中間層に、又はNNに中間層がなければNNの出力層に適用することにより前記用意したデータセットをNNに適用して学習させるステップ;及び、NNの各層における前記選択した出力のための少なくとも1のニューロンが、入力ベクトルに対する付随出力の生成を学習しうるか否かを決定するステップを含んでなる。NNの1層におけるどのニューロンも入力ベクトルに対する前記付随出力の生成を学習できなければ、その層における全ての他のニューロンが学習できなかった付随出力を学習するために、その層に新規ニューロンが追加される。新規ニューロンは、トレーニングされる出力と関連する次の層において全てのニューロンと接続する出力を有する。出力ニューロンが入力ベクトルを学習できなければ、別のニューロンが同一層に追加され、現状の出力ニューロン及び全ての入力はこれに接続される。このニューロンは、古い出力が学習できなかった入力を学習する。追加ニューロンは次の層に追加される。このニューロンへの入力はNNの古い出力及び次の層への新規追加ニューロンである。
【選択図】図2
【解決手段】前記方法(30)は:トレーニングするNNの出力を選択し、NNのニューロンの出力を前記選択した出力のためのNNの入力層に接続することによりNNを初期化するステップ;NNに学習させるデータセットを用意するステップ;並びに、前記用意したデータセットの入力ベクトルをNNの第1の中間層に、又はNNに中間層がなければNNの出力層に適用することにより前記用意したデータセットをNNに適用して学習させるステップ;及び、NNの各層における前記選択した出力のための少なくとも1のニューロンが、入力ベクトルに対する付随出力の生成を学習しうるか否かを決定するステップを含んでなる。NNの1層におけるどのニューロンも入力ベクトルに対する前記付随出力の生成を学習できなければ、その層における全ての他のニューロンが学習できなかった付随出力を学習するために、その層に新規ニューロンが追加される。新規ニューロンは、トレーニングされる出力と関連する次の層において全てのニューロンと接続する出力を有する。出力ニューロンが入力ベクトルを学習できなければ、別のニューロンが同一層に追加され、現状の出力ニューロン及び全ての入力はこれに接続される。このニューロンは、古い出力が学習できなかった入力を学習する。追加ニューロンは次の層に追加される。このニューロンへの入力はNNの古い出力及び次の層への新規追加ニューロンである。
【選択図】図2
Description
本発明は一般的に人工ニューラルネットワーク及びその操作に関し、特に、限定しないが、ニューラルネットワークのトレーニング法の改善及び/又は、トレーニング過程中の要求通りにネットワークにニューロンを追加できるシステムに関する。
過去10数年にわたり生成データセットのサイズが増殖するに従い、厳密に理解されないデータセットにおいて、そのデータセット内の関係を見出すために用いうる開発ツールへの関心が高まっている。データ探索のツールは、毎回固定した時間量において、入力と出力の間の関係についての顕著な情報を容易に決定しうるデータセットを矛盾なく学習しうることが望ましい。
データ探索のツールの1つは、フィードフォワードニューラルネットワークである。フィードフォワードニューラルネットワークは、データセットを有する多くの多様で困難なタスクを実施するために用いられ、過去およそ40年にわたって大いに注目されてきた。これらには、「一般化する」能力があるという理由で、パターン分類及び機能概算を含む。このように、ニューラルネットワーク(以後、簡便のために”NN”と略称)は、非線形システムモデリング及びイメージ圧縮・再構成等のアプリケーションに用いうる。
NNが関心を持たれる分野には、科学、商業、医学及び産業が含まれ、これらにおいてはデータに内在する関係性が不明であり、NNであればそうしたデータをうまく分類する方法を学習できるからである。
ある場合においては、データが先行する分類に提示されてはならず、こうした状況では、で他を分類するために自己組織化マップ等の教師なしトレーニングを用いることが通常である。別の場合においては、データは分類されたデータサンプルに前もって分解され、こうした状況では未分類のデータをさらに分類できるようNNをトレーニングすることが通常である。後者の場合においては、教師あり学習アルゴリズムが伝統的に用いられる。分類された入力データ例には付随する出力があり、トレーニング期間中にNNは入力ベクトルに付随する望ましい出力を再現することを学習する。フィードフォワードNNは、伝統的には教師ありトレーニング法を用いてトレーニングされる。
人工NNは多くのニューロンで構成され、これらはユニット又はノードと呼ぶことがある。これは生物学的ニューロンからインスピレーションを得ている。ニューロンは相互に接続せいてネットワークを形成する。各ニューロンには多くの他のニューロンからの入力がある。ニューロンは入力に応答して、発火するかしないかにより出力を生成する。このようにして、ニューロンの出力は多くの他のニューロンへの入力になりうる。これがフィードフォワードNNの基本構造である。
典型的にはニューロンは層を形成する。フィードフォワードNNにおいては、入力層、中間層及び出力層の、3タイプの層がある。第1の層は入力層であり、1以上のニューロンを内蔵する。同様に1以上のニューロンを有する出力層もある。NNは1以上の中間層を有する場合もある。入力層の全てのニューロンは次の層、すなわち出力層又は1以上の中間層がある場合には第1の中間層へ、出力を提示する。中間層が1つだけであると、中間層のニューロンは出力層に対して出力を報告する。中間層が1よりも多いと、ニューロンは次の中間層等の入力に向かって出力を送り、最後の中間層は出力層の入力に向かってその出力を送る。
他のネットワークアーキテクチャも可能であり、NNは特定のデータセットを学習するよう特異的に設計しうる。これは特にNNの入力ベクトルのシーケンス学習に見られ、これは接続にフィードバックループを有することもある。これらのNNは回帰フィードフォワードニューラルネットワークと呼ばれ、一般的にはこのNNの出力はしばしばNNの入力にフィードバックしうる。
最初の生物学的ニューロンモデルは、McCulloch及びPittにより1943年に開発された。これは、McCulloch−Pittニュートンとして知られた。McCulloch−Pittニューロンモデル又は直線閾値ゲート(以後、LTGと略称、Linear Threshold Gate)は、多くの入力接続及び各接続と関連付けられた重みを有するものとして定義される。入力は、数学的にベクトルxiとして定義され、
LTGは次式の定義を用いて数学的に定義しうる。w={w1,w2,..・wn}及びxi={x1,x2,...xn}ここで、
このように、LTG、Oの出力はバイナリ{0,1}である。LTGは活性化すると1を出力し、しなければ0を出力する。
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
xi・w−W0<0、及びxi・w−W0≧0
1960年に、Rosenblattはパーセプトロンモデルを用いて重みのための数値を見出すことに注目した。これ以降、ニューロン内の各重みに足して単一の数値を見出すことが、ニューロン及びNNをトレーニングする方法を確立してきた。ニューロンにより生成する関係は提案ロジックを用いて表現しうることが認識されていたが、重みと閾値との象徴的な関係を直接に見出すことは意図されてこなかった。NNがトレーニング中に学習したデータセット内のルールは数値コード化され、これによりルールは非圧縮性となりうる。重み及び閾値により見出される数値から、NNにより学習されたルールを見出すことが意図されてきた。このような方法は全てトレーニング後の追加プロセスであり、これらによってNNから直接にルールを読み出すことはできない。
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)
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)
反復して重みを調節するアイデアは、今やフィードフォワードNNをトレーニングする方法として確立した。
1969年に、より複雑なデータセットに対してRosenblattの学習アルゴリズムは動作しないことが見出された。Minsky及びPapertは、単一層のパーセプトロンは有名な排他的論理和(XOR)問題を解けないことを示した。これが動作しない理由は、反復が重み空間内の単一点を見出すために用いられたからである。
Boolean関数の全てが単一のLTGにより学習されうるとは限らない。n個の入力変数には2nの組み合わせがあり、可能な出力と組み合わせると2nのユニークなBoolean関数(あるいはスイッチング関数として公知)が存在することになる。2nの関数のうち、あるもののみが単一のn−入力LTGにより表されうる。入力スペースが直線的に分離可能であるBoolean関数は単一のLTGにより表すことができるが、直線的に分離可能ではないBoolean関数を学習するためには追加のLTGが必要である。XORは直線的に分離可能ではないBoolean関数の例であり、従って単一のLTGでは学習できない。
LTGに追加の層を用いることで、直線的に分離可能ではない問題をNNに学習させることが可能になるが、しかしLTGの複数の層を同時にトレーニングしうる実用でキナトレーニングルールはなかった。
結果として、LTGの複数の層をトレーニングしうる重み及び閾値のための数値を見出す反復方法がないという理由で、ニューロンのMcCulloch−Pittモデルは廃棄された。これは、バックプロパゲーションが開発されるまで続いた。
1974年に、Werbosはエラーバックプロパゲーション(又は「バックプロパゲーション」)のアイデアに至った。後に1986年に、Rumelhart及びHinton、さらに1986年にWilliams、及び1985年にParkerが到達したアルゴリズムも同様であり、これにより多層NNモデルをトレーニングして反復的に重みのための数値を見出すことが可能になった。これにより、XOR問題並びに単一層のパーセプトロンでは解けない他の多くの問題の解決が可能になった。McCulloch−Pittのニューロンモデルは活性化関数としてステップ関数に替えてシグモイド関数を用いるよう再び変更された。シグモイド関数の数学的定義は次式1.5で与えられる。
O=1/(1+e−kwx) (1.5)
O=1/(1+e−kwx) (1.5)
パーセプトロンは一般的にシグモイド関数をパーセプトロンの活性化関数として用いる。k項は曲線の広がりを制御し、シグモイド関数は、
バックプロパゲーションはRosenblattの学習アルゴリズムに基づいており、式1.2から式1.4に記載したものである。これは教師あり学習モデルであり、入力ベクトルをNNの入力層に適用することにより動作する。入力層はこの入力を第1の中間層に分配する。層内の各ニューロンの出力は式1.5にした下って計算され、後続の層への入力となる。後続の層への入力となるニューロンの層の出力(又は活性化)を計算するプロセスは、NNの出力が計算されるまでの間に繰り返される。実際の出力と所望の出力との間にはエラーが生じることもあり、エラーの量に従って重みが変更される。出力におけるエラーは、NN何のエラーを低減するために、今度は出力層への接続から中間層における接続に向かう接続の重みを調節することにより、NNを通じて、フィードバックされるか、又は後方に伝播される。重みの量は、これらのユニット内のエラー量に比例して直接的に調節される。
バックプロパゲーションのデルタルールは式1.6で与えられ、式中、iは層、jはi−1層内に生起する接続元のパーセプトロン、kはi層内に向かう接続先のパーセプトロンである。
NNが十分にトレーニングされると、NNにおけるエラーとしてのエラー関数の大局的極小値を最小値と呼ぶ。エラー内には多くの局所的極小値が潜在しているので、エラーは面でありうる、すなわち関数でありうると見なされる。しかしながら、いかなるNNに対してもエラー関数は知られていない。エラー関数は、NNに適用された全ての入力ベクトルに対する所望の出力と実際の出力との差に基づくので、経験的にのみ計算されうる。δijk項はエラー関数の1次微分(出力におけるエラーの差に基づく微分)である。バックプロパゲーションがNN内のエラーを最小化するときに、最小化されるのはエラー関数である。勾配(1次微分)を用いることで、NN内のエラーを最小化する重みを変化する方法の決定が可能になる。これは、勾配降下と呼ばれる。
バックプロパゲーションは、そのアルゴリズム内にNNへのニューロンの追加も除去も許容しないため、固定サイズのNNでの動作を要する。NNがデータセットを学習するようトレーニングするときに、そのデータを学習するために何層の、各層にいくつのニューロンが必要であるかという推測がなされる。トレーニング後に、必要ではないニューロンを取り除くことにより、トレーニングしたNNの性能向上を試みてもよい。しかし、トレーニング中はニューロンの数は一定でなければならない。
伝統的なバックプロパゲーションアルゴリズムは以下のように要約される。(a)初期化:NN内の層数及び各層のニューロン数を定義し、NNの重みをランダムな値で初期化する;(b)トレーニングセットからNNに入力ベクトルを適用する。式1.5を用い、入力層に続く第1層内の各ニューロンに対する出力を計算し、この出力を次の層への入力として用いる。このプロセスをNNの各層に対して、出力が計算されるまで繰り返す;(c)式1.6を用い、NN内に存在するエラー量に従って重みを変更する;(d)ステップ(b)及び(c)を、NNがトレーニングされたと考えられるまで繰り返す。NNは、トレーニングセット中のある数の入力ベクトルに対して、エラーが任意の数値以下に低下する時に、トレーニングされたと見なされる。
バックプロパゲーションを用いてNNがデータセットを学習するようトレーニングすることには多くの利点が伴う一方、バックプロパゲーションには限界がある。バックプロパゲーションでは、NNはデータセットの学習に長時間が必要となりうるか、さらに悪い場合としては全くデータセットを学習しないかもしれない。いくつかの場合において、NNがデータセットを学習しない理由の決定は不可能なことがあり、及び/又はトレーニング中にNNがデータセットを一体学ぶのかどうか、単に学習に時間がかかるのかを区別することは不可能である。
バックプロパゲーションでは、NNはデータ学習に小さすぎる場合がある。伝統的には、NNの設計者は各中間層に用いるニューロン数、及びデータセットの学習に要する中間層の数も推定しなければならない。NNが大きすぎると、適切に一般化できない場合がある。従って、この問題の改善を意図して、NNからニューロンが取り除かれることがある。NNはエラー空間の局所的極小内に固定されることがある。NNがデータセットの学習を完了すると、NNはエラー空間の大局的極小内にある。エラー関数の形状は未知であり、関数は大きいエラー及び小さいエラーの領域を有する。バックプロパゲーションはエラー関数の1次微分を試行することによりエラーを最小化するよう動作するだけであり、これは局所領域のみの試行である。中間層におけるニューロンのトレーニングの目標はデータセット内の異なる特徴を学習することにある。しかしながら、バックプロパゲーションがNN内にエラーを後方伝播するときは、全ての重みが幾分変更されるため、データセット内の特定の特徴に対する各ニューロンのユニークな関連付けが減少する可能性がある。これは、ニューロンは同一層にある他のニューロンが同一の特徴を学習しているか否かを決定できないために起こりうる。このために、特定のデータの特徴を学習し、その特徴を忘れてしまう重みが生じうる。
バックプロパゲーションでのNNのトレーニングにおける主要な問題は、NNがデータセットを学習しない原因が上述の理由のいずれであるか決定できないことである。データセットを学習するかもしれないが単純に遅い、又はNNが小さすぎるために全くデータを学習しないかもしれない、又は局所的極小内に固定されるかもしれない。さらに顕著なバックプロパゲーションの問題は、NNがデータセットを学習してしまうと、NNが学習したものは不可解なことに数値としての重み及び閾値にコード化されるということである。
バックプロパゲーションでのNNのトレーニングが困難であるため、フィードフォワードNNをトレーニングするための代替アルゴリズム開発に多くの研究がなされてきた。
ィードフォワードNNをトレーニングするための代替アルゴリズム開発には多くの研究がある。代替アルゴリズムには2つの分類がある。(1)ニューロン又はNNの資源の数を固定することを要するアルゴリズム、及び(2)NNに対して動的にニューロンを割り当てられるもの、である。
これらのアルゴリズムのほとんどは固定サイズのNNを有することに依存し、結果としてバックプロパゲーションと同一の問題を経験する。公知の方法の1つは、重みの数値を見出すために遺伝子アルゴリズムを用いる。遺伝子アルゴリズムは局所的極小点の問題を避けうるが、トレーニングの時間量は限りがなく、NNが小さすぎるために適切なトレーニングではない場合がある。別の代替法は、動径基底関数(RBF、Radial Basis Function)を用いることであり、NNの学習に単一層のみを用いるが、1つのデータセットを学習するために利用可能な入力ベクトルをバックプロパゲーションよりも多く必要とする。固定サイズのNNに伴う問題の結果として、データセット学習のためにNNの成長を許容することが有用である。
フィードフォワードNNトレーニングアルゴリズムは、動的にニューロンを追加するものであり、データ内の特徴が確実に学習されるよう、必要なときにのみニューロンを追加する柔軟性をもたらすので、予め定義された構造の問題に対する解決として導入されてきた。従って、他のニューロンがデータセット内の特定の特徴を学習できないときにニューロンが追加され、結果としてトレーニングされたNNを用いて、トレーニング中にNNにより学習されたルールが何であるかをより効率的に確認できる。予め定義されたネットワーク構造は、NNのデータ学習能力を制限する。NNは重みを適用することにより学習し、これは生物学的なNNにおけるシナプスの重みに対応する。前述のように、フィードフォワードNNは生物学的なNNからインスピレーションを得ている。しかしながら、生物学的なNNは、要求されると動的に接続を生成する。
構造的な動的アルゴリズムには2つのアプローチがある。(1)NNからニューロンを除去するもの。NNからニューロンを除去するアプローチは2つある。(i)エラー最小化プロセスにペナルティを追加するRumelhartの重み減衰等、トレーニング中に動作するもの、及び(ii)より一般的なアプローチ、すなわちNNからの重み除去後に大局的エラーへのインパクトを計算するOptimal Brain Surgeon等、トレーニング後にニューロンを除去するもの。(2)Cascade−Correlation Networks(以後「CCN」)、Dynamic Node Creation(以後「DNC」)、減数分裂及び超球面分類、例えば制限クーロンエネルギー分類(以後「RCEC」)及び多項式時間トレーニング超球面分類(以後「PTTHCs」)等、NNにニューロンを追加するもの。
トレーニング中にNNにニューロンを動的に割り当てることにより動作するNNトレーニングアルゴリズムを提供する試みは数多くあるが、種々の広範な状況においてデータの効率的及び/又は正確な分類に対して理想的なものは1つもないと考えられている。
NNが科学及び/又は産業に関心をもたれる主な理由は、データ内の関係を見出す能力のためであり、これによりデータが分類でき、次いでNNがトレーニング中には直面しなかった入力ベクトル又はパターンをうまく分類できる。この強力な特性は、NNの「一般化」能力とも呼ばれることがある。トレーニング中にNNが直面しなかった入力ベクトルは、一般的には未知パターン又は未知入力ベクトルと呼ばれる。NNが一般化を行うにはトレーニングが必要である。
トレーニング中、ニューロンはトレーニングのためのデータセット内の突出した特徴を学習し、これにより未知入力ベクトルの出力を「予言」できる。NNが何を分類できるかは、NNが何でトレーニングされたによる。
NNがデータ内のノイズを処理しうるのは、NNの一般化能力である。
良好な一般化を確実にするためには、NN内でトレーニングされる重みの数よりも多くの入力ベクトルが利用可能でなければならないと考えられている。
NNが学習した入力ベクトル及びテストセットも同様に高率でうまく分類すると、トレーニングされたと見なされる。しかしながら、トレーニング及びNNをテストするために利用可能な分類されたデータセットの数はわずかに限られるので、データセットを分割する方法を考えなければならない。NNをうまくトレーニングし、これによりテストも可能であることを決定するためのデータセットの分割法には多くのアプローチがある。
NNがトレーニングされたか否かを決定する一般的な方法は、バックプロパゲーションでトレーニングされたNNを用いるときに入力ベクトルのそれぞれにエラーがいくつあるかを計算することによる。当業者であればNN内のエラー確認にこれまで用いられてきたアプローチを考慮するであろうから、本願明細書においては同様の詳細は議論は示さない。
しかしながら、トレーニングアルゴリズム間の比較の根拠に用いうる属性について記載しておく。
学習アルゴリズムの比較の際に考慮する要因は数多くあるため、性能の客観測定が行われる。
典型的には、次の4つの学習アルゴリズムの属性が考慮される。(1)正確さ:これはトレーニング中に学習されるルールの信頼性である。(2)速度:これは入力ベクトルの分類に要する時間測定である。(3)学習時間:これは入力ベクトルの学習に要する時間測定である。(4)理解度:これは学習されたルールが代替方法に適用可能であることを解釈しうる能力である。このようなストラテジは定量化が困難である。
これらの属性の2つ、すなわちデータセットの学習に要する学習アルゴリズムの時間及びNNが学習したものの理解度が、さらに試験される。
前述したように、バックプロパゲーションでNNをトレーニングしてデータセットを学習することには長時間のトレーニングが必要であり、NNは全くデータセットを学習しない可能性もある。固定サイズのNNのトレーニングにかかる時間は指数関数的であると言われてきた。この理由から、NNのトレーニングにかかる時間は代替トレーニングアルゴリズム間の比較の標準となっている。理想的なトレーニングアルゴリズムは、トレーニング入力ベクトルに対する露出が最短となるであろう。最適化した状況において入力ベクトルに対する露出が最短でありうるのは、NNを各入力ベクトルに1回のみ露出して十分にトレーニングすることであろう。このようなトレーニングアルゴリズムは単一パストレーニングアルゴリズムと呼ばれる。
フィードフォワードNNをトレーニングするアルゴリズム間の比較の基盤として一般的に用いられる4つの属性のうち、理解度は、特に数値としてトレーニングされるフィードフォワードNNにおいては、最も定量化できないものであり、これはトレーニング中にNNに学習されるルールが不可解にも数値としてコード化されているからである。トレーニング中に学習されるルールを抽出可能な方法の1つは、感度分析を実施することによる。感度分析はエラーに対する頑強性の測定として参照されうる。
ルール抽出はシステムが生成する結果におけるユーザの信頼性を与えるものとして関心をもたれ、これはNNが外科手術、航空交通管制、及び原子力発電所の監視等の危険な問題の領域に用いられるとき、又は天文データ等、NNのトレーニングにより収集されたデータから理論が推定されるときに特に重要である。
理解度の保証に望まれるルールは、入力の同化に関する命題論理学のルールの形態である。
感度分析は、NN内に蓄積された情報を見出す1つの道筋であり、しばしばNNに実施される。ルールは不可解にも数値としてコード化されているので、NNにより学習されたルールが何かを見出すことが望ましいく、感度分析のこのような実施はNNにとって貴重である。
NNへの感度分析の実施に取られるアプローチは2つある。(1)重みを変更する効果、及び(2)NNに対してノイズの多い入力を適用する効果である。
入力スペースが十分に既知であると、必要数のデータポイントの一般化と、以下の3つの方法により選択される入力ベクトルに対するNNの出力を見出すことが可能である。(1)データ空間内の全ポイントに対する出力を見出すこと。NNがバイナリ(2値)データでトレーニングされていると、データセットは有限である必要がある。(2)入力スペースからデータポイントをランダムに選択すること、又は(3)入力スペース内の全てのn番目のデータポイント(ただしn>l)を選択すること。これにより、入力スペース上の分布も可能になる。
データポイントは、望ましいNNの反応が何であるかが既知ではない入力スペースの領域からも選択されうる。この場合、既知でないデータが与えられるときにNNがいかに反応するかが示される。
ここまで入力スペースの探求方法を精査してきたが、次いでNN内のニューロンの重み空間を吟味する。
システムには、指定の実施を要求され、あるいは要求された実施をシステムに許容する、多くの構成要素がある。個々の構成要素が指定の実施を行うとき、その構成要素は自己の最適範囲にあると言われる。
感度分析は、システム内の構成要素に対する最適な値又は範囲から外れる効果の試験でありこの場合、最適範囲はトレーニングされたNNにおいて重みのためのものである。この場合には、NNの挙動を変更することなく重みが変化できる範囲(又はインターバル)を見出すように、上限及び下限が確立される。感度分析の実施には、システム内の各構成要素が、他の全ての構成要素を一定にしたまま、順番に試験される。試験される構成要素は、システムの動作を決定するための、あらゆる可能な数値に設定される。このプロセス中、システムを最適に動作しうる構成要素の上限及び/又は下限が確認され、構成要素がこれらの範囲を外れるときにシステムの挙動が観察されうる。このプロセスは範囲試験と呼ばれる。上限及び下限は、制約条件として表されうる。
既知の感度分析は、NNが理解可能に学習したものとなるであろう入力変数の同化に関する命題論理学のルールを生成しないと考えられている。
感度分析の目的は、ボリュームの形状を決定しうることにあり、これは構成要素の挙動を正確に画定するからである。しかしながら、既知のNNトレーニング法の制約によってニューロンの活性化を生じるボリュームの面を見出すことはできない。この面の試験が可能であった唯一の方法は、統計的手法によりそれぞれの重みの範囲を決定することによる。ボリュームの実際の面の知識があれば、それは重みの間に存在する関係を画定し、このことから所望であれば重みの範囲が決定されるので、理想であろう。
トレーニング中にフィードフォワードNNが何を学習したかを決定できることが強く望まれ、結果としてデータ内に存在する関係及びNNに学習された関係が何かを確認する試行に多くの研究がなされてきた。これが理解度と呼ばれるものであり、トレーニングアルゴリズムの良好さの決定に寄与する属性の1つである。現在、NNからルールを抽出するために用いられる方法は、トレーニングの完了後に実施される。
見出す必要のある望ましい関係のタイプは、命題論理学により与えられる。この必要性は次のようにまとめられる。(a)トレーニング条件を満たす全ての数値解を定義し、これによりNNにおいて感度分析が容易に実施可能になるもの。(b)トレーニング中にNNにより学習されるルールが、NNにより読み取られるデータセットを容易に分類できるようにするもの。
種々の動的アルゴリズムに関し、上述の公知のトレーニング方法のうちで、NNからのルールの直接読み取りを許容することに近い唯一のものは超球面分類であり、これは領域間にORの関係を形成する。従って、入力スペース内の領域はあるカテゴリーに属するか又はそうでないため、領域がANDで結合されることはない。関係が領域内に属さないならば、活性化すべきでないニューロンの活性化を抑制するために球面が追加されるので、入力スペースを表すにはORが適切である。入力スペースが複雑化すると超球面を定義する半径は0になる傾向があり、究極的には各入力ベクトルに超球面が追加される。中間層内のニューロンにより定義される領域は入力スペース内の領域に近いものであるが、画定するものではなく、最悪の場合を除いてはデータポイントと同数の超球面が存在する。PTTHCsは入力スペースの範囲の改良を意図したものであり、これにより計算の複雑化という代償を払っても一般化の性能を向上するもので、従って非常に低速である。
CCN、減数分裂及びDNCは全て数値として重みをトレーニングするもので、このためトレーニング中にデータ内にいかなる関係が見出されたかを決定することは簡単ではない。
これらのアルゴリズムは、一般化に関する性能の成功の程度は様々であるが、全て動的にニューロンをNNに対して割り当てるものである。アルゴリズムによっては、あるデータセットについて他のものよりも良好で、超球面分類を除く全ては重み空間の境界条件の情報を失うので、ルール抽出に対して有用ではない。
アルゴリズムによっては、アニーリングに基づき、バックプロパゲーションよりもさらに低速な傾向のある減数分裂アルゴリズムのように、あるデータセットは他のものより迅速に学習するものもある。
CCN及びDNCは特定のデータセットに対してトレーニング時間が早いという報告があるが、これらは単一パスのアルゴリズムではなく、両者ともNNにニューロンが追加される前にシステム内のエラー量を低減するための反復に依存する。
これまでに、単一パスで学習し、要求通りにNNにニューロンも追加し、NNから直接のルールの読み取りを許容する、NNトレーニングアルゴリズムは存在していない。
このため、本発明は、ニューロンが要求通りにNNに割り当てられてデータセットを学習しうる意味において、関係性があり動的であるNNトレーニング方法を提供することを目的とする。
また、本発明は、単一バスでデータセットを学習しうるNNトレーニング方法を提供することを目的とする。
さらに、本発明はルールがNNから直接に読み取られることを許容するNNトレーニング方法を提供することを目的とする。
本発明の一態様によれば、人工NNをトレーニングする方法が提供され、当該方法は、(i)トレーニングするNNの出力を選択し、NNのニューロンの出力を選択した出力のためのNNの入力層に接続することによりNNを初期化するステップ;(ii)NNに学習させるデータセットを用意するステップ;並びに、(iii)用意したデータセットの入力ベクトルをNNの第1の中間層に、又はNNに中間層がなければNNの出力層に適用することにより、用意したデータセットをNNに適用して学習させるステップ、及び、NNの各層における選択された出力のための少なくとも1のニューロンが、入力ベクトルに対する付随出力の生成を学習しうるか否かを決定するステップを含んでなり、ここに:NNの各層における選択された出力が入力ベクトルに対する付随出力の生成を学習できれば、及び学習するために用意したデータセットよりも多くの入力ベクトルが存在するならば、次の入力ベクトルに対してステップ(iii)を繰り返し、さもなければ、トレーニングすべき出力がまだあるならばNNの次の出力に対してステップ(i)から(iii)を繰り返し;NNの選択された出力に対する中間層のニューロンが入力ベクトルに対する付随出力の生成を学習できなければ、選択された出力に対してその層の全ての他のニューロンが学習できなかった付随出力を学習するためにその層に新規ニューロンが追加され、学習すべきデータセットの入力ベクトルがまだあるならばステップ(iii)を繰り返し、さもなければ、トレーニングすべき出力がまだあるならばNNの次の出力に対してステップ(i)から(iii)を繰り返し;NNの選択された出力に対する出力ニューロンが入力ベクトルに対する付随出力の生成を学習できなければ、その出力ニューロンはNNの中間層のニューロンとなり、出力ニューロンが学習できなかった付随出力を学習するために新規ニューロンがこの中間層に追加され、選択された出力に対してNNに新規ニューロンが追加され、学習すべきデータセットの入力ベクトルがまだあるならばステップ(iii)を繰り返し、さもなければ、トレーニングすべき出力がまだあるならばNNの次の出力に対してステップ(i)から(iii)を繰り返す。
本発明のさらなる態様によれば、人工NNをトレーニングするための方法が提供され、当該方法は、(i)NNにより学習されるデータセットを準備するステップ;(ii)トレーニングするNNの出力を選択することによりNNを初期化し、選択した出力に対してNNの出力ニューロンをNNの入力層の入力ニューロンに接続するステップ;(iii)準備したデータセットの入力ベクトルをNNの第1の中間層に、又はNNに中間層がなければNNの出力層に適用することにより準備したデータセットが学習されるようNNに適用するステップ、並びに、NNの各層内に選択された出力に対する少なくとも1のニューロンが入力ベクトルに付随する出力の生成を学習しうるか否かを決定するステップを含んでなり、ここに、NNの各層内において選択された出力に対する少なくとも1のニューロンが入力ベクトルに付随する出力の生成を学習しうるならば、及び準備された学習データセットの入力ベクトルがまだあるならば、次の入力ベクトルに対してステップ(iii)を繰り返し、さもなければトレーニングする出力がまだあるならばNNの次の出力に対してステップ(ii)及び(iii)を繰り返し;NNの選択された出力に対する中間層内に入力ベクトルに付随する出力の生成を学習しうるニューロンがなければ、選択された出力に対するその層のいずれのニューロンによっても学習され得ない付随する出力を学習するためにその層に新しいニューロンが追加され、並びに、学習するデータセットがまだあるならば次の入力ベクトルに対してステップ(iii)を繰り返し、さもなければトレーニングする出力がまだあるならばNNの次の出力に対してステップ(ii)及び(iii)を繰り返し;NNの選択された出力に対する出力ニューロンが入力ベクトルに付随する出力の生成を学習できなければ、その出力ニューロンはNNの中間層のニューロンとなり、出力ニューロンによっって学習されなかった付随する出力を学習するためにこの中間層に新しいニューロンが追加され、選択された出力に対してNNに新しい出力ニューロンが追加され、並びに、学習すべきデータセットの入力ベクトルがまだあるならばステップ(iii)を繰り返し、さもなければ、トレーニングする出力がまだあるならばNNの次の出力に対してステップ(ii)及び(iii)を繰り返す。
上述にて定義のNNをトレーニングするための方法の具体的で好適な実施形態において、NNのニューロンは線形閾値ゲート(LTGs)である。
好適には、準備したデータセットを学習すべきNNに適用する前記ステップ(iii)において、LTGが入力ベクトルに対して関連付けられる出力の生成を学べるか否かを決定することは、重みとLTGの閾値との関係が、LTGが以前に学んだものを解とするか否かを決定することである。具体的で好適な実施形態において、前記関係は制約条件であり、入力ベクトル及びLTGの重みベクトルは、ニューラルネットワークの選択された出力に基づくLTGの閾値との関係を形成する。具体的で好適な実施形態において、制約条件の学習は、LTGの制約条件セットに制約条件を追加しうることである。LTGの制約条件セットに制約条件を追加しうるためには、全ての制約条件に解決が存在しなければならない。
好適には、NNを初期化するステップは、さらに、出力LTGの制約条件セットが空となるように出力LTGの制約条件セットをクリアするステップを含む。
好適には、NNにより学習されるデータセットを準備するステップは、少なくとも以下のステップを含み、それぞれは任意の順番で実施されうる。データセットがトレーニングのためにNNに提示される前に、データセットを所定のデータフォーマットに変換するステップ;データセットがトレーニングのためにNNに提示される前に、データセット内に何らかの不一致が存在するか否かを決定するステップ;データセットがトレーニングのためにNNに提示される前にデータセットを並び替えるステップ;ゼロ入力ベクトルがデータセット内に使用可能であるか否かを決定するステップであって、ゼロ入力ベクトルがデータセット内に使用可能であればゼロ入力ベクトルが最初にトレーニングされるためにNNに提示されるようデータセットを順序づけるステップ。データセットがトレーニングのためにNNに提示される前にデータセットを所定のデータフォーマットに変換する前記ステップの好適な実施形態において、当該所定のデータフォーマットはバイナリ又は浮動小数点データフォーマットである。好適には、NNにデータセットが提示される前にデータセットに何らかの不一致があるか否かを決定する前記ステップは、異なる出力を生じる2以上の同一の入力ベクトルがあるか否かを決定することを含む。データセットに何らかの不一致があるか否かを決定する前記ステップの具体的で好適な実施形態において、異なる出力を生じる2以上の同一の入力ベクトルがあるか否かが決定されるならば、ただ1つの入力ベクトルが用いられる。好適には、データセットがトレーニングのためにNNに提示される前に並び替えられる前記ステップは、データセットの入力ベクトルを、1を出力するもの及び0を出力するものの2つのセットに並び替えるステップ、及び、2つのセットの一方を最初にトレーニングするために選択するステップ、自己組織化マップ(SOM)によりデータを並び替えるステップ、及び/又は任意の他の適切な方法を用いてデータを並び替えるステップ、を含んでなる。ソートしたデータから、データがトレーニングのためにNNに提示される前に、各入力層に対して単一のリストが生成されることも好適である。
具体的で好適な実施形態において、ステップ(iii)に係る層内のいかなる他のLTGによっても学習され得ない制約条件を学習するために新規なLTGが当該層に追加されるときに、新規なLTGはNNの選択された出力に寄与する次層内の全てのLTGに接続され、新規なLTGからの入力を受け取る次層内のLTGの制約条件セットは新規なLTGからの入力を受け付けのために更新され;新規なLTGを有する層がNNの第1層でないならば、新規なLTGはNNの選択された出力に寄与する先行層内の全てのLTGからの入力に接続されてこれを受信し;新規なLTGの制約条件セットはその層内の以前の最後のLTGの改変された制約条件セットのコピー及びその層内のいかなる他のLTGによっても学習され得なかった制約条件を含むように更新される。
具体的で好適な実施形態において、ステップ(iii)に係るNNに新規な出力LTGが追加されるときに、新規な出力LTGは中間層内のLTGからの入力に接続されてこれを受信し;中間層がNNの第1層ではないならば、中間層内の新規な出力LTGはNNの選択された出力に寄与する先行層内の全てのLTGに接続されてこれを受信し;中間層に追加された新規なLTGの制約条件セットはその層内の以前の最後のLTGの改変された制約条件セットのコピー及びその層内のいかなる他のLTGによっても学習され得なかった制約条件を含むように更新され;新規な出力LTGは以前の出力LTGによって学習され得なかったものに従って所定の論理関係内にその入力を結合する。好適には、ステップ(iii)に従って新たな出力LTGがNNに追加されるときに、この新たな出力LTGへの入力間に生じる論理関係は、論理OR、論理AND又は任意の他の適切な論理関係である。この具体的で好適な実施形態においては、以前の出力LTGによって学び得なかった入力ベクトルが出力1を生成するならば論理ORが用いられ、以前の出力LTGによって学び得なかった入力ベクトルが出力0を生成するならば論理ANDが用いられる。
さらにまた本発明の態様によれば、トレーニング中にNNの層内に新規なニューロンを追加するための方法が提供され、この新規なニューロンは、選択された出力に対するその層内の他のニューロンが学習されるデータセットの入力ベクトルに付随する関係を学習しえないときにNNに追加され、当該方法は、その層内のニューラルネットワークの選択された出力に寄与する以前の最後のニューロンからの改変された全てのデータのコピー及びその層内のいかなる他のニューロンによっても学習され得なかった関係で前記新規なニューロンを更新するステップと、新規なニューロンからの入力を受け取るよう出力ニューロンを更新するステップとを含んでなる。
具体的で好適な実施形態において、ニューロンはLTGsである。
好適には当該関係は重みとLTGの閾値との関係である。具体的で好適な実施形態において、当該関係は制約条件であり、ここにデータセットの入力ベクトル及びLTGの重みベクトルはNNの出力に基づくLTGの閾値との関係を形成する。
さらにまた本発明の態様によれば、バイナリフォーマットデータセット以外のデータセットをNNにより学習されるバイナリフォーマットデータセットに変換するための方法が提供され、当該方法は、(i)データセットの各属性をバイナリで提示するためのビット数を別個に決定するステップ、(ii)計算式:範囲=(最大−最小)+1を用いてデータセットの属性の範囲を計算するステップ、並びにステップ(i)で決定したビット数を用いて前記データセットの属性の範囲をコード化するステップを含んでなる。
好適には、データセットをバイナリフォーマットデータセットに変換するステップは、上述にて定義のNNをトレーニングするための方法のデータ準備ステップ(ステップ(ii)又は(i))に従って用いられる。
さらにまた本発明の態様によれば、NNによりトレーニングされるデータセットを並び替える方法が提供され、当該方法は、データセットの入力ベクトルを2の群にソートするステップ、1を出力するものを0を出力するものと分離するステップ、並びに、ニューラルネットワークにより最初に学ばれる、前記2の群の1を選択するステップを含んでなる。
さらなる本発明の態様によれば、入力ベクトルがニューロンによって既知であるか未知であるかを決定する方法が提供され、当該方法は、入力ベクトルから制約条件及びその補空間を構築するステップ;制約条件及び補空間を交互にニューロンの制約条件セットに追加するステップ;いずれかの場合に解があるか否かを決定するために制約条件セットを試験するステップであって、制約条件又はその補空間に解がなければ入力ベクトルはニューロンに既知であることが決定され、制約条件及びその補空間が交互に制約条件セットに追加されるときに解があるばらば、入力ベクトルはニューロンによって既知ではないことが決定されるステップ、を含んでなる。
好適には、当該制約条件セットは、LTGニューロンから構築されるNNのニューロンの制約条件セットである。上述にて定義のNNをトレーニングするための方法に従って、当該方法がトレーニングされるNNの未知入力ベクトルの出力を決定するために用いられることも好適である。具体的で好適な実施形態において、当該方法は、本発明のNNをトレーニングするための方法に従って、トレーニングされるNNのLTGの未知入力ベクトルを決定するために用いられ、未知入力ベクトルのデフォルト出力はデータセットに依存して1又は0である。
さらにまた本発明の態様によれば、制約条件セットの最小活性化体積(MAV)を決定するための方法が提供され、当該方法は、(i)制約条件セット内に残る制約条件を不変にしたまま制約条件セットからそれぞれの制約条件を一度に1つ除去するステップ;(ii)除去した制約条件セットの補空間を制約条件セットに追加するステップ;(iii)解があるか否かを調べるために新規な制約条件セットをテストするステップを含んでなり、ここに、解があるならば、MAVを定義する制約条件セットに最初の制約条件が追加され、制約条件セットに追加された補空間は除去され、最初の制約条件が制約条件セットに戻され、制約条件セット内にまだ制約条件があるならば、ステップ(i)から(iii)を繰り返し、さもなければMAVはMAVを定義する制約条件セットの範囲内に保持される制約条件のセットとし;解がないならば、制約条件セットに追加された制約条件の補空間は除去され、最初の制約条件が制約条件セットに戻され、制約条件セットにテストする制約条件がまだあるならば、ステップ(i)から(iii)を繰り返し、さもなければMAVはMAVを定義する制約条件セットの範囲内に保持される制約条件のセットとする。
好適には、当該制約条件セットは、LTGニューロンから構築されるNNのニューロンの制約条件セットである。具体的で好適な実施形態において、当該方法は上述にて定義のトレーニング法に従ってトレーニングされるNNにおいて、各LTGに対するMAVを決定するために用いられる。
(本発明の利点)
一態様において、本発明はニューロンをトレーニングするための新規なアプローチを提供する。このアプローチは、ニューロンへの入力接続と出力との関係を定義し、これによりルール抽出のタスクを単純にする。本発明に係るニューロンをトレーニングする方法は、従来の方法でトレーニングされたニューロンに対して、一般化及び学習されるデータの再呼び出しを可能にし、さらにニューロンが入力ベクトルを学習できるかできないかを決定するための単純なテストを用いる。このテストは、1以上のニューロンをNNに追加してデータセット内の特徴を学習させるための自然な基準を形成する。ニューロンは中間層に割り当てられるか、又は、データセットの複雑さに従って新規な出力層が追加されうる。
一態様において、本発明はニューロンをトレーニングするための新規なアプローチを提供する。このアプローチは、ニューロンへの入力接続と出力との関係を定義し、これによりルール抽出のタスクを単純にする。本発明に係るニューロンをトレーニングする方法は、従来の方法でトレーニングされたニューロンに対して、一般化及び学習されるデータの再呼び出しを可能にし、さらにニューロンが入力ベクトルを学習できるかできないかを決定するための単純なテストを用いる。このテストは、1以上のニューロンをNNに追加してデータセット内の特徴を学習させるための自然な基準を形成する。ニューロンは中間層に割り当てられるか、又は、データセットの複雑さに従って新規な出力層が追加されうる。
従って、本発明のNNトレーニング方法はDynamical Relational(以後、「DR」)トレーニング法と呼びうる。
本発明のDRトレーニング法に従ってトレーニングされたNNは、入力ベクトルの学習が可能であるか否か、ニューロンが要求されたようにのみNNに動的に割り当てられうるか否かをテストし決定しうるので、データは単一パスでNNに提示されうる。
フィードフォワードNNをトレーニングすることに対する伝統的なアプローチでは固定サイズのNNを要し、NNがデータセットを学習するために必要なニューロンの中間層の数、及び各中間層内のニューロン数を推定する必要がある。NNのサイズを推定することは、小さすぎるとデータセットの学習ができず、大きすぎるとNNの性能を低下する場合があるため、大きな問題である。NNのサイズ推定の問題への最良の解決は、要求された場合にのみ、要求通りにNNに動的にニューロンを割り当てるトレーニング方法を用いることである。すなわち、NNへの動的なニューロンの割り当てにより、固定サイズのNNに係る問題は克服される。本発明のDRトレーニング方法によれば、NNが入力ベクトルを学習できない場合にのみ、NNにニューロンを割り当てうる。新規なニューロンは、NNに割り当てられるとNN内にすでにあるニューロンと命題論理学の関係を形成し、これにより本発明のトレーニング法は関係性を有する。
各入力ベクトルは、NNに対して提示されると学習される。これは、本発明のDRトレーニング方法は単一パスにおいてデータを学習しうることを意味する。本発明に従ってニューロンをトレーニングする方法は、データセットについての情報が学習されることを可能にし、NNへのニューロン追加を発生する入力ベクトルも同定し、どの入力ベクトルがデータセットの分類に対して本質的であるかを示す。
本発明の方法は、入力スペース内の鮮明な境界も提供する一方、フィードフォワードNNをトレーニングする他のアルゴリズムの利点の、全てではないならば、ほとんどをも提供する。
本発明のさらなる態様によれば、データがトレーニングのためにNNに提示される前に、適切なフォーマットにデータを変換する方法が提供される。トレーニング前のデータ変換には多くの利点が伴う。1つの利点は、データ変換は、データを正確にコード化する一方で、トレーニングのためにNNに提示される入力数を最小化することである。本発明のDRトレーニング方法においては、NNに提示される入力数の最小化によりトレーニング時間はより早くなり、入力ベクトルが毎回NNにより学習されると仮定すると、NNにより学習が可能であるか否かを決定するために制約条件がテストされなければならない。
本発明のさらなる態様において、トレーニングのためにNNに提示される前にデータを並び替える方法が提供される。トレーニング前に予めデータを並び替えることは、データ分類の効率を改善する。予め並び替えることは、好適には、トレーニングしたNNが性能に乏しい状況に用いられる。予め並び替えることは、NNにより学習されるデータセットが十分に複雑で、NNにニューロンの追加が求められる時には常に勧められる。
トレーニング前に適切なフォーマットにデータを変換する方法、及びデータがトレーニングのためにNNに提示される前にデータを並び替える方法は、いずれも全てのNNトレーニング方法に有用であると考えられる。このため、本発明のこれらの態様は独立しており、本発明のDRトレーニング方法に限定するものではない。
テスト中、NNに学習されるデータが100%の正確さで再呼び出ししうることは顕著な利点である。本発明のさらなる態様においては、NNが未知の入力ベクトルに対する出力が何であるかを知っているか否かを決定するために用いることが可能で、どの入力ベクトルが未知であるかを明確に同定することが可能な方法が提供される。従って、NNはデータセットの特徴が既知ではない場合にこれを示すことが可能で、どの入力ベクトルに追加のトレーニングが必要であるかを同定することが可能である。
トレーニングされたNNに感度分析を実施する目的は、ニューロン及びこれによりNNが何を学習したかを決定するための重みの試行に取り入れうる数値範囲の決定を試みることであった。
本発明のDRトレーニング方法の顕著な利点は、NNのトレーニング後には、重み空間における範囲の境界が決定しうることである。本発明のさらなる態様においては、単にそれぞれの重みが取り得る数値の範囲よりも、むしろ実際の重み空間の面を見出せる方法が提供される。この点から、ニューロン及びこれによりNNがいかなるルールを学習したがが決定されうる。
本発明のDRトレーニング法は、従来のフィードフォワードNNトレーニング方法の利点及び有用性の、全てではないならばほとんどを保存し、さらにNNが固定サイズであることを要する制約の大部分を取り除き、単一パスでの学習において局所的最小点の問題も経験しない。本発明の他の全ての態様に係る本発明のDRトレーニング法じゃフィードフォワードNNを用いる全てのアプリケーションに対して極めて有用である。人工NNの目標は、生物学的な学習の模倣であるが、公知のシステムはこのゴールに到達できていなかった。本発明のDRトレーニング法は、ニューロサイエンス、ニューロバイオロジ、ニューロンの生物学的モデリング、及びおそらくは細胞生物学に関連する、生物類似の学習ストラテジを提供するものと確信する。
ルール抽出方法は、実際の重み空間の面を決定する方法であり、入力ベクトルが既知であるか否かを決定する本発明の方法は、NNに限定するものではない。これらの方法は、制約充足問題(以後、「CSP」)、最適化又はオペレーショナルリサーチ型の問題、あるいはDNA等のデータストリングの分析のような、制約条件のシステムを用いる他分野においても有用であろう。そのため、本発明のこれらの態様は独立しており、本発明のDRトレーニング法に限定するものではない。最終的に、本発明のDRトレーニング法はNNからのルール抽出を可能にし、NNが学習したもの及びNNにより生成した出力における信頼性が得られる。このようにして、本発明の方法はフィードフォワードNNを用いるシステムの信頼性を向上する。
以下、本発明の詳細な好適な構成を添付の図面を参照して説明する。以下の記載では、LTGニューロンモデルは、好適な実施形態としてのみ用いられる。利用可能なニューロンモデルは他にも多くあり、本発明のDRトレーニング方法又はアルゴリズムに係るNNの構成に用いうることは理解すべきである。従って、本発明は、添付の図面に示す特定のニューロンモデルに限定されるものではない。従って、以下の説明を通して「LTG」又は「LTGs(複数)」という表記は、単に「任意の適切なニューロンモデル」を意味するものとして解されるべきである。
本発明のDRトレーニングアルゴリズムは、本発明のその他の様態と共に、以下に説明するように、任意の適切なコンピュータソフトウェア及び/又はハードウェアを用いて実装されてもよい。従って、本発明は、特定の実用上の実装に限定されるものではない。本発明のDRトレーニングアルゴリズムの性能評価の目的で、またアルゴリズム及び本発明のその他の様態が予想通りに動作することを証明する実験を行うために、アルゴリズムは、コードとしてプログラムされコンピュータ上のソフトウェアを用いて実装された。
NNは、様々な形状で互いに接続されてネットワークを構成するニューロンの組み合わせである。2入力フィードフォワードNN10の基本構造を、例として模式的に図1に示す。NN10は、第1又は入力層16に設けられた2つの入力ニューロン12、14を備える。入力ニューロン12、14はそれぞれ、その出力を中間層24に設けられた3つのニューロン18、20、22へ送る。次に、中間層ニューロン18、20、22はそれぞれ、その出力を出力層28に設けられた1つのニューロン26へ送る。
NNはデータセット内の関係の判定に用いられる。NNがトレーニングされる前に、利用可能なデータが、トレーニングに利用されるものとテストに利用されるものの2つのセットに分割される。トレーニングセットは、NNのトレーニングに用いられる。テストデータセットは、NNのトレーニング後まで保存する。テストデータセットは、トレーニング後、NNが十分にデータを学習したかどうか、又はNNがデータのうちある様態を欠いていないかどうかを判定するためにNNに送られる。以下の説明を通じて、「NNをトレーニングする」又は「トレーニング」という表記は全て、トレーニングデータセットでのNNのトレーニングについて述べるものとする。
NNトレーニングアルゴリズムの多くは、トレーニング条件を満たそうとする1つの数値を見つけ、NNの所望の出力と実際の出力との間の誤差に基づいて重みの値を繰り返し修正することにより学習する。
本発明のDRトレーニングアルゴリズムは、ニューロンのトレーニングに種々のアプローチをとる。このトレーニングアルゴリズムは、トレーニング条件を満足する重みについて単一の値を見つけることには基づいていない。その代わりに、本発明のDRトレーニングアルゴリズムは、トレーニング条件を満たすことになる重みを全て見つける。このため、入力ベクトルは、入力重みを閾値に関連付ける制約条件に変換されることが好ましい。各ニューロンは、互いに相互関係を形成する入力重みのセット及びトレーニング条件を満たす閾値を有している。ニューロンに制約条件を加えることにより、重み空間の領域にニューロンを活性化させる別の制約条件が置かれる。
本発明は制約条件に変換される入力ベクトルに関連して説明されるが、言うまでも無く、本発明は制約条件の使用にのみ限定されるものではない。制約条件は、入力重みと閾値との間の関係を表すにすぎない。同様の関係を他の方法で、例えば電子的又は磁気的に表すこともでき、そのため、本発明は与えられた具体例に限定されるものではない。
このニューロンのトレーニング方法を用いることにより、NNにニューロンを動的に追加することによってNNを形成することができる。この方法は、NNへのニューロン追加について厳密な基準を設けており、ニューロンを先に述べた標準的なフィードフォワードトポロジに追加することができる。
このニューロンのトレーニング方法により、データセットは単一のパスで学習することができる。また、制約条件は各ニューロンの重みと閾値との間の関係を定義し、ニューロンがNNに追加されるときは前置詞的論理に従って追加されるため、トレーニング中に学習された規則の抽出は簡単になる。
NNが本発明のDRトレーニングアルゴリズムでデータセットを学習するには、一連のプロセスに取り組むことが望ましい。各データセットは固有であり、多数の出力を有し、これはデータセットに基づいている。このシーケンスを簡潔にまとめると以下のようになる。(1)NNの初期化。(2)NNにより学習されるデータの準備。(3)NNにより学習されるデータの適用。(4)必要に応じてNNにニューロンの割当て。
すでに述べたように、本発明の好適な実施形態に従って用いられるニューロンは、LTGすなわちマカロック−ピッツニューロンであり、制約条件セットを含むよう修正されている。LTGの初期化フェーズ(1)は、入力ニューロンの出力ニューロンへの接続と、最初にトレーニングされることになる出力の選択とを伴う。
データ準備フェーズ(2)は、好ましくは、NNにより学習されるデータを準備する多数のステップを含み、以下の点が指摘される。(i)NNに提示されるデータがトレーニングに適した適切なフォーマットでない場合、NNに提示される前にデータセットが適切なフォーマットに変換されることが好ましい。本発明の好適な実施形態によれば、適切なデータフォーマットはバイナリデータである。従って、本発明のDRトレーニング方法でトレーニングされるデータセットは、NNへの提示前にバイナリ形式に変換される。任意の適切なデータのデジタル化方法を用いることができる。本発明のさらなる様態によれば、適切なデータのデジタル化方法については後の実験結果を説明する部分で、本願明細書において説明する。バイナリデータは好適なトレーニングデータフォーマットとして提示されるが、本発明のDRトレーニングアルゴリズムは、例えば浮動小数点データ等のその他のデータフォーマットでも機能することは言うまでもなく、そのため、本発明は与えられた具体例に限定されると解釈するべきものではない。(ii)本発明のDRトレーニングアルゴリズムは単一パスアルゴリズムであるため、入力ベクトルの提示順にある程度の注意を払うことが好ましいが、これはNNが学習する規則とどれぐらいうまく動作するかに影響を与えることがあるためである。検討の価値があるとはいえ、本発明のDRトレーニングアルゴリズムはどの入力ベクトルがニューロンをNNに追加させるかを検知し報告することができるNNを構築するため、入力ベクトルの提示順は不可欠というわけではない。このステップは、トレーニングされたNNの動作がよくない場合に用いられることが好ましい。このステップは、データセットがNNへのLTG追加が必要とされるに十分複雑である場合には常に大いに推奨される。
次のフェーズ(3)では、NN入力にデータを適用し、データが重みと学習されるLTGの閾値との間の関係である制約条件に変換されることが好ましい。中間層がある場合には、LTGの出力は次の層のLTGへの入力になり、今度は次の層のLTGは、受信する入力ベクトルをうまくいくならば学習しうる制約条件へと変形する。このプロセスはNNが所望の出力を生成するまで繰り返される。これがNNにより学習可能な場合には、次の入力ベクトルでトレーニングが継続され、そうでなければプロセスは次のNNに1つ以上のLTGを追加するフェーズ(4)に移る。
入力ベクトルの学習ができない場合の考えられるシナリオには、少なくとも2つある。これらは、以下の通りである。(i)中間層が入力ベクトルを学習できなかった場合、新たなLTGが中間層に追加される。(ii)出力層がその入力ベクトルを学習できなかった場合、新たな層がNNに追加され、古い出力が中間層のLTGとなる。そして、別のLTGがこの新たな中間層に追加されて古い出力ユニットが学習できなかったことを学習し、これらのLTGはいずれも出力を組み合わせる新たな出力に接続される。
LTGがNNに割り当てられた後は、以下のことが重要である。(a)新たなLTGがNN内の既存のLTGに接続される。(b)新たに追加されたLTGの制約条件セットが空に設定される、又は以前の最後のLTGからの制約条件が新たなLTGにコピーされる。(c)新たなLTGの追加によりNNが以前に学習したことを忘れることがないようにする。これは単一パストレーニングアルゴリズムであるので、新たに追加されたLTGがNNが以前に学習したことを生成することができるようにすることが不可欠である。
本発明のDRトレーニングアルゴリズムは(1)〜(4)の一連のプロセスとの関連で提示されるが、これらのステップ又は少なくともこれらのステップそれぞれの様態が提示された以外の順序で行われてもよいことは言うまでもない。例えば、ステップ(1)及び(2)の場合、利用可能なデータセットは、トレーニングされるNNの出力が選択される前に適切なデータフォーマットに変換されてもよい(図2参照)。同様に、ステップ(4)の場合、新たな中間層LTGは、新たな出力LTGが追加される前にNNに追加されてもよいし、その逆でもよい。従って、本発明のDRトレーニングアルゴリズムは、提示されるステップ又はシーケンスの特定の順序に限定されるものではない。
以下、本発明のDRトレーニングアルゴリズムの好適な実施形態、及び本発明のその他の様態を、上記で概観したフェーズに従って提示する。(1)NNの初期化。(2)データの準備。(3)学習されるデータのNNへの提示。(4)必要に応じて、最終的にLTGの割当て。
(DRトレーニングアルゴリズムの説明)
図2に、本発明の好適な実施形態に従って行われるNNトレーニング方法すなわちアルゴリズム30のフロー図を示す。
図2に、本発明の好適な実施形態に従って行われるNNトレーニング方法すなわちアルゴリズム30のフロー図を示す。
トレーニングプロセスはLTGの入力層で始まる。以下、NNにLTGを動的に追加するDRトレーニングアルゴリズム30をまとめて、以下のステップで提示する。
(1)NNの初期化
DRトレーニングアルゴリズム30によるNNの初期化は、一般に、図2のブロック32により示される。ブロック32において、NNを初期化するプロセスは、以下のステップを含むことが好ましい。
a)出力ベクトルの各次元が個別にトレーニングされる。学習される次元Ojを選択する。
b)出力LTGOjの制約条件セットを空に設定する。
c)出力LTGOjを入力層に完全に接続する。
DRトレーニングアルゴリズム30によるNNの初期化は、一般に、図2のブロック32により示される。ブロック32において、NNを初期化するプロセスは、以下のステップを含むことが好ましい。
a)出力ベクトルの各次元が個別にトレーニングされる。学習される次元Ojを選択する。
b)出力LTGOjの制約条件セットを空に設定する。
c)出力LTGOjを入力層に完全に接続する。
(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(自己組織化マップ)でデータをソートする。
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(自己組織化マップ)でデータをソートする。
すでに検討したように、本発明は特定のソート技法に限定されるものではない。
d)入力ベクトルのセットから1つのリストが生成される。このステップは、ブロック33により表されるソートステップの一部である。
e)学習対象のデータセットに0入力ベクトルが利用可能か否かを判定する。この0ベクトルは全ての入力次元を0に設定する。この入力ベクトルが利用可能である場合、この入力ベクトルをその出力にかかわらず最初に学習するものとしてソートする。0ベクトルがトレーニングに利用可能であり、その出力にかかわらず最初に学習されることが好適であるが、利用可能でない場合には、重要ではない。ここでも、このステップはブロック33により表されるソートステップの一部である。
d)入力ベクトルのセットから1つのリストが生成される。このステップは、ブロック33により表されるソートステップの一部である。
e)学習対象のデータセットに0入力ベクトルが利用可能か否かを判定する。この0ベクトルは全ての入力次元を0に設定する。この入力ベクトルが利用可能である場合、この入力ベクトルをその出力にかかわらず最初に学習するものとしてソートする。0ベクトルがトレーニングに利用可能であり、その出力にかかわらず最初に学習されることが好適であるが、利用可能でない場合には、重要ではない。ここでも、このステップはブロック33により表されるソートステップの一部である。
(3)NNにより学習されるデータの適用
DRトレーニングアルゴリズム30に従ってNNにより学習されるデータの適用プロセスは、概ね、図2のブロック34により表される。ブロック34において、NNの出力について各パターン(又は入力ベクトル及び関連付けられた出力の組み合わせ)が、これ以上学習するものがなくなるまで、学習されることがわかる。DRトレーニングアルゴリズム30に従って出力に対して単一のパターンを学習するプロセス40の好適な実施形態を図3に示す。
DRトレーニングアルゴリズム30に従ってNNにより学習されるデータの適用プロセスは、概ね、図2のブロック34により表される。ブロック34において、NNの出力について各パターン(又は入力ベクトル及び関連付けられた出力の組み合わせ)が、これ以上学習するものがなくなるまで、学習されることがわかる。DRトレーニングアルゴリズム30に従って出力に対して単一のパターンを学習するプロセス40の好適な実施形態を図3に示す。
プロセス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)に戻る。
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)に戻る。
(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を参照する。
新たな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を参照する。
図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で完結し、さらに学習するパターンがある場合には次のパターンが学習される。
図3のプロセス40は新たな出力LTGがNNに割り当てられる(ブロック49)前の新たなLTGの中間層(ブロック47)への割当てを示すが、言うまでもなく、新たな中間層LTGの割当て前に新たな出力LTGをNNに割り当てることができる。従って、本発明は特定の例に限定されるものではない。本発明のDRトレーニングアルゴリズム30に従って、新たな出力LTGが新たな中間層LTGの割当て前にNNに割り当てることができることを説明するために、図6a及び図6bのNN70へのLTGの割当てを、図3の好適なプロセス40に示した順序とは逆の順序で示す。
以下、新たな出力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層に割り当てられる。
・ブロック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層に割り当てられる。
以下、新たな中間層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)に戻
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)に戻