Vous êtes sur la page 1sur 7

Metodologa para la Emulacin de una Red Neuronal tipo MLP en un Sistema Embebido

Javier F. Castillo G. M.Sc *, Aleksandra Obeso D. *, lvaro J. Caicedo B. **, Eduardo F. Caicedo B. Ph.D *
* Grupo de Investigacin Percepcin y Sistemas Inteligentes ** Grupo de Investigacin Bionanoelectrnica EIEE, Universidad del Valle, Colombia, AA 25360 E-mail: castigarja@yahoo.com, alekodu@hotmail.com, alvaro.caicedo@ieee.org, ecaicedo@univalle.edu.co
Abstract Se presenta una metodologa que permite implementar en un sistema embebido de bajo costo como un microcontrolador, una red neuronal tipo Perceptrn Multicapa (MLP Multi Layer Perceptron ) (HU Y. 2000). Se presenta la forma de calcular los tiempos de ejecucin, el espacio de memoria requerido, los campos necesarios en la trama de datos para comunicar la herramienta computacional y el sistema embebido y la forma de implementar el algoritmo para ejecutar la red neuronal multicapa. Se logr ejecutar la red neuronal, observando la facilidad que se presenta en la implementacin y se obtuvieron coeficientes de correlacin del orden de 99% indicando una alta fiabilidad o concordancia entre los resultados entregados por la herramienta de diseo y los obtenidos en el sistema embebido. Index Terms neuronas, Perceptron multicapa, redes neuronales, sistemas embebidos.

II. ANTECEDENTES Si bien el procesamiento paralelo es una cualidad de las redes neuronales artificiales; en la prctica se suele trabajar con monoprocesadores, en ese caso no existe paralelismo real, pero como en la mayora de las redes simuladas no se consideran conexiones intracapa, se puede procesar secuencialmente haciendo los clculos para una capa, luego la siguiente, etc. (Caicedo E. 2009) Lo ms interesante es que la propia estructura y modo de operacin de las redes neuronales artificiales las hace especialmente interesantes y fciles de implementar sobre multiprocesadores, algo que puede resultar bastante ms complicado cuando se trata de adaptar algoritmos tradicionales sobre dichas mquinas.

I. INTRODUCCIN Recientemente, el nmero y la variedad de aplicaciones en las que se utilizan redes neuronales se han incrementado significativamente. Hay herramientas computacionales que permiten simular redes neuronales y los sistemas a controlar o modelar, con esto se logra entrenar la red, redefinir los parmetros para el entrenamiento y validacin, antes de ser llevados a su implementacin hardware y/o software, mejorando sustancialmente los resultados obtenidos. Las redes neuronales se utilizan: (Callinan T. 2003, Basogain X. 2004, Kim I. 2004, Medina J. 2004) i. En procesos complejos. ii. Si no existe un modelo de solucin sencillo iii. En proceso no lineales iv. Cuando ciertas partes del sistema a controlar son desconocidas y no pueden medirse de forma fiable (con errores posibles) v. Cuando el ajuste de una variable puede producir el desajuste de otras. En este artculo se pretende acercar las potencialidades de las redes neuronales, ha aquellos niveles de conocimientos bsicos, ya que los sistemas embebidos particularmente aquellos que tienen como base los sistemas microcontrolado de bajo costo, son de fcil acceso, pero en ellos se dificulta la implementacin de estas tcnicas, ya que no cuentan con herramientas especificas para tal fin. En 1997 se implemento un sistema microcontrolado basado e la estructura de una red neuronal tipo MLP para la linealizacion de un sensor, en esta investigacin los resultados obtenidos mostraron la factibilidad tcnica de dicha implementacin (Dempsey G. 1997), En 1999 se hizo una comparacin de las ventajas y desventajas de las implementaciones en sistemas microcontrolados de las redes neuronales, frente al los sistemas difusos (a. B. Wilamowski B. 1999). En 2001 se vuelve a presentar la comparacin mostrando nuevamente las ventajas de las redes neuronales frente a los sistemas difusos (Binfet J. 2001). En la tesis de (Cotton N. 2010) hace referencia de las distintas implementaciones hardware especficamente sobre plataformas de microcontroladores donde se ha presentado algunas aplicaciones Todas tienen como comn denominador redes tipo MLP. Es importante considerar la forma de implementar las funciones de activacin ya que en la aproximacin de estas se denen introducir compensaciones debidas a las nolinealidades de las mismas (a. W. Cotton N. 2011)

III. LAS REDES NEURONALES Las Redes Neuronales Artificiales (RNA) son sistemas paralelos para el procesamiento de la informacin, inspirados

en el modo en el que las redes de neuronas biolgicas del cerebro procesan esta.

3) UV-SRNA, es un software de simulacin desarrollado en la Universidad del Valle Colombia, con fines acadmicos, permite la simulacin de un gran nmero topologas de redes neuronales (Caicedo E. 2009) 4) MLP edit es una herramienta desarrollada para la creacin de redes multicapa tipo MLP para sistemas embedded, este permite configurar el entrenamiento y pruebas de la red y exportar los datos en un formato predeterminado. A. Descripcin del Toolbox de redes neuronales de Matlab

Figura 1. Nodo una red MLP.

Las redes neuronales consisten en un gran nmero de diferentes arquitecturas. Las redes ampliamente utilizadas son el Perceptron multicapas (MLP Multilayer Layer Perceptron) y las redes de base radia (RBF radial basis function), en este articulo nos concentraremos en las redes MLP (HU Y. 2000, Caicedo E. 2009) A. Perceptrn Multicapa Una MLP consiste en una capa de entrada, mltiples capas ocultas, y una capa de salida. El Nodo en la red, es llamado neurona, en la figura 1 se muestra un nodo de una red MLP; esta incluye un sumador y una funcin de activacin. Las entradas xn, n=1,,N de la neurona son multiplicados por los pesos Wn y sumados juntos con la constantes denominadas bias. El resultado de la suma es la entrada para la funcin de activacin. Conectando varios nodos en paralelo y serie se logra conformar una red MLP, una red tpica se muestra en la figura 2.

Para la creacin, entrenamiento y validacin de una red en Matlab se usan los siguientes comandos: newff este comando genera una red, la cual llamaremos net.
( [ ( ]{ }

Las entradas son: P= RxQ1 es una matriz con los valores mximos y mnimos para R entradas. T= SNxQ2 es una matriz con los valores mximos de las salidas Si= tamao de la i-sima capa, para N-1 capas TFi= funcin de activacin de la i-sima capa Por defecto =tansig BTF= funcin de entrenamiento de la red, por defecto trainlm El algoritmo por defecto para este comando es LevenbergMarquardt, trainlm. Despus de inicializada una red, se realiza el entrenamiento, este se realiza usando el comando train. La red resultante se llama net1. (

Las entradas son: net = red inicial P= Vector de entrada T= Vector de salida Para probar la red se usa el comando sim. La salida de la red es llamada a.
Figura 2. Modelo del Perceptrn Multicapa.

Las entradas son: net1 = red final P = vector de entrada

Para obtener la mejor red MLP para una relacin entradasalida, primero se disea la arquitectura de la red: esto es definir el nmero de capas ocultas, las neuronas en cada capa, las funciones de activacin para cada capa. Los parmetros a ser estimados son los pesos y las bias. IV. HERRAMIENTAS PARA LA GENERACIN DE REDES NEURONALES 1) NeuralGraphics este permite simular las redes y entregar un archivo con la topologa simulada. 2) Matlab y su Neural Network toolbox, es una herramienta muy completa, en su estructura se encuentra la arquitectura de la red y todos los elementos que facilitan su caracterizacin.

V. METODOLOGA DE IMPLEMENTACIN Para la correcta implementacin de la red, se ha divido en dos partes: la primera consiste en describir los pasos necesarios en la generacin de la red desde la herramienta computacional. La parte final de la metodologa consiste en describir los pasos para la implementacin en el sistema embebido. A. Metodologa aplicada a la generacin de la red neuronal en Matlab (Caicedo E. 2009)

Pasos para la implementacin a partir del sistema obtenido en Matlab: 1) Realizar la adquisicin de datos. 2) Configurar el regresor y entrenar la red 3) Se extraen los parmetros de la red, vase la figura No.3 donde se muestra la estructura de los datos de la red neuronal: a. La cantidad de neuronas que hay en cada capa. b. Los pesos. c. Las bias. d. Las funciones de activacin e. Los rangos para las entradas y salidas, vase la figura 4. 4) Se organiza la trama, la cual consta de: a. El tiempo de muestreo. b. El regresor. c. Los retardos. d. totalBytes (se calculan la cantidad de bytes necesarios para caracterizar la red). e. Total de capas. f. Total de neuronas. g. Nmero de neuronas por capas. h. Funciones de activacin. i. Rangos mximos y mnimos. j. Datos de entrada. k. Datos de salida. l. Las bias. m. Los pesos. 5) Se procede al envo de los datos para luego ser interpretado por el sistema embebido. En la figura No.3 se observa el objeto tipo red neuronal, los campos correspondientes a los conectores, permiten seleccionar de las distintas estructuras que componen la red, el conector de las entradas permite seleccionar los pesos (IW) correspondientes a la entradas y el conector de las capas van asociados a los pesos (LW).

convertirlos al rango de salida (min max) que fueron suministrados en el entrenamiento. B. Metodologa aplicada al sistema embebido Pasos para la implementacin en el sistema embebido: 1) Definicin de los vectores de entrada y salida dependiendo de la cantidad de retardos que se haya utilizado en el entrenamiento. Para el proceso de actualizacin del regresor, se utiliza el esquema de la figura No.6, el ejemplo realizado en dicha figura tiene el siguiente regresor [3, 2, 0, 0], este regresor solo admite 4 entradas distintas, y el vector de retardos [12, 0, 6, 2, 1], para facilitar la comprensin, el regresor en su primer campo dice que hay tres retardos asociados a esta entrada, revisando en el vector de retardos observamos que estos son [12 0 6] conjugando estos dos vectores tenemos: {x1[n-12] x1[n] x1[n-6] x2[-2] x2[n-1]} 2) Funciones para el desentramado de los datos: a. Proceso de recepcin de los datos b. Asignacin de los valores de las variables: bias, pesos, etc. 3) Funciones de transferencias de las distintas capas 4) Algoritmo para la ejecucin de la red neuronal, vase la figura 7. En la figura No.5 se observa que los datos de las entradas se almacenan en un vector circular, es decir se completa el vector y se reinicia un ndice que lleva a sealar la primera posicin del vector.

Figura 4. Proceso de normalizacin para las entradas y salidas de la red neuronal.

Figura 5. Forma para actualizar los datos de entrada para el regresor. Figura 3. Estructura de datos de un objeto de tipo red neuronal.

En la figura No.4 se observa que los datos de entrada y salida son normalizados en el procesamiento de la red neuronal. Los datos de entrada se encuentran en un rango (min y max) estos son llevados al rango (-1 1), se procesa la red y esta entrega una salida en el rango (-1 1) y luego hay que

El algoritmo se ejecuta calculando la salida de cada neurona en cada capa hasta llegar a la ltima capa (Binfet J. 2001). Las funciones de activacin se relacionan en la tabla I. VI ANLISIS DE DESEMPEO DE LA IMPLEMENTACIN Con el fin de evaluar la metodologa y final implementacin, se hace una revisin del espacio de memoria

requerido, tiempos de ejecucin y su posibilidad de ser integrado en un sistema embebido de bajo costo. A. Espacio de memoria En la tabla II se muestran los distintos campos de la trama de datos enviada, por el sistema generador de la red, luego estos tienen que ser implementados en el sistema embebido, y realizar un correcto desentramado de los datos, para el posterior clculo. Se observa que el campo que mayor incidencia tiene en el tamao de la estructura tiene que ver, con el nmero de neuronas en la capa oculta. Con un aumento de las neuronas se incrementan tanto los pesos como las bias.
TABLE I. Funcin de activacin Tansig(a) Purelin(a) Logsig(a) Hardlim(a) FUNCIONES DE ACTIVACIN Cdigo 0 1 2 3 Expresin tanh(a) a 1.0 / (1.0 + exp(-a)) if(a >= 0.0) return 1.0; else return 0.0; if(a >= 0.0) return 1.0; else return -1.0; exp(-a*a)

Campo

Descripcin Para cada entrada los valores de los retardos Cantidad de elementos tipo int8 y tipo float Nmero total k de capas con la de salida y sin la de entrada. Nmero total de neuronas sin la capa de entrada. []

Tamao en bytes []

Tipo

Retardos

uint8

totalBytes[0:1]

uint16

totalLayers = k

uint8

totalNeurons

uint8

m[0] m[k] f[1] f[k] Saturation[0:1][m[0]] Saturation[0:1][m[k]] x[1] ... x[m[0]] L[1].y[1] ... L[1].y[m1] L[k].y[1] ... L[k].y[m[k]] L[1].b[1] ... L[1].b[m1] L[k].b[1] ... L[k].b[m[k]]
L[1].w[1, 1] ... L[1].w[m[1],m[0]] L[k].w[1,1] ... L[k].w[m[k], m[k-1]]

Hardlims(a) Radbas(a)

4 5

Nmero total de neuronas en cada capa incluyendo la entrada. Cdigo de las funciones de activacin por capa. Rangos mnimos mximos para las entradas y salidas Entradas de la red neuronal

k+1

uint8

uint8

( [ ]

[ ]

uint16

4*m[0]

float32

Salidas de cada neurona.

4*totalNeurons

float32

Bias de cada neurona.

4*totalNeurons

float32

Pesos.

( [ ]

float32

Figura 6. Algoritmo para la implementacin de la red neuronal en el sistema embebido. TABLE II. Campo Ts ESPACIO DE MEMORIA DE LA RED NEURONAL Descripcin Perodo de muestreo Definicin de los elementos de entrada del regresor Tamao en bytes 1 Tipo uint16

B. Tiempos de ejecucin Para la evaluacin del tiempo de ejecucin se revisan algunas instrucciones y el tiempo promedio utilizado en la implementacin. El micro utilizado es un PIC18F2550@20Mhz, vase la tabla III. En la tabla III, podemos observar que en el caso de las funciones tansig y logsig, son las que mayor cantidad de ciclos de maquina requieren.

Regresor

uint8

El tiempo de ejecucin total depende de la topologa implementada, es decir la cantidad de entradas, la cantidad de neuronas y capas ocultas seleccionada, y las funciones de activacin definidas para cada capa. Por ejemplo, una topologa [2 5 5 2] (2 entradas, 5 neuronas en la primer capa oculta, 5 neuronas en la segunda capa oculta y 2 salidas, el tiempo promedio fue de 75ms.
TABLE III. TIEMPO DE EJECUCIN DE ALGUNAS INSTRUCCIONES Tiempo [s] 2.5 8 170 100 172 15 22

Instruccin w = w + *n_inputs; y[neuron] = y[neuron] + (w[input])*(x[input]); y[neuron] = transferFunction(TF_TANSIG, x); y[neuron] = transferFunction(TF_LOGSIG, x); y[neuron] = transferFunction(TF_RADBAS, x); y[neuron] = transferFunction(TF_PURELIN, x); y[neuron] = transferFunction(TF_HARDLIMS, x);

VII CONCLUSIONES Y TRABAJO FUTURO En la implementacin de redes tipo MLP, se emplean clculos que no representan mayor costo computacional, la estructura que entrega la herramienta de diseo facilita mucho la implementacin. Los tiempos de ejecucin permiten trabajar sistemas reales con dinmicas lentas, estamos hablando de perodos de ejecucin de 150 ms. La memoria requerida, permite usar sistemas embebidos de bajo costo y logar implementar gran variedad de arquitecturas. La precisin no fue un factor que limitara la implementacin, ya que el coeficiente de correlacin fue muy favorable (99%). Como trabajo futuro, realizar implementaciones para resolver problemas bsicos de control, modelado de sistemas y lograr migrar estas implementaciones a sistemas embebidos que habitualmente se utilizan a nivel acadmico en universidades. Bibliografa

C. Validacin de la implementacin En la tabla IV se muestra el tamao de algunas topologas. En el proceso de evaluacin se cre una topologa [6 5 1] que corresponde a una red para modelar un filtro FIR, y se llev a un microcontrolador y se obtuvieron los siguientes resultados:
TABLE IV. Configuracin [2 1] [12 10 1] [12 15 1] TAMAO DE ALGUNAS TOPOLOGAS Ejemplo Perceptron bsico Red feedforward usada en el modelo inverso Red feedforward usada en el modelo inverso con 15 neuronas en la capa oculta Red feedforward usada en el modelo inverso con otra capa oculta de 10 neuronas Filtro adaptativo con tap 100 Red de 8 entradas y 8 salidas con 8 neuronas en cada una de las 3 capas ocultas Red de 16 entradas y 16 salidas sin capa oculta

Tamao [Bytes] 53 767 1067

[12 10 10 1] [100 1] [8 8 8 8 8] [16 16]

1249 1621 1451 1477

Figura 7. Datos de la red en Matlab y del sistema embebido.

De la grafica se puede detallar que los datos son muy consistentes y adems el coeficiente de correlacin es de 99%.

Basogain X. REDES NEURONALES ARTIFICIALES Y SUS APLICACIONES. Escuela Superior de Ingeniera de Bilbao, 2004. Binfet J., and B. Wilamowski B. MICROPROCESSOR IMPLEMENTATION OF FUZZY SYSTEMS AND NEURAL NETWORKS. IEEE, International Joint Conference on Neural Networks. IJCNN '01., 2001: 234-239. Caicedo E., and Lopez J. UNA APROXIMACION PRCTICA A LAS REDES NEURONALES ARTIFICIALES. Universidad del Valle,ISBN: 9789586707671, 2009. Callinan T. ARTIFICIAL NEURAL NETWORK IDENTIFICATION AND CONTROL OF THE INVERTED PENDULUM. Dublin City University, 2003. Cotton N. A NEURAL NETWORK IMPLEMENTATION ON EMBEDDED SYSTEMS. Auburn University,TESIS DOCTORAL, 2010.

Cotton N., and Wilamowski B. COMPENSATION OF NONLINEARITIES USING NEURAL NETWORKS IMPLEMENTED ON INEXPENSIVE MICROCONTROLLERS. IEEE TRANSACTIONS ON INDUSTRIAL ELECTRONICS, VOL. 58, NO. 3,, 2011: 733-740. Dempsey G., Alt N., Olson B., and Alig J. CONTROL SENSOR LINEARIZATION USING A MICROCONTROLLER-BASED NEURAL NETWORK. IEEE International Conference on Systems, Man, and Cybernetics 'Computational Cybernetics and Simulation'., 1997: 3078-3083. Galan R., Jimenez A., Sanz R., and Matia F. CONTROL INTELIGENTE. Revista Iberoamericana de Inteligencia Artificial ISSN: 1137-3601, 2000: 43-48. Ganssle J. THE ART OF DESIGNING EMBEDDED SYSTEMS. ELSEVIER, British Library Cataloguing-in-Publication Data,ISBN 978-0-75068644-0, 2008. Hornik K., Stinchcombe M.,and White H. MULTILAYER FEEDFORWARD NETWORKS ARE UNIVERSAL APPROXIMATORS. Neural Networks, 1989: 359-366. HU Y., and HWANG J. HANDBOOK OF NEURAL NETWORK SIGNAL PROCESSING. CRC Press LLC, ISBN 0-8493-2359-2/01/$0.00+$1.50., 2000. Kim I., Fok S., Fregene K., Lee D.,Oh T., and Wang D. NEURAL NETWORK-BASED SYSTEM IDENTIFICATION AND CONTROLLER SYNTHESIS FOR AN INDUSTRIAL SEWING MACHINE. International Journal of Control, Automation, and Systems Vol. 2, No. 1, March 2004, 2004: 83-91. MARWEDEL P. EMBEDDED SYSTEM DESIGN. Springer,ISBN-10 1-4020-7690-8 (HB), 2006. Medina J., Parada M.,Guzmn V., Medina L., and Daz S. A NEURAL NETWORK-BASED CLOSED LOOP IDENTIFICATION OF A MAGNETIC BEARINGS SYSTEM. Proceedings of ASME Turbo Expo 2004, 2004. Rodriguez G., and Mordado F. HARDWARE IMPLEMENTATION OF AN ARTIFICIAL NEURAL NETWORK WITH AN EMBEDDED MICROPROCESSOR IN A FPGA. Rodriguez G. and Mordado F., 2009. Wilamowski B., and Binfet J. DO FUZZY CONTROLLERS HAVE ADVANTAGES OVER NEURAL CONTROLLERS IN MICROPROCESSOR IMPLEMENTATION.

Proceedings of the second International Conference on Recent Advances in Mechatronics ICRAM'99, 1999: 342-347. Wilamowski B., Cotton N., Kaynak O., and Dndar G. COMPUTING GRADIENT VECTOR AND JACOBIAN MATRIX IN ARBITRARILY CONNECTED NEURAL NETWORKS. IEEE TRANSACTIONS ON INDUSTRIAL ELECTRONICS, VOL. 55, NO. 10, 2008: 37843790. Zurell K. C PROGRAMMING FOR EMBEDDED SYSTEMS. R&D Books CMP Media, , 2000.

Javier Ferney Castillo Garca, Ingeniero electrnico de la universidad del valle, 2004. Magister en ingeniera con nfasis en automtica de la Universidad del Valle, 2009. Actualmente es Aspirante a Doctor en Ingeniera. Particip en el proyecto Sistema piloto para la evaluacin integral de pavimentos usando un robot mvil ROBOPAV financiado por Colciencias-Univalle. Cod.2470. Profesor auxiliar de la Escuela de Ingeniera Elctrica y Electrnica. reas de inters: Electrnica Bsica, Instrumentacin, Electrnica de Potencia, Sistemas Automticos de Control. Sistemas embebidos, control inteligente. Aleksandra Obeso Duque, Estudiante de pregrado de ltimo semestre en Ingeniera Electrnica de la Universidad del Valle. A la fecha desarrolla su tesis de pregrado en el campo de inteligencia computacional aplicado en algoritmos para el monitoreo remoto del color del ocano. Tiene especial inters en la implementacin de algoritmos de inteligencia artificial en tarjetas de procesamiento grfico (GPUs). lvaro Jos Caicedo Beltrn. Estudiante de pregrado de ltimo semestre en Ingeniera Electrnica de la Universidad del Valle y Tecnlogo en Electrnica de la Universidad del Valle (2006), Palmira. Realiz su prctica empresarial durante cinco meses en Texas Instruments Alemania, con el equipo de MSP430 Product Applications en prototipado rpido y verificacin de mdulos anlogos usando un emulador basado en FPGAs. A la fecha inicia su tesis en la implementacin en hardware de las fuerzas no-covalentes de dinmica molecular. Su especialidad es el procesamiento de seales en sistemas embebidos, la aceleracin de hardware, y la automatizacin. Eduardo Francisco Caicedo Bravo, Ingeniero Electricista de la Universidad del Valle, 1984. Mster en Tecnologas de la Informacin en Fabricacin de la Universidad Politcnica de Madrid, 1993. Doctor en Informtica Industrial de la misma universidad, 1996. Profesor Titular de la Escuela de Ingeniera Elctrica y Electrnica, Director del Grupo de Investigacin Percepcin y Sistemas Inteligentes. reas de inters: Electrnica Bsica, Instrumentacin, Robtica, Inteligencia Computacin y Percepcin Artificial.

Vous aimerez peut-être aussi