Download Redes neuronales

Document related concepts

Red neuronal artificial wikipedia , lookup

Red neuronal cuántica wikipedia , lookup

Software de redes neuronales wikipedia , lookup

Sistemas bioinspirados wikipedia , lookup

Método de agrupamiento para el manejo de datos wikipedia , lookup

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