Hopfield 連想記憶 Projection Rule (2)

今回は projection rule の理論的な補足をします。

記憶容量

学習ベクトルを並べた行列 \( X=\left( \, \vec{x}^1 \, \cdots \, \vec{x}^P \, \right) \) に対して \( U=X \left( X^{\mathrm{T}}X \right)^{-1} X^{\mathrm{T}} \) を定義し、projection rule は\( W=U-\,\mathrm{diag}\, U \) で与えられました。それでは \( \left( X^{\mathrm{T}} X \right)^{-1} \) は存在するのでしょうか。存在条件が記憶容量に関わると考えられます。

\( X^{\mathrm{T}} X \) は \( P \) 次正方行列ですので、逆行列が存在する条件はランクが \(P\) となることです。これは \( \mathrm{rank}\,X = P \)、すなわち \( \vec{x}^1, \cdots, \vec{x}^P \) が一次独立であることと同値です。一次従属な場合には \( \left( X^{\mathrm{T}}X \right)^{-1} \) は存在しません。理論上は \( \mathrm{rank}\,X \) 個の一次独立なベクトルを取り出して新たに \(X\) と定義すれば、取り除かれたベクトルも \(X\) に含まれる列ベクトルの線形和となるため projection rule が適用できます。実用上は (\(P\leq N\)である限り) 一次従属になることはまずありません。\( X^{\mathrm{T}} X \) が正則であることと \( \vec{x}^1, \cdots, \vec{x}^P \) が一次独立であることが同値であることを確認しておきます。以下の式で \( \vec{a} = \left( \, a_1 \, \cdots \, a_P \, \right)^{\mathrm{T}} \) とします。

\( \vec{x}^1, \cdots, \vec{x}^P \) が一次独立
\( \Longleftrightarrow \) \( a_1 \, \vec{x}^1 + \cdots +a_P \, \vec{x}^P = \vec{0} \) ならば \( \vec{a} = \vec{0} \)
\( \Longleftrightarrow \) \( X \,\vec{a} = \vec{0} \) ならば \( \vec{a} = \vec{0} \)

\( \vec{x}^1, \cdots, \vec{x}^P \) が一次独立のとき、\( X^{\mathrm{T}} X \) が正則であることを示します。もし \( X^{\mathrm{T}} X \) が正則でなければ、\( X^{\mathrm{T}} X \,\vec{a} = \vec{0} \) となる \( \vec{a} \neq \vec{0} \) が存在します。このとき \( \| X \,\vec{a} \|^2 = \vec{a}^{\mathrm{T}} X^{\mathrm{T}} X \,\vec{a} = 0 \) より \( X \,\vec{a} = \vec{0} \) となり一次独立性に矛盾します。したがって、\( X^{\mathrm{T}} X \) は正則です。次に、\( \vec{x}^1, \cdots, \vec{x}^P \) が一次従属のとき、\( X^{\mathrm{T}} X \) が正則でないことを示します。一次従属性より \( X \,\vec{a} = \vec{0} \) となる \(P\) 次元ベクトル \( \vec{a} \neq \vec{0} \) が存在します。\( X^{\mathrm{T}} X \,\vec{a} = \vec{0} \) となるから \( X^{\mathrm{T}} X \) は正則ではありません。

\( P \leq N \) なら projection rule は可能ですが、\(P=N\) の場合には問題があります。\( \vec{x}^1, \cdots, \vec{x}^N \) が一次独立なら \(X\) は正則行列で、\( U = X \left( X^{\mathrm{T}} X \right)^{-1} X^{\mathrm{T}} = X X^{-1} \left( X^{\mathrm{T}} \right)^{-1} X^{\mathrm{T}} = E \) より \( W=O \) となります。これはすべての結合がないことと同じですべての状態が安定します。確かに学習パターンも安定していますが、これを学習に成功したとみなすのは問題がありそうです。

\(U\) の性質

projection rule を研究するには \(U\) の性質を十分理解する必要があります。\( U \vec{x}^p = \vec{x}^p \) より \( \langle \vec{x}^1 \, \cdots \, \vec{x}^P \rangle \) は固有値1に対する固有空間になります。また、 \( \vec{x}^1 \, \cdots \, \vec{x}^P \) に直交するベクトル \( \vec{y} \) に対しては \( X^{\mathrm{T}}\vec{y}= \vec{0}\) だから \( U \vec{y} = \vec{0} \) が成り立ちます。すなわち、\( \langle \vec{x}^1 \, \cdots \, \vec{x}^P \rangle^{\perp} \) は固有値 0 に対する固有空間になります。したがって、\(U\) のジョルダン標準形は \( \left( \begin{array}{cc} E_P & O \\ O & O \end{array}\right) \) となります。さらに、任意の \( \vec{v} \in \mathbf{R}^N \) に対して \( \vec{v} = \vec{x} + \vec{y} \) となる \( \vec{x} \in \langle \vec{x}^1 \, \cdots \, \vec{x}^P \rangle, \vec{y} \in \langle \vec{x}^1 \, \cdots \, \vec{x}^P \rangle^{\perp} \) が一意に存在します。このとき、\( \vec{x}, \vec{y} \) は \( U\vec{x}=\vec{x},\,U\vec{y}=\vec{0},\,\vec{x}^{\mathrm{T}}\,\vec{y}=0 \) を満たします。

対角成分の除去

projection rule では \( W = U -\, \mathrm{diag}\,U \) として、\( U \) の対角成分を取り除きました。これは Hopfield Network の収束条件からの要請によるものですが、\( W \vec{x}^p = \vec{x}^p – \, \left( \mathrm{diag}\,U \right) \,\vec{x}^p\) となりますが、第2項は \( \vec{x}^p \) の安定性を損なわないのでしょうか。ここで問題が生じないことを証明します。

\( \vec{x}^p = ( x_1^p \, \cdots \, x_N^p )^{\mathrm{T}} ,\,U = ( u_{ij} ) \) と表すことにします。\( U\vec{x}^p=\vec{x}^p \) は任意の \(i\) に対して \( x_i^p = \sum_{j=1}^N u_{ij}x_j^p \) が成り立つことを意味します。projection rule で \( \vec{x}^p \) が安定するためには、任意の \(i\) に対して \( \sum_{j \neq i}^N u_{ij}x_j^p = ( 1 – \, u_{ii} ) x_i^p \) と \( x_i^p \) の符号が一致することが必要十分です。すなわち、\( u_{ii} \leq 1 \) を示せば良いことになります。

標準基底 \( \{ \vec{e}_i \} \) を取ると、\( u_{ii} = \vec{e}_i^{\mathrm{T}} U\, \vec{e}_i \) となります。\( \vec{e}_i = \vec{x} + \vec{y} \) ( \( \vec{x} \in \langle \vec{x}^1 \, \cdots \, \vec{x}^P \rangle, \) \( \vec{y} \in \langle \vec{x}^1 \, \cdots \, \vec{x}^P \rangle^{\perp}) \) と分解すると、\( \|\vec{e}_i\|^2=\|\vec{x}\|^2 +\|\vec{y}\|^2 \geq \|\vec{x}\|^2 \) となります。特に、\( \|\vec{e}_i\|^2=1 \) なので \( \|\vec{x}\|^2 \leq 1 \) が得られます。\( U \vec{x}= \vec{x},\, U \vec{y} = \vec{0} \) に注意して、

\( \begin{eqnarray}
u_{ii} &=& \vec{e}_i^{\mathrm{T}} U \vec{e}_i
= \left( \vec{x}^{\mathrm{T}} + \vec{y}^{\mathrm{T}} \right)
U \left( \vec{x} + \vec{y} \right)
= \left( \vec{x}^{\mathrm{T}} + \vec{y}^{\mathrm{T}} \right) \vec{x}
= \|\vec{x}\|^2 \leq 1
\end{eqnarray} \)

となります。以上により、\(U\) の対角成分を取り除いても学習パターンが安定することが示されました。

対角成分除去の必要性

対角成分は収束条件を満たすために取り除かれました。実際には、対角成分は負でない実数であれば収束性に支障をきたしません。対角成分を取り除く意義は他にあります。対角成分は自己へのフィードバックになります。正のフィードバックがあれば、ニューロンにはその状態を維持しようとする作用が働くと考えられます。これは無用な偽記憶を生成する原因となります。対角成分を取り除くことで偽記憶を減らし、雑音に対して強くなります。実際の計算機シミュレーションでも、対角成分を削減すると雑音に対して著しく強くなることが確認されています。

文献

私は \(U\) の対角成分に関する文献を見たことがありません。また、対角成分を取り除いても、僅かな誤差で問題はないと思っていました。しかし、高次元のモデルの研究で無視できない問題が生じました。初めてこの問題を意識したのは 2010年代初めに Rotor Hopfield Network の研究で対角成分を単純に取り除くと学習パターンが安定しないことが発覚したのです。対角成分を取り除かなければ学習パターンは安定しますが、収束条件を満たしません。しかし、計算機シミュレーションでは全て収束しました。理論的にはすっきりしませんでしたが、高次元モデルの研究に projection rule を不完全なまま使わざるを得ませんでした。理論的に不完全であることが理由で不採録になることもありました。10年近く経過してようやく証明に至りました。これだけ年月を費やしたのは私の力不足もありますが、そもそも理論的に解決すると思ってなかったことも原因と思われます。高次元モデルの研究にはなりますが、次の論文にこの記事に相当する理論が記載されています。

M. Kobayashi: “Noise Robust Projection Rule for Rotor and Matrix-Valued Hopfield Neural Networks”, IEEE Transactions on Neural Networks and Learning Systems, Vol.33, No.2, pp.567-576 (2022)