(57)【要約】【課題】ニューラル・ネットワークにおけるシナプス活性のための自動調整閾値を提供する。【解決手段】様々な実施形態において、人工ニューラル・ネットワーク内の複数のニューロンの各々について、非ゼロのシナプス重みを有するシナプスを介してニューロンに結合された活性入力に対応する重複値が特定される。複数のニューロンのうちの、重複がニューラル・ネットワークの活性化閾値を超えるニューロンのカウントが特定される。カウントは所定のニューロン活性ターゲットと比較される。ニューラル・ネットワークの活性化閾値は、所定のニューロン活性ターゲットに近づくように調整される。【選択図】図４
2020531979.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
人工ニューラル・ネットワーク内の複数のニューロンの各々について、非ゼロのシナプス重みを有するシナプスを介して前記ニューロンに結合された活性入力に対応する重複値を特定することと、
前記複数のニューロンのうちの、重複が前記ニューラル・ネットワークの活性化閾値を超えるニューロンのカウントを特定することと、
前記カウントを所定のニューロン活性ターゲットと比較することと、
前記ニューラル・ネットワークの前記活性化閾値を、前記所定のニューロン活性ターゲットに近づくように調整することと、
を含む、方法。
【請求項２】
前記閾値を調整することは、前記カウントが前記所定のニューロン活性ターゲット未満であるときに前記閾値をデクリメントすることを含む、請求項１に記載の方法。
【請求項３】
前記閾値は所定である、請求項１に記載の方法。
【請求項４】
前記重複値を特定することは、前記入力にシナプス重みを適用することを含む、請求項１に記載の方法。
【請求項５】
前記入力に前記シナプス重みを前記適用することは、前記シナプス重みに前記入力を乗算し、その結果を合算することを含む、請求項４に記載の方法。
【請求項６】
前記シナプス重みはバイナリである、請求項４に記載の方法。
【請求項７】
前記複数のニューロンの各々は、前記人工ニューラル・ネットワークの１つの層内にある、請求項１に記載の方法。
【請求項８】
前記複数のニューロンの各々は、前記人工ニューラル・ネットワークの１つの空間領域内にある、請求項１に記載の方法。
【請求項９】
前記ニューラル・ネットワークは、階層一時メモリを含む、請求項１に記載の方法。
【請求項１０】
前記所定のニューロン活性ターゲットは、前記複数のニューロンの約１０％以下に対応する、請求項１に記載の方法。
【請求項１１】
前記活性入力は、スパース分散表現に対応する、請求項１に記載の方法。
【請求項１２】
システムであって、
プログラム命令が埋め込まれたコンピュータ可読ストレージ媒体を含むコンピューティング・ノードを備え、前記プログラム命令は、前記コンピューティング・ノードのプロセッサによって、前記プロセッサに方法を実行させるように実行可能であり、前記方法は、
人工ニューラル・ネットワーク内の複数のニューロンの各々について、非ゼロのシナプス重みを有するシナプスを介して前記ニューロンに結合された活性入力に対応する重複値を特定することと、
前記複数のニューロンのうちの、重複が前記ニューラル・ネットワークの活性化閾値を超えるニューロンのカウントを特定することと、
前記カウントを所定のニューロン活性ターゲットと比較することと、
前記ニューラル・ネットワークの前記活性化閾値を、前記所定のニューロン活性ターゲットに近づくように調整することと、
を含む、システム。
【請求項１３】
ニューラル・ネットワークを自動調整するためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は、プログラム命令が具現化されたコンピュータ可読記憶媒体を含み、前記プログラム命令は、プロセッサによって、前記プロセッサに方法を実行させるように実行可能であり、前記方法は、
人工ニューラル・ネットワーク内の複数のニューロンの各々について、非ゼロのシナプス重みを有するシナプスを介して前記ニューロンに結合された活性入力の和に対応する重複値を特定することと、
前記複数のニューロンのうちの、重複が前記ニューラル・ネットワークの活性化閾値を超えるニューロンのカウントを特定することと、
前記カウントを所定のニューロン活性ターゲットと比較することと、
前記ニューラル・ネットワークの前記活性化閾値を、前記所定のニューロン活性ターゲットに近づくように調整することと、
を含む、コンピュータ・プログラム製品。
【請求項１４】
前記閾値を調整することは、前記カウントが前記所定のニューロン活性ターゲット未満であるときに前記閾値をデクリメントすることを含む、請求項１３に記載のコンピュータ・プログラム製品。
【請求項１５】
前記重複値を特定することは、前記入力にシナプス重みを適用することを含む、請求項１３に記載のコンピュータ・プログラム製品。
【請求項１６】
前記入力に前記シナプス重みを適用することは、前記シナプス重みに前記入力を乗算し、その結果を合算することを含む、請求項１５に記載のコンピュータ・プログラム製品。
【請求項１７】
前記シナプス重みはバイナリである、請求項１６に記載のコンピュータ・プログラム製品。
【請求項１８】
前記複数のニューロンの各々は、前記人工ニューラル・ネットワークの１つの空間領域内にある、請求項１３に記載のコンピュータ・プログラム製品。
【請求項１９】
前記ニューラル・ネットワークは、階層一時メモリを含む、請求項１３に記載のコンピュータ・プログラム製品。
【請求項２０】
前記所定のニューロン活性ターゲットは、前記複数のニューロンの約１０％以下に対応する、請求項１３に記載のコンピュータ・プログラム製品。
【請求項２１】
前記活性入力は、スパース分散表現に対応する、請求項１３に記載のコンピュータ・プログラム製品。
【請求項２２】
人工ニューラル・ネットワークであって、
複数のシナプスによって相互結合された複数のニューロンであって、各シナプスは、関連付けられたシナプス重みを有し、前記人工ニューラル・ネットワークは、
前記複数のニューロンの各々について、非ゼロのシナプス重みを有するシナプスを介して前記ニューロンに結合された活性入力の和に対応する重複値を特定し、
前記複数のニューロンのうちの、重複が前記ニューラル・ネットワークの活性化閾値を超えるニューロンのカウントを特定し、
前記カウントを所定のニューロン活性ターゲットと比較し、
前記ニューラル・ネットワークの前記活性化閾値を、前記所定のニューロン活性ターゲットに近づくように調整する、
ように構成される、人工ニューラル・ネットワーク。
【請求項２３】
前記閾値を調整することは、前記カウントが前記所定のニューロン活性ターゲット未満であるときに前記閾値をデクリメントすることを含む、請求項２２に記載の人工ニューラル・ネットワーク。
【請求項２４】
方法であって、
人工ニューラル・ネットワークの初期活性化閾値を設定することであって、前記人工ニューラル・ネットワークは、複数のシナプスによって相互結合された複数のニューロンを含む、前記設定することと、
前記人工ニューラル・ネットワーク内のニューロン活性を所定のニューロン活性ターゲットと比較することと、
前記人工ニューラル・ネットワーク内のニューロン活性が前記所定のニューロン活性ターゲットを満たすまで、前記人工ニューラル・ネットワークの前記活性化閾値をデクリメントすることと、
を含む、方法。
【請求項２５】
ニューロン活性を比較することは、
非ゼロのシナプス重みを有するシナプスを介して前記複数のニューロンに結合された活性入力の和に対応する重複値を特定することと、
前記複数のニューロンのうちの、重複が前記活性化閾値を超えるニューロンのカウントを特定することと、
を含む、請求項２４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の実施形態は、人工ニューラル・ネットワークに関し、より詳細には、ニューラル・ネットワークにおけるニューロン活性のための自動調整閾値に関する。
【発明の概要】
【発明が解決しようとする課題】
【０００２】
ニューラル・ネットワークを自動調整するための方法等を提供する。
【課題を解決するための手段】
【０００３】
本開示の実施形態によれば、ニューラル・ネットワークの自動調整の方法およびそのためのコンピュータ・プログラム製品が提供される。様々な実施形態において、人工ニューラル・ネットワーク内の複数のニューロンの各々について、非ゼロのシナプス重みを有するシナプスを介してニューロンに結合された活性入力に対応する重複値が特定される。複数のニューロンのうちの、重複がニューラル・ネットワークの活性化閾値を超えるニューロンのカウントが特定される。カウントは所定のニューロン活性ターゲットと比較される。ニューラル・ネットワークの活性化閾値は、所定のニューロン活性ターゲットに近づくように調整される。
【０００４】
ここで、添付の図面を参照して、本発明の実施形態を単なる例として説明する。
【図面の簡単な説明】
【０００５】
【図１】本開示の実施形態による例示的なシナプス・アレイを示す。
【図２】本開示の実施形態による、シナプス活性閾値を動的に調整する方法を示す。
【図３】本開示の実施形態による閾値動作の概略図である。
【図４】本開示の実施形態によるニューラル・ネットワークを自動調整する方法を示す。
【図５】本発明の実施形態によるコンピューティング・ノードを示す。
【発明を実施するための形態】
【０００６】
人工ニューラル・ネットワーク（ＡＮＮ）は、シナプスと呼ばれる結合点を通じて相互結合された複数のニューロンからなる分散コンピューティング・システムである。各シナプスは、１つのニューロンの出力と別のニューロンの入力との間の結合の強度を符号化する。各ニューロンの出力は、そのニューロンに結合された他のニューロンから受信された入力の総計によって特定される。このため、所与のニューロンの出力は、結合されたニューロンの出力と、シナプスの重みによって特定される結合の強度とに基づく。ＡＮＮは、一般的に、特定のクラスの入力が所望の出力を生成するようにシナプスの重みを調整することによって、特定の問題（例えば、パターン認識）を解決するようにトレーニングされる。
【０００７】
この学習プロセスのために様々なアルゴリズムを用いることができる。いくつかのアルゴリズムは、画像認識、音声認識、または言語処理等の特定のタスクに適している場合がある。トレーニングアルゴリズムは、学習プロセス中に、所与の問題の最適解に向けて収束するシナプスの重みのパターンに至る。逆伝搬は、教師あり学習のための１つの適切なアルゴリズムであり、学習プロセス中、既知の正しい出力が利用可能である。そのような学習の目標は、トレーニング中に利用可能でなかったデータに一般化するシステムを得ることである。
【０００８】
一般に、逆伝搬中、ネットワークの出力は、既知の正しい出力と比較される。出力層内のニューロンの各々について誤差値が計算される。誤差値は、出力層から開始して、後方に伝搬され、各ニューロンに関連付けられた誤差値が特定される。誤差値は、ネットワーク出力に対する各ニューロンの寄与に対応する。次に、誤差値を用いて重みが更新される。このように増分的に補正することにより、ネットワーク出力は、トレーニングデータに合わせて調整される。
【０００９】
人工ニューラル・ネットワーク（ＡＮＮ）は、人工知能、特に、大量の処理データおよび長い処理時間を要する人工知能における問題に対処するのにますます成功しつつある。上記で説明したように、ネットワーク内の各ノードまたはニューロンの基本動作は、他のノードからの入力の加重和を計算することであり、その和が所与の発火閾値を超える場合、ニューロンは活性化される。重みは、各ニューロン対間のシナプス結合と関連付けられる。
【００１０】
いくつかのニューラル・ネットワークにおいて、急峻な閾値（ヘヴィサイドの階段関数）は、双曲線正接またはロジスティック関数等の非線形「スカッシング」関数と置き換えられる。これにより、ニューロン応答は、各入力の微分可能関数となり、逆伝搬の適用を可能にし、ここで、誤差は、ネットワークの出力誤差を反復的に最小限にするために、ネットワークを通じてフィードバックされ、シナプス重みを調整するのに用いられる。しかしながら、これらの数学的改善により、ＡＮＮは、ニューラル・ネットワーク設計の本来の着想であった脳の生物学的働きから離れたものとなる。
【００１１】
これらのＡＮＮにおいて、シナプス重みは、学習プロセスにおいて誤差を最小限にするために調整されなくてはならない実数である。これは、生物学的プロセスに起因して重みがランダムに変動するシナプスを有する現実の脳の動作に反する。加えて、これらのＡＮＮは、学習すべき多数のラベル付けされたサンプルを要し、（後続の試験によって測定される）学習の精度は、サンプル・データの特性に依拠する。加えて、ＡＮＮは、一般化能力が限られている。試験例に非常に類似した例がトレーニングセット内に存在しなかった場合、誤差の尤度は非常に高い。精度および一般化は緊張関係にある（in tension）。
【００１２】
これらの理由により、入力データにおけるランダムな誤差、偶発的に切断されたシナプス、または発火しないニューロン等のノイズに対し耐性があるシステムが望ましい。そのようなシステムの例は、シナプス重みが、真にバイナリ（０または１）またはバイポーラ（−１または＋１）のいずれかの、バイナリのシステムである。そのようなバイナリ・ニューラル・ネットワーク（ＢＮＮ）において、各ニューロンの活性化は、上記で説明したように、その入力の加重和に依拠する。シナプス前ニューロンは発火するかまたは発火せず、重みはゼロまたは１のいずれかであるため、和は整数であり、ここでもまた、この整数を（ヘヴィサイド）閾値と比較し、シナプス後ニューロンが活性化されるか否かを特定しなくてはならない。
【００１３】
これらのタイプのネットワークの更なる特徴は、これらを、データがラベル付けされることを要することなく学習するような方式で設計およびトレーニングすることができるということである。これは、系列内の各イベントが、先行するイベントに何らかの形で依拠する、時間依存のデータセットの使用を伴うことができる。これらの場合、ＡＮＮシステムは、過去の履歴に基づいて次のイベントを予測するように学習することができる。予測が確認された場合、正しい予測に至ったシナプス重みが増大される。予測が確認されない場合、シナプス重みは低減される。このようにして、学習は、ラベル付けされたデータを必要とすることなく行われる。
【００１４】
ＢＮＮのサブクラスは、入力データ、中間データおよび出力データのスパース分散表現（ＳＤＲ）を用いる。これらは、非常に僅かな要素がオンであり（例えば、１の値を有する）、残りがオフである（例えば、０の値を有する）、大きなバイナリアレイ、通常はベクトルである。そのようなシステムの例は、階層時間記憶（ＨＴＭ）である。ＨＴＭのためのフィードフォワード・アルゴリズムは、一致ビットの和が固定の閾値と比較される閾値処理ステップを伴う。入力データ・ストリームの事前知識なしでは、この閾値を、コンピュータ・リソースの最適使用を行う方式で設定することが非常に困難である。結果として、ネットワークの全ての要素が入力データの少なくとも小さな部分にわたって活性であることを確実にする方法を適用することができる。これらの方法は、かなりの追加の処理時間、更なるデータのストレージ、およびユーザによる追加パラメータの設定を要する。
【００１５】
本開示は、閾値を予め決定する必要性を回避し、更に、ネットワークの要素の幅広い使用を確実にする傾向にある方法を提供する。結果として得られるアルゴリズムは、ネットワーク設計者によって設定されるパラメータがより少ない。
【００１６】
逆伝搬を通じて誤差を最小限にするように学習するＡＮＮは、各ノードへのバイアス入力を含む。これは、調整可能な閾値と類似の役割を果たす。しかしながら、その調整は、ニューラル活性ではなく、誤差最小化に基づいて行われる。
【００１７】
図１を参照すると、例示的なシナプス・アレイが示される。樹状突起（水平線１０１）、ここでは、ニューロンあたり３つのセグメント（円１０２）が、潜在的に、軸索（垂直線１０３）とのシナプス結合を形成する。例えばＨＴＭのプーラー／相関器において、軸索は、階層において下位の領域内のニューロンから派生する。シーケンス・メモリにおいて、軸索は、入力と同じセルの組から生じ、すなわち、結合は横方向である。フィードバックのために、軸索は、階層内の上位の領域内のニューロンから派生する。
【００１８】
本開示は、バイナリ・ニューラル・ネットワークに関連して、上記で説明したような固定閾値ではなく、浮動閾値の使用を提供する。ＨＴＭにおいて、例えば、任意の所与の時点において活性であるべきシナプスおよびニューロンの部分に対応する所望の活性レベルを予め決定することができる。本開示によれば、閾値は、このレベルの活性が達成されるように調整される。この手法の１つの利点は、追加のパラメータを要する個別化された解に対しリソースを用いることなく、あまり使用されていないシナプスを偶発的に活性化し、強化することである。
【００１９】
ＨＴＭおよび類似のネットワークのアーキテクチャ、ならびにそれらの学習アルゴリズムにおいて、ニューラル活性の和が、階層内の上位レベルからのフィードバックを受け取る、例えば、プーラー、シーケンス・メモリ、および（図１に示すような）シナプス・アレイにおいて、閾値と比較されるいくつかの場所が存在する。
【００２０】
プーラーの機能は、軸索の活性とシナプスのアレイへの入力とを相関付けることである。この活性は、データ・ストリームの各時間ステップにおけるビットの組（例えば、バイナリベクトルにおける複数の１）として表すことができる。加えて、プーラーは、出力ベクトルが入力ベクトルよりも僅かなベクトルを有するように次元を低減する。プーラーにおいて、入力ニューロンからの軸索は、その基部の（または近位の）樹状突起上の複数のシナプスを通じて出力ニューロンのサブセットと結合する。樹状突起ごとに、結合されたシナプスとの活性軸索の一致が合算され（この和は重複と呼ぶことができる）、この重複が閾値を超えた場合、出力ニューロンが活性化される。上述したように、閾値は、ネットワークの設計またはセットアップ中に前もって選択することができる。事前に選択される場合、閾値は、出力ニューロンの所望の活性が達成されるのに十分低くなくてはならない。
【００２１】
しかしながら、データ・ストリームの統計に依拠して、いくつかの樹状突起は閾値に決して達しない場合があり、このため、それらのニューロンは決して活性化されない。ヘッブのシナプス更新の規則に起因して、この活性の欠如は、問題となっているニューロンが未来に活性になる可能性を更に低くする。なぜなら、シナプスの強化および結合は、受信ニューロンの発火に依拠するためである。
【００２２】
この問題に対する１つの手法は、全てのニューロンの近時の活性を追跡し、近時の活性をほとんど示さないニューロンの重複和をブーストすることである。この手法は、例えば、活性を追跡するための時間ステップがいくつであるかを特定し、重複をどの程度ブーストするかを特定するために、何が近時の活性を構成するかを特定するための追加のパラメータを要する。ブースト方法は、各ニューロンの時間平均をとられた活性を記憶するための追加のメモリも要する。
【００２３】
全てのニューロンにおいて或るレベルの活性を確実にする別の手法は、各樹状突起における重複の時間平均を追跡することである。平均重複が過度に離れた場合、その樹状突起上の全てのシナプスが増大される。ここでもまた、これはいくつかの追加のパラメータ、および各樹状突起の平均重複のためのメモリ・アレイを要する。
【００２４】
上記の２つの手法と比較して、本開示は、広範なニューロン活性を確実にするための、より効率的な手段を提供する。本明細書に記載された方法は、要する調整可能なパラメータおよびメモリがより少ない。計算複雑度は、代替的な方法に匹敵する。
【００２５】
図２を参照すると、本開示の実施形態による動的閾値調整の方法が示される。２０１において、シナプス・アレイの全ての樹状突起セグメントの最大重複が特定される。これは、浮動閾値の初期値を与える。２０２において、閾値以上の重複を有する少なくとも１つのセグメントを有するニューロンの数が特定される。初期値の場合、閾値より大きいセグメントは０である。２０３において、そのようなセグメントの数が所望の出力ニューロン活性と比較される。数が所望の出力ニューロン活性未満である場合、２０４において、閾値は所定の値（例えば、１）だけ低減され、プロセスは２０２に戻る。
【００２６】
いくつかの例において、２０３における活性ニューロンの数は、所望の活性よりも大きい場合がある。そのような場合、活性化するニューロンを選択することができる。或る選択方法では、ニューロンは、所望のニューロン活性を達成するために、設定された閾値に等しい重複をこのとき有するセグメントを有するニューロンの中からランダムに選択される（ランダム選択）。別の選択方法では、設定された閾値に等しい重複をこのとき有する全てのセグメントが含まれ（許容的選択）、結果として、所望のレベルよりも高いニューロン活性が得られる。別の選択方法では、設定された閾値に等しい重複をこのとき有するいずれのセグメントも含まれず（厳密な選択）、所望のレベルよりも低いニューロン活性が得られる。
【００２７】
これらの選択方法間の選択は、所与のシナプス・アレイの関数に基づいて行うことができる。例えば、新たな関連付けの学習が望ましい場合、ランダムに、または更には許容的に選択することが適している。対照的に、初期トレーニング後に予測の分類または正確な再構成のための最も正確な結果が必要とされる場合、厳密な選択がより適している。
【００２８】
上記で説明された方法は、偶発的にのみ活性である入力軸索が、最終的に、それに応じてまれにしか活性でないニューロンにおける活性を生じさせることを確実にする。これにより、上記で説明されたようなブーストの必要性が回避される。更に、浮動閾値を導入することによって、非ヘッブシナプス強化による時間平均重複デューティ（time-average overlap duty）を追跡し向上させる必要がなくなる。
【００２９】
これらの方法は、シナプスが（結合された軸索が出力ニューロンにおける即時の発火を引き起こすという意味で）駆動していても、（長期増強におけるような次の駆動入力に対するニューラル応答に影響を及ぼして）調節していても、適用可能である。
【００３０】
シナプス更新は、例えばヘッブの法則を用いて、上記のステップを辿る。特に、活性入力軸索が活性出力ニューロンに結合される場合、対応するシナプスは強化される。非活性軸索が活性出力に結合される場合、シナプスは弱められる。活性軸索が非活性出力に結合される場合、シナプスは弱められる。このようにして、多くの場合に同時に活性である入力軸索は、同じ出力ニューロンに結合され、まれにしか共に活性でない入力軸索は、異なる出力に結合されることになる。
【００３１】
このようにして、プーラーは、２つの更なる入力データ・ストリームを相関付けるように動作する。ＬＴＰ（長期増強）を介したシーケンス・メモリは、以前に見られたシーケンスを識別し、到来する時間ステップにおける入力を予測するように学習する。フィードバックを受け取る樹状突起は、階層の上位レベルにおける活性に対する適切な応答を学習する。
【００３２】
相関器において、和および閾値演算が駆動中の基底樹状突起に対し行われる。生物学との直接比較のために、これらを、実際の大脳皮質において、他の皮質領域または視床から到来する信号を処理するレイヤ４（Ｌ４）ニューロンへの入力とみなすことが有用である。これらは、レイヤ２／３における小カラムのニューロンへのボトム・アップ駆動入力を提供する。
【００３３】
シーケンス・メモリは、Ｌ２／３に対応する。ここで、小カラム内のニューロンの横（遠位）樹状突起セグメントに対し加算が行われる。結合している軸索は、他の近傍の小カラム内の他のセルから派生する。この場合、セグメント活性は、そのニューロンの即時の発火を引き起こさず、むしろ、小カラムの多くのニューロン間でいずれがＬ４からの次の基底入力に応答して発火することになるかを特定するという意味で調節中である。本明細書に記載された浮動閾値は、所望の数の予測を行うために、横方向の重複に適用することができる。予測が次の入力によって検証される場合、正しく予測された小カラムを担当するシナプスが強化される。
【００３４】
本明細書に記載された浮動閾値は、階層ネットワークにおけるトップ・ダウン・フィードバックを受ける先端樹状突起にも適用可能である。この入力を用いて、例えば、入力データ・ストリーム内のノイズまたは欠落データを打開することができる。
【００３５】
ここで図３を参照すると、本開示による閾値演算が示される。黒丸は、軸索（垂直線）がシナプスを介して樹状突起（水平線）に結合する場所を示す。線がドットなしで交差する場合、シナプス結合がない。この例では、３０３、３０４、３１０、３１６および３１８を付された軸索は活性である。白丸は、これらの活性軸索上の結合されたシナプスを示す。樹状突起３２１は、活性でありかつ結合された最も多くのシナプスを有する。重複は４である。このため、４が、調整可能な閾値の初期値である。２以上の活性樹状突起が望ましい場合、上記で説明されたように、閾値は段階的に下げられる。３の閾値は、追加の樹状突起を活性化しない。２の閾値は、２の重複を有する樹状突起番号３２２を活性化する。２つの活性樹状突起が望ましい場合、手順は終了し、樹状突起３２１および３２２が結合するニューロンが活性化される。
【００３６】
図４を参照すると、本開示の実施形態による、ニューラル・ネットワークを自動調整するための方法が示される。４０１において、人工ニューラル・ネットワーク内の複数のニューロンの各々について、非ゼロのシナプス重みを有するシナプスを介してニューロンの出力に結合された活性入力に対応する重複値が特定される。４０２において、複数のニューロンのうちの、重複がニューラル・ネットワークの活性化閾値を超えるニューロンのカウントが特定される。４０３において、カウントは、所定のニューロン活性ターゲットと比較される。４０４において、ニューラル・ネットワークの活性化閾値は、所定のニューロン活性ターゲットに近づくように調整される。
【００３７】
いくつかの実施形態では、閾値の調整は、カウントが所定のニューロン活性ターゲット未満であるときに閾値をデクリメントすることを含む。いくつかの実施形態では、初期閾値は所定である。いくつかの実施形態では、重複値を特定することは、入力にシナプス重みを適用することを含む。いくつかのそのような実施形態において、シナプス重みはバイナリである。
【００３８】
いくつかの実施形態では、複数のニューロンの各々は、人工ニューラル・ネットワークの１つの層内にある。いくつかの実施形態では、複数のニューロンの各々は、人工ニューラル・ネットワークの１つの空間領域内にある。
【００３９】
いくつかの実施形態では、ニューラル・ネットワークは、階層一時メモリを含む。いくつかの実施形態では、所定のニューロン活性ターゲットは、複数のニューロンの約１０％以下に対応する。いくつかの実施形態では、活性入力は、スパース分散表現に対応する。
【００４０】
本明細書に記載された人工ニューラル・ネットワークは、１つ以上のコンピューティング・ノードにおいて展開することができることが理解されよう。例えば、複数のコンピューティング・ノードは、バスまたはネットワークを介して結合することができ、複数のコンピューティング・ノードは、組合せにより人工ニューラル・ネットワークを形成する、様々なシナプスおよびニューロン機能の並列処理を提供する。
【００４１】
ここで図５を参照すると、コンピューティング・ノードの例の概略図が示される。コンピューティング・ノード１０は、適切なコンピューティング・ノードの１つの例にすぎず、本明細書に記載された本発明の実施形態の使用または機能の範囲に関するいかなる限定も示唆することを意図していない。それにもかかわらず、コンピューティング・ノード１０は、実装され、本明細書において上記で示された機能のうちの任意のものを実行することが可能である。
【００４２】
コンピューティング・ノード１０内には、他の多数の汎用または専用コンピューティング・システム環境または構成で運用できるコンピュータ・システム／サーバ１２が存在する。コンピュータ・システム／サーバ１２と共に使用するのに適し得る既知のコンピューティング・システム、環境、または構成、あるいはその組合せの例は、限定ではないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサベース・システム、セット・トップ・ボックス、プログラマブル・コンシューマ・エレクトロニクス、ネットワークＰＣ、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、およびこれらのシステムまたはデバイスのうちのいずれかを含む分散クラウド・コンピューティング環境等を含む。
【００４３】
コンピュータ・システム／サーバ１２は、コンピュータ・システムによって実行されているプログラム・モジュール等の、コンピュータ・システムによって実行可能な命令との一般的な関連において説明され得る。通常、プログラム・モジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造等を含むことができる。コンピュータ・システム／サーバ１２は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される、分散クラウド・コンピューティング環境で実施され得る。分散クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカルおよびリモートの両方のコンピュータ・システム・ストレージ媒体に配置され得る。
【００４４】
図５に示すように、コンピューティング・ノード１０内のコンピュータ・システム／サーバ１２は、汎用コンピューティング・デバイスの形態で示されている。コンピュータ・システム／サーバ１２のコンポーネントは、限定ではないが、１つまたは複数のプロセッサまたは処理ユニット１６、システム・メモリ２８、およびシステム・メモリ２８を含む様々なシステム・コンポーネントをプロセッサ１６に接続するバス１８を含むことができる。
【００４５】
バス１８は、メモリ・バスまたはメモリ・コントローラ、ペリフェラル・バス、アクセラレーテッド・グラフィックス・ポート、および任意の様々なバス・アーキテクチャを使用するプロセッサまたはローカル・バスを含む、任意のいくつかの種類のバス構造のうちの１つまたは複数を表す。例として、限定ではないが、そのようなアーキテクチャは、ＩＳＡ（Industry Standard Architecture）バス、ＭＣＡ（Micro Channel Architecture）バス、ＥＩＳＡ（Enhanced ISA）バス、ＶＥＳＡ（Video Electronics Standards Association）ローカル・バス、およびＰＣＩ（Peripheral Component Interconnects）バスを含む。
【００４６】
コンピュータ・システム／サーバ１２は、通常、様々なコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム／サーバ１２によってアクセスできる任意の利用可能な媒体とすることができ、揮発性および不揮発性媒体、取り外し可能および取り外し不可の媒体を含む。
【００４７】
システム・メモリ２８は、ランダム・アクセス・メモリ（ＲＡＭ：random access memory）３０またはキャッシュ・メモリ３２あるいはその両方等の、揮発性メモリの形態でのコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム／サーバ１２は、他の取り外し可能／取り外し不可、揮発性／不揮発性のコンピュータ・システム・ストレージ媒体を更に含んでもよい。単に例として、取り外し不可、不揮発性の磁気媒体（図示されておらず、通常は「ハード・ドライブ」と呼ばれる）、またはＳＳＤ等の類似の不揮発性ストレージに対する読み取りおよび書き込みを行うために、ストレージ・システム３４を提供することができる。図示されていないが、取り外し可能、不揮発性の磁気ディスク（例えば、「フロッピー（Ｒ）・ディスク」）に対する読み取りおよび書き込みを行うための磁気ディスク・ドライブ、ならびにＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、または他の光媒体等の取り外し可能、不揮発性の光ディスクに対する読み取りおよび書き込みを行うための光ディスク・ドライブを提供することができる。そのような例では、それぞれを、１つまたは複数のデータ媒体インタフェースによってバス１８に接続することができる。下で詳細に示され、説明されるように、メモリ２８は、本発明の実施形態の機能を実行するように構成された一組の（例えば、少なくとも１つの）プログラム・モジュールを備える少なくとも１つのプログラム製品を含むことができる。
【００４８】
例えば、一組の（少なくとも１つの）プログラム・モジュール４２を有するプログラム／ユーティリティ４０がメモリ２８に格納され得るが、これに限定されず、オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データも格納され得る。オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データ、またはこれらの何らかの組合せの各々が、ネットワーキング環境の実装を含んでもよい。プログラム・モジュール４２は、通常、本明細書に記載された本発明の実施形態の機能または方法あるいはその両方を実行する。
【００４９】
また、コンピュータ・システム／サーバ１２は、キーボード、ポインティング・デバイス、ディスプレイ２４等の１つもしくは複数の外部デバイス１４、ユーザがコンピュータ・システム／サーバ１２と情報をやりとりできるようにする１つもしくは複数のデバイス、またはコンピュータ・システム／サーバ１２が１つもしくは複数の他のコンピューティング・デバイスと通信できるようにする任意のデバイス（例えば、ネットワーク・カード、モデム等）、あるいはその組合せと通信してもよい。このような通信は、出入力（Ｉ／Ｏ）インタフェース２２を介して行うことができる。また更に、コンピュータ・システム／サーバ１２は、ローカル・エリア・ネットワーク（ＬＡＮ：local area network）、一般的な広域ネットワーク（ＷＡＮ：wide area network）、またはパブリック・ネットワーク（例えば、インターネット）、あるいはその組合せ等の１つまたは複数のネットワークと、ネットワーク・アダプタ２０を介して通信することができる。図示されているように、ネットワーク・アダプタ２０は、バス１８を介してコンピュータ・システム／サーバ１２の他のコンポーネントと通信する。図示されていないが、他のハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方を、コンピュータ・システム／サーバ１２と併用できるということが理解されるべきである。その例として、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システム等が挙げられるが、これらに限定されない。
【００５０】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体（単数または複数）を含むことができる。
【００５１】
コンピュータ可読ストレージ媒体は、命令実行デバイスにより使用される命令を保持および格納できる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子ストレージ装置、磁気ストレージ装置、光学ストレージ装置、電磁気ストレージ装置、半導体ストレージ装置、または上記のいずれかの適切な組合せとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストとして、以下のもの：すなわち、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能プログラム可能読み出し専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピー（Ｒ）・ディスク、パンチカードもしくは命令がそこに記録された溝内の隆起構造のような機械的にエンコードされたデバイス、および上記の任意の適切な組合せが挙げられる。本明細書で使用される場合、コンピュータ可読ストレージ媒体は、電波、または他の自由に伝搬する電磁波、導波管もしくは他の伝送媒体を通じて伝搬する電磁波（例えば、光ファイバ・ケーブルを通る光パルス）、またはワイヤを通って送られる電気信号等の、一時的信号自体として解釈されない。
【００５２】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング／処理デバイスに、または、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組合せ等のネットワークを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを含むことができる。各コンピューティング／処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インタフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、コンピュータ可読プログラム命令を転送して、それぞれのコンピューティング／処理デバイス内のコンピュータ可読ストレージ媒体内に格納する。
【００５３】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ（ＩＳＡ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋等のオブジェクト指向プログラミング言語、および、「Ｃ」プログラミング言語もしくは類似のプログラミング言語等の通常の手続き型プログラミング言語を含む１つもしくは複数のプログラミング言語の任意の組合せで記述されたソース・コードもしくオブジェクトコードとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、または完全に遠隔コンピュータもしくはサーバ上で実行される場合もある。最後のシナリオにおいて、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）もしくは広域ネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、または（例えば、インターネットサービスプロバイダを用いたインターネットを通じて）外部コンピュータへの接続がなされる場合もある。いくつかの実施形態において、例えば、プログラム可能論理回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはプログラム可能論理アレイ（ＰＬＡ）を含む電子回路は、コンピュータ可読プログラム命令の状態情報を用いて、電子回路を個人化することによりコンピュータ可読プログラム命令を実行し、本発明の態様を実行することができる。
【００５４】
本発明の態様は、本発明の実施形態による方法、装置（システム）およびコンピュータ・プログラム製品のフローチャート図またはブロック図、あるいはその両方を参照して本明細書において説明される。フローチャート図またはブロック図、あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図、あるいはその両方内のブロックの組合せは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
【００５５】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータまたは他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャートまたはブロック図、あるいはその両方の１つまたは複数のブロック内で指定された機能／動作を実施するための手段を作り出すようにすることができる。これらのコンピュータ可読プログラム命令を、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはその組合せを特定の方式で機能させるように指示することができるコンピュータ可読ストレージ媒体内に格納し、それにより、命令が格納されたコンピュータ可読ストレージ媒体が、フローチャートまたはブロック図、あるいはその両方の１つまたは複数のブロックにおいて指定された機能／動作の態様を実施する命令を含む製品を含むようにすることもできる。
【００５６】
コンピュータ可読プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、または他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能装置、または他のデバイス上で行わせてコンピュータ実施のプロセスを生成し、それにより、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行される命令が、フローチャートまたはブロック図、あるいはその両方の１つまたは複数のブロックにおいて指定された機能／動作を実施するようにすることもできる。
【００５７】
図面内のフローチャートおよびブロック図は、本発明の種々の実施形態による、システム、方法、およびコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能および動作を示す。この点に関して、フローチャートまたはブロック図内の各ブロックは、指定された論理機能を実装するための１つまたは複数の実行可能命令を含む、モジュール、セグメント、または命令の一部を表すことができる。いくつかの代替的な実装において、ブロック内に示される機能は、図に示される順序とは異なる順序で生じることがある。例えば、連続して示される２つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、またはこれらのブロックはときとして逆順で実行されることもある。ブロック図またはフローチャート図、あるいはその両方の各ブロック、およびブロック図またはフローチャート図、あるいはその両方内のブロックの組合せは、指定された機能もしくは動作を実行する、または専用のハードウェアとコンピュータ命令との組合せを実行する、専用ハードウェア・ベースのシステムによって実装できることにも留意されたい。
【００５８】
本発明は、米国国防高等研究計画局（ＤＡＲＰＡ）によって与えられた契約第Ｎ６６００１−１５−Ｃ−４０３４の下で米国政府の援助によって行われた。米国政府は本発明における一定の権利を有する。
【００５９】
本発明の様々な実施形態の説明が例証の目的のために提示されたが、これらは、網羅的であること、または本発明を開示された実施形態に制限することを意図するものではない。当業者には、説明される実施形態の範囲および思想から逸脱することなく、多くの修正および変形が明らかであろう。本明細書で用いられる用語は、実施形態の原理、実際の適用、または市場に見られる技術に優る技術的改善を最もよく説明するため、または、当業者が、本明細書に開示される実施形態を理解するのを可能にするために選択された。
【図１】
2020531979.tif 000003
【図２】
2020531979.tif 000004
【図３】
2020531979.tif 000005
【図４】
2020531979.tif 000006
【図５】
2020531979.tif 000007
【手続補正書】
【提出日】令和2年8月24日(2020.8.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサが、
人工ニューラル・ネットワーク内の複数のニューロンの各々について、非ゼロのシナプス重みを有するシナプスを介して前記ニューロンに結合された活性入力に対応する重複値を特定することと、
前記複数のニューロンのうちの、重複が前記ニューラル・ネットワークの活性化閾値を超えるニューロンのカウントを特定することと、
前記カウントを所定のニューロン活性ターゲットと比較することと、
前記ニューラル・ネットワークの前記活性化閾値を、前記所定のニューロン活性ターゲットに近づくように調整することと、
を実行する、方法。
【請求項２】
前記閾値を調整することは、前記カウントが前記所定のニューロン活性ターゲット未満であるときに前記閾値をデクリメントすることを含む、請求項１に記載の方法。
【請求項３】
前記閾値は所定である、請求項１に記載の方法。
【請求項４】
前記重複値を特定することは、前記入力にシナプス重みを適用することを含む、請求項１に記載の方法。
【請求項５】
前記入力に前記シナプス重みを前記適用することは、前記シナプス重みに前記入力を乗算し、その結果を合算することを含む、請求項４に記載の方法。
【請求項６】
前記シナプス重みはバイナリである、請求項４に記載の方法。
【請求項７】
前記複数のニューロンの各々は、前記人工ニューラル・ネットワークの１つの層内にある、請求項１に記載の方法。
【請求項８】
前記複数のニューロンの各々は、前記人工ニューラル・ネットワークの１つの空間領域内にある、請求項１に記載の方法。
【請求項９】
前記ニューラル・ネットワークは、階層一時メモリを含む、請求項１に記載の方法。
【請求項１０】
前記所定のニューロン活性ターゲットは、前記複数のニューロンの約１０％以下に対応する、請求項１に記載の方法。
【請求項１１】
前記活性入力は、スパース分散表現に対応する、請求項１に記載の方法。
【請求項１２】
システムであって、
プログラム命令が埋め込まれたコンピュータ可読ストレージ媒体とプロセッサとを備え、前記プログラム命令は前記プロセッサに、
人工ニューラル・ネットワーク内の複数のニューロンの各々について、非ゼロのシナプス重みを有するシナプスを介して前記ニューロンに結合された活性入力に対応する重複値を特定することと、
前記複数のニューロンのうちの、重複が前記ニューラル・ネットワークの活性化閾値を超えるニューロンのカウントを特定することと、
前記カウントを所定のニューロン活性ターゲットと比較することと、
前記ニューラル・ネットワークの前記活性化閾値を、前記所定のニューロン活性ターゲットに近づくように調整することと、
を実行させる、システム。
【請求項１３】
プロセッサに、
人工ニューラル・ネットワーク内の複数のニューロンの各々について、非ゼロのシナプス重みを有するシナプスを介して前記ニューロンに結合された活性入力の和に対応する重複値を特定することと、
前記複数のニューロンのうちの、重複が前記ニューラル・ネットワークの活性化閾値を超えるニューロンのカウントを特定することと、
前記カウントを所定のニューロン活性ターゲットと比較することと、
前記ニューラル・ネットワークの前記活性化閾値を、前記所定のニューロン活性ターゲットに近づくように調整することと、
を実行させるためのコンピュータ・プログラム。
【請求項１４】
人工ニューラル・ネットワークであって、
複数のシナプスによって相互結合された複数のニューロンであって、各シナプスは、関連付けられたシナプス重みを有し、前記人工ニューラル・ネットワークは、
前記複数のニューロンの各々について、非ゼロのシナプス重みを有するシナプスを介して前記ニューロンに結合された活性入力の和に対応する重複値を特定し、
前記複数のニューロンのうちの、重複が前記ニューラル・ネットワークの活性化閾値を超えるニューロンのカウントを特定し、
前記カウントを所定のニューロン活性ターゲットと比較し、
前記ニューラル・ネットワークの前記活性化閾値を、前記所定のニューロン活性ターゲットに近づくように調整する、
ように構成される、人工ニューラル・ネットワーク。
【請求項１５】
プロセッサが、
人工ニューラル・ネットワークの初期活性化閾値を設定することであって、前記人工ニューラル・ネットワークは、複数のシナプスによって相互結合された複数のニューロンを含む、前記設定することと、
前記人工ニューラル・ネットワーク内のニューロン活性を所定のニューロン活性ターゲットと比較することと、
前記人工ニューラル・ネットワーク内のニューロン活性が前記所定のニューロン活性ターゲットを満たすまで、前記人工ニューラル・ネットワークの前記活性化閾値をデクリメントすることと、
を実行する、方法。
【請求項１６】
ニューロン活性を比較することは、
非ゼロのシナプス重みを有するシナプスを介して前記複数のニューロンに結合された活性入力の和に対応する重複値を特定することと、
前記複数のニューロンのうちの、重複が前記活性化閾値を超えるニューロンのカウントを特定することと、
を含む、請求項１５に記載の方法。
【国際調査報告】
2020531979.tif 000008
2020531979.tif 000009
2020531979.tif 000010