(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5963315
(24)【登録日】2016年7月8日
(45)【発行日】2016年8月3日
(54)【発明の名称】シミュレーションを使用して学習されるシナプス重みを用いるニューロモーフィック/シナプトロニック・スパイキング・ニューラル・ネットワークのための方法、デバイス、および回路
(51)【国際特許分類】
G06N 3/063 20060101AFI20160721BHJP
【FI】
G06N3/063
【請求項の数】23
【全頁数】18
(21)【出願番号】特願2013-535318(P2013-535318)
(86)(22)【出願日】2011年8月4日
(65)【公表番号】特表2013-546065(P2013-546065A)
(43)【公表日】2013年12月26日
(86)【国際出願番号】EP2011063485
(87)【国際公開番号】WO2012055593
(87)【国際公開日】20120503
【審査請求日】2014年3月10日
(31)【優先権主張番号】12/916,332
(32)【優先日】2010年10月29日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
(74)【代理人】
【識別番号】100108501
【弁理士】
【氏名又は名称】上野 剛史
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】モドハ、ダーメンドラ、シャンティラル
【審査官】
多胡 滋
(56)【参考文献】
【文献】
特開平05−217010(JP,A)
【文献】
特開平05−128082(JP,A)
【文献】
特開平06−052138(JP,A)
【文献】
特開平06−162232(JP,A)
【文献】
国際公開第2009/113993(WO,A1)
【文献】
関根卓也,他3名,生体に類似した膜電位特性を持つニューロチップの開発,電子情報通信学会技術研究報告 NC2001−168〜194 ニューロコンピューティング,日本,社団法人電子情報通信学会,2002年 3月12日,第101巻,第736号,pp.1-8
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00
(57)【特許請求の範囲】
【請求項1】
シミュレーションを介して学習されるシナプス重みを生成するためにスパイキング・ニューラル・ネットワークのシミュレーションを実行する一方で、前記シミュレーションと回路チップとの間の1対1の対応関係を維持するステップであって、前記回路チップはスパイキング・ニューラル・ネットワークを備え、前記スパイキング・ニューラル・ネットワークは相互接続ネットワークの交差接合点で複数のデジタル・ニューロンを相互接続する複数のシナプス・デバイスを含み、前記シナプス重みは前記シナプス・デバイスの機能的挙動に影響を与える、前記維持するステップと、
前記複数のシナプス・デバイスに関する前記シナプス重み、前記複数のデジタル・ニューロンに関し且つ前記シミュレーションを介して学習されたニューロン・パラメータ、並びに前記複数のデジタル・ニューロン間の相互接続性に関する相互接続性情報を、スパイキング・ニューラル・ネットワークを実装する前記回路チップにロードするステップと
を含む、方法。
【請求項2】
デジタル積分発火ニューロンと、前記交差接合点での離散値シナプス・デバイスを使用して、前記スパイキング・ニューラル・ネットワークを実装するステップと、
前記チップの物理相互接続性制約および論理相互接続性制約を前記シミュレーションに統合するステップと
をさらに含む、請求項1に記載の方法。
【請求項3】
前記シミュレーションと前記回路チップとの間の1対1の対応関係を維持するステップが、前記回路チップ上の前記ニューロンの物理相互接続性および論理相互接続性の制約に関する情報を前記シミュレーションに組み込むステップをさらに含む、請求項1に記載の方法。
【請求項4】
前記シミュレーションと前記回路チップとの間の1対1の対応関係を維持することは、前記回路チップ上の無作為性または非決定性のソースに関する情報を前記シミュレーションに組み込むことを含む、請求項1に記載の方法。
【請求項5】
前記スパイキング・ニューラル・ネットワークは、ニューロモーフィック/シナプトロニック・スパイキング・ニューラル・ネットワークを含み、
各シナプス・デバイスの機能的挙動は前記シナプス・デバイスの導電性を含み、
オンチップ相互接続性は、前記デジタル・ニューロンに関する物理接続性および論理接続性の組み合わせを含む、
請求項1に記載の方法。
【請求項6】
前記物理接続性が、軸索経路および樹状突起経路を含むクロスバー相互接続ネットワークのハードワイヤリングを含み、
前記樹状突起経路が、前記軸索経路に対して直角であり、
各シナプス・デバイスが、樹状突起経路と軸索経路との間に結合されたクロスバーの交差接合点にある、
請求項5に記載の方法。
【請求項7】
前記論理接続性が、前記デジタル・ニューロンを選択的にアドレス指定するためのアドレス・イベント表現(AER)を含むソフトワイヤリングを含む、請求項6に記載の方法。
【請求項8】
前記ニューロン・パラメータが、記複数のデジタル・ニューロンの各デジタル・ニューロンの機能的挙動を定義するパラメータである、請求項1〜7のいずれか一項に記載の方法。
【請求項9】
前記回路チップが、オンボード学習なしに低電力で超高密度のチップを備える、請求項1に記載の方法。
【請求項10】
前記シナプス・デバイスがメモリ要素を備える、請求項1に記載の方法。
【請求項11】
コンピューティング・システム上で前記シミュレーションを実行することをさらに含む、請求項1に記載の方法。
【請求項12】
スパイキング・ニューラル・ネットワークの回路であって、
複数のデジタル・ニューロンと、
前記複数のデジタル・ニューロンを相互接続する複数のシナプス・デバイスの相互接続ネットワークと、
前記相互接続ネットワークの交差接合点で前記複数のデジタル・ニューロンを相互接続するする前記複数のシナプス・デバイスであって、前記複数のシナプス・デバイスは前記シナプス・デバイスの機能的挙動に影響を与えるシナプス重みを有し、前記シナプス重みは、スパイキング・ニューラル・ネットワークのシミュレーションを実行する一方で、前記シミュレーションと前記回路との間の1対1の対応関係を維持することによって生成され、前記複数のシナプス・デバイスに関する前記シナプス重み、前記複数のデジタル・ニューロンに関し且つ前記シミュレーションを介して学習されたニューロン・パラメータ、並びに前記複数のデジタル・ニューロン間の相互接続性に関する相互接続性情報が前記回路にロードされる、前記シナプス・デバイスと
を備えている、前記回路。
【請求項13】
前記デジタル・ニューロンは、デジタル積分発火ニューロンを備えており、
前記シナプス・デバイスは、前記相互接続ネットワークの交差接合点に離散値シナプス・メモリ要素を備えており、
前記回路の物理相互接続性制約および論理相互接続性制約は、前記シミュレーションに組み込まれている、
請求項12に記載の回路。
【請求項14】
前記シミュレーションと前記回路との間の1対1の対応関係は、前記回路上の無作為性または非決定性のソースに関する情報を前記シミュレーションに組み込むことによって維持される、請求項12〜13のいずれか一項に記載の回路。
【請求項15】
前記複数のシナプス・デバイスが、オン回路相互接続性を使用して前記複数のデジタル・ニューロンを相互接続し、
オン回路相互接続性は、前記デジタル・ニューロンに関する物理接続性および論理接続性の組み合わせを含む、請求項12〜14のいずれか一項に記載の回路。
【請求項16】
前記物理接続性が、軸索経路および樹状突起経路を含むクロスバー相互接続ネットワークのハードワイヤリングを含み、
前記樹状突起経路が、前記軸索経路に対して直角であり、
各シナプス・デバイスが、樹状突起経路と軸索経路との間に結合されたクロスバーの交差接合点にある、
請求項15に記載の回路。
【請求項17】
前記論理接続性が、前記デジタル・ニューロンを選択的にアドレス指定するためのアドレス・イベント表現(AER)を含むソフトワイヤリングを含む、請求項15に記載の回路。
【請求項18】
前記ニューロン・パラメータが、各デジタル・ニューロンの機能的挙動を定義するパラメータである、請求項12〜17のいずれか一項に記載の回路。
【請求項19】
前記デジタル回路は、オンボード学習なしに低電力で超高密度のデジタル回路チップを備えている、請求項12〜18のいずれか一項に記載の回路。
【請求項20】
前記シナプス・デバイスがメモリ要素を備えている、請求項12〜19のいずれか一項に記載の回路。
【請求項21】
請求項12〜20のいずれか一項に記載の回路を備えているデバイス。
【請求項22】
請求項1〜11のいずれか一項に記載の方法の各ステップを実行するための手段としてコンピュータ装置を機能させる、コンピュータ・プログラム。
【請求項23】
スパイキング・ニューラル・ネットワークのシミュレーションを実行するためのコンピューティング・システムであって、
前記スパイキング・ニューラル・ネットワークのシミュレーションと、当該スパイキング・ニューラル・ネットワークを備える回路チップとの間の1対1の対応関係を維持するステップであって、前記スパイキング・ニューラル・ネットワークは相互接続ネットワークの交差接合点で複数のデジタル・ニューロンを相互接続する複数のシナプス・デバイスを含む、前記維持するステップと、
シミュレーションを介してシナプス重みを学習するためにスパイキング・ニューラル・ネットワークのシミュレーションを実行するステップであって、前記シナプス重みは前記シナプス・デバイスの機能的挙動に影響を与える、前記実行するステップと、
前記複数のシナプス・デバイスに関する前記シナプス重み、前記複数のデジタル・ニューロンに関し且つ前記シミュレーションを介して学習されたニューロン・パラメータ、並びに前記複数のデジタル・ニューロン間の相互接続性に関する相互接続性情報を、スパイキング・ニューラル・ネットワークを実装する前記チップにロードするために送出するステップ
を実行するための手段を備えている、前記コンピューティング・システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ニューロモーフィック/シナプトロニック・システムに関し、具体的に言えば、スパイキング・ニューラル・ネットワークを実装する、低電力で超高密度のニューロモーフィック/シナプトロニック回路チップに関する。
【背景技術】
【0002】
ニューロモーフィック/シナプトロニック・システムは、電子システムが生物学的な脳のシステムと本質的に類似した様式で機能できるようにする計算システムである。ニューロモーフィック/シナプトロニック・システムは、擬似ニューラル・ネットワークとも呼ばれる。ニューロモーフィック/シナプトロニック・システムは、通常、0および1を操作する従来のデジタル・モデルを使用せず、その代わりに生物学的な脳のニューロンとほぼ機能的に同等な処理要素間の接続を生成する。ニューロモーフィック/シナプトロニック・システムは、生物学的なニューロンおよびシナプスをモデルにした様々な電子回路からなるものとすることができる。
【0003】
生体システムでは、あるニューロンの軸索と他のニューロンの樹状突起との間の接点はシナプスと呼ばれる。シナプスに関連して、この2つのニューロンはそれぞれプレシナプスおよびポストシナプスとも呼ばれる。人間の個々の体験の実体は、このシナプスのコンダクタンスに記憶されている。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の目的の一つは、シミュレーションを使用して学習されるシナプス重みを用いるニューロモーフィック/シナプトロニック・スパイキング・ニューラル・ネットワークのための方法、デバイス、および回路を提供することである。
【課題を解決するための手段】
【0005】
本発明の実施形態は、ニューロモーフィック/シナプトロニック回路を含むニューロモーフィック/シナプトロニック・システムを提供する。ニューロモーフィック/シナプトロニック回路は、シミュレーションを使用して学習されるシナプス重みを用いるスパイキング・ニューラル・ネットワークを実装する。一実施形態は、シミュレーションを介して学習されるシナプス重みを生成するためにスパイキング・ニューラル・ネットワークのシミュレーションを実行することを含む方法を提供する。学習されたシナプス重みは、スパイキング・ニューラル・ネットワークを実装するニューロモーフィック/シナプトロニック回路チップにロードされる。
【0006】
チップとシミュレーションとの間では、1対1の対応関係が維持される。1対1の対応関係は、デジタル積分発火ニューロン、デジタル・ニューロンを相互接続するための相互接続ネットワークの交差接合点での離散値シナプスを使用して、スパイキング・ニューラル・ネットワークを実装すること、チップの物理および論理相互接続制約をシミュレーションに統合すること、ならびに、チップ上の無作為性または非決定性のすべてのソースを消去することによって、達成される。このチップのアーキテクチャが低電力を達成し、スモール・フォーム・ファクタを有する。
【0007】
他の実施形態では、デバイスが、シミュレーションを使用して学習されるシナプス重みを用いるスパイキング・ニューラル・ネットワークを実装するニューロモーフィック/シナプトロニック回路チップを備える。スパイキング・ニューラル・ネットワークは、デジタル電子ニューロンを相互接続するための相互接続ネットワークの交差接合点のシナプスを含む。シミュレーションとチップとの間の1対1の対応関係が相互接続性と共に維持され、学習されたシナプス重みはチップにロードされる。
【0008】
本発明のこれらおよび他の特徴、態様、および利点は、以下の説明、添付の特許請求の範囲、および添付の図面を参照することによって明らかとなろう。
【図面の簡単な説明】
【0009】
【
図1】本発明の実施形態に従った、シミュレーションを使用して学習されるシナプス重みを用いるスパイキング・ニューラル・ネットワークを実装する、デジタル電子ニューロンを含む、ニューロモーフィック/シナプトロニック・システムを示す図である。
【
図2】本発明の実施形態に従った、シミュレーションとニューロモーフィック/シナプトロニック回路チップとの間の相互関係の対応関係を示す図である。
【
図3】本発明の実施形態に従った、クロスバー相互接続ネットワーク内に複数のニューロモーフィック/シナプトロニック回路チップ構築ブロックを含む、ニューロモーフィック/シナプトロニック・ネットワークを示す図である。
【
図4】本発明の実施形態に従った、第1の構成内に複数のニューロモーフィック/シナプトロニック回路チップ構築ブロックを含む、ニューロモーフィック/シナプトロニック・ネットワークを示す図である。
【
図5】本発明の実施形態に従った、第2の構成内に複数のニューロモーフィック/シナプトロニック回路チップ構築ブロックを含む、ニューロモーフィック/シナプトロニック・ネットワークを示す図である。
【
図6】本発明の実施形態に従った、第3の構成内に複数のニューロモーフィック/シナプトロニック回路チップ構築ブロックを含む、ニューロモーフィック/シナプトロニック・ネットワークを示す図である。
【
図7】本発明の実施形態に従った、クロスキルト相互接続ネットワーク内に複数のニューロモーフィック/シナプトロニック回路チップ構築ブロックを含む、ニューロモーフィック/シナプトロニック・ネットワークを示す図である。
【
図8】本発明の実施形態に従った、シミュレーションを介して学習された情報を生成するためにスパイキング・ニューラル・ネットワークをシミュレーションを実行するため、および、デジタル電子回路を備えるデジタル・チップ上に学習された情報をロードするための、プロセスを示す流れ図である。
【
図9】本発明の実施形態に従った、シミュレーションを介して学習された情報を生成するためにスパイキング・ニューラル・ネットワークをシミュレーションを実行するため、および、デジタル電子回路を備えるデジタル・チップ上に学習された情報をロードするための、システムを示す図である。
【
図10】本発明の一実施形態を実装するために有用な情報処理システムを示す、高水準ブロック図である。
【発明を実施するための形態】
【0010】
本発明の実施形態は、ニューロモーフィック/シナプトロニック回路を含むニューロモーフィック/シナプトロニック・システムを提供する。ニューロモーフィック/シナプトロニック回路は、シミュレーションを使用して学習されるシナプス重みを用いるスパイキング・ニューラル・ネットワークを実装する。
【0011】
一実施形態は、スパイキング・ニューラル・ネットワークのシミュレーションを実行し、シミュレーションを介して学習されるシナプス重みを生成する。学習されたシナプス重みは、スパイキング・ニューラル・ネットワークを実装するデジタルなニューロモーフィック/シナプトロニック回路チップにロード(エンコード)される。一実施形態では、回路チップのアーキテクチャは、電力消費およびフォーム・ファクタの低減を達成するスパイキング・ニューラル・ネットワークを提供する。
【0012】
一実施形態では、デジタル回路チップ・アーキテクチャを形成するためのプロセスは、回路チップとシミュレーションとの間の1対1の対応関係を維持する。一例では、1対1の対応関係は、デジタル積分発火ニューロン、デジタル電子ニューロン(デジタル・ニューロン)を相互接続するための相互接続ネットワークの交差接合点での離散値シナプス・デバイス(シナプス)を備える、回路チップ内のスパイキング・ニューラル・ネットワークを実装し、チップの物理および論理相互接続制約をシミュレーションに統合し、回路チップ上の無作為性または非決定性のほぼすべてのソースを消去することによって達成される。
【0013】
本発明の実施形態によれば、電子ニューロンは、デジタル電子モジュールを含むデジタル電子ニューロンを備える。したがって本明細書では、ニューロンまたは電子ニューロンに対するすべての言及は、本発明の実施形態に従ったデジタル電子ニューロンを示す。それぞれのこうしたニューロンは、身体またはニューロンの体細胞モジュールへの入力を搬送する導電性樹状突起を有する。それぞれのニューロンは、ニューロンがスパイク信号を発する場合に必ず出力を搬送する導電性軸索をさらに有する。ニューロンの体細胞モジュールは、刺激に基づいて決定するなどの機能を提供するように構成されたデジタル回路を備え、体細胞モジュールは、典型的には樹状突起に接続される。一般に、本発明の実施形態によれば、スパイキング・ニューロンは、受け取った入力がしきい値を超えた場合に発火する(パルスを送信する)ことになる。
【0014】
本発明の実施形態によれば、コンピューティング・システム上に実装されたスパイキング・ニューラル・ネットワーク・シミュレータはシナプス重みを学習する。重みを学習したスパイキング・ニューラル・ネットワークは、オンボード学習を有さず、メモリ要素を使用して電子シナプスを実装するデジタル回路などの、低電力でコンパクトなリアルタイムのニューロモーフィック/シナプトロニック・デジタル・ハードウェア・システムに実装される。
図1は、本発明の実施形態に従った、ニューロモーフィック/シナプトロニック・デジタル・システムの実施形態の図を示す。
【0015】
ニューロモーフィック/シナプトロニック・デジタル・システムは、クロスバー12に結合されたデジタル電子ニューロン51を含む回路(チップ)50を実装する。クロスバー12は、軸索26、樹状突起34、および、各軸索26と各樹状突起34との交差接合点のシナプス31を備える。軸索26と樹状突起34との間の各接続は、シナプス31を通じて形成される。シナプス31が配置される接合点は、本明細書では交差接合点と呼ばれる。一例では、クロスバー12のアレイは約0.1nmから10μmの範囲内のピッチを有することができる。セット/リセット用の回路37は、学習されたシナプス重みをチップ内にロードするために使用される周辺電子機器である。ある時間間隔内で各軸索26を順次活動化させるために、非同期調停モジュール39が使用される。
【0016】
本発明の実施形態によれば、各シナプス31は、シミュレーションを使用して学習されるシナプス重み等の、シナプス31の機能的挙動を定義するパラメータを有する。したがって、シナプス31に関するシナプス重みがシナプス31の機能的挙動に影響を与える。シミュレーションを使用して学習され、デジタル回路上にロードされるこうしたシナプス重みが、回路上のシナプスの機能を定義する。回路上のデジタル・ニューロンからのスパイク信号が接続されたシナプス31を横切る電圧バイアスを作成し、結果としてダウンストリーム・ニューロンへの電流フローを生じさせる。その電流フローの大きさは、ニューロンの各ペア間のシナプス31のシナプス重み(コンダクタンス)に基づく。電流の大きさ、または他の感知メカニズムを使用して、回路上のシナプス31のシナプス重みが確定的に読み取られる。一例では、インターフェース・モジュールは、クロスバー12内の各シナプス31が対応するシナプス重みに基づいてシナプス31の機能的挙動(たとえば導電性)に影響を与える(たとえばプログラミングする)シナプス重みを有する(たとえば「0」はシナプス31が導電性でないことを示し、「1」はシナプス31が導電性であることを示す)ように、シナプス重みをプログラミングする。
【0017】
本発明の一実施形態では、構築ブロック回路チップ50は、シミュレーションを使用してシナプス重みが学習されるスパイキング・ニューラル・ネットワークを実装する、低電力で超高密度なニューロモーフィック/シナプトロニック回路を備える。スーパーコンピュータ・システムなどのコンピュータ・システム上のスパイキング・ニューラル・ネットワーク・シミュレータは、シナプス重みを学習するかまたは他の方法で計算する。その後、重みが学習または計算されるスパイキング・ニューラル・ネットワークが、低電力でコンパクトなリアルタイム回路チップ50内に実装される。
【0018】
図2の相互関係例によって示されるように、シミュレーションと回路チップ50との間で当該1対1(1:1)の対応関係が維持される。一実施形態では、シミュレータは、実数を使用して学習中のシナプス重みを表すが、学習後、シナプス重みは回路チップ50上にロードするために2進数(離散値)である。シミュレータは、たとえば発火しきい値など、各デジタル電子ニューロンに対して異なるパラメータを使用することができる。パラメータは回路チップ50内にプログラミングされる。回路チップ50上では、各デジタル電子ニューロン51は並列化のために別々に実装される。一例では、学習された重みは、標準の従来型メモリ技法(たとえば、
図1のセット/リセット用回路37)を使用して回路チップ50内にロードされる。
【0019】
シミュレーションで使用される学習規則またはストラテジには、いかなる制約もない。シミュレータは、たとえばスパイク・タイミング依存可塑性(STDP)、強化学習などを使用することができる。強化学習(RL)は一般に、アクションの結果に基づく学習を含み、RLモジュールは過去のイベントに基づいてアクションを選択する。RLモジュールによって受け取られる強化信号は、アクションの成功を示す報酬(たとえば数値)である。次にRLモジュールは、経時的に報酬を増加させるアクションを選択するように学習する。一実施形態では、シミュレーションは学習ではなくアルゴリズム様式で重みを計算することができる。
【0020】
一実施形態では、デジタル電子ニューロン51間のオンチップ接続性(相互接続)は、アドレス・イベントを用いて実装されたソフトワイヤリングと組み合わされる、クロスバー(またはクロスキルト)相互接続ネットワークを使用して実装されたハードワイヤリングの組み合わせを備えることができる。シミュレーションは、ハードワイヤリングおよびソフトワイヤリングの制約を用いて1対1の等価性を維持する。最終学習シミュレーションは、ソフトワイヤリング・アドレスも提供する。
【0021】
一実施形態では、回路チップ50上のソフトワイヤリングは、非決定性のアドレス・イベント(たとえばアドレス・イベント表現(Address―event representation:AER))を使用して実装される。シミュレーションにおける複製のために、シミュレータは、各軸索遅延に対するランダム・オフセットを組み込むことによって非決定性を組み込む。シミュレーションは、シナプス収率を補償するために、無作為性として制約をシナプスに組み込む。アドレス・イベント表現(AER)要素モジュール28は、
図3に関してさらに以下で説明するように、複数の回路チップ50間での通信を容易にする。
【0022】
一般に、クロスバーまたはクロスキルト・アーキテクチャなどの相互接続ネットワーク12は、回路チップ50内のN個の軸索26およびN個の樹状突起34の交差接合点に、シナプス31の矩形アレイまたはNxN正方形アレイを備えることができる。
【0023】
本発明の実施形態によれば、電子ニューロン51は、デジタル同期方式を使用して実装される。電子ニューロン51が発火した場合、すべての値(N)は樹状突起34で並列に読み取られ、ここで電子ニューロン状態は指定された分解能で更新され、各ニューロンは軸索遅延を実装する。なお、本明細書で使用される「場合」という表現は、信号がニューロンの発火後即時に、または、ニューロンの発火後ある期間内に送信されることを意味し得る。
【0024】
一実施形態では、デジタル電子ニューロンはデジタル同期設計を備え、一例では、各ニューロンの状態更新は、約0.1ミリ秒から1ミリ秒の分解能で生じる。具体的に言えば、一例では、相互接続ネットワーク12に結合されたニューロン51の状態は、約0.1ミリ秒から1ミリ秒の分解能で更新され、デジタル・クロック・モジュール67によって生成される1から10kHzのクロック・レートを必要とする。したがって、1ミリ秒の各時間ステップはN個のステップに分割され、Nから10
*N kHzの最終クロック・レートが必要である。たとえば、N=512の場合、クロック・レートは512kHzから5.12MHzとなる。N値の他の例には32、64、128、256、1024が含まれ、ここでは256が好ましい実施形態である。
【0025】
回路チップ50は、SRAM、DRAM、EDRAM、PCM、MTJ、FLASH、eFuse、あるいは任意のこうしたメモリ揮発性または不揮発性技術などの、行の並列読み取りをサポートするメモリ要素を使用する、シナプス31を実装することができる。一例では、ニューロン51が発火した場合、ニューロン51に接続されたN個のシナプス31によって維持されるすべてのN値は、樹状突起34で並列に読みとられることが想定される。
【0026】
本発明の実施形態によれば、回路チップ50は抑制性(inhibitory)の電子ニューロンを含むことができる。一例では、5つのうち1つのニューロンが抑制性ニューロンである。抑制性ニューロンは、時間ステップの特別な部分で発火する。別の方法として、抑制性ニューロンはわずかに異なる読み取りシーケンスを発することができる。
【0027】
一般に、興奮性(excitatory)のスパイキング電子ニューロンは、そのターゲット・ニューロンをより発火しやすくするが、抑制性スパイキング電子ニューロンはそのターゲットを発火しにくくする。スパイキング電子ニューロンの多様な実装が使用可能である。一般に、こうしたニューロンは、ソース興奮性ニューロンからの入力が受け取られた場合に増加し、ソース抑制性ニューロンからの入力が受け取られた場合に減少する、カウンタを備える。増加または減少の量は、ソース・ニューロンからターゲット・ニューロンへの接続の強度に依存する。カウンタがあるしきい値に達すると、ニューロンはその独自のスパイクを生成し(すなわち発火し)、カウンタは基準値にリセットされる。
【0028】
図3は、本発明の実施形態に従った、複数の回路チップ・ブロック50を含むニューロモーフィック/シナプトロニック回路チップ60の実施形態の図を示す。一例では、各チップ・ブロック50内のデジタル電子ニューロン51は、1kHzから10kHzのクロック・レートで同期的に動作する。
【0029】
回路チップ60は、アドレス指定機能を提供し、AER要素モジュール28を選択的に相互接続するように構成された、AER相互接続モジュール66をさらに含む。図には示されていないが、各「ToAER」要素モジュール28は、ブロック50間にソフトワイヤリングを提供するAER相互接続モジュール66を介して、「FromAER」要素モジュール28に接続される。各ブロック50内のクロスバー12は、内部にハードワイヤリングを提供する。
【0030】
本発明の実施形態によれば、回路チップ60は、シナプス31、ニューロン51、および接続性12をプログラミングするように構成された、インターフェース・モジュール68をさらに含む。具体的に言えば、インターフェース・モジュール68はシミュレーションで学習されるシナプス31の重みのプログラミングを提供する。たとえば、インターフェース・モジュール68は、クロスバー12内の各シナプス31が値0または1を有するようにシナプス重みをプログラミングする。各チップ・ブロック50には、クロスバー12につき9つのシナプス31、およびチップ・アレイ60全体では81のシナプス31が存在する。回路チップ60内には27のニューロン51(すなわちクロスバー12につき3つのニューロン51)が存在する。シミュレーションから学習されるニューロン・パラメータ(たとえば発火しきい値など)は、回路チップ60にプログラミングされる。さらに、AER相互接続モジュール66によってプログラミングされる27のソフトワイヤリング・アドレスが存在する。
【0031】
図3に示されるように、読み出しインターフェース63は、刺激インターフェース65から回路60内への刺激信号に応答して、回路60内のニューロン51の発火アクティビティ(たとえば、どのニューロンが発火するかなど)を読み取る。一適用例では、回路チップ60は刺激インターフェース65で様々なセンサ(図示せず)からの感覚入力を受け取り、読み出しインターフェース63からアクチュエータへ信号を出力する。
【0032】
クロスバー12およびAERでのニューロン51からシナプス31へのアクセスは非同期である。一例では、クロスバーへのアクセスは同期的であるが、より高いクロック・レートが必要となる。
【0033】
図4は、32
*1024のニューロン51および1024
*1024のシナプス31(ここで「
*」は乗算を意味する)を含む、32x32のブロック・アレイ50を備える、ニューロモーフィック/シナプトロニック回路70の例を示す。
【0034】
図5は、64
*4096のニューロン51および4096
*4096のシナプス31を含む、64x64のブロック・アレイ50を備える、ニューロモーフィック/シナプトロニック回路72の例を示す。
【0035】
図6は、128
*16384のニューロン51および16384
*16384のシナプス31を含む、128x128のブロック・アレイ50を備える、ニューロモーフィック/シナプトロニック回路74の例を示す。当業者であれば理解されるように、ブロック50の他の組み合わせも可能である。
【0036】
図7は、本発明の実施形態に従った、複数のブロック50、AER相互接続モジュール86、多重区画化のための体細胞モジュール87、ならびに、シナプス、ニューロン、およびオンチップ相互接続性のプログラミングのためのインターフェース・モジュール88を含む、ニューロモーフィック/シナプトロニック回路80の実施形態の図を示す。
【0037】
回路チップ80は、内部でクロスバーがより合わされたクロスキルト相互接続ネットワーク82を含む。シナプス、ニューロン、および接続性は、シミュレーション結果から回路チップ80にプログラミングされる。各ニューロンは、体細胞に接続された樹状突起区画を備える。体細胞はいくつかの樹状突起区画から入力を受け取る。回路80は、固有の2次元受容および投射フィールドを提供する。分離のために、NxNキルトにはN倍速のクロックが必要な可能性がある(たとえば、N=128の場合、クロック・レートは128kHzから1.28MHzに上昇する)。
【0038】
一実施形態では、デジタル電子ニューロンは体細胞モジュールに接続する樹状突起区画を備える。体細胞は、ニューロンに結合されたシナプスから受け取ったすべての刺激を統合する働きをし、あるしきい値を超えた場合のみ出力で応答する。たとえば、体細胞はいくつかの樹状突起区画から入力を受け取る。体細胞は発火した場合、その信号をいくつかの軸索分岐に伝送する。一般に、各シナプスは、信号を送信する1つのニューロンと信号を受信する1つのニューロンとの接続を含む。
【0039】
一実施形態では、本発明は、より高いクロック・レートでの、クロスバーまたはクロスキルト相互接続ネットワークへの同期アクセスに基づく、オンボード学習を伴うチップへの遷移にも適用可能である。回路はSTDPセット/リセット・モジュールを含む。本発明の実施形態によれば、シナプス31は複数の情報ビットを実装する。一例では、RGB方式に従い、シナプス31はビットR、ビットG、およびビットBを含む3ビットを維持する。ビットRは読み取り用、ビットGはSTDPセット用、およびビットBはSTDPリセット用である。
【0040】
図8は、本発明の実施形態に従った、シミュレーションを介して学習される情報を生成するためのスパイキング・ニューラル・ネットワークのシミュレーションを実行するため、およびデジタル電子回路を備えるデジタル・チップ上に学習された情報をロードするための、プロセス90の流れ図を示す。プロセス90は以下のプロセス・ブロックを含む。
【0041】
ブロック91:デジタルの同期スパイキング電子ニューロンのスパイキング・ニューラル・ネットワークに関するシミュレーションを、コンピュータ・システム上に実装する。
【0042】
ブロック92:デジタル積分発火ニューロン、デジタル・ニューロンを相互接続するための相互接続ネットワークの交差接合点での離散値シナプスを使用して、スパイキング・ニューラル・ネットワークを実装するための、デジタル・チップとシミュレーションとの間の1対1の対応関係を維持する。
【0043】
ブロック93:チップ上のニューロンの物理相互接続性(すなわちハードワイヤリング)および論理相互接続性(すなわちソフトワイヤリング)の制約に関する情報をシミュレーションに組み込む。
【0044】
ブロック94:チップ上の無作為性または非決定性のソースを低減させる(好ましくはすべてを消去する)ために、チップ上の無作為性または非決定性のソースに関する情報をシミュレーションに組み込む。たとえば、シナプス収率/操作における無作為性の知識がシミュレーションに組み込まれる。
【0045】
ブロック95:シミュレーションを介して学習されるシナプスの機能を定義するシナプス重みを生成する。各シナプスは、シナプスの機能的挙動を定義するパラメータを有する。それらのパラメータはシミュレーションにおいて学習し、チップに焼き付けることができる。チップは、シナプス重みの離散値を格納することのみが可能である。シミュレーションは、実数を使用して学習中のシナプス重みを表すことが可能であり、学習後、シナプス重みは2進数または離散値に変換される。シミュレーション・ストラテジにかかわらず、出力されるシナプス重みはデジタル・チップ上に焼き付けることが可能なタイプである。
【0046】
ブロック96:シミュレーションを介して学習されるニューロンの機能を定義するパラメータを生成する。各ニューロンは、ニューロンの機能的挙動を定義するパラメータを有する。シミュレーションにおいて学習されたニューロン・パラメータをチップにロードおよび焼き付けることが可能であり、ここで各ニューロンはチップ上に別々の回路を有する。
【0047】
ブロック97:シミュレーションから、チップ上のニューロンに関する物理および論理相互接続性情報を生成する。
【0048】
ブロック98:シミュレーション結果をチップにロード(エンコード)する。シミュレーション結果は、各シナプスに関するシナプス重みおよび各ニューロンに関するパラメータを含む。さらに、ニューロン間のオンチップ・ハードワイヤリングおよびソフトワイヤリングを含む相互接続性に関する情報は、デジタル・チップにロードされる。チップは、スパイキング・ニューラル・ネットワークを実装するニューロモーフィック/シナプトロニック・デジタル回路を備える。
【0049】
一実施形態では、デジタル電子ニューロン間のオンチップ接続性(相互接続)は、電子ニューロン間のハードワイヤリングおよびソフトワイヤリングの組み合わせを含む。ハードワイヤリングは、クロスバー(またはクロスキルト)相互接続ネットワークを使用して実装可能である。一例では、ハードワイヤリングは、その各交差接合点にシナプスを伴う、軸索導電性経路(軸索)および横導電性樹状突起経路(樹状突起)のクロスバーを備える。
【0050】
一実施形態では、ソフトワイヤリングは、アドレス・テーブルおよびAERモジュールによって実装されるアドレス・イベントを使用して達成される。記載のように、シミュレーションは、ハードワイヤリングおよびソフトワイヤリングの制約を用いて1対1の対応関係を維持する。最終的に学習されるシミュレーションはソフトワイヤリング・アドレスも提供する。
【0051】
図9は、本発明の実施形態に従った、シミュレーションを介して学習される情報(シミュレーション結果)13を生成するためにシミュレータ11を使用してスパイキング・ニューラル・ネットワークのシミュレーションを実行するため、および、デジタル電子回路を備えるデジタル・チップ15上に学習された情報をロードするための、システム10の図を示す。本発明の実施形態に従って前述したように、1対1の対応関係はシミュレーション間で維持される。好ましくは、シミュレーションは主にチップ機能(たとえば、適用、有用性、効用)に重点が置かれており、これによってチップは、その機能の低電力でコンパクトな実装を提供する。
【0052】
本発明の実施形態は、コンピュータ、処理デバイス、または任意の命令実行システムによって、あるいはそれらに関連して使用するためのプログラム・コードを提供する、コンピュータ使用可能またはコンピュータ読み取り可能媒体からアクセス可能な、コンピュータ・シミュレーションまたはプログラム製品の形を取ることができる。当業者であれば理解されるように、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として具体化可能である。したがって本発明の態様は、完全にハードウェア実施形態、完全にソフトウェア実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、あるいは、本明細書ではすべて一般に「回路」、「モジュール」、または「システム」と呼ばれる可能性があるソフトウェアおよびハードウェアの態様を組み合わせた実施形態の形を取ることができる。さらに本発明の態様は、コンピュータ読み取り可能プログラム・コードがその上に具体化された1つまたは複数のコンピュータ読み取り可能媒体内に具体化されたコンピュータ・プログラム製品の形を取ることも可能である。
【0053】
1つまたは複数のコンピュータ読み取り可能媒体の任意の組み合わせを使用することができる。コンピュータ読み取り可能媒体は、コンピュータ読み取り可能信号媒体またはコンピュータ読み取り可能記憶媒体とすることができる。コンピュータ読み取り可能記憶媒体は、たとえば、電子、磁気、光、電磁、赤外線、または半導体のシステム、装置、またはデバイス、あるいはそれらの任意の好適な組み合わせとすることができるが、それらに限定されるものではない。コンピュータ読み取り可能記憶媒体のより特定な例(非網羅的リスト)は、1本または複数本のワイヤを有する電気接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはFlashメモリ)、光ファイバ、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD−ROM)、光記憶デバイス、磁気記憶デバイス、または上記の任意の好適な組み合わせを含むことになる。本明細書との関連において、コンピュータ読み取り可能記憶媒体は、命令実行システム、装置、またはデバイスによって、あるいはそれらに関連して使用するためのプログラムを含むかまたは記憶することが可能な、任意の有形媒体とすることができる。
【0054】
コンピュータ読み取り可能信号媒体は、内部、たとえばベースバンド内に、または搬送波の一部として具体化された、コンピュータ読み取り可能プログラム・コードを備えた伝搬データ信号を含むことができる。こうした伝搬信号は、電磁、光、またはそれらの任意の好適な組み合わせを含むがそれらに限定されない、様々な形のいずれかを取ることができる。コンピュータ読み取り可能信号媒体は、コンピュータ読み取り可能記憶媒体ではなく、命令実行システム、装置、またはデバイスによって、あるいはそれらに関連して使用するためのプログラムを通信、伝搬、または移送することが可能な、任意のコンピュータ読み取り可能媒体とすることができる。
【0055】
コンピュータ読み取り可能媒体上に具体化されたプログラム・コードは、無線、有線、光ファイバ・ケーブル、RFなど、またはそれらの任意の好適な組み合わせを含むがそれらに限定されない、任意の適切な媒体を使用して伝送することができる。本発明の態様に関する動作を実行するためのコンピュータ・プログラム・コードは、Java、Smalltalk、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組み合わせで作成可能である。プログラム・コードは、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロン型ソフトウェア・パッケージとして、一部がユーザのコンピュータ上および一部がリモート・コンピュータ上で、または完全にリモート・コンピュータまたはサーバ上で、実行可能である。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続可能であるか、あるいは(たとえば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータへの接続が可能である。
【0056】
本発明の態様について、本発明の実施形態に従った方法、装置(システム)、およびコンピュータ・プログラム製品の流れ図あるいはブロック図またはその両方を参照しながら以下で説明する。流れ図あるいはブロック図またはその両方の各ブロック、および、流れ図あるいはブロック図またはその両方内のブロックの組み合わせは、コンピュータ・プログラム命令によって実装可能であることを理解されよう。これらのコンピュータ・プログラム命令は、機械を製造するために、汎用コンピュータ、特定用途向けコンピュータ、または他のプログラマブル・データ処理装置の、プロセッサに提供可能であるため、結果として、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行する命令は、流れ図あるいはブロック図またはその両方のブロック内に指定された機能/動作を実装するための手段を作成することになる。
【0057】
これらのコンピュータ・プログラム命令は、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスに特定の様式で機能するように指示することが可能な、コンピュータ読み取り可能媒体内に格納することも可能であるため、結果として、コンピュータ読み取り可能媒体内に格納された命令が、流れ図あるいはブロック図またはその両方のブロック内に指定された機能/動作を実装する命令を含む製品を製造することになる。
【0058】
コンピュータ・プログラム命令は、一連の動作ステップをコンピュータ、他のプログラマブル装置、またはコンピュータ実装プロセスを生成するための他のデバイス上で実行させるために、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードすることも可能であるため、結果として、コンピュータまたは他のプログラマブル装置上で実行する命令が、流れ図あるいはブロック図またはその両方のブロック内に指定された機能/動作を実装するためのプロセスを提供することになる。
【0059】
図10は、本発明の一実施形態を実装するために有用な情報処理システム100を示す、高水準ブロック図である。本発明の実施形態に従ったスパイキング・ニューラル・ネットワーク・シミュレータは、システム100を使用して実装可能である。
【0060】
コンピュータ・システム100は、プロセッサ102などの1つまたは複数のプロセッサを含む。プロセッサ102は、通信インフラストラクチャ104(たとえば通信バス、クロスオーバ・バー、またはネットワーク)に接続される。
【0061】
コンピュータ・システムは、グラフィクス、テキスト、および他のデータを、ディスプレイ・ユニット108上に表示するために通信インフラストラクチャ104から(または図示されていないフレーム・バッファから)転送する、ディスプレイ・インターフェース106を含むことができる。コンピュータ・システムは、メイン・メモリ110、好ましくはランダム・アクセス・メモリ(RAM)も含み、2次メモリ112を含むこともできる。2次メモリ112は、たとえばハード・ディスク・ドライブ114、あるいは、たとえばフレキシブル・ディスク・ドライブ、磁気テープ・ドライブ、または光ディスク・ドライブを表す、取り外し可能記憶ドライブ116またはその両方を含むことができる。取り外し可能記憶ドライブ116は、当業者によく知られた様式で、取り外し可能記憶ユニット118からの読み取りあるいはこれへの書き込み、またはその両方を実行する。取り外し可能記憶ユニット118は、取り外し可能記憶ドライブ116によって読み取りおよび書き込みされる、たとえばフレキシブル・ディスク、コンパクト・ディスク、磁気テープ、または光ディスクなどを表す。理解されるように、取り外し可能記憶ユニット118は、コンピュータ・ソフトウェアあるいはデータまたはその両方を内部に格納したコンピュータ読み取り可能媒体を含む。
【0062】
代替実施形態では、2次メモリ112は、コンピュータ・プログラムまたは他の命令をコンピュータ・システムにロードできるようにするための、他の同様の手段を含むことができる。こうした手段は、たとえば取り外し可能記憶ユニット120およびインターフェース122を含むことができる。こうした手段の例は、(ビデオ・ゲーム・デバイスに見られるような)プログラム・パッケージおよびパッケージ・インターフェース、(EPROMまたはPROMなどの)取り外し可能メモリ・チップおよび関連ソケット、ならびにソフトウェアおよびデータを取り外し可能記憶ユニット120からコンピュータ・システムに転送できるようにする他の取り外し可能記憶ユニット120およびインターフェース122を含むことができる。
【0063】
コンピュータ・システムは、通信インターフェース124も含むことができる。通信インターフェース124は、ソフトウェアおよびデータをコンピュータ・システムと外部デバイスとの間で転送できるようにする。通信インターフェース124の例は、モデム、ネットワーク・インターフェース(イーサネット・カードなど)、通信ポート、またはPCMCIAスロットおよびカードなどを含むことができる。通信インターフェース124を介して転送されるソフトウェアおよびデータは、たとえば通信インターフェース124によって受信されることが可能な電子、電磁、光、または他の信号とすることが可能な信号の形である。これらの信号は、通信経路(すなわちチャネル)126を介して通信インターフェース124に提供される。この通信経路126は信号を搬送し、ワイヤまたはケーブル、光ファイバ、電話回線、携帯電話リンク、RFリンク、あるいは他の通信チャネル、またはそれらすべてを使用して実装可能である。
【0064】
本書では、「コンピュータ・プログラム媒体」、「コンピュータ使用可能媒体」、および「コンピュータ読み取り可能媒体」という用語は、全般的に、メイン・メモリ110および2次メモリ112、取り外し可能記憶ドライブ116、ならびにハード・ディスク・ドライブ114にインストールされたハード・ディスクなどの、媒体を言い表すために使用される。
【0065】
コンピュータ・プログラム(コンピュータ制御論理とも呼ばれる)は、メイン・メモリ110あるいは2次メモリ112またはその両方に格納される。コンピュータ・プログラムは、通信インターフェース124を介しても受信可能である。コンピュータ・プログラムは、実行された場合、本明細書で論じられたような本発明の特徴をコンピュータ・システムが実行できるようにするものである。特にコンピュータ・プログラムは、実行された場合、コンピュータ・システムの特徴をプロセッサ102が実行できるようにするものである。したがってこうしたコンピュータ・プログラムは、コンピュータ・システムのコントローラを表す。
【0066】
図面内の流れ図およびブロック図は、本発明の様々な実施形態に従ったシステム、方法、およびコンピュータ・プログラム製品の、可能な実装のアーキテクチャ、機能、および動作を示す。この点で、流れ図またはブロック図内の各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能命令を含む、モジュール、セグメント、またはコードの一部を表すことができる。いくつかの代替実装では、ブロック内に示された機能が図面内に示された順序とは異なる順序で実行できることにも留意されたい。たとえば、連続して示される2つのブロックは、含まれる機能に応じて、実際にはほぼ同時に実行可能であるか、またはブロックは時には逆の順序で実行可能である。ブロック図あるいは流れ図またはその両方の各ブロック、および、ブロック図あるいは流れ図またはその両方におけるブロックの組み合わせが、指定された機能または動作、あるいは特定用途向けハードウェアおよびコンピュータ命令の組み合わせを実行する、特定用途向けハードウェア・ベース・システムによって実装可能であることにも留意されたい。
【0067】
以下の特許請求の範囲における、すべての手段またはステップならびに機能要素の対応する構造、材料、動作、および等価物は、具体的に請求された他の請求要素と組み合わせて機能を実行するための、任意の構造、材料、または動作を含むことが意図される。本発明の説明は例示および説明の目的で提示されたものであるが、網羅的であるかまたは開示された形の本発明に限定されることは意図されていない。当業者であれば、本発明の範囲を逸脱することなく多くの修正および変形が明らかとなろう。実施形態は、本発明の原理および実際の適用例を最も良く説明するため、ならびに他の当業者が企図された特定の用途に合うような様々な修正を伴う様々な実施形態に関して本発明を理解できるようにするために、選択および説明されたものである。