古典的な人工ニューラルネットワーク10は、図1に示されるように、通例、入力デバイス12と、シナプス重み16を有するシナプス14と、加算器20および活性化関数デバイス22を含む、ニューロン18と、ニューロン出力24と、重み修正計算器26とを含む。各ニューロン18はシナプス14を通して2つ以上の入力デバイス12に接続されている。シナプス重み16の値は一般的に、電気抵抗、導電率、電圧、電荷、磁気特性、または他のパラメータを用いて表される。
古典的なニューラルネットワーク10の教師付きトレーニングは概して、トレーニングペア28のセットの適用に基づく。各トレーニングペア28は一般的に、入力画像28-1、および教師信号としても知られる、所望の出力画像28-2からなる。古典的なニューラルネットワーク10のトレーニングは通例、以下のように行われる。入力信号(I1~Im)のセットの形態の入力画像が入力デバイス12に入り、初期重み(W1)を有するシナプス重み16へ転送される。入力信号の値は、重みによって、通例、各信号(I1~Im)の値にそれぞれの重みを乗算するか、またはそれで除算することによって、変更される。シナプス重み16から、変更された入力信号が各々、それぞれのニューロン18へ転送される。各ニューロン18は、問題のニューロン18に関連するシナプス14のグループから信号のセットを受信する。ニューロン18内に含まれる加算器20は、重みによって変更され、問題のニューロンによって受信された全ての入力信号を合計する。活性化関数デバイス22は、それぞれの得られたニューロン和を受信し、数学関数に従って和を変更し、かくして、ニューロン出力信号のセット(ΣF1…ΣFn)としてそれぞれの出力画像を形成する。
ニューロン出力信号(ΣF1…ΣFn)によって規定された、得られたニューロン出力画像は、重み修正計算器26によって所定の所望の出力画像(O1~On)と比較される。得られたニューロン出力画像ΣFnと所望の出力画像Onとの決定された差に基づいて、事前にプログラムされたアルゴリズムを用いてシナプス重み16を変更するための修正信号が形成される。全てのシナプス重み16に対して修正が行われた後に、入力信号のセット(I1~Im)がニューラルネットワーク10に再導入され、新たな修正が行われる。得られたニューロン出力画像ΣFnと所望の出力画像Onとの差が何らかの所定の誤差未満であると決定されるまで、上述のサイクルが繰り返される。全ての個々の画像を用いたネットワークトレーニングの1つのサイクルは、通例、「トレーニングエポック」として識別される。概して、トレーニングエポックのたびに、誤差の大きさは低減される。しかし、個々の入力(I1~Im)の数、ならびに入力および出力の数に依存して、古典的なニューラルネットワーク10のトレーニングは、場合によっては、何十万という大きさになり得る、膨大な数のトレーニングエポックを必要とし得る。
ホップフィールドネットワーク、制限ボルツマンマシン、放射基底関数ネットワーク、およびリカレントニューラルネットワークを含む、種々の古典的なニューラルネットワークが存在する。分類およびクラスタ化の特定のタスクは、特定の種類のニューラルネットワーク、入力画像のみをネットワーク入力トレーニング情報として用いる自己組織化マップを必要とし、それに対して、特定の入力画像に対応する所望の出力画像は、最大値を有する出力信号を有する単一の勝者ニューロンに基づいてトレーニングプロセスの間に直接形成される。
上述されたように、ニューラルネットワーク10などの、既存の古典的なニューラルネットワークに対する主な懸念のうちの1つは、これらのトレーニングを成功させるには、膨大な期間を必要とし得ることである。古典的なネットワークに対するいくつかのさらなる懸念は、計算リソースの大量消費であり得る。これは結果的に高性能のコンピュータの必要性を生じさせるであろう。さらなる懸念は、ネットワークの完全な再トレーニングを行わずにはネットワークのサイズを増大させることができないこと、「ネットワークの麻痺」および「極小におけるフリーズ」のような現象に陥りやすい傾向である。このせいで、特定のニューラルネットワークが、所与のシーケンスで所与の画像セットを用いてトレーニングされることが可能であろうかどうかを予測することが困難になる。また、トレーニングの間に画像が導入される特定のシーケンシングに関連する制限も存在し得る。この場合、トレーニング画像の導入の順序を変更すると、ネットワークのフリーズを招くとともに、すでにトレーニングされたネットワークの追加のトレーニングを遂行できなくなり得る。
残りの図面を参照すると、同様の参照符号は同様の構成要素を指し、図2は、プログレッシブニューラルネットワーク、以下、「プログレッシブネットワーク」、または「pネット」100の概略図を示す。pネット100は、pネットの複数の入力102、または入力102のセットを含む。各入力102は、入力信号104を受信するように構成されている。ここで、図2において、入力信号はI1、I2…Imと表されている。各入力信号I1、I2…Imは、入力画像106の何らかの特性、例えば、大きさ、周波数、位相、信号偏角、または入力画像106の異なる部分との関連の値を表す。各入力信号104は入力値を有し、全体として、複数の入力信号104は概して入力画像106を記述する。
各入力値は、-∞~+∞にある値の範囲内にあり得、デジタル形式および/またはアナログ形式で設定され得る。入力値の範囲はトレーニング画像のセットに依存し得る。最も単純な場合には、入力値の範囲は、全てのトレーニング画像についての入力信号の最も小さい値と最も大きい値との差であることができるであろう。実用的な理由から、入力値の範囲は、過剰に高いと見なされる入力値を無くすことによって制限されてもよい。例えば、入力値の範囲のこのような制限は、重要度サンプリングなどの、分散低減のための既知の統計的方法を通して達成され得る。入力値の範囲を制限する別の例は、所定の最小レベルよりも低い全ての信号の、特定の最小値への指定、および所定の最大レベルを超える全ての信号の、特定の最大値への指定であり得る。
pネット100はまた、複数のシナプス118、またはシナプス118のセットを含む。各シナプス118は、図2に示されるように、複数の入力102のうちの1つに接続されており、複数の修正重み112を含み、また、シナプス重み108も含み得る。各修正重み112はそれぞれの重み値によって規定される。pネット100はまた、分配器114のセットを含む。各分配器114は、それぞれの入力信号104を受信するための複数の入力102のうちの1つに動作可能に接続されている。加えて、各分配器114は、入力値に相関して複数の修正重み112から1つ以上の修正重みを選択するように構成されている。
pネット100は、さらに、ニューロン116のセットを含む。各ニューロン116は少なくとも1つの出力117を有し、1つのシナプス118を介して複数の入力102のうちの少なくとも1つと接続されている。各ニューロン116は、それぞれのニューロン116に接続された各シナプス118から選択された修正重み112の修正重み値を合算または合計し、これにより、Σnとして別記されるニューロン和120を生成して出力するように構成されている。図3A、図3B、および図3Cに示されるように、所与の入力102のシナプス118ごとに別個の分配器114が用いられてもよく、あるいは図4A、図4B、および図4Cに示されるように、このようなシナプスの全てのために単一の分配器が用いられてもよい。pネット100の形成またはセットアップの間に、全ての修正重み112は、pネットトレーニングのプロセスの間に変化し得る、初期値を割り当てられる。修正重み112の初期値は古典的なニューラルネットワーク10の場合と同様に割り当てることができ、例えば、重みは、ランダムに選択される、所定の数学関数の助けを借りて算出される、所定のテンプレートから選択されるなどし得る。
pネット100はまた、重み修正計算器122を含む。重み修正計算器122は、信号値を有し、出力画像126の一部分を表す、所望の、すなわち、所定の、出力信号124を受信するように構成されている。重み修正計算器122はまた、所望の出力信号124の値から、トレーニング誤差としても知られる、ニューロン和120の逸脱128を決定し、決定された逸脱128を用いてそれぞれの修正重み値を変更するように構成されている。その後、変更された修正重み値を合計し、ニューロン和120を決定することは、所望の出力信号124の値からの問題のニューロン和の逸脱を最小化し、その結果、pネット100をトレーニングするために有効である。
図1に関して説明された古典的なネットワーク10との類推のために、逸脱128はまた、決定されたニューロン和120と所望の出力信号124の値とのトレーニング誤差として記述することもできる。図1に関して説明された古典的なニューラルネットワーク10と比較すると、pネット100では、入力信号104の入力値は一般的なネットワークセットアップの最中にのみ変化し、pネットのトレーニングの間には変更されない。入力値を変更する代わりに、pネット100のトレーニングは、修正重み112の値112を変更することによって提供される。加えて、各ニューロン116は、ニューロンが修正重み値を合算する合計関数を含むが、ニューロン116は、古典的なニューラルネットワーク10における活性化関数デバイス22によって提供されるものなどの、活性化関数を必要とせず、実際に、活性化関数が存在しないことによって特徴付けられる。
古典的なニューラルネットワーク10では、トレーニングの間の重み修正は、シナプス重み16を変更することによって達成され、その一方で、pネット100では、図2に示されるように、修正重み値112を変更することによって、対応する重み修正がもたらされる。それぞれの修正重み112は、シナプス118の全てまたは一部の上に位置付けられた重み修正ブロック110内に含まれ得る。ニューラルネットワークコンピュータエミュレーションでは、各シナプス重みおよび修正重みは、メモリセルなどのデジタルデバイス、および/またはアナログデバイスのいずれかによって表され得る。ニューラルネットワークソフトウェアエミュレーションでは、修正重み112の値は、適切なプログラムされたアルゴリズムを介して提供することが可能であり、その一方で、ハードウェアエミュレーションでは、メモリ制御のための既知の方法を用いることができるであろう。
pネット100では、所望の出力信号124からのニューロン和120の逸脱128は、両者の間の数学的に計算された差として表され得る。加えて、それぞれの変更された修正重み112の生成は、計算された差の、ニューロン和120を生成するために用いられる各修正重みへの配分を含み得る。このような実施形態では、それぞれの変更された修正重み112の生成は、ニューロン和120が少数のエポック以内に所望の出力信号値に収束されることを可能にすることになり、場合によっては、単一のエポックを必要とするのみであり、pネット100を高速にトレーニングする。特定の例では、ニューロン和120を生成するために用いられる修正重み112の間における数学的差の配分は、決定された差を、それぞれのニューロン和120を生成するために用いられる各修正重みの間で等しく除算することを含み得る。
別個の実施形態では、所望の出力信号値からのニューロン和120の逸脱128の決定は、所望の出力信号値をニューロン和で除算し、これにより、逸脱係数を生成することを含み得る。このような特定の例では、それぞれの変更された修正重み112の変更は、ニューロン和120を生成するために用いられる各修正重みに逸脱係数を乗算することを含む。各分配器114は、さらに、複数の影響係数134を複数の修正重み112に割り当てるように構成され得る。本実施形態では、各影響係数134は、それぞれのニューロン和120を生成するために何らかの所定の割合で複数の修正重み112のうちの1つに割り当てられ得る。各々のそれぞれの修正重み112との対応のために、各影響係数134には、図に示されるように、「Сi,d,n」の名称が付与され得る。
特定のシナプス118に対応する複数の影響係数134の各々はそれぞれの影響分布関数136によって規定される。影響分布関数136は、全ての影響係数134に対して同じであるか、または特定のシナプス118に対応する複数の影響係数134に対してのみ同じであるかのいずれかであり得る。複数の入力値の各々は、間隔分布関数140に従って間隔または小区分「d」に分割された値の範囲137内に受信され得、これにより、各入力値はそれぞれの間隔「d」内で受信され、各修正重みはこのような間隔のうちの1つに対応する。各分配器114は、それぞれの受信された入力値を用い、それぞれの間隔「d」を選択し、それぞれの複数の影響係数134を、選択されたそれぞれの間隔「d」に対応する修正重み112、およびWi,d+1,nもしくはWi,d-1,nなどの、選択されたそれぞれの間隔に隣接する間隔に対応する少なくとも1つの修正重みに割り当て得る。別の非限定例では、影響係数134の所定の割合は統計的分布に従って規定され得る。
ニューロン和120を生成することは、最初に、入力値102に従ってそれぞれの影響係数134を各修正重み112に割り当て、次に、問題の影響係数に、それぞれの用いられている修正重み112の値を乗算することを含み得る。次に、各ニューロン116を介して、修正重み112と割り当てられた影響係数134との個々の積を、それに接続された全てのシナプス118にわたって合計する。
重み修正計算器122は、それぞれの影響係数134を適用し、それぞれの変更された修正重み112を生成するように構成され得る。具体的には、重み修正計算器122は、それぞれの影響係数134によって確立された割合に従って、ニューロン和120と所望の出力信号124との計算された数学的差の一部分を、ニューロン和120を生成するために用いられる各修正重み112に適用し得る。加えて、ニューロン和120を生成するために用いられる修正重み112の間で分割された数学的差はそれぞれの影響係数134でさらに除算され得る。その後、それぞれの影響係数134によるニューロン和120の除算の結果は、ニューロン和120を所望の出力信号値に収束するために、修正重み112に加算され得る。
通例、pネット100の形成は、pネットのトレーニングが開始する前に行われることになる。しかし、別個の実施形態では、トレーニングの間に、pネット100が、初期修正重みが存在しない入力信号104を受信する場合には、適切な修正重み112が生成され得る。このような場合には、特定の分配器114が、特定の入力信号104のための適切な間隔「d」を決定することになり、初期値を有する修正重み112のグループが、所与の入力102、所与の間隔「d」、および全てのそれぞれのニューロン116のために生成されることになる。加えて、対応する影響係数134が、各々の新たに生成された修正重み112に割り当てられ得る。
各修正重み112は、pネット100上における各々のそれぞれの修正重みの位置を識別するように構成されたインデックスのセットによって規定され得る。インデックスのセットは、具体的に、特定の入力102に対応する修正重み112を識別するように構成された入力インデックス「i」、それぞれの修正重みのための上述の選択された間隔を特定するように構成された間隔インデックス「d」、および特定のニューロン116に対応する修正重み112を名称「Wi,d,n」によって特定するように構成されたニューロンインデックス「n」を含み得る。それゆえ、特定の入力102に対応する各修正重み112には、問題の位置を示すために、添え字内において特定のインデックス「i」が割り当てられる。同様に、特定のニューロン116およびそれぞれのシナプス118に対応する各修正重み「W」には、pネット100上における修正重みの問題の位置を示すために、添え字内において特定のインデックス「n」および「d」が割り当てられる。インデックスのセットはまた、それぞれの修正重み112がpネット100のトレーニングの間に入力信号104によってアクセスされた回数を数えるように構成されたアクセスインデックス「a」を含み得る。換言すれば、特定の間隔「d」およびそれぞれの修正重み112がトレーニングのために複数の修正重みから入力値に相関して選択されるたびに、アクセスインデックス「a」は、入力信号をカウントするために、インクリメントされる。アクセスインデックス「a」は、名称「Wi,d,n,a」を採用することによって、各修正重みの現在のステータスをさらに特定または規定するために用いられ得る。インデックス「i」、「d」、「n」、および「a」の各々は0~+∞の範囲内の数値であり得る。
図5に、入力信号104の範囲を間隔d0、d1…dmに分割する様々な可能性が示されている。特定の間隔分布は一様または線形であり得る。これは、例えば、全ての間隔「d」を同じサイズによって特定することによって達成され得る。所定の最低レベルよりも低いそれぞれの入力信号値を有する全ての入力信号104は、0の値を有すると見なすことができ、その一方で、所定の最高レベルよりも大きいそれぞれの入力信号値を有する全ての入力信号は、同じく図5に示されるように、このような最高レベルに割り当てることができる。特定の間隔分布はまた、対称、非対称、または無制限など、非一様または非線形であり得る。間隔「d」の非線形分布は、入力信号104の範囲が非実用的に大きいと見なされ、範囲の最初、中間、または最後などにおける、範囲の特定の部分が、最も重要と見なされる入力信号を含み得るであろうというときに、有用であり得る。特定の間隔分布はまた、ランダム関数によって記述することもできる。間隔分布の他の変形例も可能であるため、上述の例は全て非限定的な性質のものである。
入力信号104の選択された範囲内の間隔「d」の数は、pネット100を最適化するために増大させられてもよい。pネット100のこのような最適化は、例えば、入力画像106のトレーニングの複雑さの増大とともに望ましくなり得る。例えば、多色画像のためには、単色画像と比べて、より多数の間隔が必要になり得、複雑な装飾品のためには、単純なグラフィックよりも多数の間隔が必要になり得る。複雑な色勾配を有する画像の正確な認識のためには、輪郭によって記述される画像と比べて、増大した数の間隔が必要となり得、より総数の大きいトレーニング画像に対しても同様である。また、ノイズの大きさが高い場合、トレーニング画像における分散が高い場合、および計算リソースの消費が過大である場合には、間隔「d」の数の低減も必要になり得る。
pネット100によって処理されるタスク、または情報の種類、例えば、視覚データまたは文字データ、様々な種類のセンサからのデータに依存して、異なる数の間隔およびそれらの分布の種類が指定され得る。入力信号値間隔「d」ごとに、インデックス「d」を有する所与のシナプスの対応する修正重みが割り当てられ得る。それゆえ、特定の間隔「d」は、所与の入力に関連するインデックス「i」、所与の間隔に関連するインデックス「d」、および0~nのインデックス「n」のための全ての値を有する全ての修正重み112を含むことになる。pネット100をトレーニングするプロセスにおいて、分配器114は各入力信号値を規定し、かくして、問題の入力信号104を、対応する間隔「d」に関連付ける。例えば、0~100の入力信号の範囲内に10個の等しい間隔「d」が存在する場合には、30~40の値を有する入力信号は間隔3に関連付けられることになり、すなわち、「d」=3になる。
所与の入力102と接続された各シナプス118の全ての修正重み112のために、分配器114は、特定の入力信号に関連付けられた間隔「d」に従って影響係数134の値を割り当て得る。分配器114はまた、正弦波、正規、対数分布曲線などの、(図6に示される)影響係数134の値の所定の分布、またはランダム分布関数に従って影響係数134の値を割り当て得る。多くの場合、各シナプス118に関連する特定の入力信号102についての影響係数134またはСi,d,nの和または積分は、1(1)の値を有することになる。
ΣSynapseСi,d,n=1 または ∫SynapseСi,d,n=1 [1]
最も単純な場合には、入力信号値に最も密接に対応する修正重み112は影響係数134(Сi,d,n)に1(1)の値が割り当てられ得、その一方で、他の間隔のための修正重みは0(0)の値を受け得る。
pネット100は、古典的なニューロンネットワーク10と比べて、pネットのトレーニングの間における期間および他のリソースの使用の低減に焦点を合わせている。pネット100の一部として本明細書において開示される要素のうちのいくつかは、古典的なニューラルネットワークに精通した人々に知られた特定の名称または識別名によって指定されるが、特定の名称は、簡潔にするために用いられており、古典的なニューラルネットワークにおけるそれらの対応物とは異なって用いられ得る。例えば、入力信号(I1~Im)の大きさを制御するシナプス重み16は、古典的なニューラルネットワーク10の一般的セットアップのプロセスの間に定められ、古典的なネットワークのトレーニングの間に変更される。他方で、pネット100のトレーニングは、修正重み112を変更することによって達成され、その一方で、シナプス重み108はトレーニングの間に変化しない。加えて、上述されたように、ニューロン116の各々は合計または合算構成要素を含むが、古典的なニューラルネットワーク10に典型的である活性化関数デバイス22を含まない。
概して、pネット100は、特定のニューロンおよび全てのそれぞれのシナプス118、ならびに問題のニューロンと接続された修正重み112を含む、それぞれのニューロン116および全ての接続シナプス118を含む各ニューロンユニット119をトレーニングすることによってトレーニングされる。したがって、pネット100のトレーニングは、それぞれのニューロン116に寄与する修正重み112を変更することを含む。修正重み112に対する変更は、以下において詳細に開示される方法200に含まれるグループトレーニングアルゴリズムに基づいて行われる。本開示のアルゴリズムでは、ニューロンごとにトレーニング誤差、すなわち、逸脱128が決定され、これに基づいて、修正値が決定され、各々のそれぞれのニューロン116によって得られる和を決定する際に用いられる重み112の各々に割り当てられる。トレーニングの間におけるこのような修正値の導入は、問題のニューロン116についての逸脱128を0に低減することを意図される。追加の画像を用いたトレーニングの間には、前に利用された画像に関連する新たな誤差が再び現れ得る。このような追加的な誤差を無くすために、1つのトレーニングエポックの完了後に、pネット100全体の全てのトレーニング画像についての誤差が算出されてもよく、このような誤差が所定の値よりも大きい場合には、誤差が目標または所定の値未満になるまで、1つ以上の追加のトレーニングエポックが実施されてもよい。
図23は、図2~図22を参照して上述されたとおりの、pネット100をトレーニングする方法200を示す。方法200はフレーム202において開始する。フレーム202において、本方法は、入力102を介して、入力値を有する入力信号104を受信することを含む。フレーム202に続き、本方法はフレーム204へ進む。フレーム204において、本方法は、入力信号104を、入力102に動作可能に接続された分配器114へ通信することを含む。フレーム202またはフレーム204のどちらかにおいて、方法200は、インデックスのセットによって各修正重み112を規定することを含み得る。pネット100の構造に関して上述されたように、インデックスのセットは、入力102に対応する修正重み112を識別するように構成された入力インデックス「i」を含み得る。インデックスのセットはまた、それぞれの修正重み112のための選択された間隔を特定するように構成された間隔インデックス「d」、および特定のニューロン116に対応する修正重み112を「Wi,d,n」として特定するように構成されたニューロンインデックス「n」を含み得る。インデックスのセットは、さらに、それぞれの修正重み112がpネット100のトレーニングの間に入力信号104によってアクセスされた回数を数えるように構成されたアクセスインデックス「a」を含み得る。したがって、各修正重みの現在のステータスは名称「Wi,d,n,a」を採用し得る。
フレーム204の後、本方法はフレーム206へ進む。フレーム206において、本方法は、分配器114を介して、入力値に相関して、問題の入力102に接続されたシナプス118上に配置された複数の修正重みから1つ以上の修正重み112を選択することを含む。上述されたように、各修正重み112はそのそれぞれの重み値によって規定される。フレーム206において、本方法は、さらに、分配器114を介して、複数の影響係数134を複数の修正重み112に割り当てることを含み得る。フレーム206において、本方法はまた、所定の割合で各影響係数134を複数の修正重み112のうちの1つに割り当て、ニューロン和120を生成することを含み得る。また、フレーム206において、本方法は、ニューロン116を介して、修正重み112と割り当てられた影響係数134との積を、それに接続された全てのシナプス118にわたって合算することを含み得る。加えて、フレーム206において、本方法は、重み修正計算器122を介して、それぞれの影響係数134によって確立された割合に従って、決定された差の一部分を、ニューロン和120を生成するために用いられる各修正重み112に適用することを含み得る。
pネット100の構造に関して上述されたように、複数の影響係数134は影響分布関数136によって規定され得る。このような場合には、本方法は、さらに、入力値を、間隔分布関数140に従って間隔「d」に分割された値の範囲137内に受信することを含み得、これにより、入力値はそれぞれの間隔内で受信され、各修正重み112は間隔のうちの1つに対応する。また、本方法は、分配器114を介して、受信された入力値を用い、それぞれの間隔「d」を選択し、複数の影響係数134を、選択されたそれぞれの間隔「d」に対応する修正重み112、および選択されたそれぞれの間隔「d」に隣接する間隔に対応する少なくとも1つの修正重みに割り当てることを含み得る。pネット100の構造に関して上述されたように、選択されたそれぞれの間隔「d」に隣接する間隔に対応する修正重み112は、例えば、Wi,d+1,nまたはWi,d-1,nとして識別され得る。
フレーム206に続き、本方法はフレーム208へ進む。フレーム208において、本方法は、シナプス118を介して入力102と接続された特定のニューロン116によって、選択された修正重み112の重み値を合算し、ニューロン和120を生成することを含む。pネット100の構造に関して上述されたように、各ニューロン116は少なくとも1つの出力117を含む。フレーム208の後、本方法はフレーム210へ進む。フレーム210において、本方法は、重み修正計算器122を介して、信号値を有する所望の出力信号124を受信することを含む。フレーム210に続き、本方法は、フレーム212へ進む。フレーム212において、本方法は、重み修正計算器122を介して、所望の出力信号124の値からのニューロン和120の逸脱128を決定することを含む。
以上においてpネット100の説明で開示されたように、所望の出力信号値からのニューロン和120の逸脱128の決定は、これらの間の数学的差を決定することを含み得る。加えて、それぞれの修正重み112の変更は、数学的差を、ニューロン和120を生成するために用いられる各修正重みに配分することを含み得る。代替的に、数学的差の配分は、決定された差を、ニューロン和120を生成するために用いられる各修正重み112の間で等しく除算することを含み得る。さらに別個の実施形態では、逸脱128の決定はまた、所望の出力信号124の値をニューロン和120で除算し、これにより、逸脱係数を生成することを含み得る。さらに、このような場合には、それぞれの修正重み112の変更は、ニューロン和120を生成するために用いられる各修正重み112に、生成された逸脱係数を乗算することを含み得る。
フレーム212の後に、本方法はフレーム214へ進む。フレーム214において、本方法は、重み修正計算器122を介して、決定された逸脱128を用いてそれぞれの修正重み値を変更することを含む。変更された修正重み値は、その後、加算または合計され、次に、新たなニューロン和120を決定するために用いられ得る。合計された変更された修正重み値は、次に、所望の出力信号124の値からのニューロン和120の逸脱を最小化し、これにより、pネット100をトレーニングする役割を果たし得る。フレーム214に続き、方法200は、所望の出力信号124の値からのニューロン和120の逸脱が十分に最小化されるまで、フレーム202へ戻り、追加のトレーニングエポックを遂行することを含み得る。換言すれば、ニューロン和120を所定の逸脱または誤差値以内まで所望の出力信号124に収束するために、追加のトレーニングエポックを遂行することができ、これにより、pネット100が、トレーニングされ、新たな画像を用いた操作の準備ができたと見なされ得るようにする。
概して、入力画像106は、pネット100のトレーニングのために準備される必要がある。トレーニングのためのpネット100の準備は、概して、入力画像106、および、ほとんどの場合、問題の入力画像に対応する所望の出力画像126を含む、トレーニング画像のセットの形成から始まる。pネット100のトレーニングのための入力信号I1、I2…Imによって規定された入力画像106(図2に示される)は、pネットが処理するよう任務を受けたタスク、例えば、人間の画像もしくは他の物体の認識、特定の活動の認識、クラスタ化もしくはデータ分類、統計データの解析、パターン認識、予報、または特定のプロセスの制御に従って選択される。したがって、入力画像106は、コンピュータへの導入のために適した任意のフォーマットで、例えば、表、チャート、図およびグラフィックの形式の、フォーマット、jpeg、gif、またはpptx、様々な文書フォーマット、あるいは記号のセットを用いて提示され得る。
pネット100のトレーニングのための準備はまた、選択された入力画像106を、pネット100による問題の画像の処理のために都合よいそれらの統一のために変換すること、例えば、全ての画像を、同数の信号、または、ピクチャの場合には、同数のピクセルを有するフォーマットへ変化することを含み得る。カラー画像は、例えば、3つの基本色の組み合わせとして提示することができるであろう。画像変換はまた、特性の変更、例えば、画像を空間内で移動させること、解像度、明るさ、コントラスト、色、視点、遠近感、焦点距離および焦点などの、画像の視覚特性を変更すること、ならびに記号、番号、またはメモを追加することを含むことができるであろう。
間隔の数の選択後には、特定の入力画像が間隔フォーマットの入力画像に変換され得る。すなわち、実信号値が、問題のそれぞれの信号が属する間隔の番号として記録され得る。この手順は所与の画像のための各トレーニングエポックにおいて実行され得る。しかし、画像はまた、間隔番号のセットとして一度形成されてもよい。例えば、図7では、初期画像がピクチャとして提示されており、その一方で、テーブル「デジタルフォーマットによる画像」では、同じ画像はデジタル符号の形式で提示されており、テーブル「間隔フォーマットによる画像」では、このとき、画像は間隔番号のセットとして提示されており、この場合、デジタル符号の10の値ごとに別個の間隔が割り当てられている。
pネット100の本記載の構造、および説明されたとおりのトレーニングアルゴリズムもしくは方法200は、pネットの連続的または反復トレーニングを可能にし、それゆえ、トレーニングプロセスの開始時にトレーニング入力画像106の完全なセットを形成することは要求されない。トレーニング画像の比較的小さい開始セットを形成することが可能であり、このような開始セットを必要に応じて拡張することができるであろう。入力画像106は、異なるカテゴリ、例えば、1人の人物のピクチャのセット、猫の写真のセット、または車の写真のセットに分割されてもよく、これにより、各カテゴリは、単一の出力画像、このような人物の名前、または特定のラベルに対応する。所望の出力画像126は、各点が-∞~+∞の特定の数値に対応する、デジタル値、またはアナログ値のフィールドまたはテーブルを表す。所望の出力画像126の各点はpネット100のニューロンのうちの1つの出力に対応し得る。所望の出力画像126は、画像のデジタル符号もしくはアナログ符号、テーブル、テキスト、式、バーコードなどの記号のセット、または音声を用いて符号化され得る。
最も単純な場合には、各入力画像106は、問題の入力画像を符号化した、出力画像に対応し得る。このような出力画像の点のうちの1つには最大可能値、例えば、100%を割り当てることができ、それに対して、全ての他の点には最小可能値、例えば、0を割り当てることができる。このような場合には、トレーニングの後に、トレーニング画像との類似率の形の様々な画像の確率的認識が可能にされることになる。図8は、2つの画像、正方形および円の認識のためにトレーニングされたpネット100が、和が必ずしも100%と等しくない百分率で表される、各形状のいくらかの特徴を包含するピクチャをどのように認識し得るのかについての一例を示す。トレーニングのために用いられる異なる画像間の類似率を規定することによるパターン認識のこのようなプロセスは、特定の画像を分類するために用いられ得る。
精度を改善し、誤差を排除するために、符号化は、1つの出力ではなく、いくつかのニューラル出力のセットを用いて達成され得る(以下参照)。最も単純な場合には、出力画像はトレーニングに先立って準備され得る。しかし、出力画像をトレーニングの間にpネット100によって形成させることも可能である。
pネット100では、入力画像と出力画像とを逆転させる可能性もある。換言すれば、入力画像106がデジタル値またはアナログ値のフィールドまたはテーブルの形式のものであってもよく、この場合、各点はpネットの1つの入力に対応し、その一方で、出力画像が、コンピュータへの導入のために適した任意のフォーマットで、例えば、テーブル、チャート、図およびグラフィックの形式のフォーマット、jpeg、gif、pptx、様々な文書フォーマット、あるいは記号のセットを用いて提示されてもよい。得られたpネット100は、アーカイブシステム、ならびに画像の連想検索、音楽表現、計算式、またはデータセットのためによく適し得る。
入力画像106の準備に続き、通例、pネット100が形成される必要があり、および/または既存のpネットのパラメータが、所与のタスクを処理するために設定されなければならない。pネット100の形成は以下の指定を含み得る。
・ 入力および出力の数によって規定されるとおりの、pネット100の寸法、
・ 全ての入力のためのシナプス重み108、
・ 修正重み112の数、
・ 入力信号104の異なる値に対する修正重み影響係数(Сi,d,n)の分布、ならびに
・ トレーニングの所望の精度
入力の数は入力画像106のサイズに基づいて決定される。例えば、ピクチャのためには多数のピクセルが用いられ得るが、その一方で、選択される出力数は所望の出力画像126のサイズに依存し得る。場合によっては、選択される出力数はトレーニング画像のカテゴリの数に依存し得る。
個々のシナプス重み108の値は-∞~+∞の範囲内にあり得る。0(0)よりも小さいシナプス重み108の値は、例えば、多数の異なる人物または物体を包含する写真内における人間の顔のより効果的な認識のために、特定の入力からの、または特定の画像からの信号の影響を高めるために用いられ得る、信号増幅を示し得る。他方で、0(0)よりも大きいシナプス重み108の値は、必要とされる算出の数を低減し、pネット100の動作速度を増大させるために用いられ得る、信号減衰を示すために用いられ得る。概して、シナプス重みの値が大きいほど、対応するニューロンへ伝送される信号は大きく減衰させられる。全ての入力に対応する全てのシナプス重み108が等しく、全てのニューロンが全ての入力と等しく接続されている場合には、ニューラルネットワークは万能型になり、画像の性質について前もってほとんど知られていないときなどには、共通タスクのために最も有効になる。しかし、このような構造は概して、トレーニングおよび演算の間に必要とされる計算の数を増大させることになる。
図9は、統計的正規分布に従って入力とそれぞれのニューロンとの間の関係が低減される、pネット100の一実施形態を示す。シナプス重み108の不均一な分布は、入力信号全体が所与の入力のための目標または「中央」ニューロンへ伝達されるという結果をもたらし得、それゆえ、問題のシナプス重みに0の値を割り当てる。加えて、シナプス重みの不均一な分布は、他のニューロンが、例えば、正規分布、対数正規分布、正弦波分布、または他の分布を用いて、低減された入力信号値を受信するという結果をもたらし得る。低減された入力信号値を受信するニューロン116のためのシナプス重み108の値は、「中央」ニューロンからのそれらの距離の増大とともに増大し得る。このような場合には、計算の数を低減することができ、pネットの動作が高速化する。既知の完全に接続されたニューラルネットワークと不完全に接続されたニューラルネットワークとの組み合わせであるこのようなネットワークは、強い内部パターン、例えば、人間の顔、または映画フィルムの連続フレームを有する画像の解析のためにきわめて有効なものになり得る。
図9は、局所パターンの認識のために有効であるpネット100の一実施形態を示す。共通パターンの識別を改善するために、シナプス重み108の値が小さいか、または0である、10~20%の強い接続が、格子の形態などの、決定論的アプローチ、またはランダムアプローチで、pネット100全体にわたって分布し得る。特定のタスクを処理するために意図されるpネット100の実際の形成は、シナプス、シナプス重み、分配器、修正重み、ニューロン等などの、pネットの主要素をソフトウェアオブジェクトとして生成する、例えば、オブジェクト指向プログラミング言語で書かれた、プログラムを用いて遂行される。このようなプログラムは、上述のオブジェクトと、それらのアクションを特定するアルゴリズムとの間の関係を割り当て得る。具体的には、シナプス重みおよび修正重みは、pネット100の形成の開始時に、それらの初期値の設定とともに形成され得る。pネット100は、そのトレーニングの開始前に完全に形成され、後のフレームにおいて、必要に応じて、例えば、ネットワークの情報容量が枯渇した時、または致命的エラーが生じた場合に、変更または拡張されてもよい。pネット100の完成は、トレーニングが継続している間にも可能である。
pネット100があらかじめ形成される場合には、特定のシナプス上の選択される修正重みの数は、入力信号の範囲内の間隔の数と等しくてもよい。加えて、修正重みは、pネット100の形成後に、個々の間隔の出現に応じた信号として生成されてもよい。古典的なニューラルネットワーク10と同様に、パラメータの選択およびpネット100の設定は、一連の目標を定めた実験を用いてもたらされる。このような実験は、(1)全ての入力において同じシナプス重み108を有するpネットの形成、ならびに(2)選択された画像のための入力信号値の評価および間隔の数の初期選択を含み得る。例えば、2値(1色)画像の認識のためには、2つの間隔を有するのみで十分であり得、8ビット画像の定性的認識のためには、最大256個の間隔を用いることができ、複雑な統計的依存性の近似は、数十個、またはさらに数百個の間隔を必要とし得、大規模なデータベースのためには、間隔の数は千単位になり得るであろう。
pネット100をトレーニングするプロセスにおいて、入力信号の値は、それらが特定の間隔の間に分布するときに、丸められてもよい。それゆえ、間隔の数によって分割された範囲の幅よりも大きい入力信号の精度は要求されなくてもよい。例えば、入力値の範囲が100個のユニットのために設定され、間隔の数が10個である場合には、±5よりも良い精度は要求されないことになる。このような実験はまた、(3)入力信号の値の全範囲にわたる間隔の一様な分布の選択を含み得、修正重み影響係数Сi,d,nのための最も単純な分布は、特定の入力信号のための間隔に対応する修正重みについては、1と等しく設定されてもよく、その一方で、残りの全ての修正重みのための修正重み影響は0(0)に設定されてもよい。このような実験は、さらに、(4)1つ、より多数、または全ての準備されたトレーニング画像を用いて所定の精度でpネット100をトレーニングすることを含み得る。
所定の精度のためのpネット100のトレーニング時間は実験によって確立され得る。pネット100の精度およびトレーニング時間が満足できるものである場合には、選択された設定を維持または変更することができるであろう。その一方で、より効果的な変形の探索が継続される。要求精度が達成されない場合には、最適化の目的のために、特定の変更の影響が評価されてもよい。これは、その時に1つ遂行されるか、またはグループで遂行され得る。変更のこのような評価は、間隔の数を変更すること、増大または減少させること、修正重み影響係数(Сi,d,n)の分布の種類を変更すること、正規分布、累乗分布、対数分布、または対数正規分布を用いるなど、間隔の非一様な分布を用いた変形を試験すること、ならびにシナプス重み108の値を変更すること、例えば、それらの、非一様な分布への移行を含み得る。
正確な結果のために必要とされるトレーニング時間が過大であると考えられる場合には、間隔の数を増大させたトレーニングが、トレーニング時間に対するその効果について評価されてもよい。その結果、トレーニング時間が低減された場合には、要求精度を損なうことなく所望のトレーニング時間が得られるまで間隔の数の増大が繰り返されてもよい。間隔の数を増大させるにつれて、トレーニング時間が、低減されるのでなく、増加する場合には、間隔の数を低減して追加のトレーニングが遂行されてもよい。間隔の数の低減がトレーニング時間の低減をもたらす場合には、所望のトレーニング時間が得られるまで、間隔の数をさらに低減することができるであろう。
pネット100の設定の形成は、所定のトレーニング時間を用いたトレーニング、およびトレーニング精度の実験的決定を経たものであり得る。パラメータは、上述されたものと同様の実験的変更を経て改善することができるであろう。様々なpネットを用いた実践により、設定選択の手順は単純であり、多大な時間を要しないことが示された。
図23に示される、方法200の一部としてのpネット100の実際のトレーニングは、入力画像信号I1、I2…Imをネットワーク入力デバイス102へ供給することから開始する。入力画像信号はネットワーク入力デバイス102からシナプス118へ伝送され、シナプス重み108を通過し、分配器(または分配器のグループ)114に入る。入力信号値に基づいて、分配器114は、所与の入力信号104が対応する間隔「d」の番号を設定し、それぞれの入力102と接続された全てのシナプス118の重み修正ブロック110の全ての修正重み112のための修正重み影響係数Сi,d,nを割り当てる。例えば、間隔「d」が第1の入力のために3に設定され得る場合には、全ての重みW1,3,nのために、С1,3,n=1は1に設定され、その一方で、i≠1およびd≠3を有する全ての他の重みのためには、Сi,d,nは0(0)に設定されてもよい。
以下の関係において「n」として識別されるニューロン116ごとに、特定のニューロンに寄与する全てのシナプス118について、以下の関係においてWi,d,nとして識別される各修正重み112に、対応する修正重み影響係数Сi,d,nを乗算し、得られた全ての値を加算することによって、ニューロン出力和Σ1、Σ2…Σnが形成される。
Σn=Σi,d,nWi,d,n×Сi,d,n [2]
Wi,d,n×Сi,d,nの乗算は、様々なデバイスによって、例えば、分配器114、記憶された重みを有するデバイスによって遂行されるか、またはニューロン116によって直接遂行され得る。和はニューロン出力117を介して重み修正計算器122へ転送される。所望の出力画像126を記述する所望の出力信号O1、O2…Onもまた、計算器122へ供給される。
上述されたように、重み修正計算器122は、ニューロン出力和Σ1、Σ2…Σnと所望の出力信号O1、O2…Onとの比較によって修正重みのための変更された値を算出するための計算デバイスである。図11は、対応する修正重み影響係数Ci,d,1を乗算される、ニューロン出力和Σ1に寄与する、修正重みWi,d,1のセットを示し、これらの積が、その後、ニューロン出力和Σ1によって加算される。
Σ1=W1,0,1×C1,0,1.+W1,1,1×C1,1,1.+W1,2,1×C1,2,1.+… [3]
トレーニングが開始する際には、すなわち、第1のエポックの間は、修正重みWi,d,1は、トレーニングのために用いられる入力画像106に対応せず、それゆえ、ニューロン出力和Σ1は、対応する所望の出力画像126と等しくない。初期修正重みWi,d,1に基づいて、重み修正システムは、ニューロン出力和Σ1(Wi,d,1)に寄与する全ての修正重みを変更するために用いられる、修正値Δ1を算出する。pネット100は、指定のニューロン116に寄与する全ての修正重みWi,d,nのための集団的修正信号をpネット100が形成して利用するための様々な選択肢または変形例を可能にする。
以下に、集団的修正信号の形成および利用のための2つの例示的な非限定的変形例を示す。変形例1-以下のとおりの、所望の出力信号と得られた出力和との差に基づく修正信号の形成および利用:
・ 次式による、ニューロン「n」に寄与する全ての修正重みのための等しい修正値Δnの算出:
Δn=(On-Σn)/S [4]、
ここで
On - ニューロン出力和Σnに対応する望ましい出力信号、
S - ニューロン「n」に接続されたシナプスの数。
・ 次式による、ニューロン「n」に寄与する全ての修正重みWi,d,nの変更:
Wi,d,n modified=Wi,d,n+Δn/Ci,d,n [5]
変形例2 - 以下のとおりの、所望の出力信号対得られた出力和の比に基づく修正信号の形成および利用:
・ 次式による、ニューロン「n」に寄与する全ての修正重みのための等しい修正値Δnの算出:
Δn=On/Σn [6]、
・ 次式による、ニューロン「n」に寄与する全ての修正重みWi,d,nの変更:
Wi,d,n, modified=Wi,d,n,×Δn [7]、
いずれの利用可能な変形例による修正重みWi,d,nの変更も、各ニューロンの出力和Σnを所望の出力信号の値に収束することによって、各ニューロン116についてのトレーニング誤差を低減することが意図される。このような仕方で、所与の画像についてのトレーニング誤差は、それが0と等しくなるか、または0に接近するまで、低減され得る。
図11に、トレーニングの間における修正重みWi,d,nの変更の一例が示される。修正重みWi,d,nの値は、トレーニングが開始する前に、重み値が修正重み範囲から0±10%に設定されたランダム重み分布の形で設定され、トレーニング後に最終重み分布に到達する。集団的信号の説明された算出はpネット100内の全てのニューロン116について実施される。1つのトレーニング画像のための説明されたトレーニング手順を全ての他のトレーニング画像のために繰り返すことができる。一部の修正重みWi,d,nはいくつかの画像に関与し得るため、このような手順は、以前にトレーニングされた画像の一部に対してトレーニング誤差の出現を生じさせ得る。したがって、別の画像を用いたトレーニングは、以前の画像のために形成された修正重みWi,d,nの分布を部分的に乱し得る。しかし、各シナプス118が修正重みWi,d,nのセットを含むという事実のゆえに、新たな画像を用いたトレーニングは、場合によってはトレーニング誤差を増大させつつも、pネット100が以前にトレーニングされた画像を抹消しない。さらに、シナプス118が各ニューロン116に大きく寄与するほど、および各シナプスにおける修正重みWi,d,nの数が多いほど、特定の画像のためのトレーニングが他の画像のためのトレーニングに与える影響は小さい。
各トレーニングエポックは概して、全てのトレーニング画像についての総合トレーニング誤差および/または局所トレーニング誤差の実質的な収束をもって終了する。誤差は、例えば、平均二乗誤差(Mean Squared Error、MSE)、平均絶対誤差(Mean Absolute Error、MAE)、または標準誤差平均(Standard Error Mean、SEM)などの、既知の統計的方法を用いて評価され得る。総合誤差、または局所誤差の一部が高すぎる場合には、誤差が所定の誤差値未満に低減されるまで追加のトレーニングエポックが実施されてもよい。トレーニングのために用いられる異なる画像の間の類似率を規定することによる、上述された画像認識プロセス(図8に示される)は、それ自体では、以前に規定されたカテゴリに沿った画像の分類プロセスである。
クラスタ化、すなわち、画像を、以前に特定されなかった自然クラスまたはグループに分割するために、方法200の基本トレーニングアルゴリズムは、変更された自己組織化マップ(Self-Organizing Map、SOM)のアプローチを用いて変更することができる。所与の入力画像に対応する所望の出力画像126は、出力ニューロン和120の最大値を有する勝者ニューロンのセットに基づいてpネット100をトレーニングするプロセスにおいて直接形成されてもよい。図22は、方法200の基本アルゴリズムの使用がどのように出力ニューロン和の1次セットを生成し得るのかを示す。この場合、セットは、いくつかのより大きな和はそれらの値を保持するか、または増大し、その一方で、他の全ての和は0と等しいと見なされるように、さらに変換される。出力ニューロン和のこの変換されたセットが所望の出力画像126として受け入れられ得る。
上述されたように形成され、所望の出力画像126のセットはクラスタまたはグループを含む。それゆえ、所望の出力画像126のセットは、線形分離不可能な画像のクラスタ化を可能にする。これは古典的なネットワーク10とは異なる。図13は、説明されているアプローチが複雑な仮想画像「猫車」のクラスタ化をどのように支援し得るのかを示す。この場合、画像の異なる特徴は、異なるクラスタ - 猫および車に割り当てられる。説明されたように作成された所望の出力画像126のセットは、例えば、クラスタ化の結果として形成された基準に基づく、異なる分類の作成、統計的解析、画像選択のために用いられ得る。また、pネット100によって生成された所望の出力画像126は、同様に問題のpネット100のために説明された方針に従って形成され得る、別の、または追加のpネットのための入力画像として用いられ得る。かように形成され、所望の出力画像126は多層pネットの後続の層のために用いられ得る。
古典的なニューラルネットワーク10のトレーニングは、概して、入力画像および所望の出力画像の予備的に準備されたペアに基づく教師付きトレーニング方法を通して提供される。同じ一般的方法がpネット100のトレーニングのためにも用いられるが、pネット100のトレーニング速度の増大は、外部トレーナーによるトレーニングも可能にする。外部トレーナーの役割は、例えば、人によって、またはコンピュータプログラムによって遂行され得る。外部トレーナーの役を務めるとき、人は物理的な作業の遂行に関与するか、またはゲーム環境内で動作し得る。pネット100は、特定の状況およびそれに対する変更に関するデータの形態の入力信号を受信する。トレーナーのアクションを反映する信号は所望の出力画像126として導入され、pネット100が基本アルゴリズムに従ってトレーニングされることを可能にし得る。このような仕方で、様々なプロセスのモデル化がpネット100によってリアルタイムに生成され得る。
例えば、pネット100は、道路条件およびドライバーのアクションに関する情報を受信することによって自動車を運転するようにトレーニングされ得る。多種多様の危機的状況のモデル化を通して、同じpネット100は、多くの異なるドライバーによってトレーニングされ、誰か一人のドライバーによって一般的に可能であるよりも多くの運転技術を蓄積し得る。pネット100は、特定の道路条件を0.1秒で、またはより高速に評価し、種々の状況における交通の安全性を高め得る実質的な「運転経験」を積む能力を有する。pネット100はまた、コンピュータ、例えば、チェスプレイマシンと協動するようにトレーニングされ得る。トレーニングモードから認識モードへ、およびその逆に容易に移行するpネット100の能力は、pネット100が外部トレーナーによってトレーニングされる際に、「失敗からの学習」モードの実現を可能にする。このような場合には、部分的にトレーニングされたpネット100は、例えば、技術的プロセスを制御するための、独自のアクションを生成し得る。トレーナーはpネット100のアクションを制御し、必要なときにはそれらのアクションを修正することができるであろう。かくして、pネット100の追加的トレーニングをもたらすことができるであろう。
pネット100の情報容量は非常に大きいが、無制限ではない。pネット100の入力、出力、および間隔の数などの、設定された寸法を所与とした上で、pネットがトレーニングされる画像の数の増大がすると、一定数の画像の後には、トレーニング誤差の数および大きさも増大し得る。pネットは、トレーニングエポックの合間に、pネットにわたって、またはその構成要素において、ニューロン116の数、および/または信号間隔「d」の数を増大させることを可能にするため、誤差生成のこのような増大が検出されると、pネット100のサイズを増大させることによって、誤差の数および/または大きさを低減することができる。pネット100の拡大は、新たなニューロン116を追加すること、新たな入力102およびシナプス118を追加すること、修正重み影響係数Ci,d,nの分布を変更すること、ならびに既存の間隔「d」を分割することによってもたらされ得る。
ほとんどの場合、pネット100は、画像、パターン、および画像もしくは画像のセットに固有の相関を認識するその能力を確実にするためにトレーニングされることになる。最も単純な場合における認識プロセスは、方法200の一部として開示される基本アルゴリズムに従ってトレーニングプロセスの最初のステップを繰り返す。具体的には、
・ トレーニング用画像をフォーマットするために用いられる同じルールに従う画像のフォーマッティングから、直接認識が開始する、
・ 画像が、トレーニングされたpネット100の入力へ送信され、分配器が、トレーニングの間に設定された入力信号の値に対応する修正重みWi,d,nを割り当て、ニューロンが、図8に示されるように、それぞれのニューロン和を生成する、
・ 出力画像126を表す得られた出力和が、pネット100がトレーニングされた画像のうちの1つに完全に適合する場合には、物体はぴったりと認識されたことになる、
・ 出力画像126が、pネット100がトレーニングされたいくつかの画像に部分的に適合する場合には、結果は、異なる画像との一致率を百分率として示す。図13は、猫および自動車の画像の組み合わせに基づいて作成された複雑な画像の認識の間に、出力画像126が所与の画像の組み合わせを表現し、組み合わせへの各初期画像の寄与の百分率を指示する様子を具体的に示している。
例えば、特定の人物のいくつかのピクチャがトレーニングのために用いられた場合には、認識された画像は、第1のピクチャに90%、第2のピクチャに60%、および第3のピクチャに35%対応し得る。認識された画像が、いくらかの確率で、他の人物、またはさらに、動物のピクチャに対応するということがあり得る。これは、ピクチャの間にいくらかの類似性が存在することを意味する。しかし、このような類似性の確率は大抵、より低い。このような確率に基づいて、認識の信頼性が、例えば、ベイズの定理に基づいて、決定され得る。
pネット100を用いると、アルゴリズム的認識方法およびニューラルネットワーク認識方法の利点を組み合わせる多段階認識を実施することも可能である。このような多段階認識は以下のことを含み得る。
・ 本明細書において「基本入力」と指定される、入力の、全てではなく、1%~10%のみを用いることを通して事前にトレーニングされたネットワークによる画像の初期認識。入力のこのような部分は、一様に、ランダムに、または任意の他の分布関数によってpネット100内に分布し得る。例えば、複数の他の物体を含む写真内の人物の認識、
・ 最も情報の多い物体、または物体の部分をさらに詳細な認識のために選択すること。このような選択は、アルゴリズム的方法の場合のように、メモリ内に事前に設定された特定の物体の構造に従って、あるいは画像の色の勾配、明るさ、および/または奥行に従ってもたらされ得る。例えば、肖像の認識では、以下の認識ゾーン、目、口角、鼻の形状を選択することができ、また、入れ墨、自動車プレート番号、または家屋番号などの、何らかの特定の特徴を選択し、同様のアプローチを用いて認識することができる、ならびに
・ 必要に応じて、選択された画像の詳細な認識も可能である。
pネット100のコンピュータエミュレーションの形成およびそのトレーニングは、任意のプログラミング言語を用いることによって上述の説明の基づいてもたらされ得る。例えば、オブジェクト指向プログラミングを用いることができ、この場合、シナプス重み108、修正重み112、分配器114、およびニューロン116はプログラミングオブジェクトまたはオブジェクトのクラスを表し、リンクまたはメッセージを介してオブジェクトクラスの間の関係が確立され、オブジェクトの間およびオブジェクトクラスの間の相互作用のアルゴリズムが設定される。
pネット100のソフトウェアエミュレーションの形成およびトレーニングは以下のことを含み得る。
1.pネット100の形成およびトレーニングの準備、具体的には、
・ 所与のタスクに従う、トレーニング入力画像のセットの、デジタル形式への変換、
・ トレーニングのために用いられるべき入力信号のパラメータ、例えば、周波数、大きさ、位相、または座標の選択を含む、得られたデジタル画像の解析、ならびに
・ トレーニング信号の範囲、問題の範囲内の間隔の数、および修正重み影響係数Сi,d,nの分布の設定。
2.以下のことを含む、pネットのソフトウェアエミュレーションの形成。
・ pネット100への入力のセットの形成。例えば、入力の数はトレーニング入力画像内の信号の数と等しくてもよい、
・ ニューロンのセットの形成。ここで、各ニューロンは加算デバイスを表す、
・ シナプス重みを有するシナプスのセットの形成。ここで、各シナプスは1つのpネット入力および1つのニューロンに接続されている、
・ 各シナプスにおける重み修正ブロックの形成。ここで、重み修正ブロックは分配器および修正重みを含み、各修正重みは以下の特性を有する。
〇 修正重み入力インデックス(i)、
〇 修正重みニューロンインデックス(n)、
〇 修正重み間隔インデックス(d)、および
〇 修正重み初期値(Wi,d,n)。
・ 間隔と修正重みとの相関の指定。
3.以下のことを含む、1つの入力画像を用いた各ニューロンのトレーニング。
・ 以下のことを含む、修正重み影響係数Сi,d,nの指定。
○ 各入力によって受信されたトレーニング入力画像の入力信号に対応する間隔の決定、および
○ 全てのシナプスのための全ての修正重みに対する修正重み影響係数Сi,d,nの大きさの指定。
・ ニューロンに寄与する全てのシナプス重みの修正重み値Wi,d,nに、対応する修正重み影響係数Сi,d,nを乗算したものを加算することによる、ニューロン「n」ごとのニューロン出力和(Σn)の算出。
Σn=Σi,d,nWi,d,n×Ci,d,n
・ ニューロン出力和Σnの、対応する所望の出力信号Onからの減算を介した逸脱またはトレーニング誤差(Tn)の算出。
Tn=On-Σn、
・ トレーニング誤差を、ニューロン「n」に接続されたシナプスの数「S」で除算することを介したニューロン「n」に寄与する全ての修正重みのための等しい修正値(Δn)の算出。
Δn=Tn/S
・ 各修正重みに、対応する修正重み影響係数Ci,d,nで除算した修正値Δnを加算することによる、それぞれのニューロンに寄与する全ての修正重みWi,d,nの変更。
Wi,d,n modified=Wi,n,d+Δn/Ci,d,n。
ニューロン「n」に寄与する全ての修正重みについて、等しい修正値(Δn)を算出し、修正重みWi,d,nを変更する別の方法は、以下のことを含み得る。
・ 所望の出力画像の信号Onをニューロン出力和Σnで除算すること。
Δn=On/Σn
・ 修正重みに修正値Δnを乗算することによる、ニューロンに寄与する修正重みWi,n,dの変更。
Wi,d,n modified=Wi,d,n×Δn
4.以下のことを含む、全てのトレーニング画像を用いたpネット100のトレーニング。
・ 1つのトレーニングエポック内に含まれる全ての選択されたトレーニング画像にわたって上述されたプロセスの繰り返すこと、および
・ 特定のトレーニングエポックの誤差もしくは誤差群を決定し、それらの誤差を所定の許容誤差レベルと比較し、トレーニング誤差が所定の許容誤差レベル未満になるまでトレーニングエポックを繰り返すこと。
オブジェクト指向プログラミングを用いるpネット100のソフトウェアエミュレーションの実際の例が以下において説明され、図14~図21に示される。
NeuronUnitオブジェクトクラスの形成は以下のものの形成を含み得る。
・ シナプスクラスのオブジェクトのセット、
・ トレーニングの間に加算が遂行される、変数を提示するニューロン116、および
・ 所望のニューロン和120の値が記憶され、トレーニングプロセスの間に修正値Δnの算出が遂行される、変数を提示する計算器122。
pネット100のトレーニングを行うクラスNeuronUnitは、以下のことを含み得る。
・ ニューロン和120の形成、
・ 所望の和の設定、
・ 修正値Δnの算出、および
・ 修正重みWi,n,dへの算出された修正値Δnの加算。
オブジェクトクラスSynapseの形成は以下のものを含み得る。
・ 修正重みWi,n,dのセット、および
・ シナプス118に接続された入力を指示するポインタ。
クラスSynapseは以下の機能を遂行し得る。
・ 修正重みWi,n,dの初期化、
・ 重みWi,n,dへの係数Сi,d,nの乗算、および
・ 重みWi,n,dの修正。
オブジェクトクラスInputSignalの形成は以下のものを含み得る。
・ 所与の入力102に接続されたシナプス118上のインデックスのセット、
・ 入力信号104の値を含む変数、
・ 可能な最小および最大入力信号の値、
・ 間隔「d」の数、および
・ 間隔の長さ。
クラスInputSignalは以下の機能を提供し得る。
・ 以下のことを含む、pネット100の構造の形成。
〇 入力102とシナプス118との間のリンクの追加および削除、ならびに
〇 特定の入力102のシナプス118のための間隔「d」の数の設定。
・ 最小および最大入力信号104のパラメータの設定、
・ pネット100の動作への寄与。
〇 入力信号104の設定、および
〇 修正重み影響係数Сi,d,nの設定。
オブジェクトクラスPNetの形成は以下のオブジェクトクラスのセットを含む。
・ NeuronUnit、および
・ InputSignal。
クラスPNetは以下の機能を提供する。
・ InputSignalクラスのオブジェクトの数の設定、
・ NeuronUnitクラスのオブジェクトの数の設定、ならびに
・ オブジェクトNeuronUnitおよびInputSignalの機能のグループ要求。
トレーニングプロセスの間に、サイクルを形成することができ、
・ サイクルが開始する前に、0と等しいニューロン出力和が形成される、
・ 所与のNeuronUnitに寄与する全てのシナプスが見直される。シナプス118ごとに、
○ 入力信号102に基づいて、分配器が修正重み影響係数Сi,d,nのセットを形成する、
○ 前記シナプス118の全ての重みWi,n,dが見直され、重みごとに、
■ 重みWi,n,dの値に、対応する修正重み影響係数Сi,d,nが乗算される、
■ 乗算の結果が形成中のニューロン出力和に加算される、
・ 修正値Δnが算出される、
・ 修正値Δnが修正重み影響係数Сi,d,nで除算される、すなわち、Δn/Сi,d,n、および
・ 所与のNeuronUnitに寄与する全てのシナプス118が見直される。シナプス118ごとに、問題のシナプスの全ての重みWi,n,dが見直され、重みごとに、その値が、対応する修正値Δnに変更される。
pネット100の追加のトレーニングの上述された可能性は、トレーニングプロセスが高速化され、その精度が改善されることを可能にする、トレーニングと画像の認識との組み合わせを可能にする。互いに若干異なるフィルムの連続フレームを使ってトレーニングするなど、順次変化する画像のセットを使ってpネット100をトレーニングする際には、追加のトレーニングは以下のことを含み得る。
・ 第1の画像を用いたトレーニング、
・ 次の画像の認識、および新たな画像と、ネットワークが最初にトレーニングされた画像との間の類似率の特定。認識誤差がその所定の値未満である場合には、追加のトレーニングは必要ない、ならびに
・ 認識誤差が所定の値を超える場合には、追加のトレーニングが行われる。
上述の基本トレーニングアルゴリズムによるpネット100のトレーニングは、画像認識の問題を解決するために有効であるが、重複する画像に起因するデータの損失または破損を排除しない。したがって、記憶目的のためのpネット100の使用は、可能ではあっても、完全に信頼できるものにはなり得ない。本実施形態は、情報の損失または破損に対する保護をもたらすpネット100のトレーニングを説明する。いずれの修正重みWi,n,dも1度だけトレーニングされ得ることを必要とする追加の制限が基本ネットワークトレーニングアルゴリズム内に導入されてもよい。最初のトレーニングサイクルの後に、重みWi,n,dの値は、固定状態または一定にとどまる。これは、トレーニングプロセスの間における問題の修正重みWi,n,dへのアクセスの数を表す上述のインデックスである、修正重みごとの追加のアクセスインデックス「a」を入れることによって達成され得る。
上述されたように、各修正重みはWi,n,d,aの名称を呈してもよい。ここで、「a」はトレーニングプロセスの間における問題の重みへのアクセスの数である。最も単純な場合には、変更されていない、すなわち、固定されていない重みについては、a=0であり、その一方で、上述の基本アルゴリズムによって変更または修正された重みについては、a=1である。さらに、基本アルゴリズムを適用する間に、固定された値a=1を有する修正重みWi,n,d,aは、修正がなされる重みから除外され得る。このような場合には、式[5]、[6]、および[7]は以下のように変形され得る。
上述の制限は、以前にトレーニングされた修正重みWi,n,d,aの修正に部分的に適用され得るが、最も重要な画像を形成する重みに対してのみ適用され得る。例えば、単一の人物の肖像のセットを使ったトレーニング内において、1つの特定の画像がプライマリと宣言され、優先権を付与され得る。このような優先画像を使ったトレーニング後に、トレーニングのプロセスにおいて変更された全ての修正重みWi,n,d,aは固定されてもよく、すなわち、インデックスa=1となり、それゆえ、重みをWi,n,d,1として指定し、同じ人物の他の画像は変更可能な状態にとどまってもよい。このような優先権は、他の画像、例えば、暗号化キーとして用いられ、および/または重要な数値データを包含するものを含み得る。
修正重みWi,n,d,aの変化はまた、完全に禁止されるのではなく、インデックス「a」の増加に対して制限されてもよい。すなわち、重みWi,n,d,aの各々のその後の使用は、その変化能力を低減するために用いられてもよい。特定の修正重みWi,n,d,aが頻繁に用いられるほど、アクセスごとの重みの変化は小さくなり、それゆえ、後続の画像を使ったトレーニングの間には、以前の、記憶された画像は変更が少なくなり、被る破損が低減される。例えば、a=0である場合には、重みWi,n,d,aの任意の変化が可能であり、a=1であるときには、重みの変化の可能性は重みの値の±50%に減少させられてもよく、a=2の場合には、変化の可能性は重みの値の±25%に低減されてもよい。
インデックス「a」によって示されるとおりの、所定のアクセス数に達した後には、例えば、a=5であるときには、重みWi,n,d,aのさらなる変化は禁止されてもよい。このようなアプローチは、単一のpネット100内における高い知能と情報安全性との組み合わせをもたらし得る。ネットワーク誤差算出機構を用いて、所定の精度範囲内の損失を有する情報が保存され得るように許容誤差のレベルを設定することができる。ここで、精度範囲は特定のタスクに応じて付与され得る。換言すれば、視覚画像を用いて動作するpネット100に対しては、誤差は、裸眼によって捉えることができないレベルに設定されてもよく、これにより、大幅な記憶容量の増大「の因子」がもたらされるであろう。上述のことは、視覚情報、例えば、映画の非常に有効な記憶の生成を可能にすることができる。
コンピュータメモリを選択的にクリーニングする能力は、pネット100の継続した高レベルの機能のために有益であり得る。メモリのこのような選択的クリーニングは、記憶された情報の残りの部分の損失または破損を伴うことなく、特定の画像を削除することによって行われ得る。このようなクリーニングは以下のようにもたらされ得る。
・ 例えば、画像をネットワークに導入すること、または画像ごとに用いられる修正重みのリストをまとめることによる、画像形成に関与する全ての修正重みWi,n,d,aの識別、
・ それぞれの修正重みWi,n,d,aのためのインデックス「a」の低減、ならびに
・ 修正重みWi,n,d,aを、0、またはインデックス「a」が0に低減されたときに問題の重みについてあり得る値の範囲の中央に近いランダム値のいずれかと置換すること。
画像のシーケンス内に隠れた強いパターンを識別するために、インデックス「a」の低減の適切な順序および継起を実験的に選択することができる。例えば、トレーニングの間に100個の画像がpネット100内に導入されるごとに、インデックス「a」は、「a」が0の値に達するまで、1のカウントだけ低減されてもよい。このような場合において、「a」の値は新たな画像の導入に対応して増加してもよい。「a」の増加と低減との間の競合は、ランダムな変化がメモリから徐々に削除され、その一方で、何度も用いられ、確認された修正重みWi,n,d,aは保存され得る状況をもたらし得る。pネット100が、例えば、同じ問題の環境または同様の環境の、同様の属性を有する多数の画像を使ってトレーニングされると、しばしば用いられる修正重みWi,n,d,aはそれらの値を絶えず確認し、これらの領域内の情報は非常に安定する。さらに、ランダムノイズが徐々に消えることになる。換言すれば、pネット100は、インデックス「a」の漸減とともに、有効なノイズフィルタの役割を果たし得る。
情報の損失を伴わないpネット100のトレーニングの上述の実施形態は、高い容量および信頼性を有するpネットメモリを作成することを可能にする。このようなメモリは、「キャッシュメモリ」システムよりさえも大きな速度をもたらす大容量の高速コンピュータメモリとして用いられ得るが、「キャッシュメモリ」システムに典型的であるように、コンピュータのコストおよび複雑さを増大させることはない。公開データによれば、概して、ニューラルネットワークを用いて映画を記録している間に、メモリは、記録品質の大きな損失を伴うことなく、数十または数百倍圧縮され得る。換言すれば、ニューラルネットワークは、非常に効果的なアーカイブプログラムとして動作することができる。ニューラルネットワークのこの能力をpネット100の高速トレーニング能力と組み合わせることで、高速データ伝送システム、高い記憶容量を有するメモリ、および高速解読プログラムマルチメディアファイル、すなわち、コーデックスの作成が可能になり得る。
pネット100内において、データは、一種の符号記録である、修正重みWi,n,d,aのセットとして記憶されるという事実のゆえに、既存の方法を介した、および同一のネットワークを使用しない、復号またはpネットへの不正アクセスは考えにくい。それゆえ、pネット100は相当な程度のデータ保護をもたらし得る。また、従来のコンピュータメモリと異なり、pネット100の個々の記憶要素への損傷は、他の要素が失われた機能を相当に補償するため、あまり悪影響を与えない。画像認識プロセスにおいて、1つ以上の要素の損傷の結果、用いられている画像の固有パターンは実用上ゆがめられない。上述のことは、コンピュータの信頼性を劇的に改善し、通常の条件下では欠陥と見なされるであろう、特定のメモリブロックを用いることを可能にし得る。加えて、この種のメモリは、pネット100内の重要なバイトのためのパーマネントアドレスが存在しないため、ハッカーの攻撃に対する脆弱性がより低く、メモリは種々のコンピュータウィルスによるこのようなシステムの攻撃を受けにくくなる。
トレーニングにおいて用いられる異なる画像の間の類似率の決定を用いる画像認識の上述されたプロセスは、上述されたとおりの、以前に規定されたカテゴリに従う画像分類のプロセスとしても利用され得る。事前に規定されていない自然クラスまたはグループへの画像の分割である、クラスタ化のために、基本トレーニングプロセスを変更することができる。本実施形態は以下のことを含み得る。
・ 準備された出力画像を含まない、トレーニング用入力画像のセットの準備、
・ 基本アルゴリズムに従って行われるとおりの、ニューロン出力和の形成を用いたネットワークの形成およびトレーニング、
・ 得られた出力画像内における、最大出力和を有する出力、すなわち、勝者出力、またはコホーネンネットワークと同様に編成され得る、勝者出力のグループの選択、
・ 勝者出力または勝者出力のグループが最大値を受ける、所望の出力画像の作成。同時に、
○ 選択される勝者出力の数は、例えば、1~10の範囲内で、事前に決められてもよく、または勝者出力は、ルール「最大ニューロン和のN%以上」に従って選択されてもよく、「N」は、例えば、90~100%以内であり得、
○ 他の全ての出力は0と等しく設定されてもよい。
・ 作成された所望の出力画像を用いることによる基本アルゴリズムに従うトレーニング、図13、ならびに
・ 異なる勝者または勝者グループの画像ごとの形成を用いて他の画像について全ての手順を繰り返す。
上述の仕方で形成された所望の出力画像のセットは、複数の入力画像が自然に分離し得るクラスタまたはグループを記述するために用いられ得る。所望の出力画像のこのようなセットは、確立された基準に従った、統計的解析における画像の選択などのための、異なる分類を作り出すために用いられ得る。上述のことはまた、入力画像と出力画像との上述の逆転のために用いられてもよい。換言すれば、所望の出力画像が、別の、すなわち、追加のネットワークのための入力画像として用いられてもよく、追加のネットワークの出力が、コンピュータ入力のために適した任意の形式で提示される画像であってもよい。
pネット100では、上述のアルゴリズムを用いたトレーニングの単一のサイクルの後に、所望の出力画像は、若干の出力和のばらつきを伴って生成され得る。これは、トレーニングプロセスの速度を低下させる場合があり、また、その精度も低下させる場合がある。pネット100のトレーニングを改善するために、点の大きさのばらつきが、可能な出力値の全範囲、例えば、図21に示されるように、-50~+50を包括するであろうように、点の初期ばらつきが人為的に増大または拡張されてもよい。点の初期ばらつきのこのような拡張は線形または非線形のいずれかであり得る。
特定の出力の最大値が外れ値または誤り、例えば、ノイズの発現である状況が生じ得る。これは、多数の小さな信号によって包囲された最大値の出現によって発現され得る。勝者出力が選択される際に、小さな信号値は、他の大きな信号によって包囲された最も大きな信号勝者としての選択を通して無視することができる。この目的のために、重要度サンプリングなどの、分散低減の既知の統計的技法が用いられ得る。このようなアプローチは、基本的な有用なパターンを維持しつつ、ノイズを除去することを可能にし得る。勝者グループの作成は、図13に示されるように、線形分離不可能な画像、すなわち、1つを超えるクラスタに関連する画像のクラスタ化を可能にする。上述のことは、精度の著しい改善をもたらし、クラスタ化の誤差の数を減少させ得る。
pネット100のトレーニングのプロセスにおいて、修正を受ける典型的な誤差は以下のものである。
外部トレーナーを用いたトレーニングにおける上述のアルゴリズムの助けを借りた誤差修正も可能である。
pネット100のハードウェア部分は、デジタル、アナログ、または複合デジタル-アナログマイクロチップの形で提供され得る。代表的なpネット100のマイクロチップが情報の記憶および処理の両方のために利用され得る。pネット100のマイクロチップは、様々な可変抵抗器、電界効果トランジスタ、メモリスタ、キャパシタ、スイッチング素子、電圧発生器、非線形光電池などに基づき得る。可変抵抗器は、シナプス重み108および/または修正重み112として用いられ得る。複数のこのような抵抗器が並列、直列、または直並列に接続され得る。それぞれの抵抗器の並列接続の場合には、信号を電流値によって符号化することができ、その結果、電流の自動アナログ合計が容易になり得る。正または負の信号を得るために、興奮性および抑制性の、抵抗器の2つのセットが各シナプス上に提供され得る。このようなハードウェア構造では、抑制性信号は興奮性信号から減算され得る。
各修正重み112は、メモリスタ様のデバイス(メモリスタ)として実装され得る。当業者によって理解されるように、メモリスタは、回路内の電流によって、または電位もしくは電荷によって制御される抵抗を有する可変抵抗器である。適切なメモリスタ機能性は、実際のメモリスタデバイス、そのソフトウェアまたは物理エミュレーションを介して達成され得る。低電圧電位におけるpネット100の動作時には、メモリスタは単純な抵抗器として動作し得る。トレーニングモードの間に、メモリスタの抵抗は、例えば、強い電圧パルスによって、変更され得る。メモリスタの値の変化がいかようであるか(抵抗の増大か、それとも減少か)は電圧の極性に依存し得、その一方で、値の変化の大きさは電圧パルスの大きさに依存し得る。
図24は、後述されることになる特定の要素を有すること以外、上述されたpネット100とあらゆる点で同様である、pネット100Aと標識されたpネット100の一実施形態を示す。pネット100Aでは、各修正重み112は、特定の修正重みのそれぞれの重み値を保持するメモリ要素150によって確立される。pネット100Aでは、重み修正計算器122は、対応するメモリ要素150によって確立された修正重み112のそれぞれの修正重み値を変更するように構成され得る。pネット100Aの他の実施形態と一貫して、修正重み112は、決定された逸脱128を用いて、対応するメモリ要素150内で確立される。図25に示されるpネット100Aの動作の間に、全てのニューロン116の各々のそれぞれの出力117はそれぞれのニューロン和120を提供し、pネット100Aの動作出力信号152を確立する。動作出力信号152は信号値を有し、動作出力画像154の一部分または全体のいずれかを表す。
pネット100Aのトレーニングの間に、重み修正計算器122は、出力画像126の一部分または全体を表す所望の出力信号124を受信し、所望の出力信号124の値からのニューロン和120の逸脱128を決定し、決定された逸脱を用いて、対応するメモリ要素によって確立されたそれぞれの修正重み値を変更し得る。さらに、対応するメモリ要素150によって確立された修正重み112の変更された修正重み値を合算し、ニューロン和を決定することは、所望の出力信号値124からのニューロン和120の逸脱を最小化することになる。所望の出力信号値124からのニューロン和120の逸脱を最小化することを用いて、pネット100Aをトレーニングする。
図24において想像線で示されるように、開示されている任意の実施形態のトレーニングされたpネット100Aは、値を有する補足入力信号156のみを、対応する補足的な所望の出力信号158とともに用いて補足トレーニングを受けるように構成され得る。換言すれば、以前にトレーニングされたpネット100Aは、pネット100Aを最初にトレーニングするために利用された元の入力信号104および所望の出力信号124の一部または全てを保持されずに、補足トレーニングを受けることができる。pネット100A内の複数のシナプス118の各々は、それぞれのメモリ要素150によって確立された1つ以上の追加の修正重み112を受け入れるように構成され得る。このような追加の修正重み112は、pネット100Aのトレーニングの間、または補足トレーニングの前のいずれかにおいてシナプスに加算され得る。このような追加の修正重み112は、pネット100Aをトレーニングし、動作させるために利用可能なメモリ要素150の数を拡張するために用いられ得る。
pネット100Aはまた、pネット100Aのトレーニングの間または後のいずれかにおいて、それぞれのシナプス118から、それぞれのメモリ要素150によって確立された1つ以上の修正重み112を削除するように構成され得る。一部の修正重み112の削除は、ニューラルネットワークが、ニューラルネットワークを動作させるために必要とされる数のメモリ要素のみを保持することを可能にし得る。修正重み112を削除するこのような能力は、pネットをよりコンパクトにし、それゆえ、トレーニングおよびその後の動作のためにより有効にすることが意図される。pネット100Aはまた、pネットのトレーニングの前または間のいずれかにおいて、追加の入力102、追加のニューロン116を、それぞれの追加のニューロン出力117、および追加のシナプス118とともに受け入れ、これにより、pネットの動作パラメータを拡張するように構成され得る。pネット100Aへのこのような追加は、容量、出力精度、およびpネットによって処理され得るタスクの数などの、能力を高め得る。
pネット100Aは、さらに、pネットの初期トレーニングまたは補足トレーニングのいずれかの前、間、または後に、任意の数の使用されていない入力102、ニューロン116を、それぞれの追加のニューロン出力117、およびシナプス118とともに削除するように構成され得る。使用されていないpネット100Aの要素を削除するこのような能力は、pネットの出力品質の損失を伴うことなく、構造を単純化し、pネットの動作パラメータを変更する、すなわち、pネットを圧縮することが意図される。
図26に示されるように、各メモリ要素150は、抵抗、インピーダンス、静電容量、磁界、誘導、または電界強度などの、それぞれの修正重み112の重み値を規定するように構成された電気特性および/または磁気特性によって特徴付けられる電気構成要素またはデバイス160によって確立され得る。このような電気デバイス160は、例えば、メモリスタ(図26~図28に示される)、抵抗器(図29~図32に示される)、トランジスタ、キャパシタ(図29~図32に示される)、電界効果トランジスタ、フォトレジスタもしくは光依存抵抗器(LDR)、磁気依存抵抗器(MDR)、またはメミスタとして構成され得る。当業者によって理解されるように、メミスタは、論理演算を遂行し、情報を記憶することができるメモリを有する抵抗器であり、概して、メモリスタの3端子実装形態である。
メモリ要素150のこのような実施形態では、各電気デバイス160のそれぞれの電気特性および/または磁気特性は、pネット100Aのトレーニングの間に変更されるように構成され得る。加えて、メモリ要素150の電気デバイス160の実施形態を用いるpネット100Aでは、重み修正計算器122は、pネット100Aによって利用される対応するデバイスのそれぞれの電気特性および/または磁気特性を変更することによって、それぞれの修正重み112の値を変更し得る。各電気デバイス160はまた、上述されたように、pネット100Aのトレーニングの間に変更され、トレーニング後にpネットの動作の間に用いられるそれぞれの修正重み112の値に対応する電気特性および/または磁気特性を維持または保持するように構成され得る。
適切なメモリスタの特定の実施形態は、デバイスの既知の物理的表現、ならびにデバイスのソフトウェアもしくは電気回路の機能的表現もしくは同等物の両方であり得る。図26~図28は、このような物理メモリスタを利用する代表的なpネット100Aの諸実施形態を示す。図26に示されるように、各入力102は、アナログ入力信号104を受信するように構成されており、画像センサ、光感応要素またはマイクロフォンのアレイ、デジタル-アナログコンバータ等などの、外部ソースからの入力信号は、電圧V1、V2…Vmとして表されている。全ての入力信号104が組み合わさって、対応する入力画像106を全体的に記述する。
各メモリ要素150はまた、電気抵抗器164を有するブロック162によって確立され得る。電気抵抗器164を有するこのようなブロック162は選択デバイス166を含み得る。選択デバイス166は、上述されたように、所望の出力信号124の値からのニューロン和120の決定された逸脱128を用いてブロック162から1つ以上の電気抵抗器164を選択し、各修正重み112を確立するように構成されている。さらに、電気抵抗器164を有するブロック162によって確立される各メモリ要素150はまた、電気キャパシタ168も含み得る。換言すれば、各メモリ要素150は、電気抵抗器164および電気キャパシタ168を有するブロック162によって確立され得る。このような場合には、選択デバイス166は、さらに、決定された逸脱128を用いてキャパシタ168および電気抵抗器164を選択し、各修正重み112を確立するように構成され得る。
図24および25に示されるpネット100Aの実施形態の各々は、アナログ、デジタル、およびデジタル-アナログニューラルネットワークのいずれかとして構成され得る。pネット100Aのこのような実施形態では、複数の入力102、複数のシナプス118、メモリ要素150、分配器114のセット、ニューロン116のセット、重み修正計算器122、および所望の出力信号124のうちの任意のものは、アナログフォーマット、デジタルフォーマット、およびデジタル-アナログフォーマットで動作するように構成され得る。図26は、所望の出力信号124の値からのニューロン和120の逸脱128の決定をもって終結するトレーニングの第1段階におけるpネット100Aを示し、その一方で、図27は、トレーニングの第2段階におけるpネット100Aが、電気デバイス160によって確立された修正重み112のための修正信号170の形成をもって終結する様子を示す。図26に示されるように、各シナプス118は複数の入力102のうちの1つに接続されており、修正重み112として機能する、メモリスタとして示される、複数の電気デバイス160を含む。各修正重み112は電気抵抗の値によって規定される。
図26に示されるpネット100Aはまた、分配器114のセットを含む。各分配器114は、メモリスタとして構成された、電気デバイス160のセットを介してそれぞれの入力信号104を受信し、適切な修正重み112を確立するための複数の入力102のうちの1つに動作可能に接続されている。加えて、各分配器114は、入力電圧に相関して、利用可能な複数の修正重みからメモリスタによって具体化された1つ以上の修正重み112を選択するように構成されている。図28は、双対並列分岐状に配置されたメモリスタとして構成された電気デバイス160を用いるpネット100Aを示す。上述されたpネット100Aの構築のための他の解決策に関して、図29~図31は、pネット100Aにおける適切な抵抗を規定するための共通抵抗器として構成された電気デバイス160を示し、その一方で、図32は、pネット100Aにおけるインピーダンスを規定するように構成された電気デバイス160を示す。
アナログまたはアナログ-デジタルネットワークとして構成されたpネット100Aでは、各入力102は、アナログまたはデジタル入力信号104を受信するように構成されている。ここで、図24および図25において、入力信号はI1、I2…Imとして表されている。各入力信号I1、I2…Imは、入力画像106の何らかのアナログ特性、例えば、大きさ、周波数、位相、信号偏角などの値を表す。アナログpネット100Aでは、各入力信号104は入力アナログ値を有し、全体として、複数の入力信号104は概してアナログ入力画像106を記述する。アナログネットワークとして構成されたpネット100Aでは、各ニューロン116は、直列または並列のいずれかの通信チャネル172、例えば、電線、または直列もしくは並列バスによって確立され得る。通信チャネル172の代表的なバスの実施形態は、当業者によって理解されるように、並列接続およびビット直列接続の両方を用い得る。例えば、対応するアナログ信号が電流を介して提供される場合には、通信チャネル172は直列電流バスであってもよく、その一方で、対応するアナログ信号がそれぞれの修正重み112上の電位を介して提供される場合には、代表的な通信チャネルは並列バスであってもよい。
図26~図32には、修正重み112のアナログ実施形態が示されている。各アナログ修正重み112はメモリ要素150によって規定される。メモリ要素150は、特定の修正重みのそれぞれの重み値を保持し、メモリ要素150を通って流れる、(入力から出力への)順方向信号
もしくは(出力から入力への)逆方向信号
、または追加の制御信号に作用し、これらを変更する。さらに、各アナログ修正重み112は、pネット100Aの実際の動作の間、例えば、画像認識の間に、そのそれぞれの重み値を保持し得る。加えて、各アナログ修正重み112の値は、pネット100Aのトレーニングの間に、順方向信号
もしくは逆方向信号
、または追加の制御信号を介して変更され得る。その結果、pネット100Aのアナログ実施形態は、様々なコンピュータ適用のサポートを可能にするマイクロチップの生成を可能にし得る。さらに、pネット100A全体が、マイクロチップ、ビデオカード等などの、メモリを有する電子デバイス内にプログラムされてもよい。したがって、各メモリ要素150の適切な実施形態は、このとき、同じく問題の電子デバイスのメモリ内に記憶されることになる。
上述のことと一貫して、アナログpネット100A内の各電気デバイス160は、pネットのトレーニングの後にそれぞれの修正重み112の変更された値に対応する電気特性および/または磁気特性を再記憶するように構成され得る。重み修正計算器122は、所望の出力信号124の値からのニューロン和120の決定された逸脱128を表す1つ以上の修正信号を生成するように構成され得る。さらに、生成された修正信号の各々は、少なくとも1つの電気デバイス160の電気特性および/または磁気特性を変更するために用いられ得る。すなわち、変更されるデバイスごとに別個の修正信号が用いられる。重み修正計算器122はまた、各電気デバイス160の電気特性および/または磁気特性を変更するために用いられる単一の修正信号を生成するように構成され得る。すなわち、変更される全ての電気デバイスのために1つの修正信号が用いられ得る。
重み修正計算器122の特定の実施形態は、プログラムされたソフトウェアとしてpネット100A内に組み込まれるか、あるいは外部デバイスまたはアクセス可能なコンピュータプログラムを介して確立され得る。例えば、重み修正計算器122は差動増幅器174のセットとして確立され得る。本開示全体と一貫して、各々のこのような差動増幅器174は、所望の出力信号124の値からのニューロン和120の決定された逸脱128を表すそれぞれの修正信号を生成するように構成され得る。各電気デバイス160は、pネット100Aのトレーニングが完了された後にそれぞれの修正重み112の変更された値に対応する電気特性および/または磁気特性を維持するように構成され得る。pネット100Aはまた、pネットの動作の間に、すなわち、トレーニングが完了された後に、維持された電気特性および/または磁気特性を用いるように構成され得る。pネット100Aのこのような構造は、修正重み112の並列またはバッチトレーニングを容易にし、これにより、上述された古典的なニューラルネットワークと比べて、pネットをトレーニングするために必要とされる時間量の大幅な低減を可能にする。
pネット100A内の各分配器114は、単一の入力信号104を取り込み、単一の入力に接続された、複数のデータ出力線のうちの1つ以上を選択する、アナログデバイス、デジタルデバイス、またはアナログ-デジタルデバイスのいずれか、すなわち、デマルチプレクサ176として構成され得る。このようなデマルチプレクサ176は、受信された入力信号104に応じて複数の修正重みから1つ以上の修正重み112を選択するように構成され得る。各分配器114は、受信された入力信号104を2進符号に変換し、2進符号に相関して複数の修正重みから1つ以上の修正重み112を選択するように構成され得る。
図33は、ユーティリティニューラルネットワーク100B(図25に示される)を動作させる方法300を示す。方法300は、図2~図22および図24~32に関する上述の開示に従って動作する。方法300はフレーム302において開始する。フレーム302において、本方法は、ユーティリティニューラルネットワーク100Bを準備することを含む。フレーム302に続き、本方法はフレーム304へ進む。フレーム304において、本方法は、ユーティリティニューラルネットワーク100Bを介して、pネット100Aなどの、別個の類似ニューラルネットワークによってそのトレーニングの間に確立された修正重み112の変更された値を用いてデータを処理することを含む。類似pネット100Aのトレーニングは、図24を参照して上述されたように、補足トレーニングを含み得る。
ユーティリティニューラルネットワーク100Bおよびトレーニングされた別個のpネット100Aは、例えば、図25に表されるように、整合ニューラルネットワーク構造を有することによって、類似のものにすることができ、これにより、ユーティリティニューラルネットワーク100Bは、重み修正計算器122、およびユーティリティニューラルネットワークをトレーニングする対応する能力を排除し得る。したがって、整合ニューラルネットワーク構造は、同一の数の入力102、修正重み112、分配器114、ニューロン116、ニューロン出力117、およびシナプス118を含み得る。換言すれば、pネット100Aおよびユーティリティニューラルネットワーク100Bは、ネットワークの動作パラメータを確立する全ての特徴に関して実質的に同一であり得る。最も大きな機能的相違は、pネット100Aが、変更された修正重み112を確立することによって、トレーニングされることが可能である点である。類似pネット100Aおよびユーティリティニューラルネットワーク100Bの各々は、異なる構成、例えば、ハードウェアおよび/またはソフトウェアの様々な形態、ならびにアナログおよび/またはデジタルフォーマットで実装することができ、これにより、ユーティリティニューラルネットワークおよび類似pネットが異種の担体によって表されることが可能になる。このような場合には、変更された修正重み112を有するデータを変換または解釈するための翻訳機構(図示せず)が利用されてもよい。
ユーティリティニューラルネットワーク100Bおよびトレーニングされた別個のpネット100Aの各々において、各修正重み112はメモリ要素150によって確立され得る。具体的には、pネット100Aにおいて、メモリ要素150は、pネットのトレーニングの後に修正重み112に対応するそれぞれの変更された重み値を保持し得る。ユーティリティニューラルネットワーク100Bに提供される各入力画像106は、図2に関する説明と同じく、I1、I2…Imによって表される複合された入力信号104によって表され得る。図2に関して追加的に説明されたように、各入力信号I1、I2…Imは、対応する入力画像106の何らかの特性の値を表す。
フレーム304から、本方法はフレーム306へ進む。フレーム306において、本方法は、図25に関して説明されたように、変更された修正重み112を用いて動作出力信号152を確立することを含む。したがって、ユーティリティニューラルネットワーク100Bを介した入力画像106などの入力データの処理は、このようなデータの認識をもって、ユーティリティニューラルネットワークの動作出力信号152として締めくくられ得る。ユーティリティニューラルネットワーク100Bの動作出力信号152は、次に、本方法を完了するためのフレーム308の一部として、ユーティリティネットワーク自体、またはユーティリティネットワークのオペレータのいずれかによって、解釈または復号され得る。pネット100Aにおける変更された修正重み112の確立は、図23に関して説明されたように、pネット100をトレーニングする方法200に従って達成され得る。
図34および図35は、後述されることになる特定の要素を有すること以外、上述されたpネット100とあらゆる点で同様である、pネット100Bと標識されたpネット100の一実施形態を示す。さらに、図34および図35に示されるpネット100Bは、配列構造を用いて動作する、すなわち、選択された画像を用いて、他の画像のその後の認識のためにトレーニングされるように構成されている。用語「画像」は、本明細書において使用されるとき、処理のために受信されるか、またはニューラルネットワークによって生成される任意の種類の情報またはデータを示すことが意図される。図36において、トレーニングされたpネット100Bは符号100Cを介して指定される。pネット100Bがトレーニングされているときには、入力画像106はトレーニング画像として定義され、その一方で、トレーニングされたpネット100Cにおいては、入力画像106は、認識を受けることが意図される。トレーニング画像106は、複数の入力102によってトレーニング入力値配列107として受信されるか、またはpネット100Bのトレーニングの間に、すなわち、複数の入力によって受信された後に、トレーニング入力値配列107として体系化されるかのいずれかである。
他の実施形態と同様に、図34~図36に示されるpネット100Bおよびpネット100Cの各々はまた、シナプス118を含み、各シナプス118は複数の入力102のうちの1つに接続されており、複数の修正重み112を含み、また、シナプス重み108を含み得る。全てのシナプス118の修正重み112は、修正重み配列119Aとして、すなわち、修正重み配列119Aの形式で編成される。したがって、図34~図36において、修正重み配列119Aは破線の枠119A内の全ての修正重み112を含む。pネット100Bはまた、分配器114のセットを含み得る。このような実施形態では、各分配器114は、それぞれの入力信号104を受信するための複数の入力102のうちの1つに動作可能に接続されている。修正重み配列119Aを含むpネット100Bの実施形態はまた、ニューロンユニットの構成要素のうちのいくつかを保持しつつも、異なるニューロンユニット119が存在しないことによって特徴付けられ得る。
上述されたpネット100およびpネット100Aと類似して、pネット100Bは、さらに、ニューロン116のセットを含み、以下において詳細に説明されるアクションを実行するための手段となる。各ニューロン116はまた、少なくとも1つの出力117を有し、1つのシナプス118を介して複数の入力102のうちの少なくとも1つと接続されている。各ニューロン116は、同様に、それぞれのニューロン116に接続された各シナプス118から選択された修正重み112の値を合計し、これにより、Σnとして別記されるニューロン和配列120Aを生成して出力するように構成されている。本実施形態では、図34~図36に示されるように、所与の入力102のシナプス118ごとに別個の分配器114が同様に用いられてもよい。代替的に、全てのこのようなシナプスのために単一の分配器が用いられてもよい(図示されていない)。pネット100Bの形成またはセットアップの間に、全ての修正重み112は、図35に示されるように、pネットトレーニングのプロセスの間に変化し得る、初期値を割り当てられる。修正重み112の初期値は、ランダムに選択される、所定の数学関数の助けを借りて算出される、所定のテンプレートから選択されるなどし得る。修正重み112の初期値は修正重み112ごとに同一であるか、または異なり得、また、0であってもよい。
図34および図35に示されるように、pネット100Bはまた、pネット100Bのトレーニングを統制するように構成されたコントローラ122Aを含み、それゆえ、以下において詳細に説明されるアクションを実行するための手段となる。コントローラ122Aは、他の実施形態に関して上述された重み修正計算器122を含み得る。以下において詳細に説明されるタスクを適切に遂行するために、コントローラ122Aはメモリを含む。メモリの少なくとも一部は有形且つ非一時的なものである。コントローラ122Aのメモリは、コンピュータ可読データまたは処理命令を提供することに関与する記録可能媒体であり得る。このような媒体は、限定するものではないが、不揮発性媒体および揮発性媒体を含む、多くの形態を取り得る。コントローラ122Aのための不揮発性媒体としては、例えば、光もしくは磁気ディスクおよびその他の永続メモリを挙げることができる。揮発性媒体としては、例えば、主メモリを構成し得る、ダイナミックランダムアクセスメモリ(dynamic random access memory、DRAM)を挙げることができる。このような命令は、コンピュータのプロセッサに結合されたシステムバスを含む電線を含む、同軸ケーブル、銅線および光ファイバを含む、1つ以上の伝送媒体によって伝送され得る。
コントローラ122Aのメモリはまた、適切な媒体、例えば、磁気または光媒体を含み得る。コントローラ122Aは、高速クロック、必須のアナログ-デジタル(A/D)および/またはデジタル-アナログ(D/A)回路機構、必要な入力/出力回路機構およびデバイス(I/O)、ならびに適切な信号調節および/またはバッファ回路機構などの、他の必要とされるコンピュータハードウェアを用いて構成されるか、またはこれを備え得る。コントローラ122Aによって必要とされる、またはコントローラ122Aによってアクセス可能なアルゴリズムはメモリ内に記憶され、以下において詳細に説明される必要な機能性を提供するために自動的に実行されてもよい。
コントローラ122Aは、修正重み112を修正重み配列119Aに編成するようにプログラムされ得る。コントローラ122Aはまた、所望の出力値配列126Aとして編成された所望の画像または出力信号124を受信するように構成されている。コントローラ122Aは、さらに、所望の出力値配列からのニューロン和配列120Aの逸脱128を決定し、逸脱配列132を生成するように構成されている。コントローラ122Aは、さらに、決定された逸脱配列132を用いて修正重み配列119Aを変更するように構成されている。このような場合には、変更された修正重み値を合算し、ニューロン和配列120Aを決定することは、所望の出力値配列126Aからのニューロン和配列120Aの逸脱128を低減し、すなわち、最小化し、トレーニングされた修正重み配列134A(図36に示される)を生成する。図34および図35に示される修正重み配列119Aと類似して、トレーニングされた修正重み配列134Aは破線の枠134A内の全ての修正重み112を含む。また、図36に示されるように、および図34および図35における修正重み配列119Aと類似して、トレーニングされた修正重み配列134Aは破線の枠119A内の全てのトレーニングされた修正重み112Aを含み、これらと関連付けられた分配器114を含み得る。したがって、ニューロン和配列120Aの最小化された逸脱128は、pネット100Bによって生成された誤差を補償する。さらに、生成されたトレーニングされた修正重み配列134Aはpネット100Bの同時または並列トレーニングを容易にする。
図35に示される、トレーニングされたpネット100Cにおいて、pネットへの複数の入力102は、入力画像106を受信するように構成され得る。このような入力画像106は、入力値配列107Aとして受信されるか、またはpネット100Bによって画像の認識の間に入力値配列107Aとして体系化されるかのいずれかであり得る。各シナプス118は、複数のトレーニングされた修正重み112Aを含み得る。加えて、各ニューロン116は、それぞれのニューロンに接続された各シナプス118に対応するトレーニングされた修正重み112Aの重み値を合算するように構成されていてもよく、これにより、複数のニューロンは、認識された画像配列136を生成し、これにより、入力画像106の認識をもたらす。分配器114のセットを含むpネット100Bおよびトレーニングされたpネット100Cの実施形態では、分配器は、トレーニング画像および入力画像106をそれぞれのトレーニング入力値配列107および入力値配列107Aとして体系化するように構成され得る。したがって、分配器114のこのようなセットは、それぞれのトレーニング画像および入力画像106の各々を受信するための複数の入力102に動作可能に接続されている。上述の動作は、以下において詳細に説明されるように、トレーニングされた修正重み配列134Aの代わりに、構造化行列、具体的には、トレーニングされた修正重み行列を用いて遂行され得る。
コントローラ122Aは、さらに、所望の出力値配列126Aからのニューロン和配列120Aの目標逸脱の配列または目標逸脱配列138を用いてプログラムされ得る。さらに、コントローラ122Aは、所望の出力値配列126Aからのニューロン和配列120Aの逸脱128が目標逸脱配列138の許容範囲139内に入ると、pネット100Bのトレーニングを完了するように構成され得る。許容範囲139は、目標逸脱配列138内の最大値もしくは最小値、または目標逸脱配列138の平均値と照合されてもよい。代替的に、コントローラ122Aは、逸脱128の低減あるいはトレーニング入力値配列107および所望の出力値配列126Aの収束の速度が所定の速度値140へ落ちると、pネット100Bのトレーニングを完了するように構成され得る。許容範囲139および/または所定の速度値140はコントローラ122A内にプログラムされてもよい。
トレーニング入力値配列107、入力値配列107A、修正重み配列119A、ニューロン和配列120A、所望の出力値配列126A、逸脱配列132、トレーニングされた修正重み配列134A、認識された画像配列136、および目標逸脱配列138、すなわち、これらの内部のパラメータ値は、それぞれ、トレーニング入力値行列141、入力値行列141A、修正重み行列142、ニューロン和行列143、所望の出力値行列144、逸脱行列145、トレーニングされた修正重み行列146、認識された画像行列147、および目標逸脱行列148として編成され得る。この場合、各々のそれぞれの配列107、107A、119、120、126、132、134、136、および138において、それぞれのパラメータの値は、例えば、プロセッサがアクセス可能なデータテーブルの形式で編成されてもよく、それぞれの行列141、141A、142、143、144、145、146、147、および148内の値は、特に、代数行列演算を各々のそれぞれの行列に個々に適用すること、およびこれらの組み合わせに適用することを可能にするように編成される。行列141、141A、142、143、144、145、146、147、および148は図に具体的に示されていないが、そのように編成されるときには、それぞれの配列107、107A、119、120、126、132、134、136、および138に取って代わると理解されるべきである。
以下の例では、例示目的のために、任意数の列および行を有する特定の行列が示される。例えば、トレーニング画像は入力トレーニング行列|I|の形で受信され、および/または編成され得る。
その後、上記のトレーニング入力画像行列は、コントローラ122Aを介して、行列|C|と表される、トレーニング入力値行列141へ変換され得る。各行列|C|は、入力「I」の数に対する、ただし、特定の数の間隔「i」を考慮した、対応する数の列、および画像の数に対する対応する数の行を有することになる。
行列|C|内において、トレーニングの間に用いられることになる特定の修正重み112を用いて識別される間隔「i」。間隔「i」に対応する列内において、信号の値は、特定の信号が特定の間隔において用いられることになることを示すために、1(1)と置換されてもよく、その一方で、問題の信号のための他の間隔においては、特定の間隔が考慮されないことになることを示すために、信号の値は0(0)と置換されてもよい。
例示的な修正重み行列146は、以下に示される行列|W|として形成され得る。
ニューロン和行列143は、以下に示される行列|Σ|として表され得る。
所望の出力値行列144は、以下に示されるように、行列|O|として形成され得る。
ニューロン和行列143の逸脱128は、所望の出力値行列144から決定することができ、以下の行列|E|として表される逸脱行列148を生成する。
ここで、
などである。
以下において行列|W|として表される修正重み行列142は、決定された逸脱行列145を用いて変更され得る。これは、変更された修正重み112の値を合算し、ニューロン和行列143を決定し、所望の出力値行列144からのニューロン和行列143の逸脱を最小化し、行列|Wtrained|として表されるトレーニングされた修正重み行列146を生成することを可能にする。行列|Wtrained|は、式|Wtrained|=|W|+|∇W|に従って導かれる(ここで、因子|∇W|は以下において詳細に説明されることになる)。
上述されたように、トレーニングされた修正重み配列134Aおよびトレーニングされた修正重み行列146の形成はpネット100Bの同時トレーニングを容易にする。
トレーニングされたpネット100Cを用いる画像認識の実施形態(図36に示される)において、入力画像106のバッチの同時認識は、上述された行列演算を用いてもたらされ得る。具体的には、トレーニングされたpネット100C、2次元n x k行列|W|として表され得る、修正重み配列。ここで、「n」はニューロン116の数であり、「k」は特定のニューロン内の修正重み112の数である。行列|W|は以下のように一般的に表され得る。
入力画像106のバッチの同時認識のために、認識されるべき入力画像はv x k行列|Ir|として提示され得る。ここで、「v」は認識可能な画像の数であり、「k」は特定のニューロン116内の修正重み112の数である。認識のための入力画像106の行列|Ir|は以下のように一般的に表され得る。
上記の行列|Ir|において、行列の各行は、認識を受ける単一の画像である。
入力画像106のバッチの同時認識は、行列|W|に転置行列|I|Tを乗算し、記号「|Y|」によって表され、以下のように表される、認識された画像行列147を生成することによってもたらされ得る。
|Y|=|W|×|Ir|T
行列|Y|は寸法n x vを有する。行列|Y|の各列は、トレーニングされたpネット100Cによって得られた単一の出力または認識された画像である。行列|Y|は以下のように一般的に示され得る。
pネット100Bおよび100Cの各々は、さらに、コントローラ122Aのサブユニットであり得る、データプロセッサ150を含み得る。このような実施形態では、コントローラ122Aは、さらに、それぞれのトレーニング入力値行列141、入力値行列141A、修正重み行列142、ニューロン和行列143、および所望の出力値行列144のうちの少なくとも1つをそれぞれの部分行列に区分する、または切り分けるように構成され得る。コントローラ122Aはまた、複数の得られた部分行列または部分行列群をデータプロセッサ150へ、これを用いた別個の数学演算のために伝達するように構成され得る。問題の行列141、142、143、および144のうちの任意のものの、それぞれの部分行列へのこのような区分は、同時または並列データ処理、ならびに入力値行列141Aの画像認識またはpネット100Bのトレーニングのいずれかの速度の増大を容易にする。このような同時または並列データ処理はまた、pネット100Bまたは100Cのスケーラビリティを可能にする。すなわち、特定のプロセッサ上で代数操作を受けるそれぞれの行列のサイズを制限し、および/または図示のプロセッサ150などの、複数のプロセッサの間で行列を分割することによって、pネットのサイズを変更する能力をもたらす。図34~図36に示されるように、pネット100Bおよび100Cのこのような実施形態では、コントローラ122Aと通信する複数のデータプロセッサ150が、コントローラ122Aの一部としてであるのか、それとも末端に配置されているのかにかかわらず、利用され、別個に、および並列に動作するように構成されていてもよい。
コントローラ122Aは、トレーニング入力値行列141Aおよび修正重み行列に代数行列演算を適用することによって修正重み行列142を変更し、これにより、pネット100Bをトレーニングし得る。このような数学行列演算は、入力値行列141Aと修正重み行列146との数学的積を決定し、これにより、現在のトレーニングエポックの重み行列151を形成することを含み得る。コントローラ122Aはまた、ニューロン和行列143を所望の出力値行列144から減算し、上述された行列|E|として示されるニューロン和の逸脱の行列153を生成するように構成され得る。加えて、コントローラ122Aは、ニューロン和の逸脱の行列153を、それぞれのニューロン116に接続された、以下において文字「m」を用いて識別される、シナプス118の数で除算し、次式のように、以下において記号「|ΔW|」によって表される、ニューロン入力ごとの逸脱の行列155を生成するように構成され得る。
|ΔW|=|E|/m
コントローラ122Aは、さらに、下式において記号「|S|」によって表されるpネット100Bの1つのトレーニングエポックの間に各修正重み112が用いられた回数を決定するように構成され得る。以下に示されるように、行列|S|は、トレーニング入力値行列141Aに単位ベクトルを乗算することを通して得られる。
コントローラ122Aは、さらに、各修正重みが1つのトレーニングエポックの間に用いられた決定された回数を用いて、1つのトレーニングエポックについての、以下において記号「|∇W|」によって表される、平均逸脱行列157を形成するように構成され得る。
|∇W|=|ΔW|/|S|
さらに、コントローラ122Aは、1つのトレーニングエポックについての平均逸脱行列157を修正重み行列142に加算し、これにより、以下において|W
trained|として表される、トレーニングされた修正重み行列146を生成し、以下に示されるように1つのトレーニングエポックを完了するように構成され得る。
|W
trained|=|W|+|∇W|
図37は、図34~図36を参照して上述されたとおりの、pネット100Bを動作させるための方法400を示す。方法400は、プロセッサ150などの、1つ以上のデータプロセッサを用いて教師付きトレーニングを実施する際に利用される、コンピュータ、またはコンピュータのシステムなどの、装置の動作を改善するように構成されている。方法400は、pネット100Bを動作させるための、本方法を遂行するために実行可能な命令を符号化された非一時的コンピュータ可読記憶デバイス内にプログラムされてもよい。
方法400はフレーム402において開始する。フレーム402において、本方法は、複数の入力102を介して、トレーニング画像106を受信することを含む。図34および図35に示されるpネット100Bの構造に関して上述されたように、トレーニング画像106は、問題のトレーニング局面の開始前にトレーニング入力値配列107として受信されるか、または実際のトレーニング局面の間にトレーニング入力値配列として体系化されるかのいずれかであり得る。フレーム402に続き、本方法はフレーム404へ進む。フレーム404において、本方法は、複数のシナプス118の修正重み112を修正重み配列119Aに編成することを含む。pネット100Bの構造に関して上述されたように、各シナプス118は複数の入力102のうちの1つに接続されており、複数の修正重み112を含む。
フレーム404の後に、本方法はフレーム406へ進む。フレーム406において、本方法は、複数のニューロン116を介してニューロン和配列120Aを生成することを含む。pネット100Bの構造に関して上述されたように、各ニューロン116は少なくとも1つの出力117を有し、複数のシナプス118のうちの1つを介して複数の入力102のうちの少なくとも1つと接続されている。さらに、各ニューロン116は、それぞれのニューロンに接続された各シナプス118に対応する修正重み112の重み値を合算するように構成されている。フレーム406に続き、フレーム408において、本方法は、コントローラ122Aを介して、所望の出力値配列126Aとして編成された所望の画像124を受信することを含む。フレーム408の後に、本方法はフレーム410へ進む。フレーム410において、本方法は、コントローラ122Aを介して、所望の出力値配列126Aからのニューロン和配列120Aの逸脱128を決定し、これにより、逸脱配列132を生成することを含む。
フレーム410に続き、本方法はフレーム412へ進む。フレーム412において、本方法は、コントローラ122Aを介して、決定された逸脱配列132を用いて修正重み配列119Aを変更することを含む。変更された修正重み配列119Aの変更された修正重み値は、その後、加算または合計され、次に、新たなニューロン和配列120Aを決定するために用いられ得る。変更された修正重み配列119Aの合計された変更された修正重み値は、次に、所望の出力値配列126Aからのニューロン和配列120Aの逸脱を低減または最小化し、トレーニングされた修正重み配列134Aを生成する役目を果たし得る。逸脱配列132は、pネット100Cの構造に関して上述されたように、所望の出力値配列126Aからのニューロン和配列120Aの逸脱128が目標逸脱の配列138の許容範囲139内に入ると、十分に最小化されたと決定されてもよい。トレーニングされた修正重み配列134Aは、逸脱配列132を用いて決定されたトレーニングされた修正重み112Aを含み、これにより、pネット100Bを訓練する。
pネット100Bの構造に関して上述されたように、トレーニング入力値配列107、修正重み配列119A、ニューロン和配列120A、所望の出力値配列126A、逸脱配列132、トレーニングされた修正重み配列134A、および目標逸脱配列138の各々は、それぞれ、トレーニング入力値行列141、修正重み行列142、ニューロン和行列143、所望の出力値行列144、逸脱行列145、トレーニングされた修正重み行列146、および目標逸脱行列148として編成され得る。フレーム412において、本方法は、コントローラ122Aを介して、それぞれのトレーニング入力値行列141、入力値行列141A、修正重み行列142、ニューロン和行列143、および所望の出力値行列144のうちの少なくとも1つをそれぞれの部分行列に区分することをさらに含み得る。このように得られた部分行列は、データプロセッサ150へ、これを用いた別個の数学演算のために伝達され、これにより、同時データ処理、およびpネット100Bのトレーニングの速度の増大を容易にし得る。
フレーム412において、本方法はまた、コントローラ122Aを介して、トレーニング入力値行列141および修正重み行列に代数行列演算を適用することによって修正重み行列142を変更し、これにより、pネット100Bをトレーニングすることを含み得る。このような数学行列演算は、トレーニング入力値行列141と修正重み行列142との数学的積を決定し、これにより、現在のトレーニングエポックの重み行列151を形成することを含み得る。フレーム412において、本方法は、さらに、コントローラ122Aを介して、ニューロン和行列143を所望の出力値行列144から減算し、ニューロン和の逸脱の行列153を生成することを含み得る。また、フレーム412において、本方法は、コントローラ122Aを介して、ニューロン和の逸脱の行列153を、それぞれのニューロン116に接続された入力の数で除算し、ニューロン入力ごとの逸脱の行列155を生成することを含み得る。
さらに、フレーム412において、本方法は、コントローラ122Aを介して、pネット100Bの1つのトレーニングエポックの間に各修正重み112が用いられた回数を決定することを含み得る。また、本方法は、さらに、コントローラ122Aを介して、特定のトレーニングエポックの間に各修正重み112が用いられた決定された回数を用いて1つのトレーニングエポックについての平均逸脱行列157を形成することを含み得る。例えば、このような演算は、要素ごとに、ニューロン入力ごとの逸脱の行列を、特定のトレーニングエポックの間に各修正重みが用いられた決定された回数で除算し、1つのトレーニングエポックの間に用いられた各修正重み112についての平均逸脱を得、これにより、1つのトレーニングエポックについての平均逸脱行列157を形成することを含み得る。
加えて、フレーム412では、例えば、算術平均、幾何平均、調和平均、二乗平均平方根などを用いて1つのトレーニングエポックについての平均逸脱行列157を形成するための、他の行列に基づく演算が利用されてもよい。また、フレーム412において、本方法は、コントローラ122Aを介して、1つのトレーニングエポックについての平均逸脱行列157を修正重み行列142に加算し、これにより、トレーニングされた修正重み行列146を生成し、特定のトレーニングエポックを完了することを含み得る。したがって、行列演算が全ての修正重み112に並列に適用されることを可能にすることによって、方法400は、トレーニングされたpネット100Cを生成する際における、pネット100Bの、同時の、およびその結果、速度の向上した、トレーニングを容易にする。
フレーム412に続き、方法400は、逸脱配列132が十分に最小化されるまで、フレーム402へ戻り、追加のトレーニングエポックを遂行することを含み得る。換言すれば、ニューロン和配列120Aを所定の逸脱または誤差値以内まで所望の出力値配列126Aに収束するために、追加のトレーニングエポックを遂行することができ、これにより、pネット100Bが、トレーニングされ、新たな入力画像106を用いた操作の準備ができたと見なされ得るようにする。したがって、フレーム412の後に、本方法は、トレーニングされたpネット100C(図36に示される)を用いた画像認識のために、フレーム414へ進み得る。
トレーニングされたpネット100Cを用いる画像認識の実施形態では、フレーム414において、方法400は、複数の入力102を介して入力画像106を受信することを含む。pネット100Cの構造に関して上述されたように、入力画像106は、入力値配列107Aとして受信されるか、またはpネット100Cによって画像の認識の間に入力値配列として体系化されるかのいずれかであり得る。フレーム414に続き、フレーム416において、本方法は、トレーニングされた修正重み配列134Aの複数のトレーニングされた修正重み112Aを各シナプス118に帰属させることを含む。フレーム416の後に、本方法はフレーム418へ進む。
フレーム418において、本方法は、それぞれのニューロン116に接続された各シナプス118に対応するトレーニングされた修正重み112Aの重み値を合算することを含む。pネット100Bの構造に関して上述されたように、トレーニングされた修正重み112Aの重み値のこのような合計は、複数のニューロン116が、認識された画像配列136を生成することを可能にし、これにより、入力画像106の認識をもたらす。pネット100Cの構造に関して上述されたように、トレーニングのために用いられる行列141、142、143、144、145、146、および148に加えて、入力値配列107Aおよび認識された画像配列136は、それぞれ、入力値行列141Aおよび認識された画像行列147として編成され得る。
フレーム418において、本方法はまた、コントローラ122Aを介して、入力値行列141Aなどの、用いられる行列のうちの任意のものをそれぞれの部分行列に区分することを含み得る。このように得られた部分行列は、データプロセッサ150へ、これを用いた別個の数学演算のために伝達され、これにより、同時データ処理、およびpネット100Cの画像認識の速度の増大を容易にし得る。行列演算がフレーム202~212における方法400のトレーニング部分に与える効果と類似して、代数行列演算が、トレーニングされたpネット100Cの行列または部分行列に並列に適用されると、フレーム214~218における画像認識部分は速度の向上の恩恵を受ける。したがって、行列演算が全てのトレーニングされた修正重み112Aに並列に適用されることを可能にすることによって、方法400は、pネット100Cを用いた、同時の、およびその結果、速度の向上した、画像認識を容易にする。フレーム418に続き、本方法は、達成された画像認識が十分な正確さを欠いていると見なされる場合には、図34~図36に関して説明されたように、追加のトレーニングのためにフレーム402へ戻ることができ、さもなければ、本方法はフレーム420において終結することができる。
詳細な説明および図面もしくは図は本開示を支持し、説明するが、本開示の範囲は請求項によってのみ規定される。クレームされている開示を実施するための最良の形態および他の実施形態のうちのいくつかが詳細に説明されたが、添付の請求項において規定される本開示を実践するための様々な代替的な設計および実施形態が存在する。さらに、図面において示される実施形態、または本記載において述べられた様々な実施形態の特徴は、必ずしも互いに独立した実施形態として理解されるべきではない。むしろ、一実施形態の例のうちの1つにおいて説明される特徴の各々は、他の実施形態からの1つまたは複数の他の所望の特徴と組み合わせることができ、言葉で、または図面を参照して説明されない他の実施形態を生み出すことが可能である。したがって、このような他の実施形態は添付の請求項の範囲の枠組み内に含まれる。