Realizaci´on FPGA de una Red
Neuronal Artificial para
Reproducir Comportamiento
Ca´otico
por
Ana Dalia Pano Azucena
Tesis sometida como requisito parcial para obtener el grado de
Maestro en Ciencias en el ´Area de Electr´onicaen el Instituto
Nacional de Astrof´ısica, ´Optica y Electr´onica
Supervisada por:
Dr. Esteban Tlelo Cuautle, INAOE
Dr. Carlos S´anchez-L´opez, UATx
c
INAOE 2015
El autor otorga al INAOE el permiso de reproducir y distribuir copias en su totalidad o en partes de esta tesis
Realizaci´
on FPGA de una Red Neuronal Artificial
para Reproducir Comportamiento Ca´
otico
Tesis de Maestr´ıa
Por:
Ana Dalia Pano Azucena
Asesores:
Dr. Esteban Tlelo Cuautle
Dr. Carlos S´anchez L´opez
Instituto Nacional de Astrof´ısica ´Optica y Electr´onica Coordinaci´on de Electr´onica
A mis padres, Severiano Pano Xochimitl y Antolina Azucena Coyotecatl
Agradecimientos
A mi familia por su apoyo incondicional.
A mi asesor, el Dr. Esteban Tlelo Cuautle por sus consejos, ense˜nanzas, apoyo, paciencia y motivaci´on incondicional, por sus valiosos aportes e inter´es en el desarrollo de este trabajo.
Un agradecimiento muy especial al Dr. Carlos S´anchez L´opez y al Dr. Jos´e de Jes´us de Rangel Magdaleno, por sus consejos, ense˜nanzas, paciencia y disponibilidad durante el proceso de este trabajo de investigaci´on.
A mis sinodales: Dr. Alejandro D´ıaz S´anchez, Dr. Luis Hern´andez Mart´ınez, Dr. Jos´e de Jes´us Rangel Magdaleno, por sus valiosos comentarios que permitieron mejo-rar este escrito.
A mis amigos que me han brindado su amistad sincera y que durante estos a˜nos han compartido sus conocimientos acad´emicos.
Tambi´en quiero agradecer al INAOE (Instituto Nacional de Astrof´ısica, ´Optica y Electr´onica) por las facilidades otorgadas.
Al CONACyT por el apoyo brindado mediante la beca 290817 para realizar mis estudios de maestr´ıa.
Resumen
Existe una gran cantidad de fen´omenos naturales que presentan un comportamien-to ca´otico. En ingenier´ıa, los sistemas ca´oticos son un campo de investigaci´on muy atractivo que involucra la generaci´on de nuevos modelos, la realizaci´on con distintos circuitos electr´onicos, etc. Un sistema ca´otico presenta un comportamiento aleatorio, debido a su din´amica impredecible y sensibilidad a las condiciones iniciales, lo cual hace dif´ıcil reproducir el comportamiento de estos sistemas.
El objetivo de esta tesis es la realizaci´on de una red neuronal artificial (RNA) en un FPGA para reproducir series de tiempo obtenidas a partir de osciladores ca´oticos. Las RNAs tienen la capacidad de aprender de la experiencia y modificarse de acuerdo con los cambios de su entorno, son usadas para resolver problemas de gran complejidad, y pueden ajustar desde el m´as simple hasta el m´as complejo patr´on dependiendo de la naturaleza y complejidad del problema abordado.
En este trabajo se presentan 2 topolog´ıas de RNAs basadas en la regla de la pir´amide geom´etrica y una topolog´ıa propuesta por (Sprott, 2014). Se presentan ex-perimentos para determinar aquella RNA que presenta un mejor comportamiento. Finalmente, se presenta la implementaci´on en FPGA de la RNA seleccionada, para reproducir una serie de tiempo ca´otica.
Abstract
There are a large number of natural phenomena that exhibit a chaotic behavior. In Engineering, the chaotic systems are attractive research fields that involve the generation of new models, the realization with different electronic circuits, etc. A chaotic system exhibits a random behavior, because of its unpredictable dynamics and sensitivity to initial conditions, which make it hard reproduce the behavior of these systems.
The main objective of this thesis is the experimental realization of an artificial neural network (ANN) on an FPGA to reproduce time series which are obtained from chaotic oscillators.
The ANNs have the ability to learn from experience and they can be modified according to their environment changes, they are used to solve complex problems and they can be adjusted from the simplest to the most complex pattern, depending on the nature and complexity of the problem addressed.
In this work, 2 ANNs topologies based on the pyramid geometric rule and an ANN topology given by (Sprott, 2014) are presented. Experiments are presented to determine the RNA topology that exhibit a better performance. Finally, the FPGA implementation of the selected RNA is presented, to reproduce a chaotic time series.
Tabla de Contenido
Agradecimientos III
Resumen V
Abstract VII
Lista de Figuras XIII
Lista de Tablas XVII
Lista de Acr´onimos XIX
1. Introducci´on 1
1.1. Planteamiento del problema . . . 2
1.2. Objetivos . . . 3
1.2.1. Objetivo general . . . 3
1.2.2. Objetivos espec´ıficos . . . 3
1.3. Organizaci´on de la tesis . . . 4
2. Series de tiempo ca´oticas 5 2.1. Serie de tiempo . . . 6
2.2. Series de tiempo ca´oticas . . . 7
2.2.1. Oscilador ca´otico de dos enrollamientos . . . 7
2.3. Exponente de Lyapunov . . . 9
2.3.1. Oscilador ca´otico de dos enrollamientos con exponente de Lya-punov positivo . . . 11
3. Realizaci´on en hardware de un oscilador ca´otico 15
3.1. Descripci´on VHDL del oscilador ca´otico basado en SNLF . . . 17
3.2. Multiplicadores de una sola constante . . . 19
3.3. Realizaci´on en FPGA . . . 20
3.4. Resultados experimentales . . . 21
3.5. Resumen del cap´ıtulo . . . 23
4. Redes neuronales artificiales 25 4.1. Fundamentos biol´ogicos de las RNAs . . . 25
4.2. Modelo neuronal y estructura funcional . . . 26
4.3. Funci´on de activaci´on . . . 28
4.4. Concepto de entrenamiento y revisi´on de datos . . . 30
4.4.1. Aprendizaje no-supervisado . . . 31
4.4.2. Aprendizaje supervisado . . . 31
4.5. Dise˜no de una RNA . . . 32
4.5.1. Regla de la pir´amide geom´etrica . . . 34
4.5.2. Red neuronal de 6 capas . . . 35
4.6. T´ecnicas de actualizaci´on de pesos . . . 37
4.6.1. Actualizaci´on de pesos en modo incremental . . . 37
4.6.2. Actualizaci´on de pesos en modo por lotes . . . 42
4.7. Algoritmos de entrenamiento . . . 42
4.7.1. Gradiente descendiente con momento . . . 43
4.8. Resumen del cap´ıtulo . . . 45
5. Reproducci´on de una serie de tiempo ca´otica usando RNAs 47 5.1. Comparaci´on entre 3 distintas topolog´ıas de RNAs . . . 49
5.2. Resultados obtenidos empleando diferentes lineas de retardo . . . 53
5.3. Resultados obtenidos empleando las t´ecnicas de actualizaci´on de pesos: incremental y por lotes . . . 55
5.4. Modificaci´on de la funci´on de activaci´on de la ´ultima capa de la RNA 56 5.4.1. Funci´on de activaci´on del tipo tangente hiperb´olica en la ´ultima capa de la RNA . . . 58
5.4.2. Funci´on de activaci´on del tipo lineal en la ´ultima capa de la RNA 59 5.5. Reconstrucci´on de series de tiempo con distintos EL . . . 62
6. Realizaci´on en FPGA de una RNA 67
6.1. Realizaci´on en FPGA de la funci´on de activaci´on tangente hiperb´olica 67
6.2. S´ıntesis en hardware de la RNA de 6 capas . . . 69
6.2.1. S´ıntesis en FPGA de la primera capa . . . 70
6.2.2. S´ıntesis en FPGA para la segunda capa . . . 72
6.2.3. S´ıntesis en FPGA para la tercera capa . . . 72
6.2.4. S´ıntesis en FPGA para la cuarta capa . . . 74
6.2.5. S´ıntesis en FPGA para la quinta capa . . . 75
6.2.6. S´ıntesis en FPGA para la sexta capa . . . 76
6.3. Transmisi´on de datos de entrada empleando comunicaci´on serial . . . 77
6.4. Resultados experimentales . . . 80
6.5. Resumen del cap´ıtulo . . . 82
7. Conclusiones y trabajo futuro 83 7.1. Conclusiones . . . 83
7.2. Trabajos a futuro . . . 84
Ap´endices 85
A. Resultados de las simulaciones 87
B. Publicaciones 91
Lista de Figuras
2.1. Celda b´asica de la SNLF de 3 segmentos . . . 8 2.2. Formas de onda ca´oticas de dos enrrollamientos. (a)x vsy en el plano
de fase; serie temporal ca´otica de la variable: (b)x, (c) y, (d) z . . . . 10
2.3. Formas de onda ca´oticas de dos enrrollamientos con EL=0.3761. (a) x
vs y en el plano de fase; serie temporal ca´otica de la variable: (b) x, (c) y, (d) z. . . 12 2.4. Formas de onda ca´oticas de dos enrrollamientos con EL=0.3425. (a) x
vs y en el plano de fase; serie temporal ca´otica de la variable: (b) x, (c) y, (d) z. . . 13
3.1. Representaci´on num´erica utilizada en la aritm´etica digital [2] . . . 16 3.2. Bloques b´asicos de construcci´on: (a) multiplicador y (b) sumador . . 17
3.3. Bloque comparador . . . 17
3.4. S´ıntesis de zn+1 . . . 18 3.5. S´ıntesis de xn+1 y yn+1 . . . 18 3.6. Esquema general del oscilador ca´otico, IC=condiciones iniciales . . . 19
3.7. Multiplicaci´on por 7110 usando 3 sumadores . . . 20 3.8. Diagrama de SCMs. (a) multiplicaci´on por 0.0110, (b) multiplicaci´on
por 0.710, (c) multiplicaci´on por −0.710 . . . 21
3.9. S´ıntesis de zn+1,h= ∆t . . . 21
3.10. S´ıntesis de xn+1 y yn+1,h = ∆t . . . 22
3.11. Resultados experimentales del oscilador ca´otico de 2 enrollamientos. (a) plano de fase, (b) CH1=Se˜nal x, CH2=se˜nal y . . . 23
4.1. Estructura funcional de una neurona biol´ogica . . . 25
4.3. Problemas de sub-ajuste y sobre-ajuste . . . 33
4.4. RNA de 3 capas . . . 34
4.5. RNA de 4 capas . . . 35
4.6. Estructura de la RNA propuesta en [1] . . . 36
4.7. Distribuci´on del error de diferentes elementos . . . 38
4.8. Error asociado a una neurona . . . 38
4.9. Ejemplo de entrenamiento de una RNA de [2×3×2] . . . 39
4.10. Actualizaci´on de pesos en modo por lotes . . . 43
4.11. Superficie de error simple . . . 43
4.12. Efectos en la trayectoria: (a) con momento, (b) sin momento . . . 44
5.1. Resultados experimentales del oscilador ca´otico de 2 enrollamientos. (a) datos experimentales, (b) aplicando el filtrosgolayf ilt . . . 48
5.2. Datos experimentales de la variable x: (a) datos sin normalizar y (b) datos normalizados . . . 49
5.3. Promedio del n´umero de epoch empleando datos: (a) simulados y (b) experimentales . . . 51
5.4. Promedio del tiempo de entrenamiento empleando datos: (a) simulados y (b) experimentales . . . 52
5.5. Promedio del MSE obtenido empleando datos: (a) simulados y (b) experimentales . . . 53
5.6. Variaci´on de TDL para la RNA de 6 capas . . . 54
5.7. Tiempo de entrenamiento, actualizaci´on de pesos en modo: (a) incre-mental y (b) por lotes . . . 56
5.8. MSE obtenido, actualizaci´on de pesos en modo: (a) incremental y (b) por lotes . . . 57
5.9. Predicci´on de la variable x empleandoLR = 0.6,M C = 0.9 ya=b = c = d1 = 0.7. (a) entrenamiento incremental, (b) entrenamiento por lotes . . . 57
5.10. Frecuencia de convergencia de error usando h= 0.01 . . . 58
5.11. Valores de LR y M C con mejor desempe˜no . . . 60
5.12. Frecuencia de convergencia de error utilizando h= 0.1 . . . 60
5.13. Valores de LR y M C con mejor desempe˜no, se emplea h = 0.1 y una funci´on de activaci´on del tipo lineal en la neurona de la ´ultima capa . 61
5.14. Disminuci´on del n´umero de ´epocas modificando la funci´on de activaci´on
de la ultima capa . . . 61
5.15. Respuesta del n´umero de epoch para cada RNA . . . 63
5.16. Respuesta del tiempo empleado para cada RNA . . . 64
5.17. Respuesta del MSE para cada RNA . . . 64
5.18. Respuesta del tiempo . . . 65
5.19. Respuesta de MSE . . . 65
6.1. Respuesta: aproximaci´on polinomial de la funci´on tangente hiperb´olica 69 6.2. Comparaci´on m´etodos de aproximaci´on . . . 70
6.3. S´ıntesis de la funci´on Kwan . . . 71
6.4. S´ıntesis: neurona de la primera capa . . . 72
6.5. S´ıntesis: neurona de la segunda capa . . . 73
6.6. S´ıntesis: neurona de la tercera capa . . . 74
6.7. S´ıntesis: neurona de la cuarta capa . . . 75
6.8. S´ıntesis: neurona de la quinta capa . . . 76
6.9. S´ıntesis: neurona de la ultima capa . . . 77
6.10. S´ıntesis de la RNA . . . 78
6.11. Formas de onda: comunicaci´on serial . . . 78
6.12. S´ıntesis de la transmisi´on serial. (a) bloque Rx y (b) bloque Tx . . . 79
6.13. S´ıntesis de la RNA . . . 80
6.14. Diagrama a bloques general: recepci´on y transmisi´on de datos . . . . 81
Lista de Tablas
2.1. Valores de los coeficientesa,b, cy d1 . . . 11
3.1. Distribuci´on de la palabra de 26 bits . . . 16
3.2. Especificaciones de la tarjeta Altera Cyclone IV GX FPGA DE2i-150 22 3.3. Reporte final usando FE para un oscilador de 2 enrollamientos . . . . 22
4.1. Ventajas y desventajas del uso de las RNAs . . . 27
4.2. Algoritmos de aprendizaje no-supervisado [3] . . . 31
4.3. Algoritmos de aprendizaje supervisado [3] . . . 32
4.4. Valores iniciales aleatorios asignados a los diferentes pesos . . . 39
4.5. Algoritmos de entrenamiento . . . 44
5.1. Promedio de los resultados obtenidos empleando datos de simulaci´on 50 5.2. Promedio de los resultados obtenidos empleando datos experimentales 50 5.3. Valores de TDL con mejor desempe˜no, LR= 0.7 yM C = 0.9 . . . . 55
5.4. Resultados obtenidos del algoritmo gradiente descendiente con momen-to con h=0.1, empleando en momen-todas las neuronas la funci´on de activaci´on del tipo tangente hiperb´olica . . . 59
5.5. Resultados obtenidos del algoritmo gradiente descendiente con momen-to con h=0.1, empleando en la neurona de la ´ultima capa una funci´on de activaci´on del tipo lineal . . . 62
5.6. Promedio de los resultados obtenidos empleando datos experimentales y EL=0.3761 . . . 63
6.1. Coeficientes del polinomio n: axn+bxn−1, ..., cx0 . . . . 68
6.2. Valores de pesos y polarizaciones para la primera capa . . . 72
6.4. Valores de pesos y polarizaciones para la tercera capa . . . 74 6.5. Valores de pesos y polarizaciones para la cuarta capa . . . 75 6.6. Valores de pesos y polarizaciones para la quinta capa . . . 76 6.7. Valores de pesos y polarizaciones para la ultima capa . . . 77 6.8. Datos: Altera Cyclone IV GX FPGA DE2i-150 . . . 79 6.9. Reporte final: dise˜no en hardware de la RNA . . . 81
A.1. Ejemplo de datos obtenidos de las simulaciones empleando en la ´ultima capa una funci´on de activaci´on del tipo tangente hiperb´olica y h=0.01 87 A.2. Resultados obtenidos del algoritmo gradiente descendiente con
momen-to con h=0.01, empleando en momen-todas las neuronas la funci´on de activa-ci´on del tipo tangente hiperb´olica . . . 88 A.3. Ejemplo de datos obtenidos de las simulaciones empleando en la ´ultima
capa una funci´on de activaci´on del tipo tangente hiperb´olica y h=0.1 88 A.4. Ejemplo de datos obtenidos de las simulaciones empleando en la ´ultima
Lista de Acr´
onimos
RNA Red neuronal artificial
SNLF Funciones no-lineales saturadas
NARNET Red neuronal auto-regresiva no-lineal
FPGA Arreglo de compuertas l´ogicas programables en el campo
SCM Multiplicaci´on de una sola constante
Fmax Frecuencia m´axima
PWL Aproximaci´on lineal a tramos
VHDL Lenguaje de descripci´on de hardware de circuitos integrados de muy
alta velocidad
MSE Error cuadr´atico medio
TDL Vector de l´ınea de retardo
Tansig Funci´on de activaci´on tangente hiperb´olica
Purelin Funci´on de activaci´on lineal
LR Rango de aprendizaje
MC Constante de momento
RK Runge Kutta
EL Exponente de Lyapunov
MEL M´aximo exponente de Lyapunov
Cap´ıtulo 1
Introducci´
on
Un sistema ca´otico puede ser descrito como aquel que presenta un comportamiento din´amico, sensible a las condiciones iniciales y determinista; su comportamiento puede ser modelado por un conjunto de ecuaciones sujetas a condiciones iniciales, generando formas de onda aleatorias en el dominio del tiempo [4]. Estas caracter´ısticas hacen que sea muy dif´ıcil predecir su comportamiento. Por otra parte, para caracterizar y/o predecir el comportamiento de cualquier forma de onda aleatoria y/o peri´odica a partir de datos experimentales, instrumentos de medici´on son usados para adquirir los datos. Sin embargo, existir´a un error debido a la precisi´on en la lectura de datos. Estos errores aunque sean peque˜nos, alteran significativamente la capacidad de estimar las condiciones futuras asociadas con una trayectoria ca´otica [5].
Debido a que muchos fen´omenos naturales presentan un comportamiento ca´ oti-co, diversas ´areas de la ciencia como: la medicina, biolog´ıa, econom´ıa y el campo de las comunicaciones, presentan un gran inter´es en la predicci´on de series de tiempo ca´oticas. En este contexto, las RNAs han sido usadas no solamente para el an´alisis y procesamiento de se˜nales m´edicas, detecci´on de sistemas de comunicaci´on inal´ ambri-cos o reconocimiento de patrones, sino tambi´en en la predicci´on de se˜nales variantes en el tiempo con un alto grado de impredicibilidad. Como un ejemplo, en [6, 7], se ha demostrado que una RNA es capaz de aproximar el comportamiento de un sistema din´amico con un nivel bajo de error, ya que tiene la capacidad de auto-ajustarse con su entorno.
Una RNA, b´asicamente, esta compuesta por una capa de neuronas de entrada, una capa de neuronas de salida, capas de neuronas ocultas o intermedias y los pe-sos asociados a las interconexiones entre las neuronas de cada capa de neuronas. El n´umero de neuronas de la capa de entrada depende del tama˜no del vector de datos de entrada y el n´umero de neuronas en la capa de salida depende del n´umero de
objetivos. Sin embargo, el n´umero de capas ocultas y neuronas asociados a cada capa no esta claramente definido y, a menudo, depende del problema a resolver. En este sentido, un gran n´umero de investigadores han propuesto diversas metodolog´ıas para fijar el n´umero de neuronas ocultas. En [8] se muestra de manera cronol´ogica diversos m´etodos para calcular el n´umero de neuronas ocultas en una RNA. Sin embargo, la mayor´ıa de estos m´etodos fueron propuestos dependiendo de la complejidad del problema a resolver. Una metodolog´ıa que permite una buena aproximaci´on para la elecci´on del n´umero de neuronas ocultas es la regla de la pir´amide geom´etrica, don-de el n´umero de neuronas sigue una forma piramidal teniendo una disminuci´on del n´umero de neuronas de la entrada a la salida, es decir, el n´umero de neuronas en la capa oculta debe ser menor al n´umero de neuronas de la entrada [9]. Con respecto al entrenamiento de una RNA, los factores m´as importantes a considerar son: algoritmo de aprendizaje y funci´on de activaci´on asociado a cada neurona.
1.1.
Planteamiento del problema
En la naturaleza, existen muchos fen´omenos que presentan un comportamiento ca´otico. B´asicamente, cada fen´omeno se observa a trav´es de una forma de onda ca´otica y se representa por una serie de tiempo. Las series de tiempo generadas por un sistema ca´otico son sensibles a las condiciones iniciales, una peque˜na perturbaci´on altera de manera significativa al sistema, por lo tanto, la dificultad para poder estimar valores futuros de la serie de tiempo incrementa.
En la literatura existen varios m´etodos para predecir una serie de tiempo ca´ oti-ca, como algoritmos gen´eticos, m´etodos basados en inteligencia computacional, etc. Por ejemplo, se han utilizado algoritmos basados en una biblioteca de patrones que contiene datos pasados de una serie de tiempo, esto para determinar si algunas enfer-medades tienen incidencia ca´otica [10, 11]. No obstante, en la mayor´ıa de los casos, no existe suficiente informaci´on que pueda ayudar a la predicci´on, por lo tanto, el uso de una serie de tiempo permite modelar el comportamiento de estos sistemas e inferir en su comportamiento.
Se ha demostrado que las RNAs pueden representar cualquier funci´on no lineal con una alta precisi´on [12]. Sin embargo, no existe una formula que permita seleccionar un n´umero ´optimo de capas y neuronas que constituyan a una RNA, por lo que el dise˜nador debe de enfrentar una serie de obst´aculos para lograr una topolog´ıa de red
capaz de resolver un problema en particular.
El dise˜no de RNAs se divide en dos categor´ıas: software y hardware [13]. En un software ad hoc se entrena y simula una RNA en ordenadores secuenciales para emular su comportamiento con una flexibilidad inherente. Por otro lado, el dise˜no en hardware permite verificar el funcionamiento de una RNA y aprovechar el paralelismo del hardware. La realizaci´on VHDL de una RNA proporciona una alta velocidad en aplicaciones en tiempo real [13]. No obstante, este tipo de aplicaciones carece de flexibilidad para la modificaci´on estructural y representan un costo alto de recursos. Numerosas investigaciones hacen uso de FPGAs para el dise˜no de RNAs debido a que [13]:
Proporcionan una amplia gama de compuertas l´ogicas.
Tiene paralelismo en su naturaleza. Por lo tanto, el dise˜no l´ogico trabaja en paralelo.
Existen una amplia gama de herramientas de dise˜no, programaci´on y s´ıntesis.
1.2.
Objetivos
1.2.1.
Objetivo general
El objetivo principal de esta tesis es la realizaci´on FPGA de una RNA capaz de reproducir una serie temporal ca´otica.
1.2.2.
Objetivos espec´ıficos
Obtener una serie de tiempo ca´otica a partir de un sistema din´amico no-lineal basado en SNLF.
Dise˜nar y simular en MATLAB, una RNA del tipofeed-forward para reproducir comportamiento ca´otico.
1.3.
Organizaci´
on de la tesis
En el capitulo 2 se presenta una breve descripci´on acerca de series de tiempo. Se describe el modelo matem´atico de osciladores ca´oticos de dos enrollamientos basados en SNLF y utilizando una aproximaci´on PWL. Finalmente se muestran los resultados de la simulaci´on n´umerica realizadas en el software MATLAB.
En el capitulo 3 se presenta la s´ıntesis en hardware de osciladores ca´oticos basado en SNLF empleando el m´etodo de integraci´on n´umerica FE. Se muestra el dise˜no utilizando dos tipos de multiplicadores: multiplicadores de dos variables y multipli-cadores de una sola constante. Se describen resultados experimentales y los recursos utilizados.
En el capitulo 4 se presenta una breve introducci´on acerca de las RNAs, los fun-damentos biol´ogicos que inspiraron al desarrollo de estas, el modelo neuronal y su estructura funcional, as´ı como los tipos de funciones de activaci´on utilizadas para su desarrollo. Se describe brevemente el concepto de aprendizaje supervisado y no supervisado, adem´as de dos t´ecnicas de actualizaci´on de pesos y algunos algoritmos de entrenamiento disponibles en MATLAB.
En el capitulo 5 se describe una metodolog´ıa para reconstruir una serie de tiempo ca´otica obtenida a partir de un oscilador ca´oticos de 2 enrollamientos. Comparaciones entre 3 topolog´ıas de RNAs son introducidas, donde 2 de ellas se obtuvieron a partir de la regla de la pir´amide geom´etrica.
En el capitulo 6 se presenta la s´ıntesis en hardware de la RNA de 6 capas. Se presentan 2 m´etodos para la s´ıntesis en hardware de la funci´on de activaci´on tangente hiperb´olica: aproximaci´on polinomial y aproximaci´on mediante PWL. Se muestra la s´ıntesis de la interfaz serial que alimenta a la RNA. Finalmente, se muestran los resultados obtenidos al reconstruir una serie de tiempo ca´otica.
Finalmente, en el capitulo 7 se presentan las conclusiones m´as importantes res-pecto a los resultados obtenidos en este trabajo y los posibles trabajos futuros.
Cap´ıtulo 2
Series de tiempo ca´
oticas
El comportamiento de un proceso biol´ogico, econ´omico, f´ısico o qu´ımico puede ser descrito por una serie de tiempo. Esta serie representa una medida cuantitativa de una variable f´ısicaxtregistrado en un tiempot, el cual es discreto [14]. En su mayor´ıa,
estas observaciones se realizan a intervalos de tiempo equidistantes discretos, donde la predicci´on de valores futuros de una serie de tiempo puede llevarse a cabo utilizando los valores pasados de la variable en estudio. El an´alisis de las series de tiempo proveen una descripci´on compacta de datos observados, los cuales pueden ser usados para modelar o predecir los valores futuros y ayuda a determinar el comportamiento de las series de tiempo [14]. Las principales caracter´ısticas que definen a una serie de tiempo son [15]:
1.- Comportamiento estacionario. Una serie de tiempo es estacionaria cuando su media y desviaci´on est´andar permanecen constantes a trav´es del tiempo.
2.- Estacionalidad. Se refiere a un patr´on de fluctuaci´on peri´odica de la serie de tiempo. La estacionalidad puede ser descrita mediante:
f(x) = f(x+d) + (2.0.1)
donde d representa el periodo de repetici´on del patr´on, f(.) una funci´on arbi-traria y representa el ruido blanco [15].
3.- Linealidad. En el modelado de sistemas no lineales, se requiere que el m´etodo de predicci´on sea no lineal, debido a que los m´etodos lineales no son apropiados para desvelar las complejas dependencias de la serie [16, 15].
4.- Determinismo y aleatoriedad. Un sistema determinista es considerado ca´otico cuando su trayectoria en el plano de fase es sensible y dependiente a las condi-ciones iniciales, por lo que una serie de tiempo ca´otica es impredecible a largo plazo [17, 15].
En t´erminos formales, una serie de tiempo es una secuencia de vectores depen-dientes del tiempot [18].
y(t), t = 0,1,2, ... (2.0.2)
Las series de tiempo se pueden clasificar de 2 formas [19]:
1.- Estacionarias.Una serie de tiempo es estacionaria cuando es estable a lo largo
del tiempo, es decir, la media y varianza son constantes en el tiempo. Los valores de la serie tienden a oscilar alrededor de una media constante y la variabilidad con respecto a esa media tambi´en permanece constante en el tiempo
2.- No estacionarias.La tendencia o variabilidad cambian en el tiempo. Los
cam-bios en la media determinan una tendencia a crecer o decrecer a largo plazo, por lo que la serie no oscila alrededor de un valor constante.
2.1.
Serie de tiempo
Una t´ecnica que permite hacer conjeturas sobre el futuro en base a lo ocurrido en el pasado es el an´alisis de las series de tiempo. El an´alisis se realiza usando un modelo cl´asico expresado como la suma o producto de tres componentes: tendencia, estacional y aleatorio. Existen tres modelos para denotar una serie de tiempo que son: aditivo, multiplicativo y mixto descritos como:
Xt = Tt+Et+It (2.1.1)
Xt = Tt·Et·It (2.1.2)
Xt = Tt·Et+It (2.1.3)
dondeXtes la serie observada en el instantet,Ttes la tendencia,Etes la componente
estacional y It es la componente aleatoria. En [19] se realiza una descripci´on de cada
Componente tendencia. Se define como un cambio a largo plazo de la media. Se identifica con un movimiento suave de la serie a largo plazo.
Componente estacional. Existen muchas series de tiempo que presentan cierta periodicidad, es decir variaci´on de cierto periodo.
Componente aleatoria. No responde a ning´un patr´on de comportamiento, es el resultado de factores aleatorios que inciden de forma aislada a una serie de tiempo.
2.2.
Series de tiempo ca´
oticas
2.2.1.
Oscilador ca´
otico de dos enrollamientos
Un oscilador de m´ultiples enrollamientos puede ser descrito a partir del siguiente conjunto de ecuaciones:
˙
x=y
˙
y=z (2.2.1)
˙
z =−ax−by−cz+d1f(x;α, k, h, p, q)
dondex, y, z son las variables de estado;a, b, cy d1 son coeficientes reales positivos igual a 0.7. Note que para obtener un comportamiento ca´otico, el valor num´erico de
a, b, cy d1 esta en el intervalo [0,1].
El comportamiento de la SNLF se aproxima por una funci´on PWL la cual esta determinada con respecto al n´umero de enrollamientos a generar, es decir, a medida que el n´umero de enrollamientos aumenta, el n´umero de pendientes y niveles de satu-raci´on tambi´en incrementa. Para el caso de un oscilador ca´otico de dos enrollamientos, la funci´on PWL se representa por:
f(x;α, k, h, p, q) =
p
X
i=−p
fi(x;h, k) (2.2.2)
donde α corresponde a los puntos de quiebre, k = 1 es el nivel de saturaci´on, h son los desplazamientos de las pendientes yp, q el nivel m´aximo alcanzado por el nivel de
saturaci´on. En la figura 2.1 se observa la celda b´asica de la SNLF, la cual es descrita por:
Figura 2.1: Celda b´asica de la SNLF de 3 segmentos
f(x) =
k x < α
s(x) −α≤x≤α
−k x <−α
(2.2.3)
donde k = 1 es el nivel de saturaci´on, α = 16.5× 10−3 el punto de quiebre del nivel de saturaci´on y s(x) = 60.606 la pendiente. Para generar osciladores ca´oticos de m´ultiples enrollamientos se emplea la siguiente terminolog´ıa:
plateau =±nk (2.2.4)
Con el objetivo de generar enrollamientos pares, n toma valores impares y, para generar enrollamientos impares,ntoma valores pares. La soluci´on del sistema de ecua-ciones descrito por (2.2.1), se puede realizar a trav´es de diversos m´etodos num´ericos como: FE y RK. Estos m´etodos aproximan la soluci´on del sistema ca´otico basado en SNLF a partir del uso de condiciones iniciales. En esta tesis se hace uso del m´etodo de integraci´on num´erico FE descrito por:
yn+1 =yn+ ∆tf(xn, yn) (2.2.5)
donde ∆t = 0.01 es el tama˜no de paso.
A continuaci´on se muestra el c´odigo de MATLAB para simular el oscilador ca´otico de 2 enrollamientos, el cual es obtenido a partir de (2.2.1), (2.2.3) y (2.2.5). Como se puede observar, la obtenci´on de la SNLF se realiza mediante 3 condiciones que describen a cada una de las pendientes que conforman a la SNLF descrita en (2.2.3).
En este casoxn, yn,zn corresponden al valor de las condiciones iniciales,a =b =c=
d1 = 0.7 son las constantes, ∆t el tama˜no de paso,mel valor de las pendientes yαlos
puntos de quiebre. En caso de generar un oscilador ca´otico de m´ultiples enrollamientos el n´umero de condiciones que describen a la SNLF incrementar´a.
Pseudo C´odigo 1. Funci´on de un oscilador ca´otico de dos enrollamientos
1:function(xn+1, yn+1, zn+1)= two scrolls (xn, yn, zn)
2: xn+1 =xn+ ∆t∗(yn);
3: yn+1 = yn+ ∆t∗(zn);
4: if xn> α
5: zn+1=zn+ ∆t∗(−a∗xn−b∗yn−c∗zn+d1∗k);
6: elseif xn>=−α & x0 <=α
7: zn+1=zn+ ∆t∗(−a∗xn−b∗yn−c∗zn+d1∗m);
8: elseif xn<−α
9: zn+1=zn+ ∆t∗(−a∗xn−b∗yn−c∗zn−d1∗k);
10: end
11: end
En la figura 2.2 se muestran los resultados num´ericos de un oscilador ca´otico de dos enrollamientos.
2.3.
Exponente de Lyapunov
El estudio del comportamiento de los sistemas ca´oticos de m´ultiples enrollamientos se ha vuelto de gran importancia para distintas aplicaciones, debido a que se ha en-contrado que a partir del incremento de enrollamientos el sistema toma una din´amica m´as compleja. Sin embargo, se requiere de alguna m´etrica para determinar el grado de impredicibilidad de un oscilador ca´otico [4]. Las principales m´etricas para carac-terizar sistemas ca´oticos son: la dimension fractal, la entrop´ıa de Kolmogorov-Sinai y el EL. Entre ellos, el EL proporciona una forma de determinar si el comportamiento de un sistema es ca´otico [20].
El EL es una medida asint´otica que caracteriza la tasa media de crecimiento (o contracci´on) de las peque˜nas perturbaciones de las soluciones de sistemas din´amicos, por ejemplo, de osciladores ca´oticos. Adem´as, proporcionan una medida cuantitativa de la sensibilidad de respuesta de un sistema din´amico a peque˜nos cambios en las condiciones iniciales [21, 22]. Considerando que al obtener un EL.
−3 −2 −1 0 1 2 3 −1.5 −1 −0.5 0 0.5 1 1.5 x y (a)
0 1 2 3 4 5
x 104 −3 −2 −1 0 1 2 3 Tiempo (s) (b)
0 1 2 3 4 5
x 104 −1.5 −1 −0.5 0 0.5 1 1.5 Tiempo (s) (c)
0 1 2 3 4 5
x 104 −1.2 −0.8 −0.4 0 0.4 0.8 1.2 Tiempo (s) (d)
Figura 2.2: Formas de onda ca´oticas de dos enrrollamientos. (a) x vs y en el plano de fase; serie temporal ca´otica de la variable: (b)x, (c)y, (d)z
Negativo. Las trayectorias tienden a aproximarse entre s´ı.
Positivo. Conforme transcurre el tiempo las trayectorias tienden a separase de forma exponencial.
Cero. La distancia entre las trayectorias se mantiene de forma paralela.
Si al menos un exponente es positivo, el sistema presenta comportamiento ca´otico, por lo tanto, son dependientes a las condiciones iniciales [23]. El n´umero de EL es igual al n´umero de variables de estado, y si al menos uno es positivo, esto es un indicador de caos. Un valor alto del EL positivo indica un gran incremento en el grado de impredecibilidad del sistema, por lo tanto, el sistema presenta un comportamiento din´amico m´as complejo[20].
2.3.1.
Oscilador ca´
otico de dos enrollamientos con exponente
de Lyapunov positivo
Un EL positivo indica la presencia de caos en un sistema din´amico, por lo que un valor m´aximo garantiza la impredicibilidad del sistema. En la tabla 2.1 se muestran tres valores de EL as´ı como el valor de cada uno de los coeficientes.
Tabla 2.1: Valores de los coeficientesa,b,cyd1
Coeficientes a, b, c y d1 MEL
1.0000, 1.0000, 0.4997, 1.0000 0.3761 1.0000, 0.7000, 0.7000, 0.2542 0.3425 0.7000, 0.7000, 0.7000, 0.7000 0.2658
En la figura 2.3 se muestran los resultados num´ericos de un oscilador de dos enrollamientos con EL=0.3761 y en la figura 2.4 se muestran los resultados num´ericos de un oscilador de dos enrollamientos con EL=0.3425.
2.4.
Resumen del cap´ıtulo
En este cap´ıtulo se describe las caracter´ısticas de una serie temporal ca´otica. La soluci´on del conjunto de ecuaciones que describen a un oscilador ca´otico de doble en-rollamiento se realiza a partir del m´etodo de integraci´on num´erico FE. Los resultados
−3 −2 −1 0 1 2 3 −3 −2 −1 0 1 2 3 x y (a)
0 1 2 3 4 5
x 104 −3 −2 −1 0 1 2 3 Tiempo (s) (b)
0 1 2 3 4 5
x 104 −3 −2 −1 0 1 2 3 Tiempo (s) (c)
0 1 2 3 4 5
x 104 −3 −2 −1 0 1 2 3 Tiempo (s) (d)
Figura 2.3: Formas de onda ca´oticas de dos enrrollamientos con EL=0.3761. (a)xvsy en el plano de fase; serie temporal ca´otica de la variable: (b)x, (c)y, (d)z
obtenidos utilizando 3 diferentes valores positivos de EL demuestran que utilizando el valor m´as alto, el grado de impredicibilidad del sistema incrementa y por lo tan-to, el sistema presenta un comportamiento din´amico m´as complejo. Se observa que aquellos osciladores que presentan un EL positivo peque˜no presentan diagramas de fase definidos en comparaci´on con aquellos que presentan un valor MEL.
−0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 x y (a)
0 1 2 3 4 5
x 104 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 Tiempo (s) (b)
0 1 2 3 4 5
x 104
−0.6 −0.4 −0.2 0 0.2 0.4 0.6 Tiempo (s) (c)
0 1 2 3 4 5
x 104 −0.4 −0.3 −0.2 −0.1 0 0.1 0.2 0.3 0.4 Tiempo (s) (d)
Figura 2.4: Formas de onda ca´oticas de dos enrrollamientos con EL=0.3425. (a)x vsy en el plano de fase; serie temporal ca´otica de la variable: (b)x, (c)y, (d)z
Cap´ıtulo 3
Realizaci´
on en hardware de un
oscilador ca´
otico
El estudio de sistemas din´amicos no lineales se ha convertido en un campo de in-vestigaci´on muy atractivo en diversas aplicaciones, en especial el estudio y desarrollo de sistemas ca´oticos. Experimentalmente se han realizado osciladores de m´ultiples en-rollamientos empleando distintos tipos de dispositivos activos y pasivos. Sin embargo, estos osciladores tienden a tener ligeras variaciones en su comportamiento debido a factores como: variaciones en la temperatura, rango de voltaje, valor nominal de los dispositivos, etc., lo que provoca un error inherente al sistema.
El uso de FPGA’s para la implementaci´on de sistemas electr´onicos, en especial de sistemas ca´oticos, se ha convertido en un tema de inter´es en la comunidad cient´ıfica debido a la velocidad de procesamiento, flexibilidad y a la disminuci´on del error inherente al sistema [24]. A continuaci´on se describe la metodolog´ıa empleada para la implementaci´on en un FPGA de osciladores ca´oticos de 2 enrollamientos basado en SNLF.
La soluci´on del sistema de ecuaciones diferenciales descrito en (2.2.1) se realiza a partir del uso de m´etodos de integraci´on num´ericos. En este trabajo se utiliz´o el m´etodo de integraci´on num´erico FE descrito como:
yn+1 =yn+ ∆tf(xn, yn) (3.0.1)
Aplicando (3.0.1) en (2.2.1) se obtiene el conjunto de ecuaciones discretizadas como:
xn+1 =xn+ ∆tyn
yn+1 =yn+ ∆tzn (3.0.2)
zn+1 =zn+ ∆t(−axn−byn−czn+d1f(xn))
donde x0 = y0 = z0 = 0.01 son las condiciones iniciales y ∆t = 0.01 el tama˜no de
paso.
En la aritm´etica computacional, hay dos principios de dise˜no fundamentales: re-presentaci´on num´erica y la ejecuci´on de las operaciones algebraicas [2]. En la figura 3.1 se muestran las representaciones num´ericas convencionales y no convencionales. El desempe˜no del sistema depender´a del tipo de representaci´on num´erica emplea-da. En general, los dise˜nos de punto fijo tienen una mayor velocidad y menor costo, mientras que el uso de punto flotante tiene mayor rango din´amico y no es necesario realizar un escalamiento num´erico, por lo tanto, puede ser atractivo para algoritmos m´as complicados [2].
Figura 3.1: Representaci´on num´erica utilizada en la aritm´etica digital [2]
En este documento se utiliza la representaci´on num´erica denominada de punto fijo y se decide utilizar un formato de 4.22 (1 bit de signo, 3 bits para la parte entera y 22 bits para la parte decimal), a fin de poder obtener resultados con una mayor precisi´on. En la tabla 3.1 se muestra la distribuci´on de la palabra utilizada.
Tabla 3.1: Distribuci´on de la palabra de 26 bits
Signo Parte entera Parte decimal
3.1.
Descripci´
on VHDL del oscilador ca´
otico
ba-sado en SNLF
Los c´alculos de suma y producto se realizan a partir de bloques b´asicos de cons-trucci´on mostrados en la figura 3.2.
(a) (b)
Figura 3.2: Bloques b´asicos de construcci´on: (a) multiplicador y (b) sumador
A continuaci´on se describe el bloque utilizado para dise˜nar la SNLF de un oscilador de 2 enrollamientos descrito por (2.2.3). Al aplicar la formula iterativa (3.0.1) se obtiene:
zn+1 =
z+ ∆t(−ax−by−cz+d1k) if x < α
z+ ∆t(−ax−by−cz+d1m) if −α≤x≤α
z+ ∆t(−ax−by−cz−d1k) if x <−α
(3.1.1)
Figura 3.3: Bloque comparador
De acuerdo con (3.1.1), es necesario dise˜nar un bloque comparador que permita determinar el valor que tomara la funci´onzn+1; en caso de generar un oscilador den -enrollamientos el bloque comparador deber´a de ser modificado de acuerdo al n´umero de segmentos que describan la funci´on de la SNLF. En la figura 3.3 se muestra el
bloque comparador, donde p01155 =m·d1 = 0.01155 y en la figura 3.4 se muestra el dise˜no para obtener la variable zn+1.
Figura 3.4: S´ıntesis dezn+1
La s´ıntesis de las variablesxn+1 yyn+1 resulta ser sencilla de realizar, debido a que solo es necesario el bloque SMC para 0.01 y un sumador. En la figura 3.5 se muestra el diagrama a bloques para ambas variables, donde xn yyn son las condiciones iniciales
y xn+1 y yn+1 los resultados de las operaciones.
Figura 3.5: S´ıntesis dexn+1yyn+1
son menores en comparaci´on a zn+1. Por lo tanto, la se˜nal de salida de xn+1 y yn+1 se obtiene utilizando menor n´umero de ciclos de reloj (clk). Es necesario agregar un contador el cual genere una se˜nal de activaci´on denominaLDAque sea activada cada 8 ciclos de reloj (ciclos necesarios para obtener la salida de zn+1). Los bloques que modelan axn+1, yn+1 y zn+1 son unidos para formar el bloque mostrado en la figura 3.6.
Al bloque Oscillator se le agregan tres multiplexores cuya funci´on de selecci´on es la se˜nalP, en un inicio cuandoP = 0 se cargaran los datos de las condiciones iniciales, una vez que se obtengan los primeros datos a la salida del bloqueOscillator,P = 1 y los datos obtenidos a la salida del registro ser´an re-alimentados a los multiplexores. Esta acci´on permite tener al sistema dentro de un bucle que permita la soluci´on del sistema de ecuaciones descrita por (3.0.2).
Figura 3.6: Esquema general del oscilador ca´otico, IC=condiciones iniciales
3.2.
Multiplicadores de una sola constante
La multiplicaci´ony=txde una variablexpor una constante de punto fijotpuede ser descompuesta en sumas, restas y desplazamientos binarios [25]. La generaci´on de este bloque multiplicador se conoce como SCM. Una de las ventajas de SCM es que
los retardos pueden realizarse usandohard-wire shifts [26]. Por otro lado, al realizar la multiplicaci´on mediante sumas y restas se obtiene un aumento de velocidad y ahorro de recursos de procesamiento.
En la figura 3.7 se muestra la realizaci´on de y= 71x empleando SCM y se puede observar el uso de 3 sumadores. Supongamos quex= 012, realizando cada uno de los corrimientos se obtiene: x <<6 = 010000002, x << 2 = 01002 y x << 1 = 0102. La suma de los 3 corrimientos es 010001102 = 7010 y finalmente la suma de 7010+x= 010001112 = 7110.
Figura 3.7: Multiplicaci´on por7110 usando 3 sumadores
3.3.
Realizaci´
on en FPGA
En muchos sistemas digitales los multiplicadores son uno de los principales com-ponentes que determinan el rendimiento del sistema. Debido a que los multiplicadores consumen una gran cantidad de recursos de procesamiento y son uno los bloques m´as lentos, el uso m´ınimo de estos conlleva a un mejor rendimiento. En esta tesis se hace uso de multiplicadores SCM, ya que, como se puede observar en (3.0.2) y (2.2.1), es posible implementar el uso de SCM debido a que el valor de a, b, c, d1 = 0.7 y ∆t = 0.01 son constantes de punto fijo. Para obtener de manera sencilla los bloques
que conforman a los SCMs se hace uso de la herramienta disponible en [27]. En la figura 3.8 se muestra los SCMs empleados.
Al sustituir los SCMs en el bloque mostrado en la figura 3.4, se obtiene el bloque mostrado en la figura 3.9. Para dise˜nar las variables xn+1 y yn+1, los multiplicadores son modificados por el SCM mostrado en la figura 3.8(a).
+ 33x
-41943x
<<3 8x
x
<<10 41984x
+ 41x
Y1
<<5 32x
(a) (b)
(c)
Figura 3.8: Diagrama de SCMs. (a) multiplicaci´on por0.0110, (b) multiplicaci´on por0.710, (c)
multi-plicaci´on por−0.710
Figura 3.9: S´ıntesis dezn+1,h= ∆t
3.4.
Resultados experimentales
Una vez descritos los bloques que conforman a un oscilador ca´otico basado en SNLF, en el software Quartus II se realiza la programaci´on en un FPGA mediante el lenguaje de descripci´on VHDL. En la tabla 3.2 se muestran las caracter´ısticas de la
Figura 3.10: S´ıntesis dexn+1yyn+1,h= ∆t
tarjeta Altera Cyclone IV GX FPGA DE2i-150.
Tabla 3.2: Especificaciones de la tarjeta Altera Cyclone IV GX FPGA DE2i-150
Especificaci´on Valor
Fuente de alimentaci´on DC 12 V
Frecuencia del oscilador 50 MHz
Bloques de memoria 720 M9K
Memoria embebida 6,480 Kbits
Tabla 3.3 muestra los recursos del FPGA utilizados para sintetizar un oscilador ca´otico de 2 enrollamientos y la Fmax a la que el dise˜no trabajar´a al m´aximo. Se observa que con el uso de multiplicadores de 2 variables se obtiene una menor Fmax de operaci´on a diferencia de SCM, es decir, el sistema alcanzar´a una mayor frecuencia de operaci´on utilizando SCM. En la figura 3.11 se muestran los resultados experimentales de un oscilador ca´otico de 2 enrollamientos.
Tabla 3.3: Reporte final usando FE para un oscilador de 2 enrollamientos
Multiplicadores SCM
de 2 variables
Recursos Disponible Utilizados Utilizados
Registros l´ogicos dedicados 149760 350 350
Elementos multiplicadores de 9 bits 720 49 0
Pines totales 508 81 86
(a) (b)
Figura 3.11: Resultados experimentales del oscilador ca´otico de 2 enrollamientos. (a) plano de fase, (b) CH1=Se˜nalx, CH2=se˜naly
3.5.
Resumen del cap´ıtulo
En este cap´ıtulo se present´o la metodolog´ıa del dise˜no en hardware de un oscilador ca´otico basado en SNLF. A partir del c´odigo realizado para la simulaci´on num´erica, es posible realizar la descripci´on VHDL del oscilador ca´otico. Los principales bloques que conforman al oscilador ca´otico son: sumadores, multiplicadores de dos variables, multiplexores, comparadores y registros. Se demostr´o que los multiplicadores de dos variables son los principales bloques que determinan el rendimiento del sistema y el uso de SCM mejora en gran medida el rendimiento. Finalmente se muestran los resultados experimentales de la s´ıntesis del oscilador ca´otico de 2 enrollamientos en un FPGA. Con esta metodolog´ıa de dise˜no se puede generar osciladores de m´ultiples enrollamientos modificando ´unicamente el bloque comparador e incrementando el n´umero de pendientes y niveles de saturaci´on que conforman a la SNLF.
Cap´ıtulo 4
Redes neuronales artificiales
4.1.
Fundamentos biol´
ogicos de las RNAs
Una neurona biol´ogica es una c´elula especializada en procesar informaci´on. B´ asi-camente se compone por un soma (cuerpo de la c´elula) y dos ramificaciones: el ax´on y las dendritas. La neurona recibe las se˜nales (breves pulsos peri´odicos de voltaje, lla-mados potenciales de acci´on) de otras neuronas a trav´es de sus dendritas y transmite las se˜nales generadas por el cuerpo de la c´elula a trav´es del ax´on. En la figura 4.1 se muestran los elementos de una red neuronal biol´ogica.
Axón Dentritas
Soma
Sinápsis
Figura 4.1: Estructura funcional de una neurona biol´ogica
Los dos comportamientos m´as importantes de una neurona son:
El impulso que llega a una sinapsis y el que sale de ella no son iguales. El tipo de pulso que saldr´a depende muy sensiblemente de la cantidad de neurotrans-misor (cantidad que cambia durante el proceso de aprendizaje, es aqu´ı donde se almacena la informaci´on). Una sinapsis modifica el pulso ya sea reforz´andolo o debilit´andolo.
En el soma se suman las entradas de todas las dentritas; si estas entradas sobrepasan un cierto umbral, entonces se transmitir´a un pulso a lo largo del ax´on, en caso contrario no transmitir´a. Despu´es de un pulso, la neurona no puede transmitir durante un tiempo de entre 0.5ms a 2ms. A este tiempo se le llama per´ıodo refractario.
Para establecer una similitud entre la actividad sin´aptica y la analog´ıa con las RNAs, se considera que las se˜nales que llegan a la sinapsis son las entradas a la neu-rona las cuales son ponderadas (atenuadas o simplificadas) a trav´es de un par´ametro denominado peso, el cual esta asociado a la sinapsis correspondiente. Estas se˜nales de entrada pueden excitar a la neurona (sinapsis con peso positivo) o inhibirla (peso negativo) [28].
Las RNAs son sistemas de procesamiento de informaci´on de distribuci´on paralela y se realizan con elementos simples que operan en paralelo; se caracterizan por su patr´on de conexiones entre las neuronas (arquitectura), el m´etodo para determinar el peso en las conexiones (entrenamiento, aprendizaje, etc.,) y su funci´on de activaci´on [29].
El poder de las t´ecnicas neuronales es debido a que, por su estructura y fun-cionalidad, pueden ser asimilados a los modelos no lineales y se caracterizan por la flexibilidad y m´ınimo esfuerzo requerido para la resoluci´on de problemas llevando acabo c´alculos num´ericos elementales [30]. Adem´as de estas caracter´ısticas, en [28] se presentan las ventajas y desventajas de las RNAs frente a otros sistemas de procesa-miento de informaci´on, los cuales se mencionan en la tabla 4.1.
4.2.
Modelo neuronal y estructura funcional
Una RNA es un conjunto de unidades elementales de procesamiento, llamadas neuronas o nodos, cuya capacidad de procesamiento se almacena en el nivel de las conexiones neuronales bajo la forma de pesos sin´apticos, el resultado es un proceso iterativo de adaptaci´on el cual depender´a de la informaci´on de la muestra llamada aprendizaje [30].
Las RNAs contienen tres tipos b´asicos de neuronas: neuronas de entrada (recogen los valores de las variables de entrada y forman la denominada capa de entrada); neuronas intermedias o neuronas ocultas (localizadas entre la capa de entrada y la
Tabla 4.1: Ventajas y desventajas del uso de las RNAs
Ventajas Desventajas
• Sintetizan algoritmos a trav´es
de un proceso de aprendizaje.
• Se debe entrenar para cada
problema.
• No es necesario conocer los
detalles matem´aticos de las
RNAs, s´olo se requiere estar
familiarizado con los datos del trabajo.
• Es necesario realizar
m´ultiples pruebas para
determinar la arquitectura adecuada.
• Permite la soluci´on de
problemas no lineales.
• El entrenamiento es largo y
puede consumir varias horas de computo.
• Son robustas, pueden fallar
algunos elementos de procesamiento pero la red
contin´ua trabajando.
• Debido a que las redes se
entrenan en lugar de
programarlas, ´estas necesitan
muchos datos.
capa de salida, cuya funcionalidad es realizar c´alculos no lineales y est´an organizados bajo la forma de una o m´as capas denominadas capas ocultas) y neuronas de salida (realiza los c´alculos de los valores predefinidos con la ayuda de la red neuronal y comparan estos valores con ciertos valores objetivo o los valores de referencia). En la figura 4.2 se muestra la estructura funcional de una neurona, donde las j neuronas est´an recibiendo se˜nales de entradasxj y los valoreswrepresentan los pesos sin´apticos
en las dendritas,B la polarizaci´on asociada a cada neurona, y la funci´onf(.) se llama funci´on de activaci´on y define la formaci´on de la salida de la neurona [30].
El estado interno de una neurona, denotado por j se logra mediante la suma de los pesos de las entradas ponderadas de esta neurona, es decir, cada peso sin´aptico multiplica a cada entrada y considerando que a trav´es del asoma en una neurona biol´ogica las entradas provenientes de las dentritas son sumadas, se obtiene:
Y inj =w0j + n
X
i=1
xiwij (4.2.1)
dondew0j es llamado el umbral de excitaci´on de la neurona, en caso de que el umbral
w0j es incluido en los valores de entrada, el estado interno o el potencial de la neurona
puede ser escrito como:
Y inj = n
X
i=1
xijwij (4.2.2)
donde x0 = 1 es considerada como una entrada ficticia.
El estado interno estar´a dado por el producto de las entradas, un bias Bj y el
vector de pesos asociados, de acuerdo a:
uj = n
X
i=1
xijwij +Bj (4.2.3)
Si el peso wi es positivo se habla de una excitaci´on y si el peso es negativo se
considera una inhibici´on de la entrada.
Asumiendo que el umbral de activaci´on es incorporado en el vector de pesos, la salida de activaci´on y es dada por:
y =f(u) (4.2.4)
donde f denota la funci´on de activaci´on de la neurona.
4.3.
Funci´
on de activaci´
on
Una neurona se activa si la entrada total supera un cierto umbral, por lo que se debe de aplicar una funci´on de activaci´on sobre (4.2.3), estas funciones transmiten la idea de ”disparar sobre un umbral”. Si la funci´on de activaci´on de una neurona es lineal, se dice que es una neurona lineal, en caso contrario se dice que es una neurona no lineal. Las funciones de activaci´on m´as usadas son mostrada a continuaci´on:
Funci´on de activaci´on de umbral (funci´on escal´on unitario). Si la suma de las entradas es mayor o igual que el umbral de la neurona, la activaci´on es 1, en caso contrario, la activaci´on es 0.
0 0
1
X
Y
φ(u) =
1 cuandou >0 0 en otro caso
Funci´on de activaci´on lineal. Al utilizar neuronas con funci´on de activaci´on del tipo lineal en la capa de salida, los resultados pueden tomar cualquier valor [31].
0 0
1
X
Y φ(u) = u
Funci´on de activaci´on sigmoide. Debido a que su derivada siempre es positiva y cercana a cero para valores grandes positivos o negativos, se pueden utilizar reglas de aprendizaje definidas para las funciones escal´on.
Funci´on tangente hiperb´olica. Est´a funci´on de activaci´on esta relacionada con la funci´on sigmoide, sin embargo, en este caso el rango de salida se encuentra entre [−1,1]. Matem´aticamente esta funci´on equivale a tanh(n) con la ´unica diferencia de que la funci´on tangente hiperb´olica responde a una velocidad lige-ramente mayor en comparaci´on con tanh(n), lo cual, para redes neuronales es
0 0
0.5 1
X
Y φ(u) = a
1 +exp(−bu)
m´as importante la velocidad que la forma exacta de la funci´on [32]. Est´a funci´on es empleada en casos en que la se˜nal presente variaciones suaves de valores posi-tivos y negaposi-tivos de la se˜nal a clasificar, es una de las funciones m´as empleadas en entrenamientos supervisados.
0 −1
0 1
X
Y φ(u) = e
u−e−u
eu+e−u
4.4.
Concepto de entrenamiento y revisi´
on de
da-tos
El tema de aprendizaje usualmente se refiere a un ajuste de par´ametros para reducir la discrepancia entre la salida objetivo en cada caso de entrenamiento y la salida producida por el modelo. Este tema puede ser dividido en dos grupos que son: supervisado (o tambi´en llamado asociativo) y no supervisado (o tambi´en llama-do auto-organizallama-do), una de las diferencia entre ambas es el tipo de procesamiento efectuado. La mayor´ıa de las reglas de aprendizaje no supervisado son procesadas en tiempo discreto, por otro lado, los sistemas que operan con aprendizaje supervisado pueden ser procesados en tiempo continuo [33].
4.4.1.
Aprendizaje no-supervisado
No incorpora a un maestro externo, se basa en una informaci´on local y control interno. El entrenamiento se enfoca a encontrar caracter´ısticas estad´ısticas entre agru-pamientos de patrones en las entradas. En la tabla 4.2 se muestran algunos de los esquemas m´as representativos de este tipo de aprendizaje.
Tabla 4.2: Algoritmos de aprendizaje no-supervisado [3]
Aprendizaje Feedback
Unsupervised Learning
Additive Grossberg (AG) Shunting Grossberg (SG)
Binary Adaptive Resonance Theory (ART1) Analog Adaptive Resonance Theory (ART2) Discrete Hopfield (DH)
Continuous Hopfield (CH)
Discrete Bidirectional Associative Memory (BAM) Adaptive Bidirectional Associative Memory (ABAM) Temporal Associative Memory (TAM)
Learning Matrix Drive-Reinforcement
Sparse Distributed Associative Memory (SDM) Linear Associative Memory (LAM)
Optimal Linear Associative Memory (OLAM) Fuzzy Associative Memory (FAM)
Learning Vector Quantization (LVQ) Counterpropagation (CPN)
4.4.2.
Aprendizaje supervisado
Es un proceso que incorpora un maestro externo e informaci´on global. Las t´ ecni-cas de aprendizaje supervisado incluyen: cu´ando desconectar el aprendizaje, decidir cu´anto tiempo y con qu´e frecuencia debe presentar cada asociaci´on para el entrena-miento y el rendientrena-miento de suministro de la informaci´on de error [3], es decir, de-termina el comportamiento deseado de la red neuronal generando una se˜nal de error entre la respuesta deseada y la respuesta del sistema, el vector de error se propaga en una fase de re-alimentaci´on que tiene como fin la actualizaci´on de los pesos sin´apticos de la red neuronal. El proceso de aprendizaje contin´ua hasta que las se˜nales de error en la red neuronal alcancen un valor m´ınimo aceptable [3].
Este aprendizaje se divide en dos sub-categor´ıas:
Aprendizaje Estructural. Codifica el apropiado mapeo auto-asociativa y hete-roasociativa de w.
Aprendizaje Temporal. Codifica una secuencia de par´ametros necesariamente para alcanzar un resultado final
En la tabla 4.3 se muestran ejemplos de algoritmos de aprendizaje supervisado como: aprendizaje error-correcci´on, aprendiza reforzado, aprendizaje estoc´astico.
Tabla 4.3: Algoritmos de aprendizaje supervisado [3]
Aprendizaje Feedback
Unsupervised Learning
Perceptron
Adeline/Madaline Backpropagation (BP) Boltzmann Machine (BM) Cauchy Machine (CM)
Adaptive Heuristic Critic (AHC) Associative Reward Penalty (ARP) Avalache Matched Filter (AMF) Brain-Satate-in-a-Box (BSB) Fuzzy Cognitive Map (FCM)
4.5.
Dise˜
no de una RNA
Debido a que no existe una formula que permita seleccionar un n´umero ´optimo de capas y neuronas que constituyan a una RNA, el dise˜nador debe de enfrentar una serie de problemas para lograr una topolog´ıa de red capaz de resolver un problema en particular.
Algunos autores recomiendan el uso de una capa oculta y muy pocas neuronas ocultas para resolver problemas pr´acticos, sin embargo este n´umero depender´a de la complejidad del problema.
La elecci´on de un n´umero adecuado de neuronas ocultas es extremadamente im-portante. Usar muy pocas neuronas puede ser causa de un sub-ajuste, es decir, la RNA no tendr´a los recursos necesarios para resolver el problema. El uso de dema-siadas neuronas aumentar´a el tiempo de entrenamiento y con lo cual es imposible
entrenar adecuadamente en un per´ıodo de tiempo razonable y causarsobre-ajuste (la RNA tendr´a tanta capacidad de procesamiento de la informaci´on que va a aprender aspectos insignificantes del conjunto de entrenamiento, aspectos que son irrelevantes) [9].
En [34] se muestran dos ejemplos desub-ajuste ysobre-ajuste. Figura 4.3 muestra 3 posibles casos que ocurren al realizar la predicci´on del precio de una casa a partir de su tama˜no. Como se puede observar para el caso de la figura 4.3(a) se tiene un caso de sub-ajuste; en la figura 4.3(c) se tiene un caso de sobre-ajuste. La RNA realiza una adecuada predicci´on del conjunto de datos de entrenamiento, sin embargo no generaliza bien para hacer predicciones exactas sobre nuevos ejemplos, nunca antes vistas. Finalmente en el caso de la figura 4.3(b), se obtiene una respuesta satisfactoria [34]. Tamaño P r e c io (a) Sub-ajuste P r e c io
(b) Respuesta satisfactoria (c) Sobre-ajuste
Figura 4.3: Problemas de sub-ajuste y sobre-ajuste
Un gran n´umero de investigadores han propuesto diversas metodolog´ıas para fijar el n´umero de neuronas ocultas. En [8] se muestra de manera cronol´ogica diversos m´etodos para calcular el n´umero de neuronas ocultas en una red neuronal, a conti-nuaci´on se mencionan algunas de estas metodolog´ıas:
1997, Tamura y Teteishi desarrollaron un m´etodo para determinar el n´umero de neuronas en la capa oculta, donde el n´umero de neuronas ocultas en una red neuronal de 3 capas es N −1 y una red neurona de cuatro capas es N2 + 3, el valor de N es la relaci´on de entrada-objetivo.
2003, G. B. Huang desarroll´o un modelo con capacidad de aprendizaje y alma-cenamiento para una red feedforward con 2 capas ocultas. Su formulaci´on se basa en que el n´umero de neuronas para una sola capa oculta estar´ıa dado por
Nh =
p
(m+ 2)N+ 2
q
N
m+2 y para 2 capas intermedias Nh =m
q
N m+2.
2006, K. Jinchuan and L. Xinzhe investigaron una formula probada en 40 casos:
Nh = Nin +
√
Np
L , donde L es el n´umero de capas intermedias, Nin el n´umero
de neuronas de entrada y Np el n´umero de muestras de entradas
4.5.1.
Regla de la pir´
amide geom´
etrica
Una metodolog´ıa que permite una buena aproximaci´on para la elecci´on del n´umero de neuronas ocultas en muchos problemas es la regla de la pir´amide geom´etrica, donde el n´umero de neuronas sigue una forma piramidal teniendo una disminuci´on de la entrada a la salida, es decir que el n´umero de neuronas en la capa oculta debe ser menor al n´umero de neuronas de la entrada [9].
Primer caso
Se considera una RNA de 3 capas con una sola capa oculta, una neurona en la salida (m = 1) y cuatro neuronas a la entrada (n = 4), para determinar el n´umero de neuronas en la capa oculta se considera:
h=√m·n = 2 (4.5.1)
donde h es el n´umero de neuronas en la capa oculta y se cumple con la condici´on de quen > h. En la figura 4.2 se muestra la estructura funcional de las neuronas y en la figura 4.4 se muestra la RNA de 3 capas conformada por: 4 neuronas que constituyen la denominada capa de entrada, 2 neuronas que constituyen la capa oculta y 1 neurona que constituye la capa de salida.
1 2
Out
Inp
uts
3
Segundo caso
Se considera una RNA de 4 capas (2 capas ocultas), una neurona en la salida (m = 1) y 8 neuronas a la entrada (n = 8). Para determinar el n´umero de neuronas se utiliza:
h1 =m·r2
h2 =m·r (4.5.2)
r= 3
r
n m
donde h1 corresponde a la primera capa oculta con 4 neuronas, h2 corresponde al n´umero de neuronas en la segunda capa oculta con 2 neuronas yr es la relaci´on entre el n´umero de neuronas en la capa de entrada y el n´umero de neuronas en la capa de salida. En la figura 4.2 se muestra la estructura funcional de cada neurona que conforman la RNA de 4 capas que se muestra en la figura 4.5.
1 2
Out
Inp
uts
3 4
Figura 4.5: RNA de 4 capas
4.5.2.
Red neuronal de 6 capas
En el trabajo propuesto en [1] se realiza un estudio de la retina de una salamandra que fue estimulada con destellos de una onda cuadrada peri´odica (cuya frecuencia fue modificada para distintos casos pero manteniendo siempre el mismo contraste y
viceversa), esto con el fin de obtener un registro de se˜nales ERG y posteriormente filtrar las se˜nales del ERG. Esta metodolog´ıa es empleada para obtener una serie de tiempo discreta de una se˜nal continua donde los par´ametros de frecuencia de destellos y contraste tienen un gran efecto en las se˜nales registradas del ERG que causan bifurcaciones.
En [1] construyen un modelo capaz de modelar el comportamiento ca´otico del sistema nervioso de la salamandra; sin embargo no es una tarea f´acil debido a la din´amica altamente compleja y a la no linealidad involucrada en la regeneraci´on de las se˜nales ca´oticas y los diagramas de bifurcaci´on, por lo cual se hace uso de las capacidades antes mencionadas de las RNAs para la soluci´on de este tipo de problemas.
La topolog´ıa de la RNA empleada en [1] contiene [7×4×8×5] capas intermedias, la funci´on de activaci´on empleada es la funci´on tangente hiperb´olica”tansig” que ayuda a la red a aprender las relaciones complejas entre la entrada y salida. La funci´on de activaci´on de la ultima capa de la red es una funci´on lineal y los pesos de entrada tienen asociados una l´ınea de retardo, el cual permite a la red tener una respuesta din´amica finita a los datos de entrada de series de tiempo.
1 2 3 4 5
Out
Inp
uts
6
4.6.
T´
ecnicas de actualizaci´
on de pesos
En los primeros d´ıas de las redes neuronales el entrenamiento por lotes se sospecho por muchos investigadores a ser te´oricamente superior al entrenamiento incremental [35], por lo que un mito muy frecuente en redes neuronales es que el m´etodo por lotes es mas r´apido que el m´etodo incremental debido a que se supone usa una me-jor aproximaci´on del gradiente para la actualizaci´on de los pesos [36]. Sin embargo, algunas veces el entrenamiento por por lotes es tambi´en lento como el entrenamiento incremental. Esto es por la capacidad de entrenamiento del m´etodo incremental para seguir las curvas de la superficie de error a lo largo de cada ´epoca, lo que le permite utilizar de forma segura una tasa de aprendizaje m´as grande y por lo tanto con menos iteraciones convergen a trav´es de los datos de entrenamiento [36].
4.6.1.
Actualizaci´
on de pesos en modo incremental
Los sistemas neuronales son capaces de resolver problemas mediante la adaptaci´on a la naturaleza de los datos que reciben, esto mediante el uso de un conjunto de datos de entrenamiento y un conjunto de datos de verificaci´on de los datos de entrada y salida. Para comenzar con el entrenamiento se parte asignando de manera aleatoria todos los pesoswij de las diferentes capas, posteriormente una entradaxdel conjunto
de datos de entrenamiento se hace pasar a trav´es de la red neuronal. La red neuronal calcula un valor (f(x)output), que se compara con el valor actual (f(x)actual = y). La
medida de errorE se calcula a partir de estos dos valores de salida como:
E =f(x)actual−f(x)output (4.6.1)
esta es la medida de error asociado con la ´ultima capa de la red neuronal, despu´es se distribuye este error a los elementos en las capas ocultas usando la t´ecnica de retro-propagaci´on [37]. La medida de error asociado con los diferentes elementos en las capas ocultas se calcula a partir de:
En =F0(I)wijEj (4.6.2)
donde Ej es el error asociado con el j-´esimo elemento, wij es el peso asociado a la
activaci´on [37]. En la figura 4.7 se muestra la distribuci´on del error a los diferentes elementos.
Figura 4.7: Distribuci´on del error de diferentes elementos
Despu´es los diferentes pesos wij conectados a cada uno de los elementos de la red
se corrigen para que puedan aproximar la salida final; para actualizar los pesos se utiliza la medida de error en los elementos. Para un elemento con error (E) asociado con ´el (figura 4.8), los pesos asociados se actualizar´an de acuerdo a:
Figura 4.8: Error asociado a una neurona
wi(new) =wi(old) +αExi (4.6.3)
donde α es la constante de aprendizaje, E = el error medido asociado y xi = la
entrada del elemento.
El valor de entrada xi se pasa a trav´es de la red neuronal (se actualizan el valor
de los nuevos pesos) de nuevo, y los errores, si los hay, se calculan de nuevo. Esta t´ecnica se itera hasta que el valor de error de la salida final esta dentro de unos l´ımites prescritos por el usuario. La red neuronal a continuaci´on, utiliza el siguiente conjunto de datos de entrada-salida. Este m´etodo se contin´ua para todos los datos en el conjunto de datos de entrenamiento y hace que la red neuronal simule la relaci´on no lineal entre los conjuntos de datos de entrada-salida. Por ´ultimo, un conjunto de datos de verificaci´on son utilizados para verificar qu´e tan bien la red neuronal puede simular la relaci´on no lineal [37].
A continuaci´on se muestra un breve ejemplo de lo antes mencionado, para ello consideremos una RNA de [2×3×2] que se muestra en la figura 4.9.
Figura 4.9: Ejemplo de entrenamiento de una RNA de[2×3×2]
Primero se asignan aleatoriamente los pesos asignados a las diferentes trayectorias de los elementos de cada una de las capas (tabla 4.4), como primer punto de datos consideraremos el valor de las entradasx1 = 0.05 yx2 = 0.02 y una funci´on de activa-ci´on del tipo sigmoide descrita en (4.6.4). Los puntos de entrenamiento y verificaci´on empleados ser´an en un inicio R1 = 1.0 y R2 = 0.0
Tabla 4.4: Valores iniciales aleatorios asignados a los diferentes pesos
Peso Valor Peso Valor
w1
11 0.5 w112 0.30
w1
12 0.4 w122 0.35
w113 0.1 w212 0.35
w121 0.2 w222 0.25
w1
22 0.6 w312 0.45
w1
23 0.2 w322 0.30
O = 1
1 +exp[−(P
xiwi+t)]
(4.6.4)
donde:
O = Salida del elemento de umbral calculado usando una funci´on sigmoide.
xi = entradas al elemento de umbral (i= 1,2, ..., n).
wi = Pesos asociados a la trayectoria de cada elemento