Pregunta

¿Conoce alguna aplicación al lado patrón recono. merecía la pena con el fin de poner en práctica Hopfield modelo de red neuronal?

¿Fue útil?

Solución

redes neuronales recurrentes (de los cuales Hopfield redes son un tipo especial) se utilizan para varias tareas en el aprendizaje de secuencias:

  • Predicción de secuencia (Asignar una historia de valores de las acciones al valor esperado en el siguiente paso de tiempo)
  • Secuencia de clasificación (MAP cada fragmento de audio completo a un altavoz)
  • Secuencia etiquetado (Asignar un fragmento de audio a la frase hablada)
  • refuerzo no markoviano aprendizaje (tareas por ejemplo que requieren profunda memoria como el punto de referencia T-Maze)

No estoy seguro de lo que entendemos por "reconocimiento de patrones" exactamente, ya que básicamente es todo un campo en el que cada tarea para la cual las redes neuronales se puede utilizar ataques.

Otros consejos

Puede utilizar la red de Hopfield para problemas de optimización también.

Puedes retirar este repositorio -> Hopfield Red

No tienes un ejemplo de un patrón de prueba después de tren de la línea de fuera de la red. Esta es la prueba

 @Test
 public void HopfieldTest(){
     double[] p1 = new double[]{1.0, -1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0};
     double[] p2 = new double[]{1.0, 1.0,1.0,-1.0,1.0,-1.0,-1.0,1.0,-1.0};
     double[] p3 = new double[]{1.0, 1.0,-1.0,-1.0,1.0,-1.0,-1.0,1.0,-1.0};

     ArrayList<double[]> patterns = new ArrayList<>();
     patterns.add(p1);
     patterns.add(p2);

     Hopfield h = new Hopfield(9, new StepFunction());

     h.train(patterns); //train and load the Weight matrix

     double[] result = h.test(p3); //Test a pattern

     System.out.println("\nConnections of Network: " + h.connections() + "\n"); //show Neural connections
     System.out.println("Good recuperation capacity of samples: " + Hopfield.goodRecuperation(h.getWeights().length) + "\n");
     System.out.println("Perfect recuperation capacity of samples: " + Hopfield.perfectRacuperation(h.getWeights().length) + "\n");
     System.out.println("Energy: " + h.energy(result));

     System.out.println("Weight Matrix");
     Matrix.showMatrix(h.getWeights());
     System.out.println("\nPattern result of test");
     Matrix.showVector(result);

     h.showAuxVector();
 }

Y después de ejecutar la prueba se puede ver

Running HopfieldTest

Connections of Network: 72

Good recuperation capacity of samples: 1

Perfect recuperation capacity of samples: 1

Energy: -32.0

Weight Matrix
 0.0        0.0     2.0    -2.0      2.0       -2.0       0.0       0.0     0.0
 0.0        0.0     0.0     0.0      0.0        0.0      -2.0       2.0    -2.0
 2.0        0.0     0.0    -2.0      2.0       -2.0       0.0       0.0     0.0
-2.0        0.0    -2.0     0.0     -2.0        2.0       0.0       0.0     0.0
 2.0        0.0     2.0    -2.0      0.0       -2.0       0.0       0.0     0.0
-2.0        0.0    -2.0     2.0     -2.0        0.0       0.0       0.0     0.0
 0.0       -2.0     0.0     0.0      0.0        0.0       0.0      -2.0     2.0
 0.0        2.0     0.0     0.0      0.0        0.0      -2.0       0.0    -2.0
 0.0       -2.0     0.0     0.0      0.0        0.0       2.0      -2.0     0.0

Pattern result of test 

 1.0        1.0     1.0     -1.0     1.0       -1.0      -1.0       1.0     -1.0
-------------------------
The auxiliar vector is empty

Espero que esto puede ayudar

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top