複素連想記憶の回転不変性

はじめに

複素連想記憶に関しては Hopfield Network 複素数値化の例 をご覧ください。オープンアクセスの文献も紹介してあります。

反転不変性

Hopfield 連想記憶では、パターンベクトル \( \vec{x} \) のエネルギーは \( E(\vec{x}) = – \frac{1}{2} \vec{x}^{\mathrm{T}} W \vec{x} \) となります。\( W \) は結合荷重行列です。符号を反転したベクトル \( – \vec{x} \) を考えます。\( – \vec{x} \) を \( \vec{x} \) の 反転パターン(reversed pattern) と呼びます。\( E( – \vec{x} ) = – \frac{1}{2} ( – \vec{x} )^{\mathrm{T}} W ( -\vec{x} ) = – \frac{1}{2} \vec{x}^{\mathrm{T}} W \vec{x} = E(\vec{x}) \) から、\( \vec{x} \) と \( – \vec{x} \) のエネルギーが同じであることが分かります。また、\( \vec{x} \) と \( – \vec{x} \) の近傍の状況も同じであると言えます。この現象を 反転不変性(reversed invariance) と呼びます。\( \vec{x} \) が学習ベクトルの場合、Hopfield 連想記憶は \( \vec{x} \) と少し異なるベクトルから \( \vec{x} \) を出力します。また \( – \vec{x} \) に近いベクトルを与えると \( – \vec{x} \) を出力します。

回転不変性

複素連想記憶にも反転不変性に対応する現象があり、回転不変性と呼びます。私が研究する前に回転不変性について明示的に触れていたのは次の論文でした。

R.S. Zemel , C.K. Williams, M.C. Mozer: “Lending direction to neural networks”, Neural Networks, Vol.8, No.4, pp.503–512 (1995)

広く知られていそうなものですが、意外と他に触れている文献は見つかりませんでした。この文献は複素連想記憶ではなく複素ボルツマンマシンに関する研究だったため、回転不変性について考える必要があったのかもしれません。Zemel らは回転不変性を rotation invariance と呼んでいました。私がネイティブによる英文校正サービスを利用した時に、rotational invariance または rotation-invariance とすべきで、この表現は間違いであると指摘を受けました。以後、rotational invariance を好んで使うようにしています。

複素連想記憶のパターンベクトル \( \vec{z} \) に対して、エネルギーは \( E(\vec{z}) = – \frac{1}{2} \vec{z}^* W \vec{z} \) で定義されます。\( \vec{z}^* \) は \( \vec{z} \) の複素共役を取った上で転置したもので、エルミート転置などとも呼ばれます。\(W\) は結合荷重行列でエルミート行列になります。解像度 \(K\) に対して \( \alpha = \exp \left( \frac{2\pi i}{K} \right) \) とします。\( \alpha^k \vec{z} \) も複素連想記憶の状態の1つとなります。\( \alpha^k \vec{z} \) を \( \vec{z} \) の 回転パターン(rotated pattern) と呼びます。エネルギーを計算すると \( E( \alpha^k \vec{z}) = – \frac{1}{2} \left( \alpha^{-k} \, \vec{z}^*\right) W \left( \alpha^k \, \vec{z} \right) = E(\vec{z}) \) となり、\( \vec{z} \) と \( \alpha^k \vec{z} \) のエネルギーが同じであることが分かります。\( \vec{z} \) と \( \alpha^k \vec{z} \) の近傍が同じ状況であることを回転不変性と呼びます。

回転不変性の影響

回転不変性は私が研究を始める前から知られていました。一般的に知られていた事実だとは思いますが、触れている文献がほとんどなかったのは、それだけ軽視されていたのだと思います。しかし、実際には複素連想記憶の性能を下げる重大な因子でした。そして、誰もそのことに気付きませんでした。気づかなかったのは比較対象がなかったからでしょう。ローター連想記憶(実際にはローターボルツマンマシン)というモデルを偶然見つけました。パフォーマンスが余りに異なるのを目にして、原因を調べた結果、回転不変性が大きな要因であると結論付けました。

回転不変性の何が問題なのでしょうか。連想記憶は入力に対して一番近い学習パターンを出力する目的のシステムです。\(K\) が大きい場合には、学習パターン \( \vec{z} \) とその回転パターン \( \alpha \vec{z} \) は非常に近いベクトルになります。 \( \vec{z} \) にちょっとしたノイズを付加しただけで \( \alpha \vec{z} \) の方が近くなってしまうことが考えられます。実数型の Hopfield 連想記憶の場合では、反転パターンは学習パターンから最も遠いベクトルになりますので問題ありません。研究を進めるともっと複雑な問題であることが分かりましたが、根本の原因はここで述べた事実にあります。

回転不変性は複素連想記憶の高い対称性を示す美しい性質です。美しい理論は役立つはずという期待に反して、むしろ害となる現象でした。対称性を崩すのは簡単だという批判も受けたことがありますが、連想記憶の収束を保証しながら対称性を下げなければならず、必ずしも容易ではありません。今後、本サイトで実現したモデルを紹介していきます。