Redes Neuronales Artificiales Perceptrón Redes Neuronales Artificiales Definición. Es una red neuronal feedforward que consta de dos capas, una de entrada y una de salida. 2 Separabilidad de patrones Redes Neuronales Artificiales Función AND (linealmente separable) 01 11 00 10 3 Redes Neuronales Artificiales Separabilidad de patrones OR XOR 4 Separabilidad de patrones Función XOR. No es posible obtener una recta que separe las dos clases. Redes Neuronales Artificiales 01 00 11 10 5 Redes Neuronales Artificiales Patrones de entrenamiento Un patrón es una pareja de vectores X y Y de longitud n y m respectivamente: X = (x1, x2, x3, .. , xn) Y= (y1, y2, y3, .. , ym) donde xi corresponde a un valor para la neurona de entrada i y yj es el valor deseado de la neurona de salida j. 6 Redes Neuronales Artificiales El Perceptrón Aprendizaje 1. Inicialización aleatoria de los pesos (wi) y del umbral (a). 2. Tomar un patrón de entrada Xp=(x1,x2,...,xn, d(t)) d(t) es la salida deseada 3. Cálcular la salida actual yi yi =f [Σwixi - a] f función de activación 4. Adaptación de los pesos : wi+1=wi + ∆wi ∆wi = η[di - yi] xi η es la tasa de aprendizaje 5. Repetir desde el paso 2. 7 El Perceptrón x0 Redes Neuronales Artificiales x1 1.5 0.5 1.5 x2 Σ 1 0 8 Redes Neuronales Artificiales El Perceptrón Ejemplo Patrones dados: 00 0 01 1 10 1 11 1 Ajuste de pesos de las conexiones de una red que debe realizar la función OR. 1. Valores elegidos aleatoriamente: w0=1.5, w1=0.5 w2=1.5 a=0 9 El Perceptrón Ejemplo Redes Neuronales Artificiales 2. Se toman cada uno de los patrones de entrada y se aplica el método: 2.1. Patrón de entrada 00, d=0 Entradas: x1=0; x2=0; x0=1 Pesos: w1=0.5; w2=1.5; w0=1.5 sum i= 1*1.5 +0*0.5+0*1.5 = 1.5 Salida producida yi : 1 ( sumi >= 0) Error: (deseada-obtenida)= 0-1= -1 10 El Perceptrón Ejemplo Redes Neuronales Artificiales Nuevos pesos: w1 = 0.5 + (-1)*0 = 0.5 w2 = 1.5 + (-1)*0 = 1.5 w0 = 1.5 + (-1)*1 = 0.5 11 El Perceptrón Ejemplo Redes Neuronales Artificiales 2.2. Patrón de entrada 01, d=1 Entradas: x1=0; x2=1; x0=1 Pesos: w1 = 0.5; w2 = 1.5; w0 = 0.5 sum i = 1*0.5 + 0*0.5 + 1*1.5 = 2 Salida producida : 1 Error : (deseada-obtenida)= 1-1 = 0 Los pesos no se modifican 12 El Perceptrón Ejemplo Redes Neuronales Artificiales 2.3. Patrón de entrada 10, d=1 Entradas: x1=1; x2=0; x0=1 Pesos: w1 = 0.5; w2 = 1.5; w0 = 0.5 sum i = 1*0.5 + 1*0.5 + 0*1.5 = 1 Salida producida : 1 Error : (deseada-obtenida)= 1-1 = 0 Los pesos no se modifican 13 El Perceptrón Ejemplo Redes Neuronales Artificiales 2.4. Para el patrón 11 1, la salida obtenida es igual a la deseada, por tanto no varían los pesos. Si no fuese así se aplica la corrección. Como existió un patrón de entrada (00 0) en que el error no es cero, se realiza de nuevo el proceso. 14 Redes Neuronales Artificiales El Perceptrón 3. Se toman de nuevo los cuatro patrones de entrada: 3.1 Patrón de entrada 00, d=0 Entradas: x1=0; x2=0; x0=1 Pesos: w1=0.5; w2=1.5; w0=0.5 sum i: 1*0.5 +0*0.5+0*1.5 = 0.5 Salida producida = 1 Error = -1 15 Redes Neuronales Artificiales El Perceptrón Nuevos pesos: w1 = 0.5+(-1)*0 = 0.5 w2 = 1.5+(-1)*0 = 1.5 w0 = 0.5+(-1)*1 = -0.5 3.2. Patrón de entrada 01, d=1 Entradas: x1=0; x2=1; x0=1 Pesos: w1=0.5; w2=1.5; w0(t)= -0.5 sum i = 0*0.5+1*1.5+1*-0.5 =1 Salida producida = 1 Error = 0 No se modifican los pesos 3.3. Para las entradas restantes 10 y 11, los pesos no varían. Existe aún una entrada con error distinto de cero. 16 Redes Neuronales Artificiales El Perceptrón 4. Se toman de nuevo los cuatro patrones de entrada: 4.1 Patrón de entrada 00, d=0 Entradas: x1=0;x2=0; x0=1 Pesos: w1=0.5; w2=1.5; w0= -0.5 sum i = 0*0.5+0*1.5+1*-0.5= -0.5 Salida producida = 0 Error = 0 No se varían los pesos 17 El Perceptrón Redes Neuronales Artificiales 4.2 Patrón de entrada 01, d=0 Entradas: x1=0;x2=1; x0=1 Pesos: w1=0.5; w2=1.5; w0= -0.5 sum i = 0*0.5+1*1.5+1*-0.5= -0.5 Salida producida = 1 Error = 0 No se varían los pesos 4.3. Al no variar los pesos en los otros patrones, el error cometido es cero. Con estos pesos, al calcular la salida para cualquiera de los cuatro patrones no se obtiene error, luego la etapa de aprendizaje concluye. 18 Redes Neuronales Artificiales El Perceptrón x1 y1 x2 y2 . . xm . . yn 19 El Perceptrón La salida depende de los pesos (W) y los umbrales (a). Redes Neuronales Artificiales Los umbrales a pueden ser un W0 con entrada 1. Busca minimizar el error producido por las salidas obtenidas t1, t2,...,tm, con respecto a las esperadas y1, y2, ..., ym para unas entradas dadas x1, ..., xn El entrenar un perceptrón es reducir el error en los pesos. Por tanto, el espacio de búsqueda tiene una dimensión igual al número de conexiones. 20 El Perceptrón Regla de Aprendizaje Q Redes Neuronales Artificiales Q Q 1. Inicializar los pesos y el umbral: – Se asignan valores aleatorios a los pesos (wi) de las conexiones y al umbral (a). 2. Presentar nuevo par (entrada, salida esperada): – Entrada Xp=(x1,x2,...,xN), salida esperada d(t). 3. Cálculo de la salida actual – y(t)=f [Σwi(t)xi(t)] Q f (x) = función de transferencia (Escalón). 21 Redes Neuronales Artificiales El Perceptrón La función de error es la función cuadrática medio. Para la neurona de salida i el error cuadrático es: ei = (di – yi)2 / 2 Donde di es: ∑j wij xj ó f(∑j wij xj) si no es lineal Expresado en términos de pesos: ei = (∑j wij xj – yi)2 / 2 ei = (f(∑j wij xj)– yi)2 / 2 no lineal 22 El Perceptrón Aplicando técnica de gradiente (∑j wij xj – yi)x1 Redes Neuronales Artificiales (∑j wij xj – yi)x2 ∇ei = . . . (∑j wij xj – yi)xn lineal . . . f’(wi1)( ∑j wij xj)(f(wij xj)– yi) ∇ei f’(wi2)( ∑j wij xj)(f(wij xj)– yi) . . . f’(win)( ∑j wij xj)(f(wij xj)– yi) No lineal 23 El Perceptrón (di– yi)x1 (di– yi)x2 ∇ei = . . . Redes Neuronales Artificiales (di– yi)xn lineal (f’(wi1)( ∑j wij xj))(di -yi) ∇ei = (f’(wi2)( ∑j wij xj))(di -yi) . . . (f’(win)( ∑j wij xj))(di -yi) No lineal 24 El Perceptrón 4. Adaptación de los pesos : Redes Neuronales Artificiales ∆wij(t)=η[d(t)-y(t)] xi(t) (0<=i<=N) donde η es la tasa de aprendizaje y varia entre 0 y 1. wij (t+1) =w ij(t) - η[di (t)-yi (t)] xj(t) 5. Repertir desde el paso 2. 25 Redes Neuronales Artificiales El Perceptrón Ejemplo Sean los patrones: [ 1 1 0 1 ] [ 1 0 1 1 ] [ 0 1 1 1 ] [ 0 1 0 0 ] [ 1 0 0 0 ] [ 0 0 1 0 ] 26 El Perceptrón Ejemplo Umbral a= 0.5, µ=.5 (t aprendizaje Pesos iniciales: W01=.5, W11=1, W21=0, W31=.8 Redes Neuronales Artificiales Patrón 1: X1=1; X2=1; X3=0, X0=1, Sd=1 Y = 1*.5 + 1*1 + 1*0 + 0*.8 = 1.5 > .5, Y=1 Error = Sd - Y = 1 - 1 = 0 No hay cambio de pesos 27 El Perceptrón Ejemplo Pesos : W01=.5, W11=1, W21=0, W31=.8 Patrón 2: X1=1; X2=0; X3=1, X0=1, Sd=1 Redes Neuronales Artificiales Y = 1*.5 + 1*1 + 0*0 + 1*.8 = 2.3 > .5, Y=1 Error = Sd - Y = 1 - 1 = 0 No hay cambio de pesos 28 El Perceptrón Ejemplo Pesos : W01=.5, W11=1, W21=0, W31=.8 Patrón 3: X1=0; X2=1; X3=1, X0=1, Sd=1 Y = 1*.5 + 0*1 + 1*0 + 1*.8 = 1.3 > .5, Y=1 Redes Neuronales Artificiales Error = Sd - Y = 1 - 1 = 0 No hay cambio de pesos 29 El Perceptrón Ejemplo Pesos : W01=.5, W11=1, W21=0, W31=.8 Patrón 4: X1=0; X2=1; X3=0, X0=1, Sd=0 Y = 1*.5 + 0*1 + 1*0 + 0*.8 = .5 >= .5, Y=1 Redes Neuronales Artificiales Error = Sd - Y = 0 - 1 = -1 Ajustar pesos: W01=.5-.5(-1)1=1 W11=1-.5(-1)0=1 W21=0-.5(-1)1=.5 W31=.8-.5(-1)0=.8 30 El Perceptrón Ejemplo Pesos : W01= 1, W11=1, W21=.5, W31=.8 Patrón 5: X1=1; X2=0; X3=0, X0=1, Sd=0 Y = 1*1 + 1*1 + 0*.5 + 0*.8 = 2 >= .5, Y=1 Redes Neuronales Artificiales Error = Sd - Y = 0 - 1 = -1 Ajustar pesos: W01=1-.5(-1)1=1.5 W11=1-.5(-1)1=1.5 W21=.5-.5(-1)0=.5 W31=.8-.5(-1)0=.8 31 El Perceptrón Ejemplo Pesos : W01= 1.5, W11=1.5, W21=.5, W31=.8 Patrón 6: X1=0; X2=0; X3=1, X0=1, Sd=0 Y = 1*1.5 + 0*1 + 0*.5 + 1*.8 = 2.3 >= .5, Y=1 Redes Neuronales Artificiales Error = Sd - Y = 0 - 1 = -1 Ajustar pesos: W01=1.5-.5(-1)1=2 W11=1.5-.5(-1)0=1.5 W21=.5-.5(-1)0=.5 W31=.8-.5(-1)1=1.3 32 El Perceptrón Ejemplo En el ciclo de los patrones existió un error, por tanto, se requiere volver a mirar todos los patrones con los nuevos pesos. Redes Neuronales Artificiales Pesos : W01= 2, W11=1.5, W21=.5, W31=1.3 Patrón 1: X1=1; X2=1; X3=0, X0=1, Sd=1 Y = 1*2 + 1*1.5 + 1*.5 + 0*1.3 = 4 >= .5, Y=1 Error = Sd - Y = 1 - 1 = 0 NO hay que ajustar pesos 33 El Perceptrón Ejemplo Pesos : W01= 2, W11=1.5, W21=.5, W31=1.3 Patrón 2: X1=1; X2=0; X3=1, X0=1, Sd=1 Y = 1*2 + 1*1.5 + 0*.5 + 1*1.3 = 4.8 >= .5, Y=1 Redes Neuronales Artificiales Error = Sd - Y = 1 - 1 = 0 NO hay que ajustar pesos 34 El Perceptrón Ejemplo Pesos : W01= 2, W11=1.5, W21=.5, W31=1.3 Patrón 3: X1=0; X2=1; X3=1, X0=1, Sd=1 Y = 1*2 + 0*1.5 + 1*.5 + 1*1.3 = 3.8 >= .5, Y=1 Redes Neuronales Artificiales Error = Sd - Y = 1 - 1 = 0 NO hay que ajustar pesos 35 El Perceptrón Ejemplo Pesos : W01= 2, W11=1.5, W21=.5, W31=1.3 Patrón 4: X1=0; X2=1; X3=0, X0=1, Sd=0 Y = 1*2 + 0*1.5 + 1*.5 + 0*1.3 = 2.5 >= .5, Y=1 Redes Neuronales Artificiales Error = Sd - Y = 0 - 1 = -1 Ajustar pesos: W01=2-.5(-1)1=2.5 W11=1.5-.5(-1)0=1.5 W21=.5-.5(-1)1=1 W31=1.3-.5(-1)0=1.3 36 El Perceptrón Ejemplo Pesos : W01= 2.5, W11=1.5, W21=1, W31=1.3 Patrón 5: X1=1; X2=0; X3=0, X0=1, Sd=0 Y = 1*2 + 1*1.5 + 0*.5 + 0*1.3 = 3.5 >= .5, Y=1 Redes Neuronales Artificiales Error = Sd - Y = 0 - 1 = -1 Ajustar pesos: W01=2.5-.5(-1)1=3 W11=1.5-.5(-1)1=2 W21=1-.5(-1)0=1 W31=1.3-.5(-1)0=1.3 37 El Perceptrón Ejemplo Pesos : W01= 3, W11=2, W21=1, W31=1.3 Patrón 6: X1=0; X2=0; X3=1, X0=1, Sd=0 Y = 1*2 + 0*1.5 + 0*.5 + 1*1.3 = 3.3 >= .5, Y=1 Redes Neuronales Artificiales Error = Sd - Y = 0 - 1 = -1 Ajustar pesos: W01=3-.5(-1)1=3.5 W11=2-.5(-1)0=2 W21=1-.5(-1)0=1 W31=1.3-.5(-1)1=1.8 38 Nuevamente existe error diferente de 0 Q Hay que volver a repasar por todos los patrones hasta que todos posean error=0 Redes Neuronales Artificiales Q Se puede visualizar que la red no converge. Q ¿Qué sucede sin X0? Q 39 El Perceptrón Ejemplo Umbral a= 0.5, µ=.5 (t aprendizaje Pesos iniciales: W11=1, W21=0, W31=.8 Redes Neuronales Artificiales Patrón 1: X1=1; X2=1; X3=0, Sd=1 Y = 1*1 + 1*0 + 0*.8 = 1 > .5, Y=1 Error = Sd - Y = 1 - 1 = 0 No hay cambio de pesos 40 El Perceptrón Ejemplo Pesos : W11=1, W21=0, W31=.8 Patrón 2: X1=1; X2=0; X3=1, Sd=1 Y = 1*1 + 0*0 + 1*.8 = 1.8 > .5, Y=1 Redes Neuronales Artificiales Error = Sd - Y = 1 - 1 = 0 No hay cambio de pesos 41 El Perceptrón Ejemplo Pesos : W11=1, W21=0, W31=.8 Patrón 3: X1=0; X2=1; X3=1, Sd=1 Y = 0*1 + 1*0 + 1*.8 = .8 > .5, Y=1 Redes Neuronales Artificiales Error = Sd - Y = 1 - 1 = 0 No hay cambio de pesos 42 El Perceptrón Ejemplo Pesos : W11=1, W21=0, W31=.8 Patrón 4: X1=0; X2=1; X3=0, Sd=0 Y = 0*1 + 1*0 + 0*.8 = 0 >= .5, Y=0 Redes Neuronales Artificiales Error = Sd - Y = 0 - 0 = 0 No hay cambio de pesos 43 El Perceptrón Ejemplo Pesos : W11=1, W21=0, W31=.8 Patrón 5: X1=1; X2=0; X3=0, Sd=0 Y = 1*1 + 0*0 + 0*.8 = 1 >= .5, Y=1 Redes Neuronales Artificiales Error = Sd - Y = 0 - 1 = -1 Ajustar pesos: W11=1-.5(-1)1=1.5 W21=0-.5(-1)0= 0 W31=.8-.5(-1)0=.8 44 El Perceptrón Ejemplo Pesos : W11=1.5, W21=0, W31=.8 Patrón 6: X1=0; X2=0; X3=1, Sd=0 Y = 0*1.5 + 0*0 + 1*.8 = .8 >= .5, Y=1 Redes Neuronales Artificiales Error = Sd - Y = 0 - 1 = -1 Ajustar pesos: W11=1.5-.5(-1)0=1.5 W21= 0 -.5(-1)0= 0 W31=.8-.5(-1)1=1.3 45 El Perceptrón Ejemplo En el ciclo de los patrones existió un error, por tanto, se requiere volver a mirar todos los patrones con los nuevos pesos. Redes Neuronales Artificiales Pesos : W11=1.5, W21=0, W31=1.3 Patrón 1: X1=1; X2=1; X3=0, Sd=1 Y = 1*1.5 + 1*0 + 0*1.3 = 1.5 >= .5, Y=1 Error = Sd - Y = 1 - 1 = 0 NO hay que ajustar pesos 46 El Perceptrón Ejemplo Pesos : W11=1.5, W21=0, W31=1.3 Patrón 2: X1=1; X2=0; X3=1, X0=1, Sd=1 Y = 1*1.5 + 0*0 + 1*1.3 = 2.8 >= .5, Y=1 Redes Neuronales Artificiales Error = Sd - Y = 1 - 1 = 0 NO hay que ajustar pesos 47 El Perceptrón Ejemplo Pesos : W11=1.5, W21=0, W31=1.3 Patrón 3: X1=0; X2=1; X3=1, Sd=1 Y = 0*1.5 + 1*0 + 1*1.3 = 1.3 >= .5, Y=1 Redes Neuronales Artificiales Error = Sd - Y = 1 - 1 = 0 NO hay que ajustar pesos 48 El Perceptrón Ejemplo Pesos : W11=1.5, W21=0, W31=1.3 Patrón 4: X1=0; X2=1; X3=0, Sd=0 Y = 0*1.5 + 1*0 + 0*1.3 = 0 < .5, Y=0 Redes Neuronales Artificiales Error = Sd - Y = 0 - 0 = 0 NO hay que ajustar pesos 49 El Perceptrón Ejemplo Pesos : W11=1.5, W21=0, W31=1.3 Patrón 5: X1=1; X2=0; X3=0, X0=1, Sd=0 Y = 1*1.5 + 0*0 + 0*1.3 = 1.5 >= .5, Y=1 Redes Neuronales Artificiales Error = Sd - Y = 0 - 1 = -1 Ajustar pesos: W11=1.5-.5(-1)1=2 W21=0-.5(-1)0=0 W31=1.3-.5(-1)0=1.3 50 El Perceptrón Ejemplo Pesos : W11=2, W21=0, W31=1.3 Patrón 6: X1=0; X2=0; X3=1, Sd=0 Y = 0*2 + 0*0 + 1*1.3 = 1.3 >= .5, Y=1 Redes Neuronales Artificiales Error = Sd - Y = 0 - 1 = -1 Ajustar pesos: W11=2-.5(-1)0=2 W21=0-.5(-1)0=0 W31=1.3-.5(-1)1=1.8 51 Nuevamente existe error diferente de 0 Q Hay que volver a repasar por todos los patrones hasta que todos posean error=0 Redes Neuronales Artificiales Q Se puede visualizar que la red no converge. Q ¿Hacemos otro ciclo? Q ¿Se cambia el umbral? Q 52 53 Redes Neuronales Artificiales EL PERCEPTRON MULTICAPA Redes Neuronales Artificiales 2ª capa oculta Salidas Entradas 1ª capa oculta • Es la Red Neuronal más empleada y conocida • Conocido un conjunto de patrones entrada/salida la red es capaz de “aprender” mediante un algoritmo de entrenamiento • El “conocimiento” está almacenado y distribuido en los pesos de la red. • Es una estructura de computación robusta ante fallos 54 Un ejemplo de aplicación • PROBLEMA: Predicción de consumo eléctrico a corto plazo en un área geográfica determinada Redes Neuronales Artificiales - Si infraestimamos la carga necesaria tendremos que comprar MW a otras compañías a un precio elevado - Si sobreestimamos la carga es posible que no podamos venderla (si el resto de compañías predicen adecuadamente sus necesidades) • Es un problema no lineal en el que intervienen factores climatológicos (temperatura, humedad,...), estacionales y geográficos (horarios de trabajo y ocio, uso de aire acondicionado y calefacción, etc.) • Es un problema difícil de formular y solucionar mediante técnicas convencionales, pero del que es sencillo disponer de un gran número de datos entrada/salida Red Neuronal 55 72 entradas Redes Neuronales Artificiales 72 entradas 7 entradas Solución con RNA Carga ayer a la misma hora Temperatura prevista para esa hora M Humedad prevista para esa hora 24 cargas del día anterior 24 temperaturas del día anterior 24 temp. previstas para el día actual 24 cargas mismo día sem. anterior 24 temp. mismo día sem. anterior 24 temp. previstas para el día actual Módulo Horario M 24 MLPs M M M Carga H24 Combinador Carga H1 Carga H2 M Carga H24 Carga H 1 Carga H2 Módulo Semanal 7 MLPs M Carga H24 Carga H1 Carga H 2 Módulo Diario 7 MLPs Carga H 1 Carga H2 M M Carga H24 “Artificial Neural Network Short-Term Load Forecaster (ANNSTLF)”, propuesta por A. Khontanzad, R. C. Hwang,A. Abaye, D. Martukalam, IEEE Trans on Power Systems, Aug. 1995; IEEE Trans on Neural Networks, July 1997. 56 Aprendizaje/generalización • En el problema la red no se limita a memorizar los datos sobre los que ha sido entrenada Redes Neuronales Artificiales ¡¡ LA RED NEURONAL ES CAPAZ DE GENERALIZAR!! • GENERALIZACION: La salida proporcionada por la red es correcta (o al menos razonable) en puntos en los que no ha sido entrenada. • La generalización está relacionada con la suavidad de la función a aproximar o modelar 57 Perceptrón generalizado Redes Neuronales Artificiales En el Perceptrón Generalizado el cómputo que ejecutan las neuronas de la capa de salida es: Mientras que las neuronas de la capa escondida ejecutan: 58 Perceptrón generalizado Redes Neuronales Artificiales En las expresiones anteriores no se considera explícitamente un umbral. Éste se incluye al patrón de entrada con una componente adicional de valor 1 y agregando en la capa intermedia una unidad adicional con actividad constante de uno. El algoritmo de aprendizaje en este tipo de redes es supervisado, y provee de un método para ajustar los pesos sinápticos de tal forma que la red sintetice la correspondencia entre los pares de patrones (xk , ςk) en el conjunto de patrones de entrenamiento. 59 O O Redes Neuronales Artificiales O O O Si la salida estimada es O y la salida correcta es T entonces el error es: Err = T - O Si el error es positivo incrementamos O, si el error es negativo decrementamos O Cada unidad de entrada contribuye W j Ij a la entrada total Si Ij es positiva, un incremento en W j incrementará O Si Ij es negativa, un incremento en W j decrementará O 60 O Redes Neuronales Artificiales O W j ← W j + α x Ij x Err, α es una constante de aprendizaje Convergerá a un conjunto de pesos que representan correctamente los ejemplos, si se trata de una función linealmente separable 61 Redes Neuronales Artificiales Algoritmo del perceptrón function NNL (ejemplos) returns red repeat for each p de ejemplos do O ← NNO(red,p) T ← salida observada por valores de p actualizar pesos en red basados en p, O y T end until todo ejemplo no posea error o criterio de parada return red El Perceptrón O O Redes Neuronales Artificiales O O Búsqueda gradiente descendiente en el espacio de pesos No hay mínimos locales Si α no es muy grande (sobretiro) la búsqueda convergerá a los pesos correctos Atributos continuos 63 El Perceptrón Frank Rosenblatt desarrolla una prueba de convergencia en 1962 y definió el rango de problemas para los que su algoritmo aseguraba una solución. Además propuso a los 'Perceptrons' como herramienta computacional. Redes Neuronales Artificiales x1 x2 neurona w1 w2 Σ a F(a) y = F(a) y = 1, si (x1w1 + x2w2) ≥ θ y = 0, si (x1w1 + x2w2) < θ y 64 ¿Qué tipo de problemas resuelve? Q Redes Neuronales Artificiales Q Un hiperplano es un objeto de dimensión n-1 que actúa en un espacio de dimensión n. En general un perceptron de n entradas puede ejecutar cualquier función que esté determinada por un hiperplano que corte un espacio de dimensión n. ¿Implicaciones? 65 Funciones realizables X1 0 0 1 1 X2 0 1 0 1 x2 Redes Neuronales Artificiales 1 0 (0,1) Y 0 1 1 1 (1,1) 1 1 (0,0) (1,0) x1 ¿Qué tipo de función no sería realizable? 66 Ecuación del hiperplano n ∑w x i =1 i i =θ wi x i + wi x i = θ θ w x2 = − 1 x1 + w2 w2 x 2 = mx 1 + b Si hacemos w1=1, w2=1 y theta=0.5, tenemos: Redes Neuronales Artificiales x2 1 0 (1,1) (0,1) 1 (0,0) aNotar que el vector 1 (1,0) de pesos es perpendicular al hiperplano. Esta característica se extiende a dimensión n. x1 67 Separabilidad lineal Redes Neuronales Artificiales El perceptron tiene la capacidad de clasificar vectores de entrada dividiendo el espacio de entrada en dos regiones mediante una hiperplano. Si el espacio de entrada no es separable de esta manera, un perceptron no encontrará solución. 68 Entrenamiento: Ajuste del valor del valor de umbral como un ‘peso’ más. wi x i + wi x i = θ wi xi + wi xi − θ = 0 wi xi + wi xi + θ ( −1) = 0 Para entender mejor al procedimiento de entrenamiento, vamos a introducir una representación vectorial. W·X=0 (producto punto = qué tan alineados están) Redes Neuronales Artificiales W W W X W· X>0 X W· X=0 Si W· X >= 0, y = 1; X W· X<0 Si W· X < 0, y = 0 ¿Qué pasa si no obtenemos el resultado deseado? Se requiere de un ajuste. ¿Cómo?, ¿De qué valor? 69 Si el resultado es 0 en lugar de 1: αX W W’ donde 0< α <1 W’=W+ αX X Si el resultado es 1 en lugar de 0: Redes Neuronales Artificiales W’ αX W X W’=W-αX En resumen: w’ = w + α(t-y)x ∆w = α(t-y)x A esto se le llama la regla de aprendizaje Delta. El parámetro α es la razón de aprendizaje. 70 Redes Neuronales Artificiales Algoritmo de entrenamiento del Perceptron repetir para cada par en los vectores de entrenamiento (x,t) evaluar la salida yi cuando xi es la entrada al ... perceptron si y ≠ t, entonces forme un nuevo vector de pesos w’ de acuerdo a... la ecuación correspondiente de otra manera, no haga nada Fin del si fin del para hasta que y = t para todos los vectores. Los valores de los pesos para este caso están restringidos entre -1 y 1. 71 Ejemplo Redes Neuronales Artificiales Q Supongamos que un Perceptron de dos entradas tiene pesos iniciales 0, 0.4 y umbral 0.3. Se requiere que este Perceptron aprenda la función lógica AND. Suponga una razón de aprendizaje α de 0.25. Usando el algoritmo expuesto complete la tabla hasta que encuentre convergencia. El percepton usado es el que muestra la figura. t x1 w1 a w2 x2 y 72 w’=w+α(t-y)x ó ∆wi=α(t-y)xi y = 1, si (x1w1 + x2w2) ≥ θ y = 0, si (x1w1 + x2w2) < θ Redes Neuronales Artificiales w1 = 0.0 w2 = 0.4 θ = 0.3 α = 0.25 t = Función AND ∆w1 ∆w2 ∆θ 0 0 0 1 0 -0.25 0 -0.25 0.25 0 0 0 0 0 0 0.25 0.25 0.25 -0.25 x1 x2 a y t α(t-y) 0.3 0 0 0 0 0 0.3 0 1 0.4 0 0.15 0.55 1 0 0 0 0.15 0.55 1 1 w1 w2 θ 0 0.4 0 0.4 0.15 0 1 0 1) ¿Cuántas iteraciones se requieren para la convergencia? 2) ¿Cuáles son los valores de convergencia de los pesos y el umbral? 3) Defina algebráicamente el hiperplano de decisión. 4) Demuestre gráficamente que éste hiperplano es un límite apropiado para la distinción de clases (ver gráfica) y que el vector de pesos y el hiperplano 73 son ortogonales. Valores finales: w1=0.5, w2=0.15, theta=0.55. Ec. de la recta: x2 = -(3.333)x1+3.667 Resultado Funcion lógica e hiperplano de decisión 2 1.5 Redes Neuronales Artificiales 1 x2 0.5 w 0 -0.5 -0.5 0 0.5 1 x1 1.5 2 74 ¿Qué pasa si la función que queremos realizar ahora es la siguiente? X1 0 0 1 1 x2 Redes Neuronales Artificiales 1 0 (0,1) X2 0 1 0 1 Y 0 1 1 0 (1,1) 0 1 (0,0) (1,0) x1 ¿Esta función sería realizable con un Perceptron, o no? 75 Medición del desempeño Q Q Redes Neuronales Artificiales Q Qué es el factor (t - y)? Para los Perceptrons, hay corrección, si hay error. Sólo se detecta la presencia del error, no su magnitud. En entrenamiento, cómo se sabe que se ha encontrado convergencia? En general, en entrenamiento se usa la figura de error de 'SSE' o suma de los cuadrados de los errores: Q Q sse = ∑ e( k ) = 2 k =1 2 ( t k y k ) − ( ) ( ) ∑ k =1 Esto se usa para cuando se esta entrenando una red en 'batch' o por lotes. Un lote en este caso es el conjunto de vectores de entrada que se muestran a la red para que ésta los procese en conjunto (en lugar de presentarlos vector por vector). 76 EPOCA y BIAS Redes Neuronales Artificiales Q Q Se le llama época a cada iteración de la red por el lote de entradas en la que haya ajuste de variables. El ajuste de variables se puede hacer después de la presentación de vectores de entrada individuales o por lotes. La variable θ también es llamada elemento de tendencia o 'bias' porque, como se ve en la figura anterior, es el que mueve el hiperplano de decisión a lo largo del eje 'x' (en este caso). A esta variable se le denomina en muchas ocaciones con el símbolo 'b'. 77 78 Redes Neuronales Artificiales