制限ホップフィールドネットワーク(1)

ディープラーニングには制限ボルツマンマシンが大きな役割を果たしているようなのですが、制限ボルツマンマシンの詳しい解説がネットの中で見つかりません。そこで、自力で何とか理解するために、制限ボルツマンマシンならぬ制限ホップフィールドネットワークを検討することを思いつきました。「制限ホップフィールドネットワーク」という言葉は私の造語です。この言葉をネットで検索してみましたが、見つからないようです。
ざっくり言うと、ホップフィールドネットワークの確率版がボルツマンマシンで、ボルツマンマシンの制限版が制限ボルツマンマシンです。そこで、ホップフィールドネットワークにまず制限を加えたものを、制限ホップフィールドネットワークと呼ぼうというものです。制限ホップフィールドネットワークの確率版が制限ボルツマンマシンになります。


「制限ホップフィールドネットワーク」をもう少し正確に定義してみます。


ホップフィールドネットワークを形成しているニューロンを、見える層隠れた層の2つにグループ分けします。見える層をA、隠れた層をBで表すことにします。ニューロンiが見える層に属するならばi\in{A}、隠れた層に属するならばi\in{B}と表します。ここでは最初はホップフィールドネットワーク再検討(1)(2)で用いたのと同じ記号を使うことにします。制限ホップフィールドネットワークでは、ホップフィールドネットワークのシナプス係数s_{ij}に以下の制限を付けます。

  • i\in{A}かつj\in{A}の場合
    • s_{ij}=0
  • i\in{B}かつj\in{B}の場合
    • s_{ij}=0・・・・(1)

つまり、見える層同士のニューロンや、隠れた層同士のニューロンは情報のやり取りをしない、という制限です。


上記の制限は、ホップフィールドネットワークの条件

  • s_{ij}=s_{ji}・・・・(2)

と両立します。このことから、制限ホップフィールドネットワークはホップフィールドネットワークである、と言うことが出来ます。よって、ホップフィールドネットワークのエネルギーEの定義(ホップフィールドネットワーク再検討(2)の式(12)。ここでは数字を振り直して式(3)とします)

  • E=-\frac{1}{2}\Bigsum_{i=1}^n\Bigsum_{j=1}^ns_{ij}x_ix_j+\Bigsum_{i=1}^nh_ix_i・・・・(3)

をそのまま用いることが出来ます。そして、個々のニューロンの出力の値を、入力の値によって更新していく際に、エネルギーEが減少することはあっても決して増加しないことも言えます。


さて式(3)ですが、世間では見える層に関する変数と隠れた層に関する変数を別々の記号で書くのが一般的なようです。そこで、式(3)をそのような記号体系で書き直してみます。


まず式(3)のijは、見える層と隠れた層の両方のニューロンを指していますが、今から試みる表記法ではiは見える層のニューロンだけを、jは隠れた層のニューロンだけを指す変数になります。つまり、例えば上の図の例では、

見える層と隠れた層を合せて1から7までニューロンに番号を振り、ijは1から7までの数字のどれかを表していたのですが、



今から試みる表記法では、見える層のニューロンだけで1、2、3と番号を振り、隠れた層のニューロンは別にまた1から順に番号を振ります。そしてiは見える層のニューロンを指し、値は1から3までのいずれかです。一方jは隠れたニューロンを指し、値は1から4までのいずれかになります。