[eng] Inspired by the way the brain processes information, artificial neural networks
(ANNs) were created with the aim of reproducing human capabilities in tasks that
are hard to solve using the classical algorithmic programming. The ANN paradigm
has been applied to numerous fields of science and engineering thanks to its ability to learn from examples, adaptation, parallelism and fault-tolerance. Reservoir
computing (RC), based on the use of a random recurrent neural network (RNN) as
processing core, is a powerful model that is highly suited to time-series processing.
Hardware realizations of ANNs are crucial to exploit the parallel properties of these
models, which favor higher speed and reliability. On the other hand, hardware neural
networks (HNNs) may offer appreciable advantages in terms of power consumption
and cost. Low-cost compact devices implementing HNNs are useful to support
or replace software in real-time applications, such as control, medical monitoring,
robotics and sensor networks. However, the hardware realization of ANNs with
large neuron counts, such as in RC, is a challenging task due to the large resource
requirement of the involved operations. Despite the potential benefits of hardware
digital circuits to perform RC-based neural processing, most implementations are
realized in software using sequential processors.
In this thesis, I propose and analyze several methodologies for the digital implementation of RC systems using limited hardware resources. The neural network
design is described in detail for both a conventional implementation and the diverse
alternative approaches. The advantages and shortcomings of the various techniques
regarding the accuracy, computation speed and required silicon area are discussed.
Finally, the proposed approaches are applied to solve different real-life engineering
problems.
[cat] Inspirades en la forma en què el cervell processa la informació, les xarxes neuronals artificials (XNA) es crearen amb l’objectiu de reproduir habilitats humanes
en tasques que són difícils de resoldre mitjançant la programació algorítmica clàssica.
El paradigma de les XNA s’ha aplicat a nombrosos camps de la ciència i enginyeria
gràcies a la seva capacitat d’aprendre dels exemples, l’adaptació, el paral·lelisme
i la tolerància a fallades. El reservoir computing (RC), basat en l’ús d’una xarxa
neuronal recurrent (XNR) aleatòria com a nucli de processament, és un model de
gran abast molt adequat per processar sèries temporals.
Les realitzacions en maquinari de les XNA són crucials per aprofitar les propietats
paral·leles d’aquests models, les quals afavoreixen una major velocitat i fiabilitat.
D’altra banda, les xarxes neuronals en maquinari (XNM) poden oferir avantatges
apreciables en termes de consum energètic i cost. Els dispositius compactes de baix
cost implementant XNM són útils per donar suport o reemplaçar el programari en
aplicacions en temps real, com ara de control, supervisió mèdica, robòtica i xarxes de
sensors. No obstant això, la realització en maquinari de XNA amb un nombre elevat
de neurones, com al cas de l’RC, és una tasca difícil a causa de la gran quantitat
de recursos exigits per les operacions involucrades. Tot i els possibles beneficis
dels circuits digitals en maquinari per realitzar un processament neuronal basat en
RC, la majoria d’implementacions es realitzen en programari usant processadors
convencionals.
En aquesta tesi, proposo i analitzo diverses metodologies per a la implementació
digital de sistemes RC fent ús d’un nombre limitat de recursos de maquinari. Els
dissenys de la xarxa neuronal es descriuen en detall tant per a una implementació
convencional com per als distints mètodes alternatius. Es discuteixen els avantatges
i inconvenients de les diferents tècniques pel que fa a l’exactitud, velocitat de càlcul
i àrea requerida. Finalment, les implementacions proposades s’apliquen a resoldre
diferents problemes pràctics d’enginyeria.
[spa] Inspiradas en la forma en que el cerebro procesa la información, las redes neuronales
artificiales (RNA) se crearon con el objetivo de reproducir habilidades humanas en
tareas que son difíciles de resolver utilizando la programación algorítmica clásica.
El paradigma de las RNA se ha aplicado a numerosos campos de la ciencia y la ingeniería gracias a su capacidad de aprender de ejemplos, la adaptación, el paralelismo
y la tolerancia a fallas. El reservoir computing (RC), basado en el uso de una red
neuronal recurrente (RNR) aleatoria como núcleo de procesamiento, es un modelo
de gran alcance muy adecuado para procesar series temporales.
Las realizaciones en hardware de las RNA son cruciales para aprovechar las propiedades
paralelas de estos modelos, las cuales favorecen una mayor velocidad y fiabilidad.
Por otro lado, las redes neuronales en hardware (RNH) pueden ofrecer ventajas
apreciables en términos de consumo energético y coste. Los dispositivos compactos
de bajo coste implementando RNH son útiles para apoyar o reemplazar al software
en aplicaciones en tiempo real, como el control, monitorización médica, robótica y
redes de sensores. Sin embargo, la realización en hardware de RNA con un número
elevado de neuronas, como en el caso del RC, es una tarea difícil debido a la gran
cantidad de recursos exigidos por las operaciones involucradas. A pesar de los posibles beneficios de los circuitos digitales en hardware para realizar un procesamiento
neuronal basado en RC, la mayoría de las implementaciones se realizan en software
mediante procesadores convencionales.
En esta tesis, propongo y analizo varias metodologías para la implementación digital
de sistemas RC utilizando un número limitado de recursos hardware. Los diseños de
la red neuronal se describen en detalle tanto para una implementación convencional
como para los distintos métodos alternativos. Se discuten las ventajas e inconvenientes de las diversas técnicas con respecto a la precisión, velocidad de cálculo y
área requerida. Finalmente, las implementaciones propuestas se aplican a resolver
diferentes problemas prácticos de ingeniería.