Download prototipaje rápido de redes neuronales mediante el

Document related concepts

Aprendizaje de cuantificación vectorial wikipedia , lookup

Perceptrón multicapa wikipedia , lookup

Propagación hacia atrás wikipedia , lookup

Perceptrón wikipedia , lookup

Neuroph wikipedia , lookup

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
[email protected]
24