Está en la página 1de 31

APLICACIÓN DE UNA RED NEURONAL HOPFIELD

1 1

APLICACIÓN:
DIAGNÓSTICO DE FALLOS EMPLEANDO UNA RED NEURONAL ARTIFICIAL HOPFIELD ANTE DATOS
INCOMPLETOS

El rendimiento de la Red Neural Artificial de Hopfield en el diagnóstico de fallas en procesos industriales se


evalúa cuando faltan datos. Se realiza el diagnóstico de dos clases con diferentes niveles de datos superpuestos.
Como resultado principal, Hopfield tiene un buen desempeño en las pruebas implementadas superando
arquitecturas como la Red Neuronal Probabilistic, por eso es una buena opción usarlo en el diagnóstico de
fallas.

DESCRIPCIÓN DE LOS DATOS:


Se emplearon dos conjuntos de datos en determinadas situaciones, con los objetivos de comprobar el correcto
diseño de ambas arquitecturas, además, evaluar el comportamiento de las mismas ante diferentes situaciones. El
primer conjunto representa cuando las clases se encuentran totalmente separadas, ver Figura 1 y el segundo
cuando están mezcladas, ver Figura 2.
Figura 1: Clases totalmente separadas. Figura 2: Clases mezcladas.

En cada caso, hay tres variables, dos clases y cada una de ellas tiene 50 datos, para un total de 100
muestras por cada conjunto de datos.
DISEÑO Y CONFIGURACIÓN DE HOPFIELD

Generalmente en el empleo de las RNA en el diagnóstico de fallos, el número de neuronas en la capa de


entrada coincide con la cantidad de variables que se midan en el proceso, en este caso Hopfield es una
arquitectura monocapa y tendrá tres neuronas en la capa de entrada pues los conjuntos de datos presentan
tres componentes principales. En su única capa es donde se realiza el procesamiento y a la salida se brinda el
dato recuperado que tiene la misma dimensión que el vector de entrada por lo que esta capa también está
compuesta por tres neuronas.
Debido a que la red solamente proporciona un conjunto de datos a su salida, se necesita un mecanismo de
clasificación posterior que permita agrupar los datos en las clases a las que pertenecen; para llevar a cabo
este mecanismo, una vez que se obtuvieron todas las salidas de la red, se implementó el siguiente algoritmo:
1) Se determina la media correspondiente a los datos que representan a cada clase.
2) Se halla la distancia Euclídea de cada dato de salida (ofrecido por la red) con ese vector de media.
3) Se determina la menor distancia.
4) Se clasifica el dato en la clase donde se obtuvo la mínima distancia.

Se utilizó la distancia Euclídea por su sencillez y por ser la distancia más empleada en las redes neuronales
artificiales
DISEÑO Y CONFIGURACIÓN DE PNN
(Probabilistic Neural Network)

Se determinó utilizar para el cálculo de la densidad de probabilidad, el kernel Gaussiano, que constituye el
kernel normal estándar más utilizado. El parámetro de dispersión toma valor entre 0 y 1, por lo que se
seleccionó σ = 0:5 Como el número de neuronas en la capa de entrada coincide con la cantidad de variables
que se midan en el proceso, al igual que Hopfield, PNN tiene tres neuronas en la capa de entrada, en la capa
de datos tiene 100 neuronas, debido a que son 2 clases, constituidas por 50 datos, la capa sumatoria presenta
dos neuronas porque son dos clases las que se diagnostican y la capa de decisión está constituida por una
sola neurona que brinda la clase a la que pertenece el dato de entrada.
DISEÑO DE EXPERIMENTOS

Se diseñaron dos tipos de experimentos:


Entrenando las redes con datos diferentes a los de la simulación. Entrenando las redes con datos incompletos
y simulando con el conjunto original. El diseño de estos experimentos tiene como objetivo, evaluar la
capacidad de generalización de las redes ante la presencia de nuevos datos. Para la realización del primer
experimento se entrenan las arquitecturas empleando el método de validación cruzada, dividiendo cada
subconjunto en 10 particiones. Para realizar el segundo experimento se entrenan las arquitecturas con el
conjunto original de datos pero introduciendo varios porcentajes (10%, 20% y 30%) de pérdida de
información en determinadas variables y determinados tiempos de muestreo y se simulan las redes con todo
el conjunto de datos (100 muestras). Reflejan diferentes métodos para estimar los datos incompletos debido
a la pérdida de los mismos como son:
(1) reemplazar los valores perdidos por cero, método no recomendable pues el cero indica la ausencia de
características esenciales en determinados procesos y en este caso puede representar un fallo; (2)
reemplazarlos por la media de la variable que se encuentra incompleta del conjunto de datos original, este
método es el que comúnmente se utiliza por los resultados que brinda y el empleado en este trabajo; (3)
eliminar los datos donde al menos exista un valor incompleto de algunas de las variables, en este caso se
trabajará con menos datos de los disponibles y (4) desarrollar un modelo que reconstruya los valores
perdidos atendiendo a la relación entre las variables.
RESULTADOS Y DISCUSIÓN

Los resultados obtenidos aplicando el método de validación cruzada se muestran en la Tabla 1, donde para
cada uno de los conjuntos de datos, se obtiene el porciento de error de clasificación de las arquitecturas
empleadas.

Los resultados para el experimento con datos incompletos se muestran en las Tablas 2 para cuando las clases
están separadas y en III cuando están mezcladas, donde para cada uno de estos casos, se obtiene el porciento
de error de clasificación de las arquitecturas ante el 10%, 20% y 30% de pérdida de información. Para el
conjunto 1:
RESULTADOS Y DISCUSIÓN

En los resultados obtenidos se muestra la capacidad de generalización de las arquitecturas de redes


neuronales ante datos nuevos y su desempeño ante la presencia de varios porcentajes de datos incompletos
en el entrenamiento. En el caso de los conjuntos de datos donde las clases están separadas, el porciento de
error de clasificación es cero como era de esperarse, por lo que se considera que el diseño de las redes es
correcto.
Se puede observar que en todos los casos el porciento de error de Hopfield es menor o igual que el de PNN,
teniendo mejores resultados en la clasificación de las clases, por lo que Hopfield representa una
arquitectura eficiente con resultados satisfactorios en el reconocimiento y clasificación de patrones y se
considera adecuada para emplearla en el diagnóstico de fallos en procesos industriales.
CONCLUSIÓN

Teniendo en cuenta los resultados obtenidos en cada experimento, el desempeño de Hopfield ante las diferentes
situaciones que se presentaron es mejor que el de la Red Neuronal Probabilística, presentando buena robustez
ante datos incompletos, siendo esta una característica deseada en un sistema de diagnóstico de fallos. Por lo cual la
red neuronal artificial Hopfield puede ser aplicada con ´éxito al diagnóstico de fallos.

Para futuras investigaciones se desea utilizar otras distancias además de la Euclídea en el mecanismo de
clasificación de Hopfield con el objetivo de comprobar si la distancia empleada afecta o no la clasificación, utilizar
otros métodos para estimar datos incompletos y continuar comparando con otras arquitecturas.
2 2

APLICACIÓN:
RECONOCIMIENTO DE CARÁCTERES

Se desea entrenar una Red de Hopfield bastante sencilla, que sea capaz de reconocer información
(patrones) de imágenes formadas por cuatro pixeles, en una matriz de 2x2. En la figura siguiente se
muestran ejemplos de patrones que podrían utilizarse como entradas a la red:

Los pixeles negros podrían representarse mediante el valor binario 1, y los blancos con el valor binario -1. En
este caso, las informaciones serían dos vectores de cuatro elementos (N = 4) que contienen los valores de los
pixeles. La red, por tanto, tendría 4 neuronas para que cada una reciba el valor de un pixel. Aplicaremos el
algoritmo detallado anteriormente para los patrones de entrada 1 y 2.
Los valores de los vectores de entrada que representan cada patrón son:

El aprendizaje de estas dos informaciones consiste en la obtención de los pesos de la red (matriz W).
Utilizaremos la fórmula

Para la entrada E1, la salida W1 es

Para la entrada E2, la salida W2 es:


Sumando W1 y W2 se obtiene la matriz de pesos definitiva, W:

Una vez finalizada la fase de aprendizaje (entrenamiento), la red podría ser utilizada como memoria
asociativa de acceso por contenido, de tal forma, que al presentarle una información más parecida a la
almacenada durante el aprendizaje
Fase de Evaluación:
Por ejemplo, ser podría comprobar lo que ocurre con el patrón de entrada siguiente:

El vector es

Inicialmente, la salida corresponde a la propia información de entrada. Entonces se produce la primera iteración,
obteniéndose las siguientes nuevas entradas en cada neurona:
Si suponemos una función de activación de cada neurona de tipo escalón centrada en el origen (desplazamiento
Ѳ1= 0), la salida de la red después de esta primera iteración será:

Repitiendo el proceso, tomando como entrada la salida anterior, S, tenemos:

Aplicando igualmente la función de activación a este nuevo resultado (segunda iteración de EW), la salida
obtenida es:
Observemos que se repite la salida de la primera iteración, entonces se ha llegado a una situación de estabilidad,
en la que la red ha generado como salida el patrón más parecido al presentado como entrada:

En este ejemplo, para la descripción del aprendizaje se ha utilizado el modelo discreto, la forma de calcular los
pesos para el modelo continuo es similar, si se utiliza la red como memoria asociativa. Si la red se utiliza para
resolver problemas de optimización, el cálculo de los pesos dependerá del problema concreto. Además, en el
modelo continuo se suele considerar la existencia de conexiones auto concurrentes, con lo que no siempre Wii = 0.
3 3

APLICACIÓN:
RED HOPFIELD COMO SOLUCIÓN A PROBLEMAS DE OPTIMIZACIÓN

Supóngase que hay N ciudades: A,B,C,D etc... a visitar y que las distancias entre ellas está dada por el valor dxy
que es la distancia de la ciudad x a la ciudad y .
Un tour posible para el agente viajero se puede representar como un conjunto de N renglones (uno por cada
ciudad) de 0´s y 1´s donde en cada renglón hay un solo 1, el cual indica la posición de esa ciudad en el tour. Un
tour válido tiene sólo un uno por renglón y un uno por columna.
Por ejemplo, suponiendo que el agente debe visitar 4 ciudades A,B,C y D podemos definir a un posible "tour" con
la siguiente matriz:
La cual representa al tour C-A-D-B.
Esta matriz se puede representar en un vector de una
dimensión con N2 elementos. Dicho vector puede
representarse en una red de Hopfield de N2 neuronas.
El objetivo de la red de Hopfield es hacer converger la red
hacia un tour válido en el cual exista la mínima energía
posible. El problema esta entonces en definir ahora que es
la “energía” del sistema.
FUNCIÓN DE ENERGÍA
Podemos notar que la representación escogida del problema establece la restricción que hay un solo uno por renglón y
un sólo uno por columna, Además, sabemos que el objetivo es minimizar la distancia entre ciudades.
Hopfield y Tank definieron la siguiente fórmula de energía que contiene dichas restricciones, que es la siguiente

Donde Vx,y representa la salida de la neurona que muestra que la ciudad x está en la posición y.
En la función se puede notar lo siguiente:
el primer término es cero si y sólo si hay un solo "uno" en cada renglón. De otra manera, el término toma en
valor mayor que cero.
- el 2º término es cero si y sólo si hay sólo un uno en cada columna.
- el 3º término será cero si y sólo si hay exactamente N 1´s en la matriz tour.
- el 4º término representa la longitud un tour válido. Considérese que los subíndices de V están definidos
en términos de módulo n, esto es:
Vj+n =Vj
CÁLCULO DE LA RED
La salida de cada nodo se calcula de la siguiente forma:

Donde x,i representa la entrada de cada neurón. Su valor deberá cambiar de manera que se
reduzca la energía del sistema, este cambio se puede escribir como:
VALORES DE LOS PARAMETROS
A, B, C, D, o, t y deben tomar un valor inicial.
Desgraciadamente la convergencia de la red va a depender de estos valores, los cuales son realmente difíciles de
establecer.
Hopfield y Tank han sugerido que el valor inicial sea: = 1/N añadiendo un poco de ruido para romper la
simetría, esto es:
= + noise(0.1* inicial)
Donde
noise(x) = # al azar entre 0 y x
En algunas pruebas que realizaron Hopfield y Tank utilizaron los siguientes valores: A=1000
B= 1000
D= 1000
= 1.5*N C=0.75*D*N
o= 0.02
t= 1
Dt= 20000

Hopfield y Tank mostraron sus resultados con un experimento con 10 ciudades. De 20 corridas que hicieron, 16
dieron tours válidos y cerca del 50 % de las 50 soluciones fueron de las más cortas halladas por el método
exhaustivo.
APLICACIÓN
DE UNA RED
NEURONAL
BAM
1 1

APLICACIÓN:
EVASIÓN DE OBSTÁCULOS EN UN ROBOT MÓVIL

PLANTEAMIENTO DEL PROBLEMA


El ejemplo adaptado a una estructura del robot, que se prueba con una red neuronal, puede ser de utilidad para lograr
que un robot móvil navegue evadiendo obstáculos en una situación muy simple. Suponga dos sensores anticolisión con
salida binaria (todo o nada) y una estructura mecánica de tracción diferencial que requieren
dos señales binarias por motor; para girar en los dos sentidos y parar.
Además, se desea que el robot pueda evadir obstáculos cuando navega en un ambiente desconocido y tratando de
mantener un rumbo hacia adelante, siempre que pueda.
Intuitivamente se puede definir una serie de reglas simples que pueden evitar la colisión del robot y dependen del
número de sensores sobre el robot. Con dos sensores a cada lado del robot, se pueden caracterizar cuatro patrones de
entrada así:
• No colisiona.
• Se aproxima una colisión por el lado derecho.
• Se aproxima una colisión por el lado izquierdo.
• Se aproxima una colisión por ambos lados.
Para cada patrón de entrada se plantea una regla que relacione entradas y salidas al sistema:
1. Si no colisiona, entonces avance adelante.
2. Si se aproxima una colisión por el lado derecho, entonces gire por el lado izquierdo.
3. Si se aproxima una colisión por el lado izquierdo, entonces girar por el lado derecho.
4. Si se aproxima una colisión por ambos lados, entonces retroceda.

Estas cuatro reglas se representan como cuatro pares de patrones entrada y salida, que se almacenan sobre una
red neuronal tipo perceptrón. Si se expresan como vectores binarios, tenemos el siguiente conjunto de pares
entrada-salida que cumplen con las cuatro reglas simples anteriores:

X =[0 0]; Y =[1 0 1 0] no choca → adelante


X =[0 1]; Y =[0 1 1 0] choca derecha → giro izquierdo
X =[1 0]; Y =[1 0 0 1] choca izquierda → giro derecho
X =[1 1]; Y =[0 1 0 1] choca en dos lados → atrás

El primer termino de X, corresponde al estado del sensor izquierdo y el segundo, al estado del sensor derecho. Los dos
primeros términos de Y corresponden al estado del motor izquierdo y los dos últimos, al estado del motor derecho.
Este perceptrón se puede entrenar de forma grafica,
marcando puntos donde la señal de entrada binaria aplicada
por la columna debe activar alguna salida que se aplica por
la fila en la parte inferior (par entrada-salida). En algunos
casos se marca en el mismo punto y aparece concéntrica la
marca. Esto significa refuerzo de conexión como se propone
Con la información propuesta para entrenar este
comportamiento, la teoría de las redes neuronales impide
caracterizar los cuatro casos anteriores, ya que la clásica
desigualdad siguiente no se cumple:

Bajo este criterio sólo se puede almacenar con la información


propuesta, un solo caso. Para superar este inconveniente se
aumenta la dimensión del vector de entrada sin agregarle más
sensores al robot; tomando simplemente la parte complementaria
de la información de entrada en el vector Xi.
Dicho de otra forma, por cada valor de entrada se adiciona un término complemento y se obtiene así un par de
vectores de dimensión idéntica que al ser asociados sobre un perceptrón, producen una matriz cuadrada que asocia
patrones normales y negados. Ahora se aplica el método descrito en (Delgado, 1998). Al terminar de asociar las
cuatro reglas en cuestión, resulta la topología de la Figura 3.a.

Se investiga ahora por un método formal que sea útil para entrenar una red de dos capas con patrones de
entrenamiento en procedimiento supervisado, esto con el fin de ser embebido en la memoria y sistema operativo
implementado sobre un popular microcontrolador barato de ocho bits
tipo PIC16F84A. El algoritmo buscado debe adaptarse a la siguiente topología:
• Dos capas.
• Pesos sobre una matriz cuadrada.
• Memorice patrones normales y negados.
• Bidireccional.
El procedimiento seleccionado apunta a una red neuronales asociativas tipo B.A.M. En este tipo de redes los
elementos de ambas capas están interconectados entre si. Las unidades pueden o no tener conexiones de
realimentación consigo mismas.
Sin perder la generalidad de las redes neuronales, en estas arquitecturas tipo B.A.M. hay pesos asociados a las
conexiones entre elementos del proceso. A diferencia de muchas otras arquitecturas, estos pesos se pueden
determinar por anticipado si es posible identificar todos los vectores de entrenamiento.
Se puede tomar el modelo de un asociador lineal para construir la matriz de pesos. Dados L pares de vectores que
constituyen el conjunto de ejemplares que se desean almacenar, se construye la matriz:

En este caso la matriz de pesos es cuadrada y simétrica. Una vez que se ha construido la matriz de pesos, la B.A.M. se
puede emplear para recordar información. De hecho si la información tiene ruido o está incompleta la B.A.M. sería
capaz de completar la información. Para recordar información empleando esta red, se llevan a cabo los pasos
siguientes:
1. Se aplican el par de vectores Xo, Yo a los elementos del proceso de la B.A.M.
2. Se propaga la información de la capa X a la capa Y, y se actualizan los valores de las unidades de la capa.
3. Se vuelve a propagar esta información y se actualiza hasta la capa X, y se actualizan las unidades que se
encuentren allí.
4. Se repiten los pasos 2,3 hasta que no hayan cambios en las unidades de ambas capas.
Este algoritmo da a la B.A.M. la naturaleza bidireccional.
La siguiente ecuación se usa para calcular una matriz que asocia entradas con salidas de acuerdo a la siguiente
expresión:

siendo,
M, la matriz de asociación,
X, el vector fila de entradas,
Y, el vector columna de salida

Los elementos de la matriz representan los pesos de las conexiones de la red. Se realiza el cálculo de la matriz M con los
valores de los cuatro patrones que se deben cumplir en las cuatro reglas de navegación anteriores. Se toman los valores
normales y complementarios para construir un nuevo vector columna o vector ampliado y para el vector fila, se toman los
valores originales propuestos para la salida deseada en la red. Los vectores de entrada siguientes se obtienen colocando en
las filas 2 y 4 los términos negados de las filas 1 y 3. Luego efectuamos el cálculo de las sub-matrices Mi, para cada caso.
Cuando no colisiona avanza adelante

Cuando colisiona izquierda gira por derecha

Cuando colisiona a ambos lados retrocede


y el resultado de sumar las cuatro matrices parciales es:

Esta matriz asocia los cuatro comportamientos simples. Dicho en otras palabras, representa el conocimiento o
experiencia que permiten que el robot no colisione. Se hace la prueba de la matriz de asociación M con los cuatro
patrones de entrada y se obtiene lo siguiente:
Usando un limitador duro para detectar números mayores que el peso de la conexión (dos) como función de activación,
se cumple y se concluye que reconoce los cuatro patrones almacenados.
Si el lector compara la topología de esta matriz con la topología de la red neuronal perceptrón de la Figura 3, aprecia
una semejanza muy interesante: Los elementos ceros indican no conexión y el número sobre cada elemento de la matriz
da el peso de la conexión en la red (grado de refuerzo).
Con este razonamiento se ha probado que al tratar de obligar a la red binaria tipo perceptrón, que asocie patrones y sus
complementos, se logra que se comporte como una red tipo B.A.M. Además, al ser particularmente simétrica y
cuadrada, consolidan la transformación a una red
2 2

APLICACIÓN:
Escribir aquí
3 3

APLICACIÓN:
Escribir aquí

También podría gustarte