UNIVERSIDAD POLITÉCNICA DE MADRID
ESCUELA TÉCNICA SUPERIOR DE INGENIEROS INDUSTRIALES
ARQUITECTURA INTELIGENTE BASADA EN
LÓGICA RECONFIGURABLE APLICADA A REDES
NEURONALES ARTIFICIALES PARA LA
CLASIFICACIÓN DE INFORMACIÓN
TESIS DOCTORAL
JAIME ALARCÓN CELIS
M. C. por el Tecnológico de Monterrey Campus Toluca México
Para la obtención del Grado de Doctor Ingeniero Industrial
2008
DEPARTAMENTO DE AUTOMÁTICA, INGENIERÍA ELECTRÓNICA E
INFORMÁTICA INDUSTRIAL
ESCUELA TÉCNICA SUPERIOR DE INGENIEROS INDUSTRIALES
ARQUITECTURA INTELIGENTE BASADA EN
LÓGICA RECONFIGURABLE APLICADA A REDES
NEURONALES ARTIFICIALES PARA LA
CLASIFICACIÓN DE INFORMACIÓN
AUTOR:
JAIME ALARCÓN CELIS
M. C. por el Tecnológico de Monterrey Campus Toluca México.
DIRECTORES:
FÉLIX MORENO GONZÁLEZ
Doctor Ingeniero de Telecomunicaciones por la Universidad Politécnica de
Madrid
TERESA RIESGO ALCAIDE
Doctor Ingeniero Industrial por la Universidad Politécnica de Madrid
2008
Tribunal nombrado por el Magfco. y Excmo. Sr. Rector de la Universidad Politécnica
de Madrid, el día ________________________ de 2008.
Presidente: D.
Vocal: D.
Vocal: D.
Vocal: D.
Secretario: D.
Suplente: D.
Suplente: D.
Realizado el acto de defensa y lectura de la tesis el día __________________de 2008.
En la E.T.S. Ingenieros Industriales.
CALIFICACIÓN:
EL PRESIDENTE LOS VOCALES
EL SECRETARIO
A mi amada esposa.
Kituty.
Por ser una mujer ejemplar, mi amiga, la compañera de mi vida,
darme el apoyo para seguir adelante y estar siempre a mi lado.
A mis hijas.
Nayeli e Ixchel con amor
Por todo lo que ha significado en nuestras vidas este proyecto,
por su cariño y paciencia.
Gracias.
Agradecimientos
Al Tecnológico de Monterrey Campus Toluca.
En particular al Dr. Roberto Rueda Ochoa y a la Ing. Sandra Ortiz, por
la confianza y el apoyo que me brindaron en todo momento.
Gracias.
A la Fundación Carolina.
Agradecimientos
A la Universidad Politécnica de Madrid. En particular al Dr. Félix
Moreno y a la Dr. Teresa Riesgo, por el tiempo dedicado durante la
realización de la investigación.
A los Profesores del Departamento de Ingeniería Electrónica.
A los Estudiantes del Doctorado en Electrónica, por su compañía y los gratos
momentos que compartimos.
Gracias a todos.
Índice
Índice
1. Introducción y objetivos de la Tesis.................................................... 15
1.1 Introducción a la Tesis..............................................................................................18
1.2 Objetivos de la Tesis .................................................................................................21
1.3 Criterios de estructura de la Tesis ...........................................................................23
2. Visión Artificial .................................................................................... 27
2.1 Comportamiento Visual............................................................................................29
2.2 Fundamentos del Área Cognitiva............................................................................30
2.3 Fundamentos del Área Biológica ............................................................................31
2.4 Fundamentos de Visión Artificial ..........................................................................32
2.4.1 Perspectiva del Diseño ............................................................................................ 34
2.5 Visión por singularidades. ........................................................................................37
2.5.1 Visión por singularidades e inteligencia artificial. ................................................ 39
2.6 Aplicación de las Singularidades..............................................................................41
2.7 Conclusiones...............................................................................................................42
3. Redes de Neuronas.............................................................................. 45
3.1 Redes Neuronales Biológicas...................................................................................45
3.2 Redes Neuronales Artificiales ..................................................................................47
3.2.1 Neurona Artificial .................................................................................................... 48
3.3 Redes de Neuronas Artificiales: Topologías..........................................................51
3.4 Redes Neuronales Artificiales: Aprendizaje...........................................................58
3.5 Adaptación de las topologías de las Redes de Neuronas Artificiales. ...............64
3.5.1 Redes Artificiales de Neuronas Evolutivas........................................................... 65
3.5.2 Evolución de los Pesos de una RNA .................................................................... 65
3.5.3 Evolución de la arquitectura de una RNA............................................................ 66
3.5.4 La evolución de las reglas de aprendizaje de una RNA ...................................... 66
3.6 Conclusiones...............................................................................................................66
4. Arquitecturas Reconfigurables ............................................................ 71
i
Índice
4.1 Tecnologías reconfigurables: FPGAs .....................................................................75
4.2 Tipos de Configuraciones.........................................................................................78
4.2.1 Sistemas Modulares multitarjeta............................................................................. 82
4.2.2 Redes FPGA’s monotarjeta .................................................................................... 82
4.2.3 Tarjetas Coprocesador............................................................................................. 83
4.3 Tendencias Futuras (Evolvable Hardware) ...........................................................83
4.4 Diseño y Programación del Modulo Reconfigurable...........................................83
4.5 Requisitos Tecnológicos ...........................................................................................84
4.5.1 Requisitos a nivel sistema........................................................................................ 84
4.5.2 Requisitos de los algoritmos ................................................................................... 86
4.5.3 Flujo de Datos .......................................................................................................... 89
4.5.4 Elementos de Proceso ............................................................................................. 90
4.6 Conclusiones...............................................................................................................91
5. Arquitectura Propuesta........................................................................ 95
5.1 Características Generales ..........................................................................................95
5.2 Descripción del Sistema Diseñado..........................................................................96
5.3 Descripción Funcional del Módulo de Procesamiento Basado en TNN .........97
5.4 Implementación del algoritmo de entrenamiento y aprendizaje ..................... 109
5.5 Descripción de parámetros ................................................................................... 113
5.6 Aspectos Operativos .............................................................................................. 116
5.7 Conclusiones............................................................................................................ 122
6. Resultados y Conclusiones ................................................................ 127
6.1 Resultados del Modelo Funcional ........................................................................ 130
6.2 Resultados del Modelo Intermedio...................................................................... 134
6.3 Resultados del Modelo de Implementación Hardware..................................... 135
6.4 Conclusiones............................................................................................................ 139
6.5 Publicaciones ........................................................................................................... 143
6.6 Principales aportaciones de esta Tesis................................................................. 144
6.7 Trabajos Futuros..................................................................................................... 145
Referencias ............................................................................................... 147
ii
Índice
Índice de Figuras
Figura 2-1. Análisis Señal – Símbolo.................................................................................. 33
Figura 2-2. Elementos idénticos, diferentes configuraciones ......................................... 36
Figura 2-3. Figuras básicas para el reconocimiento por singularidades....................... 37
Figura 2-4. Sistema de visión .............................................................................................. 38
Figura 2-5. Modelo general de un sistema de visión....................................................... 40
Figura 3-1. Neurona Biológica............................................................................................ 46
Figura 3-2. Modelo de una neurona artificial................................................................... 48
Figura 3-3. Red neuronal de una sola capa....................................................................... 53
Figura 3-4. Red neuronal multicapa .................................................................................. 54
Figura 3-5. Redes neuronales recurrente a) sin auto-retroalimentació b) con neuronas
ocultas .................................................................................................................................... 55
Figura 3-6. Redes de rejilla a) Red de una dimensión, con tres neuronas b) Red de
dos dimensiones tres por tres neuronas............................................................................ 57
Figura 3-7. Taxonomía del aprendizaje............................................................................. 60
Figura 3-8. Aprendizaje Supervisado ................................................................................ 61
Figura 3-9. Aprendizaje no supervisado ........................................................................... 62
Figura 4-1. Características de los Sistemas Configurables.............................................. 72
Figura 4-2. Diagrama Simplificado a bloques de un FPGA............................................ 76
Figura 4-3. Modelos de Reconfiguración, a) estática, b) dinámica, c) parcial dinámica.
................................................................................................................................................ 79
Figura 4-4. Niveles de análisis de los algoritmos............................................................. 87
Figura 4-5. Ejecución secuencial del algoritmo backpropagation ................................ 88
Figura 4-6. Flujo de datos de la red neuronal................................................................... 90
Figura 5-1. Diagrama de bloques general del sistema. ................................................... 96
Figura 5-2. Array Processor ................................................................................................ 99
Figura 5-3. Singularidades empleadas para detectar formas triangulares,
cuadrangulares y circulares .............................................................................................. 101
Figura 5-4. Áreas de Análisis dentro de la Imagen. Región de Interés (RoI). Región de
Detección (RoD).................................................................................................................. 102
Figura 5-5. Arquitectura Jerárquica por capas de la red neuronal .............................. 103
Figura 5-6. Unidad Básica de Conocimiento a) Modelo matemático, b) Capa de
entrada de la red neuronal................................................................................................ 105
iii
Índice
Figura 5-7. Unidad de Conocimiento. Capa de Salida .................................................. 107
Figura 5-8. Módulo de Incertidumbre............................................................................. 108
Figura 5-9. Segmentación Propuesta para el Algoritmo Backpropagation ................ 110
Figura 5-10. Mapa de memoria modulo reconfigurable ............................................... 111
Figura 5-11. Diagrama a bloques de diferentes TNN.................................................... 113
Figura 5-12. Diagrama de estados modos de funcionamiento y Bloque Funcional
NEURO_NET TNN............................................................................................................ 118
Figura 5-13. Modo Reconocimiento (inicia).................................................................... 120
Figura 5-14. Modo Reconocimiento (termina)................................................................ 120
Figura 5-15. Modo Reconfiguración (inicia) ................................................................... 121
Figura 5-16. Modo Reconfiguración (termina) ............................................................... 122
Figura 6-1. Circuitos de prueba de arquitecturas TNN ................................................ 127
Figura 6-2. Diagrama esquemático de la Plataforma de pruebas ................................ 129
Figura 6-3. Metodología empleada en las pruebas de las TNN................................... 130
Figura 6-4. Modelo Funcional de la Red Neuronal Especializada (TNN).................. 131
Figura 6-5. Figura de merito para el entrenamiento de una TNN............................... 133
Figura 6-6. Resultado del modulo de reconocimiento .................................................. 134
Figura 6-7. Ciclos de Ejecución del pipeline de la TNN ............................................... 138
iv
Índice
Índice de Tablas
Tabla 2-1. Leyes de la Gestalt ............................................................................................. 35
Tabla 3-1. Funciones de activación .................................................................................... 51
Tabla 4-1. Implementación Software y Hardware de redes neuronales artificiales.... 74
Tabla 4-2. Plataformas reconfigurables ............................................................................. 81
Tabla 4-3. Requisitos del modulo reconfigurable ............................................................ 86
Tabla 5-1. Datos a procesar en las diferentes etapas del sistema................................. 103
Tabla 5-2. Parámetros de la Estructura y de la Operación de la Red. ........................ 115
Tabla 6-1. Resultados de la Arquitectura del Sistema plataforma Cyclone .............. 136
Tabla 6-2. Resultados de la etapa de preprocesamiento plataforma Cyclone ........... 136
Tabla 6-3. Resultados de implementación de las TNN plataforma Cyclone ............. 137
Tabla 6-4. Resultados de la Arquitectura del Sistema plataforma CycloneII............. 137
Tabla 6-5. Resultados etapa de preprocesamiento plataforma CycloneII ................. 137
Tabla 6-6. Resultados de implementación de las TNN plataforma CycloneII........... 138
v
Índice
vi
Índice
Lista de Abreviaciones (Glosario)
ANN Artificial Neural Networks
ASIC Application Specific Integrated Circuit
BP Back Propagation
CCD Charge Couple Device
DSP Digital Signal Processor
EP Elemento de Proceso
FLASH Flash
FPGA File Programmable Gate Array
LSI Low Scale Integrated
MAC Multiply Accumulate
MSI Medium Scale Integrated
PAL Phase Alternating Line
RAM Random Access Memory
RL Reinforcement Learning
RNA Redes Neuronales Artificiales
ROD Region of Detection
ROI Region of Interest
SDRAM Single Data Random Access Memory
TNN Tiny Neural Networks
UBC Unidad Básica de Conocimiento
VHDL Very high speed integrated circuit Hardware Description Language
VLSI Very Large Scale Integrated
vii
Índice
viii
Índice
Resumen
Las redes artificiales de neuronas son sistemas con grandes capacidades de
procesamiento en paralelo inspirado en los sistemas neuronales biológicos; en ellos,
los modelos de aprendizaje por medio de ejemplos, o por medio de iteraciones,
sustituyen a la programación empleada en los simuladores donde tradicionalmente,
se implementan, con objeto de proporcionar una adaptabilidad a la red.
Mientras, el aprendizaje en el ser humano es frecuentemente relacionado con el
incremento del conocimiento o entendimiento; y éste, se puede obtener por medio de
autoaprendizaje, por enseñanza (instrucción) o bien por medio de experiencias; el
aprendizaje, en el contexto de las redes artificiales de neuronas, esta fuertemente
relacionado con el ajuste apropiado de las interconexiones (pesos sinápticos), además,
el aprendizaje se relaciona con la adaptación de la topología de la red (el número de
neuronas, el número de capas, y la interconexión entre ellas) determinado por el
modelo de la neurona artificial.
El sistema propuesto en esta Tesis Doctoral, basado en pequeñas redes neuronales
especializadas (TNN), fue concebido para el reconocimiento de objetos dentro de una
imagen y para aplicaciones en tiempo real. En el diseño se han empleado dos
conceptos importantes: el primero, relacionado con los sistemas de visión, emplea la
visión por singularidades, fundamentada, en los aspectos cognitivos y biológicos del
cerebro. Al emplearlos en el diseño de las TNN se ha conseguido una reducción
significativa tanto de los recursos hardware como de la carga computación. El
segundo, relacionado con la segmentación adecuada de los algoritmos de
entrenamiento y aprendizaje.
ix
Índice
Además, al realizar el mejor mapeo posible del modelo de la neurona artificial, se
pudo obtener un sistema con las características de configuración on line, para
aplicaciones de tiempo real, en diferentes áreas de la ciencia y la tecnología.
Finalmente, aprovechando la metodología propuesta durante el diseño y las
características de los FPGA’s, se pudo obtener un sistema embebido para aplicaciones
en plataformas móviles.
x
Índice
Abstract
The artificial neural networks are systems with large capacities of processing in
parallel inspired by the neuronal biological systems. In the artificial neural networks
the programming algorithms traditionally implemented are replaced by models of the
learning by means of examples or by means of iterations, in order to provide
adaptability to the network.
While, human learning is frequently related to the increase of knowledge or
understanding, and it is possible to obtain by means of self-learning, education or
experiences, learning, in the context of artificial neural networks, is strongly related
to the appropriated adjustment of interconnections (weigh synapses). In addition, the
learning relates to the adjustment of the network’s topology (the numbers of neurons,
the numbers of layers and the interconnections between them) determined by the
model of the artificial neuron.
The system proposed in this Doctoral Thesis, based on specialized Tiny Neural
Networks (TNN), was conceived for the recognition of objects inside an image and
for applications in real time. In its design, two important concepts have been used.
The first one related to the vision system, uses the vision by singularities, based on
the cognitive and biological aspects of the brain. Due to use of them in the design of
the TNN a significant reduction of the resources hardware as of the load
computational has been obtained. The second one, related to the suitable
segmentation of the algorithms of training and learning.
In addition, due to fulfill the best possible implementation of artificial neuron model,
it was possible to obtain a system with the characteristics of the real time, for
applications in several areas of science and technology.
xi
Índice
Finally, taking advantage of the methodology proposed during the design and the
features of the FPGA’s, an embedded system for applications in mobile platforms
could be obtained as a result.
xii
Capítulo 1 Introducción y objetivos de la Tesis
Capítulo 1
Introducción y objetivos de la Tesis
13
Capítulo 1 Introducción y objetivos de la Tesis
Índice
1. Introducción y objetivos de la Tesis.................................................... 15
1.1 Introducción a la Tesis..............................................................................................18
1.2 Objetivos de la Tesis .................................................................................................21
1.3 Criterios de estructura de la Tesis ...........................................................................23
..”He sido un hombre afortunado; en la vida nada me ha sido fácil”
Miguel de Cervantes Saavedra
14
Capítulo 1 Introducción y objetivos de la Tesis
Capítulo 1
…”Existirá Inteligencia Artificial cuando no seamos capaces de distinguir entre un
ser humano y un programa de computadora en una conversación a ciegas.”
Alan Turing
1. Introducción y objetivos de la Tesis
La Inteligencia Artificial (IA) surge a mediados de los años 50’s, a partir de los
trabajos realizados por Alan Turing. Los primeros investigadores tomaron como base
la neurona formalizada de McCulloch y Pitts, y proponían simular el comportamiento
del cerebro humano para resolver problemas. Sin embargo teniendo en cuenta la
enorme complejidad del mismo, resultó prácticamente imposible; además de que los
recursos hardware y software no eran aún, suficientes para realizar dicho proyecto.
El problema que plantea la inteligencia artificial es uno de los más complejos porque
¿cómo lograr que un “cerebro electrónico” realice las funciones de aprendizaje,
percepción, comprensión, predicción y manipulación, entre otras, que el cerebro
humano puede realizar en un mundo que en tamaño, naturaleza y complejidad, lo
supera?; si bien, de acuerdo con los trabajos realizados por diferentes investigadores
en esta área del conocimiento, hoy podemos decir que se cuentan con pruebas
definitivas de que tal búsqueda es posible; aún, con algunas restricciones.
Cuando se establecieron los objetivos de la inteligencia artificial se suponía que, en
el área de la percepción, con la llegada del siglo XXI habría máquinas que serían
capaces de describir, con información de alto nivel, las escenas capturadas. Sin
embargo, con el paso del tiempo, se vio que aquel deseo se iba desvaneciendo: hoy
en día, no se conocen del todo, los mecanismos que el cerebro utiliza para procesar lo
que percibe.
15
Capítulo 1 Introducción y objetivos de la Tesis
Por ejemplo, el cerebro es capaz, de manera automática, de determinar la distancia a
los objetos y de reconocerlos en diferentes posiciones; aunque se encuentren rotados
y con información parcialmente oculta. El cerebro presenta una sofisticación
perceptual que ni ahora, ni en mucho tiempo, habrá posibilidad de establecer
artificialmente.
La inteligencia artificial permite al hombre emular en las máquinas el
comportamiento humano, tomando como base al cerebro y su funcionamiento, de
manera tal que se pueda alcanzar cierto razonamiento.
El concepto de inteligencia artificial es aún muy impreciso. De tal forma que,
teniendo en cuenta el punto de vista científico podemos decir, que es el área de las
ciencias computacionales y electrónicas encargadas de imitar aquellas funciones
posibles del cerebro humano. Se trata de sistemas artificiales capaces de producir
respuestas a partir de premisas dadas.
En este sentido, resulta pertinente hacer algunas consideraciones que nos introduzcan
en el tema.
Podemos decir que la inteligencia artificial esta dividida en dos ramas [LH07],
[Gal05], [RK94]:
La rama simbólico-deductiva, llamada de la inteligencia artificial convencional.
Modela la actividad racional mediante sistemas formales de reglas de manipulación
simbólica (sistemas lógicos). Se sustenta en el análisis formal estadístico del
comportamiento humano ante diferentes problemas, empleando:
• Razonamiento basado en casos: ayuda a tomar decisiones mientras se
resuelven problemas concretos.
• Sistemas expertos: infieren soluciones a través del conocimiento previo del
contexto en que se aplica (hechos sobre objetos, situaciones) y el
conocimiento de control (información sobre el seguimiento de una acción).
• Redes bayesianas: propone soluciones mediante inferencias estadísticas.
• Inteligencia artificial basada en comportamiento: En sistemas complejos
autónomos, ellos mismos se controlan y auto-regulan, para perfeccionarse.
La rama subsimbólico-inductiva, el de la inteligencia artificial computacional –
inductiva. Basa su funcionamiento en la emulación de procesos biológicos. Extraen
16
Capítulo 1 Introducción y objetivos de la Tesis
la información necesaria para resolver un problema de un conjunto de ejemplos, sin
necesidad de indicarle las reglas para resolverlo; implica el desarrollo o aprendizaje
iterativo. Por ejemplo, la modificación de parámetros en sistemas conexionistas,
donde el aprendizaje se realiza con base en datos empíricos. Entre los métodos
empleados para lograr esto, se encuentran:
• Redes neuronales. Sistemas con gran capacidad de reconocimiento de
patrones.
• Modelos ocultos de Markov. Sistemas de aprendizaje basado en dependencia
temporal de eventos probabilísticos.
• Sistemas Difusos. Técnicas para lograr el razonamiento bajo incertidumbre.
• Máquinas de vectores soporte “Support Vector”. Es un método general para
la resolución de problemas de clasificación, regresión y estimación.
• Algoritmos Genéticos. Son métodos adaptativos que pueden usarse para
resolver problemas de búsqueda y optimización.
De esta forma, podemos decir que la inteligencia artificial computacional es la
ciencia encaminada a diseñar y fabricar aparatos y sistemas capaces de realizar tareas
propias del ser humano. La inteligencia artificial incluye diferentes campos de
desarrollo como son: la robótica, empleada principalmente en el campo industrial,
para el control de máquinas-herramientas; la visión artificial usada en líneas
industriales de montaje para el reconocimiento de patrones y formas; y los sistemas
computacionales expertos empleados en el aprendizaje de máquinas.
El empleo de la inteligencia artificial permite la reducción de costes en la ejecución
de tareas; reducir riesgos para las personas, en la manipulación de áreas peligrosas;
mejorar el rendimiento del personal inexperto, y optimizar el control de calidad en
los ámbitos industriales y comerciales.
Limitando los alcances de la inteligencia artificial al reconocimiento de patrones y
formas en una escena, estaríamos hablando del uso de la visión artificial (VA);
también conocida como visión por computador, cuyo propósito es programar dicho
computador para que entienda una escena o las características de una imagen. La
visión artificial es un sistema sensorial muy eficaz, que permite imitar el
comportamiento visual humano, establecer mediciones y clasificar imágenes; por lo
17
Capítulo 1 Introducción y objetivos de la Tesis
tanto, los campos existentes para la puesta en práctica de estos sistemas son muy
amplios y diversos.
Los sistemas de visión artificial tratan de imitar el sistema de visión humano. Esto ha
permitido que los investigadores en inteligencia artificial desarrollen nuevos
dispositivos de visión, con un enfoque orientado a la morfología neuronal de los
sistemas biológicos. Teniendo en cuenta que el hombre al momento de construir un
dispositivo ha imitado muchas veces a la naturaleza.
En el caso del diseño de los sistemas de visión artificial, ocurre lo mismo. Las
cámaras CCD 1 “Charge- Couple-Device”, con sus diferentes dispositivos ópticos,
tratan de imitar el funcionamiento del sistema sensorial de la visión humana,
mientras que la computadora realiza las tareas de procesamiento, similares a las que
se llevan a cabo en el cerebro.
Estos aspectos son objeto parcial de la investigación de esta Tesis Doctoral, donde
conceptualmente, se propone limitar los alcances de la inteligencia artificial
computacional a dos áreas específicas: a la visión artificial y a las redes neuronales.
En particular se propondrá un sistema de visión artificial para el reconocimiento y
clasificación de objetos, desarrollando arquitecturas inteligentes por medio de
hardware embebido, basado en pequeñas redes neuronales artificiales (TNN 2 ),
especializadas en el reconocimiento de formas y encargadas del aprendizaje.
1.1 Introducción a la Tesis
Actualmente existen sistemas de cómputo muy eficientes para realizar millones de
operaciones por segundo. Pero incapaces aún, de entender o interpretar el significado
de las formas visuales o de distinguir entre distintas clases de objetos en una escena;
cuando la información es incompleta o imprecisa.
Esta dificultad ha motivado el interés para hacer investigaciones en el desarrollo de
nuevas arquitecturas de cómputo, usadas en el tratamiento de información, que
permitan solucionar problemas cotidianos; tal como lo hace el cerebro humano,
1
CCD por sus siglas en inglés Charge Couple Device
2
TNN Tiny Neural Networks, término acuñado por el autor que por su nombre en inglés se
refiere a pequeñas redes neuronales artificiales.
18
Capítulo 1 Introducción y objetivos de la Tesis
cuyas características también son deseables en cualquier sistema digital de
procesamiento de información. Teniendo en cuenta que el cerebro como órgano: es
robusto y tolerante a fallos, pues diariamente mueren neuronas sin que esto afecte a
sus funciones; es flexible, porque se ajusta a nuevos ambientes por aprendizaje; es
hábil para manejar información difusa, con ruido o inconsistencias e imprecisiones;
es también altamente paralelo; pequeño y consume poca energía.
Basados en la eficiencia de los procesos llevados a cabo por el cerebro, e inspirados
en su funcionamiento, algunos investigadores han desarrollado desde hace más de 30
años la teoría de redes neuronales artificiales (RNA). Con el propósito de reproducir
redes neuronales biológicas, conducentes al aprendizaje de estrategias de solución
fundamentadas en ejemplos de comportamiento típico de patrones, ya que estos
sistemas no requieren que la tarea a ejecutar se programe, son capaces de generalizar
y aprender de la experiencia.
Son muchos los campos científicos donde se emplean las RNA, por ejemplo en: las
Ciencias de la Computación, en la Ingeniería, en la Estadística, en la Física, en la
Biología y en las Ciencias Cognitivas, entre otras. Las redes neuronales artificiales
se aplican al reconocimiento de información no simbólica; modelos de regresión no
lineal y clasificación; sistemas de procesamiento de señales y sistemas de control;
para la descripción y estudio de funcionalidades a nivel medio del cerebro, como la
memoria; en el modelado de fenómenos en mecánica estadística; en la interpretación
de secuencias dentro de las cadenas de ADN, etc.
Aunque no hay una definición para las redes neuronales artificiales, se puede
considerar como: la interconexión de diferentes capas que contienen pequeños y
sencillos elementos de procesamiento. Estos pequeños elementos computacionales,
denominados nodos de la red o neuronas artificiales, responden a un “sencillo”
modelo matemático que pretende simular el comportamiento de las neuronas
“naturales” o biológicas. Las conexiones que unen unos nodos con otros,
simplemente portan datos numéricos y al mismo tiempo, son dirigidas; es decir,
parten de una neurona para terminar en otra, de modo que todo nodo de la red tiene
varios datos de entrada, pero un único valor de salida, conectando a su vez a
cualquier otro nodo de la red.
Ya en el interior de la neurona artificial todos los datos de entrada son procesados
hasta obtener un solo valor de salida. Este valor es transmitido a la salida de la
19
Capítulo 1 Introducción y objetivos de la Tesis
neurona y posteriormente modificado por una función, denominada función de
activación, generalmente no lineal. Para esta función no es tan importante el
intervalo de valores de su conjunto; pero si la forma general de la función, pues se
trata de funciones cuyo valor es constante en todo el dominio, excepto en un
intervalo pequeño. En él se puede tener, desde una función escalón, a una función no
lineal (por ejemplo una función sigmoidal), pasando por funciones lineales.
A las redes neuronales se les atribuyen las siguientes características
computacionales: paralelismo, modularidad y adaptación dinámica [ZS03].
El paralelismo de una RNA se refiere al hecho de que, las neuronas de la misma
capa, procesan información simultáneamente. La modularidad se refiere a que cada
neurona en la red neuronal desarrolla el mismo tipo de operación, es decir, la
arquitectura entera de una red puede ser dividida en un conjunto de módulos de una
neurona básica. La adaptación dinámica implica que existen clases especiales de
algoritmos de aprendizaje, que emplean técnicas que le permiten ajustar
dinámicamente los pesos y la topología de la red neuronal.
Estas características computacionales son la justificación para que la RNA sea
diseñada y desarrollada utilizando hardware concurrente. Con el propósito de
aprovechar al máximo el paralelismo inherente de las redes, los dispositivos
hardware seleccionados, deben ser lo suficientemente flexible para soportar nuevos
diseños o modificaciones de la estructura de la red neuronal, a través de la
reconfiguración de los módulos básicos de la red.
Las arquitecturas de cómputo basadas en hardware reconfigurable resultan ideales
para implementar redes neuronales artificiales aprovechando la concurrencia y la
rapidez para diseñar y poner en marcha una nueva topología; así como adaptar los
parámetros y los pesos involucrados en la red neuronal [LL05].
Pero hoy en día, aún resulta un reto construir redes con un número grande de
neuronas en sistemas hardware embebidos. Ello requiere mucho esfuerzo debido
principalmente, a la gran cantidad de recursos hardware que consumen las
arquitecturas conexionistas; también a que los algoritmos que emplean, realizan
una gran cantidad de operaciones aritméticas (multiplicaciones), lo que provoca un
consumo elevado de recursos hardware.
20
Capítulo 1 Introducción y objetivos de la Tesis
Debido a esto, resulta muy interesante plantear nuevas propuestas de arquitecturas
que permita el procesado de la información, reduciendo el volumen total de datos,
pero sin perder la información característica. Una de la propuestas de esta Tesis es
una nueva arquitectura que nos permita optimizar los recursos hardware y al mismo
tiempo lograr una reducción en la carga computacional.
Tradicionalmente las redes neuronales son implementadas en software, entrenadas y
simuladas en sistemas de cómputo. Aunque algunas de las redes neuronales han sido
pensadas para sistemas de hardware específico o dedicado; dichos sistemas, no han
tenido éxito por su falta de flexibilidad para modificaciones estructurales y por sus
altos costos de diseño, lo que los hace prohibitivos en aplicaciones de propósito
general.
Los dispositivos reconfigurables, ofrecen velocidades comparables a los sistemas
hardware especializados. Por lo tanto, un sistema basado en hardware reconfigurable
es capaz de implementar redes neuronales de diferente tamaño y forma (topología)
sobre el mismo dispositivo hardware; además también soportan modificaciones
dinámicas de los pesos y parámetros de la red. Estas características les permiten ser
aprovechados en aplicaciones de tiempo real, como se verá en las funciones
planteadas en esta investigación.
1.2 Objetivos de la Tesis
La aportación de los estudios realizados por los investigadores en el campo de la
inteligencia artificial y el avance en el desarrollo tecnológico de los sistemas
embebidos, contribuyó a mi interés en el estudio y desarrollo de esta Tesis, que se
concreta en los siguientes objetivos principales:
1. Proponer una arquitectura de pequeñas redes neuronales (TNN) en módulos
computacionales parametrizables que permitan su implementación en el
contexto del hardware reconfigurable. Para ello, ha sido necesario, cuidar la
calidad del mapeo del modelo matemático que las describe y su adaptación a
los recursos hardware disponibles.
2. Plantear una arquitectura para la reconfiguración de las redes neuronales en
tiempo real. Por lo tanto el sistema deberá integrar una etapa capaz de re-
21
Capítulo 1 Introducción y objetivos de la Tesis
entrenar alguna de las redes durante el tiempo de ejecución; mientras el
resto del sistema, continúa con su operación normal.
3. Reducir la carga computacional del sistema a través de pequeñas redes
cooperantes (TNN) especializadas para reconocer formas, empleando para
ello el concepto de las singularidades de una imagen.
Como consecuencia de los objetivos principales se derivan los siguientes objetivos
secundarios:
4. Proponer una estrategia de reducción del elevado número de recursos
computacionales, utilizados para lograr un balance entre el procesamiento y
el mejor aprovechamiento de los recursos hardware disponibles.
5. Obtener un sistema embebido, que se pueda emplear en plataformas móviles,
teniendo en cuenta las restricciones de tamaño, peso y consumo de potencia
entre otras.
Durante los trabajos de investigación realizados para lograr cada uno de los objetivos
principales y secundarios planteados en esta Tesis Doctoral, fue necesario:
• Aplicar técnicas de procesamiento digital de imágenes, reconocimiento de
objetos e inteligencia artificial; específicamente el empleo de redes
neuronales artificiales, para el diseño de la arquitectura del sistema
propuesto.
• Aprovechar los diferentes grados de paralelismo inherentes a las redes
neuronales y a los algoritmos utilizados por los elementos de
procesamiento, proponiendo el diseño de la Arquitectura bajo el concepto de
un arreglo paralelo de elementos de procesamiento “processor array”3 .
• Aplicar la segmentación de los algoritmos utilizados en las redes neuronales,
para obtener un mejor desempeño, sin tener que pagar una penalización por
el intercambio de contexto.
3
Processor array; se puede decir que es como un arreglo de elementos de almacenamiento,
pero contiene y maneja elementos de procesamiento en lugar de únicamente elementos de
memoria.
22
Capítulo 1 Introducción y objetivos de la Tesis
• Emplear los principios de diseño de sistemas basados en redes cooperativas,
y contribuir en el diseño de nuevos sistemas aplicados a la automoción por
medio de arquitecturas hardware inteligentes.
Para lograr estos objetivos, resulta necesario el estudio e investigación de diferentes
conceptos hardware y software como son: arquitecturas paralelas, diseño y manejo de
memorias distribuidas, el uso de estructuras de buses de datos, y el empleo de un
sistema de control eficiente.
1.3 Criterios de estructura de la Tesis
En la organización de este documento se ha seguido una estrategia que parte de un
concepto general para llegar a conceptos particulares; así podemos decir, que se
encuentra organizada por medio de capítulos que parten del área general del campo
de la inteligencia artificial; descrita en la introducción. En ella se describen las dos
ramas principales de está disciplina: La inteligencia artificial tradicional-deductiva
y la inteligencia artificial computacional-inductiva. A efectos de esta Tesis
centramos nuestra atención en el segundo campo y, específicamente, en la visión por
computadora y las redes neuronales. De los seis capítulos que componen este
documento el primero está dedicado básicamente a delimitar el objeto de estudio y
los objetivos a alcanzar.
En los capítulos siguientes, se maneja la información de apoyo con una idea integral
pero especializada para cada uno de los aspectos necesarios a la comprensión del
proyecto; incluyendo al final de cada uno de ellos, las conclusiones parciales que más
tarde serán recopiladas en el apartado general de conclusiones. Así el capitulo dos,
está dedicado a la visón artificial, sus fundamentos y los aspectos neuro-biológicos y
cognitivos necesarios para entender el concepto de visión por singularidades.
En el capítulo tres se hace una revisión del estudio de las redes neuronales; tanto
biológicas como artificiales, para identificar el modelo matemático apropiado a las
segundas y de esta forma, establecer las diferentes topologías y los métodos de
aprendizaje empleados por ellas.
En el capítulo cuatro se ponderan las características de las principales formas de
implementar las redes neuronales, con base en sistemas programables y sistemas
23
Capítulo 1 Introducción y objetivos de la Tesis
configurables. También, se proponen los criterios de selección de un sistema
reconfigurable del tipo FPGA’s.
El capítulo cinco está dedicado a la descripción sistemática del diseño desarrollado y
presenta, por medio de un diagrama general de bloque, cada una de las partes que lo
compone así como sus características y funciones.
Finalmente se presenta un capítulo donde se exponen los resultados obtenidos y las
conclusiones correspondientes, así como las publicaciones. Se proporciona también
la bibliografía consultada en todo el proceso.
Es pertinente mencionar aquí, que algunos términos fueron acuñados específicamente
para designar alguno de los procesos propios de esta investigación y algunos otros se
utilizaron respetando la forma original, cuando no fue posible su traducción al
español; pero en ambos casos, se referencian con notas a pie de página, para facilitar
su entendimiento o en su caso, documentar su uso.
Con la idea de respetar las reglas gramaticales y cuidar la forma en la redacción, en
algunos casos, se recurrió a los sinónimos de algunas palabras sin sacrificio en el
significado; por esta razón y para esclarecer cualquier duda, se anexa una breve lista
de términos y equivalencias.
Finalmente, para cumplir con él formato establecido para este documento se incluye,
al inicio de esta tesis, un resumen en español y un abstract en inglés, en donde se da
una visión general del tema y el objetivo general de la investigación. Se anexa
también un índice de figuras y uno de tablas, organizados por capítulos, para facilitar
su localización en el documento.
24
Capitulo 2 Visión Artificial
Capítulo 2
Visión Artificial
25
Capitulo 2 Visión Artificial
Índice
2. Visión Artificial .................................................................................... 27
2.1 Comportamiento Visual............................................................................................29
2.2 Fundamentos del Área Cognitiva............................................................................30
2.3 Fundamentos del Área Biológica ............................................................................31
2.4 Fundamentos de Visión Artificial ..........................................................................32
2.4.1 Perspectiva del Diseño ............................................................................................ 34
2.5 Visión por singularidades. ........................................................................................37
2.5.1 Visión por singularidades e inteligencia artificial. ................................................ 39
2.6 Aplicación de las Singularidades..............................................................................41
2.7 Conclusiones...............................................................................................................42
En este capítulo se plantean los aspectos básicos de la Visión Artificial, las etapas
principales que constituyen a un sistema de visión y su funcionamiento, se establece
el concepto de visión por singularidades con el enfoque de la Gesttal, y el soporte
teórico del área cognitiva de la percepción.
26
Capitulo 2 Visión Artificial
Capítulo 2
.. “lo esencial es invisible para los ojos”
Antoine de Saint Exupéry
2. Visión Artificial
La visión artificial, o visión computacional, es una disciplina que tiene como
finalidad extraer información a partir de imágenes del mundo físico,
[EMPS94],[EMSA97], utilizando para ello dispositivos y sistemas electrónicos así
como sistemas de procesamiento,[ TLV+04],[ ADDM96].
Un sistema de visión artificial actúa sobre una imagen que le proporciona
información sobre brillo, luminancia 4 , crominancia 5 , contrastes, texturas, formas,
etc. [EMSA97]. Las imágenes pueden ser estáticas (en un plano), o dinámicas
(imágenes en movimiento), [MLS06], [ASML06].
Un sistema de visión artificial esta constituido por lo general, de cuatro etapas
principales:
• La primera etapa, (etapa de entrada), consiste en la captura o adquisición de
las imágenes digitales mediante un sistema que incluye algún tipo de sensor.
• La segunda etapa, (etapa de preprocesamiento), consiste en el tratamiento
digital de las imágenes, mediante filtros y transformaciones geométricas. Se
eliminan las partes inservibles de la imagen y se realzan aquellas que
resultan interesantes de la misma, con el objeto de facilitar el manejo de la
información en las etapas posteriores.
4
Luminancia, es la componente de la señal de video que contiene la información de
intensidad luminosa.
5 Crominancia, es la componente de la señal de video que contiene la información de
color.
27
Capitulo 2 Visión Artificial
• La tercera etapa (etapa de segmentación). En ella se aíslan los elementos de
la imagen que son relevantes para su procesamiento.
• La etapa final (etapa de reconocimiento). Procesa los objetos segmentados
mediante el análisis de ciertas características establecidas previamente.
Estas cuatro etapas no se siguen necesariamente de forma secuencial, en ocasiones es
necesario retroalimentar a una de las etapas anteriores; por ejemplo de la etapa de
reconocimiento volver a la etapa de segmentación, o a la etapa de preprocesamiento,
e incluso regresar a la etapa de entrada, si falla el sistema.
La visión artificial permite imitar el comportamiento visual humano, establecer
mediciones de parámetros característicos y clasificar imágenes de su entorno sin
tener contacto físico con mucha exactitud.
La visión humana es altamente eficiente en los procesos de reconocimiento y
clasificación de objetos, a pesar de las diferentes condiciones de visualización del
mismo. Los porcentajes que se obtienen en el reconocimiento sobrepasan el 95% en
tareas que involucran el reconocimiento y clasificación de diferentes cuerpos o
imágenes, con un alto grado de familiarización de los mismos (previamente
aprendido) [Her96]; por esta razón, los modelos empleados en el diseño de sistemas
de visión artificial, buscan reproducir las mismas condiciones funcionales.
Los investigadores en áreas como la neurobiología, psicología, matemáticas e
ingeniería se han asociado para realizar desarrollos tecnológicos, en el campo de la
inteligencia artificial, particularmente en las teorías conexionistas (redes neuronales
artificiales). Estos aspectos representan la motivación de esta Tesis Doctoral donde
de forma concreta, se pretende utilizar la visión artificial para el reconocimiento y
clasificación de formas.
Desde el punto de vista de la concepción y diseño arquitectural se planteó, desde un
inicio, que el sistema debería tener en cuenta, las siguientes condiciones:
1) Adecuar la entrada de datos y la adquisición mediante un proceso robusto.
2) Utilizar métodos y técnicas robustas para el análisis y extracción de
características de la imagen. Determinar y cuantificar los parámetros; como
las dimensiones y formas. La presencia o ausencia de características de una
28
Capitulo 2 Visión Artificial
imagen tales como, número de vértices, ángulos acotados, formas
preestablecidas, etc.
3) Lograr un sistema invariante a la rotación, traslación y escalamiento dentro
de un rango de iluminación.
4) Crear un sistema modular, escalable y reconfigurable, teniendo en cuenta que
será integrado a un sistema embebido.
2.1 Comportamiento Visual
El estudio del conocimiento no puede explicar adecuadamente aún, el porqué
asociamos significados particulares con imágenes y comportamientos específicos.
La interpretación del comportamiento visual se puede ver como simples mapeos
entre patrones reconocidos de movimiento y su semántica. Pero la actividad humana
es más compleja, el mismo comportamiento puede tener diferentes significados
dependiendo de la escena y el contexto de la tarea. La interpretación del
comportamiento en ocasiones, requiere de un procesamiento en tiempo-real, si es que
se quiere que sea correcta, en un contexto dinámico. Tiempo-real, no necesariamente
implica que todos los cálculos computacionales sean realizados a las velocidades
máximas de un cuadro de imagen, pues existe una dependencia de la aplicación de la
que se trate. Mientras la interpretación del comportamiento se realice dentro de
ciertos requerimientos en el tiempo, se considera válida [GB02].
Se estima que el 60% de la información que recibimos de nuestro entorno llega a
través de los ojos [PLR+05], [KZ85]. El sistema de visión humana, en lo que se
refiere a su trayectoria visual, es una arquitectura masivamente paralela [PLR+05],
[Uhr87]. Retomando este criterio, resulta lógico pensar en una estrategia alternativa,
considerando recursos de capacidad de cálculo menos complejos, pero más eficientes
para una mejor emulación del sistema visual humano. Esta alternativa puede ser
obtenida por los modelos conexionistas del proceso del conocimiento humano; idea
que se consideró para establecer el objetivo principal de esta Tesis Doctoral.
Diseñar un sistema basado en pequeñas redes neuronales, especializadas
en el reconocimiento de formas, para ser implantado en plataformas
móviles.
29
Capitulo 2 Visión Artificial
En este trabajo se describe la arquitectura de un sistema de visión; sin embargo, el
diseño de arquitecturas basadas en redes neuronales es enfatizado, por ser el tema
central de esta Tesis Doctoral, así como su ejecución en dispositivos electrónicos
reconfigurables.
2.2 Fundamentos del Área Cognitiva.
El conocimiento puede ser construido, ya sea empíricamente “empirical learning” o
a mano “hand built classifiers” [TS94]. El conocimiento empírico surge del modo en
que se reacciona ante ciertos estímulos, sin ninguna explicación; y el conocimiento
construido a mano, deriva del conocimiento adquirido por explicaciones. Como
ocurriría en el caso de un músico que identificara un instrumento de forma
espontánea, sólo con escuchar muchas veces (ejemplos) una clase de música, sin
conocimiento previo; y otro con estudios musicales (domain theory) 6 .
En los sistemas de inteligencia artificial se ha demostrado que una estrategia de
aprendizaje óptima, debería incluir una combinación de los dos métodos anteriores,
es más, esta idea está soportada por evidencias psicológicas que sugieren que la
teoría y los ejemplos, interactúan estrechamente durante el aprendizaje en el humano.
[PLR+05].
El aprendizaje en los sistemas naturales de conocimiento, incluyendo el de los seres
humanos, sigue un proceso como se puede demostrar en la vida diaria. Los eventos
son aprendidos de manera incremental; por ejemplo, cuando somos niños, y
empezamos a tener nuevos amigos, aprendemos a identificar nuevas caras y este
proceso continúa a lo largo de nuestras vidas. Este aprendizaje es estable ya que el
identificar nuevos rostros, no perjudica el aprendizaje de caras anteriores. Estas
premisas son el núcleo para el modelo conexionista del cerebro humano y están
soportados por ciencias como la psicología y la biología, ahora aplicables a las
ciencias computacionales, en el ámbito de la inteligencia artificial. Estudios
psicológicos, sugieren que el aprendizaje secuencial tiene lugar en el cerebro a
diferentes niveles de memoria a corto, mediano y largo plazo.
6
En maquinas de aprendizaje, un “domain theory” es una colección de reglas que describen
una tarea especifica. Para problemas de clasificación puede ser usado para saber si un objeto
pertenece a una clase particular.
30
Capitulo 2 Visión Artificial
Existen diferentes modelos de Redes Artificiales de Neuronas; si bien, para los
objetivos de esta Tesis Doctoral se ha seleccionado una red del tipo Perceptron
Multicapa. Esta red fue elegida por su capacidad de aprendizaje, conocimiento
incremental y estabilidad, tomando en consideración su rápida respuesta al
reconocimiento y clasificación de formas geométricas, y más aún, por su factibilidad
de implementación hardware embebido.
2.3 Fundamentos del Área Biológica
Los sistemas de visión buscan emular la visión y percepción humanas. Este enfoque
ha llevado a los investigadores, al diseño de sistemas de visión artificial con una
apreciación orientada a la morfología neuronal, de los sistemas biológicos de visión
humana [Pla08].
Diferentes expertos en neuroanatomía y neurofisiología han descubierto hechos
fascinantes que nos indican el modo y la trayectoria de las señales de visión, desde
los puntos iniciales en la retina del ojo, hasta los puntos cerebrales en la corteza
visual. Por otro lado, científicos de diferentes áreas como la matemática,
computación e ingeniería, han formulado teorías de las funciones neuronales en la
trayectoria visual, desde el punto de vista de su campo de especialización. Todo esto
ha permitido a los científicos un mejor entendimiento, de cómo las estructuras de
redes de procesadores y sistemas artificiales de visión deben ser diseñados, teniendo
en cuenta, los paradigmas de las redes neuronales, los modelos matemáticos, las
arquitecturas computacionales y el hardware requerido para su realización.
Cuando un sistema incluye todos estos aspectos, podemos hablar de una máquina
artificial de visión, con la que se puede ver nuestro mundo y desarrollar diferentes
aplicaciones en la vida diaria.
Basándose en este razonamiento, y para un mejor entendimiento, podemos hablar de
dos áreas muy interesantes: la morfología visual de los sistemas biológicos de visión
y los modelos utilizados en las redes neuronales para el desarrollo de los sistemas
de visión artificial, tema central de está Tesis.
Considerando la información de una escena visual, las máquinas desarrolladas tienen
un modo de adquisición que les permite ver, memorizar y comprender lo que ven o
31
Capitulo 2 Visión Artificial
han visto; esto nos lleva a considerar, en el diseño de estos sistemas, nuevas
arquitecturas con estrategias computacionales, que intentan imitar el comportamiento
de la visión humana, teniendo en cuenta las restricciones que los sistemas de
computación actuales presentan.
En este trabajo se expone un método novedoso utilizado en el diseño de un sistema
de visión, para el reconocimiento de objetos en aplicaciones de tiempo real, flexible,
reconfigurable y con atributos de fácil construcción en hardware embebido.
El sistema deberá estar basado en pequeñas redes neuronales colaborativas, que
mediante la especialización del reconocimiento de singularidades, puede realizar el
reconocimiento de formas más complejas, optimizando los tiempos de procesamiento
y los recursos hardware.
Podemos decir que existen dos condiciones importantes que hemos tomado en
cuenta, en el planteamiento del desarrollo de este trabajo de investigación.
1) Tiene que haber un primer punto dentro de la escena de visión, a partir del
cual se pueden referenciar o derivar las características y atributos. La escena
de visión se ha dividido en una región de interés, con el objeto de disminuir
la cantidad de datos a procesar; a su vez, esta región se divide en regiones de
detección, que contiene los vectores característicos 7 de la imagen.
2) Una vez que un objeto ha sido presentado y aprendido, la siguiente vez que
se presenta para ser reconocido se busca por indicaciones o señas
particulares para un rápido reconocimiento del mismo, utilizando luego la
información memorizada en cuanto a características y atributos; de ahí que
resulta más importante tener métodos rápidos para extraer la información
previamente memorizada, que modelos complejos del objeto, aunque su
identificación, presente un grado de incertidumbre.
2.4 Fundamentos de Visión Artificial
La visión artificial es la adquisición automática de imágenes empleando, por lo
general, un sensor remoto y su análisis también automático, con el fin de extraer la
información necesaria para controlar un proceso o una actividad como:
7
Vector característico. Vector de datos de entrada a la red neuronal.
32
Capitulo 2 Visión Artificial
• control de calidad
• sistemas de seguridad
• manipulación de materiales
• pruebas y calibración de aparatos
• monitorización de procesos
• robótica
Una de las características de los sistemas de visión artificial es que, por lo general,
son diseñados para enfrentarse a problemas concretos y bien acotados. Por lo tanto,
los sistemas de visión artificial se enfrentan a situaciones específicas, proponiendo
soluciones que sirvan como base, para afrontar problemas de mayor complejidad.
La mayoría de los diseñadores de sistemas de visión, utilizan el llamado modelo
señal-símbolo; en este método, el objetivo es tener descripciones significativas de la
escena de visión partiendo de datos crudos y utilizando tres niveles de análisis, como
se muestra en la figura 2-1.
Nivel de Análisis
Determinación de Determinación de
propiedades locales modelos geométricos Representación
Datos de la imagen de la imagen, métodos genéricos simbólica global
y atributos como: Atributos de escena Descripción
Niveles, Elementos como: semántica de la
de Bordes, Color y Fronteras, Regiones, escena.
Textura Superficies, Objetos
Bajo Intermedio Alto
Figura 2-1. Análisis Señal – Símbolo
El costo computacional al emplear este método de análisis es alto, debido a que se
realizan millones de instrucciones por cada escena, sobre todo si se aplican métodos
de análisis dinámicos. Los procesadores, en la actualidad resuelven parcialmente el
problema; pero aún no alcanzan las velocidades de nuestra propia experiencia visual,
33
Capitulo 2 Visión Artificial
que obtiene información significativa en un rango de 70 a 200 milisegundos; y sobre
todo, empleando relativamente pocos elementos procesadores llamados neuronas, las
cuales requieren, cada una de ellas, de 2 milisegundos aproximadamente para dar una
respuesta.
Desde el punto de vista de la ingeniería, es deseable tener arquitecturas
computacionales inspiradas en el proceso biológico de visión, que contemplen el
procesamiento, almacenamiento e interpretación de la información, estas estructuras
computacionales, pueden ser desarrolladas por medio de Redes Neuronales
Artificiales.
2.4.1 Perspectiva del Diseño
Pensando que es posible obtener información rápida y confiable con un análisis
simple, pero enfocado a lo que del objeto se debe mostrar; entendemos una primera
identificación del objeto o la imagen, es decir sus “singularidades”: éstas, más tarde,
pueden ser utilizadas para traer nuevamente, los aspectos memorizados del objeto sin
tener que trasladar todas las características detalladas, lo que resulta, un
conocimiento sustancial y robusto de lo que se esta viendo. En cierta manera, los
seres humanos realizamos este proceso toda vez que hemos visto y aprendido un
objeto por primera vez.
Creemos que aprendiendo formas básicas dentro del proceso inicial de conocimiento,
es posible, reconstruir el objeto utilizando aspectos primitivos del propio objeto o
imagen, como lo establecen las Leyes de Gestalt 8 (Max Wertheimer, Wolfgang
Köhler y Kurt Koffka) acerca de los factores de proximidad, similaridad y
simplicidad, como se muestra en la tabla 2-1. [Leo01].
8
El cerebro humano, organiza las percepciones como totalidades Gestalt. Leyes enunciadas
por los psicólogos de la Gestalt.
34
Capitulo 2 Visión Artificial
Ley general de figura y fondo Figura es elemento que existe
en un espacio o campo
destacándose en su
interrelación con otros
elementos.
Fondo todo aquello que no es
figura, es parte del campo que
contiene los elementos
Ley general de la simplicidad Los elementos son organizados
en figuras lo más simétricas,
regulares y estables que sea
posible
Ley del cierre o de la Las formas cerradas y acabadas
completud son más estables visualmente lo
que hace que tendamos a
“cerrar” y a completar con la
imaginación las formas
percibidas buscando la mejor
organización posible.
Ley de proximidad Los elementos tienden a
agruparse con los que se
encuentran a menor distancia
Ley de similaridad Los elementos que son
similares tienden a ser
agrupados
Tabla 2-1. Leyes de la Gestalt
En un principio, los psicólogos siguieron un enfoque “estructuralista” cuyo objetivo
era determinar los elementos fundamentales de la visión, utilizando métodos que
incluían la introspección analítica. Los observadores trataron de determinar qué
35
Capitulo 2 Visión Artificial
elementos hacen una escena para construir un todo. La idea básica es buena, pero se
pueden llegar a tener demasiados elementos para estructurar una imagen.
Los psicólogos, siguiendo las ideas de Gestalt, observaron que solo por conocer
cuales son los elementos, no significa que se pueda conocer como se tiene que ver la
configuración de los mismos. En la figura 2-2 se tienen diferentes figuras, todas con
elementos de 16 puntos negros; sin embargo, la configuración de cada una de ellas es
diferente, aunque tengan “elementos idénticos”. Se pueden apreciar un cuadrado, un
círculo y un triángulo, lo que concluye que: diferentes configuraciones con los
mismos elementos se pueden ver diferentes y configuraciones con diferentes
elementos se pueden ver similares. Esto, que parece un gran problema, proporciona
una gran oportunidad para la interpretación de objetos con elementos básicos.
Figura 2-2. Elementos idénticos, diferentes configuraciones
En contraste con el enfoque puramente “estructural”, el enfoque Gestalt se basa en la
configuración de los elementos, esto es: “el todo es diferente que la suma de las
partes” (Wolfgang Köhler), [Leo01], para ello no se tiene un modelo preciso pero si
un conjunto de “leyes de Gestalt”, que ayudan a predecir qué se agrupó y qué se
percibe como la figura y el fondo, como se observa en la tabla 2-1.
36
Capitulo 2 Visión Artificial
Desde la perspectiva de diseño se muestra esta idea con partes simples utilizadas en
la experimentación, con aplicación al reconocimiento de señales de tráfico. Para el
aprendizaje inicial de conocimiento, se consideran un triángulo, un círculo y un
cuadrado como las formas básicas.
De estas figuras básicas, y considerando el desarrollo anteriormente expuesto, se
propone trabajar con “las singularidades” de una imagen, logrando con esto
optimizar la cantidad de datos a procesar y al mismo tiempo, nos permite un mejor
manejo de los recursos hardware. En la figura 2-3, se observa, por medio de las
leyes de Gestalt las figuras básicas, utilizadas para el reconocimiento, teniendo en
cuenta para su aprendizaje, las singularidades correspondientes a cada una de las
figuras básicas.
Figura 2-3. Figuras básicas para el reconocimiento por singularidades
2.5 Visión por singularidades.
La visión por ordenador utiliza técnicas para el análisis de la imagen con el fin de
detectar la presencia de objetos y ofrecer una caracterización. El pre-procesamiento,
junto con la segmentación, se encarga de adecuar las propiedades de la imagen a los
procesos de más alto nivel; esto resulta necesario debido a que la información que
representa un objeto o una imagen, en un entorno, se encuentra, muchas veces,
mezclada con otra información que se considera ruido o inservible.
El basarse en la imagen para extraer las propiedades de un objeto implica, una
dependencia muy alta de cualidades sensibles, al grado de perfección alcanzado en
37
Capitulo 2 Visión Artificial
cualquiera de las cuatro etapas de un sistema de visión convencional 9 , como el que se
muestra en la figura 2-4. La presencia de ruido en la imagen, oclusión en la misma u
otros aspectos, debidos a los sistemas de adquisición de información o al medio
ambiente (falta de contraste, falta o exceso de luz, niebla, etc.,) pueden hacer
inutilizable a una imagen para fines de reconocimiento.
La dependencia de los sistemas de visión del ser humano, ante los factores
ambientales e intrínsecos de los componentes físicos del sistema de visión, es muy
inferior; debido a que su funcionamiento está basado en las cualidades aparentes de
los objetos en las imágenes recibidas, que son identificables incluso, en imágenes de
mínima calidad.
Adquisición Preprocesamiento Segmentación Reconocimiento
Extracción
Filtro Filtro Separación Reconocimiento
Video de
CCD de Localización
Decoder características
Mediana Sobel Objetos Interpretación
Figura 2-4. Sistema de visión
Estas cualidades son designadas por el nombre genérico de singularidades [Lop01].
De otro modo:
Una singularidad es una característica destacable.
En estas circunstancias, una singularidad es una característica destacable relativa al
sistema autónomo 10 empleado; es decir, al estado en que se encuentre, a su
morfología y a todas sus demás características.
9
Adquisición, Preprocesamiento, Segmentación y Reconocimiento
10
Un sistema autónomo se entiende como aquél que es capaz de operar sin intervención
humana. Esta noción deriva de autos-uno mismo- y nomos –ley-
Se pueden distinguir dos tipos de autonomía relevantes para los sistemas técnicos (1)
Operacional: la capacidad de un sistema para compensar perturbaciones incluidas por el
entorno. (2) de Decisión: la capacidad de un sistema para tomar sus propias decisiones.
38
Capitulo 2 Visión Artificial
En cualquier de los casos mencionados, hablar de sistemas autónomos es hablar de
teoría de control, automatización y robótica.
Existen sistemas autónomos, cuyos elementos y criterios de valoración son similares.
• Los elementos de un sistema autónomo compartirán por tanto, una serie
de criterios de valoración, que en todos ellos serán los mismos.
• Cada elemento tendrá otros criterios distintos a los de sus semejantes y
que pueden derivarse de su propia evolución.
• Cada elemento, para evaluar si una característica es una singularidad o no,
hará uso de sus criterios, de algunos comunes a sus elementos semejantes
y otros exclusivos de él.
De lo anterior, se dice que los sentidos comunes son, los criterios compartidos por un
grupo de sistemas autónomos. Los sentidos propios serán, en cada sistema autónomo,
los que sean exclusivos de él. [Lop01]
2.5.1 Visión por singularidades e inteligencia artificial.
Al diseñar y desarrollar una aplicación basada en la visión artificial se deben seguir
una serie de etapas. En la figura 2-5 se muestra una disposición típica de las etapas
del modelo general de un sistema de visión. Por lo tanto, las diferentes etapas que
constituyen dicho modelo pueden alterar su orden, e incluso algunas de ellas se
pueden eliminar.
Clasificaciones más detalladas han sido propuestas y analizadas desde distintos puntos de
vista en diversas fuentes.
39
Capitulo 2 Visión Artificial
Detección de Extracción de
Segmentación
bordes características
Base de Reconocimiento y
Preprocesamiento
Conocimiento Localización de obj.
Adquisición de Interpretación
la imagen De la escena
Figura 2-5. Modelo general de un sistema de visión
La visión por singularidades es un proceso realizable en dos etapas fundamentales
que son:
• Detección de singularidades en la imagen
• Descripción y Reconocimiento.
Detección de singularidades: proceso mediante el cual se extraen las características
relevantes de la imagen empleando modelos matemáticos, que generalmente, son
válidos para cada problema en particular
La etapa de descripción y reconocimiento emplea la información obtenida de las
etapas anteriores para reconocer él o los objetos que se encuentran en la imagen. Una
vez que el objeto ha sido reconocido, su localización es relativamente fácil, teniendo
en cuenta la información de la etapa de segmentación. De acuerdo a nuestra
aplicación, no existe un algoritmo único, sino que depende de la zona de la imagen
que queremos obtener de cada objeto (singularidades) y por lo tanto, del tipo de
figura. Así tendremos diferentes singularidades para cada una de las formas a
reconocer. (Figura 2-3).
La visión por singularidades no depende críticamente del método empleado, por lo
que las técnicas clásicas de inteligencia artificial son aplicables en las dos etapas.
40
Capitulo 2 Visión Artificial
Tanto la lógica borrosa como las redes neuronales pueden ser adecuadas para la
detección y el reconocimiento de formas.
Así en las formas triangulares el objetivo es capturar tres vértices (ángulos a 600), en
las formas cuadradas cuatro vértices (ángulos a 900) y en las circulares se buscan
cuatro zonas con segmentos de curva. Estas zonas extraídas de la imagen
conformarán la biblioteca de patrones necesarios para el entrenamiento de las redes
neuronales especializadas, empleadas en la etapa para el reconocimiento de formas.
2.6 Aplicación de las Singularidades
Las singularidades son aquellas características observadas en una percepción que
confiere carácter distintivo a una entidad. Las propiedades se considerarán singulares
o no dependiendo del sistema que percibe. En el caso concreto de esta investigación,
las singularidades están basadas en elementos geométricos simples: áreas, lados,
esquinas, curvaturas, etc.
Esta investigación aplica pequeñas redes neuronales para el reconocimiento de
formas empleando singularidades, lo que nos permite reducir significativamente los
recursos hardware empleados y optimizar, al mismo tiempo, la velocidad de
procesamiento para aplicaciones en tiempo real.
En la etapa de reconocimiento se detecta ya la presencia de ángulos acotados
(esquinas) y lados en las figuras analizadas. Los lados podrán ser rectos o curvos. Y
se entiende que, en una figura con cuatro esquinas, hay cuatro lados. El sistema de
reconocimiento basado en singularidades cuenta con tres pequeñas redes neuronales
especializadas en el reconocimiento de singularidades (esquinas, ángulos de 900,
ángulos acotados de 600 y segmentos de curva), que permiten un análisis de
proporciones geométricas básicas de formas cuadradas, triangulares y circulares. El
diseño y las características de las redes neuronales se desarrollan en el siguiente
capítulo.
41
Capitulo 2 Visión Artificial
2.7 Conclusiones
Se han mostrado los fundamentos principales de un Sistema de Visión Artificial, en
base al modelo señal símbolo, donde se observa claramente una relación directa del
tiempo de procesamiento y de los recursos computacionales empleados, en función
de la cantidad de información a procesar.
Se presenta una alternativa de diseño para una nueva arquitectura computacional
basada en los procesos biológicos, empleando arquitecturas de redes neuronales,
desde el punto de vista de los modelos cognitivos y las leyes de la Gestalt.
Se propone un nuevo modelo de diseño, basado en visión por singularidades,
empleado para reconocer y clasificar objetos; empleando pequeñas redes neuronales
artificiales, en la etapa de reconocimiento
42
Capitulo 3 Redes de Neuronas
Capítulo 3
Redes de Neuronas
43
Capitulo 3 Redes de Neuronas
Índice
3. Redes de Neuronas.............................................................................. 45
3.1 Redes Neuronales Biológicas...................................................................................45
3.2 Redes Neuronales Artificiales ..................................................................................47
3.2.1 Neurona Artificial .................................................................................................... 48
3.3 Redes de Neuronas Artificiales: Topologías..........................................................51
3.4 Redes Neuronales Artificiales: Aprendizaje...........................................................58
3.5 Adaptación de las topologías de las Redes de Neuronas Artificiales. ...............64
3.5.1 Redes Artificiales de Neuronas Evolutivas........................................................... 65
3.5.2 Evolución de los Pesos de una RNA .................................................................... 65
3.5.3 Evolución de la arquitectura de una RNA............................................................ 66
3.5.4 La evolución de las reglas de aprendizaje de una RNA ...................................... 66
3.6 Conclusiones...............................................................................................................66
En este capítulo se presenta el comportamiento de las neuronas biológicas y a partir
de ella se esquematiza el modelo de una neurona artificial. Se realiza una revisión de
los aspectos relacionados con las arquitecturas de las redes neuronales así como de
los modelos de aprendizaje utilizados para su entrenamiento y posteriormente para
el aprendizaje de nueva información. Se realiza un breve recorrido por los aspectos
más importantes en el área de las redes neuronales, fundamentados en la
bibliografía útil al tema. [Neural Networks a comprehensive foundation, de Simon
Haykin, Neural Networks Design, de Martin T. Hagan, y algunos otros que se
encuentran en las referencias bibliográficas].
A partir de esta revisión, se selecciona la arquitectura que se implantará en el diseño
empleando para ello, dispositivos electrónicos reconfigurables, los cuales serán
tratados más adelante.
44
Capitulo 3 Redes de Neuronas
Capítulo 3
“Es posible que todo pueda ser descrito científicamente, pero no tendría sentido, es
como si describieran a una sinfonía de Beethoven como una variación en las
presiones de onda. ¿Cómo describirían la sensación de un beso o el te quiero
de un niño?”
Albert Einstein
3. Redes de Neuronas
3.1 Redes Neuronales Biológicas
El esfuerzo por entender el cerebro humano se debe en gran parte al trabajo del
medico español Santiago Ramón y Cajal (1911), quien introduce la idea de que el
cerebro esta integrado por pequeñas unidades discretas, llamadas “neuronas”. Él
describe que las neuronas son células polarizadas que tienen tres componentes
principales; las dendritas, el cuerpo de la célula o soma y el axón. Las dendritas son
la estructura de entrada de la red, son fibras nerviosas que cargan de señales
eléctricas el cuerpo de la célula. El cuerpo de la célula realiza la suma de esas señales
de entrada. El axón es la estructura de salida de la red, es una fibra larga que lleva la
señal desde el cuerpo de la célula hacia otras neuronas. El punto de contacto entre el
axón de una célula y una dendrita de otra célula es llamado sinapsis; la longitud de la
sinapsis es determinada por la complejidad del proceso químico que estabiliza la
función de la red de neuronas. Un esquema simplificado de la interconexión de dos
neuronas biológicas se observa en la figura 3-1. [HDB96]
45
Capitulo 3 Redes de Neuronas
Figura 3-1. Neurona Biológica
El cerebro humano puede verse como un sistema de procesamiento de información
(computación paralela), no lineal y sumamente complejo [Hay94].
El cerebro tiene la capacidad de organizar sus neuronas para realizar ciertos cálculos
(por ejemplo reconocimiento de patrones, percepción y control de movimientos, etc.)
mucho más rápido que la computadora digital más rápida que existe hasta el
momento [Hay94].
Típicamente, las neuronas tienen un orden de magnitud de 5 o 6 veces más lentas que
el de las puertas lógicas, los eventos en un circuito electrónico de silicio se realiza en
el rango del nano-segundo 11 , mientras que un evento en las neuronas se lleva a cabo
en el rango del mili-segundo 12 . Sin embargo, el cerebro realiza las operaciones a una
fracción de tiempo mucho menor, debido al sorprendente número de neuronas que se
encuentran masivamente interconectadas. Se estima que hay del orden de 10 billones
de neuronas en la corteza del cerebro humano, y 60 trillones de sinapsis o conexiones
[Hay94] de lo que resulta una red que hace que el cerebro sea una estructura
enormemente eficiente. Específicamente, el consumo de energía del cerebro con
relación al resto del cuerpo humano es del 20% de la energía total.
11
Nano_segundo = (10-9 seg.)
12
Mili-segundo = (10-3 seg.)
46
Capitulo 3 Redes de Neuronas
A pesar de que el cerebro tiene una gran diversidad de formas en sus neuronas,
árboles de dendritas, longitud del axón, etc., parece que todas las neuronas procesan
la información de la misma manera. La información se transmite en forma de
impulsos eléctricos, llamados “potencial de funcionamiento”, a través del axón desde
otras células de neuronas. Este potencial de funcionamiento tiene una amplitud
cercana a los 100 mili-voltios, y una frecuencia de aproximadamente 1 Khz. Cuando
el potencial de funcionamiento llega al final del axón, la neurona realiza un proceso
químico (neurotransmisor) que permite la comunicación entre neuronas. A esta
comunicación especializada se le conoce como sinapsis.
Este funcionamiento tan preciso de la neurona biológica, ha motivado a ingenieros e
investigadores de las diferentes áreas del conocimiento para desarrollar sistemas
adaptativos (Redes Artificiales de Neuronas) con la capacidad de aprendizaje.
En las siguientes secciones se describen los principales modelos computacionales
que se han desarrollado a partir del modelo biológico de la neurona.
3.2 Redes Neuronales Artificiales
El desarrollo de las neuronas es sinónimo de la plasticidad 13 del cerebro. En un
cerebro adulto, la plasticidad se puede deber principalmente a dos mecanismos: la
creación de nuevas conexiones sinápticas entre neuronas y a la modificación de las
sinapsis existentes.
Los modelos de las Redes Artificiales de Neuronas son ampliamente utilizados en el
diseño adaptativo, debido principalmente al interesante proceso de “aprendizaje”
para resolver problemas.
Las Redes Neuronales Artificiales (RNA) se definen por las características
propuestas de sus neuronas; es decir, por el modelo de la neurona, por la topología de
la red y por los algoritmos de entrenamiento y aprendizaje. En la siguiente sección
se describen el modelo principal de una neurona, las topologías típicas de una red y
las clases principales de los algoritmos de entrenamiento.
13
La Plasticidad permite el desarrollo del sistema nervioso para adaptarse al entorno
(Churchland and Sejnowski,92; Eggermont,90, Hay94).
47
Capitulo 3 Redes de Neuronas
3.2.1 Neurona Artificial
El primer modelo de una neurona es referenciado en la literatura como el modelo de
McCulloch -Pitts (1943). En este modelo, la salida de la neurona toma un valor igual
a uno, si el nivel total del funcionamiento de la neurona es positivo, y toma un valor
de cero, si el valor es negativo.
entradas
x1
pesos sinápticos
w1j
salida
Σ
x2 w2j 1
yj
-1
θ
wnj
umbral
w0j
xn θj
Figura 3-2. Modelo de una neurona artificial
Las redes neuronales artificiales son modelos matemáticos de la actividad de las
neuronas del cerebro humano, tratando de simular algunas de sus capacidades. En la
actualidad el campo de aplicación incluye el reconocimiento de patrones, modelado
de sistemas, aproximaciones de funciones, control de procesos, etc.
Todas las neuronas conducen la información de manera similar, las conexiones que
unen unos nodos con otros simplemente portan datos numéricos y al mismo tiempo
son dirigidas, es decir, parten de una neurona para terminar en otra, de modo que
todo nodo de la red tiene diversos datos de entrada pero un único valor de salida,
conectando a su vez a cualquier otro nodo de la red, como se muestra en el modelo
de la figura 3-2.
Matemáticamente el comportamiento de la neurona puede presentarse como una lista
de señales de entrada que son multiplicados por sus pesos respectivos y
posteriormente sumados, el resultado es llamado nivel de activación de la neurona
48
Capitulo 3 Redes de Neuronas
del cual depende la señal de salida que es enviada a cada una de las neuronas que se
conectan a ella.
El modelo matemático que describe la neurona llamada Perceptron, mostrada en la
figura 3-2, propuesta por Rosenblatt en 1958, es el siguiente:
⎧ n
⎪+ 1 si
⎪
∑w x
i =1
i i >θ
y ( x) = ⎨ n
⎪− 1 si
⎪⎩ ∑w x
i =1
i i <θ
donde θ es el umbral de activación
Elementos de proceso (EP)
Una red neuronal artificial esta formada por un conjunto de elementos de proceso
llamados neuronas, que se comunican entre sí mediante el envío de señales, a través
de un número de conexiones ponderadas. La forma en que se encuentran
interconectadas está determinada por la estructura o arquitectura de la red.
Cada neurona realiza su procesamiento en forma local, debido a esto, se dice que una
red neuronal es un sistema potencialmente paralelo de procesamiento de
información. Otra de las características importantes es su capacidad de aprendizaje,
por medio de este proceso, los valores asociados a cada una de las neuronas (pesos)
son modificados, hasta conseguir que la red funcione como se desea.
La neurona artificial de la figura 3-2, trata de emular el comportamiento de una
neurona biológica. Cada neurona j interactúa con el entorno por medio de una serie
de entradas xi, ponderadas por un peso wij. Generalmente, existe un parámetro
adicional θ j llamado umbral de activación que se asocia con la entrada y tiene un
peso ponderado w0j. Esté término representa un valor umbral interno que debe ser
superado para que la neurona se active. El valor de salida yj de la neurona se llama
nivel de activación y se calcula por medio del producto escalar xi y wj, restando el
umbral y pasando el resultado a una función de activación o función de umbral f ().
De la observación detallada del proceso biológico se han hallado las siguientes
analogías con el sistema artificial:
49
Capitulo 3 Redes de Neuronas
• Las entradas xi representan las señales que provienen de otras neuronas y
que son capturadas por las dendritas.
• Los pesos wi son la intensidad de la sinapsis que conecta a dos neuronas;
tanto xi como wi son valores reales.
• θ es la función umbral que la neurona debe sobrepasar para activarse; este
proceso ocurre biológicamente en el cuerpo de la célula.
Desde el punto de vista computacional, una neurona artificial clasifica o calcula una
función dependiendo de las entradas. Para determinar una salida, a partir de una
entrada, la neurona calcula la correlación que hay entre las entradas y los pesos
sinápticos almacenados; por lo general, esta correlación se calcula por medio de un
producto escalar. Si xi y wi son las componentes (i) del vector de entrada y los pesos
sinápticos respectivamente, entonces el producto escalar es equivalente a la suma
estándar de los pesos por las entradas.
n
∑w x
i =1
i i
En una neurona artificial, este valor de correlación es referido como “el potencial” de
la neurona. La salida de una neurona es la función no lineal del potencial.
n
y = f (∑ wi xi )
i =1
Funciones de activación
La función de activación cuantifica el efecto de la función de entrada sobre la
activación del elemento de proceso (neurona). Es decir, la función de activación
mapea el dominio de las entradas en un rango predeterminado de salidas.
Los tipos de función de activación más usados son: la función lineal, la rampa, el
escalón y la función sigmoide mostradas en la tabla 3-1, donde se puede observar sus
funciones.
La función lineal es la más sencilla, cuya ecuación se muestra en la tabla 3-1. Si la
función lineal se acota, [−γ ,+γ] se convierte en una función lineal saturada. El
intervalo determina los valores máximo y mínimo del nivel de activación del
elemento de proceso. Cuando la función depende solo del signo de la variable, se
50
Capitulo 3 Redes de Neuronas
utiliza una función escalón. La función sigmoide realiza una función similar al
escalón, pero es además derivable.
Función
⎧1, si x≥0 1
Escalón f (x) =⎨ 0
⎩0, si x<0
⎧1, si x≥0 1
Escalón simétrico f (x) =⎨
⎩−1 si x<0
-1
Lineal o identidad f (x) =x
⎧−1, si x<−1
⎪ 1
Lineal saturada f (x) =⎨ x, si −1≤x≤1 -1
⎪1, si x>1
⎩
1
Sigmoidal logarítmica f (x) =
(1+e−x)
Tabla 3-1. Funciones de activación
3.3 Redes de Neuronas Artificiales: Topologías
La topología de una red neuronal se refiere al modo en que las neuronas se organizan
o interconectan. Habitualmente las neuronas se organizan en capas. Se pueden
estudiar las topologías conforme a las siguientes características: tipos de conexiones,
esquemas de interconexión y configuración de capa.
51
Capitulo 3 Redes de Neuronas
Esquemas de interconexión básicos.
• La intra-capa: son conexiones entre neuronas o elementos de proceso de la
misma capa.
• La inter-capa: son conexiones entre elementos de proceso de capas
diferentes. Este tipo de conexiones pueden propagar señales en dos modos diferentes;
hacia delante “feedforward” y hacia atrás “feedback”. Las de tipo feedforward
permiten un flujo de información en una única dirección; mientras las feedback
permiten un flujo, hacia delante y hacia atrás y también recursivamente.
• Las recurrentes: son conexiones entre elementos de proceso de la misma
capa, algunas de sus salidas se conectan hacia atrás, es decir, son conexiones en
forma de bucles.
Dentro de una red artificial de neuronas, los elementos de procesamiento se
encuentran agrupados por capas. Una capa se refiere a una colección de neuronas y
de acuerdo a la ubicación de la capa en la red, tiene diferentes nombres.
• Capa de entrada 14 : Recibe las señales de la entrada de la red.
• Capas ocultas o intermedias: Son aquellas que no tienen contacto con el
medio exterior, sus elementos pueden tener diferentes conexiones y son éstas las que
determinan la topología de la red.
• Capa de salida: Acepta la información de la capa oculta y transmite la
respuesta al medio externo.
La forma en que las neuronas en una red neuronal se estructuran esta íntimamente
ligada con los algoritmos usados en el entrenamiento de la red; por lo tanto, podemos
hablar de los algoritmos de aprendizaje (reglas) empleados en el diseño de la red, así
como de la topología (estructura) de la red.
14
Algunos autores no consideran el vector de entrada como una capa pues allí no se lleva a
cabo ningún proceso.
52
Capitulo 3 Redes de Neuronas
En general podemos identificar cuatro clases de arquitecturas de redes neuronales
artificiales:
• Redes de una sola capa
• Redes multicapa,
• Redes Recurrentes
• Redes de Rejilla.
1. Redes de una Sola Capa (Feedforward).
La forma más simple de una red artificial de neuronas; es una red de una sola capa,
donde los nodos de la capa de entrada, se conectan con los nodos de la capa de salida
(donde se realizan los cálculos), pero no viceversa. En otras palabras, es una red de
propagación hacia adelante (feedforward) como se muestra en la figura 3-3.
Capa de Capa de
Entrada Salida
Figura 3-3. Red neuronal de una sola capa
Una memoria asociativa es un ejemplo de funcionamiento de una red neuronal de
una sola capa (red perceptron). En este tipo de aplicación, la red asocia un patrón de
salida (vector de salida), con un patrón de entrada (vector de entrada), y la
información se almacena en la red en virtud de las modificaciones hechas a los pesos
sinápticos.
53
Capitulo 3 Redes de Neuronas
2. Redes Multicapa (Feedforward).
También llamadas redes neuronales Perceptron Multicapa (MLP) “Multi-Layer
Perceptron”, se distinguen por la presencia de una o más de una capa oculta, cuyos
elementos de procesamiento son llamados neuronas ocultas.
La capa de entrada de la red esta formada por los elementos de activación (vector de
entrada), éstas constituyen las señales de entrada aplicadas a las neuronas, en la capa
oculta (segunda capa). Las señales de salida de la segunda capa, son usadas como las
entradas a la tercera y así para el resto de la red. Típicamente, los elementos de
procesamiento de cada capa de la red tienen como entrada únicamente, las señales
de salida de la capa anterior.
El conjunto de las señales de la capa de salida constituyen la respuesta total de la
red a un patrón de activación aplicado en la capa de entrada. La arquitectura de la
figura 3-4 ilustra una red de neuronas Perceptron Multicapa, esta arquitectura es
completamente conectada, debido a que todos los nodos de cada capa, están
conectados a todos los nodos de la capa adyacente. Por el contrario, si alguno de los
enlaces de comunicación no existe dentro de la red, se dice que se trata de una red
parcialmente conectada.
Capa de Capa Capa de
Entrada Oculta Salida
Figura 3-4. Red neuronal multicapa
54
Capitulo 3 Redes de Neuronas
3. Redes Recurrentes [Modelo Hopfield]
Son redes de adaptación probabilística y recurrentes. Funcionalmente entrarían en la
categoría similar al funcionamiento de una memoria asociativa; es decir, que
aprenden a reconstruir los patrones de entrada que memorizan durante el
entrenamiento.
Unidades de
retardo
Z-1 Z-1 Z-1 Z-1
neuronas
(a)
Unidades de
retardo
Z-1
Salidas
Z-1
Z-1
Z-1
neuronas
Entradas
( b)
Figura 3-5. Redes neuronales recurrente a) sin auto-retroalimentació b) con
neuronas ocultas
55
Capitulo 3 Redes de Neuronas
Una red recurrente está formada por una sola capa, donde las salidas de cada una de
las neuronas, son retroalimentadas a las entradas de todas las otras neuronas, como se
muestra en la figura 3-5.a.
Una arquitectura con auto-retroalimentación (self-feedback loop), se refiere a la
situación donde la salida de una neurona, se retroalimenta a su propia entrada. En la
figura 3-5.b se muestra una red recurrente con capa oculta.
La presencia de los lazos de retroalimentación tiene un gran impacto en la capacidad
de aprendizaje de la red, sobre todo en su funcionamiento.
4. Redes Lattice (Rejilla)
Las arquitecturas de rejilla pueden ser de una dimensión, dos dimensiones o una
estructura de dimensiones mayores de neuronas, con su correspondiente conjunto de
señales de entrada; la dimensión de la rejilla, se refiere al espacio de la gráfica, por
ejemplo podemos tener una gráfica de dos dimensiones.
56
Capitulo 3 Redes de Neuronas
Capa de
Entrada
( a)
Capa de
Entrada
( b)
Figura 3-6. Redes de rejilla a) Red de una dimensión, con tres neuronas
b) Red de dos dimensiones tres por tres neuronas
En la figura 3-6.a se observa la gráfica de una arquitectura de tres neuronas en una
dimensión alimentada por tres nodos de entrada. La figura 3-6.b representa una
arquitectura de una red “lattice” de dos dimensiones de tres por tres neuronas; con
una capa de entrada de 3 nodos fuente. En ambas representaciones se puede observar
que los nodos fuente, son conectados a todas las neuronas de la estructura. Una red
con arquitectura “lattice” es realmente, una red retroalimentada con las salidas de las
neuronas representadas en una distribución de filas y columnas.
57
Capitulo 3 Redes de Neuronas
3.4 Redes Neuronales Artificiales: Aprendizaje
Hasta el momento hemos empleado el término “conocimiento” en la definición de
una Red Artificial de Neuronas, sin una descripción explicita de qué significa, por
este motivo se da la siguiente definición:
“El conocimiento se refiere a la información almacenada o a los modelos
usados por una persona o una máquina par interpretar o pronosticar
y responder apropiadamente al mundo exterior”. 15
Las características principales del conocimiento son:
• Que la información actual sea explícita.
• Que la información sea codificada para su uso posterior.
Procesos de Aprendizaje
Entre las diferentes propiedades de las Redes Artificiales de Neuronas, la propiedad
que tiene un significado fundamental es la habilidad de la red para “aprender” a
partir de su entorno y el de “mejorar” su rendimiento a través del aprendizaje.
La mejoría en el rendimiento tiene lugar a través del tiempo de acuerdo con las
medidas establecidas 16 . Una red artificial de neuronas aprende acerca de su entorno
por medio de un proceso iterativo que le permite ajustar los pesos sinápticos y los
umbrales aplicados a la red. Idealmente, la red obtiene más conocimiento cada vez
que se realiza un proceso de aprendizaje.
Esto implica que en el proceso de aprendizaje se realiza la siguiente secuencia de
eventos:
• La red de neuronas aprende de su entorno.
• La red de neuronas experimenta un cambio como resultado de los
datos de entrada de su entorno.
• La red de neuronas responde de una nueva manera al entorno, debido
a los cambios que han ocurrido en su estructura interna.
15
Simon Haykin (pag.22)
16
Learning rate es un parámetro que se emplea para disminuir el desajuste y es inversamente
proporcional al tiempo de respuesta.
58
Capitulo 3 Redes de Neuronas
De acuerdo al interés particular de las redes artificiales de neuronas, se define el
término aprendizaje de la siguiente manera:
“Aprendizaje es un proceso por el cual los parámetros libres de una red de
neuronas son adaptados a través de un continuo proceso de
simulación del entorno en que se encuentra embebido. El tipo de
aprendizaje está determinado por la forma en que ocurren los
cambios de los parámetros”. 17
Cuando utilizamos una red neuronal en un determinado proceso, debemos conseguir
que aprenda a realizar su función, es decir, que sepa dar la salida adecuada a cada
una de las entradas que se presenten.
Las redes neuronales almacenan la información necesaria para esto, es decir, el
conocimiento en forma de valores de los pesos de sus interconexiones. Así, el
aprendizaje de una red neuronal se desarrolla modificando los pesos hasta conseguir
los valores adecuados, por tanto estos pesos constituyen su memoria. Esta memoria
resulta un factor determinante para la implementación hardware del modelo de la
neurona.
Mediante los algoritmos de aprendizaje se obtienen los criterios necesarios para
modificar los pesos. Por lo tanto, podemos decir que el aprendizaje se convierte en
un problema de optimización, donde el objetivo es encontrar un conjunto de valores
(pesos) que minimice una función de coste. La elección de la función de coste
dependerá de la información disponible sobre la tarea a realizar por la red neuronal,
tanto su objetivo final (target), como la forma de alcanzarlo.
Un algoritmo de aprendizaje es un conjunto bien definido de reglas para la solución
del problema de aprendizaje. Y se refiere al procedimiento en que las reglas de
aprendizaje son usadas, para ajustar los pesos sinápticos de una red artificial de
neuronas, y a la posibilidad de ajustar la topología de la red, es decir, el número de
capas, el número de neuronas y la interconexión entre ellas, como se observa en la
figura 3-7.
17
Simon Haykin (pag. 45)
59
Capitulo 3 Redes de Neuronas
Proceso de Aprendizaje
Algoritmos de Aprendizaje (reglas) Paradigma de Aprendizaje
Corrección de Errores Boltzmann Ley de Thorndike’s Hebbian Competitivo Aprendizaje Aprendizaje Aprendizaje
Supervisado Reforzamiento No-Supervisado
Figura 3-7. Taxonomía del aprendizaje
Otro de los factores a considerar, es la forma en la que una red de neuronas se
relaciona con su entorno. En este último contexto, el modelo del aprendizaje se
refiere al entorno en el que la red de neuronas opera. En la figura 3-7 se describe la
taxonomía del aprendizaje; los paradigmas del aprendizaje, son explicados a
continuación.
Los principales modelos del aprendizaje son: Supervisado, No-Supervisado y con
Reforzamiento.
Aprendizaje Supervisado.
En los métodos de aprendizaje supervisado la información disponible sobre la tarea a
realizar es muy completa. Se conoce tanto el objetivo final (salida de la red), como la
forma de alcanzarlo (entrada de la red).
En el aprendizaje supervisado existe un profesor, en términos conceptuales instruye
sobre cuales son las salidas concretas que la red neuronal debe dar ante determinadas
entradas. El entrenamiento se realiza presentándole a la red neuronal un conjunto de
patrones de entrenamiento formado por su entrada y su correspondiente salida, como
se muestra en la figura 3-8.
60
Capitulo 3 Redes de Neuronas
Medio ambiente Profesor
respuesta
respuesta deseada
+
actual
Sistema de
aprendizaje - Σ
señal de error
Figura 3-8. Aprendizaje Supervisado
En el caso de que exista una diferencia (error) entre los valores devueltos por la red
neuronal y los valores deseados para cierta entrada, tendrá lugar una corrección de
los pesos de la red para mejorar la respuesta.
La corrección de pesos se realiza empleando alguno de los algoritmos de
entrenamiento disponible para los casos de aprendizaje supervisado. La mayoría de
ellos tratan de minimizar el error cuadrático medio entre los valores de salida
deseados y los obtenidos por la red neuronal. Podemos mencionar, que el algoritmo
de retropropagación “backpropagation” es uno de los más empleados. Debido a que
se usa en muchas aplicaciones de las diferentes áreas del conocimiento.
Podemos mencionar que la aplicación de las redes supervisadas se encuentran en
alguna de las siguientes categorías: 1) La Clasificación y el diagnostico; 2) La
aproximación, la compresión, la extracción de características y cuantificación de
funciones, 3) en la optimización.
Una vez que el entrenamiento ha concluido, se puede decir que el proceso de
aprendizaje se ha realizado, ya que los valores de los pesos y los umbrales no
cambian.
El aprendizaje supervisado se puede realizar de dos maneras: aprendizaje fuera de
línea (off-line) y aprendizaje en línea (on-line).
• En el caso del aprendizaje supervisado fuera de línea, las facilidades
de un sistema computacional independiente son usadas para diseñar
el sistema de aprendizaje supervisado. Lo que significa que la red de
neuronas funciona de una manera estática.
61
Capitulo 3 Redes de Neuronas
• En el aprendizaje en línea, el proceso se realiza dentro del mismo
sistema, no requiere de un sistema de cómputo adicional. En otras
palabras, el aprendizaje se realiza en tiempo real con el resultado de
que la red trabaja en forma dinámica. Naturalmente los requisitos de
aprendizaje de un sistema en línea son más estrictos que los de un
sistema de aprendizaje fuera de línea.
Aprendizaje No-Supervisado
El aprendizaje no supervisado se caracteriza por la ausencia de cualquier tipo de
profesor o instructor que indique las salidas adecuadas para cada entrada. Este tipo de
aprendizaje no recibe ningún tipo de información externa sobre la asociación entre
las entradas y las salidas adecuadas, esto se observa en la figura 3-9
Medio ambiente Sistema de aprendizaje
Figura 3-9. Aprendizaje no supervisado
La red neuronal por si misma, genera una serie de representaciones internas, que le
permite proporcionar la respuesta adecuada. Este tipo de aprendizaje tiene
aplicaciones, sobre todo, en tareas de clasificación en las que la red neuronal es capaz
de generar una serie de estructuras internas en función solamente, de los patrones de
entrada, no existen patrones de salida.
Uno de los paradigmas más conocidos son los mapas de características
autoorganizados de Kohonen “self-organized feature maps”. Este modelo permite
generar una clasificación de los patrones de entrada en clases equiprobables, en
función de la frecuencia de aparición de los patrones, en la entrada de la red
neuronal.
El aprendizaje no supervisado emplea básicamente las reglas del aprendizaje
competitivo, constando de: la capa de entrada recibe los datos disponibles, la capa
competitiva, consiste en que las neuronas compiten entre ellas por la “oportunidad”
62
Capitulo 3 Redes de Neuronas
de activarse (respuesta). La red funciona de acuerdo con la estrategia del “ganador-
toma- todo”.
El empleo de esta técnica de aprendizaje permite la implementación de módulos de
extracción de características necesarios en los sistemas de aprendizaje autónomos.
Algunas de sus aplicaciones se pueden encontrar en la organización de tareas
(clustering task), en la búsqueda y exploración de datos, en la reducción de datos, en
la extracción de información, en la compresión de datos, etc.
Aprendizaje por Reforzamiento (Reinforcement – Learning)
En el aprendizaje mediante reforzamiento, al contrario que en el supervisado, no
existe un maestro que instruya sobre las salidas correctas ante determinadas entradas;
pero existe un crítico que proporciona una información más evaluativa que
instrucciónal. El crítico proporciona información sobre lo adecuado de las salidas
devueltas por la red ante determinadas entradas, es decir, una evaluación de las
mismas, en función de los objetivos marcados para la red neuronal, y concretados en
un índice de resultados, pero no informa sobre cuáles son las salidas correctas.
El aprendizaje por reforzamiento es un método de aprendizaje en línea, representa
el mapeo de las entradas a las salidas, a través de un proceso de prueba y error
diseñado para maximizar un índice de desempeño llamado “señal de reforzamiento”.
Durante el aprendizaje por reforzamiento se realiza un proceso interactivo: el sistema
prueba algunas acciones sobre el entorno (evalúa las salidas), y entonces refuerza
está acción (premia).
El algoritmo de aprendizaje por reforzamiento retiene selectivamente las salidas que
obtuvieron una máxima evaluación de la señal de reforzamiento. Los conceptos
básicos involucrados en el aprendizaje por reforzamiento son, la búsqueda por prueba
– error y el uso de un índice de reforzamiento.
Los métodos de aprendizaje por reforzamiento tienen una aplicación importante en
aquellos sistemas en línea capaces de aprender de acuerdo a las experiencias. Este
tipo de sistemas encuentran aplicaciones en problemas de control, en la localización
dinámica de canales en telefonía móvil, en el área de redes de datos en el “ruteo” de
paquetes, en el aprendizaje de sistemas autónomos y robots, en el área de juegos, etc.
63
Capitulo 3 Redes de Neuronas
3.5 Adaptación de las topologías de las Redes de
Neuronas Artificiales.
El espacio es una de las dimensiones del proceso de aprendizaje; el tiempo es la otra.
La naturaleza espacio-temporal del mismo se ejemplifica en muchas de las tareas de
aprendizaje (por ejemplo control, beamforming 18 ) discutidas anteriormente. Por otra
parte, los seres vivos desde los insectos hasta los seres humanos, tienen una
capacidad inherente de representar la estructura temporal. Esto les permite adaptar su
comportamiento de acuerdo a la estructura espacio tiempo.
Cuando una red de neuronas trabaja en un ambiente estacionario (aquél en que las
características estáticas no cambian con el tiempo), la esencia estática del entorno
puede, en teoría, ser aprendida por la red bajo la supervisión de un profesor. En
particular, los pesos sinápticos de la red se pueden calcular sometiéndola a
entrenamiento con un conjunto de datos que son representativos del entorno. Una vez
que el proceso de entrenamiento se ha terminado, los pesos sinápticos de la red son
capturados y estos representan la estructura estática del entorno. De tal forma que el
sistema de aprendizaje depende de la memoria para recordar y explotar las
experiencias anteriores [YL97].
Frecuentemente, el medio ambiente de interés es no-estático, lo que significa que los
parámetros estáticos de las señales generadas por el medio ambiente varían con el
tiempo. Para vencer estos inconvenientes, las redes tienen la capacidad de adaptar
continuamente sus parámetros a las variaciones que presentan las señales en tiempo
real; logrando de esta forma un sistema adaptativo que responde casi a cualquier
señal de entrada. Nosotros podemos construir la estructura temporal en el diseño de
la red neuronal, permitiendo que continuamente se entrene y aprenda nuevos
patrones de información durante el tiempo de ejecución. De acuerdo con este
enfoque podemos decir que la red se adapta o reconfigura, utilizando métodos
tradicionales de aprendizaje, durante el tiempo de ejecución.
18
Beamforming es una técnica de procesamiento de señales usada con “arrays” de
transductores que transmiten o reciben el control de la direccionalidad o densidad de potencia
de un patrón de radiación.
64
Capitulo 3 Redes de Neuronas
3.5.1 Redes Artificiales de Neuronas Evolutivas
Una red artificial de neuronas puede verse como una máquina adaptativa [AM90],
[KYCW07], que almacena conocimiento experimental para su uso posterior. Este
conocimiento se adquiere mediante un proceso de aprendizaje; y son las
interconexiones entre las neuronas las que se utilizan para “almacenar” el
conocimiento referido. El modo en que la red adquiere el aprendizaje, para realizar
las tareas encomendadas, es mediante la adaptación de los pesos de las conexiones.
La forma en que las neuronas son interconectadas y estructuradas, es decir la
arquitectura de la red, está íntimamente relacionada con el algoritmo de aprendizaje.
Un aspecto muy importante de las redes artificiales de neuronas es el proceso de
aprendizaje, o adaptación de los pesos asociados a las conexiones, con el objeto de
realizar la tarea asignada, por ejemplo aproximación de funciones, clasificación, etc.
A la hora de llevar a cabo el aprendizaje se debe tener en cuenta el modelo del
entorno en el que opera la red; de esta forma se pueden aplicar las diferentes
estrategias de aprendizaje que existen.
Se puede hablar de tres enfoques principales para hacer evolucionar una RNA:
evolución de los pesos de conexión (partiendo de una arquitectura fija), evolución de
la arquitectura (topología y/o funciones de activación), y evolución de las reglas de
aprendizaje.
3.5.2 Evolución de los Pesos de una RNA
Dada la topología particular de una red artificial de neuronas, el entrenamiento de la
red consiste en ajustar progresivamente los valores de los pesos asociados a las
conexiones, mediante la minimización del error de la salida de la red y la salida
esperada, siempre que se trate de aprendizaje supervisado. La adaptación de los pesos
se puede enfocar, desde el punto de vista evolutivo, tomando en cuenta los
problemas propios de los algoritmos basados en el descenso del gradiente y desde el
punto de vista hardware, pensando en arquitecturas reconfigurables que permitan
adaptar los pesos en tiempo real, para el reconocimiento de nueva información.
La evolución de los pesos de conexión supone, una aproximación adaptativa y global
para realizar el entrenamiento, siempre que el aprendizaje sea supervisado
65
Capitulo 3 Redes de Neuronas
resolviendo aquellos casos en que los algoritmos de entrenamiento basados en
descenso del gradiente experimentan grandes dificultades.
3.5.3 Evolución de la arquitectura de una RNA
La evolución de la arquitectura de la red hace que la propia red pueda adaptar su
topología al problema sin intervención humana, lo cual representa una aproximación
al diseño automático de RNA en tanto que los pesos y la arquitectura pueden hacerse
evolucionar. La arquitectura de la red es un factor determinante en el rendimiento y
en su capacidad de generalización.
3.5.4 La evolución de las reglas de aprendizaje de una
RNA
Significa una adaptación de las reglas de aprendizaje mediante evolución, en el
sentido de buscar parámetros de la regla de adaptación de pesos e incluso buscar
nuevas reglas de adaptación los mismos.
3.6 Conclusiones
Las redes artificiales de neuronas se presentan como sistemas de procesamiento
paralelo inspirados en el modelo biológico del sistema nervioso, que tienen como
propiedad fundamental, la habilidad de aprender, a partir de su entorno. Mientras el
aprendizaje está relacionado con el incremento de conocimiento, en el contexto de
las RNA, el aprendizaje esta fuertemente relacionado con el ajuste de sus
interconexiones.
Se ha mostrado que el aprendizaje o adaptabilidad de la red esta también relacionado
con la topología de la red, es decir que el modelo de la red neuronal, también
depende de la topología de la red, es decir, del número de capas, del número de
neuronas y del esquema de conexiones.
66
Capitulo 3 Redes de Neuronas
Por lo tanto el aprendizaje se convierte en un problema de optimización, donde el
objetivo es encontrar un conjunto de valores que minimice la función de coste, y está
dependerá de la información disponible de las tareas a realizar por la red neuronal.
Los algoritmos de aprendizaje son, el conjunto de reglas que se emplean para ajustar
los pesos sinápticos de una red artificial de neuronas, y a la posibilidad de ajustar su
topología.
La adaptación de los pesos se puede enfocar desde el punto de vista evolutivo,
tomando en cuenta los problemas propios de los algoritmos involucrados y desde el
punto de vista hardware, pensando en arquitecturas reconfigurables que permitan
adaptar los pesos en tiempo real.
67
Capitulo 3 Redes de Neuronas
68
Capitulo 4 Arquitecturas Reconfigurables
Capítulo 4
Arquitecturas Reconfigurables
69
Capitulo 4 Arquitecturas Reconfigurables
Índice
4. Arquitecturas Reconfigurables ............................................................ 71
4.1 Tecnologías reconfigurables: FPGAs .....................................................................75
4.2 Tipos de Configuraciones.........................................................................................78
4.2.1 Sistemas Modulares multitarjeta............................................................................. 82
4.2.2 Redes FPGA’s monotarjeta .................................................................................... 82
4.2.3 Tarjetas Coprocesador............................................................................................. 83
4.3 Tendencias Futuras (Evolvable Hardware) ...........................................................83
4.4 Diseño y Programación del Modulo Reconfigurable...........................................83
4.5 Requisitos Tecnológicos ...........................................................................................84
4.5.1 Requisitos a nivel sistema........................................................................................ 84
4.5.2 Requisitos de los algoritmos ................................................................................... 86
4.5.3 Flujo de Datos .......................................................................................................... 89
4.5.4 Elementos de Proceso ............................................................................................. 90
4.6 Conclusiones...............................................................................................................91
En este capítulo se realizará un repaso de varias arquitecturas reconfigurables que
han dado soporte al desarrollo de la disciplina de la Computación Reconfigurable. Se
presenta la evolución sufrida desde los primeros dispositivos FPGA´s.
70
Capitulo 4 Arquitecturas Reconfigurables
Capítulo 4
Lo que sabemos es una gota de agua; lo que ignoramos es el océano
Isaac Newton
4. Arquitecturas Reconfigurables
Actualmente existen dos métodos para llevar a cabo el procesamiento de datos. El
primero de ellos, el Procesamiento Hardware, que se distingue por emplear circuitos
integrados dedicados, ya sea mediante el empleo de Circuitos Integrados de
Aplicación Específica (ASIC) 19 o bien por la interconexión de circuitos integrados
individuales, a través de una placa de circuito impreso. El segundo método, llamado
Procesamiento Software, se basa en el uso de procesadores que están encargados de
ejecutar un conjunto de instrucciones para realizar el procesamiento.
Así podemos mencionar que las principales características de estos métodos son las
siguientes:
• El procesamiento hardware; se caracteriza por su rapidez y eficiencia en la
aplicación concreta para la que ha sido diseñado; pero el sistema no puede
ser alterado después de su fabricación, debido a esto, podemos decir que los
circuitos ASIC o el procesamiento hardware es poco flexible.
• El procesamiento software; usando un procesador (o microprocesador)
incrementa la flexibilidad del sistema para poder cambiar la funcionalidad;
reprogramando el algoritmo que realiza.
Los dispositivos reconfigurables cubren el espacio existente entre estos dos métodos,
de forma que se disponga de la eficiencia del procesamiento hardware y de un alto
grado de flexibilidad. La adaptabilidad de las arquitecturas reconfigurables permite
19
ASIC Application Specific Integrated Circuit
71
Capitulo 4 Arquitecturas Reconfigurables
explotar el paralelismo existente en muchas aplicaciones, de forma que se realice el
procesamiento específico.
En la figura 4-1 se muestra cómo los sistemas configurables, basados en
dispositivos reconfigurables, se localizan en una zona intermedia dentro de la
relación flexibilidad – especialización. No son tan flexibles como un procesador de
propósito general, ni tan específicos, ni tan óptimos, como un ASIC. Sin embargo,
aprovechan las características positivas de cada uno de estos.
PROCESADOR PROCESADOR LÓGICA DISPOSITIVOS
DE PROPÓSITO ESPECIALIZADO CONFIGURABLE ESPECÍFICOS
GENERAL (ASICs)
FLEXIBILIDAD ESPECIALIZACIÓN
SISTEMAS PROGRAMABLES SISTEMAS ESPECÍFICOS
SISTEMAS CONFIGURABLES
Figura 4-1. Características de los Sistemas Configurables
Podemos destacar las diferencias más importantes entre la lógica reconfigurable y el
procesamiento software basado en procesadores, en las siguientes características
[BP02]:
Principales características de los sistemas reconfigurables
• Computación espacial: El procesamiento de datos se realiza distribuyendo
los cálculos de forma espacial, en contraste con el procesamiento secuencial.
• Ruta de datos (datapath) configurable: Empleando un mecanismo de
configuración, es posible cambiar la funcionalidad de las unidades de
cómputo y de la red de interconexión.
• Control distribuido: Las unidades de cómputo procesan datos de forma local
en vez de estar controladas por una única instrucción.
• Recursos distribuidos: Los elementos requeridos para el procesamiento se
encuentran distribuidos por todo el dispositivo, en contraste con los de
localización centralizada.
72
Capitulo 4 Arquitecturas Reconfigurables
Así mismo, podemos mencionar que los métodos de diseño e implementación
hardware de redes neuronales artificiales pueden ser agrupados en dos categorías: La
primera en base a microprocesadores, ya sea que se utilicen procesadores de
propósito general o bien específicos para el Procesado Digital de Señales (DSP) 20 . El
segundo método de diseño es por medio de ASIC’s o bien empleando dispositivos
reconfigurables de tipo FPGA 21 .
Debido a que el modelo de una neurona artificial se obtiene a partir de un modelo
matemático, podemos decir que una red neuronal artificial es una descripción
abstracta del comportamiento del cerebro humano. Estas redes neuronales pueden ser
diseñadas y puestas en operación empleando circuitos integrados, o bien a través de
programas de ordenador que permiten simular su funcionamiento. Sin embargo, el
paralelismo inherente de las redes de neuronas dinámicas, solamente puede ser
realizado en implementaciones hardware o computadores paralelos, [ABD+04]. En la
tabla 4-1 se muestran claramente los métodos de implementación software y
hardware de redes neuronales.
20
DSP Digital Signal Processing
21
FPGA Field Programmable Gate Array
73
Capitulo 4 Arquitecturas Reconfigurables
• Se programan fácilmente, los
algoritmos de ANN y se
reconfiguran las arquitecturas
Simulación en ordenadores • Se pierde el paralelismo, propio
convencionales, de las ANN. (usa computadoras
Software de los algoritmos de las convencionales)
redes de neuronas artificiales •Áreas de implementación
grandes (usa computadoras
convencionales)
Simulación en ordenadores la velocidad de procesamiento,
Implementación paralelos disminuye en cuando la ANN
de aumenta su tamaño.
Redes de Neuronas •Alta velocidad •Tiempo grandes de desarrollo
Artificiales •Recursos de bajo costo •Velocidades de procesamiento
Analógicos altas
•Poca flexibilidad en el diseño ASIC •Pequeña área de implementación
•Poca precisión en cálculos •Costos altos de desarrollo
e implementación
•Alto paralelismo
Hardware
•Reconfiguración y Flexibilidad
Una arquitectura completamente (modificación de pesos e
paralela puede ser realizada con incluso arquitectura)
Digitales ASIC •Algoritmos de aprendizaje
(on-chip)
•Consideraciones de: frecuencia,
FPGA
precisión, paralelismo y configuración
•Bajo Costo de implementación
y desarrollo de los algoritmos
de ANN
•Poca área de implementación
En un circuito integrado
Tabla 4-1. Implementación Software y Hardware de redes neuronales artificiales
Los sistemas de cómputo de propósito general, son frecuentemente empleados en las
simulaciones de redes neuronales artificiales; sin embargo, el tiempo requerido en la
simulación se incrementa sustancialmente, cuando el tamaño de la red crece, como
ocurre en las redes completamente interconectadas, mencionadas en el capítulo
anterior, debido por un lado a la gran cantidad de datos a procesar y por otro al
carácter secuencial de la simulación.
Con el objeto de disminuir los tiempos requeridos en la simulación, en los últimos
años, diferentes grupos de investigación han trabajado con nuevos métodos de
diseño, desarrollo e implementación hardware de redes neuronales, proponiendo una
amplia gama de soluciones, desde implementaciones analógicas hasta
implementaciones digitales. Cada uno de estos diseños presenta diferentes ventajas y
74
Capitulo 4 Arquitecturas Reconfigurables
desventajas en costo, velocidad de procesamiento, área requerida, y consumo de
potencia, entre otras, como se muestra en la tabla 4-1.
En las diferentes arquitecturas de redes neuronales, cada neurona realiza su
procesamiento en forma local; debido a esto se dice que es un sistema
potencialmente paralelo de procesamiento de información. Teniendo en mente esta
característica, podemos decir que su diseño e implementación puede ser realizada
con circuitos ASIC, logrando un dispositivo a la medida, pero naturalmente, los
costes de implementación son muy altos. En cuanto a las FPGA’s permiten explotar
el paralelismo inherente a las redes neuronales, sin que los costos de fabricación y
los tiempos de desarrollo sean demasiado altos, [XLDJ03], [ABD+04], [BFHD05]. Las
FPGA’s tienen las ventajas de ser reconfigurables, lo que añade una enorme
flexibilidad.
Otras de las características importantes que estos dispositivos tienen son: la
capacidad de adaptación, la posibilidad de configuración en tiempo de ejecución y la
especialización. Aprovechando estas características específicas se han desarrollado
sistemas reconfigurables eficientes en aplicaciones de la inteligencia artificial; entre
otras, en la programación genética, en la detección de patrones, en la criptografía, en
el procesamiento de imágenes y en las redes de neuronas artificiales, objetivo de esta
Tesis.
4.1 Tecnologías reconfigurables: FPGAs
Los progresos recientes en la fabricación e integración de los dispositivos
semiconductores, y el notable desarrollo de dispositivos hardware reconfigurables del
tipo de las FPGA’s, hacen posible que el usuario pueda configurar la conexión
interna de sus circuitos y la funcionalidad lógica del nodo.
Las FPGA’s, son dispositivos con una alta velocidad de procesamiento y una alta
escala de integración, que pueden ser modificados o configurados, casi en cualquier
punto por los usuarios [SSHB+99].
Un FPGA es un “array” de bloques lógicos localizados dentro de una estructura de
interconexiones y pueden ser configuradas en tres niveles: (1) La función del bloque
lógico, (2) La interconexión entre bloques lógicos, y (3) las entradas y salidas. Estos
niveles son configurados por medio de una cadena de bits, que son cargados desde
75
Capitulo 4 Arquitecturas Reconfigurables
una fuente externa dentro del registro de configuración, en la figura 4-2 podemos
observar los bloques principales que integran a un FPGA.
Registro de Configuración Bloque Lógico
Configuración SRAM
Multiplexor
Multiplexor Salida
Entrada
Elemento Q
Combinacional
Reconfigurable D
FPGA (LUT)
CLR
CLK
Red de interconexión
Bloque de Conexión Bloque de Entrada/Salida
Figura 4-2. Diagrama Simplificado a bloques de un FPGA
Dos conceptos se distinguen a partir de la tecnología de las FPGA’s; el de
dispositivos programables y el de dispositivos configurables [SSHB+99].
• Dispositivos programables: Son los procesadores de propósito general, que
son programados por la descripción de un algoritmo que emplea un conjunto
limitado de instrucciones.
• Dispositivos configurables: Son las FPGA configurados por medio de una
cadena de bits que especifican completamente la función lógica y la
conectividad empleada, para realizar una tarea determinada. La
configuración del sistema se obtiene, convirtiendo un diseño descrito en un
lenguaje de alto nivel (por ejemplo en lenguaje VHDL 22 ) en un bit-stream
de configuración por medio de los procesos de síntesis.
22
VHDL es el acrónimo de VHSIC y HDL; VHSIC es el acrónimo de Very High Speed
Integrated Circuit y HDL es a au vez el acrónimo de Hardware Description Lenguaje.
76
Capitulo 4 Arquitecturas Reconfigurables
De los puntos anteriores podemos concluir que lo más deseable para un sistema
digital es que tenga la flexibilidad del software y la rapidez del hardware. El
surgimiento en los 80’s de los primeros dispositivos lógicos programables ha
permitido optimizar el área utilizada por un sistema digital, facilitando el avance de
los sistemas embebidos. Previamente a la aparición de estos primeros dispositivos,
las únicas opciones para el diseño de sistemas digitales eran, bien empleando
circuitos hardware hechos a la medida, o bien utilizando de circuitos integrados
estándar de baja o mediana escala de integración llamados LSI 23 y MSI 24 .
En el caso de los dispositivos reconfigurables, es posible conseguir simultáneamente
la programabilidad del sistema (al disponer de memoria SDRAM 25 o FLASH 26 ) y
una escala de integración razonablemente adecuada.
La forma más frecuente de clasificar las FPGA’s, es por medio de su granularidad.
La granularidad se define como el tamaño mínimo de la unidad funcional que es
tratada por las herramientas de emplazamiento y rutado.
• Las FPGAs de grano fino disponen de elementos funcionales pequeños, lo
que les permite tener una mayor flexibilidad; pero sufren de retardos
elevados, cuando se componen circuitos complejos debido a las
interconexiones. Los elementos funcionales típicos tienen de 2 a 4 entradas.
• Las FPGAs con unidades funcionales grandes, se denominan de grano
grueso, existiendo arquitecturas con elementos aritméticos funcionales de 32
bits.
Actualmente, las Arquitecturas Híbridas son el resultado de la integración de
múltiples elementos arquitecturales (procesadores, memorias e interfases para
periféricos) en FPGA’s.
23
LSI, Low Scale Integration
24
MSI Medium Scale Integration
25
SDRAM Single Data Random Access Memory
26
FLASH
77
Capitulo 4 Arquitecturas Reconfigurables
4.2 Tipos de Configuraciones
De forma general un dispositivo reconfigurable se configura por medio de una
secuencia de bits denominada bitstream. Las interfaces de configuración son de tipo
serie o paralelo, y el tiempo de configuración es directamente proporcional al tamaño
del bitstream.
Las FPGAs de grano fino tienen, en general, tiempos de configuración mayores que
las de grano grueso debido al mayor tamaño de sus bitstreams. Esto se debe a que
tienen muchos elementos que necesitan ser configurados, lo que implica ficheros de
configuración grandes; esta tecnología permite diferentes formas de cambiar la
configuración de los bloques lógicos, bloques de entrada/salida y bloques de
conexiones que integran al dispositivo [Mor06].
Tipos de reconfiguración:
• Reconfiguración estática o en tiempo de compilación. Cada vez que se
realiza una nueva configuración, toda la FPGA se actualiza. Se tiene que
detener la operación de la FPGA, configurarla totalmente y nuevamente,
volver a ponerla en funcionamiento. La figura 4-3.a) muestra el modelo de la
reconfiguración estática.
• Reconfiguración dinámica. Partes de la FPGA (o toda ella) se configuran
nuevamente sin detener totalmente la ejecución de la FPGA. Esto se hace
con el objeto de obtener un equilibrio, entre la velocidad de ejecución y el
área de silicio utilizado. La reconfiguración dinámica se basa en el concepto
de Hardware Virtual 27 de forma similar al de la memoria virtual, utilizando
la capacidad de reprogramación de que dispone. La figura 4-3.b) representa
el modelo de la reconfiguración dinámica
27
Hardware Virtual, un sistema virtual que simula un sistema físico (hardware) con
características determinadas.
78
Capitulo 4 Arquitecturas Reconfigurables
Configuración Configuración
Ejecución Ejecución
Total Total
a) Reconfiguración estática b) Reconfiguración dinámica
Configuración Sección
des- Ejecución
Total habilitada
c) Reconfiguración parcial y dinámica
Figura 4-3. Modelos de Reconfiguración,
a) estática, b) dinámica, c) parcial dinámica.
En el caso de que el sistema lo permita, se podría realizar una nueva configuración
mientras se mantiene la ejecución. Este modo de reconfiguración se conoce como
parcial dinámico y se representa en la figura 4-3.c).
Atendiendo al modo de reconfiguración dinámica se distinguen tres estrategias
[Mor06]:
• Reconfiguración contexto único: Corresponde al modo de configuración de
las FPGA’s que únicamente soportan un acceso secuencial a la memoria de
configuración.
• Reconfiguración multi-contexto: Los dispositivos que soportan este tipo de
reconfiguración tienen varios bits de memoria para cada bit de los elementos
configurables. El cambio entre contextos se realiza muy rápidamente,
permitiendo además, la carga de una nueva configuración en un plano no
activo, mientras otro lo está; cada plano se configura totalmente.
• Reconfiguración parcial: Uno de los avances tecnológicos más importantes,
aún en desarrollo, en el área de la reconfiguración. Consiste en la capacidad
de algunos dispositivos para admitir modificaciones de alguna parte de la
configuración, mientras el resto del hardware sigue funcionando en forma
ininterrumpida.
79
Capitulo 4 Arquitecturas Reconfigurables
Los primeros sistemas reconfigurables se desarrollaron a principios de los 90’s,
cuando ya se dispone de FPGAs suficientemente complejas; hasta entonces se
plantea la posibilidad de realizar máquinas totalmente reconfigurables basadas en
FPGAs. [Guc01]
En la tabla 4-2 se mencionan algunas de las plataformas reconfigurables más
relevantes, resultado de las diferentes investigaciones realizadas en los últimos años,
algunas son sistemas híbridos que integran procesadores de propósito general,
mientras que otras, son procesadores experimentales.
Como se ha mencionado anteriormente, existe una gran variedad de máquinas
reconfigurables, y de acuerdo a la cantidad de recursos hardware de que dispone
para el funcionamiento del sistema, se pueden clasificar en tres grande grupos:
• Sistemas modulares multitarjeta.
• Redes de FPGAs monotarjeta.
• Tarjetas coprocesador.
La mayoría de estos sistemas son de propósito general con arquitecturas abiertas,
esto permite que se empleen principalmente en los sistemas de visión por
computadora, pues se consigue la velocidad del hardware demandada por los
algoritmos de visión en aplicaciones en tiempo real.
A continuación se presentan las características principales de cada grupo, y
finalmente se introduce el concepto de hardware que puede evolucionar (Evolvable
Hardware) como una de las últimas líneas de investigación de los sistemas
reconfigurables.
80
Capitulo 4 Arquitecturas Reconfigurables
Grupo Denominación Granularidad Tipo de Grado de Dominio de las
Reconfiguración Acoplamiento Aplicaciones
Con el Host
Aceleradores Splash&Splash2 Grano fino Estática con Remoto Computación complejas a
Hardware múltiples contextos nivel de bit
DECPeRLe-1 Grano fino Estática con Remoto Computación complejas a
contexto nivel de bit
único
Coprocesadores GARP Grano fino Estática con Local Procesamiento de
Reconfigurables múltiples contextos imágenes a nivel bit,
criptografía (DES)
OneChip Grano fino Estática con Local Aceleradores de
contexto aplicaciones y
único controladores embebidos
CHIMAERA Grano fino Estática con Local Computación a nivel de
contexto bit, criptografía (DES)
Único
DISC Grano fino Dinámica con Es el procesador Propósito general
contexto único
FIP Grano fino Estática o Es el procesador Propósito general.
Dinámica según Criptografía (AES)
implementación
CSoCs FIPSOC Grano grueso Dinámica con dos Incluye el Microcontrolador de
contextos procesador propósito general con
módulos analógicos
Pleiades/Maia Diversa Dinámica con Incluye el Computación multimedia
granularidad contexto único procesador de alta velocidad y bajo
consumo. Procesador
banda base wireless
DReAM Grano grueso Parcial dinámica Local Aplicaciones telefonía 3G
(Arquitectura
integrable en
CSoCs)
XPP Grano grueso Parcial dinámica Local Aplicaciones de
(Arquitectura procesamiento digital de
integrable en señales y multimedia
CSoCs)
Colt Grano grueso “Wormhole” (datos Local Aplicaciones de
+ configuración) (Arquitectura procesamiento digital de
integrable en señales y multimedia
CSoCs)
Dispositivos CS2000RCP Grano grueso Dinámica con dos Incluye el Comunicaciones (wíreles,
comerciales contextos procesador voz sobre IP, etc)
reconfigurables
dinámicamente Triscend Grano grueso Dinámica con Incluye el Comunicaciones y
contexto único procesador multimedia
FPGAs comerciales Xilinx Grano fino Parcial dinámica Puede incluir el Propósito general
de grano fino procesador
reconfigurables
dinámicamente Atmel Grano fino Parcial dinámica Puede incluir el Propósito general
procesador
Tabla 4-2. Plataformas reconfigurables
81
Capitulo 4 Arquitecturas Reconfigurables
4.2.1 Sistemas Modulares multitarjeta
Han sido desarrollados distintos sistemas reconfigurables multitarjeta, todos ellos con
arquitecturas determinadas, escalables y modulares.
A pesar de la gran potencia de cálculo que tienen al combinar la configurabilidad del
hardware y la modularidad de las tarjetas, estos sistemas tienen como principal
desventaja el tamaño. Estos grandes sistemas pueden trabajar como maestro, aunque
existe siempre la comunicación con una estación de trabajo para programar las
FPGAs y realizar las tareas de control.
De acuerdo a la aplicación de la que se trate, hay que tener en cuenta las limitaciones
habituales de espacio, peso y consumo de potencia que este tipo de sistemas tiene;
por lo que no se recomienda en plataformas móviles, ya que resulta imposible de
transportar.
4.2.2 Redes FPGA’s monotarjeta
La siguiente categoría de máquinas reconfigurables son las máquinas de tamaño
medio, implementadas en una sola tarjeta. Habitualmente no son escalables ni
modulares, salvo en pequeñas ampliaciones internas de memoria, así como cambio o
adición de FPGAs. Estas tarjetas siempre actúan como esclavos de un sistema
maestro para el que realizan alguna tarea específica, suelen tener un buen
rendimiento para aplicaciones de poca complejidad. El principal problema de esta
categoría de sistemas es su falta de escalabilidad y capacidad de procesamiento para,
por ejemplo, implementar algoritmos complejos de visión, se obtiene un ahorro de
potencia y área requerida para su implementación, con respecto a los sistemas
escalables, pero se pierden prestaciones. Estas tarjetas son recomendadas
ampliamente en aplicaciones muy concretas, como en el diseño de redes artificiales
de neuronas empleadas para el reconocimiento y clasificación de patrones en los
sistemas de visión.
82
Capitulo 4 Arquitecturas Reconfigurables
4.2.3 Tarjetas Coprocesador
Este grupo de máquinas reconfigurables tienen arquitecturas más sencillas y menor
número de FPGAs, típicamente en el rango de 1 a 3. Estos sistemas siempre son
esclavos de un sistema maestro que los programa, y para el que realizan algunas
tareas hardware específicas, liberando al procesador central de trabajo, a ello deben
su nombre de coprocesador. Algunas aplicaciones típicas de estos sistemas son
algoritmos muy sencillos, como filtrado simple, operaciones sistemáticas de las que
libera al sistema maestro. Estas sencillas tarjetas no son escalables internamente,
aunque casi siempre se puede conectar más de ellas al maestro mediante un bus
estándar. Por sus características estas tarjetas, quedan descartadas para aplicaciones
donde se requiere una mayor cantidad de recursos hardware.
4.3 Tendencias Futuras (Evolvable Hardware)
La combinación de los principios de los algoritmos genéticos, la computación
adaptativa y las FPGAs reconfigurables están originando nuevos horizontes en el
desarrollo del hardware digital, así el hardware evolutivo (Evolvable Hardware), se
refiere a un tipo particular de sistema reconfigurable cuya arquitectura, estructura y
función, cambia dinámica y autónomamente con el objetivo de mejorar su
rendimiento en ciertas tareas [Yao99]
Aunque los conceptos implicados son prometedores y las primeras investigaciones
están dando resultados alentadores, este tipo de máquinas siguen siendo un proyecto
a futuro. El desarrollo de aplicaciones eficientes basadas en estos principios se
reducen a casos muy concretos de hardware adaptativo [TN99].
4.4 Diseño y Programación del Modulo Reconfigurable
El concepto de computación reconfigurable, a principio de la década de los 70,
proponía una computadora construida en base a procesadores estándar y un “array”
de hardware reconfigurable, que permitiera realizar tareas específicas como por
ejemplo el procesamiento de imágenes o el reconocimiento de patrones.
Posteriormente el hardware se podría ajustar a la realización de nuevas tareas
83
Capitulo 4 Arquitecturas Reconfigurables
logrando con ello un sistema de computo híbrido, que combinaba ya la flexibilidad
del software con la velocidad del hardware; no obstante hasta ese momento no se
contaba con los circuitos integrados adecuados.
Hacia los años 90´s, resurge el interés en esta área de investigación, tanto en la
industria como en el ámbito universitario, con la propuesta de desarrollo de
diferentes arquitecturas reconfigurables; lo que fue posible, debido en gran parte al
desarrollo tecnológico y a la alta escala de integración en la fabricación de circuitos
integrados.
4.5 Requisitos Tecnológicos
Para conseguir el requisito de reconfigurabilidad del hardware, y la flexibilidad del
software, se utilizan dispositivos lógicos programables con las siguientes
características:
• Que permitan la reconfigurabilidad en el sistema. Este requisito es conocido
como ISP 28 ,
• Que permitan la implementación de algoritmos complejos. Este requisito
selecciona a las FPGA’s, de acuerdo a la aplicación.
• Que tengan prestaciones de alta velocidad. La utilización de las FPGA’s
clásicas impondrá grandes retrasos cuando el sistema y el conexionado sean
muy complejos, en cuyo caso se impone la selección de una familia de
FPGA’s de arquitecturas híbridas.
4.5.1 Requisitos a nivel sistema
A partir de la definición del problema plateado en el capítulo 1, y del estado de la
investigación realizada en los capítulos 2 y 3, se han planteado los requisitos que
debe cumplir el módulo reconfigurable antes de diseñar la arquitectura del sistema
(presentada en el capítulo siguiente).
28
ISP, In System Programmability
84
Capitulo 4 Arquitecturas Reconfigurables
Es también un requisito que el módulo reconfigurable satisfaga ampliamente una
cantidad de algoritmos de visión artificial de diferente complejidad. Es por tanto
aconsejable una arquitectura escalable y modular, pero teniendo en cuenta las
restricciones de espacio, peso, bajo consumo de potencia y bajo costo, deseables
para una plataforma embarcada.
La Arquitectura del Sistema debe incorporar paralelismo temporal y paralelismo
espacial. Esto implica dividir los algoritmos en etapas que puedan formar una
estructura “pipeline”, permitiendo que se ejecuten concurrentemente cada una de las
etapas de la arquitectura.
Se asume al mismo tiempo una arquitectura “pipeline” en cada una de las etapas que
integran la Red Neuronal, para implementar el algoritmo de aprendizaje en el módulo
reconfigurable. El diseño de una red de elementos de procesamiento (neuronas) con
una topología determinada implicará un bajo costo, si las redes de neuronas son
pequeñas y cooperantes.
La combinación de la división del algoritmo en etapas y la escalabilidad de la
arquitectura sugieren una arquitectura modular. Cada etapa del proceso de la red de
neuronas se denomina Elemento del Proceso (EP), y realiza una etapa del algoritmo
segmentado. Como el número de parámetros que implementa la red neuronal puede
cambiar, el número de etapas del “pipeline” puede cambiar también, debido a esto, el
número de etapas puede ser variable y, además cada etapa o elemento del proceso
debe ser totalmente reconfigurable.
La interfaz externa de transmisión de datos entre EPs (las diversas etapas del
“pipeline”), se consigue definiendo: un protocolo de intercambio de datos entre las
diferentes etapas del elemento de proceso (neuronas). Cada elemento del proceso
debe tener externamente, la misma interfase de conexión entre las diferentes
unidades de conocimiento. Así se evita tener que diseñar un elemento específico para
cada etapa. De esta manera, se realiza una sola interfase externa de intercambio de
datos, permaneciendo la reconfigurabilidad dentro de la FPGA. Es decir, cada EP es
totalmente reconfigurable, manteniendo la misma interfaz externa. La
reconfigurabilidad se realiza incorporando la funcionalidad del EP en una FPGA.
85
Capitulo 4 Arquitecturas Reconfigurables
Requisitos Módulo Reconfigurable Solución
Conservar la flexibilidad del Lógica programable
Software y la velocidad del
Hardware
Reconfiguración en el tiempo de Tecnología SDRAM
ejecución
Un balance en la complejidad y las FPGAs
prestaciones de los circuitos
Complejidad de los algoritmos, Arquitecturas escalables
para cada una de las etapas,
reducción de datos.
Alto desempeño en la velocidad de Paralelismo temporal y
procesamiento paralelismo espacial
Facilidad en diseño de los Interfase única para las
algoritmos neuronas, capas y protocolos.
Tabla 4-3. Requisitos del modulo reconfigurable
En la tabla 4-3 se muestran los requisitos para lograr los objetivos del modulo
reconfigurable y de esta forma llegar a la solución propuesta en el diseño del sistema.
4.5.2 Requisitos de los algoritmos
Se puede realizar una división de los algoritmos de visión artificial en función del
nivel de complejidad del procesamiento, tal como se muestra en la figura 4-4. El
nivel bajo en el procesamiento de imágenes transforma imágenes en imágenes.,
típicamente realizando alguna operación sencilla de filtrado. El nivel medio extrae
características de interés de la imagen, como son bordes, singularidades y texturas.
Esta etapa transforma imágenes en características. El nivel más alto de procesado
tiene como entrada, las características extraídas en la etapa anterior y como salida,
otra función con características más complejas. Esta es la etapa que suministra la
información necesaria a un sistema de toma de decisiones.
86
Capitulo 4 Arquitecturas Reconfigurables
Adquisición Bajo Nivel Nivel Medio Alto Nivel
-Mejora de la imagen -Extracción de -Interpretación
-Filtrado Características de la imagen
-Transformaciones -Contornos -Segmentación
sencilla -Texturas
-Formas
Figura 4-4. Niveles de análisis de los algoritmos
Algunas tareas típicas de la etapa de alto nivel de procesamiento son la segmentación
y reconocimiento de patrones o formas.
Un algoritmo de visión artificial general puede tener etapas en los tres niveles
descritos y una arquitectura genérica debe ser capaz de cubrir los tres niveles.
Cada una de las diferentes etapas del sistema de visión se ha desarrollado teniendo en
cuenta los diferentes niveles que se muestran en la figura 4-4; así, para la etapa de
adquisición, se emplea una memoria fifo que nos permite almacenar únicamente la
información relevante de la imagen, permitiendo optimizar el uso de memoria y
obtener una mayor velocidad de procesamiento. En la etapa de preprosesamiento a
bajo nivel, se implementaron los filtros de Mediana y Sobel [ASML06]. Para la etapa
de alto nivel, se obtiene el reconocimiento de las formas, empleando redes
neuronales especializadas.
Las FPGAs nos permiten implementar diferentes partes del sistema y reconfigurar
estas etapas durante el tiempo de ejecución, logrando con estos un mejor desempeño
del circuito (mayor densidad) y una aceleración en la velocidad del procesamiento.
Este enfoque permite segmentar un algoritmo en diferentes partes secuenciales, por
ejemplo: el algoritmo de aprendizaje Backpropagation empleado en las redes
neuronales, se divide en las siguientes tres etapas [EH94], [HDB96]:
• Feedforward, propaga las entradas hacia delante, a través de toda la
red.
• Backpropagation propaga la sensibilidad hacia atrás, a través de la
red.
87
Capitulo 4 Arquitecturas Reconfigurables
• Update finalmente los pesos y los “bias” (umbral) son actualizados
empleando una aproximación por medio de la reducción del error.
Como se muestra en la figura 4-6. Cuando los cálculos de una de las etapas se ha
completado, el FPGA se reconfigura para la siguiente etapa. Este proceso se repite
hasta que la tarea se ha completado. Debido a que el algoritmo se ha implementado
en diferentes etapas, se requieren menos recursos, lo que implica una reducción en el
hardware empleado y por lo tanto se consigue un ahorro en el consumo de potencia.
Obtener un buen rendimiento y una aplicación en tiempo real, sólo es posible si el
tiempo de reconfiguración es pequeño, comparado con el tiempo de procesamiento.
Feedforward
Module
Backpropagation
Module
Update
Module
Figura 4-5. Ejecución secuencial del algoritmo backpropagation
Existen diferentes enfoques para dividir los algoritmos empleados en el
entrenamiento de redes neuronales, en nuestro caso tomando en cuenta la cantidad de
recursos disponibles y el funcionamiento del sistema, se propone segmentar el
algoritmo en una estructura foreground y background 29 que se mencionara
posteriormente
29
Foreground/Background en un entorno multiusuario, los programas foreground
(primer plano) tienen mayor prioridad y los programas background (segundo
plano), menor prioridad
88
Capitulo 4 Arquitecturas Reconfigurables
4.5.3 Flujo de Datos
En el módulo reconfigurable, el paralelismo temporal, se logra por medio de una
estructura “pipeline”, donde cada etapa del flujo de datos “pipeline”, es un elemento
de procesamiento (neurona), que puede implementar paralelismo espacial. Para
diseñar la interfase externa de los elementos de procesamiento, es necesario definir el
flujo de datos dentro de la estructura “pipeline”.
En un “pipeline” la velocidad del flujo de datos esta determinado por la etapa más
lenta del “pipeline”[Kog81]. En el caso de la red neuronal, cada etapa se implementa
en un elemento de procesamiento, con lo cual el elemento de procesamiento cuya
tarea sea más costosa, obligará a disminuir la velocidad del flujo de datos dentro del
“pipeline”. Por esta razón el algoritmo de procesamiento tiene que ser dividido de
una forma equilibrada, en cuanto al consumo del tiempo, para evitar los cuellos de
botella.
Un algoritmo de visión artificial se divide en diferentes etapas dependiendo de su
complejidad. De tal forma que diferentes algoritmos pueden tener diferentes etapas y
cada una de ellas implementada en un elemento de procesamiento, con diferentes
costes temporales, que a su vez pueden ser cada uno de estos costes variables
dependiendo de los datos suministrados y los tiempos de procesamiento de cada uno
de ellos. De tal forma que el tiempo requerido para el intercambio de información no
puede ser establecido, sino que se debe adaptar de acuerdo a la complejidad de los
cálculos realizados, en cada una de las etapas, y a la dependencia temporal de los
resultados obtenidos, por ejemplo, en la figura 4-7 se muestra el flujo de datos a
través de la capa de entrada y capa de salida de la red neuronal.
89
Capitulo 4 Arquitecturas Reconfigurables
Inicio Datos de Entrada (RoD ) Fin de Datos de Entrada (RoD )
Inicia la entrada en Capa de Salida Fin de la entrada en la Capa de Salida
Inicia Datos de Entrada Fin de Datos de Entrada
tiempo
Número de ciclos capa de entrada ciclos de latencia Número de ciclos capa de salida ciclos de latencia
(ciclos de reloj )
Operación Capa de Entrada Serialización de la salida Operación Capa de Salida Latencia
Capa de Entrada
Figura 4-6. Flujo de datos de la red neuronal
4.5.4 Elementos de Proceso
Los modelos basados en un solo procesador realizando las tareas en forma secuencial
se han superado ampliamente por las técnicas de procesamiento en paralelo.
(Sistemas basados en arquitecturas SIMD 30 y MIMD 31 ).
Teniendo en cuenta el alto grado de paralelismo que presentan las redes neuronales y
de acuerdo al modelo matemático presentado en el capítulo 3, se propone un
modelo basado en un “array” de procesadores. Esta arquitectura es una de las
principales aportaciones y se basa en el uso eficiente de los recursos hardware
disponible, así como de los conceptos de estructuras de buses y manejo de bancos de
memorias obtenidos en investigaciones previas [Ala97], [Ala79].
Una de las etapas que consume gran cantidad de recursos en una red neuronal es la
integración de las unidades de multiplicación. Por lo tanto, las implementaciones
30
Single Instruction Multiple Data
31
Multiple Instruction Multiple Data
90
Capitulo 4 Arquitecturas Reconfigurables
prácticas tratan de reducir el número de multiplicadores empleados o reducir la
complejidad de los mismos. En este trabajo de investigación la propuesta de una
reducción en el número de multiplicadores se abordará en el siguiente capítulo al
hablar de las unidades MAC (Multiplicador Acumulador).
4.6 Conclusiones
La mayoría de las aplicaciones de las redes artificiales de neuronas se ejecutan como
simulaciones en ordenadores convencionales, sin emplear hardware dedicado. Sin
embargo, el hardware dedicado proporciona las mejores características tanto de los
circuitos programables y como de los ASIC: Alta escala de integración, un alto
performance en el diseño, prototipos rápidos y flexibles.
Los requisitos a nivel sistema, (alta velocidad en términos de imágenes por segundo
y sencillez en el diseño de los algoritmos) se han abordado mediante la utilización de
paralelismo temporal y espacial y mediante la utilización del concepto de visión por
singularidades. El paralelismo temporal se ha planteado mediante el diseño de un
pipeline donde cada etapa del algoritmo de reconocimiento se realiza en un bloque
del sistema. Dentro de cada neurona existe la posibilidad de realizar paralelismo
espacial, en función de los recursos hardware disponibles.
El hecho de utilizar visión por singularidades reduce la cantidad de datos a transmitir
y procesar, permitiendo optimizar los recursos de almacenamiento y procesamiento.
Además este formalismo simplifica algunos algoritmos de entrenamiento (carga
computacional) que resultan interesantes en las plataformas móviles.
La facilidad de diseño se ha planteado con la realización de un unico protocolo para
el intercambio de datos, junto con una interfase de comunicación común a todas las
etapas.
Finalmente los requisitos a nivel algoritmo de entrenamiento, se consigue por medio
de una correcta segmentación del algoritmo y su mapeo al hardware.
91
Capitulo 4 Arquitecturas Reconfigurables
92
Capítulo 5 Características de la Arquitectura Diseñada
Capítulo 5
Características de la Arquitectura Diseñada
basada en FPGA´s
93
Capítulo 5 Características de la Arquitectura Diseñada
Índice
5. Arquitectura Propuesta........................................................................ 95
5.1 Características Generales ..........................................................................................95
5.2 Descripción del Sistema Diseñado..........................................................................96
5.3 Descripción Funcional del Modulo de Procesamiento Basado en TNN .........97
5.4 Implementación del algoritmo de entrenamiento y aprendizaje ..................... 109
5.5 Descripción de parámetros ................................................................................... 113
5.6 Aspectos Operativos .............................................................................................. 116
5.7 Conclusiones............................................................................................................ 122
En este capítulo se pretende dar una idea general de la arquitectura propuesta, es
decir explicar en forma resumida qué función realiza, qué parámetros tiene, y
describir cómo es la interfase con el exterior.
Para esto se introducirá a la arquitectura y a su funcionalidad, empleando un
diagrama de bloque general y se continuará profundizando en el mismo.
En las secciones finales se verá una breve introducción a la metodología y la
evolución que sufrió su diseño en el transcurso de la Tesis.
94
Capitulo 5 Resultados y Conclusiones
Capítulo 5
“El secreto de la creatividad está en dormir bien y abrir la mente a las
posibilidades infinitas. ¿Qué es un hombre sin sueños?”
Albert Einstein
5. Arquitectura Propuesta
5.1 Características Generales
Se ha implementado un sistema de visión artificial para el reconocimiento de formas
empleando para ello pequeñas redes neuronales especializadas (TNN).
Se presenta un sistema con un enfoque basado en el procesamiento de imágenes en
tiempo-real y la utilización de pequeñas redes neuronales (TNN) especializadas en el
reconocimiento de formas. Para ello se presenta el diseño de un sistema hardware
empleando un FPGA de la familia Cyclone Altera para el procesamiento de las
imágenes adquiridas por una cámara de video con estándar PAL 32 . El sistema
hardware mencionado está basado en circuitos reconfigurables de bajo coste y alta
fiabilidad para el procesamiento de imágenes en tiempo-real. Para ello se propone el
desarrollo de una arquitectura del tipo “pipeline” multinivel con el objeto de
garantizar el proceamiento de las imágenes capturadas por la cámara de video.
En este capítulo se pretende dar una idea general de la arquitectura del sistema
diseñado, es decir explicar en forma resumida qué función realiza, qué parámetros
tiene, y describir como es la interfase con el exterior.
Para esto se introducirá al diseño con un diagrama de bloques general y se continuará
profundizando en el mismo posteriormente. En las secciones finales se verá una
32
PAL Phase Alternating Line Sistema de codificación para la señales de video analógica en
color.
95
Capitulo 5 Resultados y Conclusiones
breve introducción a la metodología y se la evolución que sufrió el diseño en el
transcurso de la Tesis.
5.2 Descripción del Sistema Diseñado
El sistema propuesto es un Sistema de Visión Artificial, donde una de las premisas
del diseño era emplear Redes Neuronales Especializadas en la etapa de
Procesamiento; así como el uso de técnicas de diseño modular y escalabilidad, en
cada una de las partes que componen dicho sistema, con el propósito de mejorar o
adaptar el sistema para aplicaciones futuras.
El sistema hardware implementado en la FPGA, cuya arquitectura de alto nivel
puede verse con mayor detalle en la figura 5-1, está integrada fundamentalmente por
tres bloques principales y responde a una arquitectura “pipeline” multinivel.
Etapa de Adquisición Etapa de Preprocesamiento Etapa de Procesamiento
Memoria Filtro de Memoria Filtro de
ROI
FIFO Mediana FIFO Sobel
Señal Decodificador Redes
de video de Video Neuronales
TVP5150AM1 Artificiales
TNN
Control Control Memoria
de
Configuración
Control
de
Configuración
Figura 5-1. Diagrama de bloques general del sistema.
El sistema hace uso de una cámara PAL que entrega una señal de video con una
resolución de 720 X 576 píxeles, que habrá de ser digitalizada previamente. Por lo
que resulta necesario (como primera etapa del sistema) crear una interfase de
comunicación con la cámara para adquirir las imágenes que esta envía. Para lograr
esto se emplea un decodificador de video TVP5150AMI de Texas Instruments.
96
Capitulo 5 Resultados y Conclusiones
Una vez digitalizada la señal de video a 8 bits, esta pasa a través de los filtros de
preprocesamiento. Estos primeros módulos hardware implementan el primer nivel
del “pipeline” de la arquitectura, y constituyen el módulo de preprocesamiento,
adaptándose perfectamente a las necesidades de los algoritmos de filtrado previo de
la imagen; a) filtro de mediana, para eliminar ruido gaussiano y b) filtro de Sobel,
para la extracción de bordes. Por otro lado, todos los submódulos que componen el
sistema completo (módulos internos de cada uno de los filtros), también se basan en
una arquitectura “pipeline”, [ASML06].
El módulo de procesamiento esta basado en redes neuronales especializadas, para el
reconocimiento de formas, utilizando visión por singularidades. Por esta razón, la
arquitectura emplea módulos escalables que, dependiendo de la aplicación, permiten
aumentar la funcionalidad del sistema, añadiendo al sistema nuevo “conocimiento” a
través de las bases de conocimiento.
El principal esfuerzo en el diseño del sistema se ha centrado en las redes neuronales
y principalmente en la reducción del alto consumo de recursos hardware que
implican su implementación. Teniendo en cuenta lo anterior, se propone el uso de
pequeñas redes neuronales especializadas (TNN) de modo que se garantice que al
menos una TNN pueda ser implantada en la FPGA de bajo coste. En la siguiente
sección se describe ampliamente el diseño de estas redes especializadas.
5.3 Descripción Funcional del Módulo de
Procesamiento Basado en TNN
Se ha diseñado un sistema de visión artificial para el reconocimiento de formas
aplicando pequeñas redes neuronales especializadas. Para la validación de la
arquitectura diseñada se plantean los siguientes escenarios.
• Una aplicación de referencia.
• Recursos de implementación limitados.
Recordando los objetivos principales de esta Tesis Doctoral:
97
Capitulo 5 Resultados y Conclusiones
1. Proponer una arquitectura de pequeñas redes neuronales especializadas
(TNN), en módulos computacionales parametrizables que permitan su
implementación en el contexto de hardware reconfigurable.
2. Plantear una arquitectura para la reconfiguración de las redes neuronales en
tiempo real.
3. Reducir la carga computacional del sistema a través de pequeñas redes
cooperantes para reconocer formas.
Así como los objetivos secundarios:
4. Proponer una estrategia de reducción del elevado número de recursos de
cómputo, utilizados para lograr un balance entre el procesamiento y el mejor
aprovechamiento, de los recursos hardware disponibles.
5. Obtener un sistema embebido, que se pueda emplear en plataformas móviles,
teniendo en cuenta las restricciones de tamaño, peso y consumo de potencia entre
otras.
Para lograr los objetivos planteados, es conveniente realizar una división de los
algoritmos de visión artificial, de acuerdo a su nivel de complejidad. Así en el nivel
más bajo de procesamiento de imágenes transforma imágenes en imágenes,
realizando operaciones sencillas de filtrado. El nivel medio, extrae características
interesantes de la imagen, como son bordes y singularidades. Esta etapa transforma
imágenes en características. El nivel más alto de procesamiento tiene como entradas
las características extraídas en la etapa anterior y como salida otra función con
características más complejas.
Para la etapa de procesamiento existen diferentes enfoques de diseño, pero teniendo
en cuenta la optimización de recursos, resulta necesario estudiar los algoritmos
empleados para el reconocimiento de objetos.
La topología de la red diseñada es formalmente la de una red tipo “feed-forward”
también conocida como “perceptron multicapa” totalmente conectada, todas las
salidas de las neuronas de una capa son conectadas a las neuronas de la siguiente
capa. Por lo que, el número de sinapsis y multiplicadores empleados en este tipo de
redes es proporcional al cuadrado del número total de neuronas. Al mismo tiempo,
debido al número tan alto de multiplicaciones que se tiene que realizar, la velocidad
de procesamiento disminuye, y las dimensiones del sistema completo se incrementan
98
Capitulo 5 Resultados y Conclusiones
significativamente, y esto se convierte en uno de los principales retos al diseñar
redes neuronales artificiales.
Para resolver el crecimiento exponencial de recursos de procesamiento involucrados
en las redes neuronales, se propone la necesidad de la reutilización de
multiplicadores hardware embebidos, con que cuenta la Cyclone II de Altera; para
ello emplearemos la estructura de buses internos de la FPGA, y teniendo en cuenta el
paralelismo inherente de las redes neuronales, es posible plantear la red neuronal,
como una arquitectura paralela basada en “array processor”, [YKDL02], [Ham90],
[VGDS02].
ω 1n
ω 2n
ω nn
MEMORIA
ω 12
ω 22
ω n2
ω ω ω
Entrada 11 21 n1
Datos X1 X2 Xn
multiplicador multiplicador multiplicador
MAC1 MAC2 MAC1
sumador sumador sumador
Salida Datos
Figura 5-2. Array Processor
Asumiendo la estructura de multiprocesamiento de las redes neuronales y a las
características para efectuar operaciones matemáticas (multiplicación y adición)
simultáneamente con diferentes elementos o datos, resulta que se cuenta con el
escenario ideal para su implementación en sistemas embebidos empleando para ello
una arquitectura basada en “array processors”, logrando la reutilización de los
multiplicadores [Hik95] y un crecimiento lineal del número de multiplicadores
99
Capitulo 5 Resultados y Conclusiones
involucrados, ya que solo se requiere un único multiplicador por cada una de las
neuronas de la red ,como se muestra en la figura 5-2.
La propuesta de solución presentada en esta Tesis Doctoral es el empleo de pequeñas
redes neuronales especializadas y cooperativas. Cada una de las TNN involucradas
en el sistema estará basada en un “array processors” y el sistema completo será una
arquitectura paralela. Esta propuesta es la consecuencia de la investigación realizada
en el campo de visión por singularidades, concepto que emplearemos en el diseño del
sistema.
Otro de los aspectos que influye en el consumo de recursos hardware y en el
rendimiento de la arquitectura de los sistemas de video, es la enorme cantidad de
datos a procesar, [EMSA97]. Debido a ello, una de las estrategias empleadas para la
reducción de la carga computacional es disminuir la cantidad de datos a procesar;
pero sin que esta disminución afecte aquellos datos que resultan importantes para, la
clasificación de la imagen. Para lograr estos objetivos, se emplean dos estrategias,
primero mediante la selección de las áreas de análisis dentro la imagen total y
segundo empleando el concepto de visión por singularidades.
Con el fin de reducir la carga computacional, el análisis se efectuará solo en ciertas
secciones de la imagen, ya que no toda la información que se encuentra en ella es
relevante. La sección de análisis que se considera, se le conoce como Región de
Interés (RoI). La posición relativa del RoI es programable y se localiza por medio de
los parámetros de columna X fila, de acuerdo a la aplicación planteada. De esta
forma, logramos reducir el área total de la imagen de 720 X 576 píxeles a una
imagen determinada por la RoI. Para la aplicación planteada la RoI tiene una
resolución de 60 X 45 píxeles, donde se localiza con cierta probabilidad el objeto a
reconocer.
De acuerdo al estudio realizado y planteado en el capítulo 2, es posible reconocer una
imagen, empleando solo la información relevante o característica de ésta. A este
concepto se le conoce como visión por singularidades. Las singularidades aparecen
en una región denominada como Región de Detección (RoD), con una resolución de
6 X 5 píxeles, dentro de la RoI. En la Región de Detección se encuentran los
elementos característicos o singularidades (esquinas formadas por ángulos a 60o, o
esquinas formadas por ángulos a 90o y segmentos de circunferencias), que pueden ser
identificados por pequeñas redes neuronales, para el reconocimiento de formas
100
Capitulo 5 Resultados y Conclusiones
triangulares, cuadrangulares y circulares respectivamente, como se muestra en la
figura 5-3.
Figura 5-3. Singularidades empleadas para detectar formas triangulares,
cuadrangulares y circulares
Los sucesivos vectores característicos 33 que se obtienen de la RoI, son enviados a
las TNN para su procesamiento. Con el fin de cubrir toda la RoI, de 60 x 45 píxeles,
la RoD se desplaza por toda ésta, como se muestra en la figura 5-4. De está forma se
obtiene la cantidad de datos a procesar por cada una de las imágenes, resultando en
90 vectores característicos de 30 píxeles cada uno, así se obtiene la información
necesaria que determina si se ha reconocido o no un objeto en particular.
33
Vector característico, es el vector de entrada a la red y esta formado por los píxeles de las
regiones de detección.
101
Capitulo 5 Resultados y Conclusiones
RoI (60x45) RoD (6x5)
(columnas x filas) (columnas x filas)
Figura 5-4. Áreas de Análisis dentro de la Imagen.
Región de Interés (RoI). Región de Detección (RoD).
Teniendo en cuenta la propuesta de emplear la RoI para el análisis de la
información, se obtiene una reducción mayor del 90% de la cantidad de información
a procesar, dando como resultado una disminución de los recursos empleados para el
procesamiento, reducción en el número de elementos hardware utilizados, y por
consiguiente, se logra al mismo tiempo, una reducción en la carga computacional.
En la tabla 5-1 se presenta la cantidad de datos a procesar en cada una de las etapas
involucradas.
102
Capitulo 5 Resultados y Conclusiones
Entrada de datos Salida de datos
Etapa de Adquisición Imagen original Imagen Adquirida
720 x 576 = 414720 píxeles 414720 píxeles
Etapa de Filtro de Médiana Imagen Preprocesada
Preprocesamiento 414720 píxeles
Filtro de Sobel (binarización) (Imagen Binaria)
Imagen Adquirida
414720 píxeles
Etapa de Procesamiento Región de Interés (RoI) Vectores Característicos
60 x 45 píxeles => 2700 píxeles 90 vectores de 30 píxeles
cada uno de ellos.
Tabla 5-1. Datos a procesar en las diferentes etapas del sistema
La red neuronal se ha estructurado en forma de entidades jerárquicas, cada una de
ellas modulares y configurables.
Control_Network
Layer_In Layer_H Layer_Out
Neurona1 Neurona1 Neurona1
Neurona2 Neurona2 Neurona2
Neurona3 Neurona3 Neurona3
Neurona4 Neurona4 Neurona4
NeuronaN NeuronaM NeuronaM
Figura 5-5. Arquitectura Jerárquica por capas de la red neuronal
103
Capitulo 5 Resultados y Conclusiones
De acuerdo con el planteamiento de diseño del sistema de visión artificial bajo la
estructura “pipeline”. Cada una de las capas de la red cuenta con dos buses
utilizados en la transferencia de datos entre las distintas capas de la red. Un vector de
entrada que recibe la información de la etapa de preprocesamiento o de la capa de
entrada, y un bus de salida, que transfiere los datos a la capa oculta o a la capa de
salida, de acuerdo a la configuración de la red, como se muestra en la figura 5-5.
La arquitectura de la red neuronal (número de neuronas, número de capas y número
de sinapsis) está limitado por los recursos hardware disponibles, [TH98], [BMMM97]
por lo que es necesario optimizar el diseño, con el fin de obtener un balance entre el
mejor rendimiento con el mínimo de recursos. Teniendo en cuenta los problemas de
tamaño y escalabilidad, se propone un diseño basado en el modelo matemático de
una red neuronal.
104
Capitulo 5 Resultados y Conclusiones
X1 p
W1
X2 Rx1 a a = f (Wp +b)
SxR + Sx1 f1 Sx1
1
Xn b1
R Sx1
Bus Datos Vector Entrada
* **
MEMORIA MAC SERIALIZADOR
PESOS
SUMADOR FUNCION
BIAS ACTIVACION
n + Datos de Salida
BIAS
CONTROL CAPA
*
CONTROL MAC = MULTIPLICADOR -ACUMULADOR
**
DATOS NO EN LA CAPA DE SALIDA
Figura 5-6. Unidad Básica de Conocimiento a) Modelo matemático, b) Capa de
entrada de la red neuronal
En la figura 5-6, se puede observar, el modelo básico de la capa de una red,
denominada como la Unidad Básica de Conocimiento (UBC). La arquitectura
hardware que se plantea, se obtiene del mapeo del algoritmo de alto nivel del modelo
de la red perceptron multicapa, a sus módulos hardware equivalentes. Un vector de
entrada y salida de datos son empleados para la transferencia de los mismos entre las
105
Capitulo 5 Resultados y Conclusiones
diferentes capas de la red. Un sistema de buses externos (datos y control) son usados
para interconectar las unidades de conocimiento con el control general del sistema.
Con el objeto de obtener el mejor balance entre el rendimiento y la cantidad de
recursos hardware empleados en la implementación de las redes neuronales, resulta
necesario conocer el grado de paralelismo de los algoritmos, para realizar una
correcta segmentación.
La arquitectura propuesta, de la UBC, tiene su funcionalidad casi completamente
paralela, dando como resultado el mejor rendimiento con el mínimo de recursos,
debido principalmente a un correcto mapeo del modelo matemático y a una correcta
segmentación del algoritmo de procesamiento, como se muestra en la figura 5-6.
Las neuronas hardware de la Unidad Básica de Conocimiento, están integradas por
las siguientes unidades:
• La unidad MAC 34 encargada de realizar la acumulación de las
multiplicaciones de los pesos sinápticos por las entradas.
• La unidad Serializadora (multiplexor) encargada de seleccionar el
resultado de cada una de las neuronas para sumarlo con su
correspondiente valor de umbral “bias”. Esta unidad nos permite utilizar
solamente un sumador para la UBC completa, con lo que se reduce en n-1
sumadores, donde n es el número de neuronas.
• Unidad de Función de Activación, nos permite evaluar la función de
salida, para obtener el vector de la siguiente capa de la red. Se emplea la
misma función de activación para todas las neuronas de la misma capa.
• Todas las Unidades que integran la neurona hardware implementada están
interconectadas por medio de un sistema de buses paralelos, propios de
los sistemas embebidos.
Las unidades MAC se encuentran conectadas por un lado a las memorias de pesos a
través de un bus de datos interno (pesos sinápticos de la red) y por el otro lado al
vector de entrada (vector de entrada de la región de detección RoD). Supongamos,
por ejemplo, que tenemos N neuronas en la capa de entrada; con la arquitectura
propuesta, es posible realizar N operaciones en paralelo con el dato de entrada,
34
MAC Multiply Accumulate
106
Capitulo 5 Resultados y Conclusiones
debido a que la estructura de buses interna de los dispositivos programables permiten
el acceso a la memoria de pesos en forma paralela. La memoria de pesos y bias se
han implementado en bloques de memoria RAM embebida del FPGA, esto no solo
permite la rapidez de acceso de las posibles operaciones; sino que además permite la
posibilidad de obtener memoria distribuida, construida modularmente, en cada una
de las unidades básicas de conocimiento.
Como un caso especial, en la implementación de la capa de salida, no es necesario el
uso de la unidad serializadora, esto es posible, porque el balance entre el coste
hardware y el rendimiento no tiene un impacto negativo significativo en la
arquitectura. Por lo tanto, existe un sumador y una función de activación para cada
una de las neuronas de salida, en este caso los valores bias se almacenan
directamente en registros en los sumadores de salida, optimizando los bloques de
memoria RAM utilizados. En la figura 5-7 se muestra las unidades que integran esta
unidad de conocimiento.
Data Bus Vector Entrada
* SUMADOR FUNCION
MEMORIA MAC
BIAS ACTIVACION
PESOS Salida
+
Salida
+
Salida
+
BIAS
CONTROL CAPA SALIDA
CONTROL MAC*= MULTIPLICADOR ACUMULADOR
DATA
Figura 5-7. Unidad de Conocimiento. Capa de Salida
107
Capitulo 5 Resultados y Conclusiones
El diseño de las TNN, incluye una etapa de incertidumbre. La función principal de
este módulo es determinar, si la secuencia de salidas corresponde a un patrón de
entrenamiento, o bien si la secuencia tiene una similitud con el patrón de
entrenamiento, si éste es el caso se genera una señal de validación indicando que se
efectuó un reconocimiento del objeto de la imagen. Por el contrario, si el detector de
incertidumbre, determina que la similitud está en un rango de probabilidades entre el
50% y el 70%, se genera una señal que solicita la reconfiguración de la red. En la
figura 5-8 se muestra un diagrama a bloques donde se muestran las diferentes etapas
que integran este módulo.
DETECTOR DE DETECTOR DE
COMPARADOR SECUENCIA INCERTIDUMBRE
> Threshold
Señal
Salidas Valida
de
TNN
cha Señal
No-Valida
Reconfiguración
CONTROL
DATA OUT CONTROL
Figura 5-8. Módulo de Incertidumbre
En el momento en que se genera la señal de reconfiguración, el módulo encargado de
realizar esta tarea ejecuta concurrentemente las siguientes actividades. 1) Realiza el
cambio de contexto del la red especializada que solicita la reconfiguración. 2)
Ejecuta el entrenamiento de la red con el nuevo patrón capturado. 3) Obtiene sus
nuevos pesos sinápticos para posteriormente actualizarlos en las memorias
108
Capitulo 5 Resultados y Conclusiones
correspondientes. Como se explica a continuación en la ejecución del algoritmo de
entrenamiento y aprendizaje.
5.4 Implementación del algoritmo de entrenamiento y aprendizaje
En está sección se describen los criterios que se tuvieron en cuenta para la
implementación en hardware del algoritmo backpropagation (BP) utilizado en el
entrenamiento y aprendizaje de las redes neuronales.
Debido a que la arquitectura propuesta es modular, escalable y reconfigurable
durante el tiempo de ejecución, se propone la implementación del algoritmo BP,
utilizando una segmentación para cada una de las etapas que lo integran. Recordando
que el algoritmo se divide en tres etapas secuenciales, conocidas como:
“feedforward, backpropagation y up-date” cuyas funcionalidades para lograr las
operaciones de aprendizaje se abordaron en capítulos anteriores.
Lo más habitual es emplear un computador de propósito general durante el proceso
de entrenamiento y aprendizaje. Cuando el proceso finaliza, se tienen los datos
correspondientes a los pesos sinápticos y a los umbrales de activación que son
utilizados por la red neuronal. A este tipo de entrenamiento se le conoce como
entrenamiento “off line”, debido a que se requiere de un computador externo para
obtener los nuevos valores que se almacenarán en las memorias de pesos y bias
respectivamente.
Para tener la posibilidad de realizar un entrenamiento durante el tiempo de ejecución,
también llamado tiempo de compilación, [ABD+04], [SGZ04], [BHS98], es necesario
que la arquitectura propuesta disponga de un módulo que se encargue de esta tarea.
Para conseguir este objetivo la idea es modificar la estructura secuencial del
algoritmo de entrenamiento y segmentarlo, de acuerdo a su actividad dentro del
proceso de reconocimiento de formas, la segmentación propuesta es la que se
muestra en la figura 5-9.
109
Capitulo 5 Resultados y Conclusiones
Reconfiguración
Feedforward
Module Backpropagation
Module
Update Inicia un
Module nuevo patrón
Foreground Background
Figura 5-9. Segmentación Propuesta para el Algoritmo Backpropagation
De acuerdo a la arquitectura y al algoritmo empleado, es posible segmentarlo
modularmente y proponer que los módulos que tienen una mayor prioridad, se
encuentren en el primer plano “foreground” y los que tienen una menor prioridad, se
encuentren en un segundo plano “background” esto es posible de acuerdo a la
funcionalidad del sistema.
A las etapas feedforward y up-date se les asigna el primer plano, debido a que estas
etapas realizan un procesamiento en línea, reciben los vectores de entrada los
procesan y transmiten la información, a lo largo de cada una de las capas de la red
neuronal, para el reconocimiento del objeto. A las actividades del entrenamiento y
aprendizaje (backforward), se les asigna el segundo plano, ya que realizan un
procesamiento por lotes durante el proceso de reconfiguración (actualizaciones de
pesos sinápticos, bias).
Para que el sistema realice un entrenamiento durante el tiempo de ejecución, las
mismas reglas de aprendizaje deben ser aplicadas a la información obtenida,
[TLV+04], [PPOP99] incluyendo los nuevos patrones de entrenamiento. Teniendo en
cuenta los puntos anteriormente descritos, se propone que la arquitectura cuente con
un módulo dedicado a realizar las tareas de entrenamiento ( reconfiguración) “on
line”.
La propuesta de diseño del módulo de reconfiguración, esta basada en un procesador
embebido “Hard Processor”. Este módulo cuenta con un banco de memoria
denominado “memoria de entrenamiento”, considerada como el banco de
conocimiento donde se guarda una “imagen de los patrones de entrenamiento”
empleados por cada una de las TNN del sistema, teniendo en cuenta que debe
funcionar con las mismas reglas de aprendizaje.
110
Capitulo 5 Resultados y Conclusiones
Cuando la red es reconfigurada, la unidad de control ejecuta concurrentemente el
proceso de aprendizaje, etapa de backpropagation, usando los patrones almacenados
incluyendo el nuevo patrón a reconocer. Cuando el proceso termina, se obtienen los
datos de la nueva configuración (pesos sinápticos) y estos datos son actualizados
localmente, para posteriormente, ser transferidos a las memorias de pesos y bias de
la red que fue configurada. La razón de la redundancia de cada uno de los bancos de
memoria es la de disminuir los tiempos involucrados en el cambio de contexto de las
etapas de foregrownd (feedforward y update) y la etapa de background
(backpropagation).
Para lograr una arquitectura eficiente, para el diseño del módulo reconfigurable, se
propone establecer la comunicación del control del sistema, mediante una estructura
de buses. De tal forma que, los bloques de memoria de pesos y bias, utilizados en
cada una de las capas de las redes neuronales, compartan el mismo espacio de
dirección física del sistema. De esta forma su accesos es mediante una dirección
lógica, logrando con ello que la memoria distribuida de las TNN compartan un
espacio de memoria centralizada en el módulo reconfigurable. Con esta propuesta se
logra acelerar el algoritmo de entrenamiento. En la figura 5-10 se muestra un
diagrama a bloques del mapa de memoria empleado durante las etapas de
reconfiguración.
Mapa de direcciones del control
Direcciones Memorias de Pesos y bias
Físicas de las redes de neuronas Especializadas
pesos de las
N neuronas
Espacio de
pesos de la
Direcciones
neurona 1
“Ventana”
Red Neuronas Red Neuronas Red Neuronas
Especializada Especializada Especializada
Direcciones
Físicas
Direcciones Lógicas
Figura 5-10. Mapa de memoria modulo reconfigurable
111
Capitulo 5 Resultados y Conclusiones
Características de Modularidad y Escalabilidad de la Arquitectura.
Teniendo el modelo de la unidad de conocimiento resulta relativamente fácil
implementar una red de neuronas, interconectando dos o más unidades básicas,
dependiendo del número de capas con las que cuenta la red de neuronas. La
interconexión se realiza por medio de un bus interno, que transfiere los vectores de
datos entre capas adyacentes. El control del flujo de datos lo realiza la unidad de
control por medio de un protocolo, que le indica a la capa siguiente el principio y el
fin del vector de información.
Con el diseño planteado de las unidades básicas y sus unidades de control, se puede
diseñar modularmente una capa de la red neuronal, por esta razón denominamos a
está la “Unidad Genérica de Conocimiento”, estas unidades son los módulos básicos
para la implementación de las pequeñas redes neuronales especializadas TNN, y le
da al sistema la características de modularidad. Además, estas unidades son a su vez
los módulos básicos para la implementación eventual de arquitecturas de gran
tamaño sobre plataformas FPGAs más potentes, logrando un sistema completamente
escalable, tanto en el número de redes como en el tamaño de la propia red, tal como
se observa en la figura 5-11, donde se representa varias redes trabajando
cooperativamente para el reconocimiento de formas.
112
Capitulo 5 Resultados y Conclusiones
reset_n
Memoria de
clk Control Global
Entrenamiento
P
(input vector)
Control Red Control Red Control Red
Layer_In Layer_Out Layer_In Layer_Out Layer_In Layer_Out
Neuron1 Neuron1 Neuron1 Neuron1 Neuron1 Neuron1
Neuron2 Neuron2 Neuron2 Neuron2 Neuron2 Neuron2
Neuron3 Neuron3 Neuron3 Neuron3 Neuron3 Neuron3
Neuron4 Neuron4 Neuron4 Neuron4 Neuron4 Neuron4
NeuronN NeuronM NeuronN NeuronM NeuronN NeuronM
TNN 1 TNN2 TNN3
Figura 5-11. Diagrama a bloques de diferentes TNN
5.5 Descripción de parámetros
La topología de la red diseñada es formalmente la de una red perceptron multicapa,
totalmente conectada. Es una red escalable en número de capas, número de neuronas
y número de entradas. No existe un límite impuesto para estos últimos parámetros,
más bien, el límite lo define los tiempos de respuesta esperados, así como la
capacidad de recursos hardware disponibles, en el dispositivo programable que se
emplee.
Las operaciones aritméticas se realizan en punto fijo, con un ancho de palabra o
precisión numérica parametrizable. Se utiliza como función de activación una
función lineal, que tiene diferentes pendientes, que pueden ser seleccionadas
variando un parámetro.
113
Capitulo 5 Resultados y Conclusiones
Existe un conjunto de parámetros que permite elegir, no sólo la topología de la red
neuronal que se implementará; sino también la forma operativa de la misma, es decir
como se lleva a cabo el procesamiento de datos teniendo en cuenta las limitaciones
del hardware. Estos parámetros son los inherentes a la estructura de la red y los
parámetros inherentes a la operación de la red.
• Los parámetros inherentes a la estructura de la red son necesarios para
definir la arquitectura.
• Los parámetros inherentes a la operación de la red tienen que ver con la
estructura del diseño, tamaño y capacidad de las celdas lógicas y
velocidades de procesamiento del dispositivo FPGA donde se realice el
diseño.
Si los recursos hardware de la FPGA seleccionada fueran ilimitados, estos
parámetros no serían necesarios; pero en nuestro caso, el tamaño y la velocidad de
procesamiento, resultan determinantes en el diseño del sistema y la arquitectura del
mismo. En la tabla 5-2 se pueden observar los diferentes parámetros involucrados.
114
Capitulo 5 Resultados y Conclusiones
Parámetros Estructura de Red
Número de entradas Tamaño del vector de entrada
Determinado por la Región de Detección
Número de Capas Capa de entrada
Capa de salida
Opcional capa oculta
Número de neuronas por capa Determina el número de neuronas por
capa
Capa de entrada = número de entradas
Capa de salida = número de
singularidades a detectar
Pendiente de Activación Función lineal
Parámetros Operación de Red
Ancho de la palabra de Capa de entrada implica imágenes binarias
entrada
Ancho de la palabra de salida De acuerdo a las unidades MAC
Niveles del Pipeline
Tabla 5-2. Parámetros de la Estructura y de la Operación de la Red.
Dada las características de las FPGA’s se han delimitado las capacidades de cada uno
de los elementos característicos de la red, teniendo en consideración que:
• Todos los valores de la red son números enteros codificados en binario. El
rango de valores estará descrito en el archivo de configuración mediante
el número de bits correspondiente.
• El número de neuronas son números enteros positivos con rango de cero a
n-1, donde n será el rango del bus de neuronas.
• El vector de entradas son imágenes binarias. Los pesos son bipolares. El
rango de valores será de - 2n-1 … 2n-1 -1, donde n es le tamaño del bus de
115
Capitulo 5 Resultados y Conclusiones
pesos. Los pesos, al tener valores positivos y negativos, estarán
codificados en complemento a 2 representados en punto fijo.
• Dado un problema a resolver con una red neuronal, los patrones de
entrada y salida siempre pueden escalarse de forma que siempre se
encuentren en el intervalo [-1, 1]. Por el contrario, al entrenar la red con
los patrones de entrada/salida normalizados, los pesos y bias resultantes
no tienen porqué pertenecer a este intervalo.
• La función de activación será la misma para todas las neuronas de la red.
Será del tipo lineal, con pendientes de potencias de dos.
5.6 Aspectos Operativos
Las redes neuronales TNN se configuran para el reconocimiento de una forma
específica. La configuración se efectúa por medio de las bases de conocimiento,
donde se encuentran almacenados los pesos y bias, (calculados previamente off line),
usados para reconocer cada una de las formas. A continuación las imágenes son
introducidas a la red neuronal, donde se identifican las singularidades y se almacena
su secuencia para dar un resultado de reconocimiento verdadero o falso.
De esta descripción funcional de las TNN resultan los modos de operación de las
mismas, que se muestran el diagrama de estados de la figura 5-12. El primero de
estos, llamado Configuración, permite que las TNN se configuren para el
reconocimiento de una forma en particular. El segundo modo, es el modo de
Reconocimiento o Clasificación y realiza la identificación de las singularidades para
las que ha sido configurada.
El modo Reconocimiento de la red se ha implementado como una serie de etapas de
procesamiento sobre distintas regiones de la región de interés (RoI) conocidas como
región de detección (RoD). En primer lugar se obtiene la RoI y se almacena en la
memoria RAM del dispositivo; posteriormente sucesivas RoD son extraídas de la
RoI y enviadas a las TNN para su procesamiento, haciendo el desplazamiento
“barrido” de la RoD sobre la RoI entera.
Para conseguir que las diferentes capas de la red sean modulares se han
implementado incluyendo el control en cada una de ellas. De este modo, se ha
116
Capitulo 5 Resultados y Conclusiones
eliminado la necesidad de un control global, ya que cada capa se controla así misma.
La máquina de estados del control se ha diseñado de manera que permita una
eventual mejora del sistema, para futuras aplicaciones. Por ello, se ha tenido especial
cuidado en el diseño de la máquina de estados, que controla los aspectos operativos
del sistema, consiguiendo dos ramas perfectamente diferenciadas para cada uno de
los modos de funcionamiento: operación normal o “foregrownd” y operación re-
entrenamiento o “background”.
La rama de funcionamiento normal o “foregrownd” está compuesta por los estados
de Configuración y Reconocimiento. Este diseño, junto con la adecuada selección de
entradas a la red en cada una de sus capas, deja al sistema preparado para una rápida
y sencilla integración del módulo de aprendizaje durante el tiempo de ejecución,
también llamado aprendizaje “on line”. En lo que a las redes neuronales que
conforman las unidades de conocimiento se refiere, esto supondría, un intercambio
de contexto, para que se ejecute el proceso “background”. Ello implica que el
procesador integrado “hard processor”, ejecute la etapa del algoritmo
backpropagation, entregando como resultado los nuevos pesos sináptico y los valores
de umbral de la TNN, lo que permite que puedan ser re-entrenadas “on line” o
reconfiguradas.
117
Capitulo 5 Resultados y Conclusiones
Vector_control Salida_red
Inactivo
Entrada_red
Reconocimiento
NEURO_NET_TOP
Bus_pesos&bias Reconfiguración
READY Configuración
Start_IO
clk
reset
Procesos de Operación Normal
Procesos de Entrenamiento online
Figura 5-12. Diagrama de estados modos de funcionamiento y Bloque Funcional
NEURO_NET TNN
En la figura 5-12 podemos observar una de las TNN, como un único elemento,
considerando a la red como una caja negra completamente síncrona, la cual se
comunica con el exterior a través de las señales de entrada y salida. A continuación
se hace una descripción funcional de los modos de operación de la red y las señales
involucradas.
Vector_control: Es la señal principal de la red, pues con ésta se controla el
funcionamiento de la misma. Para cualquiera de los modos de funcionamiento de la
red (Configuración, Reconocimiento y Reconfiguración), ha de activarse el bit
correspondiente a dicho modo, permaneciendo el resto de los bits del vector
desactivados.
Entrada_red: Es la señal de entrada a procesar por la red, a partir de la cual
obtendremos una salida determinada. El tamaño de este vector corresponde al
número de entradas (número de neuronas de la primera capa).
Bus_pesos&bias: Es un vector que permite el intercambio de los pesos de la red entre
ella misma y el exterior, su tamaño está, definido en el archivo de reconfiguración
mediante la variable tamaño_bus_pesos, la cual indica la resolución en bits de un
entero con signo representado en complemento a dos.
118
Capitulo 5 Resultados y Conclusiones
Modo Configuración
Para este modo de funcionamiento han de tenerse en cuenta las señales reconfig,
reconfig_data, reconfig_data_valid. Esta señales se han generado en forma
especifica de acuerdo al cronograma para que la red se reconfigure adecuadamente.
• reconfig: señal que indica a la red que entre en el modo configuración.
• reconfig_data_valid: señal de validación de los datos de configuración.
• reconfig_data: bus de datos (proviene de memoria externa) con los datos de
configuración (pesos y bias).
• reconfig_data_end: indica fin del modo de configuración, se activa al mismo
tiempo que se recibe el último dato durante un ciclo de reloj.
Modo Reconocimiento
Para este modo de funcionamiento han de tenerse en cuenta las señales data_in_start,
data_in, data_in_valid y data_in_end. En la figura 5-13 y 5-14 se muestran los
diagramas de tiempos involucrados en este modo.
• data_in: datos de entrada a la red (pixeles de 1bit).
• data_in_start: indica a la red que pase al modo de funcionamiento
reconocimiento (normal). Se activa durante un ciclo de reloj antes del primer
píxel válido de cada frame.
• data_in_valid: señal de validación de los datos de entrada.
• data_in_end: indica fin de datos de entrada, se activa al mismo tiempo que el
último dato durante un ciclo de reloj.
119
Capitulo 5 Resultados y Conclusiones
Figura 5-13. Modo Reconocimiento (inicia)
Figura 5-14. Modo Reconocimiento (termina)
120
Capitulo 5 Resultados y Conclusiones
Modo Reconfiguración
Para este modo de funcionamiento se utilizan nuevamente las señales reconfig,
reconfig_data, reconfig_data_valid. Estas señales se han generado en forma
específica de acuerdo al cronograma para que la red actualice sus datos. En la figura
5-15 y 5-16 se muestran los diagramas de tiempos involucrados en este modo de
operación.
• reconfig: señal que indica a la red que entre en el modo reconfiguración.
• reconfig_data_valid: señal de validación de los datos de reconfiguración.
• reconfig_data: bus de datos (proviene de memoria externa) con los datos de
reconfiguración (pesos y bias).
• reconfig_data_end: indica fin del modo de reconfiguración, se activa al
mismo tiempo que se recibe el último dato durante un ciclo de reloj.
Figura 5-15. Modo Reconfiguración (inicia)
121
Capitulo 5 Resultados y Conclusiones
Figura 5-16. Modo Reconfiguración (termina)
Durante la etapa de configuración y reconfiguración, se utilizan los buses de pesos y
bias, para transferir los datos, y las señales de control son las mencionadas
anteriormente. Terminado estas etapas el sistema esta listo para seguir funcionando
en el modo normal, es decir, puede realizar nuevamente el reconocimiento de formas.
5.7 Conclusiones
A partir de la definición de los objetivos planteados en esta Tesis y de acuerdo a la
investigación realizada en el área de las redes neuronales y su implementación en
hardware en sistemas embebidos podemos mencionar las siguientes conclusiones:
Se ha diseñado un sistema de visión artificial para el reconocimiento de formas
aplicando pequeñas redes neuronales especializadas TNN.
122
Capitulo 5 Resultados y Conclusiones
Se propone una arquitectura paralela que permite reutilizar hardware, logrando con
ello un crecimiento lineal del número de multiplicadores.
El principal esfuerzo se ha centrado en el diseño de las redes neuronales y
principalmente, en la reducción del alto consumo de recursos hardware, necesarios
para su implementación.
Se ha obtenido el diseño de una TNN, en módulos parametrizables, permitiendo su
implementación en dispositivos embebidos.
Se segmentó el algoritmo de entrenamiento para obtener su mejor performance, tanto
en el empleo de recursos hardware como en aplicaciones de tiempo real, por lo que
resulta necesario emplear un procesador hardware embebido.
Se establecen los modos de operación del sistema, por medio de una máquina de
estados que controla perfectamente los aspectos operativos del sistema. Teniendo los
modos de operación normal o foregrownd y operación reconfiguración o background
123
Capitulo 6 Resultados y Conclusiones
Capítulo 6
Resultados y Conclusiones
125
Capitulo 6 Resultados y Conclusiones
Índice
6. Resultados y Conclusiones ................................................................ 127
6.1 Resultados del Modelo Funcional ........................................................................ 130
6.2 Resultados del Modelo Intermedio...................................................................... 134
6.3 Resultados del Modelo de Implementación Hardware..................................... 135
6.4 Conclusiones............................................................................................................ 139
6.5 Publicaciones ........................................................................................................... 143
6.6 Principales aportaciones de esta Tesis................................................................. 144
6.7 Trabajos Futuros..................................................................................................... 145
En esta sección se verán las pruebas que se realizaron sobre el diseño con el fin de
validar el mismo. Se explicará también la forma en que se probaron los distintos
módulos y los resultados obtenidos.
126
Capitulo 6 Resultados y Conclusiones
Capítulo 6
Lo que no sé, tampoco creo saberlo
Platón
6. Resultados y Conclusiones
Dada la complejidad del sistema, las primeras pruebas no se realizaron con todo el
diseño; sino que para efectuarlas se construyeron otros circuitos que permitieran
comprobar partes integrantes de aquél. Se utilizó una interfaz con memoria, para
poder introducir y obtener datos del mismo, con el fin de comparar los resultados
obtenidos, con aquellos que se obtienen con las herramientas de simulación y
desarrollo.
Para verificar su funcionamiento se realizaron diversas pruebas con el ánimo de
testear el circuito para diferentes valores de parámetros. Para ello se realizó un plan
de pruebas (metodología), donde para distintas arquitecturas de redes neuronales,
como la que se muestra en la figura 6.1, se prueban distintos parámetros.
Bus Datos Vector Entrada Data Bus
Vector Entrada
* ** *
MEMORIA MAC SERIALIZADOR MEMORIA MAC SUMADOR FUNCION
BIAS ACTIVACION
PESOS PESOS Salida
SUMADOR FUNCION
+
BIAS ACTIVACION
Salida
+
n + Datos
de Salida Salida
+
BIAS
BIAS
CONTROL CAPA ENTRADA CONTROL CAPA SALIDA
DATOS CONTROL
Figura 6-1. Circuitos de prueba de arquitecturas TNN
127
Capitulo 6 Resultados y Conclusiones
La prueba para cada conjunto de parámetros consiste en:
• Compilar el circuito mencionado (TNN), para el conjunto de parámetros de
interés y grabarlo en el chip.
• Generar archivos de texto plano con patrones de entrada, pesos y bias,
mediante funciones Matlab implementadas para tal efecto.
• Generar archivos de texto que contiene los resultados que deberían esperarse
como resultado de evaluar, en el hardware, la red sintetizada para el conjunto
de pesos, bias y patrones generados en el punto anterior. Para ello se usan
funciones en Matlab que simulan exactamente, el comportamiento del
hardware utilizado en las TNN.
Para poder realizar las pruebas mencionadas anteriormente es necesario que en el PC
que soporta el sistema de desarrollo de la FPGA de Altera, se ejecute un programa
que en forma esquemática, como se muestra en la figura 6.2, hace lo siguiente:
128
Capitulo 6 Resultados y Conclusiones
Lee los datos por capa del archivo
generado y copia el contenido
a la memoria
Da la orden de configuración
del Sistema (lee pesos y bias)
los copia a la memoria de la placa
Lee los patrones de entrada
Da la orden de cálculo y
espera a que finalice la
operación
Copia el resultado obtenido
a un archivo de texto
Figura 6-2. Diagrama esquemático de la Plataforma de pruebas
Las pruebas, por su parte, se pueden agrupar de la siguiente manera:
Pruebas a Nivel Funcional del circuito. El objetivo de estas pruebas es validar la
arquitectura propuesta para la aplicación de referencia. Se probarán los circuitos de
interés con patrones de entrada, pesos y bias, generados a partir de un algoritmo en
Matlab.
Pruebas de aplicaciones Nivel Intermedio. Validará los algoritmos para cada módulo
de la arquitectura. El fin de estas pruebas es comparar los resultados obtenidos en
hardware para una aplicación real con la misma red neuronal evaluada en Matlab.
Interesa además analizar el performance obtenida así como los errores numéricos.
129
Capitulo 6 Resultados y Conclusiones
También se muestra la facilidad de uso de todo el sistema para que, a partir de un
problema descrito, se llegue rápidamente a un circuito que lo implemente.
Pruebas de implantación a Nivel Hardware en las que se pretenden alcanzar un
rendimiento máximo. Permitirá validar la implementación de los algoritmos
mencionados. El objetivo es conseguir las arquitecturas más convenientes que
permitan obtener el throughput 35 máximo del circuito.
A continuación se presentan los resultados obtenidos en la simulación e
implementación de las TNN para el reconocimiento de imágenes, para ello, se aplicó
la metodología que se describe brevemente en la figura 6.3.
Pruebas del Modelo Funcional
(Simulación)
Pruebas del Modelo Intermedio
(Simulación)
Pruebas del Modelo de
Implementación Hardware
Figura 6-3. Metodología empleada en las pruebas de las TNN
6.1 Resultados del Modelo Funcional
En este paso inicial, se pretende verificar la correcta funcionalidad de la arquitectura
propuesta. Por tanto, este modelo desarrollado en Matlab fue la primera adaptación
del algoritmo genérico del sistema, para adecuarlo a la aplicación de referencia. Las
35
Throughput: Tasa de transferencia
130
Capitulo 6 Resultados y Conclusiones
transformaciones a las que se somete son mínimas, pues lo que se persigue es validar
el algoritmo. Por ello, se implementó con toda la generalidad posible siempre
adaptado al problema en cuestión (reconocimiento de objetos y usando herramientas
como MatLab y Simulink). En este caso, y en función del sistema que se trate de
validar, será necesario implementar el modelo a una escala que haga su simulación
viable en un tiempo relativamente corto.
Con este modelo se valida funcionalmente la propuesta sistémica y algorítmica
planteada: a saber, y en una primera aproximación, unos filtros de preprocesamiento
que operan sobre una secuencia de imágenes para adaptarla a las siguientes etapas de
procesamiento. En la Figura 6.4 se muestra en Modelo Funcional, a un nivel de
abstracción alto, de una Red Neuronal Perceprtron Multicapa, con 30 neuronas en la
capa de entrada y 3 neuronas en la capa de salida, con un vector de entrada de 30
valores (píxeles), empleado en la etapa de procesamiento.
Vector de Entrada Capa de Entrada Capa de Salida
(RoD)
Figura 6-4. Modelo Funcional de la Red Neuronal Especializada (TNN)
Los datos de pesos y bias almacenados en los módulos de memoria fueron obtenidos
usando el algoritmo backpropagation, mediante un proceso de entrenamiento off-
line. El software de simulación fue desarrollado empleando las herramientas
disponibles Matlab y Simulink, (Toolbox de Redes Neuronales).
El método de entrenamiento, es supervisado y trabaja por batch, es decir, se necesita
conocer el vector de salida para cada uno de los patrones de entrada. La actualización
de los valores de las memorias de pesos y bias, se realiza después de que se han
131
Capitulo 6 Resultados y Conclusiones
introducido todos los patrones de entada. La función de entrenamiento, actualiza los
pesos y bias de la red en la dirección en la cual la función de performance decrece
mas rápidamente, empleando para calcular dichos valores la disminución del
gradiente (MSE 36 ) y una tasa de aprendizaje adaptativo, como se representa a
continuación:
x k +1 = x k − α k g k
donde x k es el vector de pesos y bias actual
α k es el learning rate, y g k es el gradiente actual
Los datos, que se obtienen del proceso de entrenamiento de la red neuronal, son el
resultado de emplear 450 patrones de entrenamiento que representan las
singularidades (vértices acotados a 60º) utilizadas en el reconocimiento de formas
triangulares. Para el reconocimiento de formas cuadrangulares o circulares se
emplean 600 patrones de entrenamiento, para cada una de ellas, que representan
ángulos acotados a 90º en el caso de formas cuadrangulares, o bien segmentos de
circunferencia, si la forma a reconocer, son circunferencias.
36
MSE. Mean-Square Error
132
Capitulo 6 Resultados y Conclusiones
Tiempo= 105.7217 seg
TRAINGDX-calcgrad, Epoch 2865/15000, MSE 0.000998535/0.001,
TRAINGDX, Performance goal met.
Figura 6-5. Figura de merito para el entrenamiento de una TNN
En la figura 6-5 se representa el número de épocas (2865 iteraciones) necesarias para
que el algoritmo converja a la solución planteada, utilizando los siguientes
parámetros de entrenamiento: como función de figura de mérito el error cuadrático
medio, tasa de aprendizaje (learning rate) de 0.001 y un valor final de (goal) de
0.001, empleados para reconocer formas triangulares.
Para comprobar el funcionamiento de la red neuronal, después de haber realizado el
entrenamiento apropiado, se introdujeron diferentes secuencias de vectores
característicos.
Como ejemplo de las pruebas realizadas a la TNN para el reconocimiento de formas
triangulares, en la figura 6-6 se muestran los vectores de salida que se obtienen al
reconocer los patrones de entrada de las singularidades de vértices acotados a 60º.
Como se puede apreciar, la secuencia de los vectores de salida es vértice superior
izquierdo, vértice superior derecho, y vértice inferior representado por un valor
>=0.65 que indica un reconocimiento de la singularidad, por lo que la gráfica de la
figura 6-6 da una señal de reconocimiento cada 3 RoD, que corresponde a los tres
133
Capitulo 6 Resultados y Conclusiones
vértices necesarios para formar un triangulo, en la imagen se muestran 90 vectores de
entrada, obteniendo el 100% de reconocimientos.
Targerts Obtenidos
Numero de Patrones a Reconocer
Vértice Superior Izquierdo, Vértice Superior Derecho, Vértice Inferior.
Figura 6-6. Resultado del modulo de reconocimiento
6.2 Resultados del Modelo Intermedio
Disminuyendo el nivel de abstracción, se obtuvo un modelo intermedio, entre el
modelo funcional y el modelo hardware que finalmente sería implementado en la
FPGA. Para ello se eliminaron todas las funciones de alto nivel de Matlab que se
emplearon en alguna de las etapas de preprocesamiento y procesamiento de
imágenes. Éstas fueron substituidas por funciones que trabajan al nivel más bajo
posible (a nivel de píxel) codificadas en lenguaje Matlab, en concreto, se codificó un
filtro de Mediana para eliminar ruido y otro de Sobel para detectar bordes en la
imagen. Con ello se consigue utilizar imágenes reales y reducir, en la medida de lo
134
Capitulo 6 Resultados y Conclusiones
posible, la generación sintética de datos de entrada. De este modo, se realizó una
validación algorítmica previa a la transformación del modelo para su
implementación.
En cuanto a la etapa de procesamiento, se ha efectuado un esfuerzo para optimizar la
arquitectura y los algoritmos de aprendizaje como ya se mencionó en el capítulo
anterior. En la etapa de entrenamiento online, se codificó cada uno de los módulos
correspondientes al algoritmo de entrenamiento, transformando las funciones
empleadas por Matlab, por una versión que puede ser fácilmente implementada.
6.3 Resultados del Modelo de Implementación
Hardware
Finalmente, una vez validado el modelo descrito en un relativamente alto nivel de
abstracción, tanto funcional como arquitecturalmente, se está en disposición de
iniciar su transformación a una descripción Hardware en VHDL.
Para la realización del modelo sintetizable del sistema en una FPGA, es necesario
hacer una serie de adaptaciones al algoritmo de partida, para que este pueda ser
construido en hardware. Dichas adaptaciones ya han sido ampliamente descritas en el
capítulo correspondiente a la arquitectura del sistema.
Se ha realizado una implementación del sistema sobre FPGA’s de Altera. En
concreto sobre el modelo de Cyclone EP1C20F400C6 y Cyclone II EP2C35F672C6.
La síntesis se realizó sin ningún tipo de optimización.
La arquitectura de la red neuronal propuesta, con un formato Q8.16 37 , para los datos
de pesos y bias, cabe en un dispositivo Cyclone, pero los recursos disponibles tras la
implantación, fundamentalmente memoria, resultan un tanto limitados (se consume
el 73%). Por tanto, el sistema se ha implementado también sobre un Cyclone II,
logrando una mejoría en memoria disponible (se consume el 45%). La herramienta
de síntesis empleada ha sido Quartus II v7.1 de Altera. Se han realizado simulaciones
funcionales y post-implementación en el entorno ModelSim de Mentor Graphics que
37
Q format, es el formato de un número en punto fijo, donde el número de bits para la parte
entera y la parte fraccionaria son especificados.
135
Capitulo 6 Resultados y Conclusiones
muestran el cumplimiento de las restricciones funcionales y de tiempo real impuestas
al sistema.
A continuación se incluyen algunos de los resultados de implementación para el
sistema completo. La TNN está compuesta por 30 neuronas en la capa de entrada y 3
en la capa de salida. También se muestran por separado los detalles de
implementación de los bloques más importantes de la arquitectura. Las tablas 6-1 a
6-3 muestran los resultados para una FPGA Cyclone y las tablas 6-4 a 6-6 para una
FPGA CycloneII. Se incluyen los datos relativos al preprocesado, puesto que han
variado al mejorar algún detalle de implementación; y al haber cambiado
herramientas de síntesis.
Parámetro Valor
Elementos lógicos 6463/20060 (32 %)
Bits de memoria 72,416/294912 (25 %)
M4Ks 47/64 (73 %)
Frecuencia máxima 47.21 MHz
Tabla 6-1. Resultados de la Arquitectura del Sistema plataforma Cyclone
Parámetro Valor
Elementos lógicos 1169/20060 (6 %)
Bits de memoria 45056/294912 (15 %)
M4Ks 12/64 (19 %)
Frecuencia máxima 213.67 MHz
Tabla 6-2. Resultados de la etapa de preprocesamiento plataforma Cyclone
136
Capitulo 6 Resultados y Conclusiones
Parámetro Valor
Elementos lógicos 4930/20060 (25 %) 294/20060
Bits de memoria 24480/294912 (9 %) 2880/294912
M4Ks 34/64 (54 %) 1/64
Frecuencia máxima 47.21 MHz
Tabla 6-3. Resultados de implementación de las TNN plataforma Cyclone
Parámetro Valor
Elementos lógicos 4,437/33216 (13 %)
Bits de memoria 72,416/483840 (15 %)
M4Ks 47/105 (45 %)
Frecuencia máxima 119.32 MHz
Tabla 6-4. Resultados de la Arquitectura del Sistema plataforma CycloneII
Parámetro Valor
Elementos lógicos 1171/33216 (4 %)
Bits de memoria 45056/483840 (10 %)
M4Ks 12/105 (12 %)
Frecuencia máxima 231.24 MHz
Tabla 6-5. Resultados etapa de preprocesamiento plataforma CycloneII
137
Capitulo 6 Resultados y Conclusiones
Parámetro Valor
Elementos lógicos 2924/33216 (9 %) 275/33216
Bits de memoria 24480/483840 (5 %) 2880/483840
M4Ks 34/105 (33 %) 1/105
Frecuencia máxima 119.32 MHz
Tabla 6-6. Resultados de implementación de las TNN plataforma CycloneII
El rendimiento de la TNN se ha medido en simulaciones post-implementación y sus
resultados se pueden ver en las tablas. En la figura 6-7 puede verse una
representación del funcionamiento del pipeline de la TNN. Para esta red con 30 x 3
neuronas y RoD de 6 x 5 píxeles (vector de entrada 30 datos), el número de ciclos de
reloj necesarios para que cada capa complete su operación es de 30 + 6 + 30 y de 30
+ 7 para las capas de entrada y de salida respectivamente. Los factores + 6 y + 7
representan la latencia de cada una de las capas. El segundo + 30 de la capa de
entrada es debido a secuenciación de los datos que se realiza para formar vector de
entrada a la siguiente capa.
Inicio Datos de Entrada (RoD) Fin de Datos de Entrada (RoD)
Inicia la entrada en Capa de Salida Fin de la entrada en la Capa de Salida
Inicia Datos de Entrada Fin de Datos de Entrada
30 ciclos 6 ciclos 30 ciclos 7 ciclos
tiempo
(ciclos de reloj )
Operación Capa de Entrada Serialización de la salida Operación Capa de Salida Latencia
Capa de Entrada
Figura 6-7. Ciclos de Ejecución del pipeline de la TNN
138
Capitulo 6 Resultados y Conclusiones
Según lo expuesto, la TNN tarda 73 ciclos de reloj en procesar cada una las RoD
(bloques de 30 datos de entrada). Como se explico anteriormente, cada RoI está
compuesta de 90 RoDs. Por tanto, una RoI se procesará en 90 x 73 ciclos de reloj.
Esto, con un reloj de 100 Mhz para las unidades básicas de conocimiento, se traduce
en 65,7 us. A modo de comparativa, el período de línea nominal en formato PAL
estándar es de 64 us. Es decir si el procesamiento de la RoI comienza justo después
de recibir el último píxel, terminará alrededor de unos 2 us después de que la
siguiente línea de video haya sido recibida desde la cámara. Estos resultados de
rendimiento muestran el cumplimiento de los requisitos de tiempo real. De la figura
6-4, podemos deducir que los ciclos de ejecución, necesarios para el flujo de datos
dentro de la estructura pipeline de la TNN, depende de la topología de la red,
principalmente del número de neuronas de la capa de entrada, donde en un ciclo de
reloj se procesa en paralelo la entrada xi de las n neuronas.
6.4 Conclusiones
La implementación hardware de las redes neuronales es un campo de investigación
abierto, donde se han adoptado diferentes estrategias. Cualquier implementación
hardware de una red neuronal tiene que tener en cuenta las diferentes restricciones de
diseño, como puede ser: la velocidad, la precisión, la modularidad, la escalabilidad,
la flexibilidad y el coste de la red.
Para la aplicación planteada, se seleccionaron los dispositivos FPGA’s,
aprovechando sus características de alto desempeño, flexibilidad y bajo coste de
desarrollo. Desde el punto de vista de la arquitectura diseñada la implementación
sobre diferentes plataformas no es significativa.
Problemas complejos, como lo es el reconocimiento de objetos, puede beneficiarse
de la solución basada en hardware programable de bajo coste, pero la optimización
de recursos es factor crítico. El consumo de recursos de una FPGA es
extremadamente alto al implementar redes neuronales. Es necesario contar con
excelentes procedimientos de diseño para limitar el número de neuronas empleadas.
La arquitectura de la red neuronal para esta Tesis Doctoral, ha sido optimizada
conforme a los siguientes aspectos:
139
Capitulo 6 Resultados y Conclusiones
• Funcionalidad, basando su funcionalidad en una red optimizada de acuerdo
al número de píxeles de entrada.
• Modularidad, se obtuvo un modulo de neurona, facilitando la
implementación de toda la red, al emplear hardware recurrente en la
arquitectura paralela diseñada.
• Reconfigurabilidad, al implementar una red reconfigurable, al emplear
hardware genérico en el momento de diseñar la red completa.
Debido a la optimización en el diseño, no solamente las dimensiones de la red se han
reducido y los tiempos para el procesamiento de la información disminuyen
considerablemente, haciendo posible su implementación en hardware de bajo coste;
sino que, además, al ser modular puede ser reutilizada lo que implica un mayor
beneficio.
Las estrategias de escalado empleadas en este diseño han permitido implementar una
arquitectura inspirada en una arquitectura SIMD de bajo coste. La funcionalidad
conseguida, sin embargo, es limitada. La mayoría de recursos se emplean para la red
neuronal reconfigurable. Aun así, se puede concluir diciendo que pequeñas mejoras
en el hardware descrito en la implementación actual, permitirían obtener
funcionalidades ampliadas en el sistema, sin que esto suponga una disminución en el
rendimiento, dado que la estructura del sistema sería mantenida.
Las técnicas de modularidad y encapsulamiento empleadas en el diseño de las TNN,
basado en especificación de capas auto-controladas con una interfase perfectamente
definida, (así como la arquitectura en sí misma) harían la mejora de la infraestructura
desarrollada, algo relativamente sencillo. Además, una segunda FPGA podría ser
fácilmente añadida al sistema, de modo que implementara otra o varias TNN. Así, se
tendría más de una red que podrían ser ejecutadas en paralelo, incrementando de este
modo la potencia de procesamiento.
A la vista de la experiencia obtenida gracias al trabajo conducente a esta Tesis y de
los resultados que se han mostrado a lo largo de esta Memoria, las principales
conclusiones que se desprenden son las siguientes:
• Debido al alto consumo de recursos hardware, requerido por las Redes
Neuronales, no es factible la integración de más de una red en un único
circuito integrado, si se utilizan los métodos tradicionales. Sin embargo, la
140
Capitulo 6 Resultados y Conclusiones
integración es viable siempre que se excluya la información que no es
relevante para el reconocimiento de objetos. La arquitectura de alta
eficiencia y de tecnología más avanzada, podrá permitir a corto o medio
plazo, la integración en un único circuito integrado si se emplean técnicas
que nos permitan optimizar la información de entrada a las redes neuronales,
como por ejemplo el uso de singularidades de una imagen o bien para otras
aplicaciones, el uso de las características principales de la información.
Tomando en cuenta esto, es posible diseñar pequeñas redes neuronales para
sistemas embebidos, empleando arquitecturas reconfigurables que nos
permiten reducir la carga computacional y los recursos hardware.
• Las arquitecturas que en la actualidad han demostrado ser más eficientes
para el reconocimiento de formas empleando redes neuronales, son las que
incorporan bloques heterogéneos, adaptados individualmente, a las diferentes
tareas del algoritmo de entrenamiento. La flexibilidad, escalabilidad,
minimización del flujo de datos y aprovechamiento de los elementos
arquitecturales disponibles, que dependen de la concepción concreta de la
arquitectura, son los elementos clave a la hora de decidir sobre la bondad de
una opción arquitectural concreta. La segmentación y paralización adecuada
de los algoritmos, nos permiten realizar entrenamiento on line, y esto hace
posible la reconfiguración o adaptación de los nuevos pesos y bias de la red
neuronal, durante el tiempo de ejecución.
• Conseguir el balance óptimo de las etapas del pipeline para la optimización
de recursos hardware es importante en cualquier arquitectura segmentada,
pero es un punto crítico en el diseño de una red neuronal para aplicaciones
en tiempo real. Las estimaciones de los retardos, de cada una de las etapas en
las fases iniciales del diseño, pueden ser decisivas para ayudar a adaptar la
estructura pipeline a las características concretas de la tecnología y de la
aplicación en particular. Con la estrategia propuesta se obtiene el mejor
balance entre el procesamiento y el mejor aprovechamiento de los recursos
hardware.
• El proceso de diseño de arquitecturas de alta complejidad en general y para
redes neuronales en particular debe partir del conocimiento exhaustivo de la
tecnología, librerías y herramientas disponibles, que han de tener un peso
141
Capitulo 6 Resultados y Conclusiones
muy importante en la propia concepción arquitectural, si se quieren obtener
los mejores resultados en cuanto a la eficiencia. El precio que el diseñador
debe pagar a cambio, es la menor facilidad en portar una determinada
arquitectura a diferentes tecnologías. La independencia de la tecnología en
una arquitectura es algo que resulta cada vez más problemático. En
definitiva, las metodologías de diseño top-down clásicas deben ser ampliadas
con la adopción de elementos bottom-up para guiar el proceso de diseño y
adaptar las especificaciones a las posibilidades de la tecnología. Esto resultó
necesario para el diseño del sistema embebido.
• La utilización de lenguajes de descripción hardware y la planificación de un
plan de pruebas completo, desde el mismo momento de la especificación, se
hacen imprescindibles para asegurar el éxito del diseño.
Después de analizadas cada una de las conclusiones mencionadas anteriormente
podemos decir que los objetivos principales y secundarios planteados al inicio de esta
Tesis se han cubierto satisfactoriamente.
Sobre la metodología.
Por ultimo, como otra de las conclusiones que se obtuvieron, aunque originalmente
no se había planteado fue el desarrollo de una metodología de diseño.
La metodología presentada deja entrever los tres niveles que la componen. Donde se
parte de un escenario que esta integrado por: una aplicación de referencia, una
arquitectura inteligente de referencia y unos recursos de implementación de
referencia.
Se propone una metodología para el reconocimiento de objetos de una manera rápida
y eficiente, que puede ser implementada en plataformas móviles con aplicaciones en
diferentes áreas de la robótica, la visión artificial, automoción, y el procesamiento de
señales en general. Se obtuvieron resultados experimentales que demuestran la
factibilidad de utilizar el método desarrollado, en aplicaciones en tiempo real,
pudiendo demostrar con los experimentos la implementación en una FPGA, para
aplicaciones de plataformas móviles. En el trabajo se hace una presentación detallada
del método involucrando técnicas de procesamiento de imágenes para la obtención
de parámetros utilizados y que demuestran en sí, la aplicación real de operadores
teóricos, de la disciplina de redes neuronales artificiales.
142
Capitulo 6 Resultados y Conclusiones
La metodología en general fue implementada e integrada en un prototipo, mostrando
el funcionamiento y comportamiento real del sistema. La exactitud en el
reconocimiento de objetos fue realizado con éxito utilizando un modelo de red
neuronal TNN. El desarrollo de éste modelo fue satisfactorio con tiempos de
reconocimiento menores a 66 us e índices de identificación 100%.
6.5 Publicaciones
J. Alarcón, R. Salvador, F. Moreno, I. Lopez, A new Real-Time hardware
architecture for road line tracking using a particle filter. Proceedings of the 32nd
Annual Conference of the IEEE Industrial Electronic Society, IECON’06, Paris
France, TPC01, pp 736-741
I. López, R. Salvador, J. Alarcón, F. Moreno. Architectural design for a low-cost
FPGA-based traffic signal detection system in vehicles. Microtechnologies for the
New Millennium 2007, SPIE Europe. Proceedings of SPIE Vol. #6590.
Maspalomas, Gran Canaria, Spain. 2 - 4 May 2007.
Ignacio López, Rubén Salvador, Jaime Alarcón, Félix Moreno. Embedded
architecture enables intelligent vehicles. (http://spie.org/x15606.xml) Revista: SPIE
Newsroom. on-line (http://spie.org/x1004.xml). DOI: 10.1117/2.1200708.0822
Ignacio López, Ricardo Sanz, Félix Moreno, Rubén Salvador, Jaime Alarcón. From
cognitive architectures to Hardware: a low cost FPGA-based design experience.
CONGRESO: WISP 2007 – Proceedings of the IEEE International Symposium on
Intelligent Signal, RS7-PT4, pp.499-504. IEEE Catalogue Number: 07EX1620C.
ISBN: 1-4244-0830-X. Alcalá de Henares, Madrid, Spain. 3-5 Octubre 2007.
Ruben Salvador, Jaime Alarcon, Felix Moreno, Ignacio Lopez; Contribution to the
development of Autonomous Vehicles: An Embedded Hardware System for Real-
Time Trajectory Prediction. Revista: Image and Vision Computing, Elsevier
Manuscript Number: IMAVIS-D-07-00033 Article Type: Full Length Article Current
status: with editor
143
Capitulo 6 Resultados y Conclusiones
Jaime Alarcón, Félix Moreno, Rúben Salvador, Teresa Riesgo, Ignacio López;
Hardware Architecture of a System Based on Tiny Neural Networks Specialized in
Image Recognition; Revista Computer Vision and Image Understanding, Elsevier
Manuscript Number: CVIU-07-275 Article Type: Full Length Article Current status:
with editor
Félix Moreno, Jaime Alarcón, Rubén Salvador and Teresa Riesgo; FPGA
Implementation of an Image Recognition System based on Tiny Neural Networks
and on-line Reconfiguration. The 34 Annual Conference of The IEEE Industrial
Electronics Conference, IECON08. (Aceptado)
6.6 Principales aportaciones de esta Tesis
Las principales aportaciones de esta Tesis, relacionadas con las redes neuronales
especializadas y referidas tanto a arquitecturas paralelas para el reconocimiento y o
clasificación de objetos, y a la metodología de su diseño son las siguientes:
• La aportación principal de esta Tesis es el diseño de una red artificial de
neuronas configurable (adaptable) con capacidades de aprendizaje
supervisado, usando dispositivos FPGA’s, que es capaz de solucionar en
forma eficiente el problema del reconocimiento de objetos para aplicaciones
en tiempo real, para plataformas móviles.
• En esta Tesis se han empleado dos conceptos importantes: el primero,
relacionado con los sistemas de visión, empleando visión por singularidades,
permiten reducir considerablemente la carga computacional y las
dimensiones de la red neuronal y el segundo, la segmentación de los
algoritmos de aprendizaje (entrenamiento) nos permite obtener un sistema
para aplicaciones en tiempo real, para aplicaciones en diferentes áreas de la
ciencia y tecnología.
• El Modelo de una arquitectura paralela implementada en hardware
embebido, para plataformas móviles. La arquitectura propuesta cumple con
las expectativas planteadas en los objetivos y abre las posibilidades de
implantar sistemas con un cierto grado de inteligencia en hardware
embebido.
144
Capitulo 6 Resultados y Conclusiones
6.7 Trabajos Futuros
De acuerdo a los resultados obtenidos con las plataformas de bajo coste se concluye
que no es posible implementar el sistema completo en un solo dispositivo, dado los
recursos hardware y las limitaciones de la memoria interna suministrada. No
obstante, de acuerdo a los resultados presentados, y de acuerdo al desarrollo
completo de la arquitectura, es posible implementar el sistema en dos dispositivos.
Por lo tanto, el empleo de tecnología con mejores características nos conduce a
reconsiderar el sistema. Se esta explorando la posibilidad de implementar futuras
versiones del sistema de visión en una plataforma Xilinx Virtex II FPGA.
Teniendo en cuenta la optimización y de acuerdo a los resultados de implementación
presentados, la arquitectura del sistema puede ser ligeramente modificada cuando se
implemente en un dispositivo con más recursos hardware. En lugar, de tener
únicamente una TNN configurada para el reconocimiento de un objeto, en una
plataforma con mayores recursos se pueden tener implementadas tres diferentes
redes, de tal forma que puedan trabajar en paralelo. Con esto se tendrá una drástica
reducción en el tiempo de procesamiento logrado, ya que una imagen es
inspeccionada para tres tipos diferentes de objetos al mismo tiempo. Sin embargo se
puede requerir de un segundo dispositivo FPGA para obtener la solución completa
del sistema.
Hasta el momento, la localización de la RoI sobre la imagen se realiza externamente;
en el futuro, está localización será hecha automáticamente y se ajustará
dinámicamente. Esto puede ser implementado fácilmente debido a que la imagen
completa es preprocesada. Además, ya que la red neuronal cuenta con el tiempo
suficiente para analizar más de una RoI dentro cada campo de la imagen.
El sistema propuesto ha sido diseñado empleando las técnicas de módulos que son
escalables; teniendo especial cuidado en la etapa de control con el objeto de que
facilite las posibles mejoras de acuerdo a la aplicación que se plantee; por ello, se
propone que se empleen las técnicas de algoritmos genéticos o sistemas difusos en el
módulo de incertidumbre, con lo que se obtendrá una mayor flexibilidad del sistema.
145
Capitulo 6 Resultados y Conclusiones
146
Referencias
Referencias
[AA96] Y. Aoyagi, T. Asakura, A study on traffic sign recognition in scene image
using genetic algorithms and neural networks, 1996 IEEE IECON, 22nd Int.
Conf. on Industrial Electronics, Control, and Instrumentation, pp. 1838-43
vol.3
[ABD+04] M. Avogadro, M. Bera, G. Danese, F. Leoparti, A. Spelgatti: The Totem
Neurochip: an FPGA Implementation. Submitted to IEEE 2004. Signal
Processing and Information Technology, 2004. Proceedings of the Fourth
IEEE International Symposium on. Pag 461-464.
[ADDM96] Giovanni Adorni, Vincenzo D’Andrea, Giulio Destri and Monica Mordonini:
Shape Searching in Real World Images: A CNN–based Approach. CNNA’96
Fourth IEEE International Workshop on Cellular Neural Networks and
Applications, Seville Spain, June 24-26 1996. pag 213-218.
[Ala97] Jaime Alarcón Celis, Diseño e implantación de una interfaz de comunicación
entre robots industriales y computadores a base de Transputers, Tesis
Maestría Tecnológico de Monterrey , Campus Toluca junio 1997.
[Ala79] Jaime Alarcón Celis, Sistema de Despliegue de Imágenes Multiespectrales ,
Tesis Maestría en Electrónica División de Estudios de Postgrado de la
Facultad de Ingeniería. Universidad Autónoma de México, agosto 1979.
[ALP92] M. Adé, R. Lauwereins, J. Peperstraete: A Fast Simulator for Neural
Networks on DSPs or FPGAs. Submitted to IEEE 1992. Neural Networks for
Signal Processing [1992] II., Proceedings of 1992 IEEE – SP Workshop.
[AM90] [I. Aleksander and H. Morton. An introduction to neural computing, Ed.
Chapman & Hall 1990]
[ASML06] J. Alarcón, R. Salvador, F. Moreno, I. Lopez, A new Real-Time hardware
architecture for road line tracking using a particle filter. IEEE Industrial
Electronic Society, IECON’06 TPC01, pp 736-741.
[BB98] M. Bertozzi, A. Broggi, GOLD: a Parallel Real-Time Stereo Vision System for
Generic Obstacle and Lane Detection, IEEE Transactions on Image
Processing, 7(1), 1998, pp. 62-81
147
Referencias
[BFHD05] Seth Bridges, Miguel Figueroa, David Hsu and Chris Diorio: A
Reconfigurable VLSI Learning Array. Solid-State Circuits Conference, 2005,
ESSCIRC 2005, Proceedings of the 31 st European. 2005. pags. 117-120.
[BHS98] Jean–Luc Beuchat, Jacques–Olivier Haenni and Eduardo Sanchez: Hardware
Reconfigurable Neural Networks. Submitted to IEEE.
[BMMM97] J. J. Blake, L. P. Maguire, T. M. McGinnity, L. J. McDaid, Using Xilinx FPGAs
to implement neural networks and fuzzy systems, IEEE Colloquium on
Neural and Fuzzy Systems: Design hardware and appications, Digest No.
1997/133, pp 1/1- 1/4.
[BM95] M. Betke, N. Makis, Fast object recognition in noisy images using simulated
annealing. Proc. International Conference on Computer Vision, pp 523-530,
1995 (MIT AI memo 1510).
[BMB+05] Luis Brunelli, Elmar U. K. Melcher, Alisson V. de Brito and Raimundo C. S.
Freire: A novel Approach to reduce Interconnect Complexity in ANN
Hardware Implementation. Pags. 2861 – 2866. Neural Networks, 2005.
IJCNN ’05. Proceedings. 2005. IEEE International Joint Conference on.
[BP02] Bondalapati, K.; Prasanna, V.K.; Reconfigurable computing systems;
Proceedings of the IEEE, Volume 90, pages 1201 – 1217, 2002
[CFP97] Giovanna Castellano, Anna Maria Fanelli, and Marcello Pelillo: An Iterative
Pruning Algorithm for Feedforward Neural Networks. IEEE Transactions on
Neural Networks, Vol. 8, No. 3, May 1997.
[Dou00] [Douville 2000] Phil Douville, “Real-time classification of Traffic Signs”.
Realtime Imaging, 185-193, 2000
[DZ86] [Dickmanns 1986] E.D. Dickmanns, A. Zapp, A curvature-based scheme for
improving road vehicle guidance by computer vision, Proc. SPIE conference
on Mobile Robots, vol 727, 1986, p 161-76
[EH94] James G. Eldredge and Brad L. Hutchings: RRANN: A Hardware
Implementation of the Backpropagation Algorithm Using Reconfigurable
FPGAs. Pags. 2097 – 2102. Neural Networks, 1994. IEEE World Congress on
Computational Intelligence., 1994 IEEE International Conference on.
[EMPS94] de la Escalera, A.; Moreno, L.; Puente, E.A.; Salichs, M.A., Neural traffic sign
recognition for autonomous vehicles, Industrial Electronics, Control and
Instrumentation, 1994. IECON '94., 20th International Conference, 5-9 Sep
1994, pages 841-846 vol.2.
148
Referencias
[EMSA97] [Escalera et al. 1997] A. de la Escalera, L. Moreno, M.A. Salichs, J. Mª.
Armingol, Road Traffic Sign Detection and Classification, IEEE Transaction
on Industrial Electronics, Vol 44, Nº 6, December 1997, pp 848- 859
[EW92] S S Erdogan, Abdul Wahab: Design Of RM-Nc: Reconfigurable
Neurocomputer For Massively Parallel – Pipelined Computations. Proc. Of
the IEEE International Joint Conference on Neural Networks’ 92.
IJCNN.Baltimore, USA., Vol.2, 7-11 June,1992, pp.II.33-II.38.
[EW92] S S Erdogan, Abdul Wahab: A Family of Reconfigurable Neurocomputers
For “The Intelligent Factory”. Emerging Technologies and Factory
Automation, 1992. IEEE International Workshop Submitted to IEEE. Pag.
369-374.
[EWH93] S S Erdogan, Abdul Wahab and T H Hong: VHDL Modeling and Simulation
Of The Back-Propagation Algorithm And Its Mapping To The Rm. Custom
Integrated Circuits Conference, 1993. Proceedings of the IEEE 1993. pag
3.3.1-3.3.4.
[Fig98] Marco A. Figueiredo: Implementation of a Probabilistic Neural Network for
Multi – spectral Image Classification on an FPGA Based Custom Computing
Machine. Neural Networks, 1998. Proceedings, Vth Brazilian Symposium
on.
[Gal05] Ramón, Galán; Curso Control Inteligente 2005, Laboratorio de Automática.
[email protected][Gav99] D.M. Gavrila, “Traffic Sign Recognition Revisited”. Proc. Of the 21st DAGM
Symposium für Mustererkennung, pp. 86-93, Springer Verlag, 1999.
[GB02] S. Gong and H. Buxton; Editorial: Understanding visual behaviour, Image
and Vision Computing Special Issue, Vol.20 No. 12, pages 825-826. October
2002.
[Guc01] Guccione, S. A. Reconfigurable Computing at Xilinx, Design, Automation
and Test in Europe. Conference and Exibition 2002. DATE 2002.
[GWX95] Dan Ghica, Si Wei Lu and Xiaobu Yuan, “Recognition of traffic signs by
artificial neural network”. IEEE International Conference on Neural
Networks, 1995.
[GW93] R.C. González, R.E. Woods. “Digital Image Processing”. Addison-Wesley
Publishing Company, 1993.
149
Referencias
[Ham90] Dan Hammerstrom: A VLSI Architecture for High – Performance, Low –
Cost, On – chip Learning. Submitted to IEEE. Neural Networks, 1990, IJCNN
International Joint Conference on. Pags. II- 537 – II-544.
[Hay94] Simon Haykin", Neural Network A Comprehensive Foundation, Macmillan
College Publishing Company, 1994.
[HDB96] Martin T. Hagan, Howard B. Demuth, Mark Beale, Neural Network Design ,
Thomsom Learning, 1996.
[Her96] Herve J-Y; Hand/eye coordination: role of the active observer; IEEE
Proceedings of the Pattern Recognition, 1996.
[Hik95] Hiroomi Hikawa: Implementation of Simplified Multilayer Neural
Networks with On–chip Learning. Submitted to IEEE 1995. Neural
Networks, 1995. Proceedings., IEEE International Conference on. Pag. 1633 –
1637.
[Hib96] T. Hibi, Vision based extraction and recognition of road sign region from
natural colour image, by using HSL and coordinates transformation. 29th
ISATA Int conf 1996, pp 201-206.
[HKTW00] U. Handmann, T. Kalinke, C. Tzomakas, M. Werner, A image processing
system for driver assistance. Image and Vision Computing 18, 2000, pp. 367-
376.
[KA95] N. Kehtarnavaz and A. Ahmad, “Traffic Sign Recognition in Noisy Outdoor
Scenes”. Intelligent Vehicles Symposium. 1995
[KF97] S.K. Kim, D.A. Forsyth, A new approach for road sign detection and
recognition algorithm 30th International Symposium on Automotive
Technology and Automation. Robotics, Motion and Machine Vision in the
Automotive Industries, 1997; p.171-8
[KFP95] Suthikshn Kumar, Kevin Forward and M. Palaniswami: A Fast – Multiplier
Generator for FPGAs. Pags 53- 56. IEEE. 8th International Conference on
VLSI Design, January 1995 .
[KGK] D.S. Kang, N.C. Griswold, N. Kehtarnavaz, An invariant traffic sign
recognition system based on sequential color processing and geometrical
transformation, Proceedings of the IEEE Southwest Symposium on Image
Analysis and Interpretation, 1994, pp.88-93
[Kog81] Peter M. Kogge; The Architecture of Pipelined Computers; McGraw-Hill
Book Company, 1981.
150
Referencias
[KYCW07] Tzu-Ping Kao, Chun-Chang Yu, Ting-Yu Chen, and Jeen-Shing Wang
Hardware Design of an Adaptive Neuro-fuzzy Network with On-Chip
Learning Capability. ISNN 2007, Part II, LNCS 4492, pp 336-345, 2007.
Springer-Verlag Berlin Heidelberg 2007.
[KZ85] R. E. Kronauer, Y. Zeevi: Reorganization and diversification of signal in
vision. IEEE Trans. Syst. Man, Cybern.,SMC-15.1, 91-101 (1985).
[Leo01] Guillermo Leone; Leyes de la Gestalt, http://www.guillermoleone.com.ar
[LH07] Laura Lanzarini, Waldo Haspervé; Redes Neuronales y Algoritmos
Evolutivos, 2007.
[email protected][Lip87] R. Lipmann. “An Introduction to Computing with Neural Nets”. IEEE ASSP
Magazine, Vol 3, 4-22. 1987
[LL05] Jihong Liu; Deqin Liang. A Survey of FPGA-Based Hardware
Implementation of ANNs, Neural Networks and Brain, 2005. ICNNB'05.
International Conference on, 13-15 Oct. 2005, volume 2, pages 915-918.
[LL95] M. Lalonde and Y. Li, “Detection of road signs using color indexing”. Centre
de Recherche Informatique de Montreal, QC, Canada, CRIM-IT-95/12-49,
1995.
[Lop01] Ignacio López. Visión por Singularidades. Autonomous Systems Laboratory
(ASLab), Universidad Poltécnica de Madrid (UPM), 2001. Internal
Publicaction.
[LPH93] R.C. Luo, H. Potlapalli, D. Hislop, Traffic sign recognition in outdoor
environments using reconfigurable neural networks, IJCNN '93-Nagoya.
Proceedings of 1993 International Joint Conference on Neural Networks,
1993, 1306-9 vol.2.
[LPH92a] R.C. Luo, H. Potlapalli, D. Hislop,. Neural Network based landmark
recognition for robot navigation. 1992 Int. Conf on industrial electronics
control instrumentation and automation pp 1084-1088.
[LPH92b] R.C. Luo, H. Potlapalli, D. Hislop, Translation and scale invariant landmark
recognition using receptive field neural networks, IEEE/RSJ Int Conf on
Intelligent Robots and Systems, 1992, pp. 527-533.
[Main02] Tomas Mainzer, “Genetic Algorithm For Traffic Sign Detection”. 2002
[MLS06] V. Moreno, A. Ledezma, A. Sanchis, A static images based-system for traffic
signs detection, Proceedings of the IASTED International Conference on
artificial intelligence and applications, 2006, pp 445-450.
151
Referencias
[Mor06] Miguel Morales Sandoval; Introducción a los FPGAs y el Cómputo
Reconfigurable; INAO 2006. ccc.inaoep.mx.
[PD85] [Pearl 1985] J. Pearl and R. Dechter, Generalized best-first search strategies
and the optimality of A*. Journal of the ACM, 32(3):505-536, July 1985.
[PJ96] D. Pommerleau, T. Jochem, Rapidly Adapting Machine Vision for
automated vehicle sterring, IEEE Expert vol 11 n2, 1996, pp 19-27
[Pla08] Carlos Platero; Introducción a la Visión Artificial, Dpto. Electrónica,
Automática e Informática Industrial, 2008. elai.upm.es
[PLR95] Lutz Priese, Raimund Lakmann, Volker Rehrmann, “Ideogram Identification
in a Realtime Traffic Sign Recognition System”. Intelligent Vehicles
Symposium. 1995
[PLR+05] M. Peña Cabrera; I. López Juárez, R. Rios Cabrera, J. Corona Castuera, and
R. Osorio, Mapping Visual Behavior to Robotic Assembly Tasks, Lecture
Notes in Computer Science. Book MICAI 2005: Advances in Artificial
Intelligence Pages 347-385., Springer Berlin
[PMPC96] G. Piccioli, E. de Micheli, P. Parodia, M. Campani, Robust method for road
sign detection and recognition. Image and Vision Computing. vol.14, no.3;
April 1996; p.209-23.
[PPOP99] B. Pino, F. J. Pelayo, J. Ortega, A. Prieto, Design and evaluation of a
reconfigurable digital architecture for self-organizing maps, Proceedings,
Int. Conf. Microelectronics for neural, fuzzy and bio-inspired system, 199, pp
395-402.
[RK94] Elaine Rich, Kevin Knight, Artificial Intelligence, 2nd edition, McGraw Hill.
1994.
[RLP95] Volker Rehrmann, Raimund Lakmann, Lutz Priese, “A parallel system for
real-time traffic sign recognition”.
[SG03] Janusz Starzyk and Yongtao Guo: Dynamically Self–Reconfigurable Machine
Learning Structure for FPGA Implementation. Submitted to IEEE.
[SGZ04] Janusz A. Starzyk, Yongtao Guo and Zhineng Zhu: Dynamically
Reconfigurable Neuron Architecture for the Implementation of Self –
Organizing Learning Array. Proc. Of the 18th International Parallel and
Distributed Processing Symposium (IPDPS’04).
[SSHB+99] Eduardo Sanchez, Moshe Sipper, Jacques-Olivier Haenni, Jean-Luc Beuchat,
André Stauffer, and Andrés Perez-Uribe. Static and Dynamic Configurable
Systems. IEEE Transactions on Computers, Vol 48. pages 556 – 564, 1999.
152
Referencias
[SZL05] Janusz A. Starzyk, Zhen Zhu and Tsun–Ho Liu: Selft–Organizing Learning
Array. IEEE Transactions on Neural Networks, Vol. 16, No. 2 March 2005.
[TH98] Y. Taright, M. Hubin, FPGA implementation of a multilayer perceptron
neural networks using vhdl, Proceedings Int. Conf. on Signal Processing
1998, Vol. 2. pp 1311-1314.
[TLV+04] Theocharides, T.; Link, G.; Vijaykrishnan, N.; Invin, M.J.; Srikantam, V, A
generic reconfigurable neural network architecture as a network on chip,
SOC Conference, 2004. Proceedings. IEEE International, 12-15 Sept. 2004,
pages 191-194.
[TN99] [Tetsuya Higuchi and Nobuki Kajihara, Evolvable hardware chips
for industrial applications, Commun. ACM, vol. 42, num. 4, 1999]
[TS94] Geoffrey G. Towell, Jude W. Shavlik: Knowledge- based artificial neural
networks, Artificial Intelligence Vol. /0, Issue 1-2, pp. 119-166. (1994).
[UH80] L.M. Uhr. Psychological motivation and underlying concepts. In S.L.
Tanimoto andA. Klinger, editors, Structured Computer Vision. Academic
Press, New York, NY, 1980.
[VGDS02] S. Vitabile, A. Gentile, G. B. Dammone, F. Sorbello: Multi – Layer Perceptron
Mapping on a SIMD Architecture. Pags. 667- 675. Neural Networks for
Signal Processing, 2002. Proceedings of the 2002 12th IEEE Workshop on.
[VS98] S. Vitabile, F. Sorbello, “Pictogram road signs detection and understanding
in outdoor scenes”. SPIE Conference on Enhanced and Synthetic Vision 1998
[VUB94] Eduardo do Valle Simões, Luis Felipe Uebel & Dante Augusto Barone: Fast
Prototyping of Artificial Neural Network: GSN Digital Implementation.
Submitted to IEEE 1994.
[XLDJ03] Ma Xiaobin; Jin Lianwen; Shen Dongsheng; Yin Junxun, A mixed parallel
neural networks computing unit implemented in FPGA, Neural Networks
and Signal Processing, 2003. Proceedings of the 2003 International
Conference on, 14-17 Dec. 2003, pages 324-327 Vol.1.
[Yao99] Yao, X. Following the Path of Evolvable Hardware. Communication of the
ACM. April 1999/Vol. 42, No.4, p. 47
[YKDL02] Seok Bae Yun; Young Joo Kim; Sung Soo Dong; Chong Ho Lee, Hardware
implementation of neural network with expansible and reconfigurable
architecture, Neural Information Processing, 2002. ICONIP '02. Proceedings
of the 9th International Conference on, 18-22 Nov. 2002, pages 970-975 vol.2.
153
Referencias
[YL97] Xin Yao; Yong Liu; A New Evolutionary System for Evolving Artificial
Neural Networks. IEEE Transactions on Neural Networks, Vol. 8, No. 3,
May 1997.
[ZS03] J. Zhu, P. Sutton, FPGA implementation of neural networks—a survey of a
decade of progress, Proceedings of the 13th International Conference on
Field Programmable Logic and Applications (FPL 2003), Lisbon, 2003, pp.
1062–1066.
154
155