はじめに
先日公開した記事では、記憶容量改善の一つのアプローチとして、ロジスティック回帰の枠組みを導入した。そこでは、記憶パタンを {0, 1} の目標値に対応させ、各ニューロンが他のニューロンの状態から自身の状態(0 or 1)を予測する確率をモデル化し、対数尤度を最大化(交差エントロピー損失を最小化)するように学習を行った。
本記事では、別の教師あり学習の枠組みであるリッジ回帰(Ridge Regression)を用いて、Hopfieldモデルの学習を行うアプローチを検討する。ロジスティック回帰が分類問題(確率予測)に適しているのに対して、リッジ回帰は回帰問題(連続値予測)に用いられる。ここでは、各ニューロンが他のニューロンの状態 {-1, +1} から自身の状態 {-1, +1} を直接予測する回帰問題として定式化し、二乗誤差損失に関数にL2正則化項を加えたものを最小化することで、結合重み を学習する。このアプローチにより、特に重み行列の要素が大きくなることを抑制し、汎化性能の向上や容量改善が期待される。
リッジ回帰に基づく学習
準備
ネットワークにおけるニューロンの総数を とする。
モデルに記憶させる
個のパタンを
により与える。
であり、各要素
は
の値をとる。
重み行列を と書く。
は
行列であり、
はニューロン
からニューロン
への結合の強さを表す。制約として、対称性
および自己結合の禁止
を課す。
ロジスティック回帰の場合とは異なり、リッジ回帰では記憶パタンを {0, 1} に変換する必要はない。元の {-1, +1} の値を直接扱う。
モデルと損失関数
ニューロン の状態
を、同じパタン
における他の全てのニューロン
の状態
を使って予測することを考える。ニューロン
への総入力(活性化)
を線形結合で定義する。
リッジ回帰では、この活性化の値 が、予測値
になると考える。つまり
であり、ロジスティック回帰のようにシグモイド関数を適用しない。
学習の目標は、全てのパタン と全てのニューロン
について、予測値
と真の状態
との二乗誤差を最小化することである。さらに、重み行列の要素が大きくなりすぎるのを防ぎつつ、過学習を抑制するために、重み行列のL2ノルム(フロベニウスノルム)の二乗による正則化項を加える。
損失関数は以下のように定義される。
は正則化の強さを制御するハイパーパラメータである。
勾配計算
損失関数 を 各結合重み
で偏微分し、勾配を計算する。
第一項の微分は次のように計算できる。
第二項の微分の計算は容易である。
したがって、損失関数の勾配は以下のようになる。
さらに行列記法に移れば、
となる。ここで、、
と置いた。
勾配の対称化
ロジスティック回帰の際と同様に、上記の勾配 をそのまま用いて更新すると、更新後の重み行列 が対称性を満たさなくなる可能性がある。Hopfieldネットワークの性質(特にエネルギー関数の存在)を保つためには、重み行列の対称性
が重要である。
そこで、ロジスティック回帰の時と同様に、計算した勾配を対称化する。対称化された勾配 ] を次式で定義する。
これにより、初期値が対称であれば、勾配降下法による更新後も の対称性が保たれる。
勾配降下法
対称化された勾配 を用いて、勾配降下法により重み行列
を更新する。学習率を
として、更新則は以下のようになる。
勾配降下法の各更新ステップの後、Hopfieldモデルの制約 を満たすために、
の対角成分を0にする。
ここで は行列の対角成分を残し、他の成分を全て0にする演算子を表す。
以上が勾配降下法によるパラメタ更新の1ステップに相当し、これを所定の回数だけ繰り返す。
実装&実験
後日、公開予定。