連想記憶モデル(アソシアトロン)

トップページ研究分野と周辺ニューラルネットワーク

連想記憶モデルは、ネットワークに記憶パターンを保持していて、記憶パターンと少し違う、或いは少し欠落したパターンを入力されても、正しい記憶パターンを出力する事が出来る。
図の各マスが一つの細胞に対応し、黒は情報を出力している細胞、白は出力していない細胞となる。ここでは数字の「7」を出力している。
これは、我々が或る物の一部を見ただけで全体を思い出したり、或るきっかけで別の何かを思い出す事のシミュレーションと考える事も出来る。
また、文字等の記号(シンボル情報)を用いた検索の限界を超える、パターン情報による柔軟な検索の可能性を提供するものと考える事も出来る。
連想記憶モデルは、1970年代の初めに中野、Kohonen、Andersonの三者によって同時期に、其々独立に提案された。
ニューラルネットワークの構成としては、相互結合型ネットワークを用いる。

結合係数の行列表現

連想記憶モデルは相互結合型ネットワークなので、全ての細胞同士の結合係数を考慮する。
結合係数は、或る細胞の出力刺激の別の細胞への「伝わり易さ」を表すもので、wi,jと表される場合が多い(jが出力側の細胞、iが受け取る方の細胞になる)。図では斜めの結合は見易さから結合係数を入れていないが、対応する番号が入る。
ニューラルネットワークの計算では、結合係数の行列演算を行なう場合が多い。
右の行列は、行(縦)に受ける側の細胞番号、列(横)に送る側の細胞番号を取った結合係数の行列で、「記憶行列」と呼ばれる(重み行列、ともいう)。
但し、連想記憶モデルでは自己入力(或る細胞の出力が、戻ってその細胞の入力にもなる)は考慮しないので、記憶行列の対角成分の値はどれも0となる。

記憶パターンの結合係数行列への埋め込み

連想記憶モデルでは、記憶パターンは結合係数の行列(記憶行列)に埋め込まれる。
図のような4つの細胞があり、右上の数字は細胞の番号とする。記憶パターン(白を-1、黒を1とする)を埋め込む方法は、(記憶パターンの列ベクトル)×(記憶パターンの転置ベクトル)−(単位行列)とする。
単位行列を引く事で、或る細胞の自分自身への結合係数は0となる。

連想記憶モデルの出力関数

出力関数とは、或る細胞が受け取る刺激の総和(複数の細胞から入力があるので)を、出力値に変換する関数だ。
ここでは、以下のように総和が正(ここではゼロも含む)なら1、負なら-1を出力する関数を用いる(xが内部状態、yが出力値、fが出力関数)。

入力パターンに基づく想起の仕組み

パターンの入力は、其々の細胞が入力パターンと一致する刺激を出力したものと看做す。
例えば、上記の4つの細胞に対し、入力パターンは2番の細胞だけを黒くしたものとする。
この場合、2番の細胞だけが刺激1を出力したと考える。
この入力刺激に対し、i番目(上記の例ではi=1〜4)の細胞が受ける刺激の総和は、上の式のようになる(ここでは閾値θiは0とする)。
これを記憶行列を使って計算すると、(記憶行列)×(入力刺激(パターン)の列ベクトル)となる。
計算結果の内部状態を出力関数に通すと、記憶パターンが出力される事が分かる。
これは、2番の細胞が記憶パターンを構成するものなので、そこを刺激すると、全体(2、3番の細胞から成る記憶パターン)が出力(想起)された事になる。

想起に失敗する例

今度は、上記の4つの細胞に対し、入力パターンは4番の細胞だけ黒くしたものとする。
4番の細胞は記憶パターン構成していないので、想起された出力パターンも記憶パターンとは違うものになっている。

複数の記憶パターンの埋め込み

同一の記憶行列に、複数の記憶パターンを埋め込む事が出来る。
例えば、2つの記憶パターンを埋め込む場合、記憶行列は、(記憶パターン1の列ベクトル)×(記憶パターン1の転置ベクトル)+(記憶パターン2の列ベクトル)×(記憶パターン2の転置ベクトル)−2×(単位行列)となる。
3つ以上の場合でも、其々の記憶パターンのベクトルとその転置ベクトルの積(相関行列)の総和から、単位行列に埋め込みパターン数を掛けたものを引いたものになる。
図は、青のパターンと赤のパターン(色の着いている細胞が1、白が-1)を埋め込んだ場合の記憶行列の作成を示している。

記憶容量と引き込み領域

複数のパターンを埋め込んだ場合、上記のようにパターン間に重なる範囲が無い場合は、入力パターンで刺激される箇所を含む記憶パターンが出力される。
パターン間に重なりがあり、そこを刺激した場合は、必ずしも記憶パターンのどれかが出力されるとは限らない。
適当な入力パターンを与えた場合に、埋め込まれた記憶パターンが正しく出力されるには、記憶パターンの数を或る程度少なくしなければならない。
それ以上、記憶パターン数を増やすと、記憶パターン間の混同が起こり、正しく想起されなくなる。
この限界数を記憶容量といい、大体、細胞数×0.14とされている。
また、ある記憶パターンが出力される入力パターンの集合を、その記憶パターンの引き込み領域という。