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

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

▶ インテル コーポレイションの特許一覧

特許7167151スパイキングニューラルネットワークの位相差でシナプス荷重を変化させる装置、システム及び方法
<>
  • 特許-スパイキングニューラルネットワークの位相差でシナプス荷重を変化させる装置、システム及び方法 図1
  • 特許-スパイキングニューラルネットワークの位相差でシナプス荷重を変化させる装置、システム及び方法 図2
  • 特許-スパイキングニューラルネットワークの位相差でシナプス荷重を変化させる装置、システム及び方法 図3A
  • 特許-スパイキングニューラルネットワークの位相差でシナプス荷重を変化させる装置、システム及び方法 図3B
  • 特許-スパイキングニューラルネットワークの位相差でシナプス荷重を変化させる装置、システム及び方法 図4
  • 特許-スパイキングニューラルネットワークの位相差でシナプス荷重を変化させる装置、システム及び方法 図5
  • 特許-スパイキングニューラルネットワークの位相差でシナプス荷重を変化させる装置、システム及び方法 図6
  • 特許-スパイキングニューラルネットワークの位相差でシナプス荷重を変化させる装置、システム及び方法 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-28
(45)【発行日】2022-11-08
(54)【発明の名称】スパイキングニューラルネットワークの位相差でシナプス荷重を変化させる装置、システム及び方法
(51)【国際特許分類】
   G06N 3/04 20060101AFI20221031BHJP
   G06N 3/08 20060101ALI20221031BHJP
【FI】
G06N3/04 190
G06N3/08
【請求項の数】 16
(21)【出願番号】P 2020527791
(86)(22)【出願日】2017-12-19
(65)【公表番号】
(43)【公表日】2021-06-17
(86)【国際出願番号】 US2017067401
(87)【国際公開番号】W WO2019125419
(87)【国際公開日】2019-06-27
【審査請求日】2020-12-14
(73)【特許権者】
【識別番号】593096712
【氏名又は名称】インテル コーポレイション
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ポール,アルナブ
(72)【発明者】
【氏名】シュリニヴァーサ,ナラヤン
【審査官】山本 俊介
(56)【参考文献】
【文献】特表2017-516192(JP,A)
【文献】米国特許出願公開第2014/0351186(US,A1)
【文献】BENGIO, Y., et al.,STDP as presynaptic activity times rate of change of postsynaptic activity,arXiv.org [online],2016年03月31日,[retrieved on 2021-12-09] Retrieved from the Internet: <URL: https://arxiv.org/abs/1509.05936v2>,arXiv:1509.05936v2 [cs.NE]
【文献】巣籠 悠輔,詳解 ディープラーニング,初版,2017年05月25日,p. 162,ISBN: 978-4-8399-6251-7
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-3/12
(57)【特許請求の範囲】
【請求項1】
データに表現されているオブジェクトのタイプを認識するようスパイキングニューラルネットワークを訓練するコンピュータ装置であって、
スパイキングニューラルネットワークの第1のノードから第1の生成スパイク列を伝達し、前記第1の生成スパイク列は、前記第1のノードに提供された第1の受信スパイク列の1つ以上の信号スパイクに基づき、前記第1の生成スパイク列は、第1のスパイクレートを示し、前記第1のノードは、前記第1の生成スパイク列を、第2のノードに、前記第1のノード及び前記第2のノードの各々に直接結合されたシナプスを介して送り、
前記スパイキングニューラルネットワークの前記第2のノードから第2の生成スパイク列を伝達し、前記第2の生成スパイク列は、前記第2のノードに提供された第2の受信スパイク列の1つ以上の信号スパイクに基づき、前記第2の生成スパイク列は、第2のスパイクレートを示し、
前記シナプスを介して伝達される少なくとも1つの信号スパイクにシナプス荷重値を適用し、
前記シナプス荷重値に適用する変化を決定し、該変化は、前記第1のスパイクレートの第1の導関数と前記第2のスパイクレートの第2の導関数との積に基づき、前記スパイキングニューラルネットワークの訓練は、前記変化が前記シナプス荷重値に適用されることに基づく、
ための回路を有するコンピュータ装置。
【請求項2】
前記第1の導関数及び前記第2の導関数は各々、一次導関数及び二次導関数のそれぞれの一方を含む、請求項1に記載のコンピュータ装置。
【請求項3】
前記第2の生成スパイク列は、前記第1の生成スパイク列に基づいて決定される、請求項1又は2に記載のコンピュータ装置。
【請求項4】
前記第1の生成スパイク列及び前記第2の生成スパイク列は各々、異なるそれぞれのスパイク列に基づいて決定される、請求項1又は2に記載のコンピュータ装置。
【請求項5】
前記スパイキングニューラルネットワークのノードのうち第1のサブセットを選択し、第1の期間において、前記スパイキングニューラルネットワークを訓練して、それぞれのシナプスの荷重に対する更新を決定する回路、を更に有する請求項1又は2に記載のコンピュータ装置。
【請求項6】
前記スパイキングニューラルネットワークのノードのうち第2のサブセットを選択し、第2の期間において、前記スパイキングニューラルネットワークを訓練して、それぞれのシナプスの荷重に対する更新を決定する回路、を更に有する請求項に記載のコンピュータ装置。
【請求項7】
命令を含んだコンピュータプログラムであって、前記命令は、機械によって実行されるときに前記機械に、データに表現されているオブジェクトのタイプを認識するようスパイキングニューラルネットワークを訓練する処理を実行させ、前記処理は、
スパイキングニューラルネットワークの第1のノードから第1の生成スパイク列を伝達し、前記第1の生成スパイク列は、前記第1のノードに提供された第1の受信スパイク列の1つ以上の信号スパイクに基づき、前記第1の生成スパイク列は、第1のスパイクレートを示し、前記第1のノードは、前記第1の生成スパイク列を、第2のノードに、前記第1のノード及び前記第2のノードの各々に直接結合されたシナプスを介して送り、
前記スパイキングニューラルネットワークの前記第2のノードから第2の生成スパイク列を伝達し、前記第2の生成スパイク列は、前記第2のノードに提供された第2の受信スパイク列の1つ以上の信号スパイクに基づき、前記第2の生成スパイク列は、第2のスパイクレートを示し、
前記シナプスを介して伝達される少なくとも1つの信号スパイクにシナプス荷重値を適用し、
前記シナプス荷重値に適用する変化を決定し、該変化は、前記第1のスパイクレートの第1の導関数と前記第2のスパイクレートの第2の導関数との積に基づき、前記スパイキングニューラルネットワークの訓練は、前記変化が前記シナプス荷重値に適用されることに基づく、
ことを有する、コンピュータプログラム。
【請求項8】
前記第1の導関数及び前記第2の導関数は各々、一次導関数及び二次導関数のそれぞれの一方を含む、請求項に記載のコンピュータプログラム。
【請求項9】
前記第2の生成スパイク列は、前記第1の生成スパイク列に基づいて決定される、請求項又はに記載のコンピュータプログラム。
【請求項10】
前記第1の生成スパイク列及び前記第2の生成スパイク列は各々、異なるそれぞれのスパイク列に基づいて決定される、請求項又はに記載のコンピュータプログラム。
【請求項11】
前記処理は更に、前記スパイキングニューラルネットワークのノードのうち第1のサブセットを選択し、第1の期間において、前記スパイキングニューラルネットワークを訓練して、それぞれのシナプスの荷重に対する更新を決定する、ことを有する、請求項又はに記載のコンピュータプログラム。
【請求項12】
前記処理は更に、前記スパイキングニューラルネットワークのノードのうち第2のサブセットを選択し、第2の期間において、前記スパイキングニューラルネットワークを訓練して、それぞれのシナプスの荷重に対する更新を決定する、ことを有する、請求項11に記載のコンピュータプログラム。
【請求項13】
データに表現されているオブジェクトのタイプを認識するようスパイキングニューラルネットワークを訓練する方法であって、
スパイキングニューラルネットワークの第1のノードから第1の生成スパイク列を伝達し、前記第1の生成スパイク列は、前記第1のノードに提供された第1の受信スパイク列の1つ以上の信号スパイクに基づき、前記第1の生成スパイク列は、第1のスパイクレートを示し、前記第1のノードは、前記第1の生成スパイク列を、第2のノードに、前記第1のノード及び前記第2のノードの各々に直接結合されたシナプスを介して送り、
前記スパイキングニューラルネットワークの前記第2のノードから第2の生成スパイク列を伝達し、前記第2の生成スパイク列は、前記第2のノードに提供された第2の受信スパイク列の1つ以上の信号スパイクに基づき、前記第2の生成スパイク列は、第2のスパイクレートを示し、
前記シナプスを介して伝達される少なくとも1つの信号スパイクにシナプス荷重値を適用し、
前記シナプス荷重値に適用する変化を決定し、該変化は、前記第1のスパイクレートの第1の導関数と前記第2のスパイクレートの第2の導関数との積に基づき、前記スパイキングニューラルネットワークの訓練は、前記変化が前記シナプス荷重値に適用されることに基づく、
ことを有する、方法。
【請求項14】
前記第1の導関数及び前記第2の導関数は各々、一次導関数及び二次導関数のそれぞれの一方を含む、請求項13に記載の方法。
【請求項15】
前記第2の生成スパイク列は、前記第1の生成スパイク列に基づいて決定される、請求項13又は14に記載の方法。
【請求項16】
前記第1の生成スパイク列及び前記第2の生成スパイク列は各々、異なるそれぞれのスパイク列に基づいて決定される、請求項13又は14に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
ここに記載される実施形態は、概してスパイキングニューラルネットワークに関し、より具体的には、他を排するものではないが、シナプス荷重値を決定する技術に関する。
【背景技術】
【0002】
コンピューティングシステムにニューラルネットワークを実装するために、現在、多様なアプローチが使用されている。一般に“人工ニューラルネットワーク”と呼ばれるそのようなニューラルネットワークの実装は、一般に、有機的な脳と同様の挙動を示す多数の高度に相互接続された処理要素(プロセッシングエレメント)を含む。そのような処理要素は、特殊化されたハードウェアで実装され、ソフトウェアでモデル化され、又はそれら双方の組み合わせであり得る。
【0003】
様々な用途のための次世代ソリューションを提供するために、スパイキングニューラルネットワーク(又は“SNN”)がますます適応されつつある。SNNは、信号スパイク間の時間ベースの関係を用いて情報が通信されるシグナリング技術に様々に依存する。例えば畳み込みニューラルネットワーク(CNN)又は再帰型ニューラルネットワーク(RNN)を備えるものなどの典型的なディープラーニングアーキテクチャと比較して、SNNは通信の経済性を提供し、代わってそれが電力効率の桁違いの改善を可能にする。
【0004】
ニューラルネットワークは、“学習”の機能を実装するように構成され、一般的にそれを用いて、ニューラルネットワーク内の特定の経路及び処理結果を提供する処理要素間のそれぞれの接続の荷重が調節される。ニューラルネットワークにて学習を実装するための既存のアプローチは、様々な態様の、教師なし学習(例えば、クラスタリング又は異常検出などを通じて未分類の訓練データから可能性ある解を推測する技術)、教師あり学習(例えば、分類済みの訓練データから可能性ある解を推測する技術)、及び強化学習(例えば、報酬を最大化することに基づいて可能性ある解を特定する技術)を伴ってきた。しかしながら、これらの学習技術は各々、実装するのが複雑であり、ニューラルネットワーク内で生じる変化の正確性を保証するために、広範な教師付け又は検証が必要とされることが多い。
【図面の簡単な説明】
【0005】
以下を含む添付の図面の図に、本発明の様々な実施形態を、限定ではなく例として示す。
図1】一実施形態に従った単純化したニューラルネットワークの機構を各々が例示する図を示している。
図2】一実施形態に従ったシナプス荷重の値を決定するためのスパイキングニューラルネットワークにおける方法の要素を例示するフロー図である。
図3A図3A及び3Bは、一実施形態に従ったシナプス荷重の値を決定するための信号及びパラメータのそれぞれの値を様々に例示するタイミング図を示している。
図3B図3A及び3Bは、一実施形態に従ったシナプス荷重の値を決定するための信号及びパラメータのそれぞれの値を様々に例示するタイミング図を示している。
図4】一実施形態に従ったスパイキングニューラルネットワークを用いて画像認識機能を提供するシステムの要素を例示する機能ブロック図である。
図5】一実施形態に従ったシナプス荷重の値を決定するスパイキングニューラルネットワークの状態遷移を例示するタイミング図を示している。
図6】一実施形態に従ったコンピューティング装置を例示する機能ブロック図である。
図7】一実施形態に従った例示的なコンピューティング装置を示す機能ブロック図である。
【発明を実施するための形態】
【0006】
ここに記載される実施形態は、スパイキングニューラルネットワークの1つ以上のシナプス荷重のそれぞれの値を更新する又は他の方法で決定する技術及び機構を様々に提供する。このような決定は、例えばスパイク列のそれぞれのスパイクレート間の関係に基づき、オートエンコーダとしてスパイキングニューラルネットワークの動作を支援し得る。スパイキングニューラルネットワークは“オートエンコーダ”として機能することができ、異なる参照パターンに基づく訓練が、スパイキングニューラルネットワークの一部又は全てのノード(又は“ニューロン”)を含み、各ノードが、対応するそれぞれのフィールドを、提示されたパターンのうちのそれぞれの部分でエンコードする。オートエンコーダは、ラベル付けられたデータセットが限られる又は存在しないために教師なし学習のみが利用可能な選択肢である数多くの用途において重要な機能を提供する。教師あり学習の一部ケースでも、オートエンコーダはシナプス荷重を初期設定するための事前訓練プロセスに有用であり得る。
【0007】
伝統的に、種々のタイプのオートエンコーダに関する訓練プロセスは、時間がかかり、又はその他の理由で非効率である。例えば、一部の従来型のニューラルネットワーク学習はシナプス時間依存可塑性(Synaptic Time Dependent Plasticity;STDP)則を様々に適用する。STDPベースの学習の1つの欠点は、例えばネットワーク学習及び学習解除を伴う多くの処理サイクルに起因して、極めてゆっくりと収束する傾向にあることである。このようなサイクルは非常に無駄である傾向にあるが、多くの標準的なSTDPスキームでは避けられないものである。異なるスパイク列のそれぞれのスパイクレートに少なくとも部分的に基づいて、例えば、そのようなスパイクレートの比に基づいて、シナプス荷重値計算を実行することによって、一部の実施形態は、ここではウェーブベース(Wave-based)STDP(WSTDP)と称する改良されたSTDPベースの学習を様々に可能にする。
【0008】
画像タイプを認識するためのスパイキングニューラルネットワークの訓練を参照して、様々な実施形態の特定の特徴をここに記載する。このような画像認識機能は、対応するオブジェクト認識機能を実装することができ、参照画像の画像タイプを認識するための訓練は、参照画像に表現されているオブジェクトのオブジェクトタイプを認識するための訓練を含む。しかしながら、一部の実施形態において、スパイキングニューラルネットワークは、加えて、あるいは代わりに、多様な他のデータタイプ(例えば、異なる画像タイプ、及び/又は画像タイプ以外の1つ以上のデータタイプを含む)のうちのいずれかを認識するように訓練されてもよい。例えば、スパイキングニューラルネットワークは、参照ビデオシーケンスに基づいて、特定のビデオシーケンスタイプ(及び/又は、それに対応した、参照ビデオシーケンスに表現されているアクションのアクションタイプ)を認識するように訓練されてもよい。他の実施形態において、参照オーディオに基づく訓練が、スパイキングニューラルネットワークを用いて特定のオーディオタイプの認識を支援するように適応されてもよい。
【0009】
ここに記載される技術は、1つ以上のエレクトロニクス装置に実装され得る。ここに記載される技術を利用し得るエレクトロニクス装置の非限定的な例は、例えばカメラ、携帯電話、コンピュータ端末、デスクトップコンピュータ、電子リーダ、ファクシミリ、キオスク端末、ネットブックコンピュータ、ノートブックコンピュータ、インターネット機器、決済端末、携帯情報端末、メディアプレーヤ及び/又はレコーダ、サーバ(例えば、ブレードサーバ、ラックマウントサーバ、それらの組み合わせなど)、セットトップボックス、スマートフォン、タブレットパーソナルコンピュータ、ウルトラモバイルパーソナルコンピュータ、有線電話、これらの組み合わせ、及びこれらに類するものなどの、あらゆる種類のモバイル装置及び/又は据え置き装置を含む。このような装置は、可搬式であってもよいし、固定式であってもよい。一部の実施形態において、ここに記載される技術は、デスクトップコンピュータ、ラップトップコンピュータ、スマートフォン、タブレットコンピュータ、ネットブックコンピュータ、ノートブックコンピュータ、携帯情報端末、サーバ、これらの組み合わせ、及びこれらに類するものにおいて使用され得る。より一般的には、ここに記載される技術は、スパイキングニューラルネットワークを提供するハードウェア及び/又は実行ソフトウェアを含む多様なエレクトロニクス装置のいずれで使用されてもよい。
【0010】
図1は、第1セットのノード110(例えば、ニューロン)と第2セットのノード130(例えば、ニューロン)との間の接続120の例示を提供するスパイキングニューラルネットワーク100の例示図を示している。ニューラルネットワーク(例えばスパイキングニューラルネットワーク100など)の一部又は全てが、例えば入力層及び出力層を含んだ、複数のレイヤに編成され得る。理解されることには、スパイキングニューラルネットワーク100は2つのレイヤ及び少数のノードのみを示しているが、他の形態のニューラルネットワークは、多数の様々に構成されたノード、レイヤ、接続、経路、及び/又はこれらに類するものを含み得る。
【0011】
ニューラルネットワーク100に提供されるデータは、先ず、入力ノードのシナプスによって処理され得る。入力、ノードのシナプス、ノード自体の間の相互作用が、軸索を介して別ノードのシナプスに出力が提供されるかを支配する。シナプス、ニューロン、軸索などをモデル化することは、多様な手法で遂行され得る。一例において、神経形態学的ハードウェアが、合成ニューロン(例えば、ニューロコア)内の個々の処理要素と、他のニューロンに出力を伝達するためのメッセージングファブリックとを含む。特定のノードが、接続された更なるノードにデータを提供するために“発火”するかの決定は、ノードによって適用される活性化機能と、ノードi(例えば、第1セットのノード110のレイヤに位置する)からノードj(例えば、第2セットのノード130のレイヤに位置する)へのシナプス接続の荷重(例えば、wij)とに依存する。ノードiによって受け取られる入力は値xとして表され、ノードjから生成される出力は値yとして表される。従って、ニューラルネットワークで行われる処理は、ニューロン、シナプス、及びニューラルネットワークの他の要素の間で行われる重み付けされた接続、閾値、及び評価に基づく。
【0012】
一例において、ニューラルネットワーク100は、スパイキングニューラルネットワークコアのネットワークから確立され、ニューラルネットワークコアは、コアからコアへ送られる短いパケット化されたスパイクメッセージを介して通信する。例えば、各ニューラルネットワークコアは、ノードの活性化が閾レベルを超えるとスパイクメッセージを生成し、該スパイクメッセージが、宛先コアに含まれる固定された一組のファンアウトノードに伝搬されるように、幾つかの原始的非線形時間計算要素をノードとして実装することができる。ネットワークは、すべての宛先ノードにスパイクメッセージを配布することができ、それに応答して、それらのノードは、過渡的で時間依存的にそれらの活性化を更新する。
【0013】
ニューラルネットワーク100は更に、第1セットのノードのうちのノードi(例えば、第1セットのノード110のうちのあるノード)における、値xにて表されるスパイクの受信を示している。ニューラルネットワーク100の出力も、値yによって表されるスパイクとして示されており、これは、接続120によって確立された経路を介して第2セットのノードのうちのノードj(例えば、第1セットのノード110のうちのあるノード)に到達するものである。スパイキングニューラルネットワークでは、全ての通信が、イベントドリブンな活動電位すなわちスパイク上で行われる。一例において、スパイクは、スパイク時間並びに起点・宛先ノードペアの他には如何なる情報も伝えない。計算は、それぞれのノード各々において、実数値の状態変数を用いた荷重スパイク入力の動的な非線形積分の結果として様々に行われ得る。特定のノードによって生成される又は特定のノードのために生成されるスパイクの時間シーケンスは、その“スパイク列”として参照され得る。
【0014】
スパイキングニューラルネットワークの一例において、活性化機能はスパイク列を介して発生し、これが意味することは、時間は考慮しなければならない要因であるということである。また、スパイキングニューラルネットワークでは、人工ノードが1つ以上の“樹状突起”(生物学的ノードの物理構造の一部)へのシナプス結合を介して入力を受け取り、そして、その入力が人工ニューロン“体細胞”(細胞体)の内部の膜電位に影響を与えるので、各ノードが生物学的ノードと同様の機能を提供することができる。スパイキングニューラルネットワークにおいて、人工ニューロンは、その膜電位が発火閾値を超えるときに“発火”する(例えば、出力スパイクを生成する)。従って、スパイキングニューラルネットワークノードに対する入力の影響が、その内部の膜電位を増加又は低下させるように作用し、そのノードを発火しやすい又は発火しにくいものとする。さらに、スパイキングニューラルネットワークにおいて、入力接続は、刺激性又は抑制性のいずれともなり得る。ノードの膜電位はまた、そのノード自身の内部状態の変化(“漏出”)によって影響され得る。
【0015】
図1はまた、例えばニューラルネットワーク100の形態又は他の形態のニューラルネットワークによって実装され得るものなどの、スパイキングニューラルネットワークにおける推論経路140の一例を示している。ノードの推論経路140は、スパイク入力を表すシナプス前スパイク列xを生成するように構成されるものであるシナプス前ノード142を含む。スパイク列は、離散的なスパイクイベントの時間シーケンスであり、ノードがどの時点で発火するかを指定する時点のセットを提供するものである。
【0016】
図示のように、スパイク列xは、シナプスの前のノード(例えば、ノード142)によって生成され、スパイク列xは、シナプス144の特性に従って処理のために評価される。例えば、シナプスは、スパイク列xからのデータを評価する際に使用される例えば荷重wijといった1つ以上の荷重を適用し得る。スパイク列xからの入力スパイクが、例えば荷重wijを持つシナプス144などのシナプスに入る。この荷重は、シナプス前スパイクがシナプス後ノード(例えば、ノード146)対してどれだけ影響を持つかを増減する。あるシナプス後ノードへの全ての入力接続の積分的な寄与が閾値を超えると、そのシナプス後ノード146は発火してスパイクを生成することになる。図示のように、yは、幾つかの入力接続に応答してシナプス後のノード(例えば、ノード146)によって生成されるシナプス後スパイク列である。図示のように、シナプス後スパイク列yは、ノード146から1つ以上の他のシナプス後ノードに配布される。
【0017】
一部の実施形態は、例えば荷重wijの値といったシナプス荷重の値が、1つのノードで生成された信号によるものと、異なるノードで生成された別の信号によるものとの、それぞれの位相変化の間の相関(存在すれば)とともに変化し得る処理を様々に含み又は他の方法で支援する。その荷重は、これらの2つのノードの間に結合されたシナプスに適用されることができ、また、一部の実施形態において、そのシナプスを介して伝達されるスパイク列に部分的に基づき得る。例えば、シナプス荷重の値の変化は、シナプス前スパイク列及びシナプス後スパイク列(この文脈において、“前”及び“後”は同一シナプスを基準にしている)のそれぞれのタイミングに依存し得る。シナプス前スパイクの後にシナプス後スパイクが続く場合、この“前に次いで後(pre-then-post)”の信号スパイクペアの近い時間的近接さは、因果関係を指し示すことがあり、これは、一部の実施形態において、シナプス荷重の値の増加に寄与することになる。対照的に、シナプス後スパイクがシナプス前スパイクに先行する場合には、この“後に次いで前(post-then-pre)”の信号スパイクペアの近い時間的近接さは、非因果(又は反因果)関係を指し示すことがあり、従って、シナプス荷重値が減少されることに寄与し得る。
【0018】
一部の実施態様は、シナプス前ノード及びシナプス後ノードがそれらそれぞれのスパイクレートを同時に増加(又は同時に減少)させることに基づいて、増加されたシナプス荷重を様々に提供する。一部の実施形態において、シナプス荷重は更に、そのようなシナプス前ノード及びシナプス後ノードが互いに位相を揃えてスパイクしている量に基づいてもよい。一部の実施形態は、シナプス荷重の値を更新する又は他の方法で決定するための効率的な技術及び/又は機構を様々に提供し、例えば、シナプス荷重に適用する変化が、スパイキングニューラルネットワークのノードによるスパイクのレート変化に基づいて決定される。
【0019】
例えば、再び図1を参照するに、ノード142は、シナプス144を介して、又は一部の実施形態ではスパイキングニューラルネットワーク100の別のノードを介して、スパイク列Iを出力し得る。スパイク列Iと並行して、ノード146は、スパイキングニューラルネットワーク100の1つ以上の他のノードに別のスパイク列Iを出力し得る。このような一実施形態において、スパイク列Iは、スパイクのレート(すなわち、“スパイクレート”)rを呈することができる(スパイクレートは、例えば、ヘルツ(Hz)単位で、又は単位時間当たりの信号スパイク数を表す様々な単位のうちのいずれかで示される)。スパイクレートrは、時間に沿って動く固定サイズの時間ウィンドウ内での、ノード142における膜電位の信号スパイクのカウント数を表し得る。同様に、スパイク列Iはスパイクレートrを呈することができ、例えば、スパイクレートrは、ノード146における膜電位の信号スパイクの別のカウント数(やはり時間に沿って動く何らかの固定サイズの時間ウィンドウ内での)を表す。スパイキングニューラルネットワーク100の動作中の所与の時点において、レートr、rは様々に、変化していなかったり、増加していたり、又は減少したりし得る。
【0020】
一部の実施形態は、例えば、φがスパイク列Iの位相であり、φがスパイク列Iの位相であり、そして、位相差Δφijが差(φ-φ)に等しいとして、シナプス144に割り当てられた荷重Wijがスパイク列I、I間の位相差Δφijと共に変化することを可能にする。一部の実施形態において、変化する荷重Wijの値は、変化する位相差Δφij(ただし、0≦φ,φ≦2π)と一致する又はその他で対応し得る。
【0021】
荷重Wijを変化させることは、wijに適用されることになる変化Δwijを、スパイクレートr、rの関数として決定することを含み得る。そのようなスパイクレートr、rの関数は、位相差Δφijに伴うwijの変化に類似するものとして作用し得る。例えば、ΔWijは、それぞれレートrの導関数dr/dt及びレートrの導関数dr/dtに基づく第1の値と第2の値との積に少なくとも部分的に基づいて計算され得る。
【0022】
限定ではなく例示として、Δwijの値は、次式:
【数1】
によって与えられることができ、ここで、Aはスケーリングパラメータである。Aが正の数である実施形態において、wijの値は、レートr、rがどちらも同時に増加すること又はどちらも同時に減少することに応答して増加され得る。このwijの増加は、スパイク列I、Iが互いに同相のままであること、位相差Δφijが一定のままであること、又はdr/dt及びdr/dtのうちの一方が、さもなければdr/dt及びdr/dtのうちの他方から生じるΔφijへの変化を緩和していることを考慮に入れるものである。それに代えて、あるいは加えて、レートr、rの一方又は双方が増加しながらレートr、rの他方が減少することに応答して、wijの値が減少され得る。一部の実施形態において、dr/dt及びdr/dtのうち少なくとも一方が変化していないとき、Δwijはゼロ(“0”)に設定される。
【0023】
荷重wijを更新することは、期間tの間に取られるΔwijのサンプルΔwij(t)に基づき得る。期間tは、例えば各々が同じ長さである一連の期間(期間のシーケンス)のうちの1つとし得る。このシーケンスは、期間tのすぐ後に続く次期間(t+1)を含むとし得る。そして、サンプルΔwij(t)は、時間tの間に各々が取られるdr/dt及びdr/dtのそれぞれのサンプルに基づくことができ、例えば、Δwij(t)は、次式:
【数2】
に従って決定される。
【0024】
1つのこのような実施形態において、期間tに対応する荷重値wij(t)が、例えば、期間tの間にサンプリングされた又は期間tに関してその他の方法で計算された変化値Δwij(t)を加算することによって、次期間(t+1)についての荷重値wij(t+1)へと更新され得る。このような荷重値の更新は、次式;
【数3】
に従い得る。しかしながら、実施形態は、一般に以下の形式:
【数4】
の多様な他の荷重更新計算のうちのいずれを提供してもよい。
【0025】
一部の実施形態は、この点に関して限定されるわけではないが、スパイキングニューラルネットワーク100のノードが、LIF(Leaky Integrate-and-Fire)タイプの改良版であってもよく、例えば、所与のノードjで受け取られる1つ以上のスパイク信号に基づき、そのノードjの膜電位vの値がスパイクし、次いで、時間をかけて減衰し得る。このような膜電位vのスパイク及び減衰挙動は、例えば、次式:
【数5】
に従うことができ、ここで、vrestは膜電位vが安定することになる静止電位であり、τは膜電位vの指数関数的減衰の時定数であり、wijは別ノードiからノードjへのシナプスのシナプス荷重であり、Iijはそのシナプスを介してノードjに伝達されるスパイク信号(又は“スパイク列”)であり、そして、Jは、例えば、何らかの外部ノード/ソースからノードjに提供されるバイアス電流又は他の信号に基づく値である。スパイキングニューラルネットワークは、所定の閾値電圧Vthresholdに基づいて動作することができ、ノードjは、その膜電位vmがVthresholdよりも大きいことに応答して信号スパイクを出力するように構成される。加えて、あるいは代わりに、荷重Wijの荷重Wij計算の値を更新することは、さらに減衰成分に基づくことができ、例えば、期間(t+1)についてのWij(t+1)が、次式:
【数6】
に従って決定され、ここで、τは荷重wijの減衰の時定数である。
【0026】
図2は、一実施形態に従ったスパイキングニューラルネットワークでシナプス荷重の値を決定する方法200の特徴を示している。方法200は、例えば、参照画像内に表される画像タイプなどのデータタイプを認識するようにスパイキングニューラルネットワークを訓練するために、ニューラルネットワーク100を用いて実行され得る。方法200は、各々が2つのノードのうち異なるそれぞれの一方で提供されるスパイク列の間の位相差に伴ってシナプス荷重値が変化するようにするプロセスの一例である。このシナプス荷重値が、これら2つのノードの間に結合されたシナプスに適用され得る。
【0027】
図2に示すように、方法200は、(210にて)スパイキングニューラルネットワークの第1のノードから、第1の生成スパイク列を伝達することを含み得る。第1の生成スパイク列は、第1のノードに提供された第1の受信スパイク列の1つ以上の信号スパイクに基づくことができ、第1の生成スパイク列は、第1のスパイクレートを示す。一実施形態例において、第1の受信スパイク列は、例えば外部のエンコーダ回路又は他のそのようなロジックによってスパイキングニューラルネットワークに伝達された別のスパイク列(“入力スパイク列”として参照する)に基づく。入力スパイク列は(単独で、又は1つ以上の他のスパイク列と組み合わさって)、画像の少なくとも一部のピクセルのエンコード版を表し得る。限定ではなく例示として、入力スパイク列は、少なくともある期間にわたって一定レートの信号スパイク及び時間変化する振幅を持つ周期的な成分を有し得る。そのような一実施形態において、1つピクセルの強度値が、周期成分の最大振幅によって表され得る。
【0028】
方法200は更に、(220にて)スパイキングニューラルネットワークの第2のノードから第2の生成スパイク列を伝達することを有することができ、第2の生成スパイク列は、第2のノードに提供された第2の受信スパイク列の1つ以上の信号スパイクに基づく。第2の生成スパイク列は、第2のスパイクレートを示し、第1のノード及び第2のノードの各々に直接的にシナプスが結合される。例えば、第2の生成スパイク列は、第2のノードで第1の生成スパイク列に基づいて決定されることができ、例えば、第1のノードが、シナプスを介して第1の生成スパイク列を第2のノードに送る。それに代えて、第1の生成スパイク列及び第2の生成スパイク列が各々、このシナプスとは独立のそれぞれの経路を介して伝達されてもよい。一部の実施態様において、第1の生成スパイク列及び第2の生成スパイク列は各々、異なるそれぞれのスパイク列に基づいて決定される。
【0029】
一部の実施形態において、方法200は更に、(230にて)第1のノード及び第2のノードの各々に直に結合されたシナプスを介して伝達される少なくとも1つの信号スパイクに、シナプス荷重の第1の値を適用することを含む。230での適用は、第1のノード及び第2のノードのうちの一方で行われることができ、例えば、第2のノードにおける第1の生成スパイク列の受信に応答して、第2のノードで行われ得る。
【0030】
方法200は更に、(240にて)シナプス荷重の第1の値に適用する変化を信号伝達することを含んで、シナプス荷重の第2の値を決定することを有し得る。この変化は、240にて、前記第1のスパイクレートに基づく第1の値と前記第2のスパイクレートに基づく第2の値との積に基づいて決定され得る。240での決定は、一部の実施形態において、第1のノード及び第2のノードのち、230での適用を行うのと同じ一方によって行われ得る。データタイプを認識するためのスパイキングニューラルネットワークの訓練は、この変化がシナプス荷重の第1の値に適用されることに基づき得る。
【0031】
一実施形態において、240で決定される変化は、第1のスパイクレートの第1の導関数と第2のスパイクレートの第2の導関数との積に基づく。第1の導関数及び第2の導関数は各々、(例えば、時間に関する)一次導関数及び二次導関数のそれぞれの一方を含み得る。例えば、第1のスパイクレート及び第2のスパイクレートのうちの一方がレートrである場合、第1の導関数及び第2の導関数のうちの対応する一方は、時間tに関するレートrの一次導関数dr/dt、又は時間tに関するレートrの二次導関数dr/dtとし得る。
【0032】
一部の実施形態において、方法200は、加えて、あるいは代わりに、各々が異なるそれぞれの期間の間にスパイキングニューラルネットワークの様々な構成を提供する1つ以上の他の処理(図示せず)を含む。そのような構成のうちの複数のものが各々、スパイキングニューラルネットワークのノードのうち異なるそれぞれのサブセットがシナプス荷重決定プロセスを実行することを可能にし、例えば、他のノードは各々、それぞれのシナプス荷重決定プロセスを同様に実行することを妨げられる。そのような構成のうちの所与の1つで、それぞれのサブセットのノードの各ノードが、処理230、240に従ってシナプス荷重更新を実行することを可能にされ得る。
【0033】
例えば、方法200の追加の又は代替の処理(図示せず)は、スパイキングニューラルネットワークのノードのうち第1のサブセットを選択し、第1の期間において、スパイキングニューラルネットワークを訓練して、それぞれのシナプスの荷重に対する更新を決定することを有し得る。そのような一実施形態において、1つ以上の他の処理は更に、スパイキングニューラルネットワークのノードのうち(第1のサブセットとは異なる)第2のサブセットを選択し、第2の期間において、スパイキングニューラルネットワークを訓練して、それぞれのシナプスの荷重に対する他の更新を決定することを有し得る。スパイキングニューラルネットワークの異なる構成を経時的に順次に実装することによって、一部の実施形態は、後に学習知識を捨て(アンラーニングされ)なければならないスパイキングニューラルネットワーク訓練の可能性を様々に制限する。
【0034】
図3A及び3Bは、タイミング図300、310、320、330を示しており、これらは、各々時間軸301に対して、一実施形態に従ったスパイキングニューラルネットワークで伝達されるそれぞれの信号を示している。例えばタイミング図300、310、320、330に示されるものなどの信号伝達は、ニューラルネットワーク100を用いて提供されることができ、例えば、方法200の処理がこのような信号伝達を含む又はその他の方法で生じさせる。
【0035】
タイミング図300は、スパイキングニューラルネットワークの第1のノードによって生成されるスパイク列Ix302を示している。タイミング図310は、スパイキングニューラルネットワークの第2のノードによって生成されるスパイク列Iy312を示しており、第1のノードと第2のノードとの間には(及びこれらの各々に直接的に)シナプスが結合されている。スパイク列Ix302、Iy312の値は、各々、電圧vの倍数(vは、例えば、100mVに等しい)に対して示されているが、一部の実施形態は、スパイク列Ix302、Iy312のうちの1つ又はいずれかによるスパイクの特定の振幅に限定されない。タイミング図320は、周波数軸322において、スパイク列Ix302による第1のスパイクレートのプロット324と、スパイク列Iy312による第2のスパイクレートの別のプロット326とを示している。スパイク列Ix302、Iy312の値は各々、周波数hの倍数(hは、例えば、4MHzに等しい)に対して示されているが、一部の実施形態は、スパイク列Ix302、Iy312のうちの1つ又はいずれかによる特定の範囲のスパイク周波数に限定されない。タイミング図330は、それぞれのスパイク列Ix302、Iy312を生成するノードの各々に結合されたシナプスの荷重wに適用され得る変化Δw332の、時間に依存した値を示している。このようなシナプスは、スパイク列Ix302、Iy312のうちの一方を伝達し得るが、一部の実施形態は、この点に関して限定されない。
【0036】
スパイク列Ix302、Iy312のそれぞれのスパイクレートは、例えば図示した時間t0から時間t8までの期間において、異なる時間に様々に減少したり、増加したり、あるいは不変であったりし得る。タイミング図300、310、320、330によって様々に例示されるシナリオ例において、スパイク列Ix302、Iy312のそれぞれのスパイクレートは各々、期間[t0-t1]の間は、そして期間[t7-t8]の間も、いくぶん安定している(すなわち、もしあったとしても、ほとんど傾きを持っていない)。スパイク列Iy312のスパイクレートはまた、期間[t2-t3]の間も安定であり、パイク列Ix302のスパイクレートは期間[t2-t3]及び[t3-t4]の間に安定である。スパイク列Ix302、Iy312のそれぞれのスパイクレートはまた、期間[t5-t6]の間に同時に増加して期間[t6-t7]の間に同時に減少しており、また、期間[t1-t2]の間は反対の符号の傾きで変化している。
【0037】
タイミング図330のプロット334によって示すように、Δw332の値は、プロット324、326のそれぞれの傾き同士の積との関係で経時的に変化し得る。変化Δw332の値は、何らかのスカラー値Wの倍数に対して示されているが、そのようなスカラー値の意味は、例えば、使用されるシナプス荷重スケール、スパイク列Ix302、Iy312を生成する特定のノード、スパイク列Ix302、Iy312によって表される情報、及び変化に対して特定のシナプスが持つ感度を含め、実装特有の詳細に全体的に依存し得る。
【0038】
図示した例示シナリオでは、プロット334は、プロット324、326のうちの少なくとも一方がゼロの傾きを持つ期間の間、すなわち、スパイク列Ix302、Iy312のうちの少なくとも一方が安定したスパイクレートを持つ期間の間、ゼロ(“0”)に等しい又は略ゼロである。プロット324、326が両方とも増加している又は両方とも減少している期間の間、プロット334は、そのような同時増加(又は同時減少)の速さ同士の積に比例する正の値を有し得る。プロット324、326が反対の符号の傾きで変化している期間の間、プロット334は、そのような同時増加(又は同時減少)の速さ同士の積に比例する負の値を有し得る。タイミング図330はまた、プロット334のそれぞれのサンプル336が取られる時点の一例を示しており、例えば、対応する時間tにおける各サンプル336が、シナプス荷重に順次に適用される一連の変化におけるそれぞれの変化Δw(t)を決定する。
【0039】
図4は、一実施形態に従ったスパイキングニューラルネットワークを用いて画像情報を評価するシステム400の特徴を示している。システム400は用途の一例であり、一実施形態において、スパイキングニューラルネットワークのシナプス荷重値が、それぞれ、2つの対応するスパイク列のそれぞれのスパイクレートに基づいて各々更新される。このようなシナプス荷重の更新は、方法200に従うことが、例えば、システム400はスパイキングニューラルネットワーク100の特徴を含む。
【0040】
図4に示すように、システム400のスパイキングニューラルネットワークは、第1セットのノード410と、それに結合された第2セットのノード420とを含み得る。一実施形態例において、第1セットのノード410及び第2セットのノード420は、それぞれ、n個のノード及びm個のノード(n及びmは正の整数である)を含む。第1セットのノード410を第2セットのノードに結合するシナプスは、次元(n×m)の接続行列Fを提供することができ、例えば、第1セットのノード410のn個のノードの各々が、第2セットのノード420のm個のノードの各々に、マトリックスFの異なるそれぞれのシナプスを介して結合される。それに代えて、あるいは加えて、第2セットのノード420が次元(m×m)を持つ接続行列Wを含み、それによって、第2セットのノード420の各々が、第2セットのノード420の他のノードの各々に結合されてもよい。しかしながら、異なる実施形態では、スパイク列のそれぞれのスパイクレートに基づくシナプス荷重の更新を可能にするために、様々な他のスパイキングニューラルネットワークトポロジのいずれが使用されてもよい。
【0041】
第1セットのノード410は、スパイキングニューラルネットワークを訓練するための情報を表す入力信号(例えば、図示の例示的な信号I、I、…、I)を様々に受信する求心性ノードとして機能し得る。第1セットのノード410のノードは、信号I、I、…、Iのうちのそれぞれの1つをエンコード(符号化)し得るとともに、対応するスパイク列を第2セットのノード420に様々に提供し得る。第1セットのノード410からのスパイク列は、各々が第2セットのノード420のそれぞれのノードとの間での様々な他のスパイク列の伝達を生じさせ得る。そして、そのような伝達が、第2セットのノード420の訓練をもたらすことができ、例えば、第2セットのノード420のシナプス荷重が、ここに記載されるようにして様々に更新される。この訓練は、第1セットのノード410によって提供される符号化スキームによって支援されることができ、それが、第2セットのノード420で伝達される少なくとも一部のスパイク列の間のスパイク周波数関係及び/又は位相関係(例えば、位相変化関係を含む)の検出を促進する又はその他の方法で可能にする。
【0042】
例えば、この符号化スキームは、同様の又はその他で相関したスパイク周波数を持つ第2セットのノード420のスパイク列をもたらし得る。結果として、このようなスパイクレート周波数に対する変化が、シナプス荷重を更新する目的で、スパイク列間の因果関係が示されるのか又はどのように示されるのかを検出するための基礎として使用され得る。ランダムな又は不規則に揺れ動くスパイクレートに寄与するのではなく、この符号化スキームは、各々がより共振的(周期的)な特性を呈するスパイク列を生じさせ得る。このようなスパイク列の位相は、別のスパイク列との関係で、シナプス荷重が更新されるのか又はどのように更新されるのかを反映し得る。
【0043】
信号I、I、…、Iは、それに関してスパイキングニューラルネットワークが訓練されるべき様々なタイプの情報のいずれかを表すことができ、例えば、信号I、I、…、Iは、スパイキングニューラルネットワークが認識するように訓練されている静止画像、オーディオクリップ、ビデオシーケンス、又は他の情報を表す。一実施形態例において、信号I、I、…、Iは、静止画像(例えば、記号、形状、顔、又はこれらに類するもの)を様々に表現するために使用され、スパイキングニューラルネットワークは、それらの画像を認識するように訓練される。限定ではなく例示として、信号I、I、…、Iは、それぞれ、異なるそれぞれの画像(又は画像の異なるそれぞれの行)に対応し得る。そのような一実施形態において、信号I、I、…、Iのうちの所与の信号Iは、第1セットのノード410のうちの対応するノードNに、例えば画像の所与の行内のピクセルを含んだ、一連のピクセルに関するピクセル値を伝達し得る。代わってノードNは、第2セットのノード420のうちの1つ以上のノードに、該一連のピクセルを表すスパイク列を出力し得る。
【0044】
第1セットのノード410によって提供される符号化スキームは、一実施形態例において、各々が発振信号の対応する振幅を有するピクセルのそれぞれの強度値を表し得る。例えば、第1セットのノード410のうちの所与のノードNは、所与の時間に次式:
【数7】
に従って画像ピクセルpの強度を表すバイアス電流Jに基づいて生成又は動作することができ、ここで、tは時間であり、bは正の固定バイアス値であり、ω及びφは(それぞれ)電流Jの周波数及び位相であり、そして、Aはピクセルpの強度である。周波数ωの値は、複数の期間(例えば、各々が、Jを受け取るノードの膜時定数(τ)に等しい)にわたって、ノードが受け取った刺激を積分するための信号処理を容易にし得る。それに代えて、あるいは加えて、ノード420のセットの一部又は全てのノードが各々、それぞれの振動するバイアス信号を与えられてもよく、例えば、ノードqは、
【数8】
として表されるバイアス信号Jを得ることができ、ここで、tは時間であり、また、J、ω、及びψは(それぞれ)バイアス信号Jの振幅、周波数、及び位相である。少なくとも最初において、ψは例えば範囲[0,2π]からランダムに選ばれ得る。それに代えて、あるいは加えて、ωは、第1セットのノード410によって使用される周波数(例えば、ω)と同じとし得る。
【0045】
画像データ又は他の訓練情報を、共振する信号スパイク特性を呈するスパイク列で表すことによって、一部の実施形態は、1つのノードによる信号スパイクと別のノードの信号スパイクとの間の因果関係を検出するための基礎としての、スパイク周波数情報の使用を様々に可能にする。異なる実施形態では、(ここに記載されるものに加えて)様々な符号化スキーム及び/又はバイアススキームのいずれかを使用して、スパイキングニューラルネットワークにおけるスパイクレートに基づくシナプス荷重の更新を可能にしてもよい。
【0046】
システム400のスパイキングニューラルネットワークは、信号I、I、…、Iに基づいて、特定のタイプの画像(“画像タイプ”)に対応する(例えば、指し示す)ように予め割り当てられている特定のタイプの出力信号を生成するように訓練され得る。例えば、信号I、I、…、Iは、複数の参照画像を表すことができ、各々が、スパイキングニューラルネットワークがそれらを認識するように訓練される複数の画像タイプのうちのそれぞれの1つのものであるとし得る。それに代えて、あるいは加えて、信号I、I、…、Iは、既に訓練済みのスパイキングニューラルネットワークに対して、スパイキングニューラルネットワークによる画像認識処理にかけられる1つ以上のテスト画像(例えば、実世界画像)を表してもよい。このような処理に基づいて、スパイキングニューラルネットワークは、所与のテスト画像が、スパイキングニューラルネットワークがそれを認識するように訓練される画像タイプのインスタンスを表しているか、を指し示す1つ以上の出力スパイク列を(例えば、図示の例示的なシナプス430を介して)伝達し得る。
【0047】
限定ではなく例示として、システム400は更に、シナプス430を介して1つ以上の出力スパイク列を受け取るハードウェア及び/又は実行ソフトウェア(例えば、図示の例示的なセレクタロジック440など)を有する又はそれに結合されることができる。セレクタロジック440は、種々のプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、及び/又は1つ以上の出力スパイク列に対応するとして画像タイプを識別するように構成される他の回路、のうちのいずれかを含むことができ、例えば、そのような識別は、スパイキングニューラルネットワークが認識するように訓練された複数の画像タイプから1つの画像タイプを選択することを含む。図示した実施形態例において、セレクタロジック440は、所与の画像タイプを指し示すものとして1つ以上の基準信号特性を特定する基準データ442を有する又はそれに結合されることができる。セレクタロジック440は、そのような1つ以上の基準特性に基づいて1つ以上の出力スパイク列を評価して、該1つ以上の出力スパイク列によって特定の画像タイプが指し示されるか(否か)を決定し得る。セレクタロジック440は、そのような決定の結果を表す信号444を出力し得る。
【0048】
図5は、一実施形態に従った、スパイキングニューラルネットワークのシナプス荷重値を決定するために使用される構成シーケンスを例示するタイミング図500を示している。タイミング図500は、例えばスパイキングニューラルネットワーク100又はシステム400を用いて実行され得るシーケンスを示している。
【0049】
タイミング図500に示すように、スパイキングニューラルネットワークの異なる構成のシーケンスは、図示の例示的な構成510、520、530を含み得る。このような構成510、520、530のうちの幾つもの構成が各々、スパイキングニューラルネットワークのノードのうちの異なるそれぞれの組み合わせが、それぞれのシナプス荷重決定プロセスを実行することを可能にすることができ、例えば、他のノードは各々、それぞれのシナプス荷重決定プロセスを同様に実行することを阻まれる。一部の組み合わせの各々が、シナプス荷重決定プロセスを行うことを可能にされた同一のノードを含んでもよい。
【0050】
凡例540に示すように、“含められるノード”記号は、現時においてシナプス荷重更新が可能にされているノードを表し、“除外されるノード”記号は、現時においてシナプス荷重更新が可能にされていないノードを表す。一例のシナリオにおいて、図示のスパイキングニューラルネットワークの構成510(時間501の期間T1における構成)は、ノード512の各々に対して可能にされているシナプス荷重更新を含んでいる。時間501の次の期間T2において、スパイキングニューラルネットワークの異なる構成520は、シナプス荷重更新を可能にされた他のノード522を含み得る。続いて、期間T3において、スパイキングニューラルネットワークの次の構成530は、シナプス荷重更新を可能にされた更に別の組み合わせのノード532を含み得る。
【0051】
スパイキングニューラルネットワークの異なる構成510、520、530を経時的に順次に実装することによって、一部の実施形態は、後に学習知識を捨てなければならないスパイキングニューラルネットワーク訓練の可能性を様々に制限する。一部の実施形態において、シナプス荷重更新プロセスに参加する(又はそれから除外される)ように異なる組み合わせのノードを選択的に構成することは、ネットワーク訓練プロセスの異なる段階の間での信号干渉の可能性を軽減する。さもなければ、画像認識プロセスの所与のフェーズ(特定の画像に関する又は画像のうち少なくとも1つ以上のピクセルに関するフェーズ)における信号伝達が、例えば、ニューラルネットワーク訓練の時間的に以前のフェーズ(例えば、異なる画像に関する又は同一画像のうち異なる1つ以上のピクセルに関する)の結果である他の信号伝達によって不適切に影響され得る。
【0052】
図6は、一実施形態に従ったコンピューティング装置600を例示している。コンピューティング装置600は、ボード602を収容している。ボード602は、以下に限られないがプロセッサ604及び少なくとも1つの通信チップ606を含む多数のコンポーネントを含み得る。プロセッサ604は、ボード602に物理的及び電気的に結合され得る。一部の実装形態において、上記少なくとも通信チップ606も、ボード602に物理的及び電気的に結合される。更なる実装形態において、通信チップ606は、プロセッサ604の一部である。
【0053】
コンピューティング装置600は、その用途に応じて、他のコンポーネントを含むことができ、それら他のコンポーネントは、ボード602に物理的及び電気的に結合されたものであってもよいし、結合されていないものであってもよい。それら他のコンポーネントは、以下に限られないが、揮発性メモリ(例えば、DRAM)、不揮発性メモリ(例えば、ROM)、フラッシュメモリ、グラフィックスプロセッサ、デジタル信号プロセッサ、暗号プロセッサ、チップセット、アンテナ、ディスプレイ、タッチスクリーンディスプレイ、タッチスクリーンコントローラ、バッテリー、オーディオコーデック、ビデオコーディック、電力増幅器、グローバル・ポジショニング・システム(GPS)デバイス、方位計、加速度計、ジャイロスコープ、スピーカ、カメラ、及び大容量記憶装置(例えば、ハードディスクドライブ)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、等々を含む。
【0054】
通信チップ606は、コンピューティング装置600への、及びそれからのデータの伝送のための無線通信を可能にし得る。用語“無線(ワイヤレス)”及びその派生形は、変調された電磁放射線を用いて非固体媒体を介してデータを伝達し得る回路、装置、システム、方法、技術、通信チャネルなどを記述するために使用され得る。この用語は、関連する装置が如何なるワイヤをも含まないことを意味するものではない(一部の実施形態では、如何なるワイヤをも含まないことがあり得る)。通信チップ606は、数多くある無線規格又はプロトコルのうちの何れを実装してもよい。それらの規格又はプロトコルは、以下に限られないが、Wi-Fi(IEEE802.11ファミリ)、WiMAX(IEEE802.16ファミリ)、IEEE802.20、ロングタームエボリューション(LTE)、Ev-DO、HSPA+、HSDPA+、HSUPA+、EDGE、GSM(登録商標)、GPRS、CDMA、TDMA、DECT、Bluetooth(登録商標)、これらの派生形、並びに、3G、4G、5G及びそれ以降として指定されるその他の無線プロトコルを含む。コンピューティング装置600は複数の通信チップ606を含み得る。例えば、第1の通信チップ606は、例えばWi-Fi及び/又はBluetooth(登録商標)など、より短距離の無線通信用にされ、第2の通信チップ606は、例えばGPS、EDGE、GPRS、CDMA、WiMAX、LTE、Ev-DO及び/又はその他など、より長距離の無線通信用にされ得る。
【0055】
コンピューティング装置600のプロセッサ604は、プロセッサ604内にパッケージングされた集積回路ダイを含む。用語“プロセッサ”は、レジスタ及び/又はメモリからの電子データを処理して、該電子データをレジスタ及び/又はメモリに格納され得る他の電子データへと変換する如何なるデバイス又はデバイス部分をも意味し得る。通信チップ606も、通信チップ606内にパッケージングされた集積回路ダイを含んでいる。
【0056】
様々な実装において、コンピューティング装置600は、ラップトップ、ネットブック、ノートブック、ウルトラブック、スマートフォン、タブレット、携帯情報端末(PDA)、ウルトラモバイルPC、携帯電話、デスクトップコンピュータ、サーバ、プリンタ、スキャナ、モニタ、セットトップボックス、娯楽制御ユニット、デジタルカメラ、ポータブル音楽プレーヤ、又はデジタルビデオレコーダとし得る。更なる実装において、コンピューティング装置600は、データを処理するその他の如何なるエレクトロニクス装置であってもよい。
【0057】
一部の実施形態は、一実施形態に従ったプロセスを実行するようにコンピュータシステム(又は他のエレクトロニクス装置)をプログラムするために使用され得る命令を格納した機械読み取り可能媒体を含み得るコンピュータプログラムプロダクト、すなわち、ソフトウェアとして提供され得る。機械読み取り可能媒体は、機械(例えば、コンピュータ)によって読み取り可能な形態で情報を記憶又は伝送するための何らかの機構を含む。例えば、機械読み取り可能(例えば、コンピュータ読み取り可能)媒体は、機械(例えば、コンピュータ)読み取り可能記憶媒体(例えば、読み出し専用メモリ(“ROM”)、ランダムアクセスメモリ(“RAM”)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイスなど)、機械(例えば、コンピュータ)読み取り可能伝送媒体(例えば、電気、光、音響、又は他の形態の伝播信号(例えば、赤外線信号、デジタル信号など))などを含む。
【0058】
図7は、ここで説明された方法のうちのいずれか1つ以上を機械(マシン)に実行させる命令のセットがその中で実行され得る、コンピュータシステム700の例示的な一形態での、マシンの図形描写を示している。代わりの実施形態において、このマシンは、ローカルエリアネットワーク(LAN)、イントラネット、エクストラネット、又はインターネットにて、その他の機械に接続(例えば、ネットワーク化)されてもよい。このマシンは、クライアント-サーバネットワーク環境においてサーバ又はクライアントの能力で動作し、あるいは、ピアツーピア(若しくは分散)ネットワーク環境においてピアマシンとして動作し得る。このマシンは、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、携帯情報端末(PDA)、携帯電話、ウェブ機器、サーバ、ネットワークルータ、交換機若しくはブリッジ回路、又は、マシンによって行われるべきアクションを規定する命令のセット(シーケンシャル若しくはその他)を実行可能な何らかのマシンとし得る。また、単一のマシンのみが図示されているが、用語“機械”(“マシン”)はまた、ここに説明された方法のうちのいずれか1つ以上を実行すべく、命令のセット(又は複数のセット)を個別にあるいは連帯して実行する複数のマシンの集合を含むように解されるべきである。
【0059】
この例示的なコンピュータシステム700は、プロセッサ702と、メインメモリ704(例えば、読み出し専用メモリ(ROM)、フラッシュメモリ、ダイナミックランダムアクセスメモリ(DRAM)(例えば、同期式DRAM(SDRAM)若しくはラムバスDRAM(RDRAM)など))と、スタティックメモリ706(例えば、フラッシュメモリ、スタティックランダムアクセスメモリ(SRAM)など)と、二次メモリ718(例えば、データストレージ装置)とを含んでおり、これらはバス730を介して互いに通信する。
【0060】
プロセッサ702は、例えばマイクロプロセッサ、中央演算処理ユニット、又はこれらに類するものなどの1つ以上の汎用プロセッシングデバイスを表す。より具体的には、プロセッサ702は、複数命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピュータ(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、若しくは他の命令セットを実装するプロセッサ、又は複数の命令セットの組み合わせを実装する複数のプロセッサとし得る。プロセッサ702はまた、例えば特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ、又はこれらに類するものなどの、1つ以上の専用プロセッシングデバイスであってもよい。プロセッサ702は、ここに記載された処理を実行するための処理ロジック726を実行するように構成される。
【0061】
コンピュータシステム700は更に、ネットワークインタフェース装置708を含み得る。コンピュータシステム700はまた、ビデオ表示ユニット710(例えば、液晶ディスプレイ(LCD)、発光ダイオードディスプレイ(LED)、又は陰極線管(CRT))、英数字入力装置712(例えば、キーボード)、カーソル制御装置714(例えば、マウス)、及び信号生成装置716(例えば、スピーカ)を含み得る。
【0062】
二次メモリ718は、ここに記載された方法又は機能のうちの何れか1つ以上を具現化する一組以上の命令(例えば、ソフトウェア722)を格納した機械アクセス可能記憶媒体(又は、それ具体的には、コンピュータ読み取り可能記憶媒体)732を含む。ソフトウェア722はまた、全体として又は少なくとも部分的に、メインメモリ704内にあることができ、及び/又はコンピュータシステム700によるその実行中にプロセッサ702内にあることができ、メインメモリ704及びプロセッサ702も機械読み取り可能記憶媒体を構成し得る。ソフトウェア722は更に、ネットワークインタフェース装置708を介してネットワーク720上で送信又は受信されてもよい。
【0063】
機械アクセス可能記憶媒体732は、例示的な一実施形態において、単一の媒体であるとして示されるが、用語“機械読み取り可能記憶媒体”は、一組以上の命令を格納する単一の媒体又は複数の媒体(例えば、集中型若しくは分散型データベース、及び/又は関連するキャッシュやサーバ)を含みように解されるべきである。用語“機械読み取り可能記憶媒体”はまた、機械による実行のために命令を格納又はエンコードすることができ且つ機械に1つ以上の実施形態のうちのいずれかを実行させる如何なる媒体をも含むように解されるべきである。用語“機械読み取り可能記憶媒体”は、従って、以下に限られないが、ソリッドステートメモリ、並びに光学媒体及び磁気媒体を含むように解されるべきである。
【0064】
例1は、データタイプを認識するようスパイキングニューラルネットワークを訓練するコンピュータ装置であって、当該コンピュータ装置は回路を有し、この回路は、スパイキングニューラルネットワークの第1のノードから第1の生成スパイク列を伝達し、前記第1の生成スパイク列は、前記第1のノードに提供された第1の受信スパイク列の1つ以上の信号スパイクに基づき、前記第1の生成スパイク列は、第1のスパイクレートを示し、また、スパイキングニューラルネットワークの第2のノードから第2の生成スパイク列を伝達し、前記第2の生成スパイク列は、前記第2のノードに提供された第2の受信スパイク列の1つ以上の信号スパイクに基づき、前記第2の生成スパイク列は、第2のスパイクレートを示し、第1のノード及び第2のノードの各々に直接的にシナプスが結合される。この回路は更に、前記シナプスを介して伝達される少なくとも1つの信号スパイクにシナプス荷重の第1の値を適用し、そして、シナプス荷重の前記第1の値に適用する変化を信号伝達する回路を含んで、シナプス荷重の第2の値を決定し、前記変化は、前記第1のスパイクレートに基づく第1の値と前記第2のスパイクレートに基づく第2の値との積に基づき、前記スパイキングニューラルネットワークの訓練は、前記変化が前記第1の値に適用されることに基づく。
【0065】
例2において、例1に係る事項は、オプションで、前記変化は、前記第1のスパイクレートの第1の導関数と、前記第2のスパイクレートの第2の導関数との積に基づく、ことを含む。
【0066】
例3において、例1乃至2のいずれか1つ以上に係る事項は、オプションで、前記第1の導関数及び前記第2の導関数は各々、一次導関数及び二次導関数のそれぞれの一方を含む、ことを含む。
【0067】
例4において、例1乃至3のいずれか1つ以上に係る事項は、オプションで、前記第1のノードは、前記シナプスを介して前記第1の生成スパイク列を前記第2のノードに送る、ことを含む。
【0068】
例5において、例1乃至4のいずれか1つ以上に係る事項は、オプションで、前記第1の生成スパイク列及び前記第2の生成スパイク列は各々、前記シナプスとは独立のそれぞれの経路を介して伝達される、ことを含む。
【0069】
例6において、例1乃至5のいずれか1つ以上に係る事項は、オプションで、前記第2の生成スパイク列は、前記第1の生成スパイク列に基づいて決定される、ことを含む。
【0070】
例7において、例1乃至6のいずれか1つ以上に係る事項は、オプションで、前記第1の生成スパイク列及び前記第2の生成スパイク列は各々、異なるそれぞれのスパイク列に基づいて決定される、ことを含む。
【0071】
例8において、例1乃至7のいずれか1つ以上に係る事項は、オプションで、当該コンピュータ装置は更に、前記スパイキングニューラルネットワークのノードのうち第1のサブセットを選択し、第1の期間において、前記スパイキングニューラルネットワークを訓練して、それぞれのシナプスの荷重に対する更新を決定する回路を有する、ことを含む。
【0072】
例9において、例8に係る事項は、オプションで、当該コンピュータ装置は更に、前記スパイキングニューラルネットワークのノードのうち第2のサブセットを選択し、第2の期間において、前記スパイキングニューラルネットワークを訓練して、それぞれのシナプスの荷重に対する更新を決定する回路を有する、ことを含む。
【0073】
例10は、命令を含んだ少なくとも1つの機械読み取り可能媒体であって、前記命令は、機械によって実行されるときに前記機械に、データタイプを認識するようスパイキングニューラルネットワークを訓練する処理を実行させ、前記処理は、スパイキングニューラルネットワークの第1のノードから第1の生成スパイク列を伝達し、前記第1の生成スパイク列は、前記第1のノードに提供された第1の受信スパイク列の1つ以上の信号スパイクに基づき、前記第1の生成スパイク列は、第1のスパイクレートを示し、また、スパイキングニューラルネットワークの第2のノードから第2の生成スパイク列を伝達し、前記第2の生成スパイク列は、前記第2のノードに提供された第2の受信スパイク列の1つ以上の信号スパイクに基づき、前記第2の生成スパイク列は、第2のスパイクレートを示し、第1のノード及び第2のノードの各々に直接的にシナプスが結合される、ことを有する。前記処理は更に、前記シナプスを介して伝達される少なくとも1つの信号スパイクにシナプス荷重の第1の値を適用し、そして、シナプス荷重の前記第1の値に適用する変化を信号伝達することを含んで、シナプス荷重の第2の値を決定し、前記変化は、前記第1のスパイクレートに基づく第1の値と前記第2のスパイクレートに基づく第2の値との積に基づき、前記スパイキングニューラルネットワークの訓練は、前記変化が前記第1の値に適用されることに基づく、ことを有する。
【0074】
例11において、例10に係る事項は、オプションで、前記変化は、前記第1のスパイクレートの第1の導関数と、前記第2のスパイクレートの第2の導関数との積に基づく、ことを含む。
【0075】
例12において、例10乃至11のいずれか1つ以上に係る事項は、オプションで、前記第1の導関数及び前記第2の導関数は各々、一次導関数及び二次導関数のそれぞれの一方を含む、ことを含む。
【0076】
例13において、例10乃至12のいずれか1つ以上に係る事項は、オプションで、前記第1のノードは、前記シナプスを介して前記第1の生成スパイク列を前記第2のノードに送る、ことを含む。
【0077】
例14において、例10乃至13のいずれか1つ以上に係る事項は、オプションで、前記第1の生成スパイク列及び前記第2の生成スパイク列は各々、前記シナプスとは独立のそれぞれの経路を介して伝達される、ことを含む。
【0078】
例15において、例10乃至14のいずれか1つ以上に係る事項は、オプションで、前記第2の生成スパイク列は、前記第1の生成スパイク列に基づいて決定される、ことを含む。
【0079】
例16において、例10乃至15のいずれか1つ以上に係る事項は、オプションで、前記第1の生成スパイク列及び前記第2の生成スパイク列は各々、異なるそれぞれのスパイク列に基づいて決定される、ことを含む。
【0080】
例17において、例10乃至16のいずれか1つ以上に係る事項は、オプションで、前記処理は更に、前記スパイキングニューラルネットワークのノードのうち第1のサブセットを選択し、第1の期間において、前記スパイキングニューラルネットワークを訓練して、それぞれのシナプスの荷重に対する更新を決定することを有する、ことを含む。
【0081】
例18において、例17に係る事項は、オプションで、前記処理は更に、前記スパイキングニューラルネットワークのノードのうち第2のサブセットを選択し、第2の期間において、前記スパイキングニューラルネットワークを訓練して、それぞれのシナプスの荷重に対する更新を決定することを有する、ことを含む。
【0082】
例19は、データタイプを認識するようスパイキングニューラルネットワークを訓練する方法であって、当該方法は、スパイキングニューラルネットワークの第1のノードから第1の生成スパイク列を伝達し、前記第1の生成スパイク列は、前記第1のノードに提供された第1の受信スパイク列の1つ以上の信号スパイクに基づき、前記第1の生成スパイク列は、第1のスパイクレートを示し、スパイキングニューラルネットワークの第2のノードから第2の生成スパイク列を伝達し、前記第2の生成スパイク列は、前記第2のノードに提供された第2の受信スパイク列の1つ以上の信号スパイクに基づき、前記第2の生成スパイク列は、第2のスパイクレートを示し、第1のノード及び第2のノードの各々に直接的にシナプスが結合される、ことを有する。当該方法は更に、前記シナプスを介して伝達される少なくとも1つの信号スパイクにシナプス荷重の第1の値を適用し、そして、シナプス荷重の前記第1の値に適用する変化を信号伝達することを含んで、シナプス荷重の第2の値を決定し、前記変化は、前記第1のスパイクレートに基づく第1の値と前記第2のスパイクレートに基づく第2の値との積に基づき、前記スパイキングニューラルネットワークの訓練は、前記変化が前記第1の値に適用されることに基づく、ことを有する。
【0083】
例20において、例19に係る事項は、オプションで、前記変化は、前記第1のスパイクレートの第1の導関数と、前記第2のスパイクレートの第2の導関数との積に基づく、ことを含む。
【0084】
例21において、例19乃至20のいずれか1つ以上に係る事項は、オプションで、前記第1の導関数及び前記第2の導関数は各々、一次導関数及び二次導関数のそれぞれの一方を含む、ことを含む。
【0085】
例22において、例19乃至21のいずれか1つ以上に係る事項は、オプションで、前記第1のノードは、前記シナプスを介して前記第1の生成スパイク列を前記第2のノードに送る、ことを含む。
【0086】
例23において、例19乃至22のいずれか1つ以上に係る事項は、オプションで、前記第1の生成スパイク列及び前記第2の生成スパイク列は各々、前記シナプスとは独立のそれぞれの経路を介して伝達される、ことを含む。
【0087】
例24において、例19乃至23のいずれか1つ以上に係る事項は、オプションで、前記第2の生成スパイク列は、前記第1の生成スパイク列に基づいて決定される、ことを含む。
【0088】
例25において、例19乃至24のいずれか1つ以上に係る事項は、オプションで、前記第1の生成スパイク列及び前記第2の生成スパイク列は各々、異なるそれぞれのスパイク列に基づいて決定される、ことを含む。
【0089】
例26において、例19乃至25のいずれか1つ以上に係る事項は、オプションで、当該方法は更に、前記スパイキングニューラルネットワークのノードのうち第1のサブセットを選択し、第1の期間において、前記スパイキングニューラルネットワークを訓練して、それぞれのシナプスの荷重に対する更新を決定することを有する、ことを含む。
【0090】
例27において、例26に係る事項は、オプションで、当該方法は更に、前記スパイキングニューラルネットワークのノードのうち第2のサブセットを選択し、第2の期間において、前記スパイキングニューラルネットワークを訓練して、それぞれのシナプスの荷重に対する更新を決定することを有する、ことを含む。
【0091】
スパイキングニューラルネットワークを用いてシナプス荷重の値を決定する技術及びアーキテクチャがここに記載されている。以上の記述では、説明の目的で、特定の実施形態の完全なる理解を提供するために数多くの具体的詳細事項が記述されている。しかしながら、当業者に明らかなことには、特定の実施形態は、これら具体的詳細事項を用いなくても実施されることができる。また、説明を不明瞭にすることを避けるために、構造及び装置をブロック図の形式で示している。
【0092】
本明細書における“一実施形態”又は“或る実施形態”への言及は、その実施形態に関連して説明される特定の機構、構造、又は特性が、本発明の少なくとも1つの実施形態に含まれることを意味する。故に、本明細書の様々な箇所に“一実施形態において”という言い回しが現れることは、必ずしも全てが同一の実施形態について言及しているわけではない。
【0093】
ここでの詳細な説明の幾つかの部分は、コンピュータメモリ内のデータビットについての処理のアルゴリズム及び記号表現に関して提示されている。これらのアルゴリズム的記述及び表現は、コンピューティング技術における当業者が自身の仕事の内容を他の当業者に最も効果的に伝えるために使用する手段である。アルゴリズムは、ここでは、また一般的に、所望の結果をもたらす首尾一貫した一連のステップであると考えられる。それらのステップは、物理量の物理的な操作を必要とするものである。通常、必ずしもそうではないが、それらの量は、格納され、伝送され、結合され、比較され、そしてその他の方法で操作されることが可能な電気的あるいは磁気的な信号の形態をとる。主に一般的用法という理由から、これらの信号をビット、値、エレメント、シンボル、文字、用語、数字、又はこれらに類するものとして参照することは、往々にして好都合であることがわかっている。
【0094】
しかしながら、留意すべきことには、これら及び同様の用語は全て、適当な物理量に関連付けられるものであり、それらの量に付された簡便なラベルに過ぎない。特に断らない限り、ここでの説明から明らかなように、記載全体を通して、例えば“処理する”、“計算する”、“演算する”、“決定する”、“表示する”又はこれらに類するものなどの用語を用いた説明は、コンピュータシステムのレジスタ及びメモリの内部で物理(電子)量として表されるデータを、コンピュータシステムメモリ若しくはレジスタ若しくはその他のそのような情報ストレージ、伝送装置、又は表示装置の内部で同様に物理量として表される他のデータへと、操作・変換するコンピュータシステム又は同様の電子コンピューティング装置の動作及び処理を意味することが認識される。
【0095】
特定の実施形態はまた、ここでの処理を実行する装置に関する。この装置は、要求される目的に合わせて特別に構築されてもよいし、コンピュータに記憶されるコンピュータプログラムによって選択的に起動あるいは再構成される汎用コンピュータを有していてもよい。そのようなコンピュータプログラムは、以下に限られないが例えば、フロッピーディスク(登録商標)、光ディスク、CD-ROM及び磁気光ディスクを含む何らかの種類のディスク、読み出し専用メモリ(ROM)、例えばダイナミックRAM(DRAM)などのランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気カード若しくは光カード、又は、電子的な命令を格納するのに好適であり且つコンピュータシステムバスに結合された何らかの種類のメディアなどの、コンピュータ読み取り可能記憶媒体に格納され得る。
【0096】
ここに提示されたアルゴリズム及びディスプレイは、如何なる特定のコンピュータ又はその他の装置にも本質的に関連付けられるものではない。様々な汎用システムが、ここでの教示に従ったプログラムとともに使用されてもよいし、より専用化された装置を構築して必要な方法ステップを実行することが都合がよいと判明することもある。多様なこれらシステムに必要な構造は、ここでの説明から見えてくるであろう。また、特定の実施形態は、特定のプログラミング言語を参照して説明されていない。認識されるように、ここに記載されたそのような実施形態の教示を実装することには、多様なプログラミング言語が使用され得る。
【0097】
ここに記載されたものの他にも、開示された実施形態及びその実装には、それらの範囲から逸脱することなく、様々な変更が為され得る。従って、ここでの説明及び例は、限定的な意味ではなく、例示的な意味で解釈されるべきである。本発明の範囲は、もっぱら、以下の特許請求の範囲を参照することによって測られるべきである。
図1
図2
図3A
図3B
図4
図5
図6
図7