Ingeniería Electrónica, Automática y Comunicaciones, Vol. XXVI, No. 1, 2005 SISTEMAS EXPERTOS La inteligencia computacional en la identificación de sistemas M. Irízar Departamento de Automática y Computación, Facultad de Ingeniería Eléctrica, Instituto Superior Politécnico José Antonio Echeverría, CUJAE, Ciudad de La Habana, Cuba. RESUMEN / ABSTRACT Se describen algunas técnicas basadas en los sistemas biológicos y la inteligencia humana para el desarrollo de modelos de sistemas dinámicos. Entre dichas técnicas se plantean las redes neuronales artificiales, la lógica difusa y los algoritmos evolutivos y la forma en que pueden ser aplicadas a la identificación de sistemas. Como resultado del trabajo, se establece una comparación sobre la factibilidad de las técnicas analizadas en la identificación de sistemas y las tendencias actuales de su uso. Palabras clave: identificación de sistemas, inteligencia computacional, redes neuronales, lógica difusa, algoritmos evolutivos. In this paper some techniques based on biological systems and human intelligence to develop models of dynamical systems are described. Among these techniques neural networks, fuzzy logic and evolutionary algorithms are outlined, as well as the way to be applied to systems identification. As a result of the work, a comparison settles down about the feasibility of use of the analyzed techniques in systems identification and the current tendencies of their use. Key words: systems identification, computational intelligence, neural networks, fuzzy logic, evolutionary algorithms. Recibido: marzo 2004 Aprobado: julio 2004 INTRODUCCIÓN La identificación de sistemas dinámicos a partir de mediciones de entrada-salida es un tópico importante de investigación científica con un rango amplio de aplicaciones prácticas.1,2 Un inconveniente de la mayoría de los métodos de modelación estándar es que no pueden hacer un uso efectivo de información extra, tal como el conocimiento y la experiencia de los ingenieros y operadores, lo cual es a menudo impreciso y de naturaleza cualitativa. El hecho de que los humanos sean frecuentemente capaces de manipular tareas complejas con una incertidumbre significativa ha estimulado la búsqueda de paradigmas de modelación y control alternativos. Se han introducido las llamadas metodologías de modelación y control inteligente que emplean técnicas motivadas por los sistemas biológicos y la inteligencia humana para el desarrollo de modelos y controladores para sistemas dinámicos. Estas técnicas emplean esquemas de representación usando, por ejemplo, el lenguaje natural, reglas o modelos cualitativos, y poseen métodos formales para incorporar información relevante extra. Las redes neuronales artificiales poseen capacidades de aprendizaje y adaptación, imitando el funcionamiento de los sistemas de neuronas biológicas en un nivel simplificado. La modelación y el control difusos son ejemplos típicos de técnicas que usan el conocimiento humano y los procesos deductivos. Los algoritmos evolutivos, que se inspiran en la teoría de la evolución y la herencia, constituyen también una herramienta Ingeniería Electrónica, Automática y Comunicaciones, 1/2005 La red más simple consta de una capa de neuronas. Las redes más complejas o multicapas generalmente ofrecen mayores capacidades computacionales, y se han desarrollado algoritmos para su entrenamiento, de modo que al aplicar un conjunto de entradas se produce un conjunto de salidas deseadas. Este se lleva a cabo aplicando secuencialmente vectores de entrada, mientras se ajustan los pesos de la red de acuerdo con un procedimiento predeterminado. importante para este tipo de tareas. El uso de estas técnicas en constante desarrollo y con tendencia a la fusión, con el objetivo de aprovechar las potencialidades de cada una, ha hecho posible la solución de problemas que antes de su surgimiento se consideraban prácticamente insolubles con una calidad ascendente. IDENTIFICACIÓN MEDIANTE REDES Identificación de sistemas Debido a las limitaciones de las técnicas clásicas de modelación se realizan intentos por evitar un modelo matemático restrictivo. La capacidad de las redes neuronales de aprender motiva su elección para la modelación e identificación de sistemas dinámicos complejos. Existen varios tipos de redes neuronales,3,4 pero en este caso las más utilizadas han sido las redes de retropropagación y las redes recurrentes. NEURONALES Las redes neuronales artificiales se componen de elementos que funcionan de forma similar a las funciones más elementales de la neurona biológica, mostrando características del cerebro. Cada entrada aplicada representa la salida de otra neurona y se multiplica por un peso, análogo a la fuerza sináptica de la neurona biológica, y todas las entradas pesadas se suman para determinar el nivel de activación de la neurona (figura 1). La señal SUMA es procesada por una función de activación para producir la señal de salida de la neurona (SALIDA). Esa función es normalmente la sigmoide, expresada matemáticamente como F(x) = 1/(1+e -x ), o la tangente hiperbólica, siendo F(x) = tanh(x). Estas redes poseen la capacidad de aprender a través de ejemplos, aún sin conocimiento previo, y pueden aproximar correctamente cualquier función no lineal continua, así como modificar su comportamiento en respuesta al entorno. Dado un conjunto de entradas, pueden autoajustarse para producir respuestas consistentes. Una vez entrenada, la respuesta de una red puede ser insensible a pequeñas variaciones en su entrada, habilidad que le permite reconocer patrones a pesar del ruido y la distorsión que se producen en un ambiente real, es decir, la red neuronal puede generalizar automáticamente como resultado de su estructura y producir salidas correctas partiendo de entradas imperfectas. • Redes de retropropagación Las redes de retropropagación feedforward multicapas fueron las primeras que se usaron para la identificación, a pesar de sus limitaciones.5 La red de retropropagación se basa en el principio de corrección del error. El algoritmo comienza asignándole un conjunto aleatorio de pesos a la red, la que ajusta sus pesos cada vez que se le aplica un par de entrada salida. Cada par requiere dos pases, uno hacia delante y otro hacia atrás. El pase hacia delante incluye la presentación de una muestra de entrada a la red y la posibilidad de que la activación fluya hasta que alcanza la capa de salida. Durante el pase hacia atrás la salida de la red después del pase explicado se compara con la salida objetivo y se calcula el error. Los pesos pueden ser ajustados para reducir estos errores. El aspecto crítico en la aplicación de las redes neuronales artificiales es la selección de la arquitectura de la red, es decir, el número y tipo de neuronas, la colocación de los lazos de realimentación y el desarrollo de un algoritmo de entrenamiento adecuado. Para la identificación y el control de sistemas dinámicos se requiere que la red usada también sea dinámica. Si se conoce el orden del sistema todas las entradas y salidas pasadas del sistema a ser modelado pueden ser conectadas como entradas a la red. Esto facilitará el aprendizaje de la red neuronal, ya que deben hacerse menos transformaciones para capturar la dependencia de las salidas pasadas con las entradas y salidas pasadas. Una generalización del modelo de regresión, en la que se asume la relación dinámica no lineal sería:6 W X1 X X2 • • • W1 W2 ? SUMA=XW Wn y(t) = f[y(t-1), y(t-2), ... , y(t-n), u(t), u(t-1), ..., u(t-m)] ...(1) Xn Este sistema puede representarse mediante la red de tres capas mostrada en la figura 2, que puede entrenarse mediante el método de retropropagación, con la ventaja de que se dispone de un procedimiento de identificación de mayor generalidad, aplicable teóricamente a cualquier tipo de sistema dinámico. No existe un procedimiento teórico que permita definir el número de neuronas en cada capa, pero la selección del número de SUMA = x1 w1 + x2 w2+ ... + xn wn Figura 1 Neurona artificial. 36 La inteligencia computacional en la... neuronas de la capa de entrada es equivalente a la selección del orden de un modelo de regresión. El número de neuronas de la capa de salida es bastante arbitrario, en los casos de procesos monovariables basta una sola neurona, pero es posible incluir adicionalmente varias predicciones de salida. El número de neuronas de la capa oculta, generalmente es una parte del número de neuronas de la capa de entrada, por ejemplo la mitad, pero su número preciso debe seleccionarse adecuadamente en cada caso particular. IDENTIFICACIÓN MEDIANTE LÓGICA DIFUSA Los sistemas difusos son funciones matemáticas flexibles que pueden aproximar otras funciones o datos de mediciones con una exactitud deseada. Comparados con otras técnicas de identificación ya explicadas como las redes neuronales artificiales, los sistemas difusos proporcionan una representación más transparente del sistema en estudio, lo cual se debe principalmente a la interpretación lingüística posible en forma de reglas. La estructura lógica de las reglas facilita la comprensión y análisis del modelo de manera semicualitativa, cercana al modo en que las personas razonan acerca del mundo real. y(t-n) y(t-n+1) y(t) ... y(t-1) Construcción de modelos difusos Dos fuentes comunes de información para la construcción de modelos difusos son el conocimiento previo, que como se mencionó puede ser de naturaleza aproximada, y los datos de mediciones del proceso. La adquisición o ajuste de modelos difusos a través de datos se denomina identificación difusa. Las dos formas de integrar el conocimiento y los datos en un modelo difuso son:9 • El conocimiento del experto expresado en forma verbal se traduce en una colección de reglas si-entonces. De esta forma se crea una estructura de modelo. Los parámetros de la estructura pueden ser ajustados usando datos de entradasalida mediante algoritmos que explotan el hecho de que, a nivel computacional, un modelo difuso puede ser visto como una estructura en capas similar a las redes neuronales artificiales, a la cual pueden ser aplicados algoritmos de aprendizaje. Esta variante se conoce como modelación neurodifusa. • No se usa conocimiento previo para formular las reglas, y se construye un modelo difuso a partir de los datos. Se espera que las reglas extraídas y las funciones de membresía puedan proporcionar una interpretación posterior del comportamiento del sistema. Un experto puede confrontar esta información con su propio conocimiento, modificar las reglas o suprimir algunas y diseñar experimentos adicionales para obtener más datos informativos. Estas técnicas pueden combinarse según la aplicación particular. En los modelos difusos, la selección de la estructura incluye lo siguiente: y(t+1) u(t-m) ... ... y(t+2) ... u(t) y(t+m) Figura 2 Representación del modelo de regresión generalizado. • Redes recurrentes La principal desventaja de la red feedforward multicapa es que si no se conoce exactamente el orden del sistema se requiere un número grande de pares de datos para entrenar la red. Debido a su estructura, las redes recurrentes no presentan estas desventajas, pudiendo clasificarse como redes total o parcialmente recurrentes.7 Las redes recurrentes tienen al menos un lazo de realimentación. En las redes parcialmente recurrentes, la estructura de la red principal es feedforward; las conexiones feedback s e establecen por un conjunto de unidades de contexto y no son entrenables. Las unidades de contexto memorizan algunos estados pasados de las unidades ocultas y solo las salidas de la red dependen de un conjunto de estados previos y de la entrada actual de la red. Esta es la razón por la cual las redes neuronales recurrentes tienen características de memoria dinámica. Las más comúnmente usadas son la red Jordan, con realimentación de la capa de salida a la capa de entrada y la red Elman, con realimentación de la capa oculta a la capa de entrada.8 Usando estas redes han sido identificados exitosamente sistemas de una entrada y una salida (SISO), así como de varias entradas y varias salidas (MIMO). La forma convencional de entrenar una red es tomar datos del proceso y procesarlos fuera de línea, reciclándolos varias veces (épocas de entrenamiento) hasta que se logra que los errores de predicción de la red sean suficientemente pequeños. Otra estrategia posible es el llamado entrenamiento en línea, que consiste en conectar la red al proceso en forma permanente o durante períodos prolongados y realizar el entrenamiento en tiempo real, a partir de las mediciones de entrada y salida del proceso. • Variables de entrada y salida En sistemas complejos, no siempre está claro qué variables deberían ser usadas como entradas al modelo. En el caso de sistemas dinámicos, también tiene que estimarse el orden del sistema. El conocimiento previo, la visión sobre el comportamiento del proceso y el propósito de la modelación son las fuentes de información típicas para esta opción. 37 Ingeniería Electrónica, Automática y Comunicaciones, 1/2005 • Estructura de las reglas cada variable Esta opción determina el nivel de detalle del modelo. Una función de pertenencia es una relación que asocia cada elemento de un conjunto con su grado de pertenencia. Pueden utilizarse diferentes funciones de pertenencia, tales como triangulares, trapezoidales y gaussianas. El propósito de la modelación y el detalle del conocimiento disponible también influyen en esta opción. Se supone que los datos de identificación están bien distribuidos sobre el rango de interés y deberían ser generados por excitación persistente. Sin embargo, en la práctica la mayoría de los procesos industriales solo pueden ser suavemente perturbados alrededor de un punto de operación. Esto resulta en datos de identificación que no contienen suficiente información sobre el comportamiento transitorio del sistema no lineal. Por tanto, las técnicas de identificación guiada solo por los datos pueden producir modelos no realistas en términos de características de estado estable, comportamiento local y valores de parámetros no confiables. Este problema puede ser resuelto incorporando conocimiento previo en el método de identificación que limite los parámetros del modelo difuso. • Tipo de mecanismo de inferencia, operadores conectivos, IDENTIFICACIÓN MEDIANTE ALGORITMOS método de defuzificación Estas opciones están limitadas por el tipo de modelo difuso (Mamdani, TS). Dentro de estas restricciones se mantienen algunas libertades, por ejemplo, para la selección de los operadores de conjunción. Después que se fija la estructura, el desempeño de un modelo difuso puede ser sintonizado ajustando sus parámetros. Los parámetros ajustables de los modelos lingüísticos son los parámetros del antecedente y el consecuente de las funciones de membresía (determinar su forma y posición) y las reglas (determinar el mapeo entre las regiones difusas del antecedente y el consecuente). EVOLUTIVOS Esta opción incluye el tipo de modelo (lingüístico, singleton, Takagi-Sugeno: TS). Aspectos importantes son el propósito de la modelación y el tipo de conocimiento disponible. • Número y tipo de funciones de pertenencia o membresía para El término algoritmo evolutivo (también conocido como computación evolutiva) se utiliza para designar un conjunto de técnicas que basan su funcionamiento en la emulación de los procesos naturales de evolución, así como los mecanismos de la herencia. El algoritmo mantiene un conjunto de soluciones potenciales a un problema que son usadas para producir nuevas soluciones potenciales mediante la aplicación de una serie de operadores, los cuales actúan sobre algunas soluciones que han sido seleccionadas por su factibilidad respecto al problema enfrentado. Cada ciclo de transformación + selección constituye una generación. Se espera que, tras cierto número de generaciones, el mejor individuo esté razonablemente próximo a la solución buscada. Es decir, se trata de desarrollar mecanismos estocásticos de búsqueda en paralelo con los que mejorar las técnicas clásicas de búsqueda determinista cuando estas no sean adecuadas o no existan. Para que la mejora sea efectiva, tales mecanismos deben estar dirigidos, de ahí la necesidad de introducir un procedimiento de selección. Para poder emular suficientemente el proceso de evolución un algoritmo evolutivo debe disponer de:10,11,12 1. Una población de posibles soluciones debidamente representadas a través de individuos. 2. Un procedimiento de selección basado en la aptitud de los individuos. 3. Un procedimiento de transformación, esto es, de construcción de nuevas soluciones a partir de las disponibles actualmente. Diseño de modelos difusos basado en el conocimiento Para diseñar un modelo difuso basado en el conocimiento del experto, pueden seguirse los siguientes pasos: 1. Seleccionar las variables de entrada y salida, la estructura de las reglas y los métodos de inferencia y defuzificación. 2. Decidir el número de términos lingüísticos para cada variable y definir las correspondientes funciones de pertenencia. 3. Formular el conocimiento disponible en términos de reglas difusas si-entonces. 4. Validar el modelo (por ejemplo, usando datos). Si el modelo no alcanza el desempeño deseado, repetir los anteriores pasos de diseño. El éxito de este método depende en gran medida del problema a resolver y de la extensión y calidad del conocimiento disponible. Para algunos problemas, el diseño basado en el conocimiento puede conducir rápido a modelos útiles, mientras para otros puede ser un procedimiento ineficiente y con gran consumo de tiempo (especialmente el ajuste manual de los parámetros del modelo). Por tanto, es útil combinar el diseño basado en el conocimiento con un ajuste guiado por los datos de los parámetros del modelo. Operadores básicos de un algoritmo evolutivo El algoritmo evolutivo mantiene una población de estructuras que evolucionan de acuerdo con reglas de selección y otros operadores, tales como la recombinación y la mutación. La función de estos operadores se resume a continuación: Selección: Determina qué soluciones tendrán o no la oportunidad de reproducción, asignándole a los individuos una mayor o menor probabilidad de descendencia y dirigiendo el proceso evolutivo hacia áreas específicas del espacio de búsqueda. Diseño de modelos difusos guiado por datos Una forma de diseñar sistemas difusos a partir de pares de entrada-salida consiste en especificar la estructura del sistema, en la que algunos de los parámetros quedan sin especificar y determinar sus valores de acuerdo con N pares de datos de entrada salida {(xi, yi)i =1, 2, ..., N} disponibles. 38 La inteligencia computacional en la... Recombinación: Este operador requiere de dos o más soluciones padres que se combinan para generar la descendencia. Mutación: Modifica una sola solución en cada actuación, y su probabilidad de ocurrencia depende del tipo de algoritmo evolutivo. 2. Seleccionar la función o índice que indicará la fuerza de cada posible solución. Es frecuente utilizar como función de evaluación o función criterio, que indica el índice del grado de validez de un modelo, el error cuadrático entre las salidas reales (y) y las salidas propuestas por el mismo (ym); este error es calculado mediante: • Ventajas de los algoritmos evolutivos Los algoritmos evolutivos presentan un conjunto de ventajas en la solución de problemas de búsqueda y optimización: 10,13 Simplicidad conceptual. Amplia aplicabilidad. Superioridad respecto a las técnicas tradicionales en muchos problemas del mundo real, siendo menos afectados por las falsas soluciones que afectan a estas. Tienen el potencial para incorporar conocimiento sobre el dominio y para hibridizarse con otras técnicas de búsqueda/ optimización. Pueden explotar fácilmente las arquitecturas en paralelo. Son robustos a los cambios dinámicos. Generalmente pueden autoadaptar sus parámetros. Capaces de resolver problemas para los cuales no se conoce solución alguna (figura 3). n 2 e = ∑ ( yi − ymi ) i= 0 donde: n: Número de datos utilizados. El mejor modelo es el que produzca el menor error, por tanto el algoritmo evolutivo deberá minimizar esta ecuación. 3. Elegir una regla para codificar, en un cromosoma, los parámetros a estimar. Para el algoritmo evolutivo, cada cromosoma representa una solución al problema planteado y, por tanto, un posible conjunto de coeficientes para la estructura de modelo seleccionada previamente. Existen diferentes formas para codificar las soluciones, destacándose la binaria y la real. 4. Determinar los operadores genéticos que se utilizarán, y desarrollar aquellos que sean necesarios. Se han realizado múltiples trabajos sobre el uso y desarrollo de operadores para los algoritmos evolutivos. En este paso se escogerán combinaciones de dichos operadores de acuerdo con su funcionamiento y a las decisiones tomadas para el enfoque del problema. 5. Determinar los valores para los parámetros que controlan el algoritmo evolutivo. Existe un conjunto de parámetros que controlan el funcionamiento del algoritmo evolutivo, entre estos el tamaño de la población, las probabilidades de cruce y mutación, el máximo número de generaciones y la tolerancia de error. 6. Realizar los experimentos necesarios. Considerando los pasos anteriores se procede a la ejecución del algoritmo evolutivo. Para su implementación se dispone de diferentes herramientas de software y también es posible desarrollar programas utilizando lenguajes de propósito general. = 00 t= Crear población inicial P(t) Evaluar aptitudes iniciales Mientras no criterio de terminación t=t+1 Seleccionar reproductores P(t) de P(t-1) Alterar P(t) Evaluar nueva población P(t) Fin Figura 3 Estructura general de un algoritmo evolutivo. Existen diversos métodos de identificación, que pueden clasificarse según distintos criterios. Los métodos paramétricos requieren la elección de una posible estructura del modelo, de un criterio de ajuste de parámetros, y por último de la estimación de los parámetros que mejor ajustan el modelo a los datos experimentales mediante el método de mínimos cuadrados, el de variables instrumentales y otros, entre los que pueden mencionarse los algoritmos evolutivos. Se han desarrollado trabajos previos relacionados con la identificación, que establecen los siguientes pasos para la estimación de parámetros de un modelo mediante un algoritmo evolutivo:14,15,16 1. Elegir y construir el modelo del sistema a identificar. Atendiendo a las características del sistema a identificar se selecciona una estructura de modelo, tal como ARX, ARMAX, BJ y otras. COMPARACIÓN ENTRE LAS DISTINTAS TÉCNICAS EN LA IDENTIFICACIÓN DE SISTEMAS La identificación de sistemas no lineales se considera un problema difícil, al incluir dos etapas: la selección de la estructura del modelo con cierto número de parámetros y la selección de un algoritmo que estime dichos parámetros.17 En la literatura han sido propuestos numerosos modelos lineales como solución al proceso de identificación. En este caso puede elegirse un algoritmo sencillo para estimar los parámetros del modelo. 39 Ingeniería Electrónica, Automática y Comunicaciones, 1/2005 Aunque muchos sistemas no lineales pueden ser linealizados representándolos por medio de una ecuación diferencial o en diferencias, modelar sistemas no-lineales con modelos lineales implica muchas aproximaciones. Con frecuencia, estas aproximaciones no reflejan suficientemente el comportamiento real del sistema no lineal. Por tanto, el obtener un buen modelo, con una estructura que refleje la información real del sistema, exige un incremento en costo, debido a la necesidad de algoritmos más avanzados que puedan manejar modelos con estructuras complejas. La lógica difusa permite utilizar el conocimiento que se tiene de los sistemas para describir su comportamiento mediante el lenguaje humano y variables lingüísticas, evitando la modelación matemática compleja, por lo que su aplicación ha sido exitosa en sistemas en que la modelación matemática convencional resulta difícil o ineficiente y costosa.18 Sin embargo, a medida que la complejidad aumenta, se dificulta la determinación del conjunto de reglas y funciones de pertenencia correctas . Para sistemas complejos se necesitan más reglas y es más difícil relacionar esas reglas. Para muchos sistemas, es imposible encontrar un conjunto de reglas y funciones de pertenencia adecuado. La lógica difusa usa algoritmos heurísticos para la defuzificación, la evaluación de reglas y el procesamiento del antecedente. Los algoritmos heurísticos pueden causar problemas, principalmente porque la heurística no garantiza soluciones satisfactorias que operan bajo todas las condiciones posibles. Además, la capacidad de generalización de la lógica difusa es peor que la de las redes neuronales. Una vez que las reglas se determinan, estas permanecen fijas en el controlador difuso, el cual no es capaz de aprender (excepto en los sistemas difusos adaptivos, que permiten alguna flexibilidad). La lógica difusa convencional no puede generar reglas con una exactitud preespecificada. La exactitud se logra solo mediante prueba y error. Las redes neuronales aprenden el comportamiento del sistema mediante datos de entrada-salida, teniendo buenas capacidades de generalización, lo que les permite afrontar más efectivamente la identificación de sistemas no lineales, variantes en el tiempo, aún bajo condiciones ruidosas. Por tanto, las redes neuronales pueden resolver muchos problemas no resueltos o resueltos de forma ineficiente por las técnicas existentes, incluyendo la lógica difusa. Las redes neuronales pueden desarrollar soluciones para encontrar una exactitud preespecificada, pero su principal problema es su naturaleza de caja negra, es decir, las relaciones de los cambios de los pesos con el comportamiento de entradasalida durante el entrenamiento y el uso del sistema entrenado para generar salidas correctas usando los pesos. Este comportamiento es incompleto comparado a la descripción del sistema basado en reglas difusas. Desde el punto de vista de la implementación, las redes neuronales no proporcionan la solución de costo más efectiva, son típicamente más costosas que otras tecnologías, en particular la lógica difusa. Una solución de software generalmente toma un tiempo mayor para procesar y una implementación de hardware dedicado es más común para la lógica difusa que para las redes neuronales, debido al costo. Aunque anteriormente se dieron algunas sugerencias, resulta difícil determinar la estructura de una red neuronal para identificar un sistema dado. Además, se dificulta la manipulación de parámetros para el aprendizaje y la convergencia. Comparado con los métodos tradicionales de búsqueda y optimización, los algoritmos evolutivos son una técnica robusta, que puede ser utilizada de forma global o semilocal y que se puede aplicar generalmente a situaciones que tienen poco o ningún conocimiento acerca del proceso a ser identificado.19 En los últimos años, los algoritmos evolutivos han sido aplicados incluyendo la optimización paramétrica y la obtención de modelos, con el inconveniente de que el coste computacional puede ser muy alto si no se toman precauciones. CONCLUSIONES Como se ha explicado, las redes neuronales, la lógica difusa y los algoritmos evolutivos han demostrado capacidad en la solución de muchos problemas, pero presentan también las dificultades mencionadas para su implantación. Algunas de estas técnicas se han fusionado como: 20,21 • Redes neuronales para el diseño de sistemas difusos y sistemas difusos para el diseño de redes neuronales. Una unión entre la lógica difusa y las redes neuronales puede disminuir los problemas asociados con cada una de estas técnicas. Las redes neuronales pueden usarse para aprender el comportamiento del sistema basado en datos de entrada -salida del sistema. Este conocimiento aprendido puede usarse para generar reglas y funciones de pertenencia difusas, reduciendo el tiempo de desarrollo de forma significativa, ayudando también a resolver el problema de caja negra de las redes neuronales. Expresar los pesos de las redes neuronales mediante reglas difusas proporciona una mayor visión de las redes neuronales, llevando a un diseño de mejores redes neuronales. • Algoritmos evolutivos para el diseño de sistemas difusos, así como para el entrenamiento automático y generación de arquitecturas de redes neuronales. Los métodos de identificación difusa usualmente generan una base de reglas grande, en correspondencia con el número de entradas, lo que resulta en mayores requerimientos de memoria y tiempo de procesamiento. Para obtener un mejor desempeño de la modelación difusa, es decir, optimizar la base de reglas y las funciones de pertenencia, se pueden utilizar los algoritmos evolutivos. El aprendizaje y la evolución son dos formas fundamentales de adaptación. Los algoritmos evolutivos permiten evolucionar los 40 La inteligencia computacional en la... 17. DORF, R. C. & R. H. BISHOP: Modern Control Systems, Addison - Wesley Longman, Inc.: 51-65, 1998. 18. BABUSKA, R. & H. VERBRUGGEN: "An Overview of Fuzzy Modelling and Control", Control Engineering Practice, 4: 1593-1606, 1996. 19. DASGUPTA, D. & Z. MICHALEWICZ: Evolutionary Algorithms in Engineering Applications, Springer-Verlag, Berlin: 1-16, 1997. 20. COELHO, L. & A. COELHO: "Computational Intelligence in Process Control: Fuzzy, Evolutionary, Neural, and Hybrid Approaches", Int. Journal of Knowledge- Based Intelligent Engineering Systems, 2(2):80-94, 1998. 21. JAIN, L. & N. MARTIN (EDS.): "Fusion of Neural Networks, Fuzzy Systems and Genetic Algorithms: Industrial Applications", CRC Press, 1998. pesos de las conexiones en las redes neuronales, su arquitectura, reglas de aprendizaje y características de las entradas. Los ejemplos mencionados constituyen la tendencia actual de la inteligencia computacional: el desarrollo de sistemas híbridos. REFERENCIAS 1. LJUNG, L.: System Identification - Theory for the User, Prentice Hall, Englewood Cliffs, N. J. , 1987. 2. SÖDERSTROM, T. & P. STOICA: System Identification, Prentice Hall International, London, 1989. 3. FREEMAN, J. & D. SKAPURA: Neural Networks, Algorithhms, Aplications and Programming Techniques, Addison-Wesley Publishing Company, Inc., Mass., 1991. 4. WASSERMAN, P.: Neural Computing. Theory and Practice, Van Nostrand Reinhold, NY, 1989. 5. NARENDRA, K. & K. PARTHASARATHY: "Identification and Control of Dynamic Systems Using Neural Networks", IEEE Trans on Neural Networks, 1(1): 4-7, March, 1990. 6. AGUADO, A.: "Temas de identificación y control adaptable", Instituto de Cibernética, Matemática y Física, La Habana, 2000. 7. MOHANDAS, K. & A. DEEPTHY: "Partial Recurrent Networks for Indentification and Control of Nonlinear Systems", Proc. of the IASTED International Conference on Control and Appl., Honolulu, USA: 64-68, August, 1998. 8. ELMAN, J.: "Finding Structure in Time", Cognitive Science, 14: 179-211, 1990. 9. LI-XIN, W.: A Course in Fuzzy Systems and Control, Prentice Hall, Inc., Upper Saddle River, N. J., 1997. 10. GOLDBERG, D. E.: Genetic Algorithms in Search, Optimization and Machine Learning, Addison-Wesley, Reading, MA, 1989. 11. MAN, K. F.; K. S. TANG & S. KWONG: "Genetic Algorithms: Concepts and Applications", IEEE Trans. on Industrial Electronics, 43(5): 519-534, 1996. 12. MICHALEWICZ, Z.: Genetic Algorithms + Data Structures = Evolution Programs, 3rd. rev. and extended ed., SpringerVerlag Berlín Heidelberg, 1996. 13. FOGEL, D.: Evolutionary Computation. Toward a New Philosophy of Machine Intelligence, The Institute of Electrical and Electronic Engineers, New York, 1995. 14. BILLINGS, S. & K. MAO: "Structure Detection for NonLinear Rational Models Using Genetic Algorithms". Research Report 634, Department of Automatic Control and Systems Engineering, University of Sheffield, U. K. 1996. 15. KRISTINSSON, K. & G. DUMONT: "System Identification and Control Using Genetic Algorithms", IEEE Trans. On Syst., Man and Cyber., 22(5): 1033-1046, 1992. 16. JOHNSON, T. & P. HUSBANDS: "System Identification Using Genetic Algorithms", In Schwefel and Männer eds., 1990: 85-89, 1990. AUTORES Mirtha Irízar Mesa Ingeniera Electrónica, Especialista en Sistemas Digitales, Máster en Informática Aplicada, Profesora Auxiliar. Sus investigaciones están relacionadas con los sistemas digitales y la aplicación de la Inteligencia Computacional a la Automática, la Electrónica y la Computación. Correo electrónico: [email protected] Vol. XXVI, No. 1, 2005 CONGRESOS INTERNACIONALES 31st Annual Northeast Bioengineering Conference 2 – 3 April 2005 Hoboken, New Jersey http://www.stevens.edu/NEBC2005 Science and Art 4th International Symposium 9 – 12 June 2005 New Brunswick, New Jersey http://www.mechanical.rutgers.edu/scart4/ 2005 Summer Bioengineering Conference 22 – 26 June 2005 Vail, Colorado http://www.asme.org/divisions/bed/events/ summer05.html 41