Red  de Hamming
Richard P. Lippmann Areas de interes: Reconocimiento de Voz, Desarrollo de mejoras en Redes Neuronales, Clasificacion de patrones estadísticos, Desarrollo de software portable para la clasificación de patrones, Desarrollo de redes neuronales en VLSI de baja potencia,  aplicaciones de redes neuronales y patrones estadísticos a la solución de problemas de detección a través de la computadora. Recibio el grado de Dr. en Ingenieria electrica del Instituto Tecnologico de Massachusetts (MIT) en  1978.
Características
Características Generales Red Creada por  Richard P. Lippmann  en 1987 Aprendizaje no supervisado tipo competitivo Es una de las redes mas simples de tipo competitiva. Las neuronas en la capa de salida compiten para determinar la ganadora.
La neurona ganadora indica cual es el patron prototipo mas representativo del patron de entrada. La competencia se implementa a través de inhibiciones laterales; es decir un conjunto de conexiones negativas laterales entre las neuronas  en la capa de salida. Son clasificadores adaptativos eficientes
Arquitectura
ARQUITECTURA
Se le llama red de Hamming debido a que la neurona en la capa feedforward con la salida mas grande, corresponderá al patrón prototipo que este mas próximo en distancia de Hamming al patrón de entrada.
Posee tres capas: entrada, oculta y salida. Los pesos en las capas representan los componentes de los patrones de entrada almacenados.
Capa oculta Red para el calculo de la distancia de Hamming
Red de Hamming Simple Calcula la distancia de Hamming, sumando las entradas ponderadas a un nodo. La distancia de Hamming es el número diferente de bits en dos vectores. P = [1  1 -1  1],  W= [1 -1 -1 -1] Distance de Hamming  = 0 + 1 + 0 + 1 = 2
2a Capa: Realiza una correlación entre los vectores de entrada y los vectores prototipo. 3a Capa:Realiza una competencia para determinar cual de los vectores prototipos esta mas próximo al vector de entrada
Consta de 3 capas: Capas de Instars & Capa competitiva Maxnet
Red de Hamming
Algoritmo de  Aprendizaje
La segunda capa de las redes de Hamming, es la llamada capa de competencia, por que cada neurona se excita e inhibe a las demás neuronas . Para simplificar esto definiremos una función de transferencia que haga el trabajo de la capa competitiva. a= compet (n) Algoritmo
Esta   trabaja encontrando el índice i *   de la neurona con la entrada mas grande en la red y mandando la salida de esta a 1. Todas las demás salidas serán 0. La capa competitiva es mostrada de la sig. Forma:
Capa 1 (Correlación) vectores prototipo para reconocimiento : Primera capa de la matriz de pesos y umbrales La respuesta de la primera capa es: El prototipo mas cercano al vector de entrada produce la respuesta  mas grande.
Capa 2 (Competición) La neurona con la condición inicial más grande ganará la competencia. La segunda capa es inicializada con la salida de la  primera capa.
Capa Competitiva
Aprendizaje Competitivo En la red competitiva, la neurona ganadora tiene una salida de  1, y las otra tienen salida 0. Regla Instar  Regla de Kohonen
Representación Gráfica O bien Regla de Kohonen
Ejemplo
Después de Cuatro Iteraciones
Típica Convergencia (Clustering) Antes del entrenamiento Después del entrenamiento Pesos Vectores de entrada
Problemas de las capas competitivas 1) Compromiso entre la velocidad de aprendizaje y estabilidad de los vectores de pesos. 2) Problemas de clasificación cuando lo patrones están muy próximos. 3) Neuronas muertas.
1) Compromiso entre la velocidad de aprendizaje y estabilidad de los vectores de pesos.    tiende a cero; aprendizaje lento. Una vez que el vector ha alcanzado el centro del “cluster” este tiende a permanecer cercano al centro del mismo. Ver figura
  tiende a uno; aprendizaje rápido. Sin embargo una vez alcanzado el cluster este continua oscilando conforme se presenten los diferentes vectores. Ver figura. Posible solución: Usar una razón de aprendizaje variable:    grande para un rápido aprendizaje y luego decrementar   conforme el entrenamiento progresa a alcanzar los vectores prototipos estables
Estabilidad Si los vectores de entrada no quedan bien agrupados por un cluster, entonces para velocidades de aprendizaje grandes la presentación de cada vector de entrada  puede modificar la configuración de tal forma que el sistema experimentará una evolución continua.
Estabilidad 1 w (0) 2 w (0) p 1 p 3 p 2 p 5 p 6 p 7 p 4 p 8 1 w (8) 2 w (8) p 1 p 3 p 2 p 5 p 6 p 7 p 4 p 8
2) Problemas de clasificación cuando los patrones están muy próximos. Un vector de pesos forma un prototipo de una clase que pudiera invadir el territorio de otro vector de pesos y por lo tanto perturbar el esquema de clasificación. Ver figuras:
3 ) Neuronas muertas. Esto es cuando una neurona del vector de pesos inicial se localiza lejos de los vectores de entrada de tal forma que nunca gana la competencia y nunca aprende. Esto produce una neurona muerta la cual resulta inútil. Ver figura.
Neuronas Muertas Neuronas con pesos iniciales lejos de cualquier vector de entrada podrían nunca ganar Neurona  Muerta Solución: Agregar un umbral negativo a cada neurona, e incrementar el valor del umbral a la neurona ganadora. Esto hará mas difícil ganar a una neurona, si esta gana  frecuentemente. A esto se le llama “conciencia.”
Conciencia La solución al problema anterior consiste en agregar un umbral negativo a la entrada de la red de cada neurona y disminuir su valor de umbral cada vez que la neurona gana. Esto hace mas difícil que una neurona gane la competencia.
Aplicaciones
Ejercicios
Ejercicio 1 Entrene una red competitiva con los siguientes parametros:  A) Calcular los pesos resultantes después del entrenamiento
Ejercicio 2 Calcular los pesos resultantes después del entrenamiento de la capa competitiva con una razón de aprendizaje    de 0.5.
Solución   Calcular los pesos resultantes después del entrenamiento de la capa competitiva con una razón de aprendizaje    de 0.5.         Primero combinamos el vector de pesos en la matriz W.
         Luego calculamos con el primer vector de entrada p 1 . La segunda neurona respondió, así que  2 w es la más cercana a p 1 .  Después, actualizamos los pesos  2 w.
         Ahora repetimos este proceso con p 2 . La tercera neurona ganó, así que sus pesos se mueven más cerca de p 2
Ahora pasamos con p 3 .   La tercera neurona volvió a ganar.
Después de pasar de p1 a p3 otra vez, la neurona 2 ganará una vez más y la  neurona 3 dos veces. Así que los pesos finales son:   Hay que notarse que que el vector 1w, nunca se actualizó. Aquella neurona  como la primera que nunca gana una competición, se conoce como una  neurona muerta.
Código en  Matlab/NNT
Aprendizaje Competitivo Donde: R= Numero de entradas S= Numero de neuronas
Inicialización W= initc (P,S); La función  initc toma una matriz de vectores de entrada P y un numero de neuronas S y regresa los pesos para una capa competitiva sin umbrales. Ejemplo: W= initc ([0 10; -3 3],5); La funcion initc fija los umbrales en cero y para cada peso wij asocia una entrada i en el centro del intervalo de i.
Entrenamiento Las redes competitivas se pueden entrenar con vectores de entrada con la regla de aprendizaje instar. Cada neurona compite para responder a un vector de entrada P. Si los umbrales son todos cero,la neurona cuyo vector de peso este mas próximo a P obtiene la mas alta entrada de red y gana la competencia A= simuc (p,W); dW= learnis (p,a,lr,W); W= W + dW;
Entrenamiento Puesto que la salida del vector a contiene solo 1/0. Se puede sustituir la regla instar (learnis) por la regla de Kohonen (learnk) disminuyendo el numero de cálculos y haciendo el código anterior mas eficiente. A= simuc (p,W,b); dW= learnk (p,a,lr,W); W= W + dW;
La funcion  trainc  entrena una capa competitiva con vectores de entrada en orden aleatorio. Tp= [disp_freq  max_pres  lr  ]; [W,b]= trainc (W,p,tp); Donde:  disp_freq = 25  max_pres =100 lr  = 0.01
Trainc  toma el peso W y el umbral b de una capa competitiva, una matriz de vectores de entrada P y los parámetros de entrenamiento tp y regresa  nuevos pesos
Ejemplo 1 P= [0.5827  0.6496  -0.7798; 0.8127  0.7603  0.6260] Se entrenará una red competitiva con 3 entradas. [W,b] = initc (P,3); [W,b] = trainc (W,P,[10 100 0.5]); a = simuc(P,W)
Ejemplo 2 clear;echo on;clc;nntwarn off; P= [ -0.1961 0.1961 0.9806  0.9806 -0.5812 -0.8137; 0.9806 0.9806 0.1961 -0.1961 -0.8137 -0.5812]; [W]= initc(P,3) [W]= trainc(W,P,[2 100 0.5]) a= simuc(P,W) echo off
Dudas ???
Hasta la próxima !!!

Red NEURONAL de Hamming

  • 1.
    Red deHamming
  • 2.
    Richard P. LippmannAreas de interes: Reconocimiento de Voz, Desarrollo de mejoras en Redes Neuronales, Clasificacion de patrones estadísticos, Desarrollo de software portable para la clasificación de patrones, Desarrollo de redes neuronales en VLSI de baja potencia, aplicaciones de redes neuronales y patrones estadísticos a la solución de problemas de detección a través de la computadora. Recibio el grado de Dr. en Ingenieria electrica del Instituto Tecnologico de Massachusetts (MIT) en 1978.
  • 3.
  • 4.
    Características Generales RedCreada por Richard P. Lippmann en 1987 Aprendizaje no supervisado tipo competitivo Es una de las redes mas simples de tipo competitiva. Las neuronas en la capa de salida compiten para determinar la ganadora.
  • 5.
    La neurona ganadoraindica cual es el patron prototipo mas representativo del patron de entrada. La competencia se implementa a través de inhibiciones laterales; es decir un conjunto de conexiones negativas laterales entre las neuronas en la capa de salida. Son clasificadores adaptativos eficientes
  • 6.
  • 7.
  • 8.
    Se le llamared de Hamming debido a que la neurona en la capa feedforward con la salida mas grande, corresponderá al patrón prototipo que este mas próximo en distancia de Hamming al patrón de entrada.
  • 9.
    Posee tres capas:entrada, oculta y salida. Los pesos en las capas representan los componentes de los patrones de entrada almacenados.
  • 10.
    Capa oculta Redpara el calculo de la distancia de Hamming
  • 11.
    Red de HammingSimple Calcula la distancia de Hamming, sumando las entradas ponderadas a un nodo. La distancia de Hamming es el número diferente de bits en dos vectores. P = [1 1 -1 1], W= [1 -1 -1 -1] Distance de Hamming = 0 + 1 + 0 + 1 = 2
  • 12.
    2a Capa: Realizauna correlación entre los vectores de entrada y los vectores prototipo. 3a Capa:Realiza una competencia para determinar cual de los vectores prototipos esta mas próximo al vector de entrada
  • 13.
    Consta de 3capas: Capas de Instars & Capa competitiva Maxnet
  • 14.
  • 15.
    Algoritmo de Aprendizaje
  • 16.
    La segunda capade las redes de Hamming, es la llamada capa de competencia, por que cada neurona se excita e inhibe a las demás neuronas . Para simplificar esto definiremos una función de transferencia que haga el trabajo de la capa competitiva. a= compet (n) Algoritmo
  • 17.
    Esta trabaja encontrando el índice i * de la neurona con la entrada mas grande en la red y mandando la salida de esta a 1. Todas las demás salidas serán 0. La capa competitiva es mostrada de la sig. Forma:
  • 18.
    Capa 1 (Correlación)vectores prototipo para reconocimiento : Primera capa de la matriz de pesos y umbrales La respuesta de la primera capa es: El prototipo mas cercano al vector de entrada produce la respuesta mas grande.
  • 19.
    Capa 2 (Competición)La neurona con la condición inicial más grande ganará la competencia. La segunda capa es inicializada con la salida de la primera capa.
  • 20.
  • 21.
    Aprendizaje Competitivo Enla red competitiva, la neurona ganadora tiene una salida de 1, y las otra tienen salida 0. Regla Instar Regla de Kohonen
  • 22.
    Representación Gráfica Obien Regla de Kohonen
  • 23.
  • 24.
    Después de CuatroIteraciones
  • 25.
    Típica Convergencia (Clustering)Antes del entrenamiento Después del entrenamiento Pesos Vectores de entrada
  • 26.
    Problemas de lascapas competitivas 1) Compromiso entre la velocidad de aprendizaje y estabilidad de los vectores de pesos. 2) Problemas de clasificación cuando lo patrones están muy próximos. 3) Neuronas muertas.
  • 27.
    1) Compromiso entrela velocidad de aprendizaje y estabilidad de los vectores de pesos.  tiende a cero; aprendizaje lento. Una vez que el vector ha alcanzado el centro del “cluster” este tiende a permanecer cercano al centro del mismo. Ver figura
  • 28.
      tiendea uno; aprendizaje rápido. Sin embargo una vez alcanzado el cluster este continua oscilando conforme se presenten los diferentes vectores. Ver figura. Posible solución: Usar una razón de aprendizaje variable:  grande para un rápido aprendizaje y luego decrementar  conforme el entrenamiento progresa a alcanzar los vectores prototipos estables
  • 29.
    Estabilidad Si losvectores de entrada no quedan bien agrupados por un cluster, entonces para velocidades de aprendizaje grandes la presentación de cada vector de entrada puede modificar la configuración de tal forma que el sistema experimentará una evolución continua.
  • 30.
    Estabilidad 1 w(0) 2 w (0) p 1 p 3 p 2 p 5 p 6 p 7 p 4 p 8 1 w (8) 2 w (8) p 1 p 3 p 2 p 5 p 6 p 7 p 4 p 8
  • 31.
    2) Problemas declasificación cuando los patrones están muy próximos. Un vector de pesos forma un prototipo de una clase que pudiera invadir el territorio de otro vector de pesos y por lo tanto perturbar el esquema de clasificación. Ver figuras:
  • 32.
    3 ) Neuronasmuertas. Esto es cuando una neurona del vector de pesos inicial se localiza lejos de los vectores de entrada de tal forma que nunca gana la competencia y nunca aprende. Esto produce una neurona muerta la cual resulta inútil. Ver figura.
  • 33.
    Neuronas Muertas Neuronascon pesos iniciales lejos de cualquier vector de entrada podrían nunca ganar Neurona Muerta Solución: Agregar un umbral negativo a cada neurona, e incrementar el valor del umbral a la neurona ganadora. Esto hará mas difícil ganar a una neurona, si esta gana frecuentemente. A esto se le llama “conciencia.”
  • 34.
    Conciencia La soluciónal problema anterior consiste en agregar un umbral negativo a la entrada de la red de cada neurona y disminuir su valor de umbral cada vez que la neurona gana. Esto hace mas difícil que una neurona gane la competencia.
  • 35.
  • 36.
  • 37.
    Ejercicio 1 Entreneuna red competitiva con los siguientes parametros: A) Calcular los pesos resultantes después del entrenamiento
  • 38.
    Ejercicio 2 Calcularlos pesos resultantes después del entrenamiento de la capa competitiva con una razón de aprendizaje  de 0.5.
  • 39.
    Solución   Calcularlos pesos resultantes después del entrenamiento de la capa competitiva con una razón de aprendizaje  de 0.5.        Primero combinamos el vector de pesos en la matriz W.
  • 40.
            Luego calculamos con el primer vector de entrada p 1 . La segunda neurona respondió, así que 2 w es la más cercana a p 1 . Después, actualizamos los pesos 2 w.
  • 41.
            Ahora repetimos este proceso con p 2 . La tercera neurona ganó, así que sus pesos se mueven más cerca de p 2
  • 42.
    Ahora pasamos conp 3 . La tercera neurona volvió a ganar.
  • 43.
    Después de pasarde p1 a p3 otra vez, la neurona 2 ganará una vez más y la neurona 3 dos veces. Así que los pesos finales son: Hay que notarse que que el vector 1w, nunca se actualizó. Aquella neurona como la primera que nunca gana una competición, se conoce como una neurona muerta.
  • 44.
    Código en Matlab/NNT
  • 45.
    Aprendizaje Competitivo Donde:R= Numero de entradas S= Numero de neuronas
  • 46.
    Inicialización W= initc(P,S); La función initc toma una matriz de vectores de entrada P y un numero de neuronas S y regresa los pesos para una capa competitiva sin umbrales. Ejemplo: W= initc ([0 10; -3 3],5); La funcion initc fija los umbrales en cero y para cada peso wij asocia una entrada i en el centro del intervalo de i.
  • 47.
    Entrenamiento Las redescompetitivas se pueden entrenar con vectores de entrada con la regla de aprendizaje instar. Cada neurona compite para responder a un vector de entrada P. Si los umbrales son todos cero,la neurona cuyo vector de peso este mas próximo a P obtiene la mas alta entrada de red y gana la competencia A= simuc (p,W); dW= learnis (p,a,lr,W); W= W + dW;
  • 48.
    Entrenamiento Puesto quela salida del vector a contiene solo 1/0. Se puede sustituir la regla instar (learnis) por la regla de Kohonen (learnk) disminuyendo el numero de cálculos y haciendo el código anterior mas eficiente. A= simuc (p,W,b); dW= learnk (p,a,lr,W); W= W + dW;
  • 49.
    La funcion trainc entrena una capa competitiva con vectores de entrada en orden aleatorio. Tp= [disp_freq max_pres lr ]; [W,b]= trainc (W,p,tp); Donde: disp_freq = 25 max_pres =100 lr = 0.01
  • 50.
    Trainc tomael peso W y el umbral b de una capa competitiva, una matriz de vectores de entrada P y los parámetros de entrenamiento tp y regresa nuevos pesos
  • 51.
    Ejemplo 1 P=[0.5827 0.6496 -0.7798; 0.8127 0.7603 0.6260] Se entrenará una red competitiva con 3 entradas. [W,b] = initc (P,3); [W,b] = trainc (W,P,[10 100 0.5]); a = simuc(P,W)
  • 52.
    Ejemplo 2 clear;echoon;clc;nntwarn off; P= [ -0.1961 0.1961 0.9806 0.9806 -0.5812 -0.8137; 0.9806 0.9806 0.1961 -0.1961 -0.8137 -0.5812]; [W]= initc(P,3) [W]= trainc(W,P,[2 100 0.5]) a= simuc(P,W) echo off
  • 53.
  • 54.