SciELO - Scientific Electronic Library Online

 
vol.15 número5Influencia del Envejecimiento Higrotérmico en el Comportamiento Mecánico de Materiales Compuestos PEI - Fibra de Vidrio Sometidos a Solicitaciones TérmicasOptimización de la Producción de Gas Utilizando un Algoritmo Basado en el Concepto de Regiones de Confianza índice de autoresíndice de materiabúsqueda de artículos
Home Pagelista alfabética de revistas  

Información tecnológica

versión On-line ISSN 0718-0764

Inf. tecnol. v.15 n.5 La Serena  2004

http://dx.doi.org/10.4067/S0718-07642004000500008 

 

Información Tecnológica-Vol. 15 N°5-2004, págs.: 45-52

MATEMATICAS APLICADAS

Red Neuronal Creciente Usando Perturbación Simultánea

Growing Cell Neural Network using Simultaneous Perturbation

G. Sánchez, H. Pérez* y M. Nakano

Inst. Politécnico Nacional, Secc. de Estudios de Posgrado e Investigación, Esc. Superior de Ingeniería Mecánica y Eléctrica, Av. Santa Ana Nº1000,
Col. San Francisco Culhuacan, 04430 México, D. F.-México


Resumen

Este artículo propone una red neuronal de tipo perceptron multicapas (MLP) que optimiza tanto su matriz de pesos como el número de neuronas ocultas. Inicialmente el sistema propuesto usa un número reducido de neuronas ocultas, optimizándose la matriz de pesos mediante un algoritmo de perturbación simultánea. Una vez que la red converge se analiza su funcionamiento y si este no es el esperado se agrega una neurona oculta. Este proceso se repite hasta obtener el funcionamiento deseado. Los resultados obtenidos muestran que el sistema propuesto presenta un funcionamiento muy similar al de un MLP convencional, cuando éste tiene un número óptimo de nodos en la capa oculta y disminuye la complejidad computacional durante la etapa de entrenamiento.


Abstract

This paper proposes a multilayer perceptron neural network (MLP) which optimizes both the matrix weights and the numbers of hidden neurons. Initially, the proposed system uses a reduced number of hidden neurons, optimizing the matrix weights by using a simultaneous perturbation algorithm. Once the network converges, its function is analyzed and if this is not as expected, a hidden neuron is added. This process is repeated until achieving the desired functioning. The results obtained show that the proposed system functions similarly to that of a conventional MLP when this has an optimal number of nodes in the hidden layer, decreasing the computational complexity during the training step.

Keywords: simultaneous perturbation, multilayer perceptron, growing cell network, pattern recognition



INTRODUCCIÓN

La red neuronal artificial perceptron multicapas (MLP) usando el algoritmo de retropropagacion ha sido aplicada a la solución de diversos problemas prácticos (Mehra y Wah, 1997; Haykin, 1994).  El perceptron multicapas consiste de al menos tres capas: Una capa de entrada, una o más capas ocultas y una capa de salida.  Aquí el  número de neuronas de las capas de entrada y salida depende de cada aplicación en particular. Sin embargo, aunque el funcionamiento de la red depende en forma importante del número de nodos en las capas ocultas, no existe aun un método confiable que permita determinar con precisión el número óptimo de estos, aun para alguna o algunas aplicaciones en particular. 

Una manera de estimar el número óptimo de nodos en la capa oculta es detener el entrenamiento después de un cierto número de iteraciones y determinar cuántos patrones fueron  propiamente reconocidos con el número actual de neuronas usadas en la capa oculta.  Si el resultado de esta prueba no es satisfactorio se agregarán una o más neuronas  en la capa oculta para mejorar el desempeño de la red. Sin embargo, desafortunadamente en estos casos la red tiene que ser entrenada completamente (Haykin, 1994).

Una alternativa que parece mas atractiva es el desarrollo de redes crecientes en las cuales se van agregando nodos en la capa oculta en forma sistemática durante el proceso de aprendizaje.  Con esta idea han sido propuestas diversas estructuras tales como la red cascada-correlación (Fahlman y Lebiere, 1991; Lehtokangas, 1999), así como las redes neuronales crecientes (Fritzke, 1991; Sánchez et al., 2001; Ponchapakesan y Palaniswami, 2002; Hodge, 2001; Schetinin, 2003).  Estas redes han sido aplicadas en la solución de diversos problemas (Toscano et al., 2002).

El algoritmo de adaptación mas comúnmente empleado para adaptar una red neuronal es el algoritmo de retropropagacion.  Sin embargo, aunque el comportamiento de este algoritmo es bien conocido, éste requiere el cálculo de la primera derivada de la función de error cuadrático con respecto a todos los pesos de la red, lo cual, dada la configuración del perceptron y otras redes neuronales implica el empleo de la regla de la cadena ya que el error de salida no es una función  explícita de los pesos de la capa de entrada, lo cual, en general, representa una alta complejidad computacional dado el gran número de multiplicaciones y sumas requeridas, así como la evaluación de funciones sigmoidales presentes en cada nodo (Mehra y Wah, 1997).  Esto sugiere la necesidad de desarrollar mecanismos que permitan la estimación de las derivadas del error cuadrático medio con respecto a los pesos de la red, requeridas durante la etapa de entrenamiento de las redes neuronales, con una complejidad computacional.

Con el fin de proponer soluciones a dos de los principales problemas presentes en los MLP, esto es la optimización del número de nodos de la capa oculta y la reducción de la complejidad computacional, éste artículo propone una red neuronal creciente en la cual se optimizan tanto el número de nodos de la capa oculta, como los pesos de red.  En el sistema propuesto se optimiza el número de nodos de la red  agregando un nodo a la capa oculta después de un determinado número de iteraciones, conservando constantes los pesos que conectan la capa de entrada con la capa oculta los cuales han sido previamente estimados. 

Por su parte para reducir la complejidad computacional durante el proceso de aprendizaje, se emplea un algoritmo de aprendizaje basado en el método de perturbación simultánea (Maeda y De Figuereido, 1995; Maeda et al., 1995; Spall 1987; 1998; Spall y Criston, 1994; Thangavel y Kathirvalavakumar, 2002; Bathnagar et al., 2003), en la cual se sustituye el mecanismo convencional para estimar la primera derivada del error cuadrático medio, basado en la regla de la cadena, (Haykin, 1994) por una aproximación de la primera derivada obtenida, a partir de su definición, mediante la evaluación de la salida de la red con sus pesos actuales y el valor de la salida de la red con sus pesos perturbados en forma aleatoria por medio de una matriz de números aleatorios pequeños, en forma tal que la aproximación corresponda a la definición matemática de la derivada de una función.  Posteriormente, usando esta aproximación los pesos de la red son modificados por medio de un algoritmo basado en la búsqueda de gradiente. 

De lo anterior se desprende que usando perturbación simultanea solo se requiere evaluar dos veces la salida de la red y un número de divisiones igual al número de coeficientes de la red para estimar los gradientes instantáneos reduciéndose así la complejidad computacional del sistema.

 

SISTEMA PROPUESTO

El sistema propuesto consiste inicialmente de una estructura sencilla similar a la red neuronal ADALINE (ADAptive LINear Element) como se muestra en la Fig. 1, la cual es utilizada como estructura inicial debido a que ésta es simple y fácil de optimizar usando el algoritmo de mínimos cuadrados promedio, LMS (Sánchez et al. 2001).

Se sabe que esta estructura ADALINE es capaz de resolver problemas relativamente sencillos, donde las superficies de separación son no-lineales, debido a su incapacidad para resolver problemas que impliquen superficies de separación complejas entre dos o más grupos de datos.  Sin embargo como una primera aproximación, pese a su simplicidad, se puede obtener un funcionamiento razonablemente bueno en general, considerando la simplicidad de la red, aun cuando la solución obtenida no sea la óptima.

Una vez que la red ha convergido, si el funcionamiento obtenido por el sistema no es el requerido, se agrega una neurona en la capa oculta, como se muestra en la Fig. 2.  En este caso se congelan los pesos, previamente entrenados, que conectan la capa de entrada con los nodos de la capa oculta adaptándose únicamente los pesos que conectan la capa oculta con la capa  de salida, así como los pesos que conectan la capa de entrada con la neurona agregada en la capa oculta. 

Una vez entrenada la red, se vuelve a evaluar su funcionamiento y en su caso se agrega una nueva neurona en la capa oculta.  Seguidamente se entrenan nuevamente los pesos que conectan la capa oculta con la de salida, así como los pesos que conectan la capa de entrada con la nueva neurona agregada en la capa oculta, conservando si variación los pesos ya calculados que conectan la capa de entrada con el resto de las neuronas la capa oculta. Este procedimiento se repite hasta obtener el funcionamiento deseado, convirtiéndose en una red neuronal del tipo perceptron multicapas, con una capa oculta, la cual tiene la capacidad de resolver el tipo de problemas que pueden ser resueltos con una red neuronal del tipo perceptron multicapas con una capa oculta.

Esta nueva estructura tiene una característica especial: crece mientras aprende, lo que significa que las neuronas en la capa oculta son una por una adicionadas y sus pesos adaptados mientras que los pesos de la capa de entrada que han sido previamente  adaptados se congelan para conservar el aprendizaje de la red previamente obtenido. Este mecanismo, aunque en ocasiones podría producir redes neuronales con un número sub-óptimo de neuronas en la capa oculta, permite estimar de manera aproximada el tamaño de la red requerido para llevar a cabo una determinada operación sin tener que entrenar completamente la red neuronal cada vez que se agrega una neurona en la capa oculta. Así, las neuronas que han sido adicionadas permiten un buen funcionamiento de la red en general.

En todas las etapas la red neuronal es adaptada usando el método de perturbación simultánea el cual ha sido probado y ha mostrado buenos resultados en el campo del reconocimiento de patrones.  En la Fig. 3 se puede observar el sistema propuesto con más de una neurona adicionada en la capa oculta.

Fig. 1: Etapa inicial de la red neuronal propuesta.

 

Fig. 2:  Red neuronal propuesta con una neurona agregada en la capa oculta. Los coeficientes en negro permancen constantes.

 

Fig. 3:  Red neuronal propuesta con dos neuronas agregadas en la capa oculta. Los coeficientes en negro permancen constantes.

 

ALGORITMO DE APRENDIZAJE USANDO PERTURBACIÓN SIMULTÁNEA

El método de perturbación simultánea fue introducido por Spall (1987), el cual ha reportado aplicaciones de éste método en diversos problemas de optimización, aproximación estocástica, control adaptable, redes neuronales, etc. (Spall y Criston, 1994; Spall 1998), habiendo probado que el método de perturbación simultánea puede ser superior que las técnicas convenciones de optimización cuando el cálculo de las derivadas es complejo. Otros autores (Maeda y De Figueiredo, 1997; Spall y Criston, 1994; Spall 1998, Maeda et al., 1995) han reportado también resultados del método de perturbación simultánea aplicado para el entrenamiento de redes neuronales, controladores, etc. en donde los resultados obtenidos con el método de perturbación simultanea se comparan favorablemente con los obtenidos con el método retropropagación en el cual se aplica usualmente el método del gradiente como regla de aprendizaje. Así para adaptar los pesos del sistema se necesita estimar el gradiente de la función de error, lo que implica que primeramente se debe estimar el gradiente de la función a minimizar, esto es

                                                    (1)

Seguidamente definiendo la función de error como:

,                                      (2)

se obtiene,

   ,                       (3)

,                                     (4)

donde;

.                                                  (5)

Usando la ecuación (5) es posible medir el error entre la salida actual y la salida deseada.  Por otro lado, la aproximación de diferencias es un procedimiento bien conocido para obtener la derivada de una función, por lo cual se puede utilizar esta aproximación para reducir la complejidad que implica la estimación de las derivadas por medio de la regla de la cadena en el algoritmo de retropropagacion (Haykin, 1994).  Así a la iésima componente del vector de pesos, se le agrega una perturbación c de manera que el vector  w  se define como (Spall, 1987):

.                           (6)

 

Primeramente se aplicará ésta aproximación de diferencias para obtener  para todos los pesos de la red.  Esto es, usando la aproximación de la derivada se pueden actualizar los pesos de la red neuronal mediante la relación

                                  (7)

Dado que la salida  de la red neuronal, Y, la es una función del vector de pesos, se obtiene:

.                       (8)

Sin embargo la idea descrita arriba, la cual es muy simple, necesita muchas más operaciones hacia delante de la red neuronal convencional, ya que se debe evaluar J(wi) para todos los pesos de la red con el fin de obtener la cantidad modificada para todos los pesos. Así que no se puede esperar un buen funcionamiento general para todos los pesos adaptados de manera individual. Para eliminar esta  dificultad se introdujo a continuación la perturbación simultánea en la cual todos los pesos de la red se perturban simultáneamente (Spall y Criston, 1994) como se indica en la ecuación (9). Así la iésima componente de la cantidad modificada correspondiente a la iteración tth  de los pesos  esta dada por:

,        (9)

donde Ct y Dt son los vectores de perturbación que consisten de números aleatorios con media cero distribuidos en el intervalo [-0.01, 0.01] exceptuando aquellos comprendidos en el intervalo (-0.001, 0.001), ya que estos últimos valores agregan muy  pequeñas perturbaciones a todos lo pesos y podrían provocar inestabilidad al esta en el denominador de la ecuación (9).  Aquí Y(Wt,Vt) es la función de salida de la red neuronal con todos los pesos asociados a las conexiones de la red, y  es la función de salida cuando todos los pesos de la red están perturbados, simultáneamente por los vectores de perturbación los cuales se adicionan simultáneamente a los pesos.

Las propiedades que deben satisfacer los vectores de perturbación se describen a continuación. Primeramente se define el vector  de perturbación Ct el cual adiciona pequeñas perturbaciones a todos los pesos.

                                     (10)

donde la variable t  denota la iteración.  Aquí el vector de perturbación tiene las siguientes propiedades:

1.  es un número aleatorio distribuido uniformemente en el intervalo , sin incluir el intervalo  el cual es independiente del tiempo t y
i = 1,..., n.

2.        

3.        

4.          denota el operar esperado y es la varianza de la perturbación .

Ahora se puede estimar el coeficiente de la primera derivada del error cuadrático con respecto a los pesos de la red neuronal por medio de la siguiente expresión:

             (11)

donde e = (y - yd) , es el error de estimación el cual puede ser fácilmente medido, y así en esta regla de aprendizaje solo es estimada por la perturbación simultánea usando la ecuación (11).  Los pesos de la red neuronal son adaptados usando la siguiente regla de aprendizaje:

,                                     (12)

donde es el coeficiente de convergencia el cual es un valor positivo.  La función de error es medida usando el operador hacia delante de la red neuronal la cual es aplicada a todos los patrones de entrada.  Entonces  pequeñas  perturbaciones son simultáneamente adicionadas a todos los pesos y el valor de la función de error es observado. Las proyecciones para la convergencia del algoritmo de perturbación simultánea han sido demostradas por Spall (1987, 1998). 

Esta regla de aprendizaje es usada para adaptar los pesos de la neurona agregada en la capa oculta, así como los pesos que conectan las neuronas de la capa oculta con las de la capa de salida.

 

RESULTADOS Y DISCUSIÓN

El sistema propuesto fue evaluado usando tres esquemas de prueba ampliamente usados como lo son: la solución de la operación lógica XOR, el problema de ZIGZAG y el problema de agrupamiento, obteniendo, en todos los casos, un funcionamiento adecuado.

La figura 4 muestra el funcionamiento de la red neuronal creciente propuesta cuando ésta es requerida para resolver el problema de la operación lógica XOR con una y dos neuronas ocultas, respectivamente, en el cual se obtuvo un 100% de reconocimiento. Este mismo problema fue resuelto con una red del tipo perceptron multicapas con dos neuronas ocultas, cuyo funcionamiento se muestra en la figura 5. Aquí el funcionamiento de la red perceptron multicapas con dos neuronas ocultas también obtuvo un 100% de acierto. En éste caso los pesos de la red neuronal fueron inicializados con números aleatorios uniformemente distribuidos en el intervalo [-0.5, 0.5], mientras que los vectores de perturbación usados para este problema fueron generados usando con números uniformemente distribuidos en el intervalo (-0.01, 0.01), Exceptuando el Intervalo (-0.001, 0.001).

Fig. 4: Funcionamiento del sistema propuesto para el problema XOR con dos neuronas ocultas.

 

Fig. 5: Funcionamiento de la red perceptron con tres capas convencional, para el problema XOR con dos neuronas ocultas.

Un segundo problema que se empleó para la evaluación de la redes neuronal propuesta es el conocido como ZIGZAG en el cual, como se muestra en la Fig. 6, el grupo de datos de entrada se clasifica, alternadamente, como perteneciendo ya sea al grupo 1 o al grupo 2, según su posición en el eje real. Aquí los pesos de la red se inicialización como números aleatorios en el intervalo de (-0.05, 0.05), mientras que los vectores de perturbación fueron generados como en la solución de la operación de XOR.  La Fig. 7 muestra las curvas de aprendizaje de la red neuronal creciente propuesta con 10, 11 y 12 neuronas ocultas respectivamente. Para este problema específico se obtuvo un porcentaje de reconocimiento del 90% en la fase de prueba con 12 neuronas ocultas, lo cual es muy similar al resultado obtenido con la red neuronal perceptron multicapas con 12 neuronas ocultas el cual fue del 92%, usando en ambos casos el mismo conjunto de datos. 

 

Fig. 6: Datos de entrenamiento para el problema de Zigzag.

 

Fig. 7: Funcionamiento general para el problema de ZIGZAG con (a) 10 neuronas ocultas, (b) 11 neuronas ocultas y (c) 12 neuronas ocultas.

Finalmente el sistema propuesto se evaluó usando el problema de clasificación que se ilustra en la Fig. 8, en donde se requiere que la red neuronal determine a que grupo pertenece el par de datos de entrada.  La figura 9 muestra las curvas de aprendizaje de la red neuronal creciente propuesta sin neuronas en la capa oculta, con una neurona oculta y con dos, cuando este es requerido a resolver el problema de clasificación descrito en la Fig. 8.  Aquí el porcentaje de aciertos con dos neuronas ocultas fue del 94%, el cual muy cercano al 95% obtenido con el perceptron multicapas con dos neuronas ocultas. En este caso los pesos de la red fueron inicializados en la misma forma que para la solución de la operación lógica XOR.

 

Fig. 8: Problema de clasificación con cuatro grupos.

 

Fig. 9: Curva de aprendizaje de la red neuronal propuesta cuando es requerida resolver el problema de clasificación con cuatro grupos

 

Los resultados obtenidos muestran que el sistema propuesto proporciona un funcionamiento similar al de un perceptron multicapas entrenado con el algoritmo de retropropagación, cuando ambos tienen el mismo número de neuronas ocultas, aunque con una mucho menor complejidad computacional.  El porcentaje de reconocimiento se puede incrementar optimizando los pesos de la red, por medio de un proceso de reentrenamiento de las matrices de pesos V y W, una vez determinado el número de neuronas ocultas.   

 

CONCLUSIONES

Este artículo presenta una red neuronal artificial creciente la cual permite optimizar, tanto el número de nodos de la capa oculta, como las matrices de coeficientes de que consta el sistema propuesto. Las matrices de coeficientes son optimizados usando el algoritmo de perturbación simultánea el cual requiere una menor complejidad computacional que la requerida por el algoritmo de repropagación.

Los resultados obtenidos en la solución de los problemas de  XOR, ZIGZAG y clasificación, los cuales implican superficies de separación no lineales, muestran que la red neuronal creciente propuesta adaptada con el esquema perturbación simultánea, permite optimizar el número de neuronas ocultas, proporcionando un funcionamiento similar al del sistema convencional, con el mismo número de neuronas en la capa oculta, aunque con una complejidad computacional mucho menor durante la etapa de entrenamiento. El funcionamiento de la red se puede mejorar, si los pesos de ésta se optimizan entrenando la red nuevamente una vez que el número óptimo, o cercanamente óptimo, de nodos de la capa oculta ha sido determinado.

 

AGRADECIMIENTOS

Al Consejo Nacional de Ciencia y Tecnología de México, CONACYT, por el apoyo otorgado durante la realización de esta investigación.

 

REFERENCIAS

Fahlman S., C Lebiere, The Cascade Correlation Learning Architecture, Technical report No.CMU-CS-91-100, Carnegie Mellon University, U.S.A., mayo (1991).        [ Links ]

Fritzke B., Unsupervised Clustering with Growing Cell Structures; Int. Joint Conference on Neural Networks, Vol. II, 8-14 (1991).        [ Links ]

Haykin S., Neural Networks: A Comprehensive Approach, IEEE Computer Society Press, Piscataway, USA (1994).        [ Links ]

Hodge V.: Hierarchical Growing Cell Structures, Trees GCS, IEEE Trans. on Knowledge and Engineering, 13 (2), 207-218, febrero (2001).         [ Links ]

Kathivalavakumar I. y P. Thangavel; A New Learning Algorithm Using Simultaneous Perturbation with Weight Initialization, Neural Letters, 17 (1), 55-68, febrero (2003).        [ Links ]

Lehtokangas M., Fast Initialization for Cascade-Correlation Learning, IEEE Trans. on Neural Networks, 10 (2), 410-414 marzo (1999).        [ Links ]

Maeda Y. y R.J.P. De Figueiredo, Learning Rules for Neuro-controller via Simultaneous Perturbation, IEEE Trans. on Neural Networks 8 (6), 1119-1130, noviembre (1997).        [ Links ]

Maeda Y., H. Hirano, y Y. Kanata, A learning rule of neural networks via simultaneous perturbation and its hardware implementation, Neural Networks, 8, 251-259, febrero (1995).        [ Links ]

Mehra P. y B. Wah, Artificial Neural Networks, IEEE Computer Society Press, Piscataway, USA (1997).        [ Links ]

Ponchapakesan C. y M. Palaniswami, Effects of Moving the Centers in a RBF Network, IEEE Trans. on Neural Networks, 13 (6), 1299-1308, noviembre (2002).        [ Links ]

Sanchez G., K. Toscano, M. Nakano y H. Perez, A Growing Cell Neural Network Structure with Backpropagation Learning Algorithm, Telecommunications and Radio Engineering,  56 (1), 37-45,  enero (2001).        [ Links ]

Schetinin V.; A Learning Algorithm for Evolving Cascade Neural Networks, Neural Letters, 17 (1), 21-31, enero (2003).        [ Links ]

Spall J.C., A Stochastic Approximation Technique for Generating Maximum Likelihood Parameter Estimates, Proc. of The American Control Conference, 1161-1167 (1987).        [ Links ]

Spall J.C., Multivariable Stochastic Approximation Algorithm for Large-dimensional Systems in the Kiefer-Wolfowitz Setting, Proc. of The 27th IEEE Conference on Decision and Control, 1544-1548 (1998).        [ Links ]

Spall J.C., y J.A. Criston, Nonlinear Adaptive Control Using Neural Networks: Estimation with a Smoothed Form of Simultaneous Perturbation Gradient Approximation, Statistical Sinica, 4, 1-27, enero (1994).        [ Links ]

Thangavel P, y T, Kathirvalavakumar, Simultaneous Perturbation for Single Hidden Layer Networks-cascade Learning Neuro-computing, 50, 193-209, enero, (2002).         [ Links ]

Toscano K., G. Sánchez, M. Nakano y H. Perez, Of-line signature recognition and verification using multiple growing cell neural network structure, Científica, 6 (4), 175-184, diciembre (2002).         [ Links ]

*autor a quien debe ser dirigida la correspondencia