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.