(57)【要約】  因子グラフ上でのランダム変数の確率分布の伝搬を実施するための方法及び装置が提供される。そうした方法は、因子グラフに対応する、変数ノードが因子ノードと相互接続されたスパイキングニューラルネットワークを提供することを含む。ノードの各々は、そのノードの計算機能を実装するように構成されたニューロンのセットを含む。方法は、ランダム変数のセットの各々について、その変数の可能な値の確率がスパイク信号におけるスパイクの発生を介してエンコードされる少なくとも１つのスパイク信号を生成することと、ランダム変数のセットについてのスパイク信号をそれぞれの変数ノードにおけるニューラルネットワークへの入力として供給することとをさらに含む。確率分布は、ニューラルネットワークを通じて伝搬される信号のスパイクの発生を介して伝搬される。
2022502727.tif 000002
【特許請求の範囲】
【請求項１】
因子グラフ上でランダム変数の確率分布の伝搬を実施するための方法であって、
前記因子グラフに対応する、変数ノードが因子ノードと相互接続されたスパイキングニューラルネットワークを提供することであって、前記ノードの各々は、そのノードの計算機能を実装するように構成されたニューロンのセットを含む、提供することと、
前記ランダム変数のセットの各々について、その変数の可能な値の確率が前記スパイク信号におけるスパイクの発生を介してエンコードされる少なくとも１つのスパイク信号を生成することと、
ランダム変数の前記セットについての前記スパイク信号をそれぞれの変数ノードにおける前記ニューラルネットワークへの入力として供給することと
を含み、
それにより、前記確率分布は、前記ニューラルネットワークを通じて伝搬される信号におけるスパイクの前記発生を介して伝搬される、方法。
【請求項２】
前記確率が前記スパイク信号におけるスパイクの発生のレート及び発生の時間の少なくとも１つを介してエンコードされるように、前記スパイク信号の各々を生成することを含む、請求項１に記載の方法。
【請求項３】
前記ノードの前記ニューロンは、前記確率分布が前記ニューラルネットワークを通じて伝搬される信号におけるスパイクの発生の前記レート及び発生の前記時間の少なくとも１つを介して伝搬されるように構成される、請求項２に記載の方法。
【請求項４】
前記確率が前記スパイク信号におけるスパイクの発生の前記レートを介してエンコードされるように、前記スパイク信号の各々を生成することを含み、前記ノードの前記ニューロンは、前記確率分布が、前記ニューラルネットワークを通じて伝搬される信号におけるスパイクの発生の前記レートを介して伝搬されるように構成される、請求項３に記載の方法。
【請求項５】
前記ランダム変数はバイナリ変数であり、前記方法は、前記セットのランダム変数の各々について、前記変数のバイナリ値の所定の１つの値の前記確率をエンコードする単一のスパイク信号を生成することを含む、請求項１に記載の方法。
【請求項６】
前記ランダム変数は多値変数であり、前記方法は、前記セットのランダム変数の各々の可能な値の各々について、前記変数のその値の前記確率をエンコードするスパイク信号を生成することを含む、請求項１に記載の方法。
【請求項７】
因子グラフ上でそれぞれの信号サンプルに対応するコードワードシンボルの確率分布を伝搬することによって、チャネル出力においてサンプリングされた信号における誤り訂正コードワードを検出するための方法であって、
前記誤り訂正コードのデコードアルゴリズムによって定められる２部因子グラフに対応する、変数ノードが因子ノードと相互接続されたスパイキングニューラルネットワークを提供することであって、前記ノードの各々は、そのノードの計算機能を実装するように構成されたニューロンのセットを含む、提供することと、
コードワードのシンボルに対応する信号サンプルの各々について、そのサンプルの可能な値の確率が、前記スパイク信号におけるスパイクの発生を介してエンコードされる少なくとも１つのスパイク信号を生成することと、
コードワードの前記シンボルに対応する前記スパイク信号をそれぞれの変数ノードにおける前記ニューラルネットワークへの入力として供給することと
を含み、
それにより、前記確率分布は、前記ニューラルネットワークを通じて伝搬される信号におけるスパイクの前記発生を介して伝搬され、前記変数ノードは、伝搬後、前記コードワードについての推定シンボル値を出力する、方法。
【請求項８】
前記確率が前記スパイク信号におけるスパイクの発生のレート及び発生の時間の少なくとも１つを介してエンコードされるように、前記スパイク信号の各々を生成することを含む、請求項７に記載の方法。
【請求項９】
前記ノードの前記ニューロンは、前記確率分布が前記ニューラルネットワークを通じて伝搬される信号におけるスパイクの発生の前記レート及び発生の前記時間の少なくとも１つを介して伝搬されるように構成される、請求項８に記載の方法。
【請求項１０】
前記確率が前記スパイク信号におけるスパイクの発生の前記レートを介してエンコードされるように、前記スパイク信号の各々を生成することを含み、前記ノードの前記ニューロンは、前記確率分布が前記ニューラルネットワークを通じて伝搬される信号におけるスパイクの発生の前記レートを介して伝搬されるように構成される、請求項９に記載の方法。
【請求項１１】
前記コードワードシンボルはバイナリシンボルであり、前記方法は、信号サンプルの各々について、バイナリシンボル値の所定の１つの値の前記確率をエンコードする単一のスパイク信号を生成することを含む、請求項７に記載の方法。
【請求項１２】
前記コードワードシンボルは多値シンボルであり、前記方法は、信号サンプルの各々の可能なシンボル値について、前記サンプルについてのそのシンボル値の前記確率をエンコードするスパイク信号を生成することを含む、請求項７に記載の方法。
【請求項１３】
因子グラフ上でランダム変数の確率分布の伝搬を実施するための装置であって、
前記因子グラフに対応する、変数ノードが因子ノードと相互接続されたスパイキングニューラルネットワークであって、前記ノードの各々は、そのノードの計算機能を実装するように構成されたニューロンのセットを含む、スパイキングニューラルネットワークと、
前記ランダム変数のセットの各々について、少なくとも１つのスパイク信号であって、その変数の可能な値の確率は、前記スパイク信号におけるスパイクの発生を介してエンコードされる、スパイク信号を生成するように適合され、かつ、ランダム変数の前記セットについての前記スパイク信号をそれぞれの変数ノードにおける前記ニューラルネットワークへの入力として供給するように適合されたスパイク信号生成器と
を含み、
前記確率分布は、前記ニューラルネットワークを通じて伝搬される信号におけるスパイクの前記発生を介して伝搬される、装置。
【請求項１４】
前記スパイク信号生成器は、前記確率が前記スパイク信号におけるスパイクの発生のレート及び発生の時間の少なくとも１つを介してエンコードされるように、前記スパイク信号の各々を生成するように適合される、請求項１３に記載の装置。
【請求項１５】
前記ノードの前記ニューロンは、前記確率分布が前記ニューラルネットワークを通じて伝搬される信号におけるスパイクの発生の前記レート及び発生の前記時間の少なくとも１つを介して伝搬されるように構成される、請求項１４に記載の装置。
【請求項１６】
前記スパイク信号生成器は、前記確率が前記スパイク信号におけるスパイクの発生の前記レートを介してエンコードされるように、前記スパイク信号の各々を生成するように適合され、前記ノードの前記ニューロンは、前記確率分布が前記ニューラルネットワークを通じて伝搬される信号におけるスパイクの発生の前記レートを介して伝搬されるように構成される、請求項１５に記載の装置。
【請求項１７】
前記ランダム変数はバイナリ変数であり、前記スパイク信号生成器は、前記セットのランダム変数の各々について、前記変数のバイナリ値の所定の１つの値の前記確率をエンコードする単一のスパイク信号を生成するように適合される、請求項１３に記載の装置。
【請求項１８】
前記ランダム変数は多値変数であり、前記スパイク信号生成器は、前記セットのランダム変数の各々の可能な値の各々について、前記変数のその値の前記確率をエンコードするスパイク信号を生成するように適合される、請求項１３に記載の装置。
【請求項１９】
因子グラフ上でそれぞれの信号サンプルに対応するコードワードシンボルの確率分布を伝搬することによって、チャネル出力においてサンプリングされた信号における誤り訂正コードワードを検出するための装置であって、
前記誤り訂正コードのデコードアルゴリズムによって定められる２部因子グラフに対応する、変数ノードが因子ノードと相互接続されたスパイキングニューラルネットワークであって、前記ノードの各々は、そのノードの計算機能を実装するように構成されたニューロンのセットを含む、スパイキングニューラルネットワークと、
コードワードのシンボルに対応する信号サンプルの各々について、そのサンプルの可能な値の確率が前記スパイク信号におけるスパイクの発生を介してエンコードされる少なくとも１つのスパイク信号を生成するように適合されたスパイク信号生成器と
を含み、
前記確率分布は、前記ニューラルネットワークを通じて伝搬される信号におけるスパイクの前記発生を介して伝搬され、前記変数ノードは、伝搬後、前記コードワードについての推定シンボル値を出力するように適合される、装置。
【請求項２０】
変数ノードのニューロンの各々は、多数決関数を実装するように適合される、請求項１９に記載の装置。
【請求項２１】
因子ノードの各々は、ＸＯＲ関数を実装するように構成されたニューロンを含む、請求項１９に記載の装置。
【請求項２２】
前記スパイク信号生成器は、前記確率が前記スパイク信号におけるスパイクの発生のレート及び発生の時間の少なくとも１つを介してエンコードされるように、前記スパイク信号の各々を生成するように適合される、請求項１９に記載の装置。
【請求項２３】
前記ノードの前記ニューロンは、前記確率分布が前記ニューラルネットワークを通じて伝搬される信号におけるスパイクの発生の前記レート及び発生の前記時間の少なくとも１つを介して伝搬されるように構成される、請求項２２に記載の装置。
【請求項２４】
前記スパイク信号生成器は、前記確率が前記スパイク信号におけるスパイクの発生の前記レートを介してエンコードされるように、前記スパイク信号の各々を生成するように適合され、
前記ノードの前記ニューロンは、前記確率分布が前記ニューラルネットワークを通じて伝搬される信号におけるスパイクの発生の前記レートを介して伝搬されるように構成される、請求項２３に記載の装置。
【請求項２５】
プログラム命令がそこに具体化されたコンピュータ可読ストレージ媒体を含むコンピュータプログラム製品であって、前記プログラム命令は、処理装置により実行可能であり、
前記因子グラフに対応する、変数ノードが因子ノードと相互接続されたスパイキングニューラルネットワークを実装することであって、前記ノードの各々は、そのノードの計算機能を実装するように構成されたニューロンのセットを含む、実装することと、
前記ランダム変数のセットの各々について、その変数の可能な値の前記確率が前記スパイク信号におけるスパイクの発生を介してエンコードされる少なくとも１つのスパイク信号を生成することと、
ランダム変数の前記セットについての前記スパイク信号をそれぞれの変数ノードにおける前記ニューラルネットワークへの入力として供給することと
によって、前記処理装置に、因子グラフ上でランダム変数の確率分布の伝搬を実施させ、
それにより、前記確率分布は、前記ニューラルネットワークを通じて伝搬される信号におけるスパイクの前記発生を介して伝搬される、コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、因子グラフ上での確率伝搬に関する。特に、因子グラフ上でランダム変数（random variable）の確率分布の伝搬を実施するための方法が、そうした方法を実施するための装置及びコンピュータプログラム製品と共に提供される。
【背景技術】
【０００２】
因子グラフ上でのランダム変数の確率分布の伝搬は、科学技術における多くの用途で使用される確率計算技術である。例として、この技術は、データ伝送における誤り訂正（error correction）コードのデコード、例えばインターネットからなどの大量のデータから洞察を得るためのデータセット分析、及び患者の遺伝的要因を含む競合する治療の最適な組み合わせのための個別化された健康管理プログラムの開発のような用途において、統計的推論に利用することができる。この技術は、問題になっている特定の用途に従って、その値が物理的プロセス又は他の本質的にランダムな現象の可能な結果を表すランダム変数のグループの確率分布に適用される。これらの確率分布は、エッジを介して複数の変数ノードが複数の因子ノードと相互接続された因子グラフのエッジ上で伝搬される。この因子グラフの構造、及びグラフのノードと関連付けられた特定の計算機能は、基礎となる用途により決定される。確率伝搬プロセスは、添付図面の図１及び図２を参照して以下に簡単に説明される。
【０００３】
図１は、因子グラフの簡単な例を示す。この因子グラフは、変数ｓ、ｕ、ｖ、ｗ、ｘ、ｙ及びｚのグループに対応する変数ノードと、因子分解（factorization）を記述する関数ｆＡ、ｆＢ、ｆＣ、ｆＤ及びｆＥに対応する因子ノードとを有する：
【数１】
2022502727.tif 000003
【０００４】
グラフ内のエッジは、変数が現れる因子に従って、変数ノードを因子ノードに接続する。次式を計算することが望まれると仮定する：
【数２】
2022502727.tif 000004
ここで、
【数３】
2022502727.tif 000005
は、変数ｚについてｚ’の観測値が与えられた場合の変数ｓの確率分布を示す。２つの手法を使用することができる。直接計算は、ｎｕｎｖｎｗｎｘｎｙ項（ここでｎｐは変数ｐの可能な値の数を表す）の総和によって行うことができる。：
【数４】
2022502727.tif 000006
代替的に、個々の総和を因子分解の積に分散させることもできる（ｎｕｎｖ＋ｎｗ＋ｎｘ＋ｎｙ項の総和）：
【数５】
2022502727.tif 000007
【０００５】
確率伝搬プロセスは、因子グラフのエッジをメッセージパッシングチャネル（message passing channel）として扱うことによって、上の第２のタイプの計算を実行する。確率分布を表すメッセージは、ノードにおいて計算され、エッジに沿って接続されたノードにパスされる。一般に、グラフの向き及びメッセージが伝搬される方法は、実行されるべき特定の計算によって決まり、メッセージは、観測に応答して作成される。グラフは、１つ又は複数のノードを根（root）として選択することによって方向付けることができ、１つの他のノードにのみ接続される根でないノードの各々は、葉（leaf）として指定される。メッセージは、第１のステップにおいて葉から根へレベルごとにフォワードパス（forward pass）し、その後、第２のステップにおいて根から葉へレベルごとにバックワードパス（backward pass）することができる。フォワードパス及びバックワードパスのそれぞれの間、２つのタイプのベクトルメッセージ、すなわち局所限界（local marginal）の積からなる変数から関数（variable-to-function）メッセージ、及び近傍の変数の分布の和からなる関数から変数（function-to-variable）メッセージがパスされる。図２に示される因子グラフのセクションにおける変数ノードｘ及び関数ノードｆＡにおけるこれら２つのタイプのメッセージの計算は、以下の通りである。ｘからｆＡへの変数・関数メッセージは：
【数６】
2022502727.tif 000008
によって与えられ、ｆＡからｘへの関数・変数メッセージは：
【数７】
2022502727.tif 000009
によって与えられる。
【０００６】
２つのパスの間、値が既知である観測された変数ｖは、それらの値に一定に保持される。両方のパスが完了すると、各ノードｚｉは、格納されたメッセージを組み合わせてＰ（ｚｉ│ｖ)を得る。従って、図２の変数ノードｘについて：
【数８】
2022502727.tif 000010
となり、ここでβは、
【数９】
2022502727.tif 000011
となるようにするものである。
【０００７】
確率伝搬動作は計算が複雑であり、多数のランダム変数を含む用途において複雑さが著しく増大することが分かる。従来の（フォンノイマン（von-Neumann）型）コンピュータを用いる確率伝搬の実装には、かなりの処理リソースと著しい消費電力が必要であり、変数の数が増大するのに伴って効率が著しく低下する。
【発明の概要】
【０００８】
本発明の少なくとも１つの実施形態によれば、因子グラフ上でランダム変数の確率分布の伝搬を実施するための方法が提供される。この方法は、因子グラフに対応する、因子ノードと相互接続された変数ノードを有するスパイキングニューラルネットワークを提供することを含む。ノードの各々は、そのノードの計算機能を実装するように構成されたニューロンのセットを含む。方法はさらに、ランダム変数のセットの各々について、少なくとも１つのスパイク信号を生成することであって、その変数の可能な値の確率がスパイク信号におけるスパイクの発生を介してエンコードされる、生成することと、ランダム変数のセットについてのスパイク信号をニューラルネットワークへのそれぞれの変数ノードにおける入力として供給することとをさらに含む。確率分布は、ニューラルネットワークを通じて伝搬される信号におけるスパイクの発生を介して伝搬される。
【０００９】
スパイキングニューラルネットワークを用いてこのように確率伝搬を実施すると、従来のフォンノイマンコンピューティングアーキテクチャよりもエネルギー効率が著しく高く、実装の複雑さが低くなり、多数のランダム変数へのスケーラビリティが可能になる。
【００１０】
確率は、スパイク信号におけるスパイクの発生レート及びスパイクの発生時間の少なくとも１つを介してスパイク信号においてエンコードすることができる。ネットワークノードによってニューラルネットワークを介して伝搬される結果として得られる信号において、確率分布は、同様にスパイクレートもしくはタイミング又はその両方によって表現することもでき、伝搬の異なる段階において異なる表現を使用することができる。特に、単純で効率的な実施形態において、各スパイク信号は、確率がスパイク信号におけるスパイクの発生レートを介してエンコードされるように生成され、ノードのニューロンは、確率分布がニューラルネットワークを通じて伝搬される信号におけるスパイクの発生レートを介して伝搬されるように構成される。
【００１１】
バイナリランダム変数（２つの可能な値のみを有する）については、前述のセットの各変数について単一のスパイク信号を生成することができる。この信号は、その変数のバイナリ値のうちの所定の１つの値の確率をエンコードする。しかしながら、多値ランダム変数（３つ又はそれより多い可能な値を有する）は、スパイキングニューラルネットワークアーキテクチャにおいて容易に適合することができる。この場合、前述のセットの各ランダム変数の各々の可能な値について、変数のその値の確率をエンコードするスパイク信号を生成することができる。
【００１２】
本発明の少なくとも１つのさらなる実施形態において、チャネル出力でサンプリングされた信号において、因子グラフ上でそれぞれの信号サンプルに対応するコードワードシンボルの確率分布を伝搬させることによって、誤り訂正コードワードを検出する方法が提供される。この方法は、誤り訂正コードのデコードアルゴリズムによって定義された２部（bipartite）因子グラフに対応する、因子ノードと相互接続された変数ノードを有するスパイキングニューラルネットワークを提供することを含む。ノードの各々は、そのノードの計算機能を実装するように構成されたニューロンのセットを含む。方法はさらに、コードワードのシンボルに対応する信号サンプルについて、少なくとも１つのスパイク信号を生成することであって、そのサンプルについての可能なシンボル値の確率がスパイク信号におけるスパイクの発生を介してエンコードされる、生成することと、コードワードのシンボルに対応するスパイク信号をそれぞれの変数ノードにおけるニューラルネットワークへの入力として供給することとを含む。確率分布は、ニューラルネットワークを通じて伝搬された信号におけるスパイクの発生を介して伝搬され、変数ノードは、伝搬後のコードワードについての推定シンボル値を出力する。
【００１３】
本発明のさらなる実施形態は、上述の方法を実施するための装置、及び処理装置に上述の方法による確率分布の伝搬を実行させるためのコンピュータプログラム製品を提供する。
【００１４】
一般に、本発明を具体化する方法を参照して本明細書において特徴が説明される場合、対応する特徴は、本発明を具体化する装置／コンピュータプログラム製品において提供することができ、その逆も同様である。
【００１５】
本発明の実施形態が、添付図面を参照して、例示及び非限定的な例として以下にさらに詳細に説明される。
【図面の簡単な説明】
【００１６】
【図１】因子グラフの一例を示す。
【図２】因子グラフのセクションにおけるメッセージパッシングを示す。
【図３】因子グラフ上で確率分布の伝搬を実施する本発明を具体化する方法のステップを示す。
【図４】誤り訂正コードデコードアプリケーションのための因子グラフを示す。
【図５】デコードアプリケーションにおける確率伝搬を実施するための装置の概略的表現である。
【図６】図５の装置におけるスパイキングニューラルネットワークの構造を示す。
【図７】図６のネットワークの１つの実施形態における因子ノードにおけるニューロンの構成を示す。
【図８】図７のニューロン構成の動作を示す。
【図９】図６のネットワークの変数ノードにおけるニューロン構成を示す。
【図１０】図９のニューロン構成の動作を示す。
【図１１】図５の装置の第２の実施形態における入力スパイク信号における確率エンコードを示す。
【図１２】第２の実施形態における因子ノードに入力されるスパイク信号における確率エンコードを示す。
【図１３】第２の実施形態における確率伝搬の第１のパス後の変数ノードにおけるスパイク信号の確率エンコードを示す。
【図１４】第２の実施形態におけるＳＮＮ構造を示す。
【図１５】第２の実施形態における因子ノードのニューロンの動作を示す。
【発明を実施するための形態】
【００１７】
本発明は、システム、方法もしくはコンピュータプログラム製品又はその組み合わせとすることができる。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読ストレージ媒体（単数又は複数）を含むことができる。
【００１８】
コンピュータ可読ストレージ媒体は、命令実行デバイスにより使用される命令を保持及び格納できる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子ストレージデバイス、磁気ストレージデバイス、光学ストレージデバイス、電磁気ストレージデバイス、半導体ストレージデバイス、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストとして、以下のもの、すなわち、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能プログラム可能読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュメモリ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ポータブルコンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリスティック、フロッピーディスク、パンチカードもしくは命令がそこに記録された溝内の隆起構造のような機械的にエンコードされたデバイス、及び上記のいずれかの適切な組み合わせが挙げられる。本明細書で使用される場合、コンピュータ可読ストレージ媒体は、電波、又は他の自由に伝搬する電磁波、導波管もしくは他の伝送媒体を通じて伝搬する電磁波（例えば、光ファイバケーブルを通る光パルス）、又はワイヤを通って送られる電気信号などの、一時的信号自体として解釈されない。
【００１９】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング／処理デバイスに、又は、例えばインターネット、ローカルエリアネットワーク、広域ネットワークもしくは無線ネットワーク又はその組み合わせのネットワークを介して外部コンピュータ又は外部ストレージデバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータもしくはエッジサーバ又はその組み合わせを含むことができる。各コンピューティング／処理デバイスにおけるネットワークアダプタカード又はネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、コンピュータ可読プログラム命令を転送して、それぞれのコンピューティング／処理デバイス内のコンピュータ可読ストレージ媒体に格納する。
【００２０】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ（ＩＳＡ）命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのオブジェクト指向プログラミング言語、及び、「Ｃ」プログラミング言語もしくは類似のプログラミング言語などの従来の手続き型プログラミング言語を含む１つ又は複数のプログラミング言語の任意の組み合わせで記述されるソース・コードもしくはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータもしくはサーバ上で実行される場合もある。最後のシナリオにおいて、遠隔コンピュータは、ローカルエリアネットワーク（ＬＡＮ）もしくは広域ネットワーク（ＷＡＮ）を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続がなされる場合もある（例えば、インターネットサービスプロバイダを用いたインターネットを通じて）。幾つかの実施形態において、例えば、プログラマブル論理回路、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、又はプログラマブル論理アレイ（ＰＬＡ）を含む電子回路は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行して、電子回路を個別化することができる。
【００２１】
本発明の態様は、本発明の実施形態による方法、装置（システム）及びコンピュータプログラム製品のフローチャート図もしくはブロック図又はその両方を参照して説明される。フローチャート図もしくはブロック図又はその両方の各ブロック、並びにフローチャート図もしくはブロック図又はその両方におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
【００２２】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えて機械を製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャートもしくはブロック図又はその両方の１つ又は複数のブロック内で指定された機能／動作を実施するための手段を作り出すようにすることができる。これらのコンピュータプログラム命令を、コンピュータ、他のプログラマブルデータ処理装置もしくは他のデバイス又はその組み合わせを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、そのコンピュータ可読媒体内に格納された命令が、フローチャートもしくはブロック図又はその両方の１つ又は複数のブロックにおいて指定された機能／動作の態様を実施する命令を含む製品を含むようにすることもできる。
【００２３】
コンピュータプログラム命令を、コンピュータ、他のプログラマブルデータ処理装置、又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラマブルデータ処理装置、又は他のデバイス上で行わせてコンピュータ実施のプロセスを生成し、それにより、コンピュータ又は他のプログラマブル装置上で実行される命令が、フローチャートもしくはブロック図又はその両方の１つ又は複数のブロックにおいて指定された機能／動作を実施するようにすることもできる。
【００２４】
図面内のフローチャート及びブロック図は、本発明の種々の実施形態による、システム、方法及びコンピュータプログラム製品の可能な実装のアーキテクチャ、機能及び動作を示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実装するための１つ又は複数の実行可能命令を含むモジュール、セグメント、又は命令の一部を表すことができる。幾つかの代替的な実装において、ブロック内に示される機能は、図に示される順序とは異なる順序で行われることがある。例えば、連続して示される２つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。ブロック図もしくはフローチャート図又はその両方の各ブロック、並びにブロック図もしくはフローチャート図又はその両方におけるブロックの組み合わせは、指定された機能又は動作を実行する、又は専用のハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェアベースのシステムによって実装できることにも留意されたい。
【００２５】
本発明の実施形態は、スパイキングニューラルネットワーク（ＳＮＮ）を用いて確率計算（probabilistic computing）を実施する。ＳＮＮは、情報がシナプスを介して相互接続されたニューロンの複雑なネットワークによって処理される神経系の生体アーキテクチャから発想を得た神経形態学処理アーキテクチャである。生体ニューロンは、受け取った入力信号を積分することができる。格納されるニューロンの状態を表すニューロンの「膜電位」は、ニューロンの入力信号の到着によって徐々に修正される。膜電位が特定の電圧閾値を超えると、ニューロンは「発火（fire）」し、「活動電位」又は「スパイク」として知られる出力信号を生成し、次に初期状態に戻る。これらのスパイクは、シナプスを介して他のニューロンに伝達され、ニューロンの活動の結果として接続の強さ（「可塑性」又は「シナプス重み」）を変化させる。
【００２６】
ＳＮＮにおける計算は、スパイキングニューロンのネットワーク間の全か無かの（all-or-none）スパイクベースの通信に依存する。ＳＮＮの基本コンポーネントは、ニューロンとシナプスをエミュレートする機能を含み、ニューロンは、シナプスを介して相互接続され、格納されるシナプス重みに依存してニューロン間のスパイクを中継する。ニューロン／シナプスの機能は、ハードウェアもしくはソフトウェア又はその両方で実装することができ、ニューロンは、生体ニューロンの「積分及び発火（integrate-and-fire）」機能をエミュレートし、シナプスは、生体シナプスの可塑性をエミュレートする。ニューロン膜電位又はシナプス重みを格納するために、例えば位相変化メモリ（ＰＣＭ）セルのような抵抗性メモリセルなどのナノデバイスのメムリスティブ（memristive）特性を利用する回路を含む、ニューロン及びシナプスのための種々の回路実装が、当技術分野において周知である。そうしたメムリスティブデバイスの密なクロスバーアレイは、超並列で非常に面積及びエネルギー効率の良いＳＮＮ実装を提供する。
【００２７】
単純なニューロンモデルは一次微分方程式：
【数１０】
2022502727.tif 000012
によって定められ、ここで、ｖは膜電位を示し、ｖ∞は静止電位を、τは時定数を示す。ニューロンは、膜電位が閾値ｖｔｈに達した場合にスパイクを発火し、膜電位をｖｒｅｓｅｔにリセットする。スパイクを発火した後、ニューロンはＴｒｅｆｒａｃｔに等しい不応期の間、入力に反応しない。上述のように、ニューロンは、シナプスを介して接続される。２つのニューロン間のシナプス接続は、シナプス前（pre-synaptic）ニューロンによってスパイクが発火された後、シナプス後（post-synaptic）ニューロンの膜電位においてｗに等しい瞬間的な変化を生じさせる。このように、変化の大きさｗは、シナプス重みを反映する。
【００２８】
本発明を具体化する方法は、ＳＮＮアーキテクチャを用いて、因子グラフ上でランダム変数の確率分布の伝搬を実施する。こうした方法の基本的ステップは、図３のフロー図に示される。ステップ１に示されるように、ＳＮＮは、問題になっているアプリケーションによって定められる因子グラフに対応する因子ノード（関数ノードとも呼ばれる）と相互接続された変数ノードを備える。ＳＮＮは、計算が実行されるべき複数の変数のそれぞれのランダム変数に対応する複数の変数ノードを含む。これらの変数の可能な値は、物理的プロセスの可能な結果、例えば、エンコードされたデータ伝送のサンプルに対応する可能なシンボル値、又は遺伝病の治療処置の結果として得られる可能な遺伝子発現データを表すことができる。別の例として、変数の値は、大規模データストレージシステムにおけるデータセットの関連性を表し得る。（ここで多数の他のアプリケーションを想定することができ、ランダム変数の特定の性質は、本明細書に記載される動作原理に直交する）。変数ノードは、因子グラフのエッジに従って因子ノードと相互接続される。ＳＮＮ内の変数ノード及び因子ノードの各々は、確率伝搬動作においてそのノードの計算機能を実装するように構成された（１又は複数の）ニューロンのセットを含む。変数ノードを実装するニューロンの構成は、例えば、そのノードをグラフ内の隣接する因子ノードに接続するエッジの数に依存する。因子ノードを実装するニューロンの構成は、例えば、隣接する変数ノードへのエッジの数、及び基礎となるアプリケーションによって決定されるような因子ノードと関連付けられた計算機能に依存する。
【００２９】
伝搬動作を開始するために、グラフの変数ノードに対応するランダム変数の（１つ又は複数の）セットの各ランダム変数について、少なくとも１つのスパイク信号が生成される。スパイク信号が生成される変数のこのセットは、例えば、観測される変数（すなわち、値が観測される変数）もしくは「先験的」確率分布が利用可能な観測されていない変数又はその両方を含むことができる。図３のステップ２において、ランダム変数のためのスパイク信号の生成が示される。各スパイク信号において、対応する変数の可能な値の確率は、スパイク信号におけるスパイクの発生を介してエンコードされる。従って、ある変数について生成されるスパイク信号の数は、その変数の可能な値の数によって決まる。（一般に、ここでの各々の可能な値は、有限のアルファベットから取られた離散ランダム変数の値（離散ランダム変数の場合）、又は値の範囲、すなわち定義された範囲内の任意の値（連続ランダム変数の場合）を表すことができる）。ステップ３において、ランダム変数についてのスパイク信号は、それらのランダム変数に対応するそれぞれの変数ノードにおいて、ＳＮＮへの入力として供給される。ステップ４において、次に、ランダム変数の確率分布が、ＳＮＮを通じて伝搬される信号におけるスパイクの発生を介して伝搬される。伝搬プロセスは、１つより多い伝搬ステップを含むことができ、かつ、反復することができ、各々が複数の伝搬ステップ、例えば前述のようなフォワード（葉から根への）伝搬ステップ及びバックワード（根から葉への）伝搬ステップを含むことができる複数の伝搬動作を含む。伝搬動作の際、変数ノードは、メッセージパッシング演算の変数・関数（variable-to-function）メッセージ（積項）を計算し、因子ノードは、関数・変数（function-to-variable）メッセージ（積和）を計算し、それぞれの場合における計算結果は、各ノードを実装するニューロンによって出力される信号におけるスパイクの発生においてエンコードされる。伝搬の結果は、ＳＮＮノードにおいて実行される計算によって提供され、ステップ５において示されるように、伝搬後、１つ又は複数のノードにおける所望の計算結果を得ることができる。特に、伝搬演算の所望の結果は、演算から推論されるべき特定の計算結果に従って、例えばノード出力を介して、１つ又は複数のノードにおいて信号から得ることができる。例えば、１つ又は複数の変数ノードは、それらのノードにおける伝搬結果をエンコードするスパイク信号を出力するように適合することができる。結果は、計算結果が伝搬演算の連続パスによって徐々に改良される反復プロセスの１つ又は複数の段階において得ることができる。
【００３０】
このように、ランダム変数の確率分布は、ＳＮＮを通じて伝搬された信号におけるスパイクの発生を介して伝搬され、伝搬後、１つ又は複数のノードにおいて計算結果を取得する。因子グラフ上での確率伝搬の評価にＳＮＮを使用することによって、本来複雑な演算を高効率に実行することが可能になり、フォンノイマン型コンピューティングアーキテクチャに基づいた従来の実装と比較して、エネルギー効率が著しく高く、実装の複雑さが低下する。このように、確率伝搬のためのＳＮＮアーキテクチャは、多数のランダム変数に対するスケーラビリティを提供する。
【００３１】
ここで、誤り訂正符号のデコードにおいて確率伝搬のためにＳＮＮアーキテクチャが用いられる例示的な実施形態をより詳細に説明する。このアプリケーションにおいて、上記の方法は、チャネル出力においてサンプリングされた信号における誤り訂正コードワード（codeword）を検出するために使用される。チャネル上で伝送される信号は、誤り訂正コード（ＥＣＣ）を用いてデータをエンコードすることによって生成されるコードワードのシンボルで変調される。信号は、チャネル出力においてサンプリングされ、各ＥＣＣコードワードのそれぞれのシンボルに対応する信号サンプルを取得する。ＳＮＮアーキテクチャを用いて、誤り訂正符号のデコードアルゴリズムによって定められる２部因子グラフ上で、それぞれの信号サンプルに対応するコードワードシンボルの確率分布を伝搬させる。この例では、ＥＣＣコードは（７，４）ハミングコード（Hamming code）であり、デコードアルゴリズムは、以下のパリティ検査行列Ｈにより定められる。：
【数１１】
2022502727.tif 000013
【００３２】
シンボルｂ１、ｂ２，．．．，ｂ７を有するコードワードｂのパリティ検査（parity check）方程式は、Ｈｂ＝０である。ＡＷＧＮ（Additive white Gaussian noise、加法性白色ガウス雑音）チャネル上でのバイナリアンチポーダルシグナリング（binary antipodal signaling）の場合、チャネル出力におけるシンボル確率は：
【数１２】
2022502727.tif 000014
となり、
ここで、ｘｎは、コードワードシンボルｂｎ（ｎ＝１〜７）に対応する信号サンプルであり、
【数１３】
2022502727.tif 000015
は、サンプルｘｎがｂｎ＝０に対応する確率であり、
【数１４】
2022502727.tif 000016
は、サンプルｘｎがｂｎ＝１に対応する確率であり、σは、加法性雑音の標準偏差である。
【００３３】
パリティ検査行列Ｈに対応する２部因子グラフが、図４に示される。このアプリケーションにおいて、ランダム変数は、コードワードシンボルに対応する。従って、グラフは、シンボルｂ１〜ｂ７に対応する７つの変数ノードＶ１〜Ｖ７を有する。これらの変数はバイナリであるので、各変数の確率分布は、確率
【数１５】
2022502727.tif 000017
のいずれかによって完全に定義される。この例において、
【数１６】
2022502727.tif 000018
が使用され、それによって、変数ノードＶ１〜Ｖ７における初期シンボル確率が、それぞれサンプルｘ１〜ｘ７に対応するシンボルｂ１〜ｂ７が値１のビットである確率
【数１７】
2022502727.tif 000019
を表す。因子グラフは、デコードアルゴリズムのパリティ検査演算を実施する３つの因子ノード、ここでは検査ノードＣ１、Ｃ２及びＣ３を有する。パリティ検査行列Ｈによって定義されるように、グラフ内のエッジは、変数ノードと検査ノードとを相互接続する。
【００３４】
確率分布の伝搬、ここでは
【数１８】
2022502727.tif 000020
を実施するための装置の高レベル構造が、図５に示される。この装置は、ＳＮＮ１０と、スパイク信号生成器１１とを含む。このアプリケーションにおいて、ＳＮＮ１０は、図４の因子グラフに従って検査ノードＣ１〜Ｃ３と相互接続された変数ノードＶ１〜Ｖ７を有する。各ノードは、ノードの計算機能を実装するように構成された、以下にさらに説明されるニューロンのセットを含む。スパイク信号生成器１１は、伝送されたコードワードに対応する信号サンプルｘ１〜ｘ７を受信し、上で与えられる式を介して、これらのサンプルについての確率
【数１９】
2022502727.tif 000021
を計算する。次に、スパイク信号生成器は、この場合は各シンボルｂ１〜ｂ７について１つのスパイク信号を生成し、それぞれ確率
【数２０】
2022502727.tif 000022
をエンコードする。以下にさらに説明されるように、これらの確率は、スパイク信号におけるスパイクの率もしくはタイミング又はその両方でエンコードされる。
【数２１】
2022502727.tif 000023
をエンコードするスパイク信号はそれぞれ、信号生成器１１により、変数ノードＶ１〜Ｖ７においてＳＮＮ１０への入力として供給される。次いで、確率分布は、ＳＮＮを通じて伝搬される信号におけるスパイクのレートもしくはタイミング又はその両方を介して伝搬される。伝搬動作は、ここで反復実行され、変数ノードは、反復動作の各パス上での伝搬後、コードワードについての、
【数２２】
2022502727.tif 000024
で示される推定シンボル値を出力するように適合される。
【００３５】
一般に、伝搬装置の種々のコンポーネントの機能は、ハードウェア又はソフトウェア、又はその組み合わせで実装される論理によって提供され得る。そうした論理は、（汎用又は専用）プログラミング装置によって実行される、プログラムモジュールなどのコンピュータシステム実行可能命令の一般的な文脈で記述することができる。一般に、プログラムモジュールは、特定のタスクを実行する又は特定の抽象的なデータ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含むことができる。例えば、幾つかの実施形態において、ＳＮＮ１０におけるニューロン機能は、ソフトウェアで実装することができる。しかしながら、ハードウェア実装が好ましく、ＳＮＮ１０は、説明される機能を実装するために、一般的に知られている回路技術を用いて構築することができる。
【００３６】
図６は、ＳＮＮ１０のより詳細な構造を示す。示されるように、各変数ノードＶ１〜Ｖ７は、Πで示される１つ又は複数のニューロンを含む。各変数ノードを実装するΠニューロンの数は、そのノードと検査ノードとの間のエッジの数によって決まる。以下に説明されるように、各Πニューロンは、多数決関数を実装するように適合される。各検査ノードＣ１〜Ｃ３は、図中に
【数２３】
2022502727.tif 000025
で示されるＸＯＲ関数を実装するように構成されたニューロンを含む。具体的には、各検査ノードは、その検査ノードと変数ノードとの間の４つのエッジの各々について１つ、各々がＸＯＲ演算を実施する４つのニューラルネットワークを含む。検査ノードＣ１とその隣接する変数ノードＶ１、Ｖ２、Ｖ３及びＶ５の間の接続は、図中に実線で示される。検査ノードＣ２とその隣接する変数ノードＶ１、Ｖ２、Ｖ４及びＶ６との間の接続は、図中に点線で示される。検査ノードＣ３とその隣接する変数ノードＶ１、Ｖ３、Ｖ４及びＶ７との間の接続は、破線で示される。
【００３７】
動作において、確率
【数２４】
2022502727.tif 000026
をエンコードするスパイク信号は、それぞれ、図中に太線で示される入力を介して、Πニューロンに与えられる。この最初のパスにおいて、検査ノードから変数ノードへの出力はまだ存在しない。従って、
【数２５】
2022502727.tif 000027
をエンコードするスパイク信号は、Πニューロンによって伝送され、変数ノードにおいて入力をＳＮＮに提供し、入力は、検査ノードに送信される。スパイク信号は、図に示される接続を介して、検査ノードのＸＯＲネットワークに与えられる。各ＸＯＲネットワークは、ＸＯＲ関数をその入力スパイク信号に適用し、結果として得られたスパイク信号を変数ノードに出力する。このようにして、検査ノードの各ＸＯＲネットワークは、検査ノードによってその隣接する変数ノードの１つに伝送されるべき、前述の関数から変数メッセージμＣ→Ｖ（Ｖ）の１つを計算する。図中の接続により示されるように、ＸＯＲ出力信号は、変数ノードにおいてΠニューロンにより受信される。各Πニューロンはまた、確率
【数２６】
2022502727.tif 000028
をエンコードする入力スパイク信号も受信する。（これらのスパイク信号は、ネットワークを通じた初期信号のΠニューロンへの伝搬時間に対応する遅延δｔの後、スパイク生成器１１によって発火される）。各変数ノードにおいて、１つのΠニューロンは、その変数ノードによってその接続された検査ノードの１つに伝送されるべき変数・関数メッセージμＶ→Ｃ（Ｖ）の１つを計算する。これらのΠニューロン出力信号は、伝搬演算の第２のパスを開始する。各変数ノードにおける１つのΠニューロンも、初期入力スパイク信号と共に接続された検査ノードから全ての信号を受信する。（１つの検査ノードにだけ接続される変数ノードＶ５〜Ｖ７については、単一のΠニューロンで十分である。他の変数ノードについては、付加的なΠニューロンが、初期入力信号と共に全ての検査ノード出力信号を受信する）。各変数ノードにおけるこのΠニューロンの出力信号は、その変数ノードに対応するコードワードシンボルに対するシンボル推定値、すなわち
【数２７】
2022502727.tif 000029
を提供する。
【００３８】
伝搬演算の第２のパスは、第１のパスの後のΠニューロン出力信号に基づいて上記のように進行する。このようにして、演算は反復的に進み、出力シンボル推定値
【数２８】
2022502727.tif 000030
は、連続的に反復して徐々に改良される。伝搬演算は、所定の反復回数実行することができ、又はシンボル推定値が所望の確度に達するまで、例えば推定値がパリティ検査式を満たすか、又は定められた反復回数にわたり変更されなくなるまで、続行することができる。
【００３９】
図６のＳＮＮの第１の実施形態において、スパイク信号生成器１１は、スパイク信号におけるスパイクレート（スパイク頻度）を介して、確率
【数２９】
2022502727.tif 000031
をエンコードする。また、ノードニューロンは、確率が、伝搬信号におけるスパイクレートを介してＳＮＮ全体にわたって伝搬されるように構成される。図７は、本実施形態における因子ノードＣ１〜Ｃ３のニューロンの構成を示す。左の図は、因子ノードの各ＸＯＲブロックについてのニューラルネットワーク構造を示し、右の表は、前述のニューロンモデルに基づいた個々のニューロンについてのパラメータを示す。（以下のこれらの及び類似のパラメータは、ニューラルネットワークの訓練動作を介して一般的に知られる方法で決定される）。検査ノードの各々の３入力ＸＯＲブロックは、示されるように接続された２つの同一の２入力ＸＯＲネットワーク（その一方が図中に全体的に示される）から構成される。第１の２入力ＸＯＲネットワークは、出力ニューロンＮ３に接続された、ＸＯＲ入力の２つ（ここではｙ１及びｙ２で示される）を受信する２つの入力ニューロンＮ１及びＮ２を含む。ニューロンＮ３の出力ｚ１は、１つの入力を第２のＸＯＲネットワークに提供し、第２のＸＯＲネットワークの第２の入力は、ここではｙ３で示される３入力ＸＯＲ入力信号のうちの第３のものである。出力ｚ２は、３入力ＸＯＲネットワークの出力信号である。
【００４０】
図８から、図７のネットワークの動作を理解することができる。これは、図７に示される２入力ＸＯＲネットワークの２つの入力信号ｙｉ＝１，２及び出力信号ｚ１におけるスパイクレートのエンコードを示す。いずれの場合も、スパイクは縦線で示され、２つの入力ｙｉは、それぞれ実線及び点線で示される。左上の図では、両方の入力は、低い確率
【数３０】
2022502727.tif 000032
に対応する低いスパイクレートを有し、ｙ１＝０及びｙ２＝０を示す。従って、下の図に示されるように、出力信号ｚ１は、低いスパイクレート、すなわちｚ１＝０を有する。右上の図において、一方の入力は低いスパイクレート、他方は高いスパイクレートを有し、例えばｙ１＝０及びｙ２＝１である。従って、下の図に示されるように、出力信号ｚ１は、高いスパイクレート、すなわちｚ１＝１を有する。残りの入力の組み合わせは、左のｙ１＝１、ｙ２＝０、ｚ１＝１及び右のｙ１＝１、ｙ２＝１、ｚ１＝０に対応する左下の図及び右下の図に示される。このようにして、２入力ＸＯＲ演算が必要に応じて実装される。それに応じて、３入力ＸＯＲ演算が続いて行われる。
【００４１】
図９は、本実施形態における、変動ノードＶ１〜Ｖ７における各Πニューロンの構成を示す。図６の各Πニューロンは、２〜４の入力を有する。図９には、３つの入力ｙ１〜ｙ３が示されるが、説明する動作は、任意の数の入力に対して適用される。ΠニューロンＮ１は、その閾値電位ｖｔｈを超えた場合にスパイクを発火する。これが、多数決関数を実装し、それにより、入力の半分より多くが高頻度（すなわち、シンボルが１に等しい確率が高い）入力である場合、高頻度（すなわち、シンボルの高確率が１に等しい）出力が生成される。入力のちょうど半分が高頻度入力である場合、確率０．５で高頻度出力が生成される。図１０は、前述のように入力信号及び出力信号におけるレートエンコードを示し、ここでは３つの入力におけるスパイクが、それぞれ実線、点線及び破線で示される。入力の２つ以上が高いスパイクレートを有する場合、出力ｚ１は、高い確率に対応して高いスパイクレートを有することが分かる。
【００４２】
上記により、単純であるが高効率の実装が提供され、そこで、伝搬演算全体を通して、確率はスパイクレートでエンコードされる。検査ノードからの全ての入力を受信するΠニューロンは、出力ｚ１が高スパイクレートを有する場合、
【数３１】
2022502727.tif 000033
として、かつ、ｚ１が低スパイクレートを有する場合、
【数３２】
2022502727.tif 000034
として、出力シンボル推定値を示す。
【００４３】
図５の装置の第２の実施形態において、スパイク信号生成器１１は、スパイク信号におけるスパイクのレート及びタイミングを介して、確率
【数３３】
2022502727.tif 000035
をエンコードする。特に、チャネル出力シンボルが１に等しい確率
【数３４】
2022502727.tif 000036
は、期間ＴのＮ間隔のシーケンス内のスパイクのランダムシーケンスとして、ベルヌーイシーケンスによってエンコードされ、そこで、スパイクは、確率
【数３５】
2022502727.tif 000037
で、時間ｔ＝ｉＴにおいて、ｉ番目の間隔τｉ，ｉ∈｛０，１，．．．，Ｎ−１｝で発火する。このことは、Ｎ＝８の例における
【数３６】
2022502727.tif 000038
について、図１１に示される。
【００４４】
上の実施形態におけるように、変数ノードニューロンは、Πニューロンによって実装され、各Πニューロンは、その閾値電位を超えた場合にスパイクを発火する。検査ノードニューロンは３入力ＸＯＲネットワークによって実装されるが、これらのノードは、スパイクタイミングを介するエンコードで動作する。特に、ＸＯＲネットワークへの入力信号において、バイナリ情報は、スパイクが発火するタイミングを介して、ｉ番目の間隔でエンコードされる。ビット１は、時間ｔ＝（ｉ＋１）Ｔ−Δにスパイクを発火することによってエンコードされ、ビット０は、時間ｔ＝ｉＴ＋Δにスパイクを発火することによってエンコードされる。これは、入力確率
【数３７】
2022502727.tif 000039
について、図１２に示される。３入力ＸＯＲネットワークの出力ニューロンは、各間隔τで時間間隔ｔｓ（Δ＜ｔｓ＜（Ｔ−Δ））の間抑制され、ＸＯＲ出力信号における０に対応するスパイクを抑止する。この「０スパイク」の抑止は、スパイクが発火される（１をエンコードする）又は発火されない（０をエンコードする）場合、スパイクエンコードを変換して、変数ノードのΠニューロンにおいて使用されるものに戻す。これらの変換された信号は、前述のように変数ノードにおける入力スパイク信号と組み合わされる。図１３は、第１の反復後の、確率
【数３８】
2022502727.tif 000040
をエンコードする変数ノードの出力信号についての結果として得られるスパイク表現を示す。
【００４５】
本実施形態における変数ノード及び検査ノードで使用される異なるスパイクエンコード機構は、図１４に示されるように、ＳＮＮにおける付加的な論理によって適合され得る。ＳＮＮ２０は、全体的に図６のものに対応する。しかしながら、上で詳述されるように、スパイク変換論理２１は、変数・検査ノード信号におけるスパイク表現を、検査ノードによって使用されるものに変換する。論理２１は、ここでは任意の便利な方法で実装することができ、当業者には適切な実装が容易に明らかになるであろう。２２で示されるように、検査ノード出力を変数ノードスパイク表現に戻す変換は、ここではスパイク抑止によって実行することができる。上述のように、この機能は、単に、時間間隔ｔｓの間、各ＸＯＲネットワークの出力ニューロンを抑制し、検査ノード出力信号における０スパイクを抑止することによって、実装することができる。
【００４６】
本実施形態の検査ノードのための３入力ＸＯＲネットワークは、「Ｓｐｉｋｉｎｇ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ」、Ｓ．Ｍ．Ｂｏｈｔｅ，Ｐｈ．Ｄ．の論文、Ｕｎｉｖｅｒｓｉｔｙ  Ｌｅｉｄｅｎ（２００３年）、ＩＳＢＮ９０−６７３４−１６７−３のセクション３．３に詳述されるタイプの２つの２入力ＸＯＲネットワークをカスケードすることによって実装することができ、以下に説明される。２入力ＸＯＲネットワークは、２つのニューロンを接続する１６個の利用可能なシナプス遅延を有する遅延スパイキングニューロンのネットワークで構成される。このネットワークは、３つの入力ニューロン（２つのコード化ニューロン及び１つのタイミング参照ニューロン）、１つの抑制性ニューロンが負符号のシナプス後電位のみを生成する５つの隠れ（すなわち中間層）ニューロンと、１つの出力ニューロンとを含む。シナプス前ニューロンからのスパイクは、１６個の遅延スパイク応答関数を生成する。シナプス前ニューロンからの全てのスパイク応答関数の和が、シナプス後ニューロンにおける膜電位を生成する。これは、上の参考文献の図２．１に示される。正の重みのみが許容されている状態で、１６×３×５＋１６×５×１＝３２０の個々の重みが、誤差逆伝搬（error-backpropagation）アルゴリズムを用いてＸＯＲ関数を学習するために、訓練動作において調整される。このアルゴリズムは、参考文献のセクション３．２に詳述される。結果として得られるネットワークにおいて、入力情報及びＸＯＲ演算の結果は、入力ニューロンパルス及び出力ニューロンパルスのタイミングでエンコードされる。上の実施形態において、「０」は早期発火時間と関連付けられ、「１」は後期発火時間と関連付けられる。図１５の表は、ミリ秒単位での入力／出力スパイク時間に関して、ＸＯＲネットワークによって達成された入出力関係を示す。入力スパイクパターンにおいては、「０」は０ｍｓのスパイク時間、「１」は６ｍｓの時間と関連付けられる。出力スパイクパターンにおいては、「０」は１０ｍｓのスパイク時間、「１」は１６ｍｓの時間と関連付けられる。
【００４７】
上の実施形態において例示されるようなスパイク時間エンコードの使用は、幾つかの付加的な実装の複雑さを犠牲にして、確率伝搬のための強力なエンコード技術を提供する。全体を通して、スパイク発生時間の正確な特徴付けが要求される。例えば、変数ノード及び検査ノードを通る遅延δｔは正確に特徴付けられるので、各々の反復において、シンボル確率
【数３９】
2022502727.tif 000041
を表すスパイクシーケンスの発火は、ＸＯＲ出力ニューロンの発火と同時に行われる。変数ノード及び検査ノードにおけるタイミング参照ニューロンを含ませることによって適切な同期を達成することができ、それにより、ネットワーク動作は、タイミング参照ニューロンによって発火されたスパイクトレインと同期される。
【００４８】
上のバイナリランダム変数に関する動作が説明されるが、ＳＮＮアーキテクチャは、多値のランダム変数に適合するように容易に拡張することができる。次に、各変数の確率分布をエンコードするために、複数のスパイク信号が必要とされる。特に、各ランダム変数の各々の可能な値について、スパイク信号生成器１１によって、変数のその値の確率をエンコードするスパイク信号が生成される。次に、ＳＮＮにおいてこれらの信号を伝搬するために、変数ノードと検査ノードとの間に複数の接続が提供され、複数の確率のための計算を適合するために、ノードにおいて複数のニューラルネットワークが提供される。しかしながら、基本的動作原理は同じであり、上述した機能は、ＳＮＮアーキテクチャにおいて多値変数を適合するために簡単な方法で拡張することができる。
【００４９】
多値ランダム変数についての例示的な実装において、確率的手法を確率エンコードのために適用することができる。２ｎ個の可能な値を有する変数は、ｎ個の要素を有するバイナリベクトルで表すことができる。各ランダム変数は、信号生成器１１をＳＮＮ１０に接続する２ｎ本の平行信号線にマッピングすることができる。これらの２ｎ本の線の各々は、対応する値を仮定するランダム変数の確率をパスし、確率Ｐは、期間Ｌ＊Ｔの間隔にわたって伝送される１の数（すなわち、スパイク）でエンコードされる。１は、次のように間隔にわたって分布される。確率は、２ｎのバイナリランダムシーケンスによってＬタイムスロットでエンコードされ、Ｌビットの合計は１に等しい。各タイムスロットにおいて、１ビットのみが１に等しく、１／Ｌの確率を有する。（代案として、確率Ｐに比例する平均レートＲでポアソンプロセスから生成されるイベントとして、１を伝送することもできる）。検査ノード機能は、ｊ個（ｊ≧２）の２ｎ値の入力ランダム変数及び１つの２ｍ値の出力ランダム変数を有する論理によって実装することができる。変数ノード機能は、均衡を破るためにランダム選択で、ｋ個（ｋ≧２）の２ｍ値の入力変数の各値について受け取った１の数で多数決により実装することができる。こうした実装は、例えば、ｑ＝２ｎ＝２ｍの場合のガロア体ＧＦ（ｑ）から、シンボルを用いる多値のＬＤＰＣ（低密度パリティ検査）コードの確率的デコーディングにおいて用いることができる。
【００５０】
説明される例示的な実施形態に対して他の多くの変更及び修正をなすことができる。例えば、スパイクシーケンスにおける確率をエンコードするための他の技術を考えることができ、他の実施形態において、変数ノード及び検査ノードにおいてスパイクレートもしくは時間ベース又はその両方のエンコードの他の組み合わせを用いることができる。また、デコードアプリケーションが上記に詳述されるが、本発明の実施形態は、統計推論のためにランダム変数の確率伝搬が行われる任意のアプリケーションにおいて用いることができる。例として、一般的に、画像認識、機械学習、データセット分析、遺伝病のための治療分析、音声認識、及び確率伝搬（belief propagation）が挙げられる。
【００５１】
本発明の種々の実施形態の説明は説明を目的として提示されてが、網羅的であること、又は開示された実施形態に限定することを意図したものではない。当業者には、説明される実施形態の範囲及び趣旨から逸脱することなく、多くの修正及び変形が明らかであろう。本明細書で使用される用語は、実施形態の原理、実際の用途、もしくは市場で見出される技術に優る技術的改善を最も良く説明するために、又は当業者が本明細書に開示される実施形態を理解するのを可能にするために、選択された。
【図１】
2022502727.tif 000042
【図２】
2022502727.tif 000043
【図３】
2022502727.tif 000044
【図４】
2022502727.tif 000045
【図５】
2022502727.tif 000046
【図６】
2022502727.tif 000047
【図７】
2022502727.tif 000048
【図８】
2022502727.tif 000049
【図９】
2022502727.tif 000050
【図１０】
2022502727.tif 000051
【図１１】
2022502727.tif 000052
【図１２】
2022502727.tif 000053
【図１３】
2022502727.tif 000054
【図１４】
2022502727.tif 000055
【図１５】
2022502727.tif 000056
【手続補正書】
【提出日】令和3年3月9日(2021.3.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
因子グラフ上でランダム変数の確率分布の伝搬を実施するための方法であって、
前記因子グラフに対応する、変数ノードが因子ノードと相互接続されたスパイキングニューラルネットワークを提供することであって、前記ノードの各々は、そのノードの計算機能を実装するように構成されたニューロンのセットを含む、提供することと、
前記ランダム変数のセットの各々について、その変数の可能な値の確率が前記スパイク信号におけるスパイクの発生を介してエンコードされる少なくとも１つのスパイク信号を生成することと、
ランダム変数の前記セットについての前記スパイク信号をそれぞれの変数ノードにおける前記ニューラルネットワークへの入力として供給することと
を含み、
それにより、前記確率分布は、前記ニューラルネットワークを通じて伝搬される信号におけるスパイクの前記発生を介して伝搬される、方法。
【請求項２】
前記確率が前記スパイク信号におけるスパイクの発生のレート及び発生の時間の少なくとも１つを介してエンコードされるように、前記スパイク信号の各々を生成することを含む、請求項１に記載の方法。
【請求項３】
前記ノードの前記ニューロンは、前記確率分布が前記ニューラルネットワークを通じて伝搬される信号におけるスパイクの発生のレート及び発生の時間の少なくとも１つを介して伝搬されるように構成される、請求項２に記載の方法。
【請求項４】
前記確率が前記スパイク信号におけるスパイクの発生の前記レートを介してエンコードされるように、前記スパイク信号の各々を生成することを含み、前記ノードの前記ニューロンは、前記確率分布が、前記ニューラルネットワークを通じて伝搬される信号におけるスパイクの発生の前記レートを介して伝搬されるように構成される、請求項３に記載の方法。
【請求項５】
前記ランダム変数はバイナリ変数であり、前記方法は、前記セットのランダム変数の各々について、前記変数のバイナリ値の所定の１つの値の前記確率をエンコードする単一のスパイク信号を生成することを含む、請求項１に記載の方法。
【請求項６】
前記ランダム変数は多値変数であり、前記方法は、前記セットのランダム変数の各々の可能な値の各々について、前記変数のその値の前記確率をエンコードするスパイク信号を生成することを含む、請求項１に記載の方法。
【請求項７】
因子グラフ上でそれぞれの信号サンプルに対応するコードワードシンボルの確率分布を伝搬することによって、チャネル出力においてサンプリングされた信号における誤り訂正コードワードを検出するための方法であって、
前記誤り訂正コードのデコードアルゴリズムによって定められる２部因子グラフに対応する、変数ノードが因子ノードと相互接続されたスパイキングニューラルネットワークを提供することであって、前記ノードの各々は、そのノードの計算機能を実装するように構成されたニューロンのセットを含む、提供することと、
コードワードのシンボルに対応する信号サンプルの各々について、そのサンプルの可能な値の確率が、前記スパイク信号におけるスパイクの発生を介してエンコードされる少なくとも１つのスパイク信号を生成することと、
コードワードの前記シンボルに対応する前記スパイク信号をそれぞれの変数ノードにおける前記ニューラルネットワークへの入力として供給することと
を含み、
それにより、前記確率分布は、前記ニューラルネットワークを通じて伝搬される信号におけるスパイクの前記発生を介して伝搬され、前記変数ノードは、伝搬後、前記コードワードについての推定シンボル値を出力する、方法。
【請求項８】
前記確率が前記スパイク信号におけるスパイクの発生のレート及び発生の時間の少なくとも１つを介してエンコードされるように、前記スパイク信号の各々を生成することを含む、請求項７に記載の方法。
【請求項９】
前記ノードの前記ニューロンは、前記確率分布が前記ニューラルネットワークを通じて伝搬される信号におけるスパイクの発生の前記レート及び発生の前記時間の少なくとも１つを介して伝搬されるように構成される、請求項８に記載の方法。
【請求項１０】
前記確率が前記スパイク信号におけるスパイクの発生の前記レートを介してエンコードされるように、前記スパイク信号の各々を生成することを含み、前記ノードの前記ニューロンは、前記確率分布が前記ニューラルネットワークを通じて伝搬される信号におけるスパイクの発生の前記レートを介して伝搬されるように構成される、請求項９に記載の方法。
【請求項１１】
前記コードワードシンボルはバイナリシンボルであり、前記方法は、信号サンプルの各々について、バイナリシンボル値の所定の１つの値の前記確率をエンコードする単一のスパイク信号を生成することを含む、請求項７に記載の方法。
【請求項１２】
前記コードワードシンボルは多値シンボルであり、前記方法は、信号サンプルの各々の可能なシンボル値について、前記サンプルについてのそのシンボル値の前記確率をエンコードするスパイク信号を生成することを含む、請求項７に記載の方法。
【請求項１３】
因子グラフ上でランダム変数の確率分布の伝搬を実施するための装置であって、
前記因子グラフに対応する、変数ノードが因子ノードと相互接続されたスパイキングニューラルネットワークであって、前記ノードの各々は、そのノードの計算機能を実装するように構成されたニューロンのセットを含む、スパイキングニューラルネットワークと、
前記ランダム変数のセットの各々について、少なくとも１つのスパイク信号であって、その変数の可能な値の確率は、前記スパイク信号におけるスパイクの発生を介してエンコードされる、スパイク信号を生成するように適合され、かつ、ランダム変数の前記セットについての前記スパイク信号をそれぞれの変数ノードにおける前記ニューラルネットワークへの入力として供給するように適合されたスパイク信号生成器と
を含み、
前記確率分布は、前記ニューラルネットワークを通じて伝搬される信号におけるスパイクの前記発生を介して伝搬される、装置。
【請求項１４】
前記スパイク信号生成器は、前記確率が前記スパイク信号におけるスパイクの発生のレート及び発生の時間の少なくとも１つを介してエンコードされるように、前記スパイク信号の各々を生成するように適合される、請求項１３に記載の装置。
【請求項１５】
前記ノードの前記ニューロンは、前記確率分布が前記ニューラルネットワークを通じて伝搬される信号におけるスパイクの発生のレート及び発生の時間の少なくとも１つを介して伝搬されるように構成される、請求項１４に記載の装置。
【請求項１６】
前記スパイク信号生成器は、前記確率が前記スパイク信号におけるスパイクの発生の前記レートを介してエンコードされるように、前記スパイク信号の各々を生成するように適合され、前記ノードの前記ニューロンは、前記確率分布が前記ニューラルネットワークを通じて伝搬される信号におけるスパイクの発生の前記レートを介して伝搬されるように構成される、請求項１５に記載の装置。
【請求項１７】
前記ランダム変数はバイナリ変数であり、前記スパイク信号生成器は、前記セットのランダム変数の各々について、前記変数のバイナリ値の所定の１つの値の前記確率をエンコードする単一のスパイク信号を生成するように適合される、請求項１３に記載の装置。
【請求項１８】
前記ランダム変数は多値変数であり、前記スパイク信号生成器は、前記セットのランダム変数の各々の可能な値の各々について、前記変数のその値の前記確率をエンコードするスパイク信号を生成するように適合される、請求項１３に記載の装置。
【請求項１９】
因子グラフ上でそれぞれの信号サンプルに対応するコードワードシンボルの確率分布を伝搬することによって、チャネル出力においてサンプリングされた信号における誤り訂正コードワードを検出するための装置であって、
前記誤り訂正コードのデコードアルゴリズムによって定められる２部因子グラフに対応する、変数ノードが因子ノードと相互接続されたスパイキングニューラルネットワークであって、前記ノードの各々は、そのノードの計算機能を実装するように構成されたニューロンのセットを含む、スパイキングニューラルネットワークと、
コードワードのシンボルに対応する信号サンプルの各々について、そのサンプルの可能な値の確率が前記スパイク信号におけるスパイクの発生を介してエンコードされる少なくとも１つのスパイク信号を生成するように適合されたスパイク信号生成器と
を含み、
前記確率分布は、前記ニューラルネットワークを通じて伝搬される信号におけるスパイクの前記発生を介して伝搬され、前記変数ノードは、伝搬後、前記コードワードについての推定シンボル値を出力するように適合される、装置。
【請求項２０】
変数ノードのニューロンの各々は、多数決関数を実装するように適合される、請求項１９に記載の装置。
【請求項２１】
因子ノードの各々は、ＸＯＲ関数を実装するように構成されたニューロンを含む、請求項１９に記載の装置。
【請求項２２】
前記スパイク信号生成器は、前記確率が前記スパイク信号におけるスパイクの発生のレート及び発生の時間の少なくとも１つを介してエンコードされるように、前記スパイク信号の各々を生成するように適合される、請求項１９に記載の装置。
【請求項２３】
前記ノードの前記ニューロンは、前記確率分布が前記ニューラルネットワークを通じて伝搬される信号におけるスパイクの発生の前記レート及び発生の前記時間の少なくとも１つを介して伝搬されるように構成される、請求項２２に記載の装置。
【請求項２４】
前記スパイク信号生成器は、前記確率が前記スパイク信号におけるスパイクの発生の前記レートを介してエンコードされるように、前記スパイク信号の各々を生成するように適合され、
前記ノードの前記ニューロンは、前記確率分布が前記ニューラルネットワークを通じて伝搬される信号におけるスパイクの発生の前記レートを介して伝搬されるように構成される、請求項２３に記載の装置。
【請求項２５】
請求項１から請求項１２までのいずれか１項に記載の方法をコンピュータに実行させる、コンピュータプログラム。
【請求項２６】
請求項２５に記載のコンピュータプログラムを格納した、コンピュータ可読ストレージ媒体。
【国際調査報告】
2022502727.tif 000057
2022502727.tif 000058