2 research outputs found

    Algoritmos de aprendizaje neurocomputacionales para su implementaci贸n hardware

    Get PDF
    Las redes de neuronas artificiales son un paradigma de aprendizaje y procesamiento autom谩tico inspirado en el funcionamiento del sistema nervioso, se emplean en toda tipo de aplicaciones, con lo que van apareciendo nuevas aplicaciones donde la utilizaci贸n de ordenadores no da una soluci贸n de manera. Los sistemas en tiempo real y las redes de sensores son dos de las tecnolog铆as m谩s extendidas donde la utilizaci贸n de modelos neurocomputacionales requiere un desarrollo en dispositivos y el empleo de t茅cnicas de programaci贸n diferente a las convencionales. En este tipo de aplicaciones otros dispositivos hardware como las FPGAs o microcontroladores son m谩s adecuados a la hora de la implementaci贸n de redes neuronales artificiales. Los sistemas en tiempo real est谩n sujetos a unas limitaciones temporales y la estructura de las FPGAs permite implementar este tipo de dise帽os debido a que se dise帽a el dispositivo a nivel hardware, consiguiendo unos tiempos de respuesta muy acotados, exigidos en una aplicaci贸n en tiempo real. En esta l铆nea de investigaci贸n existen dos posibles alternativas para este tipo de sistemas: (i) implementaciones espec铆ficas de algoritmos conocidos adaptados a los dispositivos hardware; (ii) implementaciones de nuevos algoritmos que se adapten mejor a este dispositivo. Otra tecnolog铆a muy importante es las redes de sensores inal谩mbricas, debido a los avances tecnol贸gicos registrados en la 煤ltima d茅cada sobre la capacidad de los microcontroladores usados en este tipo de aplicaciones. Una motivaci贸n de esta tesis es de dotar de inteligencia a las redes de sensores en este tipo de escenarios para proporcionar de una cierta l贸gica a la toma de decisiones Se busca alcanzar los siguientes objetivos: (i) analizar el algoritmo Backpropagation, desarrollando y evaluando diferentes t茅cnicas de optimizaci贸n para cada dispositivo; (ii) evaluar una alternativa al algoritmo Backpropagation para poder realizar una implementaci贸n hardware maximizando el uso de recursos; (iii) realizar una implementaci贸n hardware eficiente del algoritmo C-Mantec para evaluar su posible utilizaci贸n en aplicaciones de sistemas en tiempo real; y (iv) evaluar una implementaci贸n del algoritmo constructivo C-Mantec sobre microcontroladores para su utilizaci贸n en redes de sensores. Se implementa el algoritmo Backpropagation una FPGA y un microcontrolador. La implementaci贸n en FPGA se precisa dise帽ar con diferentes modificaciones, que se centran en introducir una nueva neurona ``Primera Capa'', incorporar la multiplexaci贸n por divisi贸n en el tiempo del bloque multiplicador, as铆 como tabular e interpolar los valores de la funci贸n sigmoidea, permitiendo un reducci贸n de recursos, en media, de un 25,8\% de celdas l贸gicas y un 50'3\% de bloques espec铆ficos. En el caso espec铆fico del microcontrolador la modificaci贸n del tipo de representaci贸n de los datos permite un incremento en la velocidad de c贸mputo de entre 8 a 18 veces m谩s r谩pido, adem谩s de una reducci贸n importante en la cantidad de memoria utilizada. La implementaci贸n ``on-chip'' del algoritmo C-Mantec ha sido realizada de forma espec铆fica para su implantaci贸n en una placa FPGA, haciendo un an谩lisis del tiempo de c贸mputo se observa una disminuci贸n del tiempo empleado en las implementaciones sobre FPGA en relaci贸n a las realizadas sobre PC. Esto es debido a que el tiempo de c贸mputo en un ordenador crece de forma exponencial y de manera lineal en una FPGA, dando lugar a implementaciones hasta 47 veces m谩s r谩pidas. La implementaci贸n hardware del algoritmo C-Mantec es un 15\% m谩s eficientes en recursos hardware utilizados en comparaci贸n a la del algoritmo Backpropagation, permitiendo mayor n煤mero de neuronas en la arquitectura. Para finalizar es importante mencionar que el tiempo de aprendizaje de las implementaciones FPGAs en ambos algoritmos es notablemente menor que el tiempo empleado por un PC, siendo la del C-Mantec sustancialmente inferior al del Backpropagation. Adem谩s el tiempo de ejecuci贸n del modelo es considerablemente inferior para el C-Mantec, lo que supone una ventaja en la fase de explotaci贸n del modelo. El algoritmo C-Mantec se ha implementado en la placa Arduino, para lo que se ha modificado el paradigma de representaci贸n de datos reduciendo considerablemente la memoria utilizada para el almacenamiento de variables y aumentando la velocidad de procesamiento, debido a que la unidad aritm茅tico l贸gica en este tipo de representaci贸n son m谩s simples. El algoritmo implementado se ha empleado como una red de sensor/actuador en tres casos de estudios con el fin de demostrar la eficiencia y la versatilidad de la aplicaci贸n resultante. Los tres casos de estudios seleccionados son problemas definidos en entornos cambiantes, y por lo tanto la toma de decisiones del sensor/actuador ha de adaptarse en consecuencia a los cambios observados, por lo que requieren una reconversi贸n del modelo de red neuronal que controla el proceso de decisi贸n. Los tiempos de reprogramaci贸n observados son significativamente bajos en los tres casos de estudio, siendo en consecuencia el consumo de energ铆a del dispositivo tambi茅n bastante peque帽o. Incluso sin una comparaci贸n exhaustiva con el caso tradicional en el que el nuevo c贸digo tiene que ser transmitido desde una unidad de control central, los resultados hacen evidente una reducci贸n en el gasto energ茅tico, cualidad muy importante en este tipo de tecnolog铆a debida a la corta duraci贸n de las bater铆as que lo alimentan. Como resultado, se ha demostrado la idoneidad del algoritmo C-Mantec para su aplicaci贸n en una tarea compleja utilizando un microcontrolador Arduino UNO. Hoy en d铆a, dada la existencia de dispositivos con mucho m谩s poder de c贸mputo y recursos que la placa considerada, el presente estudio permite confirmar la potencial aplicaci贸n del algoritmo propuesto en tareas reales que necesitan sensores/actuadores. Las futuras l铆neas de investigaci贸n pueden ser muy variadas, algunas de los iniciados son evolucionar la implementaci贸n hardware del algoritmo Backpropagation; o analizar la posibilidad de emplear las FPGAs como aceleradoras hardware para simulaciones de sistemas complejos. Adem谩s de estudiar otros modelos computacionales con otras reglas de; o analizar la posibilidad de aplicar los sistemas neurocomputacionales en tiempo real en tareas complejas

    Implementation of the C-Mantec Neural Network Constructive Algorithm in an Arduino Uno Microcontroller

    No full text
    corecore