Download Red neuronal prealimentada
Document related concepts
Transcript
Análisis de Datos Perceptrón multicapa Profesor: Dr. Wilfrido Gómez Flores 1 Introducción • De acuerdo con el consejo de la IEEE Neural Networks de 1996, inteligencia artificial (IA) es el estudio de cómo hacer que las computadoras hagan cosas que los humanos hacemos mejor hasta ahora. • Inteligencia computacional es una rama de la IA que estudia mecanismos adaptativos inspirados en la naturaleza para habilitar comportamiento inteligente en ambientes complejos y cambiantes. Sistemas inmunes artificiales Modela el sistema inmune humano Modela los sistemas neuronales biológicos Redes neuronales artificiales Computación evolutiva Modela la selección natural Modela la interacción de los organismos con el ambiente Sistemas difusos Inteligencia de enjambre Modela el comportamiento social de organismos Modelos probabilísticos Paradigmas de inteligencia computacional 2 Neurona biológica • La neurona es una célula nerviosa cuya función es recolectar y procesar señales eléctricas. • Las neuronas presentan una morfología típica: un cuerpo celular llamado soma, prolongaciones cortas que transmiten impulsos hacia el soma denominadas dendritas y una prolongación larga llamado axón que conduce impulsos desde el soma hacia otras neuronas u órganos. Dendrita Terminal del axón Soma Núcleo Axón Mielina Modelo de una neurona biológica. 3 Neurona biológica • El cerebro humano posee aproximadamente 1012 neuronas conectadas por aproximadamente 1014 sinapsis. • La sinapsis es el enlace electro-químico para la transmisión del impulso nervioso entre neuronas. • Las redes neuronales en el cerebro forman un sistema de procesamiento paralelo de información masiva. • El aprendizaje puede deberse al cambio en la fuerza en las conexiones neuronales, es decir, agregar o eliminar conexiones (plasticidad sináptica). • La eficacia de la sinapsis puede cambiar debido a la experiencia, dotando de memoria y aprendizaje a través de la potenciación a largo plazo. 4 Neurona artificial • Tres trabajos sentaron las bases de las redes neuronales artificiales (RNA) actuales: ‣ McCulloch & Pitts (1943). Primer modelo neuronal simplificado. Podía resolver las operaciones lógicas AND, OR y NOT. ‣ Hebb (1949). Propone un modelo matemático que incluye el concepto de aprendizaje por medio de refuerzo o asociación. ‣ Rosenblatt (1959, 1962). Origen del concepto “machine learning”. Propuso el modelo perceptrón, el cual al ser entrenado converge en un número finito de iteraciones. 5 Neurona de McCulloch-Pitts • McCulloch y Pitts (1943) propusieron el primer modelo simplificado de una neurona artificial con comportamiento binario, es decir, dado un umbral de activación, θ, la respuesta de la neurona sufre un cambio abrupto de estado de 0→1 ó viceversa: Entradas excitatorias a2 a1 an Σ b1 Entradas b2 inhibitorias θ y bm donde la respuesta de la neurona es: n ⎧ ⎪ 1 si ∑ i =1 ai ≥ θ y y=⎨ ⎪⎩ 0 otro caso ∑ m b =0 j =1 j McCulloch & Pitts (1943), “A Logical Calculus and the Ideas Immanent in the Nervous Activity,” Bulletin of Mathematical Biophysics, vol. 5, pp. 115-133. (1) 6 Neurona de McCulloch-Pitts • La implementación de las funciones lógicas AND, OR y NOT utiliza la siguiente configuración de la neurona: a1 a2 b1 0 1 0 1 0 0 1 1 0 0 0 0 AND θ=2 0 0 0 1 OR θ=1 0 1 1 1 a1 θ Σ a2 y b1 a1 a2 b1 1 1 0 0 0 1 NOT θ=1 1 0 • Las principales limitantes del modelo de McCulloch-Pitts son: ‣ Los umbrales son determinados analíticamente, es decir, no existe un mecanismo de aprendizaje. ‣ Únicamente trabaja con problemas binarios 7 Teoría Hebbiana • La teoría Hebbiana describe el mecanismo básico de plasticidad sináptica, el valor de una conexión sináptica se incrementa si las neuronas de ambos lados de la sinapsis se activan repetidas veces de forma simultánea y se debilita si se activan por separado. Conexión fuerte Marca Apple Conexión débil Fruta Probablemente, en países de habla hispana, la palabra “Apple” esté más relacionada con la marca de computadoras que con la fruta. 8 Perceptrón simple El modelo de aprendizaje Hebbiano establece cómo modificar los pesos sinápticos, w=[w0,w1,…,wd], entre neuronas y se aplica para entrenar la neurona artificial de McCulloch-Pitts (1943), dando origen al modelo perceptrón introducido por Rosenblatt en 1958: Entradas • x1 w1 x2 w2 x3 w3 xd wd w0 Función de transferencia φ Σ f donde la respuesta de la neurona para un patrón x es: d ⎞ ⎛ f (x) = ϕ ⎜ w0 + ∑ wi x i ⎟ ⎠ ⎝ (2) i =1 9 Perceptrón simple • El proceso de aprendizaje de una neurona consiste en adaptar los pesos sinápticos para realizar un mapeo entrada→salida: 1 n w j = ∑ yi x i,j , n i =1 j = 1,…,d (3) donde n es el número de muestras de aprendizaje y yi es la salida deseada del patrón xi=[1,xi,1,xi,2,…,xi,d]T (aumentado). • La función de transferencia define la salida de la neurona como: ⎧ +1 si z > θ ϕ(z) = ⎨ ⎩ −1 otro caso (4) donde θ es un umbral predeterminado. 10 Perceptrón simple • La implementación de las funciones lógicas AND, OR y NOT utiliza la siguiente configuración de la neurona: w0 w1 x1 wAND = [−0.5, 0.5, 0.5] T wOR = [0.5, 0.5, 0.5]T wNOT = [0, 0, −1]T x1 x2 −1 −1 −1 1 1 1 −1 1 w2 x2 AND wTx −1.5 −0.5 −0.5 0.5 Σ OR f −1 −1 −1 1 wTx f θ=0 NOT f −0.5 −1 0.5 1 0.5 1 1.5 1 wTx f 1 1 −1 −1 11 Perceptrón simple • El perceptrón simple es un clasificador lineal, donde los pesos pueden ser ajustados mediante un algoritmo de descenso de gradiente. x2 x2 1 1 −1 1 −1 x1 −1 1 x1 −1 Fronteras de decisión generadas por el perceptrón simple para los problemas AND (izquierda) y OR (derecha). 12 Perceptrón simple • Uno de los resultados mostrados en el trabajo de Minsky y Papert (1969) fue que el perceptrón simple no es capaz de representar la compuerta XOR, ya que no existe separabilidad lineal entre clases. x2 1 −1 1 −1 x1 x1 x2 XOR −1 −1 −1 1 1 1 −1 1 1 1 −1 −1 En el problema XOR no existe una única recta que separe a los puntos negros de los blancos. *M. L. Minsky & S. A. Papert (1969). Perceptrons. Cambridge, MA: MIT Press. 13 Perceptrón multicapa AND 0.5 x1 0.5 Σθ 0.5 −0.5 Σθ −0.5 0.5 x2 0.5 Capa de entrada Σθ Capa oculta 0 0.5 −0.5 1 OR f x2 −1 1 x1 −1 Capa de salida La capa de entrada distribuye las variables del patrón de entrada hacia la capa oculta. En la capa oculta se entrenan dos perceptrones para resolver la compuerta AND (rojo) y OR (negro) cuyas respuestas son combinadas en la capa de salida generando una solución bilineal al problema XOR. El umbral θ=0 para todos los perceptrones. 14 Perceptrón multicapa • Aunque el perceptrón multicapa es capaz de resolver el problema XOR, surge un problema en la generalización a problemas no linealmente separables: ¿cómo calcular los pesos sinápticos de las neuronas ocultas sin conocer su salida deseada? • En 1974 P. Werbos planteó una solución para el entrenamiento del perceptrón multicapa, aunque fue hasta 1986 cuando Rumelhart propuso un algoritmo similar al que llamó retropropagación del error (backpropagation algorithm). • El algoritmo backpropagation está basado en el método de descenso de gradiente para minimizar el error. Es un algoritmo ampliamente utilizado para entrenamiento supervisado de RNA. P. J. Werbos. Beyond Regression: New Tools for Prediction and Analysis in the Behavioral Sciences. PhD thesis, Harvard University, 1974. D. E. Rumelhart, G. E. Hinton, R. J. Williams, "Learning representations by back-propagating errors". Nature 323 (6088): 533–536, 1986. 15 Red neuronal prealimentada • El perceptrón multicapa da origen a la red neuronal prealimentada (feedforward neural network, FNN) que utiliza el algoritmo backpropagation en el entrenamiento. x1 x1 z x2 x1 x2 x1 x2 z x2 Una red de dos capas sólo genera fronteras de decisión lineales, mientras que una red con dos o más capas produce fronteras de decisión arbitrarias. 16 Red neuronal prealimentada x1 x2 xi xd w ji x1 x2 y1 y2 wkj Salida de la red z1 z2 y3 zk xi yj zc xd Referencia t1 t2 tk tc yh Entrada Oculta Salida Una red FNN d-h-c totalmente conectada de tres capas y la notación utilizada para la derivación del algoritmo backpropagation. 17 Función de activación • Un nodo oculto o nodo de salida genera una respuesta no lineal a una variable de entrada ponderada con un peso sináptico. • Dicha respuesta no lineal está dada por una función de activación, siendo la función sigmoidal la más utilizada en FNN y se define como: 1 σ (x) = 1 + exp(−x) (5) y su primera derivada es: σ (x )′ = σ (x)(1 − σ (x)) (6) • Se asume la misma no linearidad para todos los nodos ocultos y de salida. 18 Aprendizaje de la FNN • El entrenamiento de la FNN consiste en encontrar el conjunto de pesos que reduzca el error de entrenamiento entre la salida de la red y la referencia (etiqueta de clase): 1 c 1 2 J(w) ≡ ∑ (tk − zk ) = t − z 2 k =1 2 2 (7) donde t y z son los vectores de referencia (target) y salida de la red y w representa todos los pesos en la red. • La regla de entrenamiento backpropagation está basada en descenso de gradiente. Los pesos se inicializan aleatoriamente y cambian en la dirección que reduce el error: ∂J Δw = −η ∂w (8) donde η es la taza de aprendizaje. Entonces la regla de actualización en la iteración t es: w(t + 1) = w(t) + Δw(t) (9) 19 Aprendizaje de la FNN • Tomando el problema de entrenamiento de una FNN con tres capas, primero se derivan los pesos de las capas oculta→salida mediante la regla de la cadena: ∂J ∂J ∂zk = ∂wkj ∂zk ∂wkj (10) ∂J ∂ ⎡1 2⎤ = ⎢ (tk − zk ) ⎥ = −(tk − zk ) ∂zk ∂zk ⎣ 2 ⎦ (11) • Derivando J se tiene: y derivando zk se tiene: ∂zk ∂wkj donde y! j = wkj y j . = ∂σ (y! j ) ∂wkj (12) = σ (y! j )(1 − σ (y! j ))y j 20 Aprendizaje de la FNN • Entonces sustituyendo (11) y (12) en (10) se obtiene la regla de aprendizaje para los pesos de las capas oculta→salida: Δwkj = η(tk − zk )σ (y! j )(1 − σ (y! j ))y j = ηδ ky j (13) donde δk es la sensibilidad de la neurona k y describe cómo el error cambia con la activación de la neurona. • Derivando los pesos de las capas entrada→oculta se vuelve aplicar la regla de la cadena: ∂J ∂J ∂y j = ∂w ji ∂y j ∂w ji (14) 21 Aprendizaje de la FNN • Derivando J se tiene: ∂J ∂ = ∂y j ∂y j k =1 k =1 j (15) ∂zk ∂y! j = − ∑ (tk − zk ) = − ∑ (tk − zk )σ (y! j )(1 − σ (y! j ))wkj ∂y! j ∂y j k =1 k =1 Derivando yj se tiene: ∂y j ∂σ (x!i ) ∂x!i = = σ (x!i )(1 − σ (x!i )) (16) ∂w ji ∂w ji ∂w ji c • c ⎞ ⎛1 c ∂zk 2 ⎜⎝ 2 ∑ (tk − zk ) ⎟⎠ = − ∑ (tk − zk ) ∂y c = σ (x!i )(1 − σ (x!i ))x i donde x!i = w jix i . Entonces, la regla de aprendizaje para los pesos de las capas entrada→oculta es: c ⎡ Δw ji = η ⎢ ∑ k =1 wkj δ k ⎤⎥ σ (x!i )(1 − σ (x!i ))x i ⎣ ⎦ = ηδ j x i (17) 22 Aprendizaje de la FNN • El cálculo del bias involucra una entrada ficticia cuyo valor es siempre la unidad para cada neurona de la red, de modo que todos los pesos bias se actualizan exactamente igual que los pesos sinápticos durante las iteraciones. 1 x1 z x2 Se considera una entrada unitaria para el cálculo del bias. 23 Aprendizaje de la FNN • En el algoritmo backpropagation, todos patrones de entrenamiento se presentan primero para generar una salida de la red con los pesos actuales y sólo entonces se actualizan los pesos. Este proceso se itera hasta que se cumpla una condición de paro. Algoritmo backpropagation. Begin initialize: w, n←#patrones, umbral θ, η, t←0 do t←t+1 // Incrementa la época p←0; ∆wji←0; ∆wkj←0 do p←p+1 xp← selecciona un patrón ∆wji←∆wji + ηδjxi ∆wkj←∆wkj + ηδkyj until p=n wji←wji + ∆wji wkj←wkj + ∆wkj until ||∇J(w)||<θ return w end 24 Conjunto de validación • Para evitar el sobreentrenamiento de la red, adicionalmente al conjunto de entrenamiento, se debe usar un conjunto independiente denominado conjunto de validación, de modo que el entrenamiento se detiene en el mínimo error de validación. J/n validación ent r ena m ien to prueba épocas Una curva de entrenamiento muestra la función de costo en función del número de épocas. Los errores de validación y prueba son generalmente más altos que el error de entrenamiento. 25 Funciones discriminantes • Para clasificar un patrón desconocido, se tendrán c neuronas de salida, una para cada clase, y la señal de cada neurona de salida es la función discriminante gk(x). • Para un patrón de entrada x la respuesta de la k-ésima neurona de salida para una FNN d-h-c es: ⎛ h ⎞ ⎞ ⎛ d gk (x) ≡ zk = σ ⎜ ∑ wkjσ ⎜ ∑ w ji x i + w j 0 ⎟ + wk 0 ⎟ ⎠ ⎝ i =1 ⎝ j =1 ⎠ (18) • Entonces, el patrón x es clasificado en ωp, p=1,…,c, si g p (x) > gq (x), ∀p ≠ q (19) 26 Funciones discriminantes x1 x1 FNN 2-3-1 x1 x2 x2 x1 FNN 2-10-1 x2 x2 27 Ventajas de las RNAs • Las RNAs son relativamente fáciles de implementar y presenta las siguientes ventajas: ‣ No linealidad. Dependiendo de la función de activación, una neurona puede tener una respuesta no lineal, de manera que con la interconexión de varias neuronas se pueden generar fronteras de decisión no lineales. ‣ Relación entrada-salida. Las RNAs aprenden de ejemplos, los cuales son introducidos como un conjunto de muestras etiquetadas donde a cada entrada le corresponde una salida. ‣ Adaptabilidad. Debido a su capacidad de aprendizaje continuo, las RNAs tienen la habilidad de adaptarse a problemas no estacionarios en el tiempo, adaptando sus pesos al entorno que las rodea. ‣ Tolerancia a fallos. El alto grado de paralelismo les confiere una gran robustez, ya que si una neurona o peso sináptico falla, el daño se ve amortiguado por las neuronas vecinas. 28 Desventajas de las RNAs • Por otro lado, las RNAs presentan los siguientes problemas: ‣ Sobreentrenamiento. Cuando la red no es capaz de generalizar, es decir, que calcule correctamente las relaciones entrada-salida para muestras no presentadas durante el entrenamiento, se dice que se ha sobreentrenado. ‣ Número de neuronas. No existe una forma sencilla de definir el número adecuado de neuronas y capas ocultas. ‣ Mínimos locales. Durante el entrenamiento existe la posibilidad de caer en un mínimo local, es decir, la solución no alcanzó el mínimo error posible. 29