1

2次元ニューラルネットワークのノードをどのように表現しますか?

自己組織化ニューラルネットワーク(Kohonen map)では、ノードの重みは2Dネットワークの座標にどのように関連していますか。マップは、場所の座標またはその場所の重みに基づいて自己組織化しますか?

MPIを使用して以下に示すアルゴリズムを実装しようとしています

分散ローカリゼーションアルゴリズム:入力:N、ノードの数。G = (g_ij)、最近傍の知識出力:ノードの位置p_i = (x_i,y_j), i,j = 1,......,N

// Initialization of the node locations
   for all nodes i do
     p_i = (x_i,y_j) = random();
   end for

// Main Loop
   for t = 1 to N_iter do
     p = (x,y) = random()
     for all network nodes i, update its location
       for j=1 to N
         x_i (t+1) = x_i (t) +α(t) δ_ij [x-x_i(t)] 
         y_i (t+1) = y_i (t) +α(t) δ_ij [y-y_i(t)]
         for k=1 to N
           for m=1 to N
             tmp += g_km exp{ ||p-p_k||2 } exp{ ||p-p_m||2 }
           end for
         end for
         δ_ij = g_ij exp{ ||p-p_i||2 } exp{ ||p-p_j||2 } / tmp
        end for
      end for
    end for
4

1 に答える 1

1

コードでは、各ニューロンノードはペア(Xi、Yj)で示されます。ランダムな値でデータ構造を初期化しています。各ノードには、少なくとも重みと1組の座標があります。座標はその場所を示します。重量がその値を与える間。

それだけの価値はありますが、メソッドを使用して独自のデータ構造を作成できますgetNodeAt(x,y)。すでに述べたように、2D配列またはリンクリストを使用できます。

後でノードをどのようにグループ化するかはわかりません(ニューラルネットワークには多くの種類があります)。コードには層ごとの分布が見られます。幅優先探索のレベルのようなものです。

ネットワーク全体に重みを伝播する方法は、入力/トップ/開始レベルにある1つのノードの値の計算を開始してから、隣接ノード(つまり、次の層/レベル)にジャンプすることです。6〜8行目に計算があります。出力ノード/最下位レベルで停止します。

于 2012-03-01T18:12:59.470 に答える