IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ コミサリヤ・ア・レネルジ・アトミク・エ・オ・エネルジ・アルテルナテイブの特許一覧

特許7433307パルスニューラルネットワークにおける誤差のパルス形式での逆伝播
<>
  • 特許-パルスニューラルネットワークにおける誤差のパルス形式での逆伝播 図1
  • 特許-パルスニューラルネットワークにおける誤差のパルス形式での逆伝播 図2
  • 特許-パルスニューラルネットワークにおける誤差のパルス形式での逆伝播 図3
  • 特許-パルスニューラルネットワークにおける誤差のパルス形式での逆伝播 図4
  • 特許-パルスニューラルネットワークにおける誤差のパルス形式での逆伝播 図5
  • 特許-パルスニューラルネットワークにおける誤差のパルス形式での逆伝播 図5a
  • 特許-パルスニューラルネットワークにおける誤差のパルス形式での逆伝播 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-08
(45)【発行日】2024-02-19
(54)【発明の名称】パルスニューラルネットワークにおける誤差のパルス形式での逆伝播
(51)【国際特許分類】
   G06N 3/084 20230101AFI20240209BHJP
   G06N 3/063 20230101ALI20240209BHJP
   G06N 3/0464 20230101ALI20240209BHJP
   G06N 3/0495 20230101ALI20240209BHJP
【FI】
G06N3/084
G06N3/063
G06N3/0464
G06N3/0495
【請求項の数】 23
(21)【出願番号】P 2021520563
(86)(22)【出願日】2019-10-22
(65)【公表番号】
(43)【公表日】2022-01-13
(86)【国際出願番号】 EP2019078669
(87)【国際公開番号】W WO2020083880
(87)【国際公開日】2020-04-30
【審査請求日】2022-10-13
(31)【優先権主張番号】1859760
(32)【優先日】2018-10-23
(33)【優先権主張国・地域又は機関】FR
(73)【特許権者】
【識別番号】311015001
【氏名又は名称】コミサリヤ・ア・レネルジ・アトミク・エ・オ・エネルジ・アルテルナテイブ
(74)【代理人】
【識別番号】110001173
【氏名又は名称】弁理士法人川口國際特許事務所
(72)【発明者】
【氏名】ティエレ,ジョハネス
(72)【発明者】
【氏名】ビヒラー,オリビエ
【審査官】北川 純次
(56)【参考文献】
【文献】米国特許出願公開第2017/0228646(US,A1)
【文献】特表2017-515205(JP,A)
【文献】O'CONNOR, Peter et al.,DEEP SPIKING NETWORKS,arXiv.org [online],2016年11月07日,pp. 1-16,[検索日 2023.09.19], インターネット:<URL:https://arxiv.org/pdf/1602.08323v2.pdf>,<DOI: 10.48550/arXiv.1602.08323>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02-3/10
(57)【特許請求の範囲】
【請求項1】
計算素子に実装されたスパイキング人工ニューロン(Ni,l)であって、前記ニューロンが複数の連続する層(Cl-1、C、Cl+1)を含むニューラルネットワーク内に組み込まれることを意図されており、各層が複数のニューロンで形成され、前記ニューラルネットワークが、入力層から出力層にデータを伝播する第1のフェーズ及び出力層から入力層に誤差を逆伝播する第2のフェーズを含む訓練機構を実行すべく構成されていて、前記スパイキング人工ニューロン(Ni,l)が、前記第2の逆伝播フェーズを実行すべく、
- シナプス係数により重み付けされた二進又は三進誤差信号を受信可能な第1の入出力インターフェース(E/S)と、
- 前記受信した誤差信号に応答して前記ニューロンが生成した二進又は三進中間信号(zi,l)から、及び前記第1のデータ伝播フェーズの実行中に前記ニューロン(Ni,l)に実装された等価活性化関数(FAE)の微分係数の推定値(a’i,l)から二進又は三進局所誤差信号(δi,l)を計算すべく構成された誤差計算モジュール(ER_LOC)と、
- 前記二進又は三進局所誤差信号(δi,l)を複数のシナプスにスパイクの形式で伝播可能な第2の入出力インターフェース(E/S)と
を含むスパイキング人工ニューロン(Ni,l)。
【請求項2】
前記第1の入出力インターフェース(E/S)が、第1のデータ伝播フェーズの実行中に複数のシナプスに二進又は三進信号をスパイクの形式で送信可能であり、前記第2の入出力インターフェース(E/S)が、第1のデータ伝播フェーズの実行中にシナプス係数により重み付けされた二進又は三進信号を受信可能である、請求項1に記載のスパイキング人工ニューロン(Ni,l)。
【請求項3】
- 累積誤差(Ui,l)を計算すべく前記誤差信号を積分する積分モジュール(INT_ER)と、
- 前記累積誤差(Ui,l)を正の活性化閾値及び負の活性化閾値のうち少なくとも一方の活性化閾値と比較する少なくとも1個のコンパレータ(COMP_ER)と、
-前記少なくとも1個のコンパレータからの結果に基づいて二進又は三進中間信号(Zi,l)を生成すべく構成された活性化モジュール(ACT_ER)
とを含む、請求項1又は2に記載のスパイキング人工ニューロン。
【請求項4】
計算素子に実装されたスパイキング人工ニューロン(Ni,l)であって、前記ニューロンが複数の連続する層(Cl-1、C、Cl+1)を含むニューラルネットワーク内に組み込まれることを意図されており、各層が複数のニューロンで形成され、前記ニューラルネットワークが、入力層から出力層にデータを伝播する第1のフェーズ及び出力層から入力層に誤差を逆伝播する第2のフェーズを含む訓練機構を実行すべく構成されていて、前記スパイキング人工ニューロン(Ni,l)が、前記第2の逆伝播フェーズを実行すべく、
- 二進又は三進誤差信号を受信可能な第1の入出力インターフェース(E/S)と、
- 受信した誤差信号に応答して前記ニューロンが生成した二進又は三進中間信号(zi,l)から、及び前記第1のデータ伝播フェーズの実行中に前記ニューロン(Ni,l)に実装された等価活性化関数(FAE)の微分係数の推定値(a’i,l)から二進又は三進局所誤差信号(δi,l)を計算すべく構成された誤差計算モジュール(ER_LOC)と、
- 前記二進又は三進局所誤差信号(δi,l)を第2の逆伝播フェーズにおける層(Cl-1)のニューロンに伝播可能な第2の入出力インターフェース(E/S)と
を含むスパイキング人工ニューロン(Ni,l)。
【請求項5】
前記第1の入出力インターフェース(E/S)が前記第1のデータ伝播フェーズの実行中に次の層(Cl+1)のニューロンに二進又は三進信号を送信可能であり、前記第2の入出力インターフェース(E/S)が前記第1のデータ伝播フェーズの実行中に二進又は三進信号を受信可能である、請求項4に記載のスパイキング人工ニューロン(Ni,l)。
【請求項6】
- シナプス係数により重み付けされた累積誤差(Ui,l)を計算すべく前記二進又は三進誤差信号を積分する積分モジュール(INT_ER)と、
- 前記累積誤差(Ui,l)を正の活性化閾値及び負の活性化閾値のうち少なくとも一方の活性化閾値と比較する少なくとも1個のコンパレータ(COMP_ER)と、
- 前記少なくとも1個のコンパレータからの結果に基づいて前記二進又は三進中間信号(Zi,l)を生成すべく構成された活性化モジュール(ACT_ER)と
を含む、請求項4又は5に記載のスパイキング人工ニューロン。
【請求項7】
前記活性化モジュール(ACT_ER)が、前記累積誤差が前記正の活性化閾値よりも大きい場合は正の中間信号を生成し、前記累積誤差が前記負の活性化閾値よりも小さい場合は負の中間信号を生成すべく構成されている、請求項3又は6に記載のスパイキング人工ニューロン(Ni,l)。
【請求項8】
正の中間信号が生成された場合は前記累積誤差(Ui,l)からの前記正の活性化閾値の値を減算し、負の中間信号が生成された場合は前記累積誤差(Ui,l)から前記負の活性化閾値の値を減算する減算器を更に含んでいる、請求項7に記載のスパイキング人工ニューロン(Ni,l)。
【請求項9】
前記局所誤差(δi,l)及び前記等価活性化関数(FAE)の結果(xj,l-1)からシナプス係数の更新値を計算するモジュール(MAJ)を更に含んでいる、請求項1~8のいずれか1項に記載のスパイキング人工ニューロン(Ni,l)。
【請求項10】
前記等価活性化関数(FAE)の前記結果(xj,l-1)がニューロンの前記データ伝播フェーズの実行中に計算される、請求項9に記載のスパイキング人工ニューロン(Ni,l)。
【請求項11】
シナプス係数の更新値を計算する前記モジュール(MAJ)が前記局所誤差の伝播後に活性化される、請求項9又は10に記載のスパイキング人工ニューロン(Ni,l)。
【請求項12】
局所誤差信号を計算する前記モジュール(ER_LOC)が、前記中間信号(zi,l)と、前記等価活性化関数(FAE)の微分係数の前記推定値(a’i,l)の積を計算すべく構成されている、請求項1~11のいずれか1項に記載のスパイキング人工ニューロン(Ni,l)。
【請求項13】
前記等価活性化関数(FAE)が、前記ニューロンが生成したスパイク(si,l)を積分する関数であって、前記ニューラルネットワークの学習率パラメータ(η)により重み付けされている、請求項1~12のいずれか1項に記載のスパイキング人工ニューロン(Ni,l)。
【請求項14】
前記第1のデータ伝播フェーズの実行中に前記ニューロン(Ni,l)に実装された等価活性化関数(FAE)の結果(xi,l)から、及び前記第1のデータ伝播フェーズの実行中の前記ニューロンの積分変数(Vi,l)から前記等価活性化関数(FAE)の微分係数の前記推定値(a’i,l)を計算すべく構成された微分係数計算モジュール(DER)を含んでいる、請求項1~13のいずれか1項に記載のスパイキング人工ニューロン(Ni,l)。
【請求項15】
前記等価活性化関数(FAE)の微分係数の前記推定値(a’i,l)が、前記関数の前記結果(xi,l)が厳密に正であるか又は前記積分変数(Vi,l)が厳密に正ならば1に等しく、さもなければ0に等しい、請求項14に記載のスパイキング人工ニューロン(Ni,l)。
【請求項16】
前記微分係数計算モジュール(DER)が前記ニューロンの前記データ伝播フェーズの実行中に又は前記ニューロンの前記誤差逆伝播フェーズの実行中に活性化される、請求項14または15のいずれか1項に記載のスパイキング人工ニューロン(Ni,l)。
【請求項17】
入力層から出力層にデータを伝播する第1のフェーズ及び前記出力層から前記入力層に誤差を逆伝播する第2のフェーズを含む訓練機構を実行すべく構成されたスパイキング人工ニューラルネットワークであって、前記ニューラルネットワークが請求項1~16のいずれか1項に記載のスパイキング人工ニューロンの複数の層を含み、各ニューロンがシナプスを介して少なくとも次層のニューロン又は前層のニューロンに接続されているスパイキング人工ニューラルネットワーク。
【請求項18】
前記ネットワークが入力層及び出力層を含み、前記入力層のニューロンが二進又は三進形式で伝播されるデータを受信すべく構成され、前記出力層のニューロンが、前記第1のデータ伝播フェーズの実行中に伝播されたデータから得られた結果と目標結果との誤差を計算すべく構成されている、請求項17に記載のスパイキング人工ニューラルネットワーク。
【請求項19】
前記出力層の各ニューロンが、前記誤差を少なくとも1個の二進又は三進信号の組に符号化すべく構成されたエンコーダ(COD)を含んでいる、請求項18に記載のスパイキング人工ニューラルネットワーク。
【請求項20】
前記エンコーダ(COD)が、二進又は三進信号を生成すべく前記誤差を2又は3段階の量子化レベルに量子化すべく構成されている、請求項19に記載のスパイキング人工ニューラルネットワーク。
【請求項21】
前記エンコーダ(COD)が、連続する二進信号のグループ又は連続する三進信号のグループを介して前記誤差を符号化すべく構成されている、請求項19に記載のスパイキング人工ニューラルネットワーク。
【請求項22】
入力層から出力層にデータを伝播する第1のフェーズ及び前記出力層から前記入力層に誤差を逆伝播する第2のフェーズを含む訓練機構を実行すべく構成されたスパイキング人工ニューラルネットワークであって、前記ニューラルネットワークが、請求項4~6のいずれか1項に記載のスパイキング人工ニューロンの複数の層を含み、各ニューロンがシナプス重みを有するシナプスを介して少なくとも次層のニューロン又は前層のニューロンに接続されていて、前記シナプス(W1,l,...WK,l+1)がデジタルメモリ、メモリスティブ素子又はアナログ回路の形式で実装されているスパイキング人工ニューラルネットワーク。
【請求項23】
各シナプスが、次層(C)のニューロンから受信した二進又は三進誤差信号(δi,l)及び前層(Cl-1)のニューロンから受信した等価活性化関数(FAE)の結果(xj,l-1)を表す信号に応答して自身のシナプス重みを更新すべく構成されている、請求項22に記載のスパイキング人工ニューラルネットワーク。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、人工ニューラルネットワークの分野に関し、より正確にはスパイキングニューラルネットワークの分野に関する。
【背景技術】
【0002】
人工ニューラルネットワークは本質的に、シナプスにより相互に接続されたニューロンから構成され、これらのニューロンは従来デジタルメモリに実装されていたが、端子に印加された電圧に基づいてコンダクタンスが変化する抵抗成分にも実装できる。
【0003】
スパイキングニューラルネットワークは一般に、教師有り又は教師無し学習方法を実装することにより最適化される。
【0004】
これらの方法は、ニューラルネットワークの入力端で生成されたデータをニューラルネットワークの出力層に伝播する第1のフェーズ、次いで出力層から入力層に誤差を逆伝播する第2のフェーズを含んでいる。第2の逆伝播フェーズにおいて、シナプスは、ニューラルネットワークの前層から逆伝播された誤差に基づいて各ニューロンにより局所的に計算された誤差に基づいて更新される。
【0005】
本発明は、符号有り又は符号無しスパイク或いは二進若しくは三進データの形式で誤差を逆伝播するアルゴリズムを実装すべく設計されているスパイキングニューロン及びスパイキングニューラルネットワークに関する。
【0006】
スパイキングニューラルネットワークは、訓練伝播フェーズの実行中に、又は分類フェーズの実行中に実装された処理動作は浮動小数点乗算を一切必要としないため、リソースが限られたコンピュータへの実装が可能になるという利点がある。具体的には、スパイキングニューラルネットワーク内でデータが(符号有り又は符号無し)スパイクの形式で符号化され、各ニューロンが実行する処理動作は従ってアキュムレータ及びコンパレータだけを用いて実装することができる。従って浮動小数点乗算演算子の利用が避けられるため、リソースが限られた装置にデジタル又はアナログ実装することに一定の利点がある。
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかし、訓練フェーズの実行中にシナプスの値の更新に用いられる逆伝播アルゴリズム自体が、各ニューロンに局所的な誤差を計算するために浮動小数点乗算の使用を必要とする。更に、ニューラルネットワークのニューロンの各層間でこれらの誤差を浮動小数点の形式で同期伝播することも必要である。しかし、スパイキングニューラルネットワークは、スパイクの形式での非同期データの伝播論理に基づいている。
【0008】
従って逆伝播アルゴリズムは一般に、このようなネットワークのハードウェア制約を考慮してスパイキングニューラルネットワークには実装されない。
【0009】
スパイキングニューラルネットワークに逆伝播アルゴリズムを実装する際の非互換性に起因して、そのようなネットワーク内での訓練は一般に「スパイクタイミング依存可塑性」すなわちSTDP生体ルールに触発されたアルゴリズムを用いて実行される。しかし、この種の訓練ルールは逆伝播アルゴリズムに基づく訓練よりも非効率である。
【0010】
科学論文[1]はスパイキングニューラルネットワークの逆伝播アルゴリズムの可能な一実装を記述している。しかし、これは浮動小数点乗算を必要とするため高価な実装であり、低電力且つリソースが限られた装置には適していない。
【0011】
科学論文[2]は逆伝播アルゴリズムにより逆伝播された誤差を3値に量子化する可能性を記述している。しかし、当該文献はスパイキングニューラルネットワークではなく公式のニューラルネットワークに関するものである。当該文献はこれらのネットワークの非同期処理制約を考慮していない。
【課題を解決するための手段】
【0012】
本発明は、スパイキングニューラルネットワークを実装している装置のハードウェア制約に適した誤差逆伝播アルゴリズムの新たな実装を提案する。
【0013】
本発明は特に、実装をネットワークの制約に適合させるべく、且つ浮動小数点乗算演算子を使用する必要をなくすべく逆伝播フェーズで計算された誤差の二進又は三進符号化を用いる。
【0014】
より一般的には、本発明はスパイキングニューラルネットワークの特定の制約に逆伝播アルゴリズムを大域的に適合させることを提案する。特に、本発明は、同一伝播基盤を用いて訓練フェーズにおけるデータの伝播及び誤差の逆伝播を可能にする。
【0015】
本発明は、任意の種類のスパイキングニューラルネットワーク、特に畳み込みネットワークの実装に適したスパイキングニューロンの一般的な実装を提案する。
【0016】
第1の実施形態において、本発明の一主題は複数のニューロンの中間層に属するスパイキング人工ニューロンであり、中間層は複数の連続する層を含むニューラルネットワークに属し、ニューラルネットワークは、入力層から出力層にデータを伝播する第1のフェーズ及び出力層から入力層に誤差を逆伝播する第2のフェーズを含む訓練機構を実行すべく構成されていて、スパイキング人工ニューロンは、第2の逆伝播フェーズを実行すべく、
- シナプス係数により重み付けされた二進又は三進誤差信号を受信可能な第1の入出力インターフェースと、
- 受信した誤差信号に応答してニューロンが生成した二進又は三進中間信号から、及び第1のデータ伝播フェーズの実行中にニューロンにより実装された等価活性化関数の微分係数の推定値から二進又は三進局所誤差信号を計算すべく構成された誤差計算モジュールと、
- 二進又は三進局所誤差信号を複数のシナプスにスパイクの形式で伝播可能な第2の入出力インターフェースとを含んでいる。
【0017】
本発明の第1の実施形態の特定の一態様によれば、第1の入出力インターフェースは、第1のデータ伝播フェーズの実行中に複数のシナプスに二進又は三進信号をスパイクの形式で送信可能であり、第2の入出力インターフェースは、第1のデータ伝播フェーズの実行中にシナプス係数により重み付けされた二進又は三進信号を受信可能である。
【0018】
本発明の第1の実施形態の特定の一変型例によれば、スパイキング人工ニューロンは、
- 累積誤差を計算すべく前記誤差信号を積分する積分モジュールと、
- 累積誤差を正の活性化閾値及び負の活性化閾値のうち少なくとも一方の活性化閾値と比較する少なくとも1個のコンパレータと、
-少なくとも1個のコンパレータからの結果に基づいて二進又は三進中間信号を生成すべく構成された活性化モジュールとを含んでいる。
【0019】
第2の実施形態において、本発明の別の主題は、複数のニューロンの中間層に属するスパイキング人工ニューロンであり、中間層は複数の連続する層を含むニューラルネットワークに属し、ニューラルネットワークは、入力層から出力層にデータを伝播する第1のフェーズ及び出力層から入力層に誤差を逆伝播する第2のフェーズを含む訓練機構を実行すべく構成されていて、スパイキング人工ニューロンは第2の逆伝播フェーズを実行すべく、
- 二進又は三進誤差信号を受信可能な第1の入出力インターフェースと、
- 受信した誤差信号に応答してニューロンが生成した二進又は三進中間信号から、及び第1のデータ伝播フェーズの実行中にニューロンにより実装された等価活性化関数の微分係数の推定値から二進又は三進局所誤差信号を計算すべく構成された誤差計算モジュールと、
- 二進又は三進局所誤差信号を次層のニューロンに伝播可能な第2の入出力インターフェースとを含んでいる。
【0020】
本発明の第2の実施形態の特定の一態様によれば、第1の入出力インターフェースは、第1のデータ伝播フェーズの実行中に二進又は三進信号を次層のニューロンに送信可能であり、第2の入出力インターフェースは、第1のデータ伝播フェーズの実行中に二進又は三進信号を受信可能である。
【0021】
本発明の第2の実施形態の特定の一変型例によれば、スパイキング人工ニューロンは、
- シナプス係数により重み付けされた累積誤差を計算すべく前記二進又は三進誤差信号を積分する積分モジュールと、
- 累積誤差を正の活性化閾値及び負の活性化閾値のうち少なくとも一方の活性化閾値と比較する少なくとも1個のコンパレータと、
- 少なくとも1個のコンパレータからの結果に基づいて二進又は三進中間信号を生成すべく構成された活性化モジュールとを含んでいる。
【0022】
特定の本発明の一態様によれば、活性化モジュールは、累積誤差が正の活性化閾値よりも大きい場合は正の中間信号を生成し、累積誤差が負の活性化閾値よりも小さい場合は負の中間信号を生成すべく構成されている。
【0023】
特定の一変型例によれば、本発明の実施形態の任意の一つによるスパイキング人工ニューロンは更に、正の中間信号が生成された場合は累積誤差からの正の活性化閾値の値を減算し、負の中間信号が生成された場合は累積誤差から負の活性化閾値の値を減算する減算器を含んでいる。
【0024】
特定の一変型例によれば、本発明の実施形態の任意の一つによるスパイキング人工ニューロンは更に、局所誤差及び等価活性化関数の結果からシナプス係数の更新値を計算するモジュールを含んでいる。
【0025】
本発明の特定の一態様によれば、等価活性化関数の結果はニューロンのデータ伝播フェーズの実行中に計算される。
【0026】
本発明の特定の一態様によれば、シナプス係数の更新値を計算するモジュールは局所誤差の伝播後に活性化される。
【0027】
本発明の特定の一態様によれば、局所誤差信号を計算するモジュールは、中間信号と、等価活性化関数の微分係数の推定値の積を計算すべく構成されている。
【0028】
本発明の特定の一態様によれば、等価活性化関数はニューロンが生成したスパイクを積分する関数であり、ニューラルネットワークの学習率パラメータにより重み付けされている。
【0029】
特定の一変型例によれば、本発明の実施形態の任意の一つによるスパイキング人工ニューロンは、第1のデータ伝播フェーズの実行中にニューロンにより実装された等価活性化関数の結果から、及び第1のデータ伝播フェーズの実行中のニューロンの積分変数から等価活性化関数の微分係数の推定値を計算すべく構成された微分係数計算モジュールを含んでいる。
【0030】
本発明の特定の一態様によれば、等価活性化関数の微分係数の推定値は、前記関数の結果が厳密に正であるか又は積分変数が厳密に正ならば1に等しく、さもなければ0に等しい。
【0031】
本発明の特定の一態様によれば、微分係数計算モジュールは、ニューロンのデータ伝播フェーズの実行中に又はニューロンの誤差逆伝播フェーズの実行中に活性化される。
【0032】
本発明の更なる主題は、入力層から出力層にデータを伝播する第1のフェーズ及び出力層からの入力層に誤差を逆伝播する第2のフェーズを含む訓練機構を実行すべく構成されたスパイキング人工ニューラルネットワークであり、ニューラルネットワークは本発明の実施形態の任意の一つによるスパイキング人工ニューロンの複数の層を含み、各ニューロンはシナプスを介して少なくとも次層のニューロン又は前層のニューロンに接続されている。
【0033】
本発明の特定の一態様によれば、ネットワークは入力層及び出力層を含み、入力層のニューロンは二進又は三進形式で伝播されるデータを受信すべく構成され、出力層のニューロンは、第1のデータ伝播フェーズの実行中に伝播されたデータから得られた結果と目標結果との誤差を計算すべく構成されている。
【0034】
本発明の特定の一態様によれば、誤差を出力層の各ニューロンは、少なくとも1個の二進又は三進信号の組に符号化すべく構成されたエンコーダを含んでいる。
【0035】
本発明の特定の一態様によれば、エンコーダは、二進又は三進信号を生成すべく2又は3段階の量子化レベルに誤差を量子化すべく構成されている。
【0036】
本発明の特定の一態様によれば、エンコーダは、連続する二進信号のグループ又は連続する三進信号のグループを介して誤差を符号化すべく構成されている。
【0037】
本発明の更なる主題は、入力層から出力層にデータを伝播する第1のフェーズ及び出力層から入力層に誤差を逆伝播する第2のフェーズを含む訓練機構を実行すべく構成された人工ニューラルネットワークであり、ニューラルネットワークは、本発明の第2の実施形態によるスパイキング人工ニューロンの複数の層を含み、各ニューロンはシナプス重みを有するシナプスを介して少なくとも次層のニューロンに又は前層のニューロンに接続されていて、シナプスはデジタルメモリ、メモリスティブ素子又はアナログ回路の形式で実装されている。
【0038】
本発明の特定の一態様によれば、各シナプスは、次層のニューロンから受信した二進又は三進誤差信号及び前層のニューロンから受信した等価活性化関数の結果を表す信号に応答して自身のシナプス重みを更新すべく構成されている。
【0039】
本発明の他の特徴及び利点は、添付の図面を参照しながら以下の記述を精査することでより明らかになろう。
【図面の簡単な説明】
【0040】
図1】スパイキング人工ニューラルネットワークの概要図を示す。
図2】訓練機構の第1のデータ伝播フェーズを実行する、本発明の第1の実施形態によるスパイキング人工ニューロンの図を示す。
図3】訓練機構の第1のデータ伝播フェーズを実行する、本発明の第2の実施形態によるスパイキング人工ニューロンの図を示す。
図4】ニューラルネットワークの出力層のスパイキング人工ニューロンの図を示す。
図5】訓練機構の第2の誤差逆伝播フェーズを実行する、本発明の第1の実施形態によるスパイキング人工ニューロンの図を示す。
図5a】第1の実施形態の一変型例の図を示す。
図6】訓練機構の第2の誤差逆伝播フェーズを実行する、本発明の第2の実施形態によるスパイキング人工ニューロンの図を示す。
【発明を実施するための形態】
【0041】
図1に、スパイキング人工ニューラルネットワークの概要図を示す。ニューラルネットワークは従来、相互接続されたスパイキングニューロンの複数の層C、C、Cl+1、Cから構成される。ネットワークは少なくとも1個の入力層C、出力層C及び少なくとも1個の中間層C、Cl+1を含んでいる。入力層CのニューロンNi,eは各々入力端で入力データ101を受信する。入力データは、目標とするアプリケーションに応じて異なる種類であってよい。例えば、画像のピクセル又は音声或いはテキストデータ、若しくはより一般的にスパイクの形式で符号化可能な任意の種類のデータであってよい。ニューラルネットワークの適用は特に、自動運転乗り物に埋め込まれた装置又はビデオ監視カメラに関連付けられたビデオ監視装置向けに、画像又はビデオ内の対象を分類及び検出することを含んでいる。ニューラルネットワークは例えば、画像分類又は画像認識の分野、或いはより一般的に視覚、音声又は同時に両方であり得る特徴の認識に用いられる。層の各ニューロンは、自身の入力及び/又出力端を介して先行又は次層のニューロンの全てに接続される。より一般的には、ニューロンは、特に畳み込みネットワークの場合、別の層の一部のニューロンだけに接続されている場合がある。2個のニューロンNi,e及びNi,lの間の接続102、103、104は人工シナプスS、S、Sにより行われ、特にデジタルメモリ又はメモリスティブ素子により形成することができる。シナプスの係数は、ニューラルネットワークを訓練する訓練機構を通じて最適化することができる。当該機構は、2個の別々なフェーズ、すなわち入力層から出力層にデータを伝播する第1のフェーズ、及び出力層から入力層に誤差を逆伝播する第2のフェーズを含み、シナプスの重みは各層毎に更新されている
【0042】
第1のデータ伝播フェーズにおいて、訓練データ、例えば画像又は画像のシーケンスが入力層のニューロンへの入力として提供されてネットワークで伝播される。スパイキングニューラルネットワークの場合、データは非同期スパイクの形式で符号化される。スパイクは二進又は三進信号に対応する。換言すれば、これらは符号有り又は符号無しスパイクであってよい。
【0043】
各ニューロンは、当該第1のフェーズの実行中に、前層(又は入力層のニューロンへの入力データから符号化されたスパイク)のニューロンから、受信するスパイクを積分する関数を実装する。積分関数は本質的に、人工シナプスの重みにより重み付けされたスパイクを累積するものである。各ニューロンはまた、積分変数と1又は2個の活性化閾値との比較に基づいて、スパイクを生成して次層のニューロンに伝播するものである活性化関数を実装する。選択されたニューロンモデルに応じて、積分関数及び活性化関数は異なっていてよい。特に、ニューロンがスパイクを全く受信しなかった場合に時間経過に伴い積分変数を減衰させるべく、ニューロンにより漏出流を実装することができる。出力層CのニューロンNi,sが追加的な処理を行うことにより、ニューロンNi,sが受信したスパイクの積分結果と、出力層のニューロンの最終状態に対応し、且つ訓練入力データとの関連で取得することが望まれる期待値又は目標値との誤差を計算する。
【0044】
第2の誤差逆伝播フェーズにおいて、出力層Cのニューロンは計算された誤差を前層Cl+1のニューロンに送信し、当該ニューロンは前層から逆伝播した誤差から局所誤差を計算し、次いで当該局所誤差を前層Cに送信する。並行して、各ニューロンは自身が接続されているシナプスの重みの更新値を局所誤差から計算してシナプスを更新する。当該処理は、入力層Cに接続するシナプスの重みを更新する役割を果たす最後から2番目の層までニューロンの各層にわたり継続する。
【0045】
本発明の目的の一つは、実装の制約又はスパイキングニューロンのハードウェア制約に適した誤差逆伝播フェーズの特定の実装を提案することである。
【0046】
図2に、本発明の第1の実施形態によるスパイキングニューロンの一例及びデータ伝播フェーズにおけるその動作を示す。
【0047】
図2は、中間層Cに属するニューロンNi,lを示す。ニューロンNi,lはニューロンにシナプスW1,l+1,W2,l+1,…,WK,l+1を介して次層Cl+1の下流に接続されている。本発明の第1の実施形態によれば、シナプスは、メモリスティブ素子すなわちメモリスタ又は任意の等価アナログの回路により形成されている。同様に、ニューロンNi,lは、ニューロンにシナプスW1,l,W2,l...,WK,lを介して前層Cl-1の上流に接続されている。
【0048】
データ伝播フェーズにおいて、ニューロンNi,lは第1の入出力インターフェースE/Sを介して、前層のニューロンにより送信されてシナプスW1,l,W2,l...,WK,lの重みにより重み付けされたスパイクを受信する。メモリスティブ素子により形成されたシナプスは、ニューロンにより送信された一定振幅の符号有り又は符号無しスパイクを受信し、自身の出力端で、シナプスの重みを表す値により増幅されたスパイクを送信する。ニューロンNi,lが受信した信号は、シナプスの重みにより重み付けされた二進又は三進信号に対応する。受信した信号は、ニューロンの性質に依存する積分関数を実行する積分モジュールINTにより積分される。例示的な一実施形態によれば、積分関数は受信した信号を時間経過に伴い加算又は積分するものである。別の例示的な実施形態において、積分関数は、ニューロンが信号を受信していない場合に積分変数を時間経過に伴い減衰させる減衰又は漏出関数を含んでいる。積分モジュールINTの出力端で得られた積分変数Vi,lは次いでコンパレータCOMPを介して1個以上の活性化閾値と比較される。第1の例示的な実施形態によれば、単一の正の活性化閾値θffを用いる。積分変数Vi,lが正の活性化閾値θffを上回る場合、活性化モジュールACTが正のスパイクを生成して積分変数Vi,lが正の閾値θffの値だけ減らされる。第2の例示的な実施形態によれば、正の閾値θffに加えて負の閾値-θffが用いられる。積分変数Vi,lが負の活性化閾値-θffを下回る場合、活性化モジュールACTが負のスパイクを生成して、積分変数Vi,lは閾値-θffの値だけ減らされる(又は値θffだけ増やされる)。2個の閾値の絶対値は等しくても異なっていてもよい。活性化モジュールACTにより生成されたスパイクは、ニューロンNi,lと次層Cl+1のニューロンの間に接続されたシナプスW1,l+1,W2,l+1,...,WK,l+1に伝播されるべく入出力インターフェースE/Sに送信される。
【0049】
時間経過に伴い積分モジュールINTにより計算された積分変数Vi,lは以下の関係で表すことができる。
i,l(t)=Vi,l(t-Δt)-θff・si,l(t-Δt)+Σωi,j,l・sj,l-1(t) (1)
【0050】
i,l(t)は、三進信号の場合に値が以下の関係で与えられるニューロンが生成したスパイクを表す。
【数1】
二進信号の場合、関係(2)は次式で置き替えられる。
【数2】
【0051】
積分変数Vi,lはデータ伝播フェーズの開始時点で0以外の値に初期化されてよい。
【0052】
上で述べた、ニューロンNi,lが実施する処理動作は、累積又は比較だけに基づいており、浮動小数点乗算を一切必要としない。
【0053】
ニューロンNi,lはまた、誤差逆伝播フェーズの実行中に用いる変数を計算すべく2個の追加的な計算関数を実行する。
【0054】
第2の積分モジュールFAEを用いて、時間経過に伴いニューロンが生成したスパイクsi,lを累積するし、累積はニューラルネットワークのパラメータである学習率ηにより重み付けされている。この学習率ηはネットワークの各層毎に異なっていてよい。
【0055】
上述の第2の積分モジュールの出力端で得られた変数xi,lは以下の関係で表される。
i,l(t)=η・si,l(t)+xi,l(t-Δt) (3)
【0056】
この変数は以下の関係でも表すことができ、ai,lはニューロンが生成したスパイクの時間経過に伴う累積に対応し、ニューロンの等価活性化関数と呼ばれる。変数xi,l(t)は、学習率パラメータηにより重み付けされた等価活性化関数に対応する。
i,l(t)=η・ai,l(t)
i,l(t)=si,l(t)+ai,l(t-Δt)
【0057】
スパイクsi,lが値1、0又は-1をとるため、変数xi,lの計算も乗算を一切必要としない。変数xi,lの計算とは値ηを累積することである。
【0058】
微分モジュールDERもまた、ニューロンの等価活性化関数ai,lの推定値a’i,lを計算に用いられる。この推定値を誤差逆伝播フェーズで用いる。
【0059】
積分変数Vi,lが0よりも大きいか又は変数xi,lが0よりも大きい場合、推定値a’i,lは1に等しく、さもなければ値0をとる。
【数3】
【0060】
本発明の範囲から逸脱することなく、二進変数{0;1}又は三進の変数{-1;0;1}を生成すべく等価活性化関数の他の推定値a’i,lを決定することができる。本発明の特徴の一つは、浮動小数点乗算を含む計算を回避するべく推定値a’i,lが二進又は三進変数であることである。
【0061】
a’i,lの計算に用いるVi,l(t)及びxi,l(t)の値は、ニューラルネットワークの入力端で提示された訓練シーケンスのデータ伝播フェーズにおいてニューロンにより計算された最後の最新値である。
【0062】
ニューロンの等価活性化関数ai,lの推定値a’i,lは、データ伝播フェーズの実行中に計算することができ、その場合a’i,lの値は誤差逆伝播フェーズで用いるべくメモリに保存される。推定値a’i,lはまた、誤差逆伝播フェーズの実行中にニューロンにより保存されたVi,l(t)及びxi,l(t)の最後の値から計算することもできる。
【0063】
一変型実施形態において、ニューロンにより実装される活性化関数は次式のように変更することができる。
【数4】
【0064】
この変型例によれば、変数ai,l(t)で表される、ニューロンが生成したスパイクの和は常に0よりも大きい。
【0065】
図3に、本発明のスパイキングニューロンの第2の実施形態を示す。第2の実施形態において、ニューロンはデジタル素子に実装されている。二進又は三進スパイク信号は二進又は三進デジタル信号により符号化され、デジタル通信基盤を介してニューロン間を送信される。シナプスはもはや2個のニューロン間の接続部に配置された能動素子により形成されていない。このデジタル実装によれば、シナプスの重みはデジタルメモリMEM_Wに保存される。入力インターフェースE/Sが受信した信号は(選択されたニューロンモデルに応じて)二進又は三進信号である。積分モジュールINTは、メモリMEM_Wから読み出されたシナプスの重みにより重み付けされた受信信号の和を計算すべく変更されている。換言すれば、シナプスの重みによる信号の重み付けは第1の実施形態のようにシナプスによってではなく、ニューロンにより実行される。
【0066】
ニューラルネットワークの入力端で、換言すればネットワークの入力層Cの入力端で生成されたデータがネットワークの出力層Cに伝播されたならばデータ伝播フェーズが完了する。出力層の各ニューロンは、変数及び当該変数の所望の目標値を計算すべく構成されている。選択された出力ニューロンモデルに応じて、用いた変数は、積分モジュールINTが計算した積分変数Vi,s、又は活性化モジュールACTが生成したスパイクsi,s、或いは等価活性化関数ai,sの結果、若しくはこれらの変数又は出力ニューロンが計算した他の変数の1個以上の任意の組み合わせであってよい。目標値は、用途に応じて選択される。例えば、ニューラルネットワークを対象分類の文脈で用いる場合、目標値は各出力ニューロンが検出する筈の対象に対応する。
【0067】
換言すれば、各出力ニューロンは、1個以上の計算された変数又はこれら1個以上の変数及び目標値又は所望値の組み合わせに依存するコスト関数を計算することができる。出力ニューロンにより計算される誤差は従って使用する各変数に関するコスト関数の微分係数に等しい。例えば、使用するコスト関数は等価活性化関数ai,s(t)だけに依存してよく、計算された誤差は当該等価活性化関数の微分係数に依存するであろう。δi,Sは出力ニューロンNi,Sにより計算される誤差を表す。この誤差が次いで、出力ニューロンに含まれるエンコーダを用いてスパイク又はデジタルデータの形式で符号化される。異なる種類の符号化が可能である。スパイクは、三進信号の形式で3レベルに符号化されてよい。第1の変型例によれば、誤差δi,Sは浮動小数点数であり、-1、0、1の3レベルに量子化されて、デジタル信号又は三進スパイクを介して前層のニューロンに送信される。第2の変型例によれば、誤差δi,Sは値-1、0及び1の和に分解されて、デジタルデータ又は三進スパイクの組により符号化される。例えば、値5.3は5個の連続する正のスパイクにより符号化され、値-3.2は3個の連続する負のスパイクにより符号化されてよい。スパイクはまた、上に示す2個の符号化変型例に従い二進信号の形式で2レベルに符号化されてもよい。
【0068】
図4に、出力ニューロンNi,Sの例示的な一実装を示す。これは主に入出力インターフェースE/S、積分モジュールINT、誤差計算モジュールCALC_ER、及び計算された誤差をスパイクに符号化してから入出力インターフェースE/Sを介して前層に逆伝播するエンコーダCODを含んでいる。出力ニューロンNi,Sはまた、誤差の計算に用いる変数の計算に必要ならばコンパレータCOMP及び活性化モジュールACTを含んでいてよい。
【0069】
本発明の第1の実施形態によれば、図5に、出力層のニューロンが計算した誤差を逆伝播フェーズの実行中に中間層CのスパイキングニューロンNi,lの動作を示す。
【0070】
上述の第1の実施形態において、図2に関する段落で説明したように、シナプスはメモリスティブ素子、メモリスタ又は任意の等価なアナログ回路により形成される。図5に、逆伝播フェーズの実行中に関与する計算モジュール及びニューロンの演算子だけを示す。ニューロンの実際の実装では、これは逆伝播フェーズの実行中に活性化された図5に示すモジュール及び演算子と、データ逆伝播フェーズの実行中に活性化された図2に示すモジュール及び演算子との両方を含んでいる。
【0071】
シナプスW1,l+1,W2,l+1,...,WK,l+1は、二進又は三進スパイクの形式で前層Cl+1のニューロンにより(逆伝播の向きに)計算された誤差を受信する。各シナプスはこれに応答して、シナプスの重みにより重み付けされた受信スパイクに対応する信号を送信する。これらの重み付け誤差信号は入出力インターフェースE/Sにより受信され、次いで受信した信号を累積する積分モジュールINT_ERにより処理される。逆伝播フェーズの実行中に活性化された積分モジュールINT_ERがデータ伝播フェーズの実行中に活性化された積分モジュールINTと同一の関数を実行する。これらは2個の別々のモジュールにより、又は同一モジュールにより形成することができる。積分モジュールINT_ERの出力端で得られた積分変数Ui,lは次いで1個又は2個の活性化閾値と比較される。例えば、受信した信号が三進信号である場合、図2に示すコンパレータCOMPと同じ要素により形成できるコンパレータCOMP_ERを介して、正の活性化閾値θbp及び負の活性化閾値-θbpが用いられる。積分変数Ui,lが正の活性化閾値θbpを上回った場合、活性化モジュールACT_ERが正のスパイクを生成し、積分変数Ui,lは閾値θbpの値だけ減少する。積分変数Ui,lが負の活性化閾値-θbpを下回った場合、活性化モジュールACT_ERが負のスパイクを生成し、積分変数Ui,lが閾値-θbpの値だけ減少する。活性化モジュールACT_ERは、図2に示す活性化モジュールACTと同じ要素により形成することができる。
【0072】
誤差逆伝播フェーズの実行中のニューロンの積分変数は以下の関係で与えられる。
i,l(t)=Ui,l(t-Δt)-θbp・zi,l(t-Δt)+Σωi,k,l+1・δk,l+1(t)
【0073】
活性化モジュールACT_ERにより生成された信号は中間のスパイク信号zi,lである。これは以下の関係で表すことができる。
【数5】
【0074】
一変型実施形態において、正の活性化閾値をT+θbpで代替し、負の活性化閾値をT-θbpで代替することができ、ここにTは正、負又はゼロの定数である。
【0075】
別の変型実施形態において、中間スパイク信号zi,lは以下の関係で表すことができる。
【数6】
【0076】
上述の変型例において、2個の閾値の代わりに単一の閾値θbpを用いる。この場合、積分変数Ui,lは、閾値θbpに等しくてよい所定の値又は閾値θbpとは異なる値だけ減らされる。
【0077】
別の変型実施形態によれば、受信した信号が二進信号である場合、単一の活性化閾値θbpを用いる。
【0078】
上述の変型実施形態によれば、中間スパイク信号zi,lを以下の関係で表すことができる。
【数7】
【0079】
ここにθbpは値が正又は負であり得る活性化閾値である。この場合、積分変数Ui,lは閾値θbpに等しくてもよい所定の値又は閾値θbpとは異なる値だけ減らされる。
【0080】
更に別の変型実施形態において、受信した信号が二進信号である場合、ニューラルネットワークが実行する逆伝播アルゴリズムは2個の連続するフェーズで実行される。
【0081】
第1のフェーズにおいて、逆伝播アルゴリズムは、以下の関係で表される二進中間スパイク信号zi,lを考慮しながらニューラルネットワークにより実行され、ここにθbpは正の活性化閾値である。
【数8】
【0082】
積分変数Ui,lが活性化閾値θbpを上回る場合、活性化モジュールACT_ERは正のスパイクを生成し、積分変数Ui,lは閾値θbpの値だけ減らされる。
【0083】
第2のフェーズにおいて、逆伝播アルゴリズムは、以下の関係で表される二進中間スパイク信号zi,lを考慮しながらニューラルネットワークにより実行され、ここに-θbpは負の活性化閾値である。
【数9】
【0084】
積分変数Ui,lが活性化閾値-θbpを下回る場合、活性化モジュールACT_ERは負のスパイクを生成し、積分変数Ui,lは閾値-θbpの値だけ減らされる(又はθbpの値だけ増やされる)。
【0085】
上述の信号を用いて、引き続き局所誤差を同じスパイク形式で生成する。局所誤差は中間信号zi,l、及びニューロンの等価活性化関数の微分係数の推定値a’i,lから計算モジュールER_LOCにより計算される。推定値a’i,lは、データ伝播フェーズ(図2参照)実行中にニューロンにより計算されたか又は誤差逆伝播フェーズの実行中にデータ伝播フェーズの終了時点で保存された変数xi,l及びVi,lの最後の値から計算された。
【0086】
局所誤差は、中間信号zi,lと推定値a’i,lの積を求めることにより計算され、推定値a’i,lの選択されたモデルに応じて二進又は三進変数である。
δi,l(t)=zi,l(t)・a’i,l(t)
【0087】
一変型実施形態において、a’i,l(t)=0の場合に上述の計算を実行しないよう、コンパレータが追加される。
【0088】
局所誤差の計算は従って浮動小数点乗算を必要とせず、当該計算の結果は(値1、0又は-1をとる)三進変数又は二進変数である。
【0089】
局所誤差δi,l(t)は次いでインターフェースE/Sを介して次層Cl-1のシナプスに伝播される。
【0090】
ニューロンはまた、シナプスの重みの更新値を計算するモジュールMAJも含んでいる。この更新値は、局所誤差から、及びニューロンNi,lが接続されている層Cl-1の各ニューロンにより送信される変数xj,l-1から計算される。変数xj,l-1はデータ伝播フェーズの実行中に予め計算されている。
【0091】
シナプスWj,lの重みの更新値は以下の関係で与えられる。
Δωi,j,l(t)=-δi,l(t)・xj,l-1(t)
【0092】
これらの値がシナプスW1,l,W2,l,...WK,lに伝播されることにより、以下のルールを介して自身の重みを更新する。
ωi,j,l(t)=Δωi,j,l(t)+ωi,j,l(t-Δ(t))
【0093】
シナプスの重みは好適には誤差が次層に伝播された後で更新されるが、これら二つの動作の順序を入れ替えることも可能である。
【0094】
一変型実施形態において、変数xj,l-1は、図5に示すように二つの連続する層のニューロンにアクセス可能なメモリMEM_Xに保存される。
【0095】
図5aに示す別の変型実施形態ではシナプスの重みの更新値を計算するモジュールMAJが除去されており、シナプスの重みは当該シナプスを形成するメモリスティブ素子により直接更新される。本変型例において、誤差信号δi,l(t)が層CのニューロンからシナプスW1,l,W2,l,...WK,lに伝播され、変数xj,l-1が層Cl-1のニューロンからシナプスW1,l,W2,l,...WK,lに信号の形式で伝播される。各シナプスは次いで、項Δωi,j,l(t)を表す値により自身の重みを更新すべく2個の信号の電位差を解析することにより2個の信号δi,l(t)及びxj,l-1(t)の相互作用に直接基づいて自身のシナプス重みを更新する。
【0096】
図6に、図3に示す本発明の第2の実施形態による逆伝播フェーズの実行中の中間層CのスパイキングニューロンNi,lの動作を示す。
【0097】
上述の第2の実施形態によれば、ニューロンはデジタル素子に実装される。二進又は三進誤差信号は二進又は三進デジタル信号により符号化されて、データ伝播フェーズの実行中に伝達された信号と同じ通信基盤を介してニューロン間を送信される。シナプスの重みは、デジタルメモリMEM_Wl+1、MEM_Wに保存される。積分モジュールINT_ERは、層Cl+1のシナプスの重みを保存しているメモリMEM_Wl+1から読み出されたシナプスの重みにより重み付けされた受信信号の和を計算すべく変更される。換言すれば、シナプスの重みによる信号の重み付けは、第1の実施形態のようにシナプスによってではなく、ニューロンにより実行される。層CのメモリMEM_Wは、シナプスの重みの更新値を計算するモジュールMAJにより直接更新される。シナプスの重みをメモリに保存する各種のアーキテクチャが可能である。図6に、ニューロンの各層Cl+1、Cに関連付けられたメモリMEM_Wl+1、MEM_Wを示す。しかし、ニューロンの少なくとも二つの連続する層、又はニューラルネットワーク全体に対して単一の共有メモリを有することも可能である。一方、各ニューロンに局所的なメモリもまた考えられる。積分モジュールINT_ERは、読出しモードにおいて前層Cl+1のシナプスの重みが保存されているメモリにアクセスすべく構成されている。
【0098】
図6に示すようなデジタル素子による実装の場合、ニューロン間で交換される信号は2個の別々のバスにより実行することができる。第1のデータバスを用いて、生成されたスパイクを、二進信号の場合は値1を介して、又は三進信号の場合は値1又は-1を介して送信する。第2の非同期シグナリングバスを用いて、データの受信(又は送信)をニューロンに通知する。換言すれば、第2の非同期バスを用いて、データバスに0以外の値が存在する旨の情報を送信する。第2の非同期バスは例えば、AER「アドレスイベント表現(Address Event Representation)」バスであってよい。本実装の利点の一つは、「0」状態に対応する受信値に対してニューロンが処理動作を実行するのを防止することである。データバス及び非同期バスが形成するアセンブリは、二進デジタル信号又は三進デジタル信号を送信可能である。二進信号の場合、リーダーは値「1」がデータバスにより指示され、値「0」が非同期バスにより指示されていることが分かるであろう。三進信号の場合、値「1」及び「-1」はデータバスにより指示され、値「0」は非同期バスにより指示されている。
【0099】
本発明には、誤差逆伝播フェーズで計算された局所誤差の二進又は三進表現を用いるため誤差計算の実行に浮動小数点乗算を一切必要としないという利点がある。更に、2種類の信号が同様に符号化されているため、同じ通信基盤をデータの伝播と誤差の逆伝播の両方に用いることができる。いくつかの計算モジュール及び演算子をデータ伝播フェーズ及び誤差逆伝播フェーズに合同で用いることができる。例えば、積分モジュールINT、INT_ER、コンパレータCOMP、COMP_ER、及び活性化モジュールACT、ACT_ERを単一の要素で構成することができる。一般に、本発明では、二つのフェーズで伝播される信号は類似の性質を有し、これらの信号に対する処理動作は二つのフェーズの累積及び比較に限られるため、データ伝播フェーズ及び誤差逆伝播フェーズの実行に同じ種類の素子又は回路を用いることが可能になる。
【0100】
一般に、本発明はハードウェア及び/又はソフトウェア要素を用いて実装されてよい。ソフトウェア要素はコンピュータ可読媒体上のコンピュータプログラム製品の形式であってよく、当該媒体は電子、磁気、光又は電磁気媒体であってよい。ハードウェア要素は、全部又は一部が、例えば専用集積回路(ASIC)及び/又は設定可能集積回路(FPGA)の形式及び/又は本発明によるニューラル回路の形式又はデジタル信号プロセッサDSPの形式及び/又はグラフィックプロセッサGPUの形式及び/又はマイクロコントローラの形式及び/又は汎用プロセッサの形式であってよい。
【0101】
より正確には、本発明によるニューラルネットワークは、少なくとも1個のデジタルメモリを含む一つ以上のデジタル素子及びニューロン間で二進又は三進信号を伝播させる通信基盤に実装されていてよい。
【0102】
本発明によるニューラルネットワークはまた、少なくとも1個のメモリスティブ素子を含む1個以上のアナログ素子及び符号有り又は符号無しスパイクの形式でアナログ信号を伝播可能な通信基盤にも実装されていてよい。
【0103】
シナプスは、メモリスティブ素子すなわちメモリスタ、例えばPCM(相変化メモリ(Phase-Change Memory))素子、又はRAM又はOXRAMメモリ或いは他の任意の素子若しくは同等のアナログ回路の形式で生成されていてよい。シナプスは特に、少なくとも1個のキャパシタンス又は少なくとも1個のコンデンサに基づいていて、キャパシタンス又はコンデンサに充電することでシナプス重みの値を保存可能にするアナログ回路に実装されていてよい。
【0104】
参照文献
[1]“Algorithm and hardware design of discrete-time spiking neural networks based on back propagation with binary activations”,S.Yin et al,2017 IEEE Biomedical Circuits and Systems
[2]“Hardware efficient on line learning through pipelined truncated error back-propagation in binary state networks”,H.Mostafa et al,Frontiers in Neuroscience,2017
図1
図2
図3
図4
図5
図5a
図6