cmacpar neurocontrolador paralelo modificado para control de
Transcription
cmacpar neurocontrolador paralelo modificado para control de
COMPUTACION Acta Científica Venezolana, 50: 167–172, 1999 CMACPAR NEUROCONTROLADOR PARALELO MODIFICADO PARA CONTROL DE PROCESOS Esmeralda Ramos y Rina Surós Centro de Computación Paralela y Distribuida, Facultad de Ciencias, Universidad Central de Venezuela. e-mail: eramos@reacciun.ve; rsuros@flynn.ciens.ucv.ve Recibido: 16/12/97 ; Revisado: 11/01/99 ; Aceptado: 23/02/99 RESUMEN: CMACPAR es un Neurocontrolador Paralelo orientado a sistemas que operan en tiempo real como los sistemas de control de procesos. Sus principales características son: un rápido algoritmo de aprendizaje, un reducido número de cálculos, alta capacidad de generalización, aprendizaje local y paralelismo intrínseco. Este tipo de neurocontroladores es muy utilizado en aplicaciones en tiempo real como las requeridas en refinerías, plantas hidroeléctricas, fabricas, etc. En este trabajo se presenta el análisis y la implementación paralela de un esquema modificado del Modelo Cerebelar CMAC para el mapeo de espacios n-dimensionales mediante la utilización de un algoritmo paralelo de granularidad media. La modificación propuesta al esquema de manejo de memoria permite una reducción significativa de los tiempos de entrenamiento y de la cantidad de memoria requerida. Palabras clave: Neurocontroladores, CMAC, control de procesos, redes cerebelares paralelas. CMACPAR: MODIFIED PARALLEL NEUROCONTROLLER FOR CONTROL PROCESSES ABSTRACT: CMACPAR is a Parallel Neurocontroller oriented to real time systems as for example Control Processes. Its characteristics are mainly a fast learning algorithm, a reduced number of calculations, great generalization capacity, local learning and intrinsic parallelism. This type of neurocontroller is used in real time applications required by refineries, hydroelectric centers, factories, etc. In this work we present the analysis and the parallel implementation of a modified scheme of the Cerebellar Model CMAC for the n-dimensional space projection using a mean granularity parallel neurocontroller. The proposed memory management allows for a significant memory reduction in training time and required memory size. Key Words: Neurocontrollers, CMAC, control processes, parallel cerebellar network. 1 INTRODUCCION Los neurocontroladores (redes neuronales usadas para el aprendizaje de control de procesos) emergen como una alternativa de los sistemas de control en tiempo real. Un tipo particular de neurocontrolador es el modelo CMAC (Cerebellar Model Arithmetic Computer) propuesto por James Albus1 . El modelo CMAC basa su funcionamiento en el cerebelo y emula la forma en como este procesa la información. Se caracteriza por un rápido algoritmo de aprendizaje, un reducido número de cálculos, alta capacidad de generalización, aprendizaje local y paralelismo intrínseco. El modelo CMAC ha sido probado experimentalmente5 mostrando por lo general un comportamiento satisfactorio en lo referente al tiempo necesario para realizar el entrenamiento, la cantidad de memoria utilizada para la Base de Conocimiento y la capacidad de generalización al ser interrogado. Con la finalidad de mejorar el comportamiento del modelo CMAC respecto a la cantidad de tiempo de entrenamiento requerido para aplicaciones en tiempo real, así como a la optimización de la cantidad de memoria necesaria para almacenar la base de conocimiento, se propone una implementación paralela del modelo CMAC aplicando un esquema de reducción de memoria particular8 . Se presenta en la Sección 2 una descripción del mo- delo CMAC, así como su funcionamiento y el esquema de reducción de memoria propuesto. En la Sección 3 se muestra el análisis de independencia de datos y/o procesos del modelo CMAC que da origen al esquema paralelo implantado y se describe el ambiente de multiprogramación utilizado para la implementación. En la Sección 4 se presentan, analizan y comparan los resultados obtenidos de las implementaciones secuencial y paralela. Para finalmente mostrar las conclusiones obtenidas en la Sección 5. 2 EL MODELO CMAC El modelo CMAC es considerado un dispositivo que transforma un vector de entrada, en un vector de salida asociado, con la característica de que sólo un pequeño subconjunto de la base de conocimiento (pesos) interviene en el cálculo de la salida5 . El modelo CMAC se define formalmente como una serie de mapeos que tratan de emular los procesos llevados a cabo en el cerebelo. Estos mapeos se especifican a continuación: S)M )A)p donde: S representa un vector de entrada de la forma S s1 ; s2 ; : : : ; sn . ( ) = 168 Ramos y Surós Figura 1. Esquema de reducción de memoria. M conjunto de funciones de cuantificación utilizadas para decodificar a S . A conjunto de pesos definidos por el conjunto M p es el vector de salida calculado. El mapeo S ) p (si ) mi ) posee todas las características de una función p h S . Un conjunto de L operaciones de CMAC sobre las mismas entradas produce el mapeo H : S ) P ó P H S donde H : h1 ; h2 ; : : : ; hl 1 . Para el mapeo S ) M se define mi como un conjunto de funciones de cuantificación asignadas para transmitir los valores correspondientes de la variable si ; y se define mi mi , cuyos elementos son máximamente estimulados por un valor particular de si (si ) mi ). El tamaño de cada función de cuantificación se denomina factor de generalización (c). En el mapeo M ) A, se determina a partir del conjunto mi , el conjunto de pesos A que intervendrá en el cálculo de la salida p (Dim A = factor de generalización c). El mapeo A ) p consiste en la suma de los pesos identificados por el conjunto A para obtener la salida p. Esto indica que los pesos necesarios para el cálculo de p están localizados en "clusters"definidos por el conjunto A , lo que lo convierte en un aprendizaje local. El valor de p obtenido se compara contra un valor esperado y los pesos que participaron en el cálculo, son corregidos de ser necesario. La corrección de los pesos se realiza con la Regla Delta, como se muestra en la siguiente expresión: = ( ) = ( ) Winuevo donde =W iviejo + w W = p jA pj i i i i donde p es el vector de salida deseado, p es el vector de salida calculado y representa la tasa de aprendizaje. 2.1 Requerimientos de memoria del modelo CMAC El modelo CMAC utiliza para el almacenamiento del con- Figura 2. Paralelismo en las componentes del vector de salida P. junto de pesos A un esquema de memoria distribuida. La cantidad de localizaciones de memoria necesarias para almacenar una función de n componentes, cada una con una resolución r, viene dada por la expresión c r=c n , donde c es el factor de generalización y r=c indica la cantidad de funciones de cuantificación para cada variable. Para este modelo es posible obtener mayores ahorros en los requerimientos de memoria haciendo uso de esquemas de reducción de memoria como por ejemplo, técnicas de codificación Hashing, en la selección de las localizaciones (pesos) del conjunto A . Se propone un esquema de reducción de memoria que consiste en mapear cada componente del vector de entrada en una memoria denominada MemHashing (la cual almacenará los pesos que se deben sumar para obtener una salida p) según el siguiente esquema: a. La memoria MemHashing se organiza como un vector de r c posiciones, donde cada posición se corresponde con las funciones de cuantificación definidas para cada una de las componentes de entrada, ver Figura 1. Habrán tantos vectores MemHashing como componentes tenga el vector de entrada. b. Al presentar al modelo un patrón de entrenamiento, cada una de las componentes de entrada se cuantifican para determinar el conjunto de funciones que le corresponden (Mapeo S ) M ). Una vez identificadas, se conocerán los pesos que deben sumarse para obtener una salida (Mapeo M ) A). Estos pesos se ubican en el vector MemHashing haciendo corresponder la identificación de cada función de cuantificación determinada, con la respectiva posición en el vector. Así, los mapeos S ) M y M ) A se solapan en un único mapeo S ) A. De esta manera el modelo original propuesto por Albus2 se modifica. c. Al sumar el contenido de las posiciones ubicadas en el vector, se obtiene la salida p (Mapeo A ) p). La eficiencia de este esquema fue probada por E. Ramos8 . Los resultados muestran que la reducción de memoria alcanzada es del 30%. ( ) + 1 169 CMACPAR: neurocontrolador paralelo 3 CMAC EN PARALELO Los resultados mostrados por Miller5 y Thompson9 ponen de manifiesto el buen rendimiento del modelo CMAC en lo referente a los tiempos de entrenamiento. Sin embargo las aplicaciones del tipo control de procesos tienen exigencias de respuesta en tiempo real. Explotaremos al máximo el paralelismo intrínseco del modelo y optimizaremos la cantidad de memoria necesaria para el almacenamiento de la Base de Conocimiento utilizando el esquema de reducción de memoria propuesto en la Sección 2 en la implementación paralela que se propone. A continuación veamos un análisis de la independencia de datos y/o procesos del modelo3;6 . 3.1 Análisis de independencia de datos El mapeo S ! p realizado por el modelo CMAC se proyecta sobre un espacio unidimensional. Sin embargo, cuando es necesario generar un vector P n-dimensional como salida, n redes CMACs deben realizar el mapeo S ! pi . De esta manera cada CMAC aprende un comportamiento diferente, el cual viene expresado por pi hi S , i ; : : : ; n; donde pi representa la i-ésima componente del vector P . De lo anterior se desprende que la obtención de cada componente del vector P es independiente. Esto sugiere utilizar como técnica paralela el Particionamiento del Rango. Se propone el esquema de paralelismo en las componentes del vector de salida P . Lo que se representa como: 8 m = ( ) =1 R > > < R R !R = > > : m ! ! m n .. . ! R m donde 2 6 P =6 4 p1 p2 pn 3 p1 p2 7 .. . pn 7 p 5 i 2 R: Este esquema paralelo requiere un conjunto de procesadores operando en cada uno de ellos una CMAC secuencial. Cada CMAC genera una componente pi del vector de salida P , P 2 Rn , una vez suministrado a cada CMAC el mismo vector de entrada S (ver Figura 2). Cada red es entrenada con su propio conjunto de entrenamiento, y una copia de todos los vectores de entrada S ; de esta manera cada CMAC puede aprender un comportamiento discreto distinto. En este esquema el número de CMACs requerido es igual a la dimensión del vector de salida P . El esquema propuesto presenta un tipo de granulariad media que resulta idóneo para el ambiente de multiprogramación disponible: máquina PARSYTEC MultiCluster3 DE (MC-3 DE)7 . Este es un computador MIMD con Memoria Distribuida, donde la comunicación entre los procesadores se lleva a cabo a través de una red de interconexión, posee ocho (8) Transputers, cada uno con 4 MB de memoria RAM. El computador anfitrión es una estación Sun Sparc Station 2. El equipo utilizado se encuentra en el Centro de Computación Paralela y Distribuida (CCPD) de la Facultad de Ciencias de la U.C.V. 4 COMPARACION DE CMAC PARALELO Y SECUENCIAL En esta Sección se presentan los resultados obtenidos de la implementación del esquema de paralelismo en las componentes del vector P (esquema de granularidad media), así como su comparación con los resultados de la implementación del esquema secuencial4 . Para el entrenamiento se seleccionaron funciones que cumplen con las características de ser continuas en todo el dominio, y no polinómicas2;5 . Esto se debe al aprendizaje de tipo local que presenta el modelo, el cual utiliza la regla delta para asegurar convergencia a un mínimo local, siempre y cuando el dominio de interés se cubra totalmente. Para verificar el comportamiento del modelo se selecciona un conjunto de funciones que constituyen los Vectores Función (VF) que a continuación se definen: a. Vector Función NÆ 1. Sea f Rm ! Rn : fi (x) = Y m j =1 sen [20 80] con xj 2 ; . b. Vector Función NÆ 2. Sea f fi (x) = sen [50 100] con xj 2 ; . c. Vector Función NÆ 3. Sea f fi (x) = [50 100] sen Pm j =1 90+ xj i xj 179 + i :R !R m P =1 x ! m j n j 50 + 5i :R !R P =1 m 2 cos n m j 90+ xj i con xj 2 ; . Los conjuntos de entrenamiento y "recall"fueron generados utilizando el método de Entrenamiento Aleatorio10 que consiste en generar uniformemente los puntos sobre el dominio. Cada conjunto consta de sesenta (60) patrones que caracterizan de manera puntual a cada coordenada (función) dentro del VF correspondiente. 4.1 Resultados obtenidos a partir del entrenamiento El entrenamiento con los conjuntos generados aleatoriamente se llevó a cabo variando los siguientes parámetros: a. Número de componentes del vector S ;:::; b. Constante de Aprendizaje : . 6 c. Tolerancia del orden d. Número de Procesadores P ;:::; =09 1 10 =2 8 =2 10 170 Ramos y Surós Figura 3. Tiempo de entrenamiento secuencial versus paralelo, para VF 1, VF 2 y VF 3 respectivamente. Figura 4. Aceleración promedio por número de componentes para VF 1, VF 2 y VF 3 respectivamente. Figura 5. Eficiencia promedio por número de componentes para VF 1, VF 2 y VF 3 respectivamente. Figura 6. Porcentaje de ahorro promedio por número de componentes en el tiempo de entrenamiento para VF 1, VF 2 y VF 3 respectivamente. 171 CMACPAR: neurocontrolador paralelo Figura 7. Errores Máximo y Promedio cometidos durante la fase de "recall". Para comparar el rendimiento durante el entrenamiento, tanto del esquema secuencial como el del paralelo, se tomaron en consideración los valores de Tiempo Secuencial y Tiempo Paralelo. El comportamiento del esquema implementado durante el entrenamiento fue similar para los tres (3) Vectores Función. Los resultados experimentales que se realizaron para los Vectores Función NÆ 1, NÆ 2 y NÆ 3, , se discuten a continuación con m i.- En la Figura 3 se comparan las gráficas correspondientes a tiempos de entrenamiento, del esquema secuencial versus el esquema paralelo, para los Vectores Función . El tiempo paralelo fue muNÆ 1, NÆ 2 y NÆ 3, con m cho menor que el tiempo secuencial, lo que se evidencia al incrementar el número de procesadores (equivalente al número de CMACs) y por lo tanto la dimensión del rango del Vector Función. ii.- Con respecto a la aceleración, se observa un comportamiento superlineal a medida que se incrementa el número de procesadores, esto evidencia la propiedad del esquema paralelo de ser infinitamente escalable. En la Figura 4, se muestran, para cada Vector Función, las aceleraciones promedio por número de componente. iii.- El hecho de que las eficiencias de todas las experimentaciones se encuentren muy cercanas a uno, indica que la implementación paralela es altamente eficiente. Esto puede apreciarse en la Figura 5. iv.- A medida que se incrementa el número de procesadores (el número de CMACs) el ahorro es mayor; lo que refleja el excelente comportamiento del esquema paralelo. Esto puede apreciarse en la Figura 6, para los tres VF respectivamente. En resumen, los resultados obtenidos a partir del entrenamiento indican la óptima calidad del esquema paralelo implementado, acelerando de manera superlineal el esquema secuencial, ahorrando entre un 50% y 90% el tiempo para el entrenamiento, y corroborando con valores muy cercanos a uno (1), la notable eficiencia del esquema. =5 =5 4.2 Resultados obtenidos a partir del "recall" Para comprobar la capacidad de generalización, una vez concluido el entrenamiento se interrogó a cada CMAC con un conjunto de "recall"diferente al utilizado para la fase de entrenamiento. Los vectores que conforman estos conjuntos, se generaron de manera tal que no pertenecieran a las vecindades de los vectores de entrenamiento, pero sí al espacio de entradas. Para ello se introdujo un porcentaje de ruido al momento de su generación. Los resultados obtenidos durante el interrogatorio fueron iguales tanto para el esquema paralelo como para el esquema secuencial, lo que evidencia que la calidad del aprendizaje es similar para ambos esquemas, es decir, alcanzan el mismo grado de generalización. En la Figura 7, se muestran las curvas de comportamiento de los errores Máximos y Promedios cometidos durante la fase de "recall"para el Vector Función NÆ 1. Para los otros dos Vectores Función el comportamiento de los errores es similar. La curva de Error Promedio tiene el comportamiento esperado: a medida que se incrementa el número de CMACs, el Error Promedio tiene un comportamiento descendiente. La curva de Error Máximo cometido entre la salida esperada y la calculada por la red, también presenta un comportamiento globalmente descendiente, aunque con una trayectoria irregular. Los errores promedios cometidos entre las salidas esperadas y calculadas 2), tanto en el caso secuencial como en el son del O( paralelo. 10 5 CONCLUSIONES Los resultados obtenidos de la experimentación, sobre el estudio y la implementación paralela de un esquema modificado del Modelo Cerebelar CMAC, muestran que es viable construir un sistema paralelo basado en un neurocontrolador. El modelo cerebelar CMAC propuesto por James Albus, constituye una red neuronal de funcionamiento simple gracias a la ausencia de capas en su estructura, lo cual hace que el algoritmo de entrenamiento sea muy rápido, esto convierte a CMAC en un neurocontrolador eficiente para ser utilizado en situaciones que requieren respuestas inmediatas, como es el caso de los sistemas de control de procesos en tiempo real. Al mismo tiempo, la característica del modelo de ser altamente paralelo, permite explotar paralelismo de rango. Los experimentos mostraron que el modelo se comporta bastante bien para una constante de aprendizaje muy cercana a uno (1) para los tres (3) Vectores Función. El esquema paralelo implementado puede catalogarse como excelente, ya que presenta una eficiencia máxima y una aceleración superlineal, convirtiéndolo en un algoritmo infinitamente escalable. Los errores Máximo y Promedio cometidos durante la fase de "recall"presentan el comportamiento esperado: globalmente descendientes. Este trabajo permitió generar una implementación novedosa del modelo cerebelar CMAC basado en un esquema de manejo de memoria, que disminuye significativamente la cantidad de tiempo requerido para el entrenamiento mediante el uso de herramientas paralelas, reduce la can- 172 Ramos y Surós tidad de posiciones de memoria necesarias para el almacenamiento de los pesos y además elimina un paso en el conjunto de mapeos realizados por el modelo. REFERENCIAS 1. Albus, J. A Model of the Brain for Robot Control. Part 1: Defining Notation. BYTE 4(6): 10-34, 1979. 2. Albus, J. A Model of the Brain for Robot Control. Part 2: A Neurologycal model. BYTE 4(7): 54-84, 1979. 3. Chaudhrui, P. Parallel Algoritms design and analysis. Advances in computer sciences. Series Richard Brent Editor, Prentice Hall, 1992. 4. Jimenez, S. Estudio Comparativo de Diferentes Esquemas de Reducción de Memoria en el Modelo Cerebelar CMAC. Trabajo Especial de Grado, Escuela de Computación, Facultad de Ciencias, UCV. Septiembre, 1995. 5. Miller, W., Glanz, F. and Kraft, L. CMAC: An Associative Neural Network Alternative to Backpropagation. Proceedings of the IEEE 78(10): 1564-1573, 1990. 6. Nordstron, T. and Svensson, B. Using and Design Massively Parallel Computers for Artificial Neural Networks. Journal of Parallel and Distributed Computing 14: 260-283, 1992. 7. Parsytec Computer GmbH. Manuales de Parix Documentation. Release 1.1, Septiembre, 1992. 8. Ramos, E. El modelo CMAC como una alternativa para el control de procesos. Trabajo de Ascenso. Escuela de Computación. Facultad de Ciencias. UCV. Mayo, 1995. 9. Thompson, D. Neighborhood Sequential and Random Training Techniques for CMAC. IEEE 6(1): 198-201, 1995. 10. Wong, Y. and Sideris, A. Learning Convergen-ce in the Cerebellar Model Articulation Controller IEEE Transactions on Neural Networks 3(1): 116, 1992.