Está en la página 1de 12

Redes neuronales (y algoritmos genéticos

)

1. El Perceptron 2. Descenso por gradiente 3. Regla Delta 4. Redes multicapa 5. Funciones de activación 6. Retropropagación 7. Computación evolucionista

 

c 2002 DIT-ETSIT-UPM

Aprendizaje: redes neuronales (y algoritmos genéticos)

transp. 1

Neurona formal (1943)
e 1 e n i 1 i m

s=1 si (

e

U

i

U) y (

i = 0)
j

El modelo simula: Sinapsis excitadoras e inhibidoras Umbral de excitación Sumación espacial

 

c 2002 DIT-ETSIT-UPM

Aprendizaje: redes neuronales (y algoritmos genéticos)

transp. 2

3 El Perceptron (Rosenblatt. 4 ¨ Si s 1 y r 1 aumentar los wi correspondientes a xi reducir los correspondientes a xi 0 ¢   ¤ ¢  © ¨ ¤    ¥¥¥ ¦§¦¤   ¤          E x 1 x2 xn r r  ¡ Conjunto de entrenamiento: ¢ £¡   c 2002 DIT-ETSIT-UPM Aprendizaje: redes neuronales (y algoritmos genéticos) transp.Neuronas formales y lógica de orden 0 McCulloch y Pitts (1943) x x x 1 2 3 3 x ·x ·x 1 2 3 x x x 1 2 3 2 x ·x ·x 1 2 3 x x x x x 1 2 x 3 1 x ·x ·x 1 2 3 x x 1 2 1 3 1 x ·x ·x 1 2 3 x x 1 2 3 1 1 1 x ·x +x ·x 1 2 1 2 1 x +x +x 1 2 3 1 x x x 1 2 1 2 Regla de entrenamiento (refuerzo): c 2002 DIT-ETSIT-UPM Aprendizaje: redes neuronales (y algoritmos genéticos) ¨ Si s 1 y r 1 reducir los wi correspondientes a xi aumentar los correspondientes a xi 0 0y transp. 1958) x0=-1 w 0 y= w ·x i i s = 1 si y > 0 s = -1 si y <= 0 x 1 w 1 w n x n 11 0y .

5 Convergencia del Perceptron x 1 x 2 x n algoritmo de refuerzo Minsky y Papert (1969)   c 2002 DIT-ETSIT-UPM Aprendizaje: redes neuronales (y algoritmos genéticos) ¡ ¥¥¥ ¦§¦¤ Condición de convergencia: separabilidad lineal en el espacio x1 x2 xn ¤   transp. 6 . i++) { dw[i] = k*(r[e]-s[e])*x[i][e]. } } x[i][e] = xi para el ejemplo e   c 2002 DIT-ETSIT-UPM Aprendizaje: redes neuronales (y algoritmos genéticos) transp. e++) for (i=0. i<=n. e<nEj.Algoritmo del Perceptron x x0=-1 w 0 y= w ·x i i s = 1 si y > 0 s = -1 si y <= 0 1 w 1 w n x n while (!cond_term) { for (e=0. w[i] = w[i] + dw[i].

8 . ∆w  ¤  ¢   ∆w   K ∇E ¥ ¥¥ ¦¦¥    ∇E ∂E ∂w0 ∂E ∂wn : dirección de máximo crecimiento de E Aprendizaje: redes neuronales (y algoritmos genéticos)   ¢     ¡   ¡     £     ¡ Elemento lineal: y x   ¡   sx w x E       ¡ ¤   £   w 2 w 1   transp. ∇E ∂E ∂w0 ∂E ∂wn . se xie ¢     ¥ ¥¥ ¦¦¥   ¡     ¡ E w   ¦   1 2Σ re se 2 . 7 K ∇E   transp.Descenso por gradiente: principio 1 Σ r e se 2 E w 2 (e: índice de ejemplos) ¡   Error de una hipótesis w : ¡ Idea: acercarse al mínimo mediante incrementos de w proporcionales al gradiente de E c 2002 DIT-ETSIT-UPM Descenso por gradiente: adaptación de pesos c 2002 DIT-ETSIT-UPM Aprendizaje: redes neuronales (y algoritmos genéticos) ¢ ¡   ¢   ∆wi K Σ re se xie ¢ ¡      ¡     ∂E ∂wi 1 ∂ 2 Σ ∂wi re se 2 Σ re     ¢      Como se w xe .

e<nEj. 9 Descenso incremental o «regla delta» se 2 transp. i<=n. }   c 2002 DIT-ETSIT-UPM Aprendizaje: redes neuronales (y algoritmos genéticos) ¤    Algoritmo (igual al del Perceptron. e<nEj. sino por ejemplo: Ee w   £   1 2 re  ¤   c 2002 DIT-ETSIT-UPM Aprendizaje: redes neuronales (y algoritmos genéticos) transp. i++) w[i] = w[i] + k*(r[e]-s[e])*x[i][e]. i++) w[i] = w[i] + dw[i]. for (e=0. i<=n. i<=n. i++) dw[i] = dw[i] + k*(r[e]-s[e])*x[i][e]. i<=n. 10 . e++) for (i=0. pero re se 0 1 ):   ¡ No función error global. 1960: «adalines»): ¡   Iteración sobre los ejemplos. i++) dw[i] = 0. e++) for (i=0. } x[i][e] es xie: valor de la entrada i para el ejemplo e Variante del algoritmo del gradiente (Widrow y Hoff. modificando wi para cada uno ¡ while (!cond_term) { for (e=0.Descenso por gradiente: algoritmo while (!cond_term) { for (i=0. for (i=0.

Diferencias entre Perceptron. Gradiente y Regla Delta Delta aproxima Gradiente para K suficientemente pequeño. 11 Redes multicapa Perceptron y otras funciones de activación con una sola capa: limitación por la condición de separabilidad lineal ¿Se pueden conseguir superficies no lineales con una red de varias capas? Para funciones lógicas. el error (continuo) de la combinación lineal de entradas Perceptrón converge tras un número finito de iteraciones a una hipótesis (w) que clasifica perfectamente los ejemplos siempre que éstos sean linealmente separables Gradiente/Delta convergen asintóticamente a una hipótesis de mínimo error (local) aunque los ejemplos no sean linealmente separables (Demostraciones en Hertz et al. Gradiente/Delta. y requiere menos computación Si hay varios mínimos (funciones de activación no lineales). Delta mejor que Gradiente para evitar mínimos locales Perceptrón usa el error (discreto) a la salida del umbral.. 1969)   c 2002 DIT-ETSIT-UPM Aprendizaje: redes neuronales (y algoritmos genéticos) transp. 1991)     c 2002 DIT-ETSIT-UPM Aprendizaje: redes neuronales (y algoritmos genéticos) transp. 12 . sí (ejemplo típico: ORX) Pero no con el algoritmo del gradiente ni la regla delta: la red seguiría siendo lineal ¿Con funciones de activación no lineales? (como el Perceptron) «Nuestra opinión personal es que la extensión es estéril» (Minsky y Papert.

El entrenamiento de redes multicapa Problema del entrenamiento: asignación de mérito (credit assignment) Mérito (o responsabilidad) de un peso (wi j : ∂E medida de su contribución al error global ( ∂w ) Dificultad con el Perceptron: la función de activación no es diferenciable Se necesita una neurona con función de activación no lineal. con δ j rj sj sj 1 sj transp. para poder calcular ∆wi j        K ∂E ∂wi j transp. ds dy sy 1    diferenciable. para conseguir superficies no lineales ¢ ¡ ij c 2002 DIT-ETSIT-UPM Aprendizaje: redes neuronales (y algoritmos genéticos) Neurona no lineal y diferenciable x 1j w 1j x0j =-1 w 0j y= j wnj x nj ∂E ∂y j ∂y j ∂wi j ∂ 1 ∂y j 2     ¡ ¡     w ·x ij ij ("net ") j c 2002 DIT-ETSIT-UPM Aprendizaje: redes neuronales (y algoritmos genéticos) ¡   ¢ ¢ ¡     ¢ ¢   ∆wi j   K δ j xi j . 13 s(y j) = 1 -y 1+e j sy sj .        ∂Ee ∂y j ¢   ¢   ∂E ∂wi j ∂E ∂y j xi j ∂s j ∂y j ¢ ¡     Con esta función sigmoidal (o logística). 14 ¡   ¢  ¢ ¡      ¡     ¡ ¡ rj sj 2 rj sj rj sj sj 1  Si se conoce r j (neurona de salida) para un ejemplo e.

∆wi j Para la función de activación sigmoidal resulta: ¡   Neuronas de la capa anterior a la de salida: Neuronas de la capa c: ¡   ¡ r: capa c+1 c 2002 DIT-ETSIT-UPM Aprendizaje: redes neuronales (y algoritmos genéticos) ¢ ¢ ¡   ¢   δh   sh 1 sh Σ ¢   ¢ ¡    ¢   δh sh 1 sh Σl whl δl whr δr ¢ ¡   ¢   Neuronas de salida: δl sl 1 sl rl     δj ∂Ee ∂y j sl ¢ ¢   ¢ K ∂Ee ∂wi j ¡         ¡ Regla delta: Ee w   £     rle      ¡ Gradiente: E w   ¦   1 ΣΣ 2 e l 1 Σ 2 l rle     ¤ sle sle 2 2 transp. 16 . 15 K δ j xi j . entradas a la red) wi j : peso de la conexión de la neurona i a la j δ j : factor de error de la neurona j e: índice sobre los ejemplos l : índice sobre las neuronas de salida h r: índices sobre neuronas ocultas Para varias neuronas de salida el error global de una hipótesis w es: ¡ c 2002 DIT-ETSIT-UPM Aprendizaje: redes neuronales (y algoritmos genéticos) Ajuste de pesos en redes multicapa Considerando regla Delta. con transp.Notación para redes multicapa xi j : entrada a la neurona j procedente de la i (para la capa de entrada.

c++) { /* nc: número de capas */ for (j=0. neuronas en capa c */ for (i=0. i++) /* Si nc = 1. w[0][i][j]). i<nn[nc-2]. w[c][i][j]). j++) { /* nn[c]: num. ie++) { /* nEj: número de ejemplos */ for (j=0. s[0][j] = f(x[0][i][j]. i++) /* nEnt: num.ent. nn[nc-2] = nEnt */ w[nc-1][i][l] = w[nc-1][i][l] + K*d[nc-1][l]*x[nc-1][i][l]. i<nEnt. j<nn[c]. c<nc.s[nc-1][l]). capa c */ x[c][i][j] = s[c-1][i]. /* Ajuste de pesos de la capa de salida */ for (i=0. while (!cond_term) { for (ie=0. i++) /* nn[c-1] = num. modificando los pesos convenientemente   c 2002 DIT-ETSIT-UPM Aprendizaje: redes neuronales (y algoritmos genéticos) transp. 18 .Algoritmo de retropropagación: adelante /* Se inicia w[c][i][j] con números aleatorios pequeños */ iniciar(w). 17 Algoritmo de retropropagación: errores de salida /* Errores en la capa de salida (nc-1) */ for (l=0. l<nn[nc-1]. /* bucle en i */ } } /* ya tenemos las salidas para el ejemplo ie */   c 2002 DIT-ETSIT-UPM Aprendizaje: redes neuronales (y algoritmos genéticos) transp. } En el caso de una sola capa. entradas a la red */ x[0][i][j] = e[ie][i][j]. ie<nEj.s[nc-1][l])*(r[ie] . hemos terminado (falta cerrar el bucle de ejemplos y la condición de terminación) En el caso de varias capas falta lo más interesante: propagar hacia atrás los errores. j<nn[0]. /*sigm(Σ(w*x)): bucle en i*/ } /* Se propaga hacia adelante la entrada */ for (c=1. j++) { for (i=0. s[c][j] = f(x[c][i][j]. i<nn[c-1]. l++) { d[nc-1][l] = s[nc-1][l]*(1 .

h++) { suma = 0. 1990)   c 2002 DIT-ETSIT-UPM Aprendizaje: redes neuronales (y algoritmos genéticos) transp. nn[c-1] = nEntr */ w[c][i][h] = w[c][i][h] + K*d[c][h]*x[c][i][h]. c--) { for (h=0. Hinton y Williams (1985) Idea original de Werbos (1974) redescubierta por Parker (1982) (Widrow. 19 Redes multicapa: ejemplo Una capa oculta: superficies convexas Dos capas ocultas: superficies arbitrarias Ejemplo: reconocimiento de 10 sonidos vocales en el contexto «h_d» (Huang y Lippmann. i<nn[c-1]. i++) /* Si c=0. d[c][h] = s[c][h]*(1 . Proc. 20 .Algoritmo de retropropagación: atrás /* Se propagan hacia atrás los errores (si nc > 1)*/ for (c=nc-2. IEEE. h<nn[c]. for (r=0. r++) suma = suma + w[c][h][r]*d[c+1][r]. 1988) 4000 head heed hid had head hid 2000 F2 (Hz) F 1 1000 F 2 heard who’d hood hud hod who’d 500 0 500 hawed 1000 F1 (Hz) 1400 hood   c 2002 DIT-ETSIT-UPM Aprendizaje: redes neuronales (y algoritmos genéticos) transp. } } } /* cierra el bucle de ejemplos */ } /* cierra la condición de terminación */ Atribuido generalmente a Rumelhart. Sep. /* y se van ajustando los pesos */ for (i=0. c>=0. r<nn[c+1].s[c][h])*suma.

22 . no hay tantas técnicas informáticas que hayan demostrado su valor a lo largo de 3. trueque de genes (crossover) «Computación evolucionista:» Algoritmos genéticos: individuos = cadenas de bits Programación genética: individuos = árboles sintácticos de los programas población de individuos competición por recursos selección combinación de adaptados   transp.000 millones de años de pruebas de campo» (Forsyth. 1958) Actualmente. 1986)     reproducción mutaciones   c 2002 DIT-ETSIT-UPM Aprendizaje: redes neuronales (y algoritmos genéticos)     c 2002 DIT-ETSIT-UPM Aprendizaje: redes neuronales (y algoritmos genéticos) transp.Modelos basados en la naturaleza («biónicos») Ontogénesis Modelos neurocibernéticos Filogénesis Modelos evolucionistas «Al fin y al cabo. p. énfasis en otros mecanismos genéticos. 21 La evolución como modelo Primeras ideas: Generación de mutaciones al azar sobre el código binario de programas (Frieldberg.. ej.

Algoritmos genéticos para optimización ¡ Operadores genéticos:   Mutación (cambio de un bit con probabilidad pequeña) Selección de las parejas reproductoras (probabilidad proporcional al valor de la función)   Entrecruzamiento de los genomas de cada pareja   Nueva generacion: los hijos sustituyen a los individuos menos adaptados Convergencia: cuando hay muchos valores iguales La mutación sirve para resolver el problema de los máximos locales   c 2002 DIT-ETSIT-UPM Aprendizaje: redes neuronales (y algoritmos genéticos) ¡ ¥¥¥ ¦§¦¤ Población: valores del dominio x1   xn en binario ¥¥¥ ¦¦¦¤ Problema: encontrar el máximo de f x1   xn transp. 23 .