(57)【特許請求の範囲】
【請求項１】
シミュレーションを介して学習されるシナプス重みを生成するためにスパイキング・ニューラル・ネットワークのシミュレーションを実行する一方で、前記シミュレーションと回路チップとの間の１対１の対応関係を維持するステップであって、前記回路チップはスパイキング・ニューラル・ネットワークを備え、前記スパイキング・ニューラル・ネットワークは相互接続ネットワークの交差接合点で複数のデジタル・ニューロンを相互接続する複数のシナプス・デバイスを含み、前記シナプス重みは前記シナプス・デバイスの機能的挙動に影響を与える、前記維持するステップと、
前記複数のシナプス・デバイスに関する前記シナプス重み、前記複数のデジタル・ニューロンに関し且つ前記シミュレーションを介して学習されたニューロン・パラメータ、並びに前記複数のデジタル・ニューロン間の相互接続性に関する相互接続性情報を、スパイキング・ニューラル・ネットワークを実装する前記回路チップにロードするステップと
を含む、方法。
【請求項２】
デジタル積分発火ニューロンと、前記交差接合点での離散値シナプス・デバイスを使用して、前記スパイキング・ニューラル・ネットワークを実装するステップと、
前記チップの物理相互接続性制約および論理相互接続性制約を前記シミュレーションに統合するステップと
をさらに含む、請求項１に記載の方法。
【請求項３】
前記シミュレーションと前記回路チップとの間の１対１の対応関係を維持するステップが、前記回路チップ上の前記ニューロンの物理相互接続性および論理相互接続性の制約に関する情報を前記シミュレーションに組み込むステップをさらに含む、請求項１に記載の方法。
【請求項４】
前記シミュレーションと前記回路チップとの間の１対１の対応関係を維持することは、前記回路チップ上の無作為性または非決定性のソースに関する情報を前記シミュレーションに組み込むことを含む、請求項１に記載の方法。
【請求項５】
前記スパイキング・ニューラル・ネットワークは、ニューロモーフィック／シナプトロニック・スパイキング・ニューラル・ネットワークを含み、
各シナプス・デバイスの機能的挙動は前記シナプス・デバイスの導電性を含み、
オンチップ相互接続性は、前記デジタル・ニューロンに関する物理接続性および論理接続性の組み合わせを含む、
請求項１に記載の方法。
【請求項６】
前記物理接続性が、軸索経路および樹状突起経路を含むクロスバー相互接続ネットワークのハードワイヤリングを含み、
前記樹状突起経路が、前記軸索経路に対して直角であり、
各シナプス・デバイスが、樹状突起経路と軸索経路との間に結合されたクロスバーの交差接合点にある、
請求項５に記載の方法。
【請求項７】
前記論理接続性が、前記デジタル・ニューロンを選択的にアドレス指定するためのアドレス・イベント表現（ＡＥＲ）を含むソフトワイヤリングを含む、請求項６に記載の方法。
【請求項８】
前記ニューロン・パラメータが、記複数のデジタル・ニューロンの各デジタル・ニューロンの機能的挙動を定義するパラメータである、請求項１〜７のいずれか一項に記載の方法。
【請求項９】
前記回路チップが、オンボード学習なしに低電力で超高密度のチップを備える、請求項１に記載の方法。
【請求項１０】
前記シナプス・デバイスがメモリ要素を備える、請求項１に記載の方法。
【請求項１１】
コンピューティング・システム上で前記シミュレーションを実行することをさらに含む、請求項１に記載の方法。
【請求項１２】
スパイキング・ニューラル・ネットワークの回路であって、
複数のデジタル・ニューロンと、
前記複数のデジタル・ニューロンを相互接続する複数のシナプス・デバイスの相互接続ネットワークと、
前記相互接続ネットワークの交差接合点で前記複数のデジタル・ニューロンを相互接続するする前記複数のシナプス・デバイスであって、前記複数のシナプス・デバイスは前記シナプス・デバイスの機能的挙動に影響を与えるシナプス重みを有し、前記シナプス重みは、スパイキング・ニューラル・ネットワークのシミュレーションを実行する一方で、前記シミュレーションと前記回路との間の１対１の対応関係を維持することによって生成され、前記複数のシナプス・デバイスに関する前記シナプス重み、前記複数のデジタル・ニューロンに関し且つ前記シミュレーションを介して学習されたニューロン・パラメータ、並びに前記複数のデジタル・ニューロン間の相互接続性に関する相互接続性情報が前記回路にロードされる、前記シナプス・デバイスと
を備えている、前記回路。
【請求項１３】
前記デジタル・ニューロンは、デジタル積分発火ニューロンを備えており、
前記シナプス・デバイスは、前記相互接続ネットワークの交差接合点に離散値シナプス・メモリ要素を備えており、
前記回路の物理相互接続性制約および論理相互接続性制約は、前記シミュレーションに組み込まれている、
請求項１２に記載の回路。
【請求項１４】
前記シミュレーションと前記回路との間の１対１の対応関係は、前記回路上の無作為性または非決定性のソースに関する情報を前記シミュレーションに組み込むことによって維持される、請求項１２〜１３のいずれか一項に記載の回路。
【請求項１５】
前記複数のシナプス・デバイスが、オン回路相互接続性を使用して前記複数のデジタル・ニューロンを相互接続し、
オン回路相互接続性は、前記デジタル・ニューロンに関する物理接続性および論理接続性の組み合わせを含む、請求項１２〜１４のいずれか一項に記載の回路。
【請求項１６】
前記物理接続性が、軸索経路および樹状突起経路を含むクロスバー相互接続ネットワークのハードワイヤリングを含み、
前記樹状突起経路が、前記軸索経路に対して直角であり、
各シナプス・デバイスが、樹状突起経路と軸索経路との間に結合されたクロスバーの交差接合点にある、
請求項１５に記載の回路。
【請求項１７】
前記論理接続性が、前記デジタル・ニューロンを選択的にアドレス指定するためのアドレス・イベント表現（ＡＥＲ）を含むソフトワイヤリングを含む、請求項１５に記載の回路。
【請求項１８】
前記ニューロン・パラメータが、各デジタル・ニューロンの機能的挙動を定義するパラメータである、請求項１２〜１７のいずれか一項に記載の回路。
【請求項１９】
前記デジタル回路は、オンボード学習なしに低電力で超高密度のデジタル回路チップを備えている、請求項１２〜１８のいずれか一項に記載の回路。
【請求項２０】
前記シナプス・デバイスがメモリ要素を備えている、請求項１２〜１９のいずれか一項に記載の回路。
【請求項２１】
請求項１２〜２０のいずれか一項に記載の回路を備えているデバイス。
【請求項２２】
請求項１〜１１のいずれか一項に記載の方法の各ステップを実行するための手段としてコンピュータ装置を機能させる、コンピュータ・プログラム。
【請求項２３】
スパイキング・ニューラル・ネットワークのシミュレーションを実行するためのコンピューティング・システムであって、
前記スパイキング・ニューラル・ネットワークのシミュレーションと、当該スパイキング・ニューラル・ネットワークを備える回路チップとの間の１対１の対応関係を維持するステップであって、前記スパイキング・ニューラル・ネットワークは相互接続ネットワークの交差接合点で複数のデジタル・ニューロンを相互接続する複数のシナプス・デバイスを含む、前記維持するステップと、
シミュレーションを介してシナプス重みを学習するためにスパイキング・ニューラル・ネットワークのシミュレーションを実行するステップであって、前記シナプス重みは前記シナプス・デバイスの機能的挙動に影響を与える、前記実行するステップと、
前記複数のシナプス・デバイスに関する前記シナプス重み、前記複数のデジタル・ニューロンに関し且つ前記シミュレーションを介して学習されたニューロン・パラメータ、並びに前記複数のデジタル・ニューロン間の相互接続性に関する相互接続性情報を、スパイキング・ニューラル・ネットワークを実装する前記チップにロードするために送出するステップ
を実行するための手段を備えている、前記コンピューティング・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ニューロモーフィック／シナプトロニック・システムに関し、具体的に言えば、スパイキング・ニューラル・ネットワークを実装する、低電力で超高密度のニューロモーフィック／シナプトロニック回路チップに関する。
【背景技術】
【０００２】
ニューロモーフィック／シナプトロニック・システムは、電子システムが生物学的な脳のシステムと本質的に類似した様式で機能できるようにする計算システムである。ニューロモーフィック／シナプトロニック・システムは、擬似ニューラル・ネットワークとも呼ばれる。ニューロモーフィック／シナプトロニック・システムは、通常、０および１を操作する従来のデジタル・モデルを使用せず、その代わりに生物学的な脳のニューロンとほぼ機能的に同等な処理要素間の接続を生成する。ニューロモーフィック／シナプトロニック・システムは、生物学的なニューロンおよびシナプスをモデルにした様々な電子回路からなるものとすることができる。
【０００３】
生体システムでは、あるニューロンの軸索と他のニューロンの樹状突起との間の接点はシナプスと呼ばれる。シナプスに関連して、この２つのニューロンはそれぞれプレシナプスおよびポストシナプスとも呼ばれる。人間の個々の体験の実体は、このシナプスのコンダクタンスに記憶されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の目的の一つは、シミュレーションを使用して学習されるシナプス重みを用いるニューロモーフィック／シナプトロニック・スパイキング・ニューラル・ネットワークのための方法、デバイス、および回路を提供することである。
【課題を解決するための手段】
【０００５】
本発明の実施形態は、ニューロモーフィック／シナプトロニック回路を含むニューロモーフィック／シナプトロニック・システムを提供する。ニューロモーフィック／シナプトロニック回路は、シミュレーションを使用して学習されるシナプス重みを用いるスパイキング・ニューラル・ネットワークを実装する。一実施形態は、シミュレーションを介して学習されるシナプス重みを生成するためにスパイキング・ニューラル・ネットワークのシミュレーションを実行することを含む方法を提供する。学習されたシナプス重みは、スパイキング・ニューラル・ネットワークを実装するニューロモーフィック／シナプトロニック回路チップにロードされる。
【０００６】
チップとシミュレーションとの間では、１対１の対応関係が維持される。１対１の対応関係は、デジタル積分発火ニューロン、デジタル・ニューロンを相互接続するための相互接続ネットワークの交差接合点での離散値シナプスを使用して、スパイキング・ニューラル・ネットワークを実装すること、チップの物理および論理相互接続制約をシミュレーションに統合すること、ならびに、チップ上の無作為性または非決定性のすべてのソースを消去することによって、達成される。このチップのアーキテクチャが低電力を達成し、スモール・フォーム・ファクタを有する。
【０００７】
他の実施形態では、デバイスが、シミュレーションを使用して学習されるシナプス重みを用いるスパイキング・ニューラル・ネットワークを実装するニューロモーフィック／シナプトロニック回路チップを備える。スパイキング・ニューラル・ネットワークは、デジタル電子ニューロンを相互接続するための相互接続ネットワークの交差接合点のシナプスを含む。シミュレーションとチップとの間の１対１の対応関係が相互接続性と共に維持され、学習されたシナプス重みはチップにロードされる。
【０００８】
本発明のこれらおよび他の特徴、態様、および利点は、以下の説明、添付の特許請求の範囲、および添付の図面を参照することによって明らかとなろう。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態に従った、シミュレーションを使用して学習されるシナプス重みを用いるスパイキング・ニューラル・ネットワークを実装する、デジタル電子ニューロンを含む、ニューロモーフィック／シナプトロニック・システムを示す図である。
【図２】本発明の実施形態に従った、シミュレーションとニューロモーフィック／シナプトロニック回路チップとの間の相互関係の対応関係を示す図である。
【図３】本発明の実施形態に従った、クロスバー相互接続ネットワーク内に複数のニューロモーフィック／シナプトロニック回路チップ構築ブロックを含む、ニューロモーフィック／シナプトロニック・ネットワークを示す図である。
【図４】本発明の実施形態に従った、第１の構成内に複数のニューロモーフィック／シナプトロニック回路チップ構築ブロックを含む、ニューロモーフィック／シナプトロニック・ネットワークを示す図である。
【図５】本発明の実施形態に従った、第２の構成内に複数のニューロモーフィック／シナプトロニック回路チップ構築ブロックを含む、ニューロモーフィック／シナプトロニック・ネットワークを示す図である。
【図６】本発明の実施形態に従った、第３の構成内に複数のニューロモーフィック／シナプトロニック回路チップ構築ブロックを含む、ニューロモーフィック／シナプトロニック・ネットワークを示す図である。
【図７】本発明の実施形態に従った、クロスキルト相互接続ネットワーク内に複数のニューロモーフィック／シナプトロニック回路チップ構築ブロックを含む、ニューロモーフィック／シナプトロニック・ネットワークを示す図である。
【図８】本発明の実施形態に従った、シミュレーションを介して学習された情報を生成するためにスパイキング・ニューラル・ネットワークをシミュレーションを実行するため、および、デジタル電子回路を備えるデジタル・チップ上に学習された情報をロードするための、プロセスを示す流れ図である。
【図９】本発明の実施形態に従った、シミュレーションを介して学習された情報を生成するためにスパイキング・ニューラル・ネットワークをシミュレーションを実行するため、および、デジタル電子回路を備えるデジタル・チップ上に学習された情報をロードするための、システムを示す図である。
【図１０】本発明の一実施形態を実装するために有用な情報処理システムを示す、高水準ブロック図である。
【発明を実施するための形態】
【００１０】
本発明の実施形態は、ニューロモーフィック／シナプトロニック回路を含むニューロモーフィック／シナプトロニック・システムを提供する。ニューロモーフィック／シナプトロニック回路は、シミュレーションを使用して学習されるシナプス重みを用いるスパイキング・ニューラル・ネットワークを実装する。
【００１１】
一実施形態は、スパイキング・ニューラル・ネットワークのシミュレーションを実行し、シミュレーションを介して学習されるシナプス重みを生成する。学習されたシナプス重みは、スパイキング・ニューラル・ネットワークを実装するデジタルなニューロモーフィック／シナプトロニック回路チップにロード（エンコード）される。一実施形態では、回路チップのアーキテクチャは、電力消費およびフォーム・ファクタの低減を達成するスパイキング・ニューラル・ネットワークを提供する。
【００１２】
一実施形態では、デジタル回路チップ・アーキテクチャを形成するためのプロセスは、回路チップとシミュレーションとの間の１対１の対応関係を維持する。一例では、１対１の対応関係は、デジタル積分発火ニューロン、デジタル電子ニューロン（デジタル・ニューロン）を相互接続するための相互接続ネットワークの交差接合点での離散値シナプス・デバイス（シナプス）を備える、回路チップ内のスパイキング・ニューラル・ネットワークを実装し、チップの物理および論理相互接続制約をシミュレーションに統合し、回路チップ上の無作為性または非決定性のほぼすべてのソースを消去することによって達成される。
【００１３】
本発明の実施形態によれば、電子ニューロンは、デジタル電子モジュールを含むデジタル電子ニューロンを備える。したがって本明細書では、ニューロンまたは電子ニューロンに対するすべての言及は、本発明の実施形態に従ったデジタル電子ニューロンを示す。それぞれのこうしたニューロンは、身体またはニューロンの体細胞モジュールへの入力を搬送する導電性樹状突起を有する。それぞれのニューロンは、ニューロンがスパイク信号を発する場合に必ず出力を搬送する導電性軸索をさらに有する。ニューロンの体細胞モジュールは、刺激に基づいて決定するなどの機能を提供するように構成されたデジタル回路を備え、体細胞モジュールは、典型的には樹状突起に接続される。一般に、本発明の実施形態によれば、スパイキング・ニューロンは、受け取った入力がしきい値を超えた場合に発火する（パルスを送信する）ことになる。
【００１４】
本発明の実施形態によれば、コンピューティング・システム上に実装されたスパイキング・ニューラル・ネットワーク・シミュレータはシナプス重みを学習する。重みを学習したスパイキング・ニューラル・ネットワークは、オンボード学習を有さず、メモリ要素を使用して電子シナプスを実装するデジタル回路などの、低電力でコンパクトなリアルタイムのニューロモーフィック／シナプトロニック・デジタル・ハードウェア・システムに実装される。図１は、本発明の実施形態に従った、ニューロモーフィック／シナプトロニック・デジタル・システムの実施形態の図を示す。
【００１５】
ニューロモーフィック／シナプトロニック・デジタル・システムは、クロスバー１２に結合されたデジタル電子ニューロン５１を含む回路（チップ）５０を実装する。クロスバー１２は、軸索２６、樹状突起３４、および、各軸索２６と各樹状突起３４との交差接合点のシナプス３１を備える。軸索２６と樹状突起３４との間の各接続は、シナプス３１を通じて形成される。シナプス３１が配置される接合点は、本明細書では交差接合点と呼ばれる。一例では、クロスバー１２のアレイは約０．１ｎｍから１０μｍの範囲内のピッチを有することができる。セット／リセット用の回路３７は、学習されたシナプス重みをチップ内にロードするために使用される周辺電子機器である。ある時間間隔内で各軸索２６を順次活動化させるために、非同期調停モジュール３９が使用される。
【００１６】
本発明の実施形態によれば、各シナプス３１は、シミュレーションを使用して学習されるシナプス重み等の、シナプス３１の機能的挙動を定義するパラメータを有する。したがって、シナプス３１に関するシナプス重みがシナプス３１の機能的挙動に影響を与える。シミュレーションを使用して学習され、デジタル回路上にロードされるこうしたシナプス重みが、回路上のシナプスの機能を定義する。回路上のデジタル・ニューロンからのスパイク信号が接続されたシナプス３１を横切る電圧バイアスを作成し、結果としてダウンストリーム・ニューロンへの電流フローを生じさせる。その電流フローの大きさは、ニューロンの各ペア間のシナプス３１のシナプス重み（コンダクタンス）に基づく。電流の大きさ、または他の感知メカニズムを使用して、回路上のシナプス３１のシナプス重みが確定的に読み取られる。一例では、インターフェース・モジュールは、クロスバー１２内の各シナプス３１が対応するシナプス重みに基づいてシナプス３１の機能的挙動（たとえば導電性）に影響を与える（たとえばプログラミングする）シナプス重みを有する（たとえば「０」はシナプス３１が導電性でないことを示し、「１」はシナプス３１が導電性であることを示す）ように、シナプス重みをプログラミングする。
【００１７】
本発明の一実施形態では、構築ブロック回路チップ５０は、シミュレーションを使用してシナプス重みが学習されるスパイキング・ニューラル・ネットワークを実装する、低電力で超高密度なニューロモーフィック／シナプトロニック回路を備える。スーパーコンピュータ・システムなどのコンピュータ・システム上のスパイキング・ニューラル・ネットワーク・シミュレータは、シナプス重みを学習するかまたは他の方法で計算する。その後、重みが学習または計算されるスパイキング・ニューラル・ネットワークが、低電力でコンパクトなリアルタイム回路チップ５０内に実装される。
【００１８】
図２の相互関係例によって示されるように、シミュレーションと回路チップ５０との間で当該１対１（１：１）の対応関係が維持される。一実施形態では、シミュレータは、実数を使用して学習中のシナプス重みを表すが、学習後、シナプス重みは回路チップ５０上にロードするために２進数（離散値）である。シミュレータは、たとえば発火しきい値など、各デジタル電子ニューロンに対して異なるパラメータを使用することができる。パラメータは回路チップ５０内にプログラミングされる。回路チップ５０上では、各デジタル電子ニューロン５１は並列化のために別々に実装される。一例では、学習された重みは、標準の従来型メモリ技法（たとえば、図１のセット／リセット用回路３７）を使用して回路チップ５０内にロードされる。
【００１９】
シミュレーションで使用される学習規則またはストラテジには、いかなる制約もない。シミュレータは、たとえばスパイク・タイミング依存可塑性（ＳＴＤＰ）、強化学習などを使用することができる。強化学習（ＲＬ）は一般に、アクションの結果に基づく学習を含み、ＲＬモジュールは過去のイベントに基づいてアクションを選択する。ＲＬモジュールによって受け取られる強化信号は、アクションの成功を示す報酬（たとえば数値）である。次にＲＬモジュールは、経時的に報酬を増加させるアクションを選択するように学習する。一実施形態では、シミュレーションは学習ではなくアルゴリズム様式で重みを計算することができる。
【００２０】
一実施形態では、デジタル電子ニューロン５１間のオンチップ接続性（相互接続）は、アドレス・イベントを用いて実装されたソフトワイヤリングと組み合わされる、クロスバー（またはクロスキルト）相互接続ネットワークを使用して実装されたハードワイヤリングの組み合わせを備えることができる。シミュレーションは、ハードワイヤリングおよびソフトワイヤリングの制約を用いて１対１の等価性を維持する。最終学習シミュレーションは、ソフトワイヤリング・アドレスも提供する。
【００２１】
一実施形態では、回路チップ５０上のソフトワイヤリングは、非決定性のアドレス・イベント（たとえばアドレス・イベント表現（Ａｄｄｒｅｓｓ―ｅｖｅｎｔ  ｒｅｐｒｅｓｅｎｔａｔｉｏｎ：ＡＥＲ））を使用して実装される。シミュレーションにおける複製のために、シミュレータは、各軸索遅延に対するランダム・オフセットを組み込むことによって非決定性を組み込む。シミュレーションは、シナプス収率を補償するために、無作為性として制約をシナプスに組み込む。アドレス・イベント表現（ＡＥＲ）要素モジュール２８は、図３に関してさらに以下で説明するように、複数の回路チップ５０間での通信を容易にする。
【００２２】
一般に、クロスバーまたはクロスキルト・アーキテクチャなどの相互接続ネットワーク１２は、回路チップ５０内のＮ個の軸索２６およびＮ個の樹状突起３４の交差接合点に、シナプス３１の矩形アレイまたはＮｘＮ正方形アレイを備えることができる。
【００２３】
本発明の実施形態によれば、電子ニューロン５１は、デジタル同期方式を使用して実装される。電子ニューロン５１が発火した場合、すべての値（Ｎ）は樹状突起３４で並列に読み取られ、ここで電子ニューロン状態は指定された分解能で更新され、各ニューロンは軸索遅延を実装する。なお、本明細書で使用される「場合」という表現は、信号がニューロンの発火後即時に、または、ニューロンの発火後ある期間内に送信されることを意味し得る。
【００２４】
一実施形態では、デジタル電子ニューロンはデジタル同期設計を備え、一例では、各ニューロンの状態更新は、約０．１ミリ秒から１ミリ秒の分解能で生じる。具体的に言えば、一例では、相互接続ネットワーク１２に結合されたニューロン５１の状態は、約０．１ミリ秒から１ミリ秒の分解能で更新され、デジタル・クロック・モジュール６７によって生成される１から１０ｋＨｚのクロック・レートを必要とする。したがって、１ミリ秒の各時間ステップはＮ個のステップに分割され、Ｎから１０＊Ｎ  ｋＨｚの最終クロック・レートが必要である。たとえば、Ｎ＝５１２の場合、クロック・レートは５１２ｋＨｚから５．１２ＭＨｚとなる。Ｎ値の他の例には３２、６４、１２８、２５６、１０２４が含まれ、ここでは２５６が好ましい実施形態である。
【００２５】
回路チップ５０は、ＳＲＡＭ、ＤＲＡＭ、ＥＤＲＡＭ、ＰＣＭ、ＭＴＪ、ＦＬＡＳＨ、ｅＦｕｓｅ、あるいは任意のこうしたメモリ揮発性または不揮発性技術などの、行の並列読み取りをサポートするメモリ要素を使用する、シナプス３１を実装することができる。一例では、ニューロン５１が発火した場合、ニューロン５１に接続されたＮ個のシナプス３１によって維持されるすべてのＮ値は、樹状突起３４で並列に読みとられることが想定される。
【００２６】
本発明の実施形態によれば、回路チップ５０は抑制性（inhibitory）の電子ニューロンを含むことができる。一例では、５つのうち１つのニューロンが抑制性ニューロンである。抑制性ニューロンは、時間ステップの特別な部分で発火する。別の方法として、抑制性ニューロンはわずかに異なる読み取りシーケンスを発することができる。
【００２７】
一般に、興奮性（excitatory）のスパイキング電子ニューロンは、そのターゲット・ニューロンをより発火しやすくするが、抑制性スパイキング電子ニューロンはそのターゲットを発火しにくくする。スパイキング電子ニューロンの多様な実装が使用可能である。一般に、こうしたニューロンは、ソース興奮性ニューロンからの入力が受け取られた場合に増加し、ソース抑制性ニューロンからの入力が受け取られた場合に減少する、カウンタを備える。増加または減少の量は、ソース・ニューロンからターゲット・ニューロンへの接続の強度に依存する。カウンタがあるしきい値に達すると、ニューロンはその独自のスパイクを生成し（すなわち発火し）、カウンタは基準値にリセットされる。
【００２８】
図３は、本発明の実施形態に従った、複数の回路チップ・ブロック５０を含むニューロモーフィック／シナプトロニック回路チップ６０の実施形態の図を示す。一例では、各チップ・ブロック５０内のデジタル電子ニューロン５１は、１ｋＨｚから１０ｋＨｚのクロック・レートで同期的に動作する。
【００２９】
回路チップ６０は、アドレス指定機能を提供し、ＡＥＲ要素モジュール２８を選択的に相互接続するように構成された、ＡＥＲ相互接続モジュール６６をさらに含む。図には示されていないが、各「ＴｏＡＥＲ」要素モジュール２８は、ブロック５０間にソフトワイヤリングを提供するＡＥＲ相互接続モジュール６６を介して、「ＦｒｏｍＡＥＲ」要素モジュール２８に接続される。各ブロック５０内のクロスバー１２は、内部にハードワイヤリングを提供する。
【００３０】
本発明の実施形態によれば、回路チップ６０は、シナプス３１、ニューロン５１、および接続性１２をプログラミングするように構成された、インターフェース・モジュール６８をさらに含む。具体的に言えば、インターフェース・モジュール６８はシミュレーションで学習されるシナプス３１の重みのプログラミングを提供する。たとえば、インターフェース・モジュール６８は、クロスバー１２内の各シナプス３１が値０または１を有するようにシナプス重みをプログラミングする。各チップ・ブロック５０には、クロスバー１２につき９つのシナプス３１、およびチップ・アレイ６０全体では８１のシナプス３１が存在する。回路チップ６０内には２７のニューロン５１（すなわちクロスバー１２につき３つのニューロン５１）が存在する。シミュレーションから学習されるニューロン・パラメータ（たとえば発火しきい値など）は、回路チップ６０にプログラミングされる。さらに、ＡＥＲ相互接続モジュール６６によってプログラミングされる２７のソフトワイヤリング・アドレスが存在する。
【００３１】
図３に示されるように、読み出しインターフェース６３は、刺激インターフェース６５から回路６０内への刺激信号に応答して、回路６０内のニューロン５１の発火アクティビティ（たとえば、どのニューロンが発火するかなど）を読み取る。一適用例では、回路チップ６０は刺激インターフェース６５で様々なセンサ（図示せず）からの感覚入力を受け取り、読み出しインターフェース６３からアクチュエータへ信号を出力する。
【００３２】
クロスバー１２およびＡＥＲでのニューロン５１からシナプス３１へのアクセスは非同期である。一例では、クロスバーへのアクセスは同期的であるが、より高いクロック・レートが必要となる。
【００３３】
図４は、３２＊１０２４のニューロン５１および１０２４＊１０２４のシナプス３１（ここで「＊」は乗算を意味する）を含む、３２ｘ３２のブロック・アレイ５０を備える、ニューロモーフィック／シナプトロニック回路７０の例を示す。
【００３４】
図５は、６４＊４０９６のニューロン５１および４０９６＊４０９６のシナプス３１を含む、６４ｘ６４のブロック・アレイ５０を備える、ニューロモーフィック／シナプトロニック回路７２の例を示す。
【００３５】
図６は、１２８＊１６３８４のニューロン５１および１６３８４＊１６３８４のシナプス３１を含む、１２８ｘ１２８のブロック・アレイ５０を備える、ニューロモーフィック／シナプトロニック回路７４の例を示す。当業者であれば理解されるように、ブロック５０の他の組み合わせも可能である。
【００３６】
図７は、本発明の実施形態に従った、複数のブロック５０、ＡＥＲ相互接続モジュール８６、多重区画化のための体細胞モジュール８７、ならびに、シナプス、ニューロン、およびオンチップ相互接続性のプログラミングのためのインターフェース・モジュール８８を含む、ニューロモーフィック／シナプトロニック回路８０の実施形態の図を示す。
【００３７】
回路チップ８０は、内部でクロスバーがより合わされたクロスキルト相互接続ネットワーク８２を含む。シナプス、ニューロン、および接続性は、シミュレーション結果から回路チップ８０にプログラミングされる。各ニューロンは、体細胞に接続された樹状突起区画を備える。体細胞はいくつかの樹状突起区画から入力を受け取る。回路８０は、固有の２次元受容および投射フィールドを提供する。分離のために、ＮｘＮキルトにはＮ倍速のクロックが必要な可能性がある（たとえば、Ｎ＝１２８の場合、クロック・レートは１２８ｋＨｚから１．２８ＭＨｚに上昇する）。
【００３８】
一実施形態では、デジタル電子ニューロンは体細胞モジュールに接続する樹状突起区画を備える。体細胞は、ニューロンに結合されたシナプスから受け取ったすべての刺激を統合する働きをし、あるしきい値を超えた場合のみ出力で応答する。たとえば、体細胞はいくつかの樹状突起区画から入力を受け取る。体細胞は発火した場合、その信号をいくつかの軸索分岐に伝送する。一般に、各シナプスは、信号を送信する１つのニューロンと信号を受信する１つのニューロンとの接続を含む。
【００３９】
一実施形態では、本発明は、より高いクロック・レートでの、クロスバーまたはクロスキルト相互接続ネットワークへの同期アクセスに基づく、オンボード学習を伴うチップへの遷移にも適用可能である。回路はＳＴＤＰセット／リセット・モジュールを含む。本発明の実施形態によれば、シナプス３１は複数の情報ビットを実装する。一例では、ＲＧＢ方式に従い、シナプス３１はビットＲ、ビットＧ、およびビットＢを含む３ビットを維持する。ビットＲは読み取り用、ビットＧはＳＴＤＰセット用、およびビットＢはＳＴＤＰリセット用である。
【００４０】
図８は、本発明の実施形態に従った、シミュレーションを介して学習される情報を生成するためのスパイキング・ニューラル・ネットワークのシミュレーションを実行するため、およびデジタル電子回路を備えるデジタル・チップ上に学習された情報をロードするための、プロセス９０の流れ図を示す。プロセス９０は以下のプロセス・ブロックを含む。
【００４１】
ブロック９１：デジタルの同期スパイキング電子ニューロンのスパイキング・ニューラル・ネットワークに関するシミュレーションを、コンピュータ・システム上に実装する。
【００４２】
ブロック９２：デジタル積分発火ニューロン、デジタル・ニューロンを相互接続するための相互接続ネットワークの交差接合点での離散値シナプスを使用して、スパイキング・ニューラル・ネットワークを実装するための、デジタル・チップとシミュレーションとの間の１対１の対応関係を維持する。
【００４３】
ブロック９３：チップ上のニューロンの物理相互接続性（すなわちハードワイヤリング）および論理相互接続性（すなわちソフトワイヤリング）の制約に関する情報をシミュレーションに組み込む。
【００４４】
ブロック９４：チップ上の無作為性または非決定性のソースを低減させる（好ましくはすべてを消去する）ために、チップ上の無作為性または非決定性のソースに関する情報をシミュレーションに組み込む。たとえば、シナプス収率／操作における無作為性の知識がシミュレーションに組み込まれる。
【００４５】
ブロック９５：シミュレーションを介して学習されるシナプスの機能を定義するシナプス重みを生成する。各シナプスは、シナプスの機能的挙動を定義するパラメータを有する。それらのパラメータはシミュレーションにおいて学習し、チップに焼き付けることができる。チップは、シナプス重みの離散値を格納することのみが可能である。シミュレーションは、実数を使用して学習中のシナプス重みを表すことが可能であり、学習後、シナプス重みは２進数または離散値に変換される。シミュレーション・ストラテジにかかわらず、出力されるシナプス重みはデジタル・チップ上に焼き付けることが可能なタイプである。
【００４６】
ブロック９６：シミュレーションを介して学習されるニューロンの機能を定義するパラメータを生成する。各ニューロンは、ニューロンの機能的挙動を定義するパラメータを有する。シミュレーションにおいて学習されたニューロン・パラメータをチップにロードおよび焼き付けることが可能であり、ここで各ニューロンはチップ上に別々の回路を有する。
【００４７】
ブロック９７：シミュレーションから、チップ上のニューロンに関する物理および論理相互接続性情報を生成する。
【００４８】
ブロック９８：シミュレーション結果をチップにロード（エンコード）する。シミュレーション結果は、各シナプスに関するシナプス重みおよび各ニューロンに関するパラメータを含む。さらに、ニューロン間のオンチップ・ハードワイヤリングおよびソフトワイヤリングを含む相互接続性に関する情報は、デジタル・チップにロードされる。チップは、スパイキング・ニューラル・ネットワークを実装するニューロモーフィック／シナプトロニック・デジタル回路を備える。
【００４９】
一実施形態では、デジタル電子ニューロン間のオンチップ接続性（相互接続）は、電子ニューロン間のハードワイヤリングおよびソフトワイヤリングの組み合わせを含む。ハードワイヤリングは、クロスバー（またはクロスキルト）相互接続ネットワークを使用して実装可能である。一例では、ハードワイヤリングは、その各交差接合点にシナプスを伴う、軸索導電性経路（軸索）および横導電性樹状突起経路（樹状突起）のクロスバーを備える。
【００５０】
一実施形態では、ソフトワイヤリングは、アドレス・テーブルおよびＡＥＲモジュールによって実装されるアドレス・イベントを使用して達成される。記載のように、シミュレーションは、ハードワイヤリングおよびソフトワイヤリングの制約を用いて１対１の対応関係を維持する。最終的に学習されるシミュレーションはソフトワイヤリング・アドレスも提供する。
【００５１】
図９は、本発明の実施形態に従った、シミュレーションを介して学習される情報（シミュレーション結果）１３を生成するためにシミュレータ１１を使用してスパイキング・ニューラル・ネットワークのシミュレーションを実行するため、および、デジタル電子回路を備えるデジタル・チップ１５上に学習された情報をロードするための、システム１０の図を示す。本発明の実施形態に従って前述したように、１対１の対応関係はシミュレーション間で維持される。好ましくは、シミュレーションは主にチップ機能（たとえば、適用、有用性、効用）に重点が置かれており、これによってチップは、その機能の低電力でコンパクトな実装を提供する。
【００５２】
本発明の実施形態は、コンピュータ、処理デバイス、または任意の命令実行システムによって、あるいはそれらに関連して使用するためのプログラム・コードを提供する、コンピュータ使用可能またはコンピュータ読み取り可能媒体からアクセス可能な、コンピュータ・シミュレーションまたはプログラム製品の形を取ることができる。当業者であれば理解されるように、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として具体化可能である。したがって本発明の態様は、完全にハードウェア実施形態、完全にソフトウェア実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、あるいは、本明細書ではすべて一般に「回路」、「モジュール」、または「システム」と呼ばれる可能性があるソフトウェアおよびハードウェアの態様を組み合わせた実施形態の形を取ることができる。さらに本発明の態様は、コンピュータ読み取り可能プログラム・コードがその上に具体化された１つまたは複数のコンピュータ読み取り可能媒体内に具体化されたコンピュータ・プログラム製品の形を取ることも可能である。
【００５３】
１つまたは複数のコンピュータ読み取り可能媒体の任意の組み合わせを使用することができる。コンピュータ読み取り可能媒体は、コンピュータ読み取り可能信号媒体またはコンピュータ読み取り可能記憶媒体とすることができる。コンピュータ読み取り可能記憶媒体は、たとえば、電子、磁気、光、電磁、赤外線、または半導体のシステム、装置、またはデバイス、あるいはそれらの任意の好適な組み合わせとすることができるが、それらに限定されるものではない。コンピュータ読み取り可能記憶媒体のより特定な例（非網羅的リスト）は、１本または複数本のワイヤを有する電気接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭまたはＦｌａｓｈメモリ）、光ファイバ、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、光記憶デバイス、磁気記憶デバイス、または上記の任意の好適な組み合わせを含むことになる。本明細書との関連において、コンピュータ読み取り可能記憶媒体は、命令実行システム、装置、またはデバイスによって、あるいはそれらに関連して使用するためのプログラムを含むかまたは記憶することが可能な、任意の有形媒体とすることができる。
【００５４】
コンピュータ読み取り可能信号媒体は、内部、たとえばベースバンド内に、または搬送波の一部として具体化された、コンピュータ読み取り可能プログラム・コードを備えた伝搬データ信号を含むことができる。こうした伝搬信号は、電磁、光、またはそれらの任意の好適な組み合わせを含むがそれらに限定されない、様々な形のいずれかを取ることができる。コンピュータ読み取り可能信号媒体は、コンピュータ読み取り可能記憶媒体ではなく、命令実行システム、装置、またはデバイスによって、あるいはそれらに関連して使用するためのプログラムを通信、伝搬、または移送することが可能な、任意のコンピュータ読み取り可能媒体とすることができる。
【００５５】
コンピュータ読み取り可能媒体上に具体化されたプログラム・コードは、無線、有線、光ファイバ・ケーブル、ＲＦなど、またはそれらの任意の好適な組み合わせを含むがそれらに限定されない、任意の適切な媒体を使用して伝送することができる。本発明の態様に関する動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む、１つまたは複数のプログラミング言語の任意の組み合わせで作成可能である。プログラム・コードは、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロン型ソフトウェア・パッケージとして、一部がユーザのコンピュータ上および一部がリモート・コンピュータ上で、または完全にリモート・コンピュータまたはサーバ上で、実行可能である。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを介してユーザのコンピュータに接続可能であるか、あるいは（たとえば、インターネット・サービス・プロバイダを使用してインターネットを介して）外部コンピュータへの接続が可能である。
【００５６】
本発明の態様について、本発明の実施形態に従った方法、装置（システム）、およびコンピュータ・プログラム製品の流れ図あるいはブロック図またはその両方を参照しながら以下で説明する。流れ図あるいはブロック図またはその両方の各ブロック、および、流れ図あるいはブロック図またはその両方内のブロックの組み合わせは、コンピュータ・プログラム命令によって実装可能であることを理解されよう。これらのコンピュータ・プログラム命令は、機械を製造するために、汎用コンピュータ、特定用途向けコンピュータ、または他のプログラマブル・データ処理装置の、プロセッサに提供可能であるため、結果として、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行する命令は、流れ図あるいはブロック図またはその両方のブロック内に指定された機能／動作を実装するための手段を作成することになる。
【００５７】
これらのコンピュータ・プログラム命令は、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスに特定の様式で機能するように指示することが可能な、コンピュータ読み取り可能媒体内に格納することも可能であるため、結果として、コンピュータ読み取り可能媒体内に格納された命令が、流れ図あるいはブロック図またはその両方のブロック内に指定された機能／動作を実装する命令を含む製品を製造することになる。
【００５８】
コンピュータ・プログラム命令は、一連の動作ステップをコンピュータ、他のプログラマブル装置、またはコンピュータ実装プロセスを生成するための他のデバイス上で実行させるために、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードすることも可能であるため、結果として、コンピュータまたは他のプログラマブル装置上で実行する命令が、流れ図あるいはブロック図またはその両方のブロック内に指定された機能／動作を実装するためのプロセスを提供することになる。
【００５９】
図１０は、本発明の一実施形態を実装するために有用な情報処理システム１００を示す、高水準ブロック図である。本発明の実施形態に従ったスパイキング・ニューラル・ネットワーク・シミュレータは、システム１００を使用して実装可能である。
【００６０】
コンピュータ・システム１００は、プロセッサ１０２などの１つまたは複数のプロセッサを含む。プロセッサ１０２は、通信インフラストラクチャ１０４（たとえば通信バス、クロスオーバ・バー、またはネットワーク）に接続される。
【００６１】
コンピュータ・システムは、グラフィクス、テキスト、および他のデータを、ディスプレイ・ユニット１０８上に表示するために通信インフラストラクチャ１０４から（または図示されていないフレーム・バッファから）転送する、ディスプレイ・インターフェース１０６を含むことができる。コンピュータ・システムは、メイン・メモリ１１０、好ましくはランダム・アクセス・メモリ（ＲＡＭ）も含み、２次メモリ１１２を含むこともできる。２次メモリ１１２は、たとえばハード・ディスク・ドライブ１１４、あるいは、たとえばフレキシブル・ディスク・ドライブ、磁気テープ・ドライブ、または光ディスク・ドライブを表す、取り外し可能記憶ドライブ１１６またはその両方を含むことができる。取り外し可能記憶ドライブ１１６は、当業者によく知られた様式で、取り外し可能記憶ユニット１１８からの読み取りあるいはこれへの書き込み、またはその両方を実行する。取り外し可能記憶ユニット１１８は、取り外し可能記憶ドライブ１１６によって読み取りおよび書き込みされる、たとえばフレキシブル・ディスク、コンパクト・ディスク、磁気テープ、または光ディスクなどを表す。理解されるように、取り外し可能記憶ユニット１１８は、コンピュータ・ソフトウェアあるいはデータまたはその両方を内部に格納したコンピュータ読み取り可能媒体を含む。
【００６２】
代替実施形態では、２次メモリ１１２は、コンピュータ・プログラムまたは他の命令をコンピュータ・システムにロードできるようにするための、他の同様の手段を含むことができる。こうした手段は、たとえば取り外し可能記憶ユニット１２０およびインターフェース１２２を含むことができる。こうした手段の例は、（ビデオ・ゲーム・デバイスに見られるような）プログラム・パッケージおよびパッケージ・インターフェース、（ＥＰＲＯＭまたはＰＲＯＭなどの）取り外し可能メモリ・チップおよび関連ソケット、ならびにソフトウェアおよびデータを取り外し可能記憶ユニット１２０からコンピュータ・システムに転送できるようにする他の取り外し可能記憶ユニット１２０およびインターフェース１２２を含むことができる。
【００６３】
コンピュータ・システムは、通信インターフェース１２４も含むことができる。通信インターフェース１２４は、ソフトウェアおよびデータをコンピュータ・システムと外部デバイスとの間で転送できるようにする。通信インターフェース１２４の例は、モデム、ネットワーク・インターフェース（イーサネット・カードなど）、通信ポート、またはＰＣＭＣＩＡスロットおよびカードなどを含むことができる。通信インターフェース１２４を介して転送されるソフトウェアおよびデータは、たとえば通信インターフェース１２４によって受信されることが可能な電子、電磁、光、または他の信号とすることが可能な信号の形である。これらの信号は、通信経路（すなわちチャネル）１２６を介して通信インターフェース１２４に提供される。この通信経路１２６は信号を搬送し、ワイヤまたはケーブル、光ファイバ、電話回線、携帯電話リンク、ＲＦリンク、あるいは他の通信チャネル、またはそれらすべてを使用して実装可能である。
【００６４】
本書では、「コンピュータ・プログラム媒体」、「コンピュータ使用可能媒体」、および「コンピュータ読み取り可能媒体」という用語は、全般的に、メイン・メモリ１１０および２次メモリ１１２、取り外し可能記憶ドライブ１１６、ならびにハード・ディスク・ドライブ１１４にインストールされたハード・ディスクなどの、媒体を言い表すために使用される。
【００６５】
コンピュータ・プログラム（コンピュータ制御論理とも呼ばれる）は、メイン・メモリ１１０あるいは２次メモリ１１２またはその両方に格納される。コンピュータ・プログラムは、通信インターフェース１２４を介しても受信可能である。コンピュータ・プログラムは、実行された場合、本明細書で論じられたような本発明の特徴をコンピュータ・システムが実行できるようにするものである。特にコンピュータ・プログラムは、実行された場合、コンピュータ・システムの特徴をプロセッサ１０２が実行できるようにするものである。したがってこうしたコンピュータ・プログラムは、コンピュータ・システムのコントローラを表す。
【００６６】
図面内の流れ図およびブロック図は、本発明の様々な実施形態に従ったシステム、方法、およびコンピュータ・プログラム製品の、可能な実装のアーキテクチャ、機能、および動作を示す。この点で、流れ図またはブロック図内の各ブロックは、指定された論理機能を実装するための１つまたは複数の実行可能命令を含む、モジュール、セグメント、またはコードの一部を表すことができる。いくつかの代替実装では、ブロック内に示された機能が図面内に示された順序とは異なる順序で実行できることにも留意されたい。たとえば、連続して示される２つのブロックは、含まれる機能に応じて、実際にはほぼ同時に実行可能であるか、またはブロックは時には逆の順序で実行可能である。ブロック図あるいは流れ図またはその両方の各ブロック、および、ブロック図あるいは流れ図またはその両方におけるブロックの組み合わせが、指定された機能または動作、あるいは特定用途向けハードウェアおよびコンピュータ命令の組み合わせを実行する、特定用途向けハードウェア・ベース・システムによって実装可能であることにも留意されたい。
【００６７】
以下の特許請求の範囲における、すべての手段またはステップならびに機能要素の対応する構造、材料、動作、および等価物は、具体的に請求された他の請求要素と組み合わせて機能を実行するための、任意の構造、材料、または動作を含むことが意図される。本発明の説明は例示および説明の目的で提示されたものであるが、網羅的であるかまたは開示された形の本発明に限定されることは意図されていない。当業者であれば、本発明の範囲を逸脱することなく多くの修正および変形が明らかとなろう。実施形態は、本発明の原理および実際の適用例を最も良く説明するため、ならびに他の当業者が企図された特定の用途に合うような様々な修正を伴う様々な実施形態に関して本発明を理解できるようにするために、選択および説明されたものである。
【図１】
0005963315.tif 000002
【図２】
0005963315.tif 000003
【図３】
0005963315.tif 000004
【図４】
0005963315.tif 000005
【図５】
0005963315.tif 000006
【図６】
0005963315.tif 000007
【図７】
0005963315.tif 000008
【図８】
0005963315.tif 000009
【図９】
0005963315.tif 000010
【図１０】
0005963315.tif 000011