Download Redes neuronales
Document related concepts
Transcript
00 primeras paginas 14/3/99 18:08 Página 1 1 3 REDES NEURONALES DOCUMENTOS COTEC SOBRE OPORTUNIDADES TECNOLÓGICAS 00 primeras paginas 14/3/99 18:08 Página 2 Primera edición: Diciembre 1998 Depósito legal: M. 573-1999 Imprime: Gráficas Arias Montano, S.A. 01 indice 14/3/99 18:09 Página 3 ÍNDICE 1. Presentación.................................................. 5 2. Introducción.................................................... 9 3. Funciones básicas de las redes neuronales.... 15 4. Aplicaciones de las redes neuronales ........ 21 5. Implementación de redes neuronales ........ 29 6. Evaluación de la utilización práctica de las redes neuronales .................................... 35 7. El proyecto SIENA.......................................... 41 8. Centros españoles de experiencia .............. 47 9. Las redes neuronales en la red Internet...... 63 Apéndice: fundamentos de la computación neuronal............................................ A1. Generalidades .............................. A2. El preceptrón multicapa .................. A3. La red de Kohonen......................... A4. La red de Hopfield ........................ 67 67 75 86 94 Bibliografía ........................................................101 3 02 presentacion 14/3/99 18:09 Página 5 1 PRESENTACIÓN La colección de Documentos Cotec sobre Oportunidades Tecnológicas se enmarca dentro del objetivo estratégico de actuar como motor de sensibilización a la actitud innovadora, tanto en los ámbitos empresarial y académico, como en la sociedad en general. Estos Documentos se editan después de un proceso de debate que tiene lugar en sesiones de identificación de las oportunidades que ofrece una determinada tecnología o un grupo de tecnologías. Estas sesiones tienen como finalidad conocer los retos y oportunidades de las tecnologías analizadas, así como las principales líneas de I+D e infraestructuras que permitan facilitar la transferencia a la industria y los servicios. En ellas la Fundación Cotec reúne a un cualificado grupo de expertos empresariales y de investigadores de la universidad y de centros de I+D, para que analicen las posibilidades de aplicación de determinadas tecnologías y las oportunidades que ofrecen para los distintos sectores. En esta ocasión, la Fundación Cotec presenta el resultado de la Sesión dedicada a las Redes Neuronales, que tuvo lugar en Madrid el día 6 de julio de 1998, en la sede de Cotec. 5 02 presentacion 14/3/99 18:09 Página 6 La Sesión contó con la colaboración de un equipo de investigadores, de expertos empresariales y de representantes de la Administración, coordinados por Manuel Álvarez Fernández, que preparó y coordinó el material de esta publicación. La Fundación Cotec quiere dejar constancia de su agradecimiento a Manuel Álvarez Fernández, y a los demás participantes en la Sesión, sin cuyas numerosas aportaciones este Documento no hubiera tenido su actual enfoque. 6 02 presentacion 14/3/99 18:09 Página 7 Participantes en la Sesión Cotec sobre Redes Neuronales • D. Gonzalo Álvarez Bueno. Ministerio de Educación y Ciencia. • D. Senén Barro Ameneiro. Universidad de Santiago de Compostela. • D. Joan Cabestany Moncusi. Universidad Politécnica de Cataluña. • D. Pascual Campoy. Universidad Politécnica. ETSI Industriales • D. José Luis de la Fuente. Iberdrola. • D. José Dorronsoro. Universidad Autónoma de Madrid. • D. Manuel Mendoza de Haro. Iberdrola. • D. Eutimio Morales López. Banco Popular Español. • D. Baldomero Muñoz Muñoz. El Corte Inglés. • D. Luis Pelayo. Tesorería de la Seguridad Social. • D. Armando Roy Yarza. Universidad de Zaragoza. • D. Francisco Sandoval Hernández. Universidad de Málaga. • D. Antolín Souto. Tarjeta Visa-Sermepa. • D. Manuel Zahera. Fundación Cotec. 7 02 presentacion 14/3/99 18:09 Página 8 • D. Pedro Zufiría Zataraín. Universidad Politécnica de Madrid. Coordinador: • D. Manuel Álvarez Fernández. Universidad Politécnica de Madrid. 8 03 introduccion 14/3/99 18:10 Página 9 2 INTRODUCCIÓN En las últimas décadas se ha desarrollado una serie de métodos, basados en una nueva tecnología de computación, capaces de afrontar eficientemente muchos problemas insatisfactoriamente resueltos por otros procedimientos más convencionales. La idea esencial de esta tecnología es la emulación del modo distribuido en que realiza sus funciones la red nerviosa del cerebro humano, básicamente constituida por las células denominadas neuronas. Por este motivo se ha acuñado la denominación de computación neuronal para aludir conjuntamente a estos nuevos procedimientos de cálculo, nombrándose redes neuronales los sistemas utilizados para su ejecución. En esta sección introductoria daremos algunas ideas generales sobre la computación neuronal y las ventajas que ofrece el empleo de las redes neuronales, dejando para secciones posteriores la descripción en detalle de algunos aspectos específicos importantes. Los computadores digitales, tal como los conocemos hoy en día, emplean un modo de computación que, para simplificar, podríamos denominar algorítmica. Sus dos ideas esenciales son la reducción de cualquier tarea a un conjunto de operaciones elementales binarias y la ejecución serial, paso a paso, del proceso de cálculo. Así la estructura material de un computador digital —el hardware del computador— está constituida por una complicada circuitería lógica, y su funcionalidad se desarrolla a través de la codifi9 03 introduccion 14/3/99 18:10 Página 10 cación de instrucciones en una serie de programas —el software del ordenador—. Típicamente el esquema convencional de implementación de la solución de un problema con un computador comienza por un análisis pormenorizado del problema. Tras este estudio se desarrolla la solución mediante una sucesión de etapas consecutivas, escalonadas lógicamente, que constituyen el algoritmo de operación. La codificación precisa del algoritmo resultante del análisis de un problema, sintetiza en un programa de ordenador los resultados de este análisis. Ordinariamente, una vez que se posee un programa adecuado para la solución de un problema, puede considerarse satisfactoriamente resuelto el problema, puesto que con la creciente velocidad de cálculo de los ordenadores actuales, el tiempo de procesamiento no suele ser un factor limitador de la efectividad del programa. En ciertos tipos de problemas este paradigma de solución algorítmica programada no resulta satisfactorio. En primer lugar, esto puede ser debido a la dificultad de elaborar un modelo computacional del problema que sea abordable. Si un algoritmo es intrincado, su comprensión global se hace difícil, lo que convierte en inviable o extraordinariamente costosa su codificación. Así, para ciertos problemas, aun sabiendo teóricamente cómo resolverlos, la solución es tan complicada que no se puede tan siquiera plantear su programación. En otros casos la situación es todavía peor, pues ni siquiera se sabe definir un algoritmo que permita realizar la solución. En resumen, lo común de estos problemas es que no poseen una solución programable algorítmicamente o que su solución algorítmica es extraordinariamente compleja y, por ello, prácticamente infactible. Con frecuencia estos problemas tienen que ver con acciones que las personas —o incluso algunos animales— realizan sin ninguna dificultad, lo que induce falsamente a pensar que se trataría de tareas simples de programar. Pensemos en casos como la identificación de una persona a la vista de una fotografía de su rostro —que un niño hace 10 03 introduccion 14/3/99 18:10 Página 11 sin problemas— o la interpretación de un texto manuscrito, que una persona mínimamente culta aborda casi sin dificultad. En otros casos se trata de automatizar tareas tales como clasificaciones con criterio impreciso, estimaciones subjetivas, predicciones de tendencias, etc., que una persona convenientemente adiestrada puede realizar con relativa facilidad. A título de ejemplos ilustrativos señalemos problemas como la decisión de otorgar un préstamo hipotecario o la tasación de una vivienda de segunda mano. Pese a todos los intentos de utilizar la computación convencional en estos campos, los avances han sido muy lentos, hasta el punto de poder afirmar que se ha alcanzado una situación de estancamiento. Actualmente puede, pues, decirse que, hecha la salvedad de las tareas esencialmente basadas en el cálculo aritmético simple, el cerebro humano es superior a cualquier computador. Esta superioridad es manifiesta en tareas de percepción, como ocurre en el reconocimiento de imágenes o en la interpretación de sonidos, donde la capacidad del cerebro para identificar características y realizar asociaciones sin aparente esfuerzo es incomparable. Ningún algoritmo conocido es capaz de emular de manera flexible estas funciones. Algunas caracterIsticas significativas del funcionamiento del cerebro que contribuyen a explicar sus ventajas como sistema de cómputo son las siguientes: a) Es robusto, es decir, su funcionamiento no se ve alterado ante fallos de poca importancia. Las células neuronales se mueren con relativa frecuencia y el funcionamiento del cerebro no se degrada significativamente. b) Es flexible, pues puede ajustarse con facilidad a un entorno cambiante. La capacidad de aprender del cerebro, aunque es mucho mayor en la infancia, se mantiene prácticamente a lo largo de toda la vida. c) Puede tratar información ambigua o incompleta. Sabe discriminar informaciones inconsistentes. Puede evaluar probabilidades, distinguiendo lo seguro de lo posible. d) Es pequeño, compacto y consume poca potencia. 11 03 introduccion 14/3/99 18:10 Página 12 Las redes neuronales artificiales han surgido como un intento de desarrollar sistemas que emulen estas características del cerebro, para conseguir su sofisticada capacidad de procesamiento de información. Realmente, ésta es la pretensión de todos los sistemas de Inteligencia Artificial (IA), pero las redes tienen una importante cualidad distintiva, que radica en su concepción básica. Los sistemas más convencionales de IA pretenden modelar las funciones de la mente humana con independencia de la estructura física del sistema en el que está basada, es decir, el cerebro. La investigación clásica de la IA supone que el pensamiento consciente es la causa fundamental del comportamiento inteligente, y pretende elaborar modelos de razonamiento lógico. En cambio, la idea motriz que orienta el desarrollo de las redes neuronales es que el comportamiento complejo que conocemos como inteligencia surge de la interacción de los millones de células nerviosas que componen el cerebro. Idealmente, la pretensión de las redes neuronales sería sintetizar un sistema que realice la estructura neuronal del cerebro y desarrolle un equivalente algorítmico de los procesos de reconocimiento y aprendizaje. Las dificultades prácticas de este proyecto son evidentes, dada la extraordinaria complejidad del entramado de elementos que componen el cerebro, por lo que la pretensión real es mucho más modesta, reduciéndose a intentar imitar las funciones básicas. Así pues, en términos generales, podría decirse que una red neuronal es una implementación, en hardware o en software, de un sistema de procesamiento de datos que intenta emular las funciones computacionales elementales de la red nerviosa del cerebro humano. Al margen de su posible definición, la propiedad esencial de las redes neuronales es que implementan un nuevo paradigma de computación —un modo alternativo de procesar o modelar datos experimentales—, que resulta extraordinariamente útil en ciertos problemas que no se adecuan bien a las tecnologías convencionales de cálculo. Dado que la estructura 12 03 introduccion 14/3/99 18:10 Página 13 de una red neuronal es, de alguna manera, el resultado de la abstracción del sistema nervioso humano, las redes resultan ser muy adecuadas para la realización de las tareas antes apuntadas, implementando un modo de computación que es casi genuinamente neuronal. Por lo ya dicho, se aprecia que la computación neuronal ofrece una vía alternativa a las tradicionales para la solución de muchos problemas de interés práctico, cuando su complicación no permite la elaboración de un modelo explicativo de los datos que se poseen o no es fácil traducir en reglas los procedimientos establecidos. De hecho, a partir de los últimos años de la década de los ochenta, los métodos de computación neuronal han dado lugar a una serie de importantes desarrollos comerciales y aplicaciones industriales, que han puesto de manifiesto su potencialidad en dominios de intereses muy variados. Aquí residen los beneficios principales de la utilización de los recursos tecnológicos asociados a las redes neuronales. Una red neuronal convenientemente diseñada es capaz de identificar regularidades subyacentes en una maraña de datos o representar la funcionalidad inherente a un procedimiento no codificable. Las redes neuronales tienen así la capacidad de extraer información estructural de masas de datos complicados o imprecisos, que sintetice, sin explicitarla, una descripción del fenómeno o proceso que ha generado esos datos. En este sentido se puede concebir que desarrollan las funciones de un experto en un tema, muy capaz de enfrentarse con cierto grado de eficacia a situaciones nuevas, imaginando soluciones que no formaron parte de su proceso de entrenamiento. Actualmente, la tecnología de las redes neuronales se está convirtiendo en una potente herramienta para imaginar y aplicar nuevos métodos de solución de importantes problemas industriales o comerciales. Contribuyen a ello tanto los continuos avances teóricos, que permiten entender mejor el funcionamiento de los diversos paradigmas de computación neuronal, como los desarro13 03 introduccion 14/3/99 18:10 Página 14 llos de nuevas implementaciones —software y en hardware—, que permiten sintetizar las redes neuronales que los ejecutan. Sin duda alguna la tecnología neuronal, por sí misma o combinada con otros nuevos métodos de procesamiento de la información, como la lógica fuzzy o los algoritmos genéticos, será una pieza esencial para favorecer el progreso técnico-comercial de los próximos años. 14 04 capitulo 3 14/3/99 18:10 Página 15 3 FUNCIONES BÁSICAS DE LAS REDES NEURONALES Como ya hemos dicho, las redes neuronales son esencialmente sistemas de procesamiento de información que intentan emular, imitando el modo de procesamiento distribuido, las capacidades de percepción y reconocimiento del cerebro humano. No es por ello extraño que puedan llegar a realizar eficazmente muchos de los tipos de tareas que las personas realizan sin aparente esfuerzo y cuya ejecución programada serialmente resulta problemática. En líneas generales puede decirse que el empleo de las redes neuronales es particularmente interesante para representar un proceso a partir de un repertorio de sus realizaciones cuando no se conoce un modelo explícito del proceso o este modelo cambia continuamente. A continuación damos una descripción somera de algunas de las tareas típicas que realiza una red neuronal. En estas denominaciones hay cierto grado de arbitrariedad, puesto que es fácil identificar características comunes entre varias de las tareas que se mencionan. A) CLASIFICACIÓN Probablemente la tarea más básica que continuamente realiza nuestro cerebro es la discriminación de las situaciones o los objetos que percibe. Así somos capaces de distinguir si hace buen o mal tiempo, si un producto es caro o bara15 04 capitulo 3 14/3/99 18:10 Página 16 to, si un coche es viejo o nuevo, etc. Este proceso es casi siempre subjetivo y se realiza sin necesidad de que se hayan hecho nunca explícitos los criterios utilizados en la discriminación, que no por ello se sienten menos evidentes. Eventualmente esa discriminación puede implicar más de dos alternativas, lo que aumenta la sutileza de la clasificación y la hace más problemática o discutible. Convenientemente entrenada, una red neuronal puede emplearse para decidir a qué clase, de una serie predeterminada, se asigna un nuevo ítem de entrada a la red. Típicamente el número de clases es reducido en relación con el número de posibles datos de entrada, lo que puede hacer complicado el proceso de clasificación. Frente a las técnicas tradicionales de reconocimiento de patrones, las redes neuronales ofrecen ventajas por su capacidad para generar en un problema concreto estructuras específicas de identificación de características. B) ASOCIACIÓN En este caso la red funciona como un proceso de recuperación de un dato a partir de una entrada relacionada con el dato almacenado. Típicamente la entrada es una versión incompleta del dato que ha de recuperarse, y a partir de ella ha de restablecerse la información completa sobre el dato. También puede ocurrir que el dato de entrada sea una versión deformada, resultado de superponer un ruido al dato original, pudiendo imaginarse que la red filtra el ruido para restablecer una versión limpia del dato. C) AGRUPAMIENTO En ocasiones no se conoce una clasificación de los datos de entrada y se espera que la red genere esta clasificación. Una de las maneras de catalogar esta clasificación es generando prototipos para cada una de las clases. Un ejemplo típico es 16 04 capitulo 3 14/3/99 18:10 Página 17 la codificación de señales previa a un proceso de transmisión de datos, donde se consigue así una reducción significativa de la información que ha de transmitir el proceso. Las redes pueden efectuar este proceso adaptativamente, generando eficientemente la codificación a medida que se va produciendo la señal. D) GENERALIZACIÓN En muchos sistemas las magnitudes de ciertas variables vinculadas a un proceso están relacionadas entre sí, de manera que es aparente la existencia de algún tipo de relación causaefecto. En ese caso la medida de los valores de algunas variables convenientemente escogidas permite estimar el valor de las restantes. Aun existiendo esa dependencia funcional, las relaciones pueden ser muy complicadas, no siendo susceptibles de ser formalizadas en un sistema de ecuaciones matemáticas. A lo sumo se dispone entonces de tablas de datos que recogen las dependencias entre las diversas variables medibles, debiendo procederse con ellas a un proceso de aproximación numérica, para estimar la relación funcional subyacente. En los casos más complicados, los métodos basados en modelos como el ajuste interpolatorio o la regresión estadística pueden dar resultados insatisfactorios. Para estos casos, si se dispone de un número suficientemente representativo de datos, las redes neuronales tienen la capacidad inigualable de detectar las relaciones subyacentes. Con ello hacen posible implementar fidedignamente modelos funcionales, que permiten extrapolar las relaciones numéricas presentes en los datos disponibles a otras situaciones similares. E) OPTIMIZACIÓN En muchas situaciones se hace necesario elegir la opción óptima entre diversas alternativas. En ciertos casos esto 17 04 capitulo 3 14/3/99 18:10 Página 18 debe hacerse con un repertorio de posibilidades muy grande, lo que hace inviable considerar todos los casos posibles. Un ejemplo famoso es el problema del viajante de comercio, en el que se trata de determinar la trayectoria que debe seguir una persona para visitar varias ciudades una sola vez recorriendo la mínima distancia. La consideración de todos los casos posibles da lugar a un fenómeno conocido como explosión combinatoria, en el que aparecen tantos casos posibles que es impracticable su consideración global. Por otra parte es obvio a simple vista que muchas alternativas no deben ser ni siquiera consideradas. Estos problemas de optimización combinatoria son de naturaleza tan complicada que la búsqueda de la solución óptima es extraordinariamente difícil, debiendo recurrirse a procedimientos heurísticos para alcanzar alguna solución subóptima. En problemas de este tipo, las redes neuronales proporcionan un procedimiento relativamente rápido para generar una solución subóptima que resulta suficientemente satisfactoria para algunas aplicaciones. F) PREDICCIÓN Y CONTROL La flexibilidad de las redes neuronales las hace especialmente adecuadas en tareas de predicción, donde es necesario anticipar el estado futuro de un sistema a partir de las medidas de variables significativas del mismo, que se van obteniendo en el transcurso del proceso dinámico del sistema. El modelo del sistema cambia constantemente y la facilidad de aprendizaje de la red permite seguir con versatilidad estos cambios. Una aplicación típica es el análisis de series temporales; por ejemplo, la predicción de la demanda de algún bien económico. Íntimamente relacionadas están las aplicaciones de las redes a tareas de control de sistemas dinámicos complejos como, por ejemplo, los sistemas mecánicos usados en robótica. La dificultad no es aquí el modelo, sino la incapacidad de determinar con un pro18 04 capitulo 3 14/3/99 18:10 Página 19 cedimiento computacionalmente aceptable las variaciones del comportamiento nominal, cambios que se producen por las alteraciones imprevistas del estado del sistema. Una red puede predecir las consecuencias de esas perturbaciones e indicar las decisiones de control que compensen anticipadamente el futuro error de la trayectoria del sistema. 19 05 capitulo 4 14/3/99 18:11 Página 21 4 APLICACIONES DE LAS REDES NEURONALES La computación neuronal se ha ensayado en multitud de problemas de ámbitos muy diversos, existiendo una amplia bibliografía al respecto. Muchos de los estudios realizados tienen un carácter marcadamente académico, pero existen también muchos informes que describen aplicaciones reales, implementadas con éxito en determinados sectores productivos o comerciales. Las primeras aplicaciones comerciales de las redes neuronales aparecieron a finales de los años ochenta. Desde entonces, su utilización práctica se ha difundido en multitud de campos. En ciertos casos, los resultados obtenidos parecen ser tan buenos que, por razones de estrategia comercial, no se han difundido los detalles de la implementación utilizada. A través de Internet es posible acceder a varios repositorios de aplicaciones, con cuya consulta se puede adquirir una buena idea de las múltiples posibilidades que concretamente se han realizado. En otro lugar de este documento se detallan las direcciones de consulta. Aquí nos limitaremos, sin ningún ánimo de ser exhaustivos, a describir ciertos problemas en diversas áreas de aplicación donde se han ensayado soluciones mediante el uso de la computación neuronal. EXPLOTACIÓN DE DATOS La explotación de datos («data mining») es un recurso esencial en la definición de estrategias comerciales de las 21 05 capitulo 4 14/3/99 18:11 Página 22 empresas por las ventajas competitivas que ofrece. Con los avances tecnológicos relacionados con la adquisición y almacenamiento de datos, muchas organizaciones disponen de una masa ingente de datos sobre la comercialización de sus productos. Esta situación ha planteado el problema de automatizar la extracción de información útil, puesto que el volumen de datos desborda ampliamente la capacidad de análisis por la simple inspección humana. El conocimiento que se pretende extraer no se refiere a la confirmación cuantitativa de conjeturas, más o menos evidentes a los ojos de un experto, realizada a base de análisis estadísticos sobre una gran base de datos; más bien se trata de detectar hechos o relaciones genuinamente novedosos, subyacentes profundamente en los datos disponibles u oscurecidos por la gran cantidad de datos presentes. El punto importante es que la información extraída es tanto más interesante cuanto menos obvia, esperada y plausible sea en relación con el conocimiento previamente establecido. Las redes neuronales se han establecido como una herramienta poderosa para la explotación eficiente de datos comerciales. Por ejemplo, se han utilizado para clasificar los clientes de una firma por sus hábitos de consumo, tratando convenientemente los datos obtenidos en los puntos de venta. Con ello se puede determinar qué segmentos de la población responderán con mayor probabilidad a los envíos de propaganda personalizada, reduciendo con ello los costes de correo. De manera parecida los resultados obtenidos pueden ser utilizados para planificar y gestionar más eficientemente métodos de mercado directo, como en el caso del marketing telefónico. Otra aplicación semejante es la estimación de ventas con la correspondiente previsión de inventarios. Tan dramático puede ser para una firma fabricar menos cantidad de un producto que demandará el mercado, lo cual desplazará a sus clientes potenciales hacia la competencia, como producirlo en exceso, lo que aumenta el precio de coste o los gastos de almacenamiento. Las redes neuronales se han utili22 05 capitulo 4 14/3/99 18:11 Página 23 zado en un problema de este tipo para determinar la distribución óptima en los quioscos de venta de periódicos de la cantidad de ejemplares más conveniente. Las aplicaciones potenciales de las redes neuronales en este terreno de la explotación de datos comerciales son ilimitadas. Actualmente ya puede decirse que este tipo de problemas constituye una de las principales aplicaciones comerciales de la computación neuronal, constituyendo un área donde cabe esperar un desarrollo futuro más prometedor. APLICACIONES FINANCIERAS Y BANCARIAS En el sector bancario hay una serie de problemas que han sido afrontados mediante la computación neuronal. La lista incluye cuestiones como evaluación de la concesión de préstamos hipotecarios, verificación de firmas de cheques, detección de fraudes en la utilización de tarjetas de crédito. Como aplicaciones financieras se pueden citar la calificación de bonos u otro tipo de obligaciones, análisis de fracasos empresariales, evaluación del comportamiento de las acciones en el mercado de valores o predicción de la evolución de mercados financieros y monetarios. APLICACIONES EN MEDICINA Como ya hemos comentado en una sección precedente, una importante área de aplicación de las redes neuronales es la extracción de conocimiento a partir de un gran volumen de información. En medicina se ha demostrado que se pueden inferir criterios para realizar diagnósticos sobre los síntomas de una enfermedad a partir de los registros médicos sobre pacientes que han sufrido esa enfermedad. La ventaja principal de este procedimiento es que se necesita mucho menos tiempo para desarrollar el estudio, pudiendo completarse el análisis en cuestión de horas en vez de años. 23 05 capitulo 4 14/3/99 18:11 Página 24 Además las redes son relativamente insensibles a las inexactitudes, contradicciones o errores en los datos que se emplean. De hecho, en algunas comprobaciones experimentales, se ha visto que una red neuronal ha llegado a ser capaz de diagnosticar con mayor fiabilidad que un médico la aparición de un ataque al corazón. Otras aplicaciones se refieren a la valoración de resultados de análisis clínicos, radiografías, resonancias, etc., así como la comparación de tratamientos anticancerígenos. RECONOCIMIENTO ÓPTICO DE CARACTERES La identificación automática de la escritura, sea esta impresa o manuscrita, es una de las aplicaciones más difundidas de la computación neuronal. En general, los sistemas que efectúan este proceso se denominan habitualmente sistemas OCR (de Optical Character Recognition). El reconocimiento óptico de caracteres es un problema especial del área general de reconocimiento de patrones y procesamiento de imágenes, que según los casos puede adquirir gran complejidad. Así sucede, por ejemplo, cuando el alfabeto es muy complicado, como es el caso de la escritura en japonés. En el campo de los sistemas OCR la computación neuronal ha alcanzado un gran éxito, pues sus prestaciones sobrepasan con frecuencia las obtenidas con otros métodos clásicos, tanto en flexibilidad y robustez como en el número de aciertos obtenidos. Algunas aplicaciones concretas de la identificación de letra impresa son la lectura de placas de matrícula de coches, el registro automático de los números de los cheques bancarios o la conversión a ficheros de texto de los mensajes por fax. Para el reconocimiento de letra manuscrita se han desarrollado aplicaciones con redes neuronales orientadas a problemas tales como la lectura automática de formularios rellenos a mano o la lectura de códigos postales en el correo ordinario. 24 05 capitulo 4 14/3/99 18:11 Página 25 TELECOMUNICACIONES El campo de las comunicaciones fue uno de los primeros donde se emplearon con éxito, en los años sesenta, las redes neuronales, utilizándose como filtros adaptativos para la ecualización de líneas telefónicas y cancelación de ecos. Actualmente se están desarrollando muchas aplicaciones de las redes neuronales en la industria de las comunicaciones: sistemas de control de tráfico en modo de transferencia asíncrono (ATM) para regular adaptativamente la admisión de llamadas y la capacidad de los enlaces; determinar la ruta óptima en una red para establecer un enlace entre dos nudos de la red, que es un complicado problema de optimización con restricciones... FUSIÓN DE DATOS DE SENSORES El problema de fusión de datos es la integración coherente de series de datos procedentes de diversos sensores, de manera que se obtenga una descripción adecuada del proceso o la situación monitorizados. Muchos de los sensores electrónicos que se utilizan hoy pueden generar una cantidad considerable de mediciones que es necesario integrar, en tiempo real, con los datos procedentes de otros sensores de diferente naturaleza. Esto da lugar a un amplio rango de escalas de tiempo de observación, que pueden ir, según los casos, desde las fracciones de segundo hasta el rango de varias horas. Además existe el problema de las posibles interferencias en la medición y los sesgos que se pueden introducir por un funcionamiento defectuoso de alguno de los sensores. La capacidad de las redes neuronales para implementar esquemas de clasificación no supervisada o con un mínimo de supervisión permite clasificar las diferentes situaciones representadas conjuntamente por todos los sensores presentes, detectando la aparición de determinados 25 05 capitulo 4 14/3/99 18:11 Página 26 acontecimientos o la disfunción de alguno de ellos, de manera más eficiente que por la observación individual de cada uno de ellos. APLICACIONES EN SISTEMAS ELÉCTRICOS DE POTENCIA En el sector eléctrico se ha ensayado la utilización de redes neuronales en multitud de problemas específicos de este campo. Quizás el más estudiado es el de predicción de la demanda de consumo, sea éste diario u horario, predicción que es crucial en la planificación del modo de operación de un sistema eléctrico. Otras aplicaciones incluyen la valoración de las restricciones de operación por la posible aparición de contingencias o el diagnóstico de fallos del sistema como consecuencia del disparo de una alarma. La importancia económica de una pequeña mejora en la solución de estos problemas justifica la consideración y estudio de cualquier método de solución; en este sentido las redes neuronales, en combinación con otro tipo de técnicas, se están situando como una valiosa metodología en este campo. MONITORIZACIÓN DE PROCESOS INDUSTRIALES Muchos procesos industriales, por ejemplo en la industria química, son demasiado complejos para que los métodos normales de diseño de sistemas de control den resultados eficaces. Es necesario recurrir a esquemas de control adaptativos que sigan las variaciones del comportamiento de la planta según se va modificando su modo de funcionamiento. La anticipación en la identificación de estas variaciones es crucial para prevenir el descenso de la calidad del producto o la ruptura del proceso. Las redes neuronales se han 26 05 capitulo 4 14/3/99 18:11 Página 27 ensayado con éxito en problemas de este tipo, tales como en procesos de polimerización, donde se ha mejorado la homogeneidad del producto obtenido, o el control de hornos de arco eléctrico, donde se han conseguido reducir significativamente el desgaste de electrodos y el consumo de energía eléctrica. CONTROL DE CALIDAD DE PRODUCTOS MANUFACTURADOS Las redes neuronales se están empleando también con buenos resultados para automatizar las tareas e inspección de los productos finales de un proceso de fabricación. La selección de productos de alta calidad es con frecuencia esencial para competir en mercados cada vez más exigentes, pero ordinariamente esto conlleva una elevación significativa de los costes, si la inspección deben realizarla directamente los operarios. Además del exceso de tiempo que puede llegar a requerir el trabajo de inspección, está la cuestión de la subjetividad de la clasificación, que exige que el trabajo sea desarrollado por personal cualificado, capaz de detectar con rapidez la aparición de defectos excluyentes. En este campo las redes neuronales se han empleado con éxito en tareas de inspección visual automatizada, reduciendo dramáticamente el tiempo necesario y rebajando la proporción de rechazos indebidos al objetivar la clasificación. 27 5 IMPLEMENTACIÓN DE REDES NEURONALES Desde los primeros años de la aparición de la computación neuronal se consideró necesaria la implementación de las redes neuronales en un hardware especial, para tener la posibilidad de aprovechar en su totalidad las ventajas del nuevo paradigma de cálculo. En este sentido, el hardware ideal sería el analógico, construido a base de multitud de elementos interconectados que permitiesen realizar físicamente el procesamiento paralelo y distribuido característico de esta computación. Sin embargo, este desarrollo ha sido mucho más lento de lo inicialmente esperado y con un escaso impacto comercial. En parte es debido a la gran complejidad de los sistemas necesarios para la realización física de una red neuronal y, en parte, al tremendo desarrollo de la potencia de cálculo en los computadores secuenciales. Esto último ha permitido que se desarrollasen simulaciones en software de las redes más frecuentes, con lo que se han conseguido programas que emulan eficientemente la computación neuronal. De hecho puede decirse que la mayoría de las aplicaciones de la computación neuronal se ejecutan de esta forma, a base de un programa que simula en un computador secuencial un determinado paradigma de computación neuronal. Cuando un determinado problema no requiere una gran velocidad de cálculo y la red que se utiliza no es de dimensión muy grande, se consiguen así resultados bastante satis- 29 factorios. Por ejemplo, una red del tipo del perceptrón con un número de entradas entre 10 y 100, una capa oculta con un número de neuronas de ese orden y diez unidades de salida necesita en un Pentium tan sólo unos milisegundos para calcular su respuesta. La creciente potencia de cálculo de los ordenadores actuales permite incluso que las aplicaciones que requieren redes neuronales de cierta complejidad en cuanto al número de neuronas y de conexiones sean realizables sin problemas en ordenadores de tipo medio. El entrenamiento de la red puede ocupar varias horas, pero esto sólo se realiza una vez y no es ordinariamente problemático. A eso hay que añadir que en muchas aplicaciones la red es tan sólo un módulo de un sistema más complicado, cuyas otras etapas no admiten paralelización, de manera que no tiene mucho sentido acelerar al máximo una parte del proceso total, si esto supone un esfuerzo excesivo. Sin embargo, en determinadas aplicaciones es necesario recurrir a procedimientos más sofisticados. Incluso el más rápido de los procesadores secuenciales es incapaz de realizar satisfactoriamente en tiempo real la respuesta de una red con un gran número de neuronas y conexiones. En cambio, el procesamiento paralelo, utilizando múltiples elementos de procesamiento, puede suministrar una tremenda rapidez de cálculo. Este argumento, el incremento de la velocidad de procesamiento, es el que determina que se hayan desarrollado implementaciones de hardware específicas para la realización de redes neuronales. A esto hay que añadir que, en determinados productos comerciales que se producen en serie, es más barato y eficaz instalar una red neuronal especialmente diseñada. Además en otras aplicaciones, como las que tienen que ver con la percepción de imágenes o sonidos, es necesario emular fidedignamente el comportamiento de los sistemas biológicos para conseguir aproximarse a su funcionalidad. Existen tantas modalidades de implementación en hardware de redes neuronales que ni siquiera existe un criterio 30 06 capitulo 5 16/3/99 08:41 Página 31 (Negro plancha) admitido de clasificación. Una posible taxonomía se representa en la figura adjunta. La velocidad de procesamiento se incrementa en la línea inferior de izquierda a derecha. NEUROCOMPUTADORES Chips Standard Neurochips Tarjetas aceleradoras Multiprocesadoras Analógicos Digitales Híbridos Los neurocomputadores basados en circuitos integrados estándar constituyen las dos primeras categorías. Por un lado están las tarjetas aceleradoras, que se emplean para incrementar la velocidad de cálculo de un computador secuencial, como un computador personal o una estación de trabajo. Junto a esta clase se ubica la formada por los sistemas de multiprocesamiento paralelo, que pueden funcionar tanto aisladamente como monitorizados por un computador. Los neurocomputadores construidos con circuitos integrados específicamente diseñados para realizar la computación neuronal constituyen las otras dos categorías. Estos circuitos pueden ser tanto digitales como analógicos, e incluso híbridos para aprovechar las ventajas de ambas técnicas. Las tarjetas aceleradoras constituyen el producto hardware más utilizado en las aplicaciones comerciales, debido a que son relativamente baratas, versátiles, fácilmente conectables a un computador y además suelen venir acompaña31 das de herramientas de software para facilitar su manejo. Un usuario acostumbrado a simular una red por software no encuentra otra diferencia al emplear una tarjeta aceleradora que el incremento de la velocidad de cálculo, que se reduce aproximadamente en un orden de magnitud. Los procesadores de propósito general, tanto si son de procesamiento simple como múltiple, ofrecen margen suficiente para programarse emulando funciones neuronales. Aunque la eficiencia de estos procesadores no sea la óptima para la computación neuronal, su amplia disponibilidad y relativo bajo coste han hecho que se hayan utilizado para desarrollar cierta clase de neurocomputadores. Las implementaciones van desde arquitecturas con elementos simples, de bajo coste, a otras que emplean procesadores más sofisticados como los transputers, que son únicos por sus líneas entrada-salida paralelas, o los DSP (Digital Signal Processor), que originariamente se desarrollaron para el procesamiento de señal. La utilización de este tipo de neurocomputadores ha sido además importante para tomar contacto y adquirir experiencia con una serie de problemas que tiene la síntesis de auténticos neurocomputadores. Por ejemplo, se ha visto que con frecuencia la parte de cálculo que más tiempo ocupa es la evaluación de una función de transferencia sigmoide, lo que ha sugerido soluciones, como representarla mediante una tabla en vez de calcularla efectivamente. Por otra parte, se ha observado que el encontrar la estrategia óptima de interconexión de los procesadores no es ni mucho menos un problema trivial. El segundo gran grupo de neurocomputadores está basado en el empleo de chips especialmente diseñados para satisfacer las necesidades de la computación neuronal. Es frecuente denominarlos por ello neurochips. Cuando se utiliza un neurocomputador construido basándose en neurochips, el tiempo de cada iteración se reduce hasta dos órdenes de magnitud, en relación con los neurocomputadores que utilizan chips de propósito general. 32 Los neurochips pueden ser digitales o analógicos. Los digitales tienen como ventajas el empleo de técnicas de fabricación bien conocidas, la posibilidad de almacenar los pesos en memoria RAM, la precisión en los cálculos y la facilidad de integración en sistemas más complejos que también utilizan tecnología digital. A cambio tienen como inconvenientes el ser más lentos que los analógicos y la necesidad de emplear convertidores analógico digitales para captar señales externas a la red. La electrónica analógica posee unas características que la hacen potencialmente ideal para su uso directo en la implementación de una red neuronal. Por ejemplo, los amplificadores operacionales, fácilmente construibles con simples transistores, realizan automáticamente funciones neuronales, como la integración o el cómputo de valores de la función de transferencia. Sus desventajas radican en la necesidad de compensar las variaciones de sus parámetros internos en función de las condiciones de funcionamiento y en que el almacenamiento interno de los pesos es complicado. Para aprovechar las ventajas de uno y otro tipo, se han diseñado neurochips híbridos. En ellos el procesamiento interno es analógico y el almacenamiento digital. 33 6 EVALUACIÓN DE LA UTILIZACIÓN PRÁCTICA DE LAS REDES NEURONALES Las redes neuronales han probado su eficacia en muchas aplicaciones prácticas. En este sentido puede asegurarse rotundamente que han dejado atrás la fase inicial —en la que se llegó a decir que constituían una teoría a la busca de problemas que había que resolver— y están definitivamente instaladas como una tecnología firmemente asentada. Sin embargo, no son una herramienta de validez universal y conviene delimitar sensatamente sus posibles campos de aplicación. En cualquier decisión sobre su posible utilización debe tenerse en cuenta que la computación neuronal está indicada sólo para un determinado tipo de problemas. Si se trata con un problema de esta clase, la utilización adecuada de una red neuronal puede aportar ventajas considerables; pero, si no sucede así, el empleo de la tecnología de redes neuronales puede conducir a resultados desanimadores y frustrantes. De hecho esta situación se ha producido en el pasado con cierta frecuencia, debido al excesivo optimismo en torno a las posibilidades de la computación neuronal —considerándola como una tecnología válida para cualquier problema—, o al empleo inadecuado de la misma. Existen una serie de criterios básicos para decidir si la solución de un determinado problema es o no susceptible de ser afrontada mediante una red neuronal, de si merece o no la pena considerar su utilización. Entre ellos se pueden enunciar los tres siguientes: 35 • No es posible dar un modelo computable del problema, tal como un sistema de ecuaciones cuya solución proporcione la respuesta de la cuestión subyacente en el problema. En otras palabras, la solución del problema no es descriptible explícitamente mediante un algoritmo o un conjunto de reglas de decisión. • Existe alguna evidencia de que entre las variables medibles de un proceso existe algún tipo de correlación o dependencia cuya forma, sin embargo, no es explicitable, pudiendo enunciarse solamente de manera ambigua. • Se dispone de una amplia base de datos representativos de las posibles realizaciones del proceso que cubren todas las situaciones de interés. El primer criterio no siempre es de aplicación estricta. Puede ocurrir que para un determinado problema existan soluciones convencionales y que, sin embargo, todavía merezca la pena considerar como alternativa la computación neuronal. A título de ejemplo ilustrativo, podemos mencionar el problema de predicción de la evolución del clima en una región. Aunque existen modelos matemáticos sofisticados para anticipar los cambios en una amplia zona del planeta, puede eventualmente ocurrir que, en un determinado lugar, trabajando con registros históricos de medidas de la temperatura, humedad y presión atmosférica, se pueda predecir con mayor fiabilidad la evolución del tiempo a corto plazo. El segundo criterio requiere tener un conocimiento sólido del proceso que se analiza, para distinguir qué variables del mismo son importantes y cuáles son las relaciones, al menos cualitativas, que existen entre ellas. Esto tiene entre otras cosas la ventaja de excluir la consideración de aquellas variables vinculadas al proceso que no tengan una incidencia real en la búsqueda de un modelo de la relación que se pretende representar. Siguiendo con el ejemplo del clima, es obvio que el día de la semana en que se está no debe tener, por sí sólo, ninguna correlación con el tiempo que haga. Por ello es inútil registrar esta variable junto a los datos diarios. 36 Sin embargo, puede ser significativo el mes y, aún más, la estación del año en que se está. Finalmente hay que destacar la importancia del tercer criterio relativo a la disponibilidad de datos. En términos generales puede decirse que una red neuronal será a lo sumo tan buena como lo sean los datos empleados en su entrenamiento. Si hay dudas sobre la posibilidad de utilizar datos convenientemente representativos del problema es, con toda probabilidad, inútil intentar una solución utilizando la computación neuronal. Tras considerar una posible aplicación, el primer paso es verificar si se satisfacen los criterios de utilización de la computación neuronal antes expuestos. Si el problema en cuestión no tiene las características reflejadas en las consideraciones enunciadas en esos criterios, es muy probable que la utilización de una red neuronal dé resultados insatisfactorios. Si la decisión es afirmativa, es conveniente rastrear en la literatura sobre redes neuronales la búsqueda de la metodología utilizada en algún problema similar. Se han ensayado usos de las redes neuronales en multitud de campos y es muy posible que se pueda encontrar información interesante en este rastreo. La siguiente etapa es la consideración de una serie de aspectos prácticos, relacionados con el desarrollo de una aplicación. Se destacan los siguientes: a) Adecuación de los recursos utilizables. En la utilización de cualquier nueva tecnología, la adquisición del conocimiento necesario para su implementación eficiente es siempre un aspecto que hay que considerar. En principio los elementos conceptuales básicos de la computación neuronal son sencillos y no requieren gran esfuerzo para su comprensión. Existe además una gran cantidad de software, en buena medida de dominio público, utilizable, de manera que en general no se requiere gran esfuerzo de programación. De hecho estas son, sin duda, algunas de las razones por las que se ha intentado el empleo de las redes neuronales en dominios tan 37 diversos. Sin embargo, es necesario un cierto grado de familiaridad con la utilización de la computación neuronal para tener una idea cabal de sus posibilidades y limitaciones. El equipo ideal para el desarrollo de una aplicación en este campo debería incluir la cooperación de un experto en la tecnología de las redes neuronales con un buen conocedor de los diferentes aspectos del problema que se va a tratar. b) Existencia de objeciones serias a la utilización de la computación neuronal. El empleo de una red neuronal puede estar limitado por consideraciones de seguridad de funcionamiento, que puede ser un requisito insoslayable en ciertas aplicaciones. Esto puede dar lugar a una restricción crítica, ya que la validación del funcionamiento de una red neuronal siempre se efectúa en términos estadísticos. c) Problemas prácticos relacionados con la obtención de datos. Como ya hemos comentado, el entrenamiento de una red neuronal requiere una amplia colección de datos representativos de una diversa gama de situaciones relacionadas con el problema objeto de estudio. Esto puede hacer necesaria la utilización de una instrumentación especial o que se precise diseñar experimentos específicos para simular condiciones extremas de funcionamiento. En las aplicaciones industriales de la computación neuronal es obligado realizar un análisis del impacto comercial que tendrá el producto obtenido, además de justificar la viabilidad técnica del proyecto de desarrollo de la aplicación correspondiente. Destacaremos seguidamente algunas consideraciones específicas que se pueden hacer sobre los costes del desarrollo, así como los beneficios y riesgos comerciales de una aplicación en el terreno de las redes neuronales. La evaluación de los costes asociados a la recogida de datos debe tener en cuenta varios aspectos que pueden incidir significativamente. En primer lugar, si es necesario recopilar los datos, ha de tener en cuenta el coste de los equipos necesa38 rios para llevar a cabo esa recolección. Si los datos están ya disponibles, será necesario valorar la dedicación precisa para su transferencia a la plataforma donde se va a realizar el desarrollo. Eventualmente los datos pueden estar almacenados en formatos diversos, que es necesario unificar para su procesamiento. Además puede requerirse en ciertas aplicaciones un preprocesamiento de validación y selección de los datos; por ejemplo, en el caso de proceder de fuentes que se sabe son susceptibles de introducir errores aleatoriamente, como es el caso de bases de datos generadas por operadores que teclean directamente los datos en un terminal de operaciones. Entre los beneficios, generales y específicos, que se pueden derivar de la implementación de una solución con una red neuronal se pueden mencionar los siguientes. • En primer lugar, como ocurre con otras tecnologías, la automatización de procesos conduce en última instancia a una reducción de los costes de personal. • La detección precoz de fallos en la maquinaria de producción reduce los tiempos de parada, con lo que aumenta la productividad, y además se reducen así los costes de mantenimiento. • Cuando se mejora la monitarización de un proceso se disminuye la producción defectuosa, con lo que disminuyen los costes de producción. • Además los niveles de calidad de un producto se mejoran, lo que se traduce en una mayor satisfacción de los clientes y una disminución de las eventuales reclamaciones. • Por otra parte, una estimación más ajustada en la previsión de stocks necesarios disminuye su volumen y con ello los gastos de almacenaje. Para finalizar este apartado, daremos una breve descripción de los riesgos posibles que puede tener un proyecto basado en la computación neuronal. Como siempre que se introduce una nueva tecnología, es importante la ponderación cuidadosa de los factores que pueden conducir al fracaso de una iniciativa. Algunos puntos que hay que considerar en este sentido son los siguientes: 39 • La estimación de los costes de recopilación y preprocesamiento de datos puede subestimarse, en especial si es necesario repetir experimentos con equipos costosos. • Es difícil anticipar con precisión las prestaciones finales de una red neuronal. Por ello, siempre es posible que se produzca un déficit de resultados en el comportamiento de la red. Una forma de aliviar este problema consiste en desarrollar alguna solución racional del problema, de fácil implementación, para tomar sus resultados como referencia de las mínimas prestaciones obtenibles. • El deficiente conocimiento de la tecnología neuronal puede repercutir en una elección inadecuada de la aplicación o un diseño ineficiente de la red neuronal. Incluso con una buena base de partida, aún puede surgir la dificultad de obtener los resultados propuestos, si se han exagerado los beneficios potenciales de la computación neuronal. • Los usuarios potenciales pueden resistirse a emplear una tecnología cuya justificación no es estándar, en la medida en que no se puede explicar, con las explicaciones al uso, porque una red neuronal funciona como funciona. 40 7 EL PROYECTO SIENA Recientemente se ha desarrollado un proyecto ESPRIT cuya motivación principal ha sido el recabar información sobre la situación de la computación neuronal en Europa. El proyecto se fijó como objetivo examinar el estado actual de las aplicaciones comerciales de las redes neuronales en el marco de la Unión Europea y a la vez determinar las posibles vías para estimular su desarrollo. Las siglas del proyecto proceden de su denominación, Stimulation Initiative for European Neural Applications (SIENA), que resume su intencionalidad. El proyecto SIENA parte de la idea de que en Europa, aun existiendo una posición razonablemente fuerte en lo que se refiere a investigación y desarrollo tecnológico en el campo de las redes neuronales artificiales, existe un retraso relativo en la implementación industrial y explotación comercial de sus productos, que en todo caso está mucho menos avanzada que en Estados Unidos o Japón. En el desarrollo del proyecto han participado seis instituciones de cinco países europeos, estando España representada por el Instituto de Ingeniería del Conocimiento (ICC), vinculado a la Universidad Autónoma de Madrid. La declaración precisa de objetivos establecida para el proyecto SIENA se concreta en la siguiente lista: • Revisar las posiciones existentes en Europa sobre métodos y herramientas de computación neuronal. 41 • Caracterizar la demanda europea de soluciones y herramientas de redes neuronales. • Identificar cualquier restricción de aplicaciones específica de las redes neuronales. • Difundir los conceptos y beneficios de la computación neuronal entre diferentes categorías de usuarios potenciales en determinados sectores industriales, así como ofrecer los resultados y la experiencia adquirida en diversos proyectos piloto. • Poner en contacto a expertos, suministradores y usuarios de la tecnología de redes neuronales. Completado en 1996, las conclusiones del proyecto SIENA se han hecho públicas en un documento que es accesible a través de Internet. Por su interés recogemos aquí algunas de las más significativas, destacando las que se refieren al caso español. El esfuerzo principal del proyecto se orientó a revisar el mercado existente, tanto en lo que se refiere a suministradores como a usuarios de aplicaciones de redes neuronales. De los primeros se buscó información sobre los productos y servicios que ofrecían para determinar la perspectiva del mercado desde su punto de vista, y de los segundos se obtuvo información sobre el porqué y el cómo se empleaba la computación neuronal. La identificación de los suministradores fue bastante completa, llegando en algunos casos —en particular el de España— hasta el 80%. El total de casos identificados asciende a 168%. Por el lado de los usuarios se reconoce en el informe que los resultados fueron menos satisfactorios, estimándose que su número es entre diez y veinte veces mayor que el de suministradores. La mayoría de los suministradores pertenecen al Reino Unido (32%), Holanda (24%) y Alemania (13%), correspondiendo a España el 8% del total. Los productos y servicios ofrecidos por los suministradores se encuadran en las cinco categorías siguientes: 1) Aplicaciones singulares adecuadas a las necesidades específicas del cliente. 42 2) Aplicaciones estándar de la computación neuronal. 3) Implementaciones estándar de redes neuronales para que el cliente desarrolle su aplicación específica. 4) Consultoría y asesoramiento de los clientes. 5) Transferencia de tecnología, instruyendo al personal en las metodologías de la computación neuronal. Globalmente, por sectores industriales, los productos se ofrecen principalmente (39%) en el sector productivo, en el que están implementadas la mayoría de las aplicaciones en control, monitorización, modelado y optimización. En el caso español este porcentaje asciende al 46%. Otras áreas importantes son el sector de servicios de negocios y mercados (19%) y los sectores bancario, financiero y de seguros (12%). La mayoría de los productos relacionados con la detección y el reconocimiento de patrones, el procesamiento de imágenes, la previsión y predicción, se dan precisamente en este último sector. En el caso español el orden de importancia de estas dos áreas se invierte, ascendiendo a proporciones del 15% y el 23% respectivamente. A fin de dar una versión más equilibrada del mercado, el proyecto analizó también el conjunto de usuarios finales de la tecnología de redes neuronales. Se trataba con ello de resumir el modo en que la computación neuronal se emplea en la práctica, perfilar el tipo de compañías que las utilizan y adquirir una idea de los beneficios que se derivan de la inversión en este campo. Tanto en lo que se refiere a los tipos de aplicaciones como a los sectores industriales donde se utilizan, los resultados son semejantes a los obtenidos en el caso de los suministradores. En lo que se refiere al caso de España, las principales conclusiones que el proyecto presenta son las siguientes. En primer lugar, se destaca la ausencia de apoyos oficiales específicos para la investigación y desarrollo en el campo de la computación neuronal, lo que se relaciona con el, por entonces, escaso conocimiento de los beneficios comerciales que potencialmente ofrece su utilización. Sobre un total de 130 empresas encuestadas, se identificaron 22, que, de 43 una u otra manera, empleaban tecnología relacionada con las redes neuronales. En lo que se refiere a empresas suministradoras, se detectó un total de 14, de las que algunas eran simplemente distribuidoras de productos desarrollados por compañías extranjeras. El área principal de aplicación es, con diferencia, la de sistemas OCR, seguida de las aplicaciones al modelado, predicción y control de procesos. También son significativas las aplicaciones en el sector financiero y bancario, en problemas tales como la segmentación y explotación de datos. En esta visión del caso español, se reconoce la necesidad de hacer análisis de mercado más precisos, así como la conveniencia de iniciar actividades tendentes a difundir el uso de la computación neuronal, incluso en el ámbito de las pequeñas y medianas empresas. Para finalizar, señalemos que, como parte del proyecto SIENA, se ha recopilado una colección de casos de aplicaciones en funcionamiento real en una gama muy amplia de sectores industriales a lo largo de todo el continente europeo. Seguidamente resumimos las descripciones de las contribuciones españolas, todas las cuales fueron desarrolladas por el IIC: • Detección de fraudes en transacciones con tarjetas de crédito. Esta aplicación fue encargada por la firma SEMP, que se encarga de las gestiones relacionadas con la tarjeta VISA para la banca española. Cada día se realizan entre medio y un millón de operaciones con esta tarjeta y es necesario analizar en tiempo real las operaciones de mayor impacto económico para detectar los posibles usos fraudulentos de las tarjetas. La red desarrollada permitió una disminución del fraude cifrada entre el 30 y 40% en los sectores de mayor impacto. • Gestión del suministro de agua potable. El Canal de Isabel II, que se encarga del suministro de agua potable en Madrid, dispone de un sistema de medición constituido por cientos de sensores para regis44 trar el consumo de agua en diferentes sectores y planificar la distribución. En relación con este sistema se plantean dos aplicaciones: en primer lugar, está la validación de las medidas de los sensores, detectando y corrigiendo los posibles fallos y, en segundo lugar, se trata de utilizar estas medidas para predecir el consumo. • Medición en tiempo real de la calidad de polímeros. La aplicación se desarrolló para la empresa Repsol Química. Garantizar la calidad de la producción de un polímero es de gran importancia para las aplicaciones prácticas. Las medidas necesarias para calibrar esta calidad son costosas y técnicamente delicadas, realizándose en el laboratorio cada dos o cuatro horas, período durante el que no hay control directo del producto que se fabrica. La red neuronal implementada permite estimar las características finales del polímero en función del estado de la planta, determinado por el conjunto de variables del reactor. • Sistema neuronal OCR para el procesamiento de demandas de empleo. El Corte Inglés recibe una gran cantidad de demandas de empleo en sus oficinas de personal. Para su procesamiento ha diseñado un formato que recoge la información más importante sobre las cualificaciones de los demandantes. Una vez incorporada a su base de datos, esta información puede ser utilizada para la preselección automática de los demandantes que mejor se ajustan a un empleo concreto. El almacenamiento inicial de los datos es, en todo caso, el trabajo más laborioso. Para reducir su complejidad se ha desarrollado un sistema de lectura automática de los impresos en que los demandantes formulan sus solicitudes. • Sistema neuronal OCR para el procesamiento de información personal. La Delegación en Madrid del Ministerio de Educación tiene anualmente el problema de atender las solicitudes de traslado de destino de sus maestros y profesores, que 45 alcanzan el número de siete mil. Cada solicitud puede incluir una lista ordenada de hasta ciento cincuenta destinos diferentes. En conjunto todo esto supone una considerable carga de trabajo de procesamiento de la información, que además debe ser resuelto con la máxima rapidez, dadas las implicaciones personales que tiene el resultado de la adscripción final. Para automatizar la tarea de recogida de datos se ha empleado una red neuronal que implementa un sistema de reconocimiento óptico de letra impresa. • Sistema neuronal OCR para el procesamiento de órdenes de venta. La empresa Reebook es un conocido fabricante de calzado deportivo que realiza dos importantes campañas de ventas a lo largo del año durante la primavera y el otoño. Esto da lugar a una gran acumulación de pedidos en un corto espacio de tiempo que, por razones obvias, deben ser procesados con la máxima rapidez. Para automatizar el procesamiento de los pedidos, se ha desarrollado una red neuronal que permite su manejo y clasificación. • Sistema neuronal OCR para el procesamiento de impresos de pago. La Tesorería de la Seguridad Social tiene cada mes el problema de procesar los impresos que le envían las empresas con los datos de sus trabajadores, salarios y cantidades deducidas como pagos a la misma. Esto supone tratar con una cantidad de impresos que supera los dos millones, lo que claramente hace necesaria una automatización del proceso de captación de datos. Al igual que en los casos anteriores, se ha implementado un sistema de lectura automática basado en una red neuronal para facilitar el procesamiento de la información. 46 8 CENTROS ESPAÑOLES DE EXPERIENCIA En España existe un buen nivel de experiencia en el campo de la computación neuronal, como se deduce de la existencia de varios grupos activos en este dominio, tanto en el terreno meramente académico como en el de las aplicaciones prácticas. Seguidamente damos una lista de centros donde acudir, tanto para obtener información complementaria sobre los diferentes aspectos de la tecnología neuronal como para recabar cooperación en el desarrollo de algún proyecto o aplicación. Junto a las direcciones de contacto con cada uno de estos centros, se dan resúmenes que describen sus actividades fundamentales en este campo. INSTITUTO DE INGENIERÍA DEL CONOCIMIENTO. UNIVERSIDAD AUTÓNOMA DE MADRID Las actividades del IIC en el área de Redes Neuronales se desarrollan tanto en el campo de la investigación, como en el de desarrollo de proyectos concretos. La investigación neuronal del IIC se centra en dos líneas principales de trabajo: • El estudio de nuevos paradigmas de computación neuronal, tanto de motivación algorítmica como en relación con modelos neurobiológicos. 47 • La aplicación de métodos neuronales a problemas básicos en reconocimiento de patrones, aproximación de funciones o tratamiento de señales y series temporales. Esta investigación se efectúa frecuentemente en colaboración con la ETS de Informática de la UAM y el IIC participa activamente en las distintas convocatorias de los Programas Nacionales de Investigación financiadas por la Comisión Interministerial de Ciencia y Tecnología (CICYT). El IIC mantiene también contactos con otros centros europeos y ha participado en el Executive Board de NeuroNet, una red europea de excelencia en investigación en Redes Neuronales financiada por el programa Esprit. En lo que respecta a actividades de desarrollo, el IIC ha participado en diversos proyectos de aplicación de Redes Neuronales a campos como la modelización industrial o la predicción de demandas o consumos. Sin embargo, el área de desarrollo neuronal más activa del IIC aborda cuestiones de reconocimiento de patrones. Un campo de especial actividad es la aplicación de métodos neuronales al reconocimiento de caracteres. En este campo, el IIC dispone de un producto propio para el reconocimiento de formularios manuscritos, enfocado como solución departamental y cubriendo tanto el reconocimiento en sí como el work flow de documentos, desde su escaneo hasta el almacenamiento en base de datos de los resultados del reconocimiento, pasando por la videocorrección de documentos parcialmente tratados. Además, el IIC dispone de bibliotecas para el reconocimiento masivo de formularios impresos, utilizadas, por ejemplo, en el proceso de efectos bancarios (letras, recibos, pagarés) o de impresos de la Seguridad Social. Otro desarrollo de reconocimiento neuronal de patrones efectuado en el IIC es un sistema de detección en tiempo real de posibles fraudes en actividades de tarjetas de crédito. Dirección de contacto: Prof. José Dorronsoro Instituto de Ingeniería del Conocimiento Universidad Autónoma de Madrid 48 Mod. C-XVI P4 UAM Cantoblanco 28049 Madrid Tfno.: 91 397 85 16 Fax: 91 397 39 72 E-mail: [email protected] URL: http://www.iic.uam.es GRUPO DE REDES NEURONALES. DEPARTAMENTO DE TECNOLOGÍA ELECTRÓNICA. UNIVERSIDAD DE MÁLAGA El grupo nació en 1991 y, desde ese año, se mantiene activo. Se han leído ya cuatro tesis doctorales sobre diversos aspectos de las RNA, todas ellas calificadas con Apto «Cum Laude», por unanimidad. La actividad del grupo está dirigida tanto al aspecto más básico de las RNA, como a sus aplicaciones, habiendo puesto últimamente mayor empeño en las aplicaciones. Investigación más básica • Modelos psicobiológicos de las RNA (en colaboración con la Facultad de Psicología de la Universidad de Málaga). Tratamos de modelar los principales mecanismos de aprendizaje del sistema nervioso de los seres vivos: período de plasticidad sináptica, formación de conceptos y aprendizaje por refuerzo, para lo cual, hemos definido modelos de neuronas, topologías de redes y reglas de aprendizaje que lo puedan llevar a cabo. • Redes neuronales de alto orden. Son una alternativa a las RNA clásicas en aplicaciones relacionadas con el diseño de sistemas autónomos (robots): problemas de optimización, percepción del entorno y tareas de control. 49 • Diseño de RNA mediante algoritmos genéticos. Aquí tratamos de determinar cuál es la mejor red neuronal que resuelve un determinado problema establecido en un conjunto de entradas y salidas; es decir, en vez de utilizar métodos heurísticos para obtener la RNA que resuelve el problema, nosotros, utilizando algoritmos genéticos, de forma automática y transparente para el usuario, determinamos cuáles son la topología, las conexiones y la regla de aprendizaje óptimas. Aplicaciones • Control neuronal en comunicaciones de banda ancha (redes ATM). La red Digital de Servicios Integrados de Banda Ancha (RDSI-BA) soportará servicios multimedia (voz, datos y vídeo), con características de tráfico y requerimientos de calidad de servicio muy variados. Como técnica de transporte se usará el modo de transferencia asíncrona (ATM, Asyncronous Transference Mode), que facilitará el establecimiento de múltiples servicios, muy alta velocidad y variados requerimientos de calidad de servicio. Sin embargo, el inevitable aumento del control y gestión del tráfico, el desconocimiento y dificultad de modelado de los nuevos tipos de servicios y el mantenimiento de un alto grado de flexibilidad, hace inviable el uso de las técnicas actuales de gestión y control. Para este tipo de redes, nuestro grupo ha desarrollado sistemas neuronales para el con trol de admisión (cuándo debe o no admitirse una nueva llamada); funciones de vigilancia (detectar cuándo el usuario ha sobrepasado el tráfico contratado); control de matrices de conmutación (establecer en los nodos de conmutación en redes ATM la forma de satisfacer la ruta de llamadas, evitando el bloqueo interno y externo, y consiguiendo el máximo rendimiento). También, para llevar a cabo todas las funciones anteriores, hemos dise50 ñado un conjunto de herramientas de desarrollo a fin de caracterizar, modelar y generar tráfico ATM, así como realizar estimación de parámetros de calidad de servi cio. • RNA en Redes Eléctricas de Transporte. La red eléctrica de transporte corresponde a la red mallada de alta tensión, por encima de los 100.000 voltios, y su control y gestión es de vital importancia para las compañías eléctricas. Nosotros hemos aplicado las RNA a tres problemas concretos: estimación de estado, estimación topológica y predicción de carga eléctrica a corto plazo. La estimación de estado es el proceso de asignar valores a variables de estado desconocidas de la red (magnitudes del voltaje y ángulos de fase en cada nodo), y es una función crítica en los sistemas de control de energía; nuestro sistema neuronal consigue mejores resultados que el sistema clásico, si bien aún no es competitivo en tiempo de cómputo. Uno de los problemas típicos de los estimadores de estado clásicos es que no son capaces ni de detectar ni de corregir posibles errores en el estatus de los conmutadores («breaker») de la red, por lo que la información topológica de la red puede ser incorrecta, lo cual invalidaría el proceso de estimación de estado. Para solventar este problema, el grupo ha desarrollado un estimador topológico neuronal, que detecta e identifica errores topológicos en tiempo real (on-line); el proceso de estimación es local, permitiendo la detección y corrección de errores topológicos en cada bus de la red, por lo que se pueden detectar y corregir múltiples y simultáneos errores topológicos, siempre que correspondan a buses que no están directamente conectados; por lo demás, la arquitectura es inmune a grandes cambios en la curva de consumo de potencia. La predicción de carga eléctrica a corto plazo juega un papel muy importante en la operación económica y segura de los sistemas de potencia. Una predicción de carga precisa permite una apropiada programa51 ción y planificación con costes mucho más bajos en el funcionamiento de los sistemas de potencia. Nuestro sistema de predicción de carga neuronal a corto plazo presenta ventajas significativas respecto a los predictores clásicos basados en técnicas estadísticas: es más robusto, es transportable, siendo válido para cualquier sistema, es adaptativo, y es competitivo en cuanto a los errores de predicción; el sistema clasifica los datos dependiendo de su similitud, de forma que la hora que se quiere predecir se hace a partir de los datos más análogos a los demandados. Dirección de contacto: Prof. Francisco Sandoval Hernández Dept. Tecnología Electrónica ETSI Telecomunicación Universidad de Málaga Campus Universitario de Teatinos 29071 Málaga Tfno.: 952 13 13 62 Fax: 952 13 14 47 E-mail: [email protected] URL: http://www.dte.uma.es/ GRUPO AHA (Arquitecturas Hardware Avanzadas y Redes Neuronales). DEPARTAMENTO DE INGENIERÍA ELECTRÓNICA. UNIVERSIDAD POLITÉCNICA DE CATALUÑA El grupo AHA (Arquitecturas Hardware Avanzadas y Redes Neuronales) está constituido alrededor de los profesores Joan Cabestany (responsable), Juan Manuel M o reno y Jordi Madrenas, del Departamento de Ingeniería Electrónica de la Universidad Politécnica de Cataluña (UPC). El grupo constituye una Sublínea de Investigación oficial de la UPC, y desarrolla su actividad 52 en el marco de la Investigación y Desarrollo en las áreas que le son propias, como la realización hardware de Modelos de Redes Neuronales Artificiales, utilizando alternativas analógicas y digitales. El trabajo sobre el establecimiento de una metodología para la aplicación efectiva de soluciones neuronales (conexionistas) para la solución de problemas constituye una actividad continuada por parte de los miembros del grupo. Otras áreas de interés del grupo incluyen las Arquitecturas Hardware Paralelas, los sistemas basados en Microprocesadores, Microcontroladores y DSP, el diseño VLSI analógico y digital y las soluciones basadas en lógica difusa «fuzzy logic». Hagamos una breve reseña de los proyectos de I+D relacionados con el tema: 1) ELENA-Enhanced Learning for Evolutive Neural Architectures (1992-1995). Financiación: UE Proyecto Esprit III BRA (n 6891). Este proyecto tuvo como objetivo proponer modelos neuro-nales evolutivos para aplicaciones prácticas. Con este propósito, el trabajo estuvo concentrado en tres ejes: Teoría, Simulación e Implementaciones Hardware. 2) Arquitecturas neuronales evolutivas para la aplica ción en la clasificación de patrones (1992-1995). Financiación: CICYT, TIC92-629. Este proyecto fue dirigido a la selección y mejora de aquellos paradigmas neuronales evolutivos que fuesen más adecuados para resolver tareas de clasificación. Fue creada una completa librería de módulos escritos en lenguaje C para usar en test y bancos de prueba. 3) Técnicas de procesado neuronal. Análisis y su aplicación a entornos reales (1996-1999). Financiación: CICYT, TIC96-0889. Este proyecto pretende el establecimiento de una cierta metodología para la resolución de problemas de entorno reales, basados en técnicas de conexionismo (redes neuronales). 53 Otras colaboraciones: • Sistema de predicción del proceso de fermentación en los vinos. • Sistema automático de clasificación de monedas en tiempo real. • Sistema de ayuda al diagnóstico, empleando técnicas analíticas de electroforesis. • Sistema para el reconocimiento de caracteres escritos a mano (off-line). • Contribución a la mejora de la capacidad de predicción de movimiento de la superficie marina utilizando imágenes de satélite. Dirección de contacto: Prof. Joan Cabestany Grupo AHA. Departamento Ingeniería Electrónica-UPC Gran Capitán, s/n., Edificio C4 08034 Barcelona Tfno.: 93 401 67 42 Fax: 93 401 67 56 E-mail: (cabestan, moreno, madrenas)@eel.upc.es URL: http://petrus.upc.es/~microele/neuronal/aha_éhome.html GRUPO DE SISTEMAS INTELIGENTES. DEPARTAMENTO DE ELECTRÓNICA Y COMPUTACIÓN. UNIVERSIDAD DE SANTIAGO DE COMPOSTELA El Grupo de Sistemas Inteligentes (GSI) de la Universidad de Santiago de Compostela cuenta entre sus líneas de investigación con una orientada a la computación neuronal [2]. La investigación desarrollada en este marco tiene varias vertientes, que van desde la investigación muy ligada a la biología hasta aspectos puramente aplicados. En el primer caso 54 [5], la investigación se realiza en el marco de los Laboratorios de Neurociencia y Computación Neuronal (LANCON) de la Universidad de Santiago de Compostela, que operan como Unidad Asociada de I+D del Instituto Cajal del CSIC, desde abril de 1996, y del que el GSI es miembro fundador. En cuanto a la vertiente aplicada, el GSI trabaja tanto en el diseño de nuevas propuestas de redes neuronales artificiales [3, 6] como en su aplicación a la percepción sensorial y el reconocimiento de patrones sobre señales unidimensionales e imágenes. Concretamente, se han desarrollado aplicaciones reales para el reconocimiento de nódulos pulmonares en radiografías de tórax [1], para la clasificación morfológica de latidos sobre señal electrocardiográfica multicanal [7] y para la percepción sensorial en robots móviles [4]. Actualmente se está iniciando una nueva línea de aplicaciones orientadas al desarrollo de sensores inteligentes en colaboración con un grupo de investigación en óptica integrada. Finalmente, entre las actividades del grupo consta también la de ser un Nodo Asociado de la «Red de Excelencia Europea en Redes Neuronales (NeuroNet)», establecida en el marco del programa ESPRIT III de la Comisión Europea. REFERENCIAS BIBLIOGRAFICAS 1. S. Barro, M. Penedo, D. Cabello y J. M. Pardo. «Artificial neural network based processing in a system for lung nodule detection». Conference of the Australian Pattern Recognition Society (DICTA-93), Diciembre, Sydney (Australia), ISBN: 0-646-16522-4, pp. 79-86, 1993. 2. Senén Barro y José Mira (Eds.), «Computación Neuronal». Servicio de Publicaciones de la Universidad de Santiago de Compostela. ISBN: 84-8121-355-1, 1995. 55 3. M. Fernández-Delgado, C. Vázquez, E. Sánchez y S. Barro. «MART: una red neuronal para la clasificación de patrones multicanal». Inteligencia Art i f i c i a l . Monografía Especial dedicada a las Redes Neuronales Artificiales. No. 1, pp. 8-15, 1997. 4. Iglesias, R.; Regueiro, C. V.; Correa, J., y Barro, S.: «Implementation of a basic reactive behaviour in mobile robotics through artificial neural networks». En: «Biological and Artificial Computation: From Neuroscience to Technology», José Mira, Roberto Moreno-Díaz y Joan Cabestany (Eds.), Springer-Verlag, pp. 1364-1373, 1997. 5. E. Sánchez, S. Barro y otros: «Computational simulation of the principal cuneate nucleus projection neuron». Workshop on Principles of Neural Integration. Madrid, septiembre, p. 62, 1997. 6. M. Fernández-Delgado y S. Barro. «MART: Multichannel ART-based neural network». IEEE Transactions on Neural Networks. Vol. 9, No. 1, pp 139-150, 1998. 7. S. Barro, M. Fernández-Delgado, J. A. Vila, C. V. Regueiro y E. Sánchez: «An adaptive neural network for the classification of electrocardiographic patterns on multichannel ECG». IEEE Engineering in Medicine and Biology Magazine, número especial de «Analysis and Acquisition of Multichannel Data in Electrocardiography». Vol. 17, No. 1, pp. 45-55, 1998. Dirección de contacto: Prof. Senén Barro Ameneiro Dept. de Electrónica e Computación Grupo de Sistemas Inteligentes Universidad de Santiago de Compostela 15706 Santiago de Compostela Tfno.: 981 56 31 00. Ext. 13560 Fax: 981 59 94 12 E-mail: [email protected] URL: http://elgsi.usc.es 56 GRUPO DE REDES NEURONALES. DEPARTAMENTO DE INGENIERÍA ELECTRÓNICA Y COMUNICACIONES. UNIVERSIDAD DE ZARAGOZA Líneas de trabajo: aplicaciones de las redes neuronales artificiales, análisis de datos, realización hardware y software. Proyectos realizados Proyectos financiados por la Universidad de Zaragoza: • Determinación de situaciones de quiebra bancaria mediante redes neuronales artificiales. 1993-1994. • Visualización de datos para ayuda a la toma de decisiones mediante redes neuronales, 1995. Zaragoza. 1996. Proyectos financiados por el Seminario Interdisciplinar de Zaragoza: • Caracterización de cerámicas vidriadas romanas mediante el estudio de la composición química del cuerpo cerámico con redes neuronales artificiales. 1997-1998. Proyectos financiados por empresas: • Previsión de la demanda eléctrica horaria mediante el empleo de Redes Neuronales Artificiales. Proyecto de Investigación Electrotécnico PIE-150028, financiado por OCIDE, liderado por Eléctricas Reunidas de Zaragoza, con la participación de otras compañías eléctricas. 1993-1994. Publicaciones Nuestro trabajo ha dado lugar a múltiples publicaciones en congresos y revistas especializadas, así como al siguiente libro de texto: 57 B. Martín del Brío, A. Sanz Molina. «Redes Neuronales y Sistemas Borrosos. Introducción Teórica y Práctica». Editorial RA-MA, Madrid, 1997. Asimismo, hemos impartido diversos cursos y seminarios introductorios, destacando los que se han llevado a cabo en las últimas cuatro ediciones de la Universidad de Verano de Teruel (http://www.unizar.es/univerter/inicio.html). Dirección de contacto: Prof. Bonifacio Martín del Brío y Armando Roy Yarza Dept. Ingeniería Electrónica y Comunicaciones Universidad de Zaragoza Corona de Aragón, 35 50009 Zaragoza Tfno.: 976 35 16 09 Fax: 976 76 21 89 E-mail: [email protected] GRUPO DE REDES NEURONALES. DEPARTAMENTO DE MATEMÁTICA APLICADA A LAS TECNOLOGÍAS DE LA INFORMACIÓN. UNIVERSIDAD POLITÉCNICA DE MADRID El Grupo de Redes Neuronales se creó en 1991 y está compuesto por cuatro profesores, un becario de doctorado de la UPM, y varios estudiantes en fase de realización de sus tesis doctorales. Entre sus antiguos integrantes hay diversos profesionales en empresas del sector de la telecomunicación. El Grupo ha contribuido en diferentes conferencias tanto nacionales como internacionales con más de 20 publicaciones. Además, en él se han dirigido una veintena de proyectos fin de carrera. La investigación realizada hasta la fecha ha sido parcialmente subvencionada por organismos oficiales (CICYT, CAM, UPM) y entidades privadas, mediante la realización de proyectos. 58 Líneas de Investigación 1) Integración multisensorial, fusión de datos y control de robots El Grupo ha realizado los proyectos «Integración multisensorial y control inteligente en tiempo real para robots mediante redes neuronales», y «Fusión de datos audiovídeo para robótica mediante redes neuronales», subvencionados por la CICYT, y «Control de sistemas autónomos mediante redes neuronales», subvencionado por la CAM. En dichos proyectos se estudia el potencial de las redes neuronales para realizar integración de información proveniente de múltiples sensores y fusión de datos en tiempo real. Asimismo, se considera la integración de dichos algoritmos, mediante paradigmas neuro-simbólicos (basados en modelado geométrico, modelado sensorial o aprendizaje reactivo), con diferentes algoritmos de control para obtener comportamientos inteligentes en entornos no estructurados. Para la evaluación de los algoritmos se dispone de un robot Nomad-200 dotado de sistemas sensoriales de visión, láser, ultrasonidos, infrarrojos, táctiles y brújula digital. Asimismo, se ha construido un brazo articulado gestionado a bajo nivel mediante una arquitectura con DSP. 2) Reconocimiento de patrones Esta línea considera diferentes paradigmas: supervisados, modificados para reconocimiento invariante a traslaciones, rotaciones y escalado; o redes autoasociativas. En relación con el guiado de robots, se han empleado paradigmas supervisados para reconocer objetos o extraer parámetros de un entorno de trabajo. 3) Codificación y compresión de Imágenes Se ha realizado, mediante Mapas Topológicos Autoorganizativos, cuantificación vectorial para codificación 59 de imágenes. Alternativamente se han estudiado redes de tipo hebbiano (Oja, Sanger y Rubner) para extracción de componentes principales en matrices de correlación y su aplicación en codificación y compresión de imágenes. Por otro lado, se ha diseñado un compresor de secuencias de vídeo basado en el entrenamiento de redes neuronales celulares en arquitecturas realimentadas. 4) Identificación/Control de sistemas Esta línea se inició dentro del proyecto «Identificación y control de sistemas no lineales mediante redes neuronales», subvencionado por IBERDROLA. Se han empleado redes realimentadas para predicción de series temporales, generación artificial de series horarias de radiación y control adaptativo indirecto. Asimismo, se han desarrollado controladores neuronales para el control de sistemas no lineales con gran variabilidad de entornos. Finalmente, se están combinando paradigmas neuronales con técnicas como la de «Cell Mapping» para el diseño de controladores óptimos en sistemas altamente no lineales. Dirección de contacto: Prof. Pedro Zufiría Zarataín Dept. Matemática Aplicada a las Tecnologías de la Información ETSI de Ingenieros de Telecomunicación Universidad Politécnica de Madrid 28040 Madrid Tfno.: 91 336 72 84 Fax: 91 336 72 89 E-mail: [email protected] URL: http://mat.upm.es/~grn 60 DIVISIÓN DE INGENIERÍA DE SISTEMAS Y AUTOMÁTICA (DISAM). ETSI DE INGENIEROS INDUSTRIALES. UNIVERSIDAD POLITÉCNICA DE MADRID UPM-DISAM tiene una experiencia de seis años en la utilización de diversos tipos de redes neuronales para aplicaciones industriales en los campos de reconocimiento de patrones visuales en Sistemas Inspección Visual Automática y en modelado y control de procesos industriales continuos. Igualmente desde 1993 se imparten las dos asignaturas siguientes dentro de sus programas de doctorado: • Reconocimiento de Patrones y Redes Neuronales en Visión por Computador. • Control Neuronal. Los proyectos en los que se ha utilizado de forma significativa algún tipo de red neuronal son los siguientes: • Sistema de clasificación de defectos superficiales en banda de acero circulando a alta velocidad mediante una nueva arquitectura de red neuronal: ARM. – Programa CECA de la Unión Europea en colaboración con EES (UK), CENIM-CSIC (E) y ENSIDESA (E) 1991-1995. – Palabras clave: Redes neuronales, control de calidad, inspección visual automatizada, reconocimiento de patrones. – Objetivo: Desarrollo de un sistema de control de calidad en línea, con clasificación del producto según un estándar. • Sistema de Control de Calidad en Tiempo Real para la Detección y Clasificación de Defectos Visuales en Planchas de Aluminio. – Proyecto europeo BRITE CT91-0393 en colaboración con ALURES (I), SECAD (F), GAMMA SOFTWARE (I) y COMSAL(I) 1992-1995. 61 – Palabras clave: Inspección Visual Automatizada, análisis textural, modelización de la iluminación, reconocimiento de patrones, sistemas híbridos. – Objetivo: Detección y reconocimiento de defectos superficiales en planchas de aluminio, incluyendo cambios texturales. • SINCRO: Sistema Inteligente de Control del Proceso Cerámico mediante el Uso de Metodología AMFE. – Empresa Nacional del Uranio (ENUSA) 1995-1996. – Palabras clave: AMFE, Control borroso, Redes neuronales. – Objetivo: Desarrollo de una herramienta para el Análisis Modal de Fallos y Efectos, para el control de un proceso de fabricación de barras de combustible en reactores nucleares. • MITA: Metodología de Integración y Técnicas Avanzadas de control Inteligente de procesos continuos. – Comisión Interministerial de Ciencia y Tecnología. TAP94-0086. 1994-1997 – Palabras clave: Técnicas de integración, Control Inteligente, Procesos complejos, Técnicas Borrosas, Redes Neuronales y Algoritmos genéticos. – Objetivo: Desarrollo de una metodología de integración de técnicas de control inteligente para procesos continuos. Dirección de contacto: Prof. Pascual Campoy Dept. Automática, Ingeniería Electrónica e Informática Industrial ETSI de Ingenieros Industriales José Gutiérrez Abascal, 2 28006 Madrid Tfno.: 91 336 30 61 Fax: 91 564 29 61 E-mail: [email protected] URL: http://www.disam.upm.es 62 9 LAS REDES NEURONALES EN LA RED INTERNET De igual manera que en tantos otros temas, la red Internet es una de las mejores fuentes de información, tanto teórica como práctica, sobre cuestiones relacionadas con la computación neuronal. Como sucede con frecuencia, la información existente es tan amplia y variada que resulta excesiva, siendo difícil orientarse hacia lo que más interesa en la maraña de páginas disponibles. Seguidamente damos una serie de referencias generales, que pueden resultar de utilidad para una primera y rápida aproximación. Desde una perspectiva empresarial, algunas de las páginas más interesantes son las generadas dentro de un proyecto del DTI (Department of Trade and Industry, el Ministerio de Industria y Comercio británico) para difundir las ideas de la computación neuronal en el Reino Unido. Este proyecto se desarrolló entre los años 1994 y 1996 con un presupuesto de casi cinco millones de libras, lo que da una idea de la importancia que se le concedía. La información generada se encuentra disponible en la DTI NeuroComputing Web, cuya dirección es: http://www.globalweb.co.uk/nctt/ A partir de la página inicial se enlaza con otras en la que se presenta información sobre desarrollo de aplicaciones, ejemplos de utilización, direcciones de suministradores, etc. Asimismo existen unas páginas, enlazadas en un sistema 63 hipertexto, que proporcionan una introducción simple a las nociones básicas de la computación neuronal. Estas páginas están agrupadas en un conjunto denominado NeuroBook. Una versión más actualizada de este NeuroBook se puede conseguir desde la dirección de SPSS, una firma especializada en software estadístico, que es la siguiente: http://www.spss.com/software/Neuro/Licagrmt.html A un nivel más general, resulta interesante acceder a las páginas Web de NeuroNet, que es la red creada por la Comisión Europea ESPRIT para agrupar a los mejores centros de investigación y desarrollo en redes neuronales. Esta red consiste en unos treinta nudos académicos y siete industriales diseminados por toda Europa. La dirección del servidor NeuroNet es: http://www.neuronet.ph.kcl.ac.uk/ A partir de aquí se puede conseguir información sobre reuniones y conferencias, software disponible, sociedades especializadas, etc. También resultan interesantes las páginas Web del Pacific Nothwest National Laboratory, cuya dirección es: http://www.emls.pnl.gov:2080/docs/cie/neural/ En particular se encuentra una dilatada relación de aplicaciones comerciales en la página: http://www.emls.pnl.gov:2080/docs/cie/neural/products/ Los diferentes documentos del proyecto SIENA, en particular las descripciones de aplicaciones reales, se pueden consultar a partir de la dirección: http://www.mbfys.kun.nl/snn/siena/ Para adquirir una visión sobre el uso de hardware en la computación neuronal, es recomendable la página titulada Neural Networks in Hardware, Architectures, Products and Applications, creada por Clark S. Lindsey y cuya dirección es: http://msia02.msi.se/~lindsey/HardwareNNWCCourse/ home.html 64 Existe una página FAQ (Frequently Asked Questions) sobre redes neuronales con una amplia información sobre multitud de cuestiones relacionadas con las redes neuronales. Su dirección es: ftp://ftp.sas.com/pub/neural/FAQ.html Para finalizar esta relación daremos dos páginas donde se encuentran más listas diferentes de direcciones. La primera se titula Neural Networks WEB in Europe y su dirección es: http://www.hds.univ-compiegne.fr/~scanu/euroweb.html La segunda, creada por la compañía Neural Innovation Ltd., se titula Useful Neural Network WWW Sites y tiene por dirección: http://www.neural.co.uk/nnwww.html 65 11 apéndice 16/3/99 08:43 Página 67 A APÉNDICE: FUNDAMENTOS DE LA COMPUTACIÓN NEURONAL A1. GENERALIDADES En este apéndice se da una descripción más detallada de los fundamentos de la computación neuronal. Aunque el nivel de la exposición es ligeramente superior al del resto del documento, el lenguaje que se emplea es relativamente asequible, limitándose al máximo la terminología matemática utilizada. Como quedó dicho en la introducción, las redes neuronales son esencialmente sistemas de procesamiento de la información, cuya estructura está inspirada por lo que conocemos de la estructura y funcionamiento del cerebro humano y de los animales superiores. Aunque hoy en día ya no sea cierto que las redes neuronales artificiales tengan por referencia absoluta el sistema nervioso, merece la pena dar una descripción rápida de las neuronas biológicas para mejor comprender la estructura que adoptan los elementos básicos de una red neuronal. Como es bien sabido, la estructura básica del sistema nervioso fue descubierta por el español Santiago Ramón y Cajal, descubrimiento que mereció el premio Nobel en 1906. El cerebro humano tiene un número de neuronas, o células nerviosas, del orden de cien mil millones de células. Aunque existen muchos tipos de neuronas, su estructura básica es la representada esquemáticamente en la figura 1.1. 67 11 apéndice 16/3/99 08:43 Página 68 Figura 1.1. Representación esquemática de una neurona. Dendritas Axón Soma En cada célula se aprecia un cuerpo o soma, en el que se sitúa el núcleo de la célula, del que salen diversas ramificaciones. Una de las ramas, el axón, se distingue por su mayor tamaño y, a su vez, termina en una arborescencia. Las ramificaciones más pequeñas que salen del soma se denominan dendritas. Cada célula se enlaza con otras células a través de las ramificaciones de su axón. El enlace se efectúa mediante las uniones sinápticas o sipnasis, que pueden realizarse con las dendritas o el soma de las otras células. La transmisión de la información de una célula a otra se efectúa como consecuencia de un proceso químico complejo, que tiene como resultado la liberación en las sinapsis de transmisores químicos específicos. El efecto en la célula receptora es la elevación o disminución de un potencial eléctrico dentro del soma. Cuando este potencial alcanza un cierto umbral, la célula emite a su vez, a través de su propio axón, un pulso de señal eléctrica de duración e intensidad determinadas. En una imagen eléctrica, podría decirse que la célula actúa como una combinación de un acumulador y un amplificador. Cuando una neurona se descarga, ha de pasar un período de tiempo, unos milisegundos, hasta que está de nuevo preparada para actuar. Esto hace que, comparada con la velocidad de transmisión en un computador, la velocidad de propagación de la señal en el sistema nervioso sea reducida, aproximadamente un millón de veces menor. Sin 68 11 apéndice 16/3/99 08:43 Página 69 embargo la gran cantidad de sinapsis existentes, entre mil y diez mil por cada neurona, hace que el grado de conectividad del cerebro sea muchísimo mayor que el del más grande de los supercomputadores actuales. Los modelos de redes neuronales artificiales combinan modelos matemáticos de las células nerviosas y modelos de arquitecturas que describen las interconexiones que existen entre estas células. Aunque existen modelos muy completos del funcionamiento de una neurona real, el que se emplea comúnmente en las redes artificiales es muy simple. Se supone que la información que una neurona recibe de cada una de aquellas con las que está conectada se resume en un número que mide la frecuencia de la excitación. La integración de todas las excitaciones se reduce a un proceso de sumación de estos números, afectados de unos coeficientes de ponderación. Cada uno de estos coeficientes se denomina peso sináptico, pues mide la intensidad de la sinapsis o conexión entre las neuronas receptora y emisora. El resultado de esa suma representa la actividad interna de la célula. La señal que emite la neurona es el valor que una cierta función toma cuando su argumento se identifica con el número que mide esa actividad interna de la célula. Esta función se denomina función de transferencia de la célula. La figura 1.2 presenta un esquema del modo de procesamiento de este modelo de neurona. Figura 1.2. Esquema del procesamiento en una neurona formal. Pesos ajustables Umbral Función de transferencia Entradas 69 Actividad Salida 11 apéndice 16/3/99 08:43 Página 70 El tipo de función que se emplea como función de transferencia de la neurona es muy variado. La más sencilla, y que fue la que se empleó en los primeros modelos, es la función signo que devuelve el valor 1 si la actividad es positiva y el valor –1 si es negativa. En ciertos casos es conveniente utilizar una aproximación de la función signo que varíe suavemente, sin transiciones bruscas. Una muy utilizada es la denominada función sigmoide, cuya gráfica tiene el aspecto de una «s» alargada y se representa en la figura 1.3. Figura 1.3. Gráfica de una función signoide. +1 -1 Al igual que en el sistema nervioso, una red neuronal se configura a base de interconectar un conjunto de neuronas de manera que las salidas de unas constituyen las entradas de otras. Aunque existen muchos modelos de arquitecturas concretas de redes neuronales, todas ellas tienen en común el utilizar una multitud de neuronas con un gran número de conexiones entre ellas. La función que cada neurona desarrolla en la red es la de un elemento básico de procesamiento, y es la cooperación de todas las neuronas lo que produce los efectos deseados. Así pues, una red neuronal actúa como un sistema de procesamiento distribuido, en el que la carga computacional se reparte a lo largo de toda la red. Este tipo de arquitectura, por su redundancia de ele70 11 apéndice 16/3/99 08:43 Página 71 mentos de cómputo, produce una distribución de la información a lo largo de toda la red, confiriéndole una gran robustez de funcionamiento. Con frecuencia las neuronas de la red se agrupan en capas y las neuronas de cada una de estas capas reciben a la vez la misma información que procesan independientemente. Esto introduce un alto grado de paralelismo, lo que hace que una red neuronal pueda ser considerada como un sistema masivamente paralelo. Esta característica es la que da una gran potencia de cálculo a las redes neuronales, permitiéndoles que operen en tiempo real con la información que llega a la red. Es interesante apreciar cómo opera una red neuronal. Puede decirse que cada una de sus neuronas componentes almacena internamente una cantidad muy pequeña de información, ya que realmente se limita a su nivel de actividad. Esta información se utiliza como lo que se denomina una memoria de trabajo a corto plazo (en inglés short term memory). Como la red almacena realmente información es modificando la intensidad de las conexiones entre sus neuronas. Para ello se ajustan convenientemente los valores de los pesos sinápticos, implementando con ello lo que se denomina memoria a largo plazo (long term memory). El empleo de las conexiones entre las neuronas —no de lo que sería la memoria interna de las mismas— como elemento fundamental para el almacenamiento de información, hace que este tipo de organización de las redes neuronales sea denominado arquitectura conenexionista. El procedimiento por el que una red neuronal almacena la información es conocido como entrenamiento de la red. Esto es debido a que se imita el modo de aprendizaje de una determinada disciplina a base de la repetición de ejercicios con ella relacionados. Así, una red neuronal adapta progresivamente los pesos sinápticos de las conexiones entre sus neuronas a base de observar ejemplos de los datos que debe clasificar o de los pares entrada-salida que debe realizar. 71 11 apéndice 16/3/99 08:43 Página 72 El modo concreto en que se efectúa ese aprendizaje depende del tipo de utilización que se pretende implementar con la red, pero en cualquier caso el aspecto esencial es que el ajuste se hace teniendo presentes exclusivamente los datos del problema que se quiere resolver. Es decir, no se hace ningún análisis previo que los preclasifique ni tampoco se postula ninguna hipótesis que presuponga un modelo de cómo se relacionan. Básicamente se distinguen dos tipos de aprendizaje, que se califican de supervisado y no supervisado, si bien existen otros, como el aprendizaje por refuerzo, de distintas características. El aprendizaje supervisado es el típico de las redes concebidas para el ajuste de datos o la clasificación de ítems etiquetados. El aprendizaje no supervisado caracteriza las redes en las que los datos no tienen a priori ningún tipo de clasificación, siendo precisamente la función que se desea implementar con la red la detección de las regularidades intrínsecas de los datos para elaborar la mejor clasificación posible, partiendo exclusivamente de ellos. La figura 1.4 ilustra las diferencias entre ambos tipos de aprendizaje. Figura 1.4. Aprendizaje supervisado y no supervisado. Aprendizaje supervisado Entrada Red adaptativa Salida real W Error Salida deseada Aprendizaje no supervisado Entrada Red adaptativa W 72 11 apéndice 16/3/99 08:43 Página 73 El proceso de aprendizaje de una red puede ser lento y laborioso. Esto es debido en parte a la necesidad de adquirir buenos datos para el entrenamiento de la red, que exige un análisis y tratamiento previo de los mismos. Por otra parte, el ajuste de ciertos parámetros de la red, como el número de capas o el número de neuronas por capa, sólo se puede realizar tras una serie de ensayos que permitan decidir cuales son los valores razonablemente adecuados. Finalmente, la obtención de un nivel razonable de convergencia de los algoritmos de aprendizaje, que requieren típicamente varias pasadas de los datos de entrenamiento, puede ocupar mucho tiempo de cálculo efectivo. Existe una gran variedad de redes neuronales y no es fácil proceder a su clasificación. De acuerdo con Kohonen, las redes generales pueden agruparse en tres grandes clases, cada una de las cuales aglutina a redes basadas en diferentes concepciones de funcionamiento. Estas tres clases son las Redes unidireccionales, las Redes recurrentes y las Redes auto-organizadas. A continuación damos una descripción somera de las funciones de cada uno de estos tipos de red. Redes unidireccionales (Feedforward Networks) Estas redes están concebidas para transformar un conjunto de datos especificado en otro también especificado. Cada dato de entrada tiene uno correspondiente de salida, y el objetivo es que la red sintetice esta transformación, permitiendo además la generalización a base de extrapolar a pares de datos semejantes. Así pues, los datos de aprendizaje de la red son pares entrada/salida, que la red debe realizar tras la fase de entrenamiento. El aprendizaje es supervisado y tiene lugar a través de un proceso de ajuste de los pesos sinápticos de las neuronas de la red, en forma tal que se satisfaga algún tipo de criterio de aproximación u optimización. Típicamente, la arquitectura de una red de este tipo es la de una red multica73 11 apéndice 16/3/99 08:43 Página 74 pa, donde las neuronas de cada capa están enlazadas con las de la siguiente. El prototipo de estas redes es el perceptrón multicapa, que después estudiaremos con cierto detalle. Redes recurrentes (Feedback Networks) Principalmente estas redes están concebidas para almacenar eficientemente información, de manera que cada ítem registrado se recupere con facilidad cuando la red se excita con una entrada similar. La red funciona como un sistema dinámico cuyos puntos de equilibrio representan los registros almacenados. Un dato de entrada a la red se interpreta como el estado inicial del sistema, a partir del cual evoluciona hasta alcanzar el equilibrio, cuyo registro se toma como salida o respuesta de la red. El entrenamiento de la red consiste en ajustar sus pesos de manera que los puntos de equilibrio se ajusten a los registros especificados. Típicamente la arquitectura de estas redes es la de una red monocapa con una gran realimentación entre todas las neuronas. El modelo más conocido es la red de Hopfield, de la que se han derivado otros más complejos como las memorias bidireccionales o la red de Boltzmann. Redes auto-organizadas (Self-Organizing Networks) Estas redes están concebidas para estructurar la información que se presenta a la red, que debe organizarla utilizando exclusivamente los datos. La tarea básica de una red de este tipo es la clasificación autónoma de una serie de datos de entrada, clasificación que debe efectuar a la vez que detecta los tipos de datos presentes. Típicamente estas redes se entrenan mediante el tipo de aprendizaje no supervisado que se denomina competitivo. Cada neurona de la red tiene un cierto grado de conexión con neuronas colaterales, e interaccio74 11 apéndice 16/3/99 08:43 Página 75 na con ellas, para adaptarse específicamente como detector de alguno de los tipos de datos presentados a la red. La clasificación anterior no debe considerarse taxativamente, puesto que existen redes de naturaleza híbrida que comparten características de dos o más de los grupos anteriores. Actualmente sí es cierto que resumen los tipos más importantes de redes, y posteriormente analizaremos en detalle sus características. A2. EL PERCEPTRÓN MULTICAPA El problema genérico más simple que resuelven las redes neuronales es la síntesis de sistemas que realizan una determinada asociación de datos entrada/salida. La red es una especie de caja negra cuyos parámetros internos, los pesos sinápticos de las neuronas, se ajustan de manera que ante cada entrada responda de una manera preestablecida. Este problema de asociación puede ser concebido en primer lugar como un problema de aproximación de funciones. En este supuesto los datos de entrada y salida son números o, en una situación más general, vectores multidimensionales, y lo que se pretende es que la red efectúe un ajuste entre esos datos como el que se realiza en un proceso de interpolación o de regresión. Se pretende, pues, que el valor real de la salida generada por la red, cuando se estimula con un cierto dato de entrada, se parezca lo más posible al correspondiente dato de salida. Existen muchas técnicas matemáticas para abordar este problema de aproximación, que estamos planteando en términos tan generales. El procedimiento más adecuado depende del problema concreto. Realmente lo más interesante de la utilización de una red neuronal es que la red ofrece en general una gran capacidad de generalización, y esto es así, aparentemente, con independencia de la naturaleza del problema que se trate. Quiere esto decir que, si se extrapola la transformación definida por una red, tras ser sometida a un proceso de entrenamiento convenien75 11 apéndice 16/3/99 08:43 Página 76 te, a unos datos similares a los empleados en el aprendizaje, la red suele dar muy buenos resultados. Una segunda perspectiva del problema de asociación se refiere a los problemas de clasificación de datos. Aquí lo que se trata es de que la salida de la red, ante cada dato de entrada, permita decidir la clase a la que pertenece ese dato de entrada. No interesa tanto el valor concreto de la salida como su capacidad de discriminar el dato que ha servido de entrada a la red. Este es un problema típico del reconocimiento de patrones. Las redes ofrecen una gran capacidad de sintetizar funciones discriminantes no lineales, que es un problema no resuelto satisfactoriamente con las técnicas clásicas. La naturaleza de estos problemas de síntesis entrada/salida hace que el tipo de red neuronal más adecuado sea una red de las que antes denominamos unidireccionales (en inglés feedforward). El modelo más utilizado es el perceptrón. La arquitectura del perceptrón más general es la de una red multicapa. Las neuronas están dispuestas en una sucesión jerarquizada de grupos, las capas de la red, de manera que las neuronas de cada capa reciben información de las de la capa precedente y la transmiten a la capa siguiente. Dentro de cada una de las capas de la red las neuronas no están interconectadas. La figura 2.1 representa esquemáticamente una red de tres capas. Figura 2.1. Perceptón con dos capas ocultas. Capas ocultas Capa de salida Capa de entrada 76 11 apéndice 16/3/99 08:43 Página 77 La salida de la red es el vector formado por las salidas de las neuronas que componen la última capa, que recibe por este motivo el nombre de capa de salida. El resto de las capas se denominan capas ocultas. Algunas veces se considera una primera capa ficticia, que se denomina capa de entrada, cuya única función es distribuir los datos de entrada entre las neuronas de la primera capa efectiva. Esta capa de entrada no efectúa ningún tipo de transformación de los datos de entrada. En la figura 2.1 se ha representado por una primera capa de puntos gruesos. El perceptrón más común incluye sólo una capa oculta, aunque también se emplean a veces dos. Para comprender el funcionamiento del perceptrón multicapa, es conveniente comenzar por el perceptrón simple, que tiene únicamente la capa de salida. Un perceptrón simple está formado por una sola capa de neuronas desconectadas entre sí, que reciben todas ellas las mismas entradas. Nos limitaremos aquí a considerar el caso de un perceptrón monocapa que contiene una sola neurona con dos entradas y cuya función de transferencia es la función signo. Sus posibilidades y limitaciones ilustran convenientemente el caso de varias neuronas y, además, los resultados esenciales que se obtienen, cuando hay una sola neurona, se extienden con facilidad al caso de varias neuronas. Este perceptrón puede ser utilizado como clasificador que actúa como una función discriminante de dos variables. En general una función discriminante es una función que permite distinguir los elementos de dos conjuntos disjuntos por los valores que toma en ellos. Esto ocurre, por ejemplo, si toma un valor positivo en los de un conjunto y negativo en los de otro. El entrenamiento del perceptrón simple se realiza del modo siguiente. Inicialmente se atribuyen valores aleatorios a los pesos sinápticos de la neurona. Seguidamente se presentan consecutivamente pares de entrada y se calcula la salida correspondiente. Si la salida calculada coincide con la real, los pesos sinápticos no se modifican; pero, si es distinta, se corrigen de manera que tienda a disminuir el error. Este procedimiento puede justificarse a partir del criterio de 77 11 apéndice 16/3/99 08:43 Página 78 aprendizaje neuronal de Hebb, propuesto por este autor en sus estudios sobre las sinapsis neuronales en 1949. Hebb postuló que cuando una neurona tiene un nivel positivo de actividad y se siente estimulada por otra neurona, tiende a producirse un refuerzo en la conexión que las enlaza, mientras que tiende a disminuir su conexión si se siente inhibida. La figura 2.2 ilustra este mecanismo de aprendizaje. Figura 2.2. Entrenamiento del perceptrón simple. -1 X 1 y r +1 y + -1 X 2 error Figura 2.3. Separación lineal. Conjuntos separables Conjuntos no separables Este perceptrón monocapa solamente puede sintetizar clasificadores lineales, es decir, sólo puede discriminar conjuntos de puntos del plano linealmente separables. Esta 78 11 apéndice 16/3/99 08:43 Página 79 noción se ilustra con figura 2.3, que representa ejemplos de pares de conjuntos separables y no separables linealmente. Esta limitación restringe fuertemente las posibilidades de empleo del perceptrón monocapa. Por ejemplo, si se quiere emplear el perceptrón para realizar funciones booleanas, se encuentra que muchas de ellas no son sintetizables con el perceptrón monocapa. El ejemplo más sencillo de función lógica no realizable con el perceptrón simple es la función conocida como «0 exclusivo» cuya tabla de verdad se da a continuación. x1 x2 y 1 1 0 0 1 0 1 0 1 0 0 1 Figura 2.4. Grafo de la función lógica XOR. Como se aprecia esta función toma el valor 0 cuando sus dos argumentos coinciden y el valor 1 cuando son diferentes. La figura 2.4 representa con círculos blancos los puntos que tienen por imagen el 1 y con círculos negros los que tienen por imagen el 0. Claramente se observa que estos dos conjuntos no se pueden separar con una 79 11 apéndice 16/3/99 08:43 Página 80 recta, de manera que este problema no es resoluble por este método. Puede conseguirse una red neuronal que realiza la función XOR, si se emplean dos capas de neuronas con una arquitectura como la representada en la figura 2.5. Para ello basta elegir los pesos de las neuronas A y B de la primera capa, de manera que permitan aislar por separado los puntos (1,0) y (0,1), es decir, de manera que sinteticen las funciones lógicas cuyas tablas de verdad sean x1 x2 y1 1 1 0 0 1 0 1 0 0 1 0 0 x1 x2 y2 1 1 0 0 1 0 1 0 0 0 1 0 y elegir además los pesos de la neurona C para que sintetice la función lógica que sólo anula el punto (0,0), es decir, cuya tabla de verdad es y1 y2 z 1 1 0 0 1 0 1 0 1 1 1 0 Como se deduce de la observación de los grafos de estas funciones, las tres se pueden construir con el perceptrón simple, de manera que la red propuesta es perfectamente realizable. 80 11 apéndice 16/3/99 08:43 Página 81 Figura 2.5. Red bicapa que sintetiza la función XOR. a y1 X1 c z X2 y2 b Puede de hecho probarse que cualquier función booleana de varias variables se puede sintetizar con una red neuronal de dos capas. Sin embargo, no es una tarea trivial deducir los pesos de las neuronas para realizar efectivamente la red. Un ejemplo particularmente complicado es la función de paridad, que asocia a cada vector de dimensión par determinada, cuyas componentes son ceros o unos, el valor 1 si existe el mismo número de ceros y unos, y el valor cero en el caso contrario. La función XOR es la función de paridad en el caso particular de dos variables. La razón de la dificultad de programar el aprendizaje de una red bicapa es que la red no puede detectar, debido a la naturaleza binaria de la función característica de las neuronas, la influencia que tienen las modificaciones de los pesos de las neuronas de la primera capa en la salida de las neuronas de la segunda capa. De este modo, aun cuando puede cuantificarse para una red concreta el error de la salida real de la red respecto de la salida especificada, no hay orientación posible acerca de cómo alterar los pesos de la red para reducir ese error. Una solución bastante natural a este problema es la regularización de la función de transferencia de la red. Se consigue esto sustituyendo la función signo, que no es derivable, por una sigmoide, que sí lo es. Esto permite que el error se exprese mediante una función 81 11 apéndice 16/3/99 08:43 Página 82 diferenciable, lo que permite aplicar las técnicas usuales de minimización de funciones para la reducción del error. La implementación efectiva de estos algoritmos proporciona las técnicas de aprendizaje de la red multicapa. El aprendizaje de una red multicapa cuyas neuronas tienen una función de transferencia derivable, puede hacerse por cualquier algoritmo numérico de búsqueda del mínimo de la función de error. El algoritmo más popular es el conocido como de retropropagación (backpropagation), que es simplemente el resultado de aplicar una ligera variante del método del gradiente. En esencia el método de aprendizaje es el mismo que para el perceptrón simple, empezando por los pesos de la capa más cercana a la salida. Al ser el error una función que depende derivablemente de los pesos, es posible deducir las correcciones del valor que toman ciertas derivadas. El algoritmo de retropropagación es esencialmente una implementación del método del gradiente y adolece de todos los inconvenientes que tiene este método. En primer lugar existe la posibilidad de que el proceso de aprendizaje no converja a los pesos óptimos, debido a que la función de error no es unimodal, es decir, presenta en general múltiples mínimos locales. En términos generales, puede decirse que estos mínimos locales de la función de error tienden a prodigarse, cuando la red tiene un tamaño insuficiente para el problema que se trata. Esto ocurre, por ejemplo, cuando dos o más clases distintas se clasifican de la misma manera. Ampliando el número de neuronas de las capas ocultas de la red se consigue una mejor codificación de los datos de entrada y se reduce la presencia de mínimos locales. Los criterios anteriores son generales para cualquier proceso iterativo de optimización. Un criterio más específico de un algoritmo de ajuste de datos como el de retropropagación es el de validación cruzada. La idea es escindir los datos en dos grupos: el primero se utiliza en el aprendizaje de la red y el segundo se emplea para contrastar su 82 11 apéndice 16/3/99 08:43 Página 83 capacidad de generalización. En principio la capacidad de ajuste del comportamiento de la red a los datos de aprendizaje puede prolongarse indefinidamente, pero su capacidad para representar los datos del segundo grupo, el de contraste, mejora sólo hasta un cierto momento, a partir del cual empieza a deteriorarse. La razón de esta disminución es que un ajuste excesivo a los datos de aprendizaje ha de hacerse a costa de dar menos importancia a los demás datos. El criterio de validación cruzada fija la terminación del algoritmo en el momento en que se detecta este sobreajuste de los datos de aprendizaje. Como ya hemos comentado, el perceptrón simple puede implementar sólo una pequeña fracción de funciones lógicas, pero un perceptrón con una sola capa oculta ya puede representar cualquier función lógica. La razón básica de esta posibilidad es que cualquier función lógica se puede generar combinando las dos funciones AND y NOT, que sí son sintetizables mediante el perceptrón simple. Utilizando una capa de salida que implemente una combinación conveniente de las salidas de la capa oculta, puede entonces realizarse cualquier función booleana. Aunque dos capas son suficientes, hay que tener en cuenta que el número de neuronas necesarias puede ser extraordinariamente grande, y ocasionalmente puede ser más conveniente recurrir a una red con tres o más capas. Como hemos visto, los problemas de clasificación se reducen a generar una función de decisión que tome valores de diferente signo en dos conjuntos diferentes. El uso de un método de clasificación determinado viene limitado por el tipo de contorno de decisión, que puede verse como el conjunto de puntos donde la función de decisión se anula. Para el perceptrón simple la función de decisión es lineal, lo que limita fuertemente sus posibilidades como clasificador. En un perceptrón de dos capas el contorno de decisión puede ser la frontera de cualquier conjunto convexo. La razón básica es que cualquier conjunto convexo es la intersección de una familia de semiespacios. Cada uno de los hiperpla83 11 apéndice 16/3/99 08:43 Página 84 nos frontera de estos semiespacios se puede tomar como contorno de decisión de un perceptrón simple de una primera capa oculta. Sintetizando con la capa de salida la intersección, que esencialmente es una función lógica AND, se logra discriminar con un perceptrón de dos capas un conjunto convexo arbitrario. Para contornos de decisión más generales puede verse con relativa facilidad que basta emplear un perceptrón de tres capas, es decir, que tiene tan sólo dos capas ocultas. La razón es que, en términos generales, una región arbitraria se puede poner como la unión de conjuntos convexos. Por ejemplo, puede emplearse en el caso de una región plana una triangulación, que da una aproximación tan buena como queramos de la región. Cada uno de los conjuntos convexos se puede discriminar con dos capas y la tercera se puede emplear para sintetizar la unión de los convexos, que esencialmente es la función lógica OR. Aunque los resultados comentados sugieren que las redes neuronales son muy adecuadas para problemas de clasificación o aproximación, en la práctica existen limitaciones importantes. Su aplicación a un problema concreto puede hacer necesario considerar redes muy complejas, esto es, redes cuyo tamaño, medido por la cantidad de neuronas presentes en la red, puede ser muy grande. No es posible en general determinar a priori el tamaño de la red que mejor resuelve un problema concreto. Si se elige una red demasiado simple puede que el problema no tenga solución adecuada, pero no es buena solución para esto partir de una red grande en exceso. Por supuesto que la elección de una red demasiado grande complica innecesariamente el proceso de aprendizaje, pero además no hay garantía de que vaya a funcionar mejor que una red de dimensión menor. La razón es que en una red muy compleja existe una fuerte dependencia entre los pesos que se adoptan para una solución concreta, lo que hace posible que esos pesos correspondan también a problemas más complejos. Esto hace que la red en cuestión no represente 84 11 apéndice 16/3/99 08:43 Página 85 de manera satisfactoriamente unívoca el problema modelado por los datos considerados, lo que hace que sus posibilidades de generalización sean más reducidas que las de una red de estructura más simple. El fenómeno anterior puede compararse con lo que ocurre cuando se pretende ajustar unos datos con un polinomio. La elección de un polinomio de grado elevado produce un ajuste en el que la gráfica del polinomio tiende a ser muy oscilatoria, de manera que datos similares a los que se emplean para construir el polinomio de interpolación quedan mal representados por ese polinomio. Por esta razòn es preferible reducir el grado del polinomio, debilitando con ello la posibilidad de un ajuste más exacto, aunque sea a costa de no interpolar exactamente los datos de aprendizaje. La figura 2.6 representa el tipo de situación que estamos comentando. Figura 2.6. Sobreajuste de una nube de puntos. Si se posee información sobre la estructura de los datos que se emplean para el aprendizaje de la red, puede emplearse para estimar la red más adecuada. Por ejemplo, en el caso de la función XOR, la representación geométrica de los datos permite apreciar que es suficiente con tener dos neuronas en la capa oculta. Si no se dispone de esta información, la única estrategia posible es la modificación de la estructura de la red, basada en la observación de los erro85 11 apéndice 16/3/99 08:43 Página 86 res ante diversos tanteos. Se han propuesto para esto varios métodos sistemáticos, siendo los más usuales los que emplean una técnica de poda (pruning), eliminando sucesivamente los nodos y pesos que tienen menor contribución a la solución. A3. LA RED DE KOHONEN Las redes neuronales autoorganizadas son redes concebidas para clasificar conjuntos de datos para los que no se conoce a priori ningún tipo de organización. El objetivo de la red es deducir automáticamente la clasificación más natural de los datos, utilizando exclusivamente sus semejanzas intrínsecas. La red debe descubrir por sí misma las características típicas, regularidades o categorías en los datos de entrada, y ponerlas de manifiesto en la salida. En este tipo de redes la salida, ante un dato concreto de entrada, no se contrasta con ninguna referencia, por lo que los criterios de ajuste de los pesos de la red han de basarse exclusivamente en los datos de entrada. Así, pues, el aprendizaje de una red auto-organizada es no supervisado. Para ello es necesario que los datos de entrada tengan un grado de redundancia elevado, ya que el único recurso es la detección de las analogías o correlaciones inherentes a los datos. Típicamente estas redes se emplean en situaciones en que existe un número muy grande de datos para reducir la complejidad de la información, o en una fase previa a un proceso de clasificación supervisada para inferir los patrones de clasificación. Las funciones de una red neuronal auto-organizada son las típicas de cualquier clasificador automático de los que se emplean en el reconocimiento de patrones (pattern recognition). La única diferencia es que no se hacen hipótesis sobre la distribución de probabilidad que rige las distintas clases de datos de entrada. Con todo, puede decirse que 86 11 apéndice 16/3/99 08:43 Página 87 las reglas de aprendizaje suelen basarse en versiones adaptativas de los algoritmos típicos que se utilizan en los métodos estadísticos de detección de patrones. Aunque hay situaciones en que es necesario proceder a una clasificación taxonómica, detectando en los datos una ordenación jerárquica de grupos y subgrupos, la situación más frecuente es la agrupación simple, dividiendo el conjunto de datos en distintos subconjuntos, cada uno de los cuales agrupa datos similares, con algún tipo de característica en común. Es frecuente el empleo de la palabra inglesa clustering para denominar este proceso de aglomeración de los datos, y llamar cluster a cada uno de los subconjuntos resultantes. A posteriori puede elaborarse, observando lo que tienen en común los elementos de cada cluster, una lista de características distintivas que permita identificar cada grupo. El desarrollo de un método de clustering requiere elaborar alguna medida de la semejanza entre los datos. Es importante elegir una manera adecuada de comparar los datos, ya que el resultado obtenido depende fuertemente de cuál sea la medida de semejanza adoptada. En general no es fácil decir cuál puede ser la mejor manera de hacerlo en un problema concreto. Para datos numéricos en forma de vectores de números reales, es frecuente adoptar como criterio de semejanza la inducida por algún tipo de distancia, por ejemplo, la distancia euclídea. De este modo se considera que dos puntos se parecen si su distancia es reducida. Si la escala adoptada no es significativa, un criterio que se puede utilizar es la correlación, medida en términos del producto escalar de los vectores unitarios correspondientes. En este caso se supone que los datos se parecen cuando su correlación está próxima a uno. Con frecuencia cada cluster de datos se representa por un prototipo, que suele ser alguno de los datos más representativos de los están incluidos en el cluster. Tratándose de datos numéricos, este prototipo también puede ser algún tipo de promedio de los datos del cluster. Ocasionalmente 87 11 apéndice 16/3/99 08:43 Página 88 pueden emplearse varios prototipos por cada cluster. Una representación prototípica de los clusters proporciona una compresión de la información presente en los datos que puede facilitar su manejo. La figura 3.1 representa esquemáticamente este proceso de clustering con tres clusters. Figura 3.1. Representación del proceso de clustering. X X Cluster 1 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X Cluster 2 X X X X Cluster 3 X Las redes auto-organizadas que implementan un proceso de clustering suelen ser de estructura muy simple. Básicamente existe una sola capa de neuronas, cada una de las cuales representa un cluster de datos. La red funciona de manera que ante cada dato de entrada sólo hay salida en la neurona que representa al cluster correspondiente. Para ello los pesos sinápticos de cada neurona se ajustan de manera que representen las características de cada cluster. Tratando con datos numéricos, esto puede hacerse identificando las componentes de cada prototipo con el vector de pesos de cada neurona. Aunque no es la única posibilidad, el entrenamiento de la red se hace habitualmente mediante un proceso de aprendizaje que se denomina competitivo. La red recibe los datos secuencialmente y, ante cada entrada, selec88 11 apéndice 16/3/99 08:43 Página 89 ciona automáticamente una de sus neuronas, tras lo cual modifica adaptativamente los pesos de la neurona elegida. La figura 3.2 da la interpretación geométrica de la fórmula de adaptación del prototipo ganador. La idea es forzar que aumente el parecido que asemeja el nuevo dato con el prototipo asignado. Figura 3.2. Aprendizaje competitivo con la regla «Todo para el ganador». p • p 4 2 • • • p 5 p 6 • p 1 p' 1 o X p 3 •p 7 El algoritmo anterior, que a veces se denomina con la expresión «todo para el ganador», tiene el inconveniente de que puede sesgar los datos hacia un determinado prototipo si éste resulta continuamente dominante, de manera que alguno de los prototipos en situación inicial desventajosa puede no ganar nunca y no adaptarse a los datos. Se puede modular esta tendencia permitiendo que otros prototipos distintos del ganador también se adapten. Esta modificación se representa en la figura 3.3. Otra posibilidad es que esta tasa se modifique a medida que avanza el algoritmo, de diferente manera para cada prototipo en función del número de veces que ha resultado ganador. Una manera razonable es hacer que la tasa de ajuste de un prototipo tienda a ser inversamente proporcional al número de veces que ha sido adaptado. De este modo se consigue que los que menos veces ganan vayan aumentando sus posibilidades de 89 11 apéndice 16/3/99 08:43 Página 90 ganar en el futuro a base de ir orientándose hacia donde están ubicados los datos. Figura 3.3. Aprendizaje competitivo modulando la regla «Todo para el ganador». p p • 4 • 2 p • 5 p 6 • p 1 p' 1 o X • p 3 p' 6 •p 7 En las distintas versiones de aprendizaje competitivo vistas hasta el momento, se parte del supuesto de que el número de grupos o clusters que aglutinan los datos está bien determinado y es conocido. En ocasiones esto no sucede así y se hace necesario actuar de manera que se ajuste, también adaptativamente, el número de clusters. La manera más simple de realizar esto es introducir un criterio que permita decidir, antes de entrar en la fase de adaptación de los prototipos, si el nuevo dato pertenece razonablemente a uno de los grupos preexistentes o podría formar parte de otro no detectado hasta el momento. Para ello se fija un umbral de tolerancia y se exige que la distancia del nuevo dato al prototipo ganador sea menor que este valor umbral. En una red neuronal que implementa el aprendizaje competitivo no existe en principio ninguna relación entre las distintas neuronas de la red, de manera que los prototipos pueden acabar siendo representados de cualquier forma por las neuronas. Si imaginamos la disposición física de la red, la ubicación concreta de cada neurona 90 11 apéndice 16/3/99 08:43 Página 91 en la red no juega ningún papel en relación con el prototipo que finalmente representa. En la red de Kohonen se supone que las neuronas de la red están relacionadas topológicamente, de manera tal que puede hablarse de un grado de vecindad entre ellas, y se pretende que prototipos semejantes —con la topología propia de los datos de entrada— vengan representados por neuronas cercanas. La red de Kohonen está inspirada por la observación de ciertos mecanismos descubiertos en neurofisiología, particularmente los llamados mapas retinotópicos, que aplican la zona sensible de la retina en la sección de la corteza cerebral especializada en la visión. Se ha descubierto en estos mapas que hay una especie de trasplante topográfico de la retina a la corteza, y es esta autoorganización la que intenta emular algorítmicamente la red de Kohonen. Esta manera estructurada de extraer la información resulta muy útil cuando se emplea una red de Kohonen como primera etapa de un proceso de codificación, cuyas salidas se emplean para un tratamiento posterior. El carácter topológico de la representación, es decir, la propiedad de que datos parecidos se representan en neuronas cercanas, robustece la representación. Una perturbación en un dato de entrada puede dar lugar a que se represente en una neurona distinta de la debida; pero, si la red funciona correctamente, se almacenará en una neurona cercana. En una red multicapa, en la que la salida de la red de Kohonen se emplea como entrada de una capa posterior, esta propiedad es esencial para garantizar la estabilidad de la red conjunta. Típicamente una red de Kohonen está formada por una sola capa de neuronas dispuestas en los nudos de una reticulación del plano. Lo habitual es emplear los puntos de una cuadrícula como la representada en la figura 3.4, pero también se emplea a veces una reticulación hexagonal. 91 11 apéndice 16/3/99 08:43 Página 92 Figura 3.4. Red cuadricular de Kohonen. Cada neurona de la red tiene asociada un conjunto de neuronas vecinas, que son las que están ubicadas alrededor de la neurona. La manera en que se determinada esta vecindad es variable. Por ejemplo, pueden tomarse como neuronas vecinas de una neurona las directamente conectadas a ella, o añadir a éstas las conectadas a ella a través de una intermedia. Otra posibilidad es adoptar como vecinas las de algún cuadrado de los que tienen por centro la neurona. La figura 3.5 ilustra esta noción de vecindad. Figura 3.5. Ejemplo de vecindad en la red de Kohonen. 92 11 apéndice 16/3/99 08:43 Página 93 En algunos casos las neuronas se distribuyen linealmente, localizándolas en puntos de una recta. Esto equivale a dar una ordenación de las neuronas numerándolas. El conjunto de neuronas vecinas de una está formado por cierto número de las que la preceden y la siguen. El modo de entrenamiento de la red de Kohonen es prácticamente idéntico al de la red básica competitiva. La única diferencia consiste en una modificación del esquema básico de aprendizaje competitivo para tener presentes las relaciones de vecindad entre las neuronas de la red. Cada neurona almacena en sus pesos un prototipo de los datos. Estos se presentan secuencialmente y, ante cada uno de ellos, se determina la neurona ganadora, tras lo cual se procede al ajuste de los pesos de la neurona ganadora junto con los de sus neuronas vecinas. La figura 3.6 representa el modo de aprendizaje en una red lineal de Kohonen. Figura 3.6. Aprendizaje competitivo en la red lineal de Kohonen. p 2 p p 5 3 p p' p' 4 3 5 p 6 p' 4 p 1 X p 7 Tratando con datos numéricos representados por vectores de gran dimensión, la intención fundamental de la red de Kohonen es disminuir el grado de complejidad de los datos, a base de reducir la dimensión del espacio de representación, pero manteniendo en lo posible la topología del espacio inicial. Para precisar esta idea imaginemos que dividimos el conjunto de datos de entrada en subconjuntos, cada uno de los cuales agrupa los datos que han seleccionado como ganadora una determinada neurona. Como se 93 11 apéndice 16/3/99 08:43 Página 94 sugiere en la figura 3.7, en la que se suponen datos bimensionales y una red lineal, dos subconjuntos próximos en el conjunto de datos están asociados a dos neuronas próximas de la red. Figura 3.7. Propiedad topológica de la red de Kohonen. La clasificación obtenida puede utilizarse a posteriori, promediando los puntos de cada uno de esos subconjuntos, para obtener un conjunto de prototipos de los datos. Los resultados de codificación así obtenidos parecen ser mucho más robustos que si no se produce esta reducción previa de la dimensionalidad. A4. LA RED DE HOPFIELD Las redes recurrentes son redes formadas por muchas neuronas fuertemente interconectadas y que interaccionan muchas veces cuando la red es activada. Su principal motivación es el desarrollo de las denominadas memorias asociativas, concepto que explicamos seguidamente. Una de las principales cualidades del cerebro humano es la memoria, que nos permite reproducir en la conciencia conceptos previamente elaborados o recordar impresiones pretéritas. Esta asociación llega a conseguirse cuando se evocan las ideas desde conceptos parecidos o situaciones semejantes. 94 11 apéndice 16/3/99 08:43 Página 95 Ateniéndonos puramente a su modo operacional, la memoria podría ser descrita como un sistema asociativo de procesamiento de la información. En general se denomina memoria asociativa a todo sistema que permite emular las funciones de la memoria humana, proporcionando un mecanismo eficiente de almacenamiento y recuperación de cualquier tipo de información. Una clase importante de memorias asociativas son las denominadas memorias direccionables por el contenido o memorias CAM (de Content Addressable Memory). Idealmente estas memorias recuperan la información deseada a partir de una información parcial o deteriorada de la información almacenada. Una memoria asociativa de este tipo es capaz de identificar los datos almacenados a partir de algunos rasgos esenciales del contenido del dato que se pretende recuperar. El concepto de memoria CAM se comprende mejor si se contrasta su funcionamiento con el modo en que, habitualmente, recupera un computador digital la información almacenada en la memoria. En un computador es necesario precisar por completo la localización de la información para poder acceder a ella. Su procedimiento se corresponde con las que se denominan memorias direccionables por la dirección o memorias AAM (de Address Addressable Memory). Las memorias CAM actúan como dispositivos con funciones intermedias entre las que desarrollan un filtro y un clasificador, pero tienen diferencias importantes con ambos. Ordinariamente un filtro se diseña en función de la perturbación que se pretende eliminar, mientras que una memoria asociativa se construye a partir de la información que se quiere almacenar. Por su parte un clasificador podría actuar como memoria asociativa agrupando todas las versiones degradadas de los prototipos especificados, pero esto sólo podría hacerse a costa de restringir el número de versiones consideradas o de incrementar fuertemente el número de prototipos almacenados. Se han propuesto muchos modelos de redes neuronales que tienen cierta capacidad de implementar memorias asociati95 11 apéndice 16/3/99 08:43 Página 96 vas. Uno de los más difundidos es la red de Hopfield. Existen versiones continuas y discretas —dicho de otra forma: analógicas y digitales— de la red de Hopfield, pero aquí nos limitaremos al estudio de la red discreta. La red de Hopfield es un ejemplo de las que se denominan totalmente interconectadas. La red está constituida por un conjunto de neuronas, cada una de las cuales está conectada a todas las demás. La conexión es tal que cada neurona recibe señal de todas las demás y emite señal hacia todas ellas. La arquitectura de la red de Hopfield se representa esquemáticamente en la figura 4.1. Figura 4.1. Arquitectura de una red de Hopfield. Cada neurona de la red se comporta básicamente como las de un perceptrón con función característica no lineal definida por la función signo. Si en un instante la activación es positiva, la salida pasa a ser +1; si es negativa, se convierte en –1 y, si la activación es nula, la salida de la neurona permanece inmutable. Cada neurona se comporta así como un elemento biestable, cuya salida oscila entre los valores +1 ó –1, cambiándose en determinados instantes del tiempo, según sea la entrada a la neurona en cada instante. 96 11 apéndice 16/3/99 08:43 Página 97 La red de Hopfield es una red recurrente. Esto quiere decir que el vector de salidas en cada instante se toma como vector de entrada de cada neurona de la red en el instante siguiente. Utilizando el lenguaje que se emplea en teoría de control, podríamos decir que la red de Hopfield presenta una retroalimentación de la salida hacia la entrada de la red. La figura 4.2 representa de manera sugestiva la arquitectura de la red, de manera que se hace evidente el proceso de realimentación. Figura 4.2. Estructura recurrente de la red de Hopfield. • • • • • • Típicamente, el funcionamiento de la red de Hopfield es el siguiente. La red admite como dato de entrada un cierto vector cuyas componentes son +1 ó –1. Este vector se toma como entrada de todas las neuronas en el instante inicial. Con las salidas de las neuronas se genera un vector, que se toma como entrada de las neuronas en el instante siguiente. El proceso se reitera indefinidamente hasta que se alcanza cierto estado de equilibrio, en el que la salida y la entrada coinciden. Este estado de equilibrio es el que toma como salida de la red. La figura 4.3 representa gráficamente este proceso. El aprendizaje de la red, que se efectúa en una fase previa, consiste en seleccionar los vectores de pesos de las 97 11 apéndice 16/3/99 08:43 Página 98 neuronas de manera que los posibles estados de equilibrio de la red representen los propotipos que se pretende almacenar en la red. Idealmente la red debe funcionar de manera que, cuando se presenta como entrada una versión corrompida de uno de esos prototipos, la red evolucione hacia el prototipo correspondiente. Figura 4.3. Comportamiento dinámico de la red de Hopfield. atractor 1 atractor 2 El problema de sintetizar mediante una red de Hopfield una memoria asociativa que almacene una serie de vectores predeterminados es complejo. Es necesario en primer lugar generar la matriz de pesos de la red, de manera que los prototipos que se hagan de almacenar sean puntos fijos de la red. No es fácil saber a priori si un determinado conjunto de prototipos es o no es sintetizable y, además, en el caso de que lo sea, no existe un método general para construir la matriz de pesos. A esto hay que añadir el problema adicional de que, para que la red tenga un funcionamiento eficaz, el radio de atracción de cada prototipo debe ser el mayor posible, y tampoco hay manera de determinar la matriz de pesos de forma que esto ocurra. En términos generales puede decirse que el número de prototipos que se pueden almacenar eficazmente es una fracción reducida de la dimensión de la red. En una sección posterior haremos un análisis más detallado de esta cues98 11 apéndice 16/3/99 08:43 Página 99 tión. Además, como después comentaremos, si los prototipos son parecidos, pueden existir dificultades serias para su recuperación por la aparición de los que se denominan estados espurios. Pueden presentarse, además de las posibilidades antes apuntadas, otro tipo de estados de equilibrio, sin ningún tipo de relación con los prototipos almacenados. En términos generales puede decirse que aparece siempre un número grande de estados espurios, del que se conocen estimaciones asintóticas. La aparición de estos estados puede corregirse, o por lo menos aliviarse su influencia, mediante diversas modificaciones de la matriz de correlación. Remitimos a la bibliografía para un estudio más detallado de estas cuestiones. El estudio de la capacidad de la red de Hopfield, esto es, la caracterización del máximo número de prototipos que se pueden almacenar con seguridad en una red de dimensión determinada, es un problema complicado, aún no resuelto satisfactoriamente. La mayoría de los estudios realizados sobre este problema ofrecen estimaciones asintóticas, esto es, cuando la dimensión de la red es muy grande, del máximo valor tolerable de prototipos, que es una fracción de la dimensión del orden de cuatro veces su logaritmo. 99 BIBLIOGRAFÍA Barro, S., and Mira, J. (Eds.): Computación neuronal. Servicio de Publicaciones de la Universidad de Santiago de Compostela, 1995. Beale, R., and Jackson, T.: Neural Computing, an Introduction. Adam Hilger, IOP Publishing Ltd, 1990. Bigus, J.: Data Mining with Neural Networks . MacGraw-Hill, 1996. Bishop, C. M.: Neural Networks for Pattern Recognition. Oxford University Press, 1995. Duda, R. O., and Hart, P. E.: Pattern Classification and Scene Analysis. Wiley, New York, 1973. De la Fuente O’Connor, J. L. (ed.): Foro sobre Innovación Tecnológica en la Industria Eléctrica . Panel: Redes Neuronales. Marco conceptual, Herramientas y Aplicaciones. Iberdrola, 1993. Hertz, J.; Krogh, A., and Palmer, R.: Introduction to the Theory of Neural Computation. Addison-Wesley, 1991. Hilera, J. R., y Martínez, V. J.: Redes Neuronales Artificiales. Fundamentos, mode los y aplicaciones. RAMA, 1995. Kappen, B., and Gielen, S. (Eds.): Neural Networks: Artificial Intelligence and Industrial Applications. Proc. of the 3rd Annual SNN Symposium on Neural Networks, Nijmegen, September 1995. Springer-Verlag. Martín del Brío, B., y Sanz Molina, A.: Redes Neuronales y Sistemas Borrosos. RAMA, 1997. Refenes, A. N. (ed.): Neural Network in the Capital Markets. John Wiley and Sons, Chicester, 1995. Tarasenko, L.: A guide to Neural Computing Applications. Arnold, 1998. Zalzala, M. (Ed.): Neural networks for Robotic Control . Prentice-Hall, 1995. 101 DOCUMENTOS COTEC sobre OPORTUNIDADES TECNOLÓGICAS Documentos editados Nº Nº Nº Nº Nº Nº Nº Nº Nº Nº Nº Nº Nº 1: Sensores. 2: Servicios de Información Técnica. 3: Simulación. 4: Propiedad Industrial. 5: Soluciones Microelectrónicas (ASICs) para todos los Sectores Industriales. 6: Tuberías de Polietileno para conducción de agua potable. 7: Actividades Turísticas. 8: La PYMES y las Telecomunicaciones. 9: Química Verde. 10: Biotecnología. 11: Informática en la Pequeña y Mediana Empresa. 12: Innovaciones Telemáticas para las Empresas de Transponte. 13: Redes Neuronales. Documentos en preparación: Vigilancia Tecnológica. DOCUMENTOS COTEC sobre NECESIDADES TECNOLÓGICAS Documentos editados: Nº Nº Nº Nº Nº Nº Nº Nº Nº 1: Sector Lácteo. 2: Rocas Ornamentales. 3: Materiales de Automoción. 4: Subsector Agro-industrial de origen vegetal. 5: Industria Frigorífica y Medio Ambiente. 6: Nuevos Productos cárnicos con bajo contenido en grasa. 7: Productos Pesqueros reestructurados. 8: Sector de la Construcción. 9: Sector de la Rehabilitación. Documentos en preparación: Aguas Residuales. Conservas Vegetales. Piel, Calzado y Conexas. 103