4. ANEXO A FUNDAMENTOS TEORETICOS DE REDES 4. NEURONALES ARTIFICIALES
No hay una definición universalmente aceptada de una Red Neuronal Artificial. Sin embargo, hay un acuerdo en aceptar que se trata de una red constituida de muchos procesadores simples que trabajan en paralelo con un nivel de interconexión considerablemente alto, cada uno de ellos dotado de una pequeña cantidad de memoria local y con la capacidad de adquirir, almacenar y usar conocimiento de carácter empírico. Las Redes Neuronales Artificiales (R.N.A.) fueron originalmente desarrolladas como una simulación abstracta de los sistemas nerviosos biológicos. Sin embargo, dado que el conocimiento acerca de estos sistemas es incompleto y la capacidad de las maquinas existentes es limitada, estos modelos sólo son amplias idealizaciones de una red real de redes neuronales.
A.1.
SISTEMAS NEURONALES BIOLÓGICOS
A.1.1. El Cerebro y su estructura. Se estima que el cerebro humano contiene más de cien mil millones (1011) de células especializadas llamadas neuronas entrelazadas mediante cien billones (1014) de sinapsis organizadas en grupos que tejen redes con un alto y complejo grado de interconectividades. Las neuronas y las conexiones entre ellas constituyen la clave para el procesamiento de la información. (figura A-1).
Figura A-1 Estructura básica de una neurona Biológica
57
J.M. Londoño y M.A. Meza.
Como estructura básica de una neurona biológica podemos considerar tres partes fundamentales: •
El cuerpo de la neurona, donde desarrolla su actividad fundamental.
•
Ramas de extensión o dendritas, usadas para recibir las entradas.
•
El axón, que transportar la salida de la neurona y se ramifica para establecer contactos sinápticos con otras neuronas.
El axón lleva la información por medio de diferencias de potencial eléctrico entre las membranas celulares, esta señal es conocida como potenciales de acción y dependen del potencial de cada neurona. El impulso se transmite en una única dirección a través del axón hasta llegar a la sinapsis, produciendo allí la liberación de una sustancia química denominada neurotransmisor que se esparce por el fluido existente en el espacio sináptico. Cuando este fluido alcanza el otro extremo, la neurona recoge las señales de entrada combinando todas las influencias excitadoras e inhibidoras. Si las influencias excitadoras dominan y exceden un cierto nivel critico, un umbral alrededor de 10 milivoltios, entonces la neurona se activa y envía una señal positiva a otras neuronas por sus sinapsis de salida. Esta propiedad se conoce como ley del todo o nada e impone ciertas limitaciones en el tipo de mensajes que se pueden transportar, prohibiendo la transmisión directa de información cuantitativamente graduada.
Figura A-2
Detalle de una Sinapsis
El potencial eléctrico de la membrana celular de cada neurona depende de la permeabilidad iónica y puede ser calculado por la ecuación de Nernst
EK =
([ ] [K ] )
RT ln K + ZF
+
f
d
( A-1 )
donde EK es el valor del potencial en la membrana por el ion potasio K+ en equilibrio, R es una constante termodinámica, T es la temperatura absoluta, Z es la valencia del ion = +1, F es la constante de Faraday, y [K+]f y [K+]d son las concentraciones de K por fuera y por dentro de la membrana. En realidad, la relación entre el potencial eléctrico y la permeabilidad iónica es la de un círculo cerrado, en
58
Redes neuronales artificiales aplicadas a la simulación de ondas sísmicas a través del suelo.
la que los cambios de potencial causan cambios de permeabilidad y estos a su vez causan cambios en el potencial. [5] Además, se puede citar un modelo muy acertado para describir la propagación de la señal que viaja por el axón mediante la siguiente ecuación unidimensional
λ2 donde x representa la longitud del Axón,
∂ 2V ∂V −V −τ =0 2 ∂t ∂x
( A-2 )
τ es la constante de tiempo de la membrana, λ es un
parámetro adimensional, y V es la tendencia del potencial a través de la membrana. [5] Aunque todavía no está del todo claro, parece que la amplitud y velocidad de este impulso dependen del diámetro del axón y la frecuencia del número de disparos que se efectúen, razonamiento sugerido por Donald Hebb. El aprendizaje de Hebb postula que la fuerza sináptica entre neuronas se incrementa si representan conceptos asociados, siendo así, cuando una neurona participa constantemente en activar una neurona de salida, la influencia de la neurona de entrada aumenta.
A.2.
SISTEMAS NEURONALES ARTIFICIALES
Una Red Neuronal Artificial es un sistema compuesto de muchos elementos de procesamiento simples operando en paralelo, denominados neuronas, cuyo comportamiento es determinado por la estructura de la red, la fuerza en las conexiones y el algoritmo de entrenamiento utilizado; posee una tendencia natural para adquirir y almacenar conocimiento empírico haciéndolo disponible para su uso.
Figura A-3 Red Neuronal Artificial En definitiva, las Redes Neuronales no son más que un modelo artificial y simplificado del cerebro humano, que es el ejemplo más perfecto que tenemos a disposición de un sistema capaz de adquirir conocimiento a través de la experiencia. Las Redes Neuronales pueden ser construidas con hardware especial o simuladas en computadoras normales.
59
J.M. Londoño y M.A. Meza.
A.2.1. Idealización de las neuronas artificiales
Figura A-4 Neurona Artificial con sus elementos Vs Neurona Biológica. Ya que el conocimiento que se posee sobre el sistema biológico no es completo, se han de definir algunas funcionalidades y estructuras de conexión distintas a las substraídas desde la perspectiva biológica para elaborar el modelo de una Red Neuronal Artificial. Cada neurona dentro de la red artificial es una unidad de proceso simple que toma una o más entradas de información y produce una salida. En una neurona, cada entrada de información x tiene un peso asociado w que modifica la fuerza de cada entrada conectada con esa neurona. Esto significa que el peso le da más o menos importancia a la información que transporta en la activación a de la neurona receptora. Se considera el procesamiento interno dividido en dos fases: en la primera, se combina la información sumando las entradas x multiplicadas por su correspondiente peso w; en la segunda, con este valor ponderado s se pasa al cálculo del nivel de activación de cada neurona a, con una función de activación determinada f( ). La neurona se activa si la fuerza combinada de la señal de entrada es superior a un cierto nivel que llamaremos umbral o tendencia b. Lo anterior puede ser expresado matemáticamente como: s=
N
∑w ⋅ x i
i
+b
( A-3 )
i =1
a = f (s )
( A-4 )
De la misma manera como el aprendizaje en un sistema biológico involucra los ajustes en las conexiones sinápticas que existe entre las neuronas, para conseguir un óptimo desempeño de las redes artificiales, se busca conseguir, mediante un cierto tipo de entrenamiento, los pesos asociados w y las tendencias b adecuadas para cada una de las entradas y unidades de procesamiento, en búsqueda de una salida objetivo o producción satisfactoria. A.2.2. Estructuras de las redes neuronales artificiales La estructura de la red está definida por el número de neuronas en cada capa, el número de capas, el tipo de conexiones entre ellas y la función de activación.
60
Redes neuronales artificiales aplicadas a la simulación de ondas sísmicas a través del suelo.
•
Número de neuronas:
Una sola neurona tiene una capacidad muy limitada como dispositivo para solucionar problemas. Sin embargo, cuando un número de neuronas se conectan entre sí para formar una red compleja, su habilidad para encontrar características propias de un fenómeno particular y para alcanzar un óptimo desempeño en la representación de éste, se incrementa considerablemente. Actualmente no se han desarrollado relaciones que determinen el número óptimo de neuronas para un problema específico, de tal forma que su elección se deja al criterio y experiencia del analista [14]. •
Número de capas:
Se llama capa a la colección de elementos de procesamiento y los pesos asociados a sus entradas con la particularidad de encontrarse localizados en un mismo nivel dentro de la red. En la figura A-5 la primera capa toma los estímulos del exterior y es llamada capa de entrada. La última capa produce la respuesta de la red y es llamada capa de salida. Entre estas capas puede haber una o varias capas, éstas son llamadas capas ocultas, porque no están directamente conectadas con el exterior.
Figura A-5 Red neuronal con capa de entrada salida y una oculta •
Conexiones:
Una neurona puede estar conectada con cualquier otra, lo que incluye conexiones de la neurona consigo misma. Las siguientes son estructuras de conexión típicas usadas en el manejo de Redes Neuronales: CONEXIÓN HACIA DELANTE: los datos de las neuronas de una capa inferior son propagados hacia las neuronas de la capa superior. Esta transmisión se conoce como alimentación hacia delante (feed-forward). CONEXIÓN HACIA
ATRAS:
estas conexiones llevan los datos de las
neuronas de una capa superior a otras de la capa inferior,
61
J.M. Londoño y M.A. Meza.
originando una retroalimentación de la información procesada (feedback). Una red neuronal con conexiones hacia atrás recibe el nombre de red recurrente. CONEXIÓN LATERAL: Interacción de neuronas ubicadas en la misma capa. Un ejemplo de este tipo son las redes competitivas. CONEXIÓN CON RETARDO: Los elementos de retardo se incorporan en las conexiones para realizar modelos dinámicos y temporales.7 •
Función de Activación o Función de transferencia
La excitación, producto de la combinación de todas las entradas ponderadas por sus respectivos pesos, es modificada por la función de activación suministrando el nivel de estímulo de la neurona. Hay dos tipos básicos de funciones de transferencia: las continuas y las discretas. Las funciones continuas normalmente usadas son: rampa, Gaussiana, logarítmica sigmoidal, tangente hiperbólica sigmoidal, lineal, entre otras. Se llaman así por ser diferenciables en todo sus puntos. Las funciones discretas normalmente usadas son las funciones escalón, que no son diferenciables. Función escalón 1 f (s ) = î 0
si s ≥ 0 si s < 0
( A-5 )
Función Escalón Simétrica 1 f (s ) = î −1
si s ≥ 0 si s < 0
( A-6 )
si s > 1 si 0 ≤ s ≤ 1 si s < 0
( A-7 )
si s > 1 si − 1 ≤ s ≤ 1 si s < −1
( A-8 )
1 1 + e − λS
( A-9 )
Función Rampa 1 f (s ) = s 0 î Función Rampa Simétrica 1 f (s ) = s − 1 î Función Sigmoide Unipolar
f (s ) = 7
Ver retropropagación temporal Sec.2.2.3.
62
Redes neuronales artificiales aplicadas a la simulación de ondas sísmicas a través del suelo.
Función Sigmoide Bipolar
f (s ) =
2 −1 1 + e − λS
( A-10 )
Función lineal
( )=
( A-11 )
Función Gaussiana
f (s ) = e − S
2
( A-12 )
A.3. OPERACIÓN CON REDES NEURONALES Existen dos fases en toda aplicación de redes neuronales artificiales: la fase de aprendizaje o entrenamiento y la fase de prueba. A.3.1. Entrenamiento Es la parte más importante en el manejo de Redes Neuronales, consiste en ajustar los pesos w y tendencias b de forma tal que la red establezca un aceptable vínculo de correspondencia o mapeo entre entradas y salidas. Este proceso de entrenamiento hace a una red neuronal tan diferente de un ordenador convencional. En la secuencia de entrenamiento los cambios en los pesos y tendencias se pueden realizar ya sea inmediatamente después de propagar a través de la red cada vector de entrenamiento, lo que es conocido como adaptación por dato, o después de haber propagado por la red todos los vectores de entrenamiento completando así una época; éste último caso es conocido como adaptación por bloque (Batching). En esencia los métodos anteriormente mencionados para llevar a cabo el entrenamiento son idénticos, pero por las condiciones mencionadas, las ecuaciones a la hora de aplicar uno u otro varían brevemente, en forma no en fondo. Dentro de la fase de entrenamiento se visualizan tres tipos de entrenamientos: •
Aprendizaje Supervisado:
Consiste en tomar un conjunto de pares de entrenamiento [x(t), y(t)] para t=1,2,...,p, que son las entrada y salidas deseadas para el sistema estudiado, y propagarlos repetidamente a través de la red para que sean asociados. Mediante la adaptación de pesos y tendencias, se busca el mínimo de una función de error n-dimensional producida por la diferencia entre respuesta yˆ (t ) dada por la red ante una excitación x(t ) determinada y la salida y (t ) deseada para la misma. En muchos de los casos, el entrenamiento se convierte en un ejercicio de optimización numérica de una función usualmente no
63
J.M. Londoño y M.A. Meza.
lineal, el mayor problema asociado a la optimización es la alta posibilidad de converger hacia un mínimo local, en vez de hacia el mínimo absoluto (figura A-6).
Figura A-6 Función de costo El proceso del entrenamiento se da por concluido cuando la red produce una salida correcta para cada argumento de la información de entrada, entonces se dice que ha convergido. Los pesos de la red se congelan en sus estados entrenados y la red está entonces lista para su validación y posterior uso. •
Aprendizaje No Supervisado:
A la red únicamente se le presentan los datos de entradas y aprende a clasificarlos basada sólo en la similitud con otros, halla algunas propiedades del conjunto de datos de entrada y aprende a reflejar esas propiedades en el conjunto de datos de salida. Los algoritmos de aprendizaje no supervisados son útiles cuando el usuario no sabe exactamente que clases de salidas se desean o esperan. Como ejemplo se puede citar la restauración de imágenes, en donde se presenta como entrada una imagen defectuosa y se desea restaurarla a la imagen original. •
Aprendizaje Por Refuerzo
Es utilizado en situaciones donde los ejemplos de aprendizaje sólo se pueden obtener con un bajo nivel de detalle o sólo una parte de la información de salida puede ser catalogada como buena o mala, incluso, frecuentemente la única información aprovechable es un valor escalar r que indica cual es el desempeño de la red. Éste es un esquema de aprendizaje de ensayo y error, según el cual un agente computacional aprende a realizar una apropiada acción por la recepción de retroalimentaciones evaluativas (llamadas señal de refuerzo) a través de interacción con el medio externo. Si una acción es seguida por un estado satisfactorio de sucesos o un mejoramiento en el estado de sucesos entonces, por ejemplo una disminución en el valor de la función de costo, la tendencia para producir esa acción es reforzada, en caso contrario, será atenuada o inhibida.
64
Redes neuronales artificiales aplicadas a la simulación de ondas sísmicas a través del suelo.
A.3.2. Fase de validación Una vez entrenada la red, se inicia la llamada fase de prueba o funcionamiento directo, en la que se procesan los vectores de prueba, diferentes a los de entrenamiento, que constituyen la entrada habitual de la red, calculando el error generado y analizando el rendimiento definitivo del sistema para determinar la validez del diseño. A.3.3. Generalización El propósito fundamental es que la red neuronal aprenda a generalizar, es decir, si habiendo aprendido a clasificar correctamente las muestras de aprendizaje, al presentarse una nueva muestra, la clasificará correctamente, porque ha aprendido a reconocer las características que discriminan las diferentes clases de muestras. La generalización se puede extender a un problema de interpolación y extrapolación. Una red se considera que está entrenada con éxito si puede aproximar los valores de los patrones de entrenamiento y puede dar predicciones suficientemente acertadas para el espacio de datos no entrenado (figura A-7).
Figura A-7 La línea con cruces corresponde al resultado del entrenamiento, mientras que la línea continua a las simulaciones. En la gráfica a la izquierda no se alcanza aún una buena generalización, pues faltan ciclos de entrenamiento. Por el contrario, a la derecha ha ocurrido un sobre entrenamiento o “Overfitting”, es decir, la red aprendió sólo las muestras de entrenamiento (las marcas x) y no generaliza correctamente los demás puntos.
A.4. ÁREAS DE APLICACIÓN Se realizan investigaciones de redes neuronales en áreas como: Aprendizaje adaptativo, autoorganización, operaciones en tiempo real, identificación tendencias en mercados, predicción, pronósticos de ventas, control de procesos industriales, análisis de riesgo, mercados potenciales y análisis de inversión, reconocimiento del habla y escritura, diagnósticos médicos, detección de minas marinas, análisis de texturas, reconocimiento facial, decisiones sobre otorgamientos de préstamos, entre muchas otras.
65
J.M. Londoño y M.A. Meza.
A.5.
ORIGEN DE LOS ALGORITMOS DE APRENDIZAJE
A.5.1. Perceptrón Creado por Rosenblatt en 1958 [14]. Un perceptrón simple consiste en un sólo elemento de procesamiento usado para clasificación, con una o varias entradas, sus respectivos pesos y una única salida, procesa datos de tipo binario (±1) usando una función de activación escalón (A-6); es entrenado mediante una técnica que se conoce como regla de aprendizaje del perceptrón. N a = yˆ = signo wi ⋅ x i + b i =1
∑
:
y
( A-13 )
El límite de clasificación de la salida entre negativa o positiva es denominado plano de decisión y corresponde al hiperplano w T x + b = 0 (figura A-8); así, el requerimiento de (A-13) queda reducido a encontrar este hiperplano mediante la adaptación de los pesos y la tendencia según varíe el error e. Para ajustar los parámetros del perceptrón se usa la siguiente ecuación donde η corresponde a una constante entre 0 y 1, se conoce como rata de aprendizaje y corresponde a la potencia en la modificación de los pesos.8 2ηyx i ∆wi = ηex i = η ( y − yˆ ) x i = î 0
si y ≠ yˆ si y = yˆ
( A-14 )
El perceptrón tiene importancia desde un punto de vista histórico, ya que fue uno de los primeros desarrollos en R.N.A.9 y generó gran interés debido a su habilidad para generalizar y para aprender patrones desde conexiones inicialmente distribuidas en forma aleatoria; pero desde una perspectiva práctica carece de trascendencia, ya que sus limitaciones al manejar exclusivamente patrones de entrada con independencia lineal para posibilitar la existencia del hiperplano de clasificación10, la hacen inaplicable para muchos casos de interés. La independencia lineal implica separabilidad lineal, lo inverso no siempre es verdadero. En el afán de suplir las deficiencias presentadas por los perceptrones simples se desarrollaron en primera instancia redes para clasificación múltiple, agrupando varios perceptrones simples en una capa de red, generando tantos hiperplanos de clasificación como perceptrones eran añadidos a la capa.
8
Nótese que la tendencia puede ser interpretada como una entrada adicional a la neurona con un valor de 1 por lo que (B-14) es aplicable. 9 El Desarrollo Histórico de R.N.A. puede ser encontrado en [14],[25],[39] 10 El hiperplano w*p+b=0, es una línea perpendicular al vector de pesos y está desviada de los ejes de acuerdo a la tendencia b.
66
Redes neuronales artificiales aplicadas a la simulación de ondas sísmicas a través del suelo.
Figura A-8
Un perceptrón simple y un ejemplo de dos clases linealmente separables y no. Para la imagen central se puede determinar un hiperplano solución, mientras que para la derecha no es posible obtener un resultado aceptable con un perceptrón simple.
Posteriormente se involucraron funciones de transferencia lineales responsables de que las salidas tomaran un valor cualquiera, surgiendo así las redes ADALINE (ADAptative LINear Element, elemento lineal adaptativo) y MADALINE (Multi - ADALINE). Este modelo fue propuesto por Widrow-Hoff para encontrar una relación lineal entre los datos entrada y salida, su principal aporte a la tecnología de R.N.A. radica en la implementación de la Regla Delta para ajustar los pesos, ya que en ella se basaron todos los desarrollos subsiguientes en Redes Neuronales Artificiales. La regla de aprendizaje de Widrow–Hoff se limita a entrenar únicamente una sola capa. A.5.2. Regla de aprendizaje Delta: La regla de entrenamiento adoptada para ADALINE se deriva del concepto de gradiente descendente para minimizar el error del entrenamiento E(w). Los pesos deben ser modificados una cantidad ∆w proporcional al gradiente negativo de E(w); así, para una red con N entradas y una capa de K perceptrones (K salidas) la regla se expresa como: E (w ) =
K
1 2
∑ (y
k
− yˆ k ) =
k =1
K
1 2
N
∑ y − ∑ w k
k =1
ik
i =1
xi
∆w = −η∇ w E (w ) ∆wik = −η
K ∂E = η y k − ∂wik k =1
∑
N
∑w i =1
ik
x i x i = η ( y k − yˆ k )x i
( A-15 )
( A-16 )
( A-17 )
Nótese que aunque la regla de aprendizaje de Widrow-Hoff (A-17) y la del perceptron (A-14) son semejantes, su diferencia radica en que la regla del perceptrón fue desarrollada sobre la suposición empírica de Hebbian [21], mientras que la Widrow-Hoff fue derivada del método del gradiente descendente11. Un desarrollo siguiente abrió paso a los perceptrones multicapa, se trata de varios perceptrones unicapa conectados en cascada, como en la figura A-9. El problema de este tipo de
11
Ver Anexo C
67
J.M. Londoño y M.A. Meza.
Perceptrón está en su entrenamiento, ya que es difícil modificar correctamente los pesos de las capas ocultas pues no se conoce una salida deseada para las neuronas en estas capas. Para lograr entrenar un perceptrón multicapa, se implementó el algoritmo de Retropropagación (BackPropagation), cuyo nombre se deriva de su propiedad de ir propagando los errores producidos en la capa de salida hacia atrás por toda la red hasta la capa de entrada.
Figura A-9
Perceptrón Multicapa
El algoritmo de retropropagación es presentado en la sección 2.2.1. de este reporte.
68