Download prototipaje rápido de redes neuronales mediante el
Document related concepts
Transcript
1 PROTOTIPAJE RÁPIDO DE REDES NEURONALES MEDIANTE EL XPCTARGET DE MATLAB A.J. Mazón (1); I. Zamora(1); R. Vicente(1); V. Valverde(p)(1); K.J. Sagastabeitia(1); J. Ezquerra(2) (1) Dpto. de Ingeniería Eléctrica. ETSI de Bilbao. UPV/EHU (2) Dpto. de Electrónica y Telecomunicaciones. ETSI de Bilbao. UPV/EHU SUMMARY In the field of electrical engineering, they are many areas in which the artificial neural networks are being applied. An artificial neuronal network can be simulated by means of software executed in conventional computers. This constitutes the first step in the implementation. Nevertheless, a hardware implementation will have to be done if we want to take advantage of their capacity of massively parallel calculation, allowing their application in real time. A first step in solving this problem consists on carrying out the implementation by means of the use of "rapid prototyping techniques". Thus, the sotware Matlab offers a tool, the xPC-Target, that allows to simulate systems in real time and is able to develop the process of the solution´s prototyping. With this tool, the prototype of two types of artificial neural networks has been developed: the MLP and the LVQ networks. The obtained prototypes have been verified satisfactorily in the process of fault classification and fault localization in electrical transmission lines. RESUMEN En el campo de la ingeniería eléctrica, son muchas las áreas en las que se están aplicando las redes neuronales. Un sistema neuronal artificial puede simularse mediante programas ejecutados en computadores convencionales, lo que constituye siempre el primer paso en el desarrollo. No obstante, deberán implementarse en hardware si se desea aprovechar su capacidad de cálculo masivamente paralelo, permitiendo así su aplicación en tiempo real. Un primer paso en la resolución de este problema consiste en realizar la implementación mediante la utilización de “técnicas de prototipado rápido”. En este sentido la aplicación informática Matlab ofrece una herramienta, el xPC-Target, que permite simular sistemas en tiempo real y que sirve como una herramienta apropiada para el proceso de prototipaje rápido de la solución. Con esta herramienta se ha desarrollado el prototipo de dos tipos de redes neuronales, ampliamente utilizadas: las redes MLP y las redes LVQ. Los prototipos obtenidos se han verificado satisfactoriamente en las labores de clasificación y localización de faltas en sistemas eléctricos de transporte de energía eléctrica. 17 2 1. INTRODUCCIÓN Las redes neuronales artificiales constituyen un campo multidisciplinar muy activo en el que confluyen investigaciones procedentes de muy diferentes áreas. Sus características de procesamiento distribuido, paralelo y adaptativo las convierten en las herramientas indicadas para tratar problemas en los que la información sea masiva, distorsionada, redundante e imprecisa. El prototipado rápido constituye un paso intermedio en el proceso de puesta en práctica de sistemas neuronales artificiales. Este se situa entre la simulación mediante software, que es la más usual y económica, y la implantación hardware que es la que mejor aprovecha la capacidad de cálculo paralelo de las redes neuronales artificiales. Las técnicas de prototipado rápido se basan en introducir metodologías de diseño que posibilitan realizar un modelado del problema con un nivel de abstracción superior, permitiendo reducir el ciclo de desarrollo del nuevo producto. Una herramienta para realizar estos procesos de prototipado rápido, es la ofrecida por Mathworks Inc denominada xPC Target. El xPC Target es una aplicación cliente/servidor que permite conectar los modelos creados en Simulink con sistemas físicos, y simularlos en tiempo real. Así, se puede realizar un prototipado rápido que permita probar los diseños realizados en el hardware destino, monitorizar en tiempo real los resultados obtenidos y cambiar, en función de estos, los distintos parámetros y variables de diseño. De entre las numerosas ventajas que proporciona la utilización del xPC Target caben destacar las siguientes [1]: • La tarea de programación de modelos complejos se facilita con la utilización de la herramienta Simulink • xPC Target funciona como un sistema operativo en tiempo real, lo que hace que el modelo actúe como un proceso real. • Para el funcionamiento en tiempo real del modelo no es necesaria una programación de bajo nivel de las tareas, ya que su generación se realiza automáticamente. 2. LAS REDES NEURONALES ARTIFICIALES. 2.1. Descripción de las redes neuronales artificiales Una red neuronal artificial está compuesta por un gran número de elementos de procesamiento altamente interconectados (neuronas o nodos) trabajando al mismo tiempo para la solución de problemas específicos. Estas conexiones se asemejan a las dendritas y los axones en los sistemas nerviosos biológicos en los cuales se inspiran [2]. Los nodos o neuronas se agrupan por capas, pudiendo distinguirse entre capa de entrada, capas ocultas y capa de salida. Cada una de las conexiones entre neuronas está asociada a un valor denominado peso sináptico. De este modo, la red admite unos valores de entrada xi proporcionando unos valores de salida y i , en función de las conexiones existentes entre neuronas, así como de los valores finales adoptados por los pesos. El funcionamiento interno de cada neurona se puede apreciar en la figura 1. 18 3 Figura 1. Modelo de neurona artificial Las entradas “xj“ están relacionadas con los pesos sinápticos “wj“ a través de la regla de propagación “H(t)”. Al valor obtenido de la regla de propagación se le aplica una función de activación o transferencia “f” dando como resultado la salida “yj“ correspondiente a la neurona. La regla de propagación más habitual suele ser una suma ponderada de las entradas y los pesos mientras que las funciones de transferencia pueden ser de tipo lineal, escalón o sigmoidea entre otras. Sobre esta arquitectura de red neuronal artificial se distinguen dos tipos de operación: el modo de aprendizaje y el modo de ejecución o de recuerdo. El modo de aprendizaje consiste en encontrar un conjunto de pesos sinápticos adecuado que permita a la red neuronal realizar el tipo de procesamiento deseado. El proceso de aprendizaje es normalmente iterativo, actualizándose los pesos de la manera anterior, una y otra vez, hasta que la red neuronal alcanza el rendimiento deseado. Una vez que el sistema ha sido entrenado, en la mayor parte de los modelos el aprendizaje se desconecta, los pesos y la estructura permanecen fijos, y la red neuronal queda dispuesta para procesar información, proporcionando una respuesta ante un patrón o vector de entrada. Es éste el modo recuerdo o de ejecución. 2.2. Tipos de redes neuronales artificiales: MLP y LVQ. A continuación se describen las características fundamentales de dos de las redes neuronales más empleadas. Estas características deberán ser tenidas en cuenta para poder realizar la emulación mediante el xPC Target. 2.2.1. Perceptron multicapa (MLP) El perceptrón multicapa resulta ser el modelo neuronal más popular y empleado en la práctica. Es una red unidireccional que consta de una capa de entrada, una capa de salida y un número indeterminado de capas ocultas. Las neuronas de cada capa están conectadas a todas las neuronas de la capa anterior La estructura de la red MLP se presenta en la figura 2. Matemáticamente la operación de una red MLP con una capa oculta y neuronas de salida lineales se expresa de la siguiente manera: z k = ∑ w ′kj ⋅ y j − θ′i = ∑ w ′kj ⋅ f ∑ w ji ⋅ x i − θ j −θ′i j j i 19 4 Figura 2. Estructura de la red MLP 2.2.2. Learning Vector Quantization (LVQ) Las redes LVQ son una variación de los mapas autoorganizados de Kohonen. Como se observa en la figura 3, la red tiene dos capas: la primera capa es la competitiva o autoorganizada y la segunda capa es lineal. Figura 3. Estructura de una red LVQ La capa autoorganizada clasifica las entradas como una red competitiva clásica, mientras que la capa lineal transforma los grupos o clases obtenidas en otras definidas por el usuario. Tanto en la capa competitiva como en la lineal, cada clase está asociada a una neurona. En la capa autoorganizada vence la neurona cuyo vector de pesos es más parecido al vector de entrada. Esta neurona tiene salida unidad, mientras que las demás tendrán salida cero. La similitud entre el vector de entradas y los pesos de cada neurona se calculan a partir de la distancia euclídea: d ( wij , x) = n ∑ (w ijk − xk ) k =1 donde wijk es el peso que une la neurona ij con la entrada k y xk es el elemento k del vector de entradas En la capa competitiva, cada clase está asociada a una neurona. Es frecuente denominar subclases a las clases de capa autoorganizada. La capa lineal transforma las clases (subclases) obtenidas por la capa competitiva en otras clases, definidas por el usuario. A estas clases se les suele llamar clases objetivo (target clases). Este paso se realiza mediante una matriz de pesos de dos dimensiones, W2, en la que las columnas representan las subclases y las filas representan las clases. Cada 20 5 columna de W2 tiene un solo elemento distinto de cero, aquel cuya posición corresponda con la clase a la que la subclase pertenece. Así pues: w ij2 = 1 si la subclase ‘i’ corresponde a la clase ‘j’ w ij2 = 0 si la subclase ‘i’ no corresponde a la clase ‘j’ La matriz tendrá un número de columnas igual o mayor que el número de filas. 3. MODELADO DE LAS REDES NEURONALES ARTIFICIALES PARA SU USO EN EL ENTORNO XPC TARGET El modelado de las redes neuronales en Simulink y la posterior generación del código que ha de ser descargado en el Target PC, constituyen la etapa inicial del proceso de prototipado rápido. Figura 4. Diagrama de flujo del proceso Partiendo de una red neuronal creada y entrenada mediante Matlab, es necesario incorporarla a los modelos de Simulink. Para ello MatLab dispone de la función “gensim”. Esta función genera automáticamente los bloques de simulación de la red neuronal y permite visualizarlos de forma gráfica. Tras incorporar dichos bloques al modelo de Simulink, se puede iniciar el proceso de compilado y transferencia a la máquina definida como Target. MatLab hace uso de la herramienta Real-Time Workshop (RTW) que genera código directamente a partir de modelos Simulink. Para el correcto funcionamiento de la aplicación y antes del comienzo del proceso de compilado y descarga del modelo, se deben especificar una serie de parámetros. Se debe definir en primer lugar el “System Target File”, cuya misión en indicar como se genera el código para la aplicación xPC Target. El archivo escogido se denomina “xpctarget.tlc” y es el punto de entrada para que el Target Language Compiler cree 21 6 el ejecutable. Es necesario seleccionar además un “Template Makefile”. Para crear el ejecutable, el generador de código utiliza plantillas de archivo makefile. RTW genera un makefile con el nombre del modelo que se quiere compilar a partir de la plantilla seleccionada. Este archivo makefile sirve de base para crear el ejecutable. La plantilla seleccionada se denomina “xpc_default.tmf”. El proceso es gobernado por una función escrita en código “.m” de alto nivel denominada “make_rtw”. Una vez definido estos parámetros, se inicia la generación del código y su posterior transferencia al Target PC empleando la función “rtwbuild”. El código creado se envía al Target PC utilizando bien el protocolo de transferencia de datos TCP/IP o el RS232. La figura 4 muestra el diagrama de bloques seguido en el proceso de prototipado 3.1. REDES MLP Para emplear redes Multilayer Perceptron en el entorno del xPC Target, no hay más que seguir los pasos indicados en el punto anterior. Estos conducen a la generación del código necesario y su posterior transferencia a la máquina definida como Target PC. Se observa que el proceso para establecer las condiciones de operación, que permitan realizar el prototipado rápido de redes MLP está formado por etapas sencillas de fácil implementación. 3.2. REDES LVQ La aplicación de los pasos establecidos en puntos anteriores, para el compilado y posterior descarga del código correspondiente a redes LVQ, presenta una serie de complicaciones que es necesario tratar. De lo contrario no se podrán establecer las condiciones de operación que permitan realizar el prototipado rápido. Los problemas surgen, en primer lugar, al utilizar la función “gensim” para crear el bloque con la red LVQ, que se ha de incorporar al modelo de Simulink. Se observa que dicho bloque no representa fielmente el funcionamiento de una red LVQ, ya que existen incompatibilidades con las dimensiones de los datos que manejan tanto la capa competitiva como la capa lineal. Todos estos inconvenientes hacen necesario replantearse la estructura del bloque generado por la función “gensim”, realizando los cambios necesarios en él, hasta que represente fielmente el funcionamiento de la red LVQ, cumpliendo siempre con la condición de que los elementos que lo formen, estén soportados por RTW. Se evitarán así problemas en el proceso de generación y descarga del código. Figura 5. Nueva estructura de la capa competitiva 22 7 La figura 5 representa la estructura de la capa competitiva. El conjunto de bloques remarcados en la figura realiza la misma función que el bloque “compet” original con la diferencia de que son soportados y compilados por RTW de Matlab. Además se ha eliminado el bloque “netsum”. La figura 6 muestra la estructura planteada para la capa lineal. El único cambio radica en la desaparición del bloque “netsum” para cumplir con la teoría de las redes LVQ, que dice que la señal de salida debe tener una dimensión igual al numero de neuronas de la capa lineal. Figura 6. Nueva estructura de la capa lineal 3.3. EJEMPLO DE IMPLEMENTACIÓN La metodología descrita en los puntos anteriores ha sido aplicada en un módulo emulador de faltas basado en redes neuronales artificiales. Dicho módulo utiliza redes MLP y LVQ, para emular faltas en líneas aéreas de transporte de energía eléctrica y obtener tanto su clasificación como su localización. Su funcionamiento se basa en la existencia de dos modelos. Uno que se ejecuta en el Host PC, que se encarga de obtener las medidas de tensión e intensidad efectuadas en la línea que se quiere monitorizar. Y otro que se ejecuta en el Target PC, que se encarga de procesar los datos de tensión e intensidad enviados por el Host PC para proporcionar la clasificación y la localización de la falta. El esquema de la aplicación se muestra en la figura 7. Figura 7. Esquema de la aplicación El usuario solo tiene que seleccionar las redes que desee que formen parte del modelo que se ejecuta en el Target PC. En el ejemplo, las redes utilizadas para realizar la clasificación son del tipo LVQ, mientras que las utilizadas para la localización de faltas son del tipo MLP. Es el módulo emulador el que se encarga de 23 8 dar los pasos descritos en el apartado anterior y de realizar los cambios necesarios en el caso de redes LVQ de forma automática y sin necesidad de intervención del usuario. 4. CONCLUSIONES Esta ponencia presenta el prototipado rápido de redes neuronales artificiales en el entorno del xPC Target de MatLab. Su configuración cliente/servidor la hace especialmente indicada para probar distintos tipos y configuraciones de redes neuronales, monitorizar los resultados en tiempo real y, en función de estos, modificar las técnicas y parámetros de aprendizaje de las redes neuronales empleadas. Por ello, se ha analizado el proceso que establece las condiciones de partida para el prototipado rápido. La aplicación del mismo a las redes Multilayer Perceptron, que son las redes más empleadas, no presenta ningún problema. Sin embargo no ocurre lo mismo con las redes Learning Vector Quantization. Para este tipo de redes se propone un nuevo modelo, basado en el bloque de Simulink obtenido por la función gensim, que supera las distintas dificultades y problemas que presentan la generación del código y la transferencia al Target Pc. AGRADECIMIENTOS. El trabajo presentado en esta ponencia forma parte de los proyectos DPI2003-02616 financiado por el MCYT y UPV 00142-345-AND-15300/2003 financiado por la UPV/EHU BIBLIOGRAFIA. The Mathworks Inc. xPC Target, User´s Guide, Version 2.0.1. September 2003 D. Burns and T.G. Sugar. Rapid Embedded Programming in the Mathworks Environment. Journal of Computing and Information Science in Engineering. Vol 2, 2002, pp 237-241 B.M. del Brío and A.S.Molina. Redes Neuronales y Sistemas borrosos: Introducción teórica y práctica. Ra-ma. Madrid. 1997 CORRESPONDENCIA. Javier Mazón Escuela Superior de Ingeniería de Bilbao Alameda de Urquijo s/n Telf. 94 601 4062 iepmasaj@bi.ehu.es 24