представлять узел в нейронной сети? - PullRequest
1 голос
/ 01 марта 2012

Как можно представить узлы в двумерной нейронной сети?

В самоорганизующихся нейронных сетях (карта Кохонена) как вес узла связан с координатой в 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

1 Ответ

1 голос
/ 01 марта 2012

В вашем коде каждый нейронный узел обозначен парой (Xi, Yj). Я вижу, как вы инициализируете свою структуру данных случайными значениями. Каждый узел имеет как минимум вес и пару координат. Координаты дают свое местоположение; в то время как вес дает свое значение.

Несмотря на то, что это того стоит, вы можете создать собственную структуру данных с помощью метода getNodeAt(x,y). Вы можете использовать 2D-массив или связанный список, как я уже упоминал.

Я не уверен, как вы группируете узлы позже (есть много типов нейронных сетей), я вижу распределение по уровням в вашем коде. Вроде как уровни в ширину первого поиска.

Способ распространения весов по всей сети состоит в том, чтобы начать вычислять значения для одного узла, расположенного на уровне входа / вершины / начала, а затем перейти к соседям (т.е. к следующему уровню / уровню). У вас есть расчеты в строках 6-8. Вы останавливаетесь на выходных узлах / нижнем уровне.

...