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

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

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許7752683ニューラル・ネットワーク・システムのためのニューラル装置
<>
  • 特許-ニューラル・ネットワーク・システムのためのニューラル装置 図1
  • 特許-ニューラル・ネットワーク・システムのためのニューラル装置 図2
  • 特許-ニューラル・ネットワーク・システムのためのニューラル装置 図3
  • 特許-ニューラル・ネットワーク・システムのためのニューラル装置 図4
  • 特許-ニューラル・ネットワーク・システムのためのニューラル装置 図5A
  • 特許-ニューラル・ネットワーク・システムのためのニューラル装置 図5B
  • 特許-ニューラル・ネットワーク・システムのためのニューラル装置 図6
  • 特許-ニューラル・ネットワーク・システムのためのニューラル装置 図7
  • 特許-ニューラル・ネットワーク・システムのためのニューラル装置 図8A
  • 特許-ニューラル・ネットワーク・システムのためのニューラル装置 図8B
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-10-02
(45)【発行日】2025-10-10
(54)【発明の名称】ニューラル・ネットワーク・システムのためのニューラル装置
(51)【国際特許分類】
   G06N 3/065 20230101AFI20251003BHJP
   G06N 3/049 20230101ALI20251003BHJP
【FI】
G06N3/065
G06N3/049
【請求項の数】 19
(21)【出願番号】P 2023519008
(86)(22)【出願日】2021-09-20
(65)【公表番号】
(43)【公表日】2023-11-01
(86)【国際出願番号】 IB2021058535
(87)【国際公開番号】W WO2022084765
(87)【国際公開日】2022-04-28
【審査請求日】2024-02-15
(31)【優先権主張番号】17/076,458
(32)【優先日】2020-10-21
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】ウォズニアック、スタニスラフ
(72)【発明者】
【氏名】チメサ、リュビカ
(72)【発明者】
【氏名】パンタツ、アンゲリキ
【審査官】今城 朋彬
(56)【参考文献】
【文献】特開2018-136919(JP,A)
【文献】特表2015-534172(JP,A)
【文献】特表2017-509956(JP,A)
【文献】米国特許出願公開第2015/0269482(US,A1)
【文献】米国特許出願公開第2020/0143229(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00ー99/00
G06F 18/00-18/40
(57)【特許請求の範囲】
【請求項1】
ニューラル・ネットワーク・システムのためのニューラル装置であって、
復号期間の間に、1つまたは複数の入力信号を受信することと、
前記復号期間の間に、前記1つまたは複数の入力信号を復号することであって、結果として復号された信号を生じる、前記復号することと、
前記復号期間が終了すると、前記復号された信号を、内部ニューラル・ダイナミクスを示すモデルを用いて処理することと、
前記処理された信号を用いて、1つまたは複数の出力信号を後続の復号期間において、前記ニューラル・ネットワーク・システムの別のニューラル装置に対してエンコードおよび放出することと
を行うように構成された装置。
【請求項2】
前記入力および出力信号の各々には、それぞれの前記装置における前記信号の到着時間における情報がエンコードされるし、同じ信号には、その到着時間に応じて異なる情報がエンコードされることができる、請求項1に記載の装置。
【請求項3】
前記装置は、
a)前記1つまたは複数の入力信号を受信すると、前記入力信号に対して、前記入力信号の到着時間に対応する変調値を決定することと、
b)前記決定された変調値によって、前記受信された信号を重み付けして、重み付けされた信号を作り出すことと、
c)前記重み付けされた信号を、前記装置の入力状態の現在値に統合して、統合された値を作成することと、
d)前記復号期間の間に、各受信された入力信号に対して動作a)~c)を繰り返すことであって、前記復号された信号は、前記統合された値である、前記繰り返すことと
を行うことによって、前記入力信号を復号するように構成される、請求項1に記載の装置。
【請求項4】
前記装置は、前記変調値を前記到着時間における入力関数の値として決定するように構成され、前記入力関数は、時間依存区分線形関数である、請求項3に記載の装置。
【請求項5】
前記入力関数は、前記到着時間の増加する値と共に減少する値を備える、請求項4に記載の装置。
【請求項6】
前記装置は、前記変調値を前記到着時間における入力関数の値として決定するように構成され、前記入力関数は、予め規定された範囲の値が関わる時間依存非線形関数である、請求項3に記載の装置。
【請求項7】
前記装置は、出力関数を用いて前記1つまたは複数の出力信号をエンコードおよび放出するように構成され、前記出力関数は、前記後続の復号期間内の各時点に対する値をもたらすように構成され、
前記装置は、決定された値の組み合わせが、前記処理された信号の値を表すように、前記出力関数の1つまたは複数の値を決定するように構成され、前記決定された値に対応する諸時点での前記1つまたは複数の出力信号をもたらす、
請求項1に記載の装置。
【請求項8】
前記出力関数は、時間依存区分線形関数または時間依存非線形関数を備える、請求項7に記載の装置。
【請求項9】
前記出力関数は、線形関数、指数関数、または階段関数である、請求項8に記載の装置。
【請求項10】
入力ユニットと、内部ニューロン・ダイナミクス・ユニットと、出力ユニットとを備え、前記入力ユニットは、前記1つまたは複数の入力信号の受信および復号を行うように構成され、前記内部ニューロン・ダイナミクス・ユニットは、前記復号された信号の処理を行うように構成され、前記出力ユニットは、1つまたは複数の出力信号のエンコードおよび放出を行うように構成される、請求項1に記載の装置。
【請求項11】
前記入力ユニットは、入力関数を用いて前記1つまたは複数の入力信号を復号するように構成され、前記出力ユニットは、出力関数を用いて1つまたは複数の出力信号をエンコードおよび放出するように構成される、請求項10に記載の装置。
【請求項12】
前記別のニューラル装置は、前記ニューラル装置として動作するように構成され、前記ニューラル装置の前記出力関数と、前記別のニューラル装置の入力関数とは異なる、または同じ関数である、請求項11に記載の装置。
【請求項13】
前記内部ニューロン・ダイナミクス・ユニットは、蓄積ブロックと、出力生成ブロックとを備え、前記内部ニューロン・ダイナミクス・ユニットは、前に受信された1つまたは複数の信号に対応する現在の状態変数を有し、前記出力生成ブロックは、前記現在の状態変数に基づいて現在の出力値を生成するために、活性化関数を用いるように構成され、
前記蓄積ブロックは、
前記現在の出力値と、前記内部ニューロン・ダイナミクス・ユニットの時定数の減衰挙動を示す補正関数とを用いて、前記現在の状態変数の調整を計算することと、
現在の信号を受信することと、
前記計算された調整と、前記受信された信号とを用いて、前記現在の状態変数を更新することであって、前記更新された状態変数は、前記現在の状態変数となる、前記更新することと、
前記現在の状態変数に基づいて、前記出力生成ブロックに、前記現在の出力値を生成させることと
を繰り返し行うように構成される、請求項10に記載の装置。
【請求項14】
前記蓄積ブロックは、前記出力生成ブロックの前記活性化関数とは異なる活性化関数を用いて、前記更新を行うように構成される、請求項13に記載の装置。
【請求項15】
前記蓄積ブロックは、前記調整の前記計算のために用いられる、前記現在の出力値を示すリセット信号を、前記出力生成ブロックから受信するように構成される、請求項13に記載の装置。
【請求項16】
前記出力生成ブロックは、前記現在の出力値を生成すると、前記調整の前記計算のために用いられる、前記現在の出力値を示すリセット信号を、前記蓄積ブロックに自動的に供給するように構成される、請求項13に記載の装置。
【請求項17】
前記出力生成ブロックは、前記調整の前記計算のために用いられる、前記現在の出力値を示すリセット信号を、前記蓄積ブロックと前記出力生成ブロックとを接続するリセット・ゲートを通じて供給するように構成される、請求項13に記載の装置。
【請求項18】
ニューラル装置のための方法であって、
復号期間の間に、1つまたは複数の入力信号を受信することと、
前記復号期間の間に、前記1つまたは複数の入力信号を復号することであって、結果として復号された信号を生じる、前記復号することと、
前記復号期間が終了すると、内部ニューロン・ダイナミクスを示すモデルを用いて、前記復号された信号を処理することと、
前記処理された信号を用いて、ニューラル・ネットワーク・システムの別のニューラル装置に対して、後続の復号期間において、1つまたは複数の出力信号をエンコードおよび放出することと
を含む方法。
【請求項19】
コンピュータ可読プログラム・コードが具現化されたコンピュータ可読記憶媒体であって、前記コンピュータ可読プログラム・コードは、請求項18に記載の方法を実施するように構成される、コンピュータ可読記憶媒体
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、コンピュータ・システムの分野に関し、より詳細には、ニューラル・ネットワーク・システムのためのニューラル装置に関する。
【背景技術】
【0002】
ニューラル・ネットワークは、人工知能システムにおいて用いられる計算モデルである。ニューラル・ネットワークは、複数の人工ニューロンに基づき得る。各人工ニューロンは、1つまたは複数の他の人工ニューロンと接続されることができ、これらの接続(「リンク」)は、隣接したニューロンの起動状態を強化または抑止し得る。スパイキング・ニューラル・ネットワーク(SNN:Spiking Neural Network)における人工ニューロンは、スパイクを生成するためにニューロンの膜電位だけ超えられなければならない、ファイアリング閾値(firing threshold)によってもたらされ得る。この閾値化は、スパイクを用いたエネルギー効率の良いスパース通信(sparse communication)を可能にする、人工スパイキング・ニューロンの構成要素となり得る。
【発明の概要】
【0003】
様々な実施形態は、独立請求項によって記述されるように、ニューラル・ネットワーク・システムのためのニューラル装置、方法、およびコンピュータ・プログラム製品をもたらす。従属請求項には、有利な実施形態が記述される。本開示の実施形態は、それらが相互に排他的でない場合は、互いに自由に組み合わされ得る。
【0004】
1つの態様において、本開示のいくつかの実施形態は、ニューラル・ネットワーク・システムのためのニューラル装置(「送出装置」)に関する。ニューラル装置は、復号期間の間に、1つまたは複数の入力信号を受信することと、復号期間の間に、1つまたは複数の入力信号を復号することであって、結果として復号された信号を生じる、復号することと、復号期間が終了すると、復号された信号を、内部ニューラル・ダイナミクスを示すモデルを用いて処理することと、処理された信号を用いて、1つまたは複数の出力信号を後続の復号期間において、ニューラル・ネットワーク・システムの別のニューラル装置(「受信装置」)に対してエンコードおよび放出することとを行うように構成され得る。
【0005】
他の態様において、本開示のいくつかの実施形態は、ニューラル装置のための方法に関する。方法は、復号期間の間に、1つまたは複数の入力信号を受信することと、復号期間の間に、1つまたは複数の入力信号を復号することであって、結果として復号された信号を生じる、復号することと、復号期間が終了すると、内部ニューラル・ダイナミクスを示すモデルを用いて、復号された信号を処理することと、処理された信号を用いて、ニューラル・ネットワーク・システムの別のニューラル装置に対して、後続の復号期間において、1つまたは複数の出力信号をエンコードおよび放出することとを含み得る。
【0006】
他の態様において、本開示のいくつかの実施形態は、複数のレイヤを備えた人工ニューラル・ネットワーク・システムに関し、複数のレイヤの少なくとも1つのレイヤは、前述の実施形態によるニューロン装置を含む、1つまたは複数のニューロン具現化を備え得る。例えば、人工ニューラル・ネットワーク・システムの各ニューロンは、前述の実施形態によるニューロン装置とすることができる。
【0007】
他の態様において、本開示のいくつかの実施形態は、コンピュータ可読プログラム・コードが具現化されたコンピュータ可読記憶媒体を備えたコンピュータ・プログラム製品に関する。コンピュータ可読プログラム・コードは、前述の実施形態による方法を実施するように構成され得る。
【0008】
以下では、図面を参照して、例のみとして、本開示の実施形態がより詳細に説明される。
【図面の簡単な説明】
【0009】
図1】本開示のいくつかの実施形態と一致する、ニューロン装置の例を示す図である。
図2】本開示のいくつかの実施形態と一致する、内部ニューロン・ダイナミクス・ユニットの例示の実装形態を示す図である。
図3】本開示のいくつかの実施形態と一致する、ニューラル装置によって入力信号を処理する方法のフローチャートである。
図4】本開示のいくつかの実施形態と一致する、変調値を決定するための例示の時間依存関数を示す図である。
図5A】本開示のいくつかの実施形態と一致する、変調値を決定するための例示の時間依存関数を示す図である。
図5B】本開示のいくつかの実施形態と一致する、変調値を決定するための例示の時間依存関数を示す図である。
図6】本開示のいくつかの実施形態と一致する、内部ニューロン・ダイナミクス・ユニットによって出力値を生成する方法のフローチャートである。
図7】本開示のいくつかの実施形態と一致する、2つのニューラル装置を用いて、信号を復号およびエンコードする方法を示す図である。
図8A】本開示のいくつかの実施形態と一致する、例示のSNNの試験精度を示すグラフである。
図8B】本開示のいくつかの実施形態と一致する、例示のSNNによって作り出されるスパイクの平均数を示すグラフである。
【発明を実施するための形態】
【0010】
本開示の様々な実施形態の説明は、例示のために提示されるが、網羅的であること、または開示される実施形態に限定されるものではない。当業者には、述べられる実施形態の範囲および思想から逸脱せずに、多くの変更形態および変形形態が明らかになるであろう。本明細書で用いられる専門用語は、実施形態の原理、実用的な応用例、または市場で見出される技術に対する技術的改良を説明するのを助けるように、または当業者が、本明細書で開示される実施形態を理解することを可能にするように選ばれた。
【0011】
いくつかの実施形態におけるニューラル装置は、異なる時間スケールにおいて、ニューロンの異なる部分が動作する、複数時間スケール・スパイキング・ニューロンをもたらし得る。いくつかの実施形態は、神経形態学的スパイク・ベースの装置のスパイキング能力を効率的に制御することによって、神経形態学的スパイク・ベースの装置の動作を強化し得る。具体的には、いくつかの実施形態は、入力タイミング情報を利用することができ、これは情報をより効率的に送信するための、理論的に魅力的な能力を有し得る。これは、標準のスパイキング・ニューロンと比べて精度を改善することができ、最新技術のレート符号化と比べて効率を改善し得る。さらに、これは近似の必要がない、通時的誤差逆伝播法(BPTT:Backpropagation Through Time)技術を用いたエンド・ツー・エンド訓練可能なSNNを可能にし得る。このようにして、いくつかの実施形態は、豊富で正確な情報の送出および受信を強化するように、人工スパイキング・ニューロンのスパイキング・プロセスを改善し得る。
【0012】
例えば、復号された信号をモデルを用いて処理することは、例えば、手書き数字認識のための画像処理を可能にし得る。内部ニューロン・ダイナミクスを示す(またはそれを表す)モデルfは、ニューラル装置の内部ニューロン・ダイナミクスのモデルとすることができる。モデルは、例えば、ソマティック計算のモデルとすることができる。モデルは、例えば、ステートフル・モデルとすることができる。モデルは、例えば、1つまたは複数の活性化関数と、例えばニューラル装置の膜電位を表す、内部状態とを用い得る。一例では、モデルは活性化関数、または複数の活性化関数の組み合わせとすることができる。
【0013】
ニューラル・ネットワーク・システムは、SNNなど、人工ニューラル・ネットワークを実装/実行するように構成され得る。一例では、ニューラル装置は、人工ニューラル・ネットワークのニューロンとして実装され得る。例えば、人工ニューラル・ネットワークは、複数のレイヤを備えることができ、複数のレイヤの各レイヤは、ニューロンを備え、諸ニューロンの各ニューロンは、ニューラル装置とすることができる。
【0014】
いくつかの実施形態によれば、入力および出力信号の各信号は、それぞれの装置における信号の到着時間における情報をエンコードし得る。入力信号および出力信号の各信号は、スパイクとすることができる。スパイクは、例えば、ゼロまたは1の値を有し得る。入力信号の各信号は、送出装置において、信号の到着時間に情報をエンコードし得る。入力信号は、例えば、ニューラル装置への1つまたは複数のフィードフォワード接続から、またはニューラル装置への1つまたは複数のリカレント接続(recurrent connection)から、あるいはその両方から受信され得る。ニューラル装置は、ニューラル・ネットワーク・システムの他のニューラル装置に、フィードフォワード接続またはリカレント接続、あるいはその両方を通じて接続され得る。出力信号の各信号は、受信装置において、信号の到着時間に情報をエンコードし得る。受信された信号は、ゼロ-1正規化実数値などの変数値とすることができる。例えば、値は、画像の画素の内容を示し得る。
【0015】
いくつかの実施形態によれば、装置は、a)諸入力信号うちの入力信号を受信すると、入力信号に対して、入力信号の到着時間に対応する変調値を決定することと、b)決定された変調値によって、受信された信号を重み付けすることと、c)重み付けされた信号を、装置の入力状態の現在値に統合することと、d)復号期間の間に、各受信された入力信号に対して動作a)~c)を繰り返すことであって、復号された信号は、統合された値とすることができる、繰り返すこととを行うことによって、入力信号を復号するように構成され得る。入力状態は、例えば、各復号期間に対して、所与の値、例えば、ゼロに(再)初期化され得る。
【0016】
例えば、動作a)で受信された入力信号の各入力信号は、信号に関連付けられたシナプス重みによって重み付けされ得る信号とすることができる。例えば、信号は、シナプス重みwを有するシナプス・ユニットを通過することができ、信号は、シナプス重みwによって重み付けされることができ、結果として、動作a)で受信される入力信号を生じる。
【0017】
いくつかの実施形態によれば、装置は、変調値を到着時間における入力関数の値として決定するように構成されることができ、入力関数は、時間依存区分線形関数である。これらの実施形態は、信号シーケンスの区別における入力ユニットの能力を強化し得る。例えば、同じ、信号のセットが複数回受信され、信号は毎回異なる時点で、異なる順序で受信される場合、これは結果として、異なる復号された信号を生じ得る。
【0018】
いくつかの実施形態によれば、入力関数は、増加する到着時間値と共に減少する値を有し得る。
【0019】
いくつかの実施形態によれば、装置は、変調値を到着時間における入力関数の値として決定するようにさらに構成されることができ、入力関数は、予め規定された範囲の値が関わる時間依存非線形関数である。この実施形態は、所与の復号期間に対して定義される区分線形関数と比較して、値の範囲は増加されることができ、および分解能は、次第にきめ細かい寄与を有するさらなるパルスの放出を通して維持され得るので、有利となり得る。
【0020】
いくつかの実施形態によれば、装置は、出力関数を用いて1つまたは複数の出力信号をエンコードおよび放出するように構成され得る。出力関数は、後続の復号期間内の各時点に対する値をもたらすように構成され得る。装置は、決定された値の組み合わせ(例えば、合計)が、処理された信号の値を表すように、出力関数の1つまたは複数の値を決定するようにさらに構成されることができ、決定された値に対応する諸時点での1つまたは複数の出力信号をもたらす。
【0021】
いくつかの実施形態によれば、出力関数は、時間依存区分線形関数または時間依存非線形関数とすることができる。
【0022】
いくつかの実施形態によれば、出力関数は、線形関数、指数関数、または階段関数とすることができる。
【0023】
いくつかの実施形態によれば、装置は、入力ユニットと、内部ニューロン・ダイナミクス・ユニットと、出力ユニットとを備え得る。入力ユニットは、1つまたは複数の入力信号の受信および復号を行うように構成され得る。内部ニューロン・ダイナミクス・ユニットは、復号された信号の処理を行うように構成されることができ、出力ユニットは、1つまたは複数の出力信号のエンコードおよび放出を行うように構成され得る。内部ニューロン・ダイナミクス・ユニットは、内部ダイナミクスを示すモデルを実装するように構成され得る。
【0024】
入力ユニットのそれぞれと、内部ニューロン・ダイナミクス・ユニットと、出力ユニットとは、そのそれぞれの動作を行うために、そのカーネルまたはダイナミクスを用い得る。入力ユニットは、樹状カーネルを有する樹状ユニットと呼ばれ得る。出力ユニットは、軸索カーネルを有する軸索ユニットと呼ばれ得る。内部ニューロン・ダイナミクス・ユニットは、内部ニューラル・ダイナミクスのモデルに従って、復号された信号を処理し得る(例えば、各連続した処理動作に対して)。内部ニューラル・ダイナミクスの範囲を制限することなく、さらなる説明は、モデルの例示的な例として、非線形、時間的に変化するものとすることができ、および内部状態が関わる関数を利用する。本開示は、樹状および軸索カーネルの高速動作の特徴と、内部ニューラル・ダイナミクスの低速動作の特徴とのバランスを取ることができる。高速動作の樹状および軸索カーネルは、タイミングを用いて情報を送信することを可能にし得る。低速動作の内部ニューラル・ダイナミクスは、より正確な入力および出力値を利用し得る。モデルfの関数は、微分可能関数とすることができる。微分可能関数は、BPTTによるエンド・ツー・エンド訓練を可能にし得る。
【0025】
いくつかの実施形態は、それらが簡単な神経形態学的ハードウェア実装形態をもたらし得るので、有利であり得る。例えば、同じおよび簡単な樹状および軸索カーネルが、ルックアップ・テーブル(LUT)、発振器、またはキャパシタとして実装可能とすることができ、複数のニューロンによって共有され得る。コーディングは、ニューロン設計での変更なしに、LUT再プログラミングを通して適合され得る(例えば、ハードウェア制限、タスク要件、要求される正確さなどに基づいて)。例えば、より長いカーネルは、より高い正確さをもたらし得る。カーネルには、線形、指数関数など、異なるエネルギー/レイテンシ・トレードオフがもたらされ得る。カーネルは、例えば、階段形状の、ジッタのあるスパイクの時間的位置に対してロバスト性があり得る。
【0026】
いくつかの実施形態によれば、入力ユニットは、入力関数(または樹状カーネル)を用いて、1つまたは複数の入力信号を復号するように構成され得る。出力ユニットは、出力関数(または軸索カーネル)を用いて、1つまたは複数の出力信号をエンコードおよび放出するように構成され得る。
【0027】
いくつかの実施形態によれば、送出装置の出力関数と、受信装置の入力関数とは、異なるまたは同じ関数とすることができる。これは、例えば、送出装置の軸索カーネルが受信装置の樹状カーネルに、それらが値を正確に通信できるように、対応することを可能にし得る。
【0028】
いくつかの実施形態によれば、内部ニューロン・ダイナミクス・ユニットは、蓄積ブロックと、出力生成ブロックとを備え得る。内部ニューロン・ダイナミクス・ユニットは、前に受信された1つまたは複数の信号に対応する現在の状態変数を有し得る。出力生成ブロックは、現在の状態変数に基づいて現在の出力値を生成するために、活性化関数を用いるように構成され得る。蓄積ブロックは、
・現在の出力値と、内部ニューロン・ダイナミクス・ユニットの時定数の減衰挙動を示す補正関数とを用いて、現在の状態変数の調整を計算することと、
・現在の信号を受信することと、
・計算された調整と、受信された信号とを用いて、現在の状態変数を更新することであって、更新された状態変数は、現在の状態変数となる、更新することと、
・現在の状態変数に基づいて、出力生成ブロックに、現在の出力値を生成させることと
を繰り返し行うように構成され得る。
この実施形態は、内部ニューラル・ダイナミクスのモデルの望ましい実装をもたらし得る。
【0029】
いくつかの実施形態によれば、蓄積ブロックは、出力生成ブロックの活性化関数とは異なる活性化関数を用いて、更新を行うように構成され得る。
【0030】
いくつかの実施形態によれば、蓄積ブロックは、調整の計算のために用いられる、現在の出力値を示すリセット信号を、出力生成ブロックから受信するように構成され得る。
【0031】
いくつかの実施形態によれば、出力生成ブロックは、現在の出力値を生成すると、調整の計算のために用いられる、現在の出力値を示すリセット信号を、蓄積ブロックに自動的に供給するように構成され得る。
【0032】
いくつかの実施形態によれば、出力生成ブロックは、調整の計算のために用いられる、現在の出力値を示すリセット信号を、蓄積ブロックと出力生成ブロックとを接続するリセット・ゲートを通じて供給するように構成され得る。
【0033】
図1は、本開示のいくつかの実施形態と一致する、ニューラル装置100の例を示す。ニューラル装置100は、神経形態学的ハードウェア実装形態を用いて実施され得る。例えば、ニューラル装置は、本開示の少なくとも一部を実施するために、メモリスタを用いた回路とすることができる。ニューラル装置100は、代替として、例えば、アナログまたはデジタルCMOS回路を用いて実施され得る。
【0034】
ニューラル装置100は、入力ユニット102と、内部ニューロン・ダイナミクス・ユニット103と、出力ユニット104とを備え得る。ニューラル装置100は、到来する信号または値を受信、および処理し得る。入力ユニット102は、復号期間p内に存在する、1つまたは複数のスパイクのセット
【数1】

を処理するように構成され得る。スパイクのセット
【数2】

は、例えば、時間的符号化値/信号
【数3】

を表し得る。例えば、スパイクのセットSの各スパイクrは、シナプス重みwを有して、rとwの乗算の結果とすることができるw×rとして重み付けされて、入力ユニット102の、シナプス・ユニット105を通過し得る。シナプス・ユニット105は、重みユニット106に、スパイクrの重み付けされた値w×rを供給するようにさらに構成され得る。スパイキング・ニューラル・ネットワークにおいて、rは0または1の値を有し得る。重みユニット106は、各重み付けされた値w×rに対して、スパイクrの到着時間に対応する変調値αを選択することができ、重み付けされた値w×rは、例えば、w×r×αとして、選択された変調値によってコンボリューションされ(convolved)得る。重みユニット106は、ソマティック入力
【数4】

を計算するようにさらに構成され得る。ソマティック入力
【数5】

は、復号期間p内のスパイクのセットSの各スパイクの、計算された値w×r×αの合計として定義され得る。ソマティック入力
【数6】

は、値
【数7】

を復号した結果とすることができ、従って復号された信号と名付けられ得る。入力ユニット102は、ソマティック入力
【数8】

を、内部ニューロン・ダイナミクス・ユニット103に供給するように構成され得る。
【0035】
復号期間pが終了すると、内部ニューロン・ダイナミクス・ユニット103は、ソマティック入力
【数9】

を、ソマティック出力
【数10】

を計算するためにモデルfを用いて処理し得る。言い換えれば、ニューラル・ダイナミクス・モデルfは、ソマティック入力
【数11】

を用いて、ソマティック出力
【数12】

を計算し得る。モデルfは、例えば、整流された線形活性化関数、ステップ関数、またはそれらの組み合わせとすることができる。モデルfの他の例は、図2を参照して示される。内部ニューロン・ダイナミクス・ユニット103は、ソマティック出力
【数13】

を出力ユニット104に供給するように構成され得る。
【0036】
出力ユニット104は、軸索カーネルをソマティック出力
【数14】

に適用して、後続の復号期間pk+1内で放出される1つまたは複数の出力スパイクのセット
【数15】

を生成し得る。例えば、ソマティック出力
【数16】

が軸索カーネルの最大値より高い場合、複数のスパイクが復号期間pk+1内で放出されることができ、なぜならソマティック出力
【数17】

を表すために、複数の値が組み合わされる必要があり得るからである。ソマティック出力
【数18】

がゼロに等しい場合、スパイクは放出され得ない。ソマティック出力
【数19】

が軸索カーネルの値の範囲内である場合、復号期間pk+1内に1つのスパイクが放出され得る。スパイクのセット
【数20】

は、ニューラル装置100を用いてここで述べられたように、スパイクのセット
【数21】

を処理するように構成された別のニューラル装置に入力され得る。
【0037】
図2は、本開示のいくつかの実施形態と一致する、内部ニューロン・ダイナミクス・ユニット103の他の例示の実装形態を示す。図2は、復号期間pの間に信号
【数22】

を受信した後の、内部ニューロン・ダイナミクス・ユニット103のステータスを示す。本開示のいくつかの実施形態と一致する、出力値
【数23】

を生成するために、内部ニューロン・ダイナミクス・ユニット103は、出力値を定義するために用いられ得る、時間依存状態変数
【数24】

(例えば、これは膜電位を表し得る)が関わり得る。
【0038】
内部ニューロン・ダイナミクス・ユニット103は、蓄積ブロック201と、出力生成ブロック203とを備え得る。蓄積ブロック201は、加算回路210と、乗算回路211と、起動回路212とを備え得る。乗算回路211は、例えば、リセット・ゲートとすることができる。蓄積ブロック201は、計算された状態変数を、分岐点214において、出力生成ブロック203と、乗算ロジック211とに、並行して出力するように構成され得る。分岐点214と、乗算ロジック211との間の接続209は、接続209が時間遅れを有することを示すために破線で示される。すなわち、内部ニューロン・ダイナミクス・ユニット103が、受信されたソマティック入力
【数25】

を処理して、対応する
【数26】


【数27】

とを生成している時点で、接続209は、前の復号期間pk-1の、前の状態変数
【数28】

の値を送信し得る。
【0039】
出力生成ブロック203は、起動ロジック215を備え得る。出力生成ブロック203は、蓄積ブロック201から状態変数を受信するように構成され得る。受信された状態変数に基づいて、出力生成ブロック203は、出力値を生成し、分岐点217において、別のニューラル装置と、内部ニューロン・ダイナミクス・ユニット103のリセット・モジュール207とに、並行して供給または出力し得る。リセット・モジュール207は、受信された出力値からリセット信号を生成し、リセット信号を乗算ロジック211に供給するように構成され得る。例えば、所与の出力値
【数29】

に対して、リセット・モジュールは、値
【数30】

を示すリセット信号を生成し得る。接続220は、接続220が時間遅れを有することを示すために破線で示される。すなわち、いくつかの実施形態において、内部ニューロン・ダイナミクス・ユニット103が、受信されたソマティック入力
【数31】

を処理して、対応する
【数32】

および
【数33】

を生成している時点で、接続220は、前の出力値
【数34】

を送信し得る。接続209および220は、内部ニューロン・ダイナミクス・ユニット103内のフィードバック能力を有効化し得る。具体的には、接続209は、蓄積ブロック内の自己ループ接続とすることができ、接続220は、状態リセットを行うためのゲート接続を起動し得る。
【0040】
状態変数値
【数35】

と、出力値
【数36】

とを受信すると、乗算ロジック211は、調整を
【数37】

として計算するように構成されることができ、l(τ)は、時定数τを有する状態変数の減衰挙動を考慮に入れた補正関数である。l(τ)の値は、例えば、ニューラル装置のメモリに記憶され得る。例えば、補正関数は、
【数38】

として定義されることができ、ΔTは、内部ニューロン・ダイナミクス・ユニット・サンプリング時間である。乗算回路211によって計算された調整は、出力され、加算回路210に供給され得る。加算回路210は、乗算回路211からの調整と、ソマティック入力
【数39】

とを受信するように構成され得る。加算回路210は、受信された調整と、ソマティック入力
【数40】

との合計を行って、
【数41】

とするようにさらに構成され得る。この合計は、加算回路210によって、起動回路212に供給または出力され得る。起動回路212は、加算回路210から、計算された合計を受信するように構成され得る。起動回路212は、その活性化関数を計算された合計に適用して、状態変数
【数42】


【数43】

として計算するように構成され得る。結果としての状態変数
【数44】

は、出力生成ブロック203の起動回路215と、乗算回路211とに、並行して出力され得る(乗算回路211に出力することは、次の受信されたソマティック入力
【数45】

のために有用となり得る)。起動回路215は、状態変数
【数46】

を受信し、状態変数
【数47】

から出力値
【数48】

を生成するように構成され得る。例えば、
【数49】

であり、hは、シグモイド活性化関数などの活性化関数である。内部ニューロン・ダイナミクス・ユニット103は、一定値bを有する追加の入力を有し得るので、バイアスされることができ、一定値b(バイアス値)が考慮に入れられ得る。例えば、バイアス値bは、
【数50】

として、出力値y(t)を決定するために用いられ得る。これは、内部ニューロン・ダイナミクス・ユニット103の改善された性能を可能にし得る。生成された出力値
【数51】

は、次の受信されたソマティック入力に対する使用のために、リセット・モジュール207に出力され得る。出力値
【数52】

は、ソマティック出力
【数53】

として供給され得る。
【0041】
図3は、本開示のいくつかの実施形態と一致する、ニューラル装置、例えば100によって、入力信号を処理する方法のフローチャートである。説明を簡単にするために、図3は、図4の簡略化された例を参照して述べられるが、本開示はこの例に限定されない。
【0042】
ニューラル装置は、(動作301で)復号期間pの間に、入力信号
【数54】

を受信し得る。入力信号
【数55】

は、時間的符号化値とすることができる。受信された入力信号
【数56】

は、スパイクのセット
【数57】

によって表され得る。図4の例に従って、受信された入力信号
【数58】

は、スパイク401および402によって表され得る。図4は、復号期間pk+1の間の、別の受信された入力信号
【数59】

を示す。入力信号
【数60】

は、スパイク403および404によって表され得る。
【0043】
ニューラル装置は、(動作303で)復号期間pの間に、入力信号
【数61】

を復号することができ、結果として復号された信号
【数62】

を生じる。入力信号
【数63】

の復号は、次のように行われ得る。スパイクのセット
【数64】

がニューラル装置のシナプスに到着したとき、スパイクは、それぞれのシナプス重みによって重み付けされることができ、結果としての値は、それぞれのカーネル値によってコンボリューションされることができ、それによって、復号された信号
【数65】

は、特定の期間pにおける特定のニューロンに対して取得され得る。図4の例に従って、スパイク401および402は、それぞれシナプス重みW1およびW2によって重み付けされ得る。重み付けされた値は、次いでカーネル関数406のそれぞれのカーネル値によってコンボリューションされ得る。カーネル値は、復号期間p内の2つのスパイクの時間位置での、カーネル関数406の値とすることができる。カーネル関数406は、線形カーネルとすることができる。結果としての値は、復号された信号
【数66】

の値を取得するために合計されることができ、これはこの例では4である。同様に、スパイク403および404は、それぞれシナプス重みW1およびW2によって重み付けされ得る。重み付けされた値は、次いで、カーネル関数406のそれぞれのカーネル値によってコンボリューションされ得る。カーネル値は、復号期間pk+1内の、2つのスパイク403および404の時間位置におけるカーネル関数406の値とすることができる。結果としての値は、復号された信号
【数67】

の値を取得するために合計されることができ、これはこの例では、1.8である。
【0044】
復号期間pが終了すると、(動作305で)ニューラル装置は、復号された信号
【数68】

を内部ニューラル・ダイナミクスのモデルfを用いて処理して、処理された信号
【数69】

を、
【数70】

として取得し得る。図4の例に従って、受信された信号
【数71】

の処理された信号
【数72】

は0.5であり、受信された信号
【数73】

の処理された信号
【数74】

は0.2である。
【0045】
処理された信号
【数75】

は、(動作307で)後続の復号期間pk+1内で、1つまたは複数の出力信号を、ニューラル・ネットワーク・システムの別のニューラル装置に、エンコードおよび放出するために用いられ得る。これは、例えば、別のカーネル関数408を用いることによって行われ得る。処理された信号
【数76】

に等しいカーネル関数408の値に関連付けられた時点は、スパイクが放出され得る時間となり得る。図4の例に従って、処理された信号
【数77】

は、カーネル関数408における値0.5に対応する、時点410を識別するために用いられ得る。スパイク411は、このようにして時点410で放出され得る。同様に、処理された信号
【数78】

は、カーネル関数408における値0.2に対応する、時点412を識別するために用いられ得る。スパイク413は、このようにして時点412で放出され得る。
【0046】
図5Aは、本開示のいくつかの実施形態と一致する、変調値を決定するための例示の時間依存関数(カーネル関数とも名付けられる)を示す。
【0047】
時間依存関数501は、復号期間p内で、1000の最大値、および100の最小値を有する線形関数とすることができる。線形関数は、簡略化された実装形態および信頼性のある結果をもたらし得る。図5Aに示されるように、関数501の10個の値がもたらされ得る。10個の値は、それぞれの10個の時間スロットに関連付けられ得る。例えば、受信された値545に対して、時間スロット番号6は、値545に対応する(最も近いもの)時間として識別され得る。従って、その時間スロット番号6内で、1つのスパイクが放出され得る。しかし、その時間スロットは、値500に関連付けられることができ、これは入力信号の実際の値に対して、45の誤差を生じ得る。これを改善するために、図5Bの時間依存関数510が用いられ得る。時間依存関数510は、復号期間p内で、512の最大値と1の最小値とを有する指数関数的カーネルとすることができる。指数関数的カーネルは、
【数79】

の形とすることができ、Rは1024の範囲である。図5Bに示されるように、関数510の10個の値がもたらされ得る。10個の値は、それぞれの10個の時間スロットに関連付けられ得る。同じ受信された値545に対して、時間スロット番号1、5、および10が、値545に対応する時点として識別されることができ、なぜなら時間スロット1、5、および10内のカーネル関数510の値の合計(512+32+1)は、受信された値545に等しいからである。従ってこの場合、3つのスパイクが、時間スロット番号1、5、および10において放出され得る。
【0048】
図6は、本開示のいくつかの実施形態と一致する、蓄積ブロック201と、出力生成ブロック203とを備えた、内部ニューロン・ダイナミクス・ユニット103によって、出力値
【数80】

を生成する方法のフローチャートである。内部ニューロン・ダイナミクス・ユニット103は、状態変数
【数81】

と、出力値
【数82】

とを有することができ、これらはそれぞれの予め規定された値(例えば、
【数83】

および
【数84】

)に初期化され得る。例えば、何らかの信号を受信および処理する前に、内部ニューロン・ダイナミクス・ユニット103は、初期値
【数85】

と、出力値
【数86】

とを有する、初期構成を有し得る。
【0049】
動作601で、蓄積ブロック201は、現在の状態変数
【数87】

の調整を、現在の出力値
【数88】

と、内部ニューロン・ダイナミクス・ユニット103の時定数の減衰挙動を示す補正関数とを用いて、計算し得る。例えば、調整は、
【数89】

として計算され得る。
【0050】
調整を計算した後、蓄積ブロック201は、動作603で、現在の信号
【数90】

を受信し得る。他の例では、信号
【数91】

は、計算動作601の前に、またはそれと並行して受信され得る。
【0051】
動作605で、現在の状態変数
【数92】

は、蓄積ブロック201によって、計算された調整と受信された信号
【数93】

とを用いて更新され得る。例えば、更新された値
【数94】

は、
【数95】

として取得され得る。従って、
【数96】

が現在の状態変数となる。
【0052】
動作607で、蓄積ブロック201は、出力生成ブロック203に、現在の出力値
【数97】

を、現在の状態変数
【数98】

に基づいて生成させ得る。
【0053】
動作601~607は、各受信された後続の信号
【数99】

に対して繰り返され得る。例えば、後続の信号
【数100】

の処理のために用いられる第1の反復において、値
【数101】

および
【数102】

が、状態変数および出力の現在値となることができる。後続の信号
【数103】

を処理するために用いられる第2の反復において、値
【数104】

および
【数105】

が、状態変数および出力の現在値となることができ、以下同様である。
【0054】
図7は、本開示のいくつかの実施形態と一致する、2つのニューラル装置701および702を用いて、信号を復号およびエンコードする方法を示す図である。ニューラル装置701は送出装置と名付けられることができ、ニューラル装置702は受信装置と名付けられ得る。ニューラル装置701は、時間的符号化値
【数106】

を受信し得る。値
【数107】

は、復号期間p内の入力スパイクXL1,1(t)およびXL1,2(t)によって表され得る。ニューラル装置701の入力ユニット703は、入力スパイクを、
【数108】

として復号し得る。WL1,kは、シナプス重みとすることができる。kernelinは、入力カーネル、入力ユニット703の樹状カーネルとすることができる。復号された信号(またはソマティック入力)
【数109】

は、ソマティック出力
【数110】

を取得するために、ニューラル・ダイナミクス・モデルfを用いて、ニューラル装置701の内部ニューロン・ダイナミクス・ユニット704によって処理され得る。例えば、ニューラル・ダイナミクス・モデルfは、ソマティック入力
【数111】

を用いて、ソマティック出力
【数112】

を、
【数113】

として計算し得る。ソマティック出力
【数114】

は、出力スパイクXL2(t)を生成するために、ニューラル装置701の出力ユニット705によって用いられ得る。そのために、出力ユニット705は、軸索カーネルkerneloutを適用して、各連続したタイムスタンプtに対して
【数115】

を評価し、ソマティック出力
【数116】

を更新することによって、出力信号を決定し得る。
【0055】
復号期間p2内にある出力スパイクXL2(t)は、別のニューラル装置702において受信され得る。ニューラル装置701の場合のように、例えば、フィードフォワードのやり方で接続された任意のニューラル装置からの入力スパイクXL2,k(t)と共に、ニューラル装置701から受信された入力スパイクXL2(t)と、リカレントのやり方で接続された任意のニューラル装置からの入力スパイクXL3,l(t)とは、ニューラル装置702の入力ユニット706によって次のように復号され得る。
【数117】

いくつかの実施形態でのニューラル装置701の復号された信号との違いは、ニューラル装置702においてリカレント接続が用いられ得ることである。HL2,lは、リカレント重みとすることができる。ソマティック入力
【数118】

は、ソマティック出力
【数119】

を取得するために、ニューラル・ダイナミクスfを用いて、ニューラル装置702の内部ニューロン・ダイナミクス・ユニット707によって処理され得る。例えば、ニューラル・ダイナミクスfは、ソマティック入力
【数120】

を用いてソマティック出力
【数121】

を、
【数122】

として計算し得る。ソマティック出力
【数123】

は、出力スパイクXL3(t)を生成するために、ニューラル装置702の出力ユニット708によって用いられ得る。そのために、出力ユニット708は、軸索カーネルkerneloutを適用して、各連続したタイムスタンプtに対して
【数124】

を評価し、ソマティック出力
【数125】

を更新することによって、出力信号を決定し得る。
【0056】
図8Aおよび8Bは、本開示のいくつかの実施形態と一致する、例示のSNNの試験精度およびスパイクの数を示すグラフである。この実施形態におけるSNNは、ニューロンを備えることができ、各ニューロンは、本開示のいくつかの実施形態によるニューラル装置とすることができる。ニューロンのそれぞれは、入力および出力関数として区分線形カーネルを用い得る。SNNは、3つのレイヤを有することができ、入力レイヤは、784個の入力を有し、2つの連続したレイヤは、それぞれ本開示のいくつかの実施形態と一致する250個および10個のニューラル装置を有する。ベースラインSNNは、比較の目的のために用いられる。ベースラインSNNは、共通レート符号化手法を用いてエンコードされた入力を受信する。試験を行うために、MNIST画像のデータセットが用いられる。図8Aに示されるように、いくつかの実施形態と一致するSNNは、(曲線802によって示されるような)ベースラインSNNの97.68%の精度より高い、(曲線801によって示されるように)97.8%の精度をもたらし得る。また、いくつかの実施形態と一致するSNNのエポック(epoch)当たり、ニューロン当たり、および画像当たりのスパイクの平均数は、ベースラインSNNのその数より著しく小さくなり得る。これはより高いコード効率、およびより少ないスパイクを可能にし得る。
【0057】
本明細書において本開示の態様は、本開示の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の、フローチャート図またはブロック図あるいはその両方を参照して述べられる。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実施され得ることが理解されるであろう。
【0058】
本開示は、システム、方法、またはコンピュータ・プログラム製品あるいはその組み合わせとすることができる。コンピュータ・プログラム製品は、プロセッサに本開示の態様を遂行させるためのコンピュータ可読プログラム命令を有する、コンピュータ可読記憶媒体を含み得る。
【0059】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および記憶することができる、有形のデバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、またはこれらの任意の適切な組み合わせとすることができるが、それらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー・ディスク、パンチカードまたはその上に記録された命令を有する溝状の隆起構造などの機械的エンコード型デバイス、およびこれらの任意の適切な組み合わせを含む。本明細書で用いられるコンピュータ可読記憶媒体とは、電波または他の自由に伝搬する電磁波、導波路または他の伝送媒体を通して伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、または線材を通して伝送される電気信号など、一過性の信号自体を含むものと解釈されるべきではない。
【0060】
本明細書で述べられるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、またはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワークあるいはその組み合わせを通じて外部コンピュータまたは外部記憶デバイスに、ダウンロードされ得る。ネットワークは、銅の伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはその組み合わせを備え得る。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信することができ、コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体における記憶のために転送する。
【0061】
本開示の動作を遂行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存型命令、マイクロコード、ファームウェア命令、状態設定データ、あるいはSmalltalk(R)、C++(R)などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様なプログラミング言語などの従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組み合わせで書かれたソース・コードまたはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、スタンド・アロン・ソフトウェア・パッケージとして、専らユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上および部分的にリモート・コンピュータ上で、あるいは専らリモート・コンピュータまたはサーバ上で、実行することができる。後者のシナリオにおいて、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む、任意のタイプのネットワークを通してユーザのコンピュータに接続されることができ、または外部コンピュータへの接続がなされ得る(例えば、インターネット・サービス・プロバイダを用いてインターネットを通して)。いくつかの実施形態において、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む、電子回路は、本開示の態様を行うために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個人化することによって、コンピュータ可読プログラム命令を実行し得る。
【0062】
本明細書において本開示の態様は、本開示の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の、フローチャート図またはブロック図あるいはその両方を参照して述べられる。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実施され得ることが理解されるであろう。
【0063】
これらのコンピュータ可読プログラム命令は、コンピュータのプロセッサまたは他のプログラム可能なデータ処理装置を通じて実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/作用/動作を実施し得るように、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令はまた、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/作用/動作の態様を実施する命令を含んだ製品を備えるように、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイスあるいはその組み合わせに特定のやり方で機能するように指示することができるものであってもよい。
【0064】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/作用/動作を実施するように、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイス上にロードされて、コンピュータによって実施されるプロセスを作り出すべく、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作を行わせるものであってもよい。
【0065】
図におけるフローチャートおよびブロック図は、本開示の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の、可能な実装形態のアーキテクチャ、機能性、および動作を示す。この関連において、フローチャートまたはブロック図における各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を備えるモジュール、セグメント、または命令の一部分を表し得る。いくつかの代替的実装形態において、ブロック内に記された機能は、図に記されたものとは異なる順序で生じ得る。例えば、連続して示される2つのブロックは、実際は、実質的に同時に実行されることができ、またはブロックは関わる機能性に応じて、時には逆の順序で実行され得る。またブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組み合わせは、指定された機能または作用を行う、または専用ハードウェアおよびコンピュータ命令の組み合わせを遂行する、専用ハードウェア・ベースのシステムによって実施され得ることが留意されるであろう。
図1
図2
図3
図4
図5A
図5B
図6
図7
図8A
図8B