Algoritmo de Retropropagación

13,241 views

Published on

Backpropagation

Published in: Education
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
13,241
On SlideShare
0
From Embeds
0
Number of Embeds
1,069
Actions
Shares
0
Downloads
552
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Algoritmo de Retropropagación

  1. 1. Algoritmo de Retropropagación “ Backpropagation ” ( BP )
  2. 2. Introducción
  3. 3. <ul><li>Fue primeramente propuesto por Paul Werbos en los 1970´s en una Tesis doctoral. </li></ul><ul><li>Sin embargo, este algoritmo no fue conocido sino hasta 1980 año en que fue re-descubierto por David Rumelhart, Geoffrey Hinton y Ronald William, también David Parker y Yan Le Cun. </li></ul>
  4. 4. <ul><li>Fue publicado “Procesos Distribuidos en Paralelo” por David Rumelhart y Mc Clelland, y ampliamente publicitado y usado el algoritmo “backpropagation”. </li></ul><ul><li>El perceptrón multicapa entrenado por el algoritmo de retropropagación es la red mas ampliamente usada. </li></ul>
  5. 5. Características
  6. 7. Introducción <ul><li>En muchas situaciones del mundo real, nos enfrentamos con información incompleta o con ruido, y también es importante ser capaz de realizar predicciones razonables sobre casos nuevos de información disponible. </li></ul>
  7. 8. <ul><li>La red de retropropagación adapta sus pesos, para adquirir un entrenamiento a partir de un conjunto de pares de patrones entrada/salida </li></ul><ul><li>Después que la red ha aprendido ha esta se le puede aplicar un conjunto de patrones de prueba, para ver como esta generaliza a patrones no proporcionados </li></ul>
  8. 9. <ul><li>Red feedforward, completamente conectada. </li></ul><ul><li>El flujo de información fluye de la capa de entrada a la de salida a través de la capa oculta </li></ul><ul><li>Cada unidad de procesamiento en la capa se conecta a todas las de la siguiente capa. </li></ul><ul><li>El nivel de activación en la capa de salida determina la salida de la red. </li></ul><ul><li>Las unidades producen valores reales basados en una función sigmoide. </li></ul>
  9. 10. <ul><li>Si n=0 a=0.5, conforme n se incrementa la salida se aproxima a 1, conforme n disminuye, a se aproxima a 0 </li></ul><ul><li>Funciones de transferencia (diferenciables) </li></ul><ul><ul><li>Sigmoidales, </li></ul></ul><ul><ul><li>Lineales </li></ul></ul>
  10. 11. Propiedades de Backpropagation <ul><li>La función de error define una superficie en el espacio de pesos, y estos son modificados sobre el gradiente de la superficie </li></ul><ul><li>Un mínimo local puede existir en la superficie de decisión: esto significa que no hay teorema de convergencia para la retropropagación (el espacio de pesos es lo suficientemente grande que esto rara ves sucede) </li></ul>
  11. 12. <ul><li>Las redes toman un periodo grande de entrenamiento y muchos ejemplos. </li></ul><ul><li>Además mientras la red generaliza, el sobre entrenamiento puede generar un problema. </li></ul>
  12. 13. Arquitectura
  13. 14. Perceptrón Multicapa R – S 1 – S 2 – S 3 Network
  14. 15. Algoritmo de Aprendizaje
  15. 16. Algoritmo de BP <ul><li>Los pesos se ajustan después de ver los pares entrada/salida del conjunto de entrenamiento. </li></ul><ul><li>En el sentido directo la red permite un flujo de activación en las capas. </li></ul><ul><li>En la retropropagación, la salida actual es comparada con la salida deseada, entonces se calcula el error para las unidades de salida </li></ul>
  16. 17. <ul><li>Entonces los pesos en la salida son ajustados para reducir el error, esto da un error estimado para las neuronas ocultas y así sucesivamente. </li></ul><ul><li>Una época se define como el ajuste de los pesos para todos los pares de entrenamientos, usualmente la red requiere muchas épocas para su entrenamiento. </li></ul>
  17. 18. Algoritmo <ul><li>Inicialice los pesos de la red con valores pequeños aleatorios. </li></ul><ul><li>Presentar un patrón de entrada y especificar la salida deseada. </li></ul><ul><li>Calcule los valores de ajuste de las unidades de salida en base al error observado. </li></ul>
  18. 19. Algoritmo <ul><li>Empezando por el nivel de salida, repita lo siguiente por cada nivel de la red, hasta llegar al primero de los niveles ocultos: </li></ul><ul><ul><li>Propague los valores de ajuste de regreso al nivel anterior. </li></ul></ul><ul><ul><li>Actualice los pesos que hay entre los dos niveles. </li></ul></ul><ul><li>El proceso se repite hasta que el error resulta aceptablemente pequeño para cada uno de los patrones aprendidos. </li></ul>
  19. 20. Gradiente Descendente <ul><li>Después que se calcula el error, cada peso se ajusta en proporción al gradiente del error, retropropagado de la salidas a las entradas. </li></ul><ul><li>El cambio en los pesos reduce el error total </li></ul>Wji Error
  20. 21. Mínimo Local <ul><li>Entre mas unidades ocultas se tengan en red, menor es la probabilidad de encontrar un mínimo local </li></ul>
  21. 23. Superficie de error en 2D
  22. 24. Superficie de Error en 3D
  23. 25. Selección de los Wij iniciales <ul><li>El error retropropagado a través de la red es proporcional al valor de los pesos. </li></ul><ul><li>Si todos los pesos son iguales, entonces el error retropropagado será igual, y todos los pesos serán actualizados en la misma cantidad </li></ul>
  24. 26. Selección de los Wij iniciales <ul><li>Si la solución al problema requiere que la red aprenda con pesos diferentes, entonces el tener pesos iguales al inicio previene a la red de aprender. </li></ul><ul><li>Es también recomendable tener valores pequeños de activación (umbral) en las unidades de procesamiento. </li></ul>
  25. 27. Razón de Aprendizaje <ul><li>Entre mas grande es la razón de aprendizaje (  ) mayor es el cambio en los valores de los pesos cada época, y mas rápido aprende la red. </li></ul><ul><li>Si la  es demasiado grande, entonces el cambio en los pesos no se aproxima al gradiente descendente, dando como resultado una oscilación en los pesos. </li></ul><ul><li>Se desea usar una  lo mas grande posible sin llegar a la oscilación. </li></ul>
  26. 28. Control de la convergencia <ul><li>La velocidad de aprendizaje se controla mediante  . Normalmente, debe ser un número entre 0.05 y 0.25. </li></ul><ul><li>Velocidad de convergencia </li></ul><ul><li>El valor de  se aumenta a medida que disminuye el error. </li></ul><ul><li>Añadir un momento (sumar una fracción del ajuste de peso anterior al ajuste actual). </li></ul>
  27. 29. <ul><li>Si una red neuronal deja de aprender : </li></ul><ul><li>Realizar un cambio en el número de neuronas ocultas. </li></ul><ul><li>Volver a empezar con un conjunto distinto de pesos. </li></ul>
  28. 30. Formulario
  29. 31. Propagación Hacia Adelante
  30. 32. Retropropagación
  31. 33. Actualización de pesos
  32. 34. F Ý m n m   f Ý m n 1 m   0  0 0 f Ý m n 2 m    0    0 0  f Ý m n S m m   = s m F ˆ  n m  - - - - - - - - - -  F ˆ  n 1 m  - - - - - - - - - F ˆ  n 2 m  - - - - - - - - -  F ˆ  n S m m  - - - - - - - - - - - =
  33. 35. Aplicaciones
  34. 36. Ejemplos Prácticos <ul><li>Determina si un hongo es venenoso </li></ul><ul><li>Considera 8124 variedades de hongo </li></ul><ul><li>Cada hongo es descrito usando 21 características. </li></ul>
  35. 39. Diagnostico Medico <ul><li>Basado en Visión por computadora </li></ul><ul><li>los síntomas son las entradas </li></ul><ul><li>Los síntomas son trasladadas a un punto en el espacio de los patrones </li></ul>
  36. 42. Ejercicios
  37. 43. Ejemplo 1: Aproximación de de una función senoidal 1-2-1 Network a p
  38. 44. Condiciones Iniciales
  39. 45. Propagación hacia delante
  40. 46. Derivadas de la función de transferencia
  41. 47. Retropropagación
  42. 48. Actualización de W y B
  43. 49. Actualización de W y B
  44. 50. Elección de Arquitectura 1-5-1 1-2-1 1-3-1 1-4-1
  45. 51. Elección de Arquitectura 1-3-1 Network i = 1 i = 2 i = 4 i = 8
  46. 52. Ejemplo 2: Clasificación de la compuerta OR-Exclusiva Diseñe una red de retropropagación que solucione el problema de la OR-exclusiva usando el algoritmo de retropropación (regla delta generalizada)
  47. 53. Ejemplo 2: Clasificación de la compuerta OR-Exclusiva Parámetros iniciales
  48. 54. Simulación en Matlab / NNT
  49. 55. Red Multicapa
  50. 56. <ul><li>Initff: </li></ul><ul><li>crea un conjunto de pesos y umbrales para una red feed forward. </li></ul><ul><li>Toma una matriz de de vectores de entrada P, y el tamaño S, y las funciones de transferencia para cada capa, regresando los valores de W y b correspondientes a las dimensiones de la red. </li></ul>
  51. 57. <ul><li>Ejemplos: Iniciar una red con 8 neuronas ocultas sigmoidales y cuatro de salida lineales. </li></ul><ul><li>[W1,b1,W2,b2]=initff(P,8,’tansig’,4,’purelin’) </li></ul><ul><li>También initff puede ajustar el numero de neuronas en la capa de salida igual al numero de filas en la matriz T. </li></ul><ul><li>[W1,b1,W2,b2]=initff(P,8,’tansig’,T,’purelin’) </li></ul>
  52. 58. <ul><li>trainbp </li></ul><ul><li>Se usa para entrenar redes multicapa, con una, dos, o tres capas. </li></ul><ul><li>Ejemplo, para entrenar una red de dos capas la función seria: </li></ul><ul><li>[W1,b1,W2,b2,epochs,tr] = trainbp (W1,b1,’tansig’, W2,b2,’purelin’,p,t,tp) </li></ul><ul><li>tp= [disp-freq max-epoch err-goal lr] </li></ul>
  53. 59. <ul><li>simuff </li></ul><ul><li>Simula una red feed forward. Toma la entrada P, los pesos W, los umbrales b, y la funcion de transferencia de cada capa y entrega las salidas de la capa a. </li></ul><ul><li>Ejemplo, para simular una red de dos capas </li></ul><ul><li>[a1,a2] = simuff (P,W1,b1,’tansig’, W2,b2,’purelin’) </li></ul>
  54. 60. <ul><li>trainbpx </li></ul><ul><li>Entrena redes multicapa con retropropagación rápida. Se puede usar para redes de una,dos o tres capas. </li></ul><ul><li>Ejemplo use la funcion trainbpx para una red de dos capas. </li></ul><ul><li>[W1,b1,W2,b2,epochs,tr] = trainbpx (W1,b1,’tansig’, W2,b2,’purelin’,p,t,tp) </li></ul>
  55. 61. <ul><li>Valores por omisión para tp </li></ul><ul><li>tp= [disp-freq = 25 </li></ul><ul><li>max-epoch= 100 </li></ul><ul><li>err-goal= 0.02 </li></ul><ul><li>lr= 0.01 </li></ul><ul><li>momentum= 0.9 </li></ul><ul><li>lr-inc= 1.05 </li></ul><ul><li>lr-dec= 0.7 </li></ul><ul><li>err-ratio= 1.04 ] </li></ul>
  56. 62. <ul><li>learnbp </li></ul><ul><li>La regla de aprendizaje de retropropagacion ajusta los pesos y umbrales de la red, de tal forma que minimise el error cuadrático de la red. </li></ul><ul><li>Esto se logra ajustando continuamente los parametros libres de la red en la direccion del gradiente descendente, respecto a la suma del error cuadratico. </li></ul>
  57. 63. <ul><li>learnbp(P,D,lr) </li></ul><ul><li>Regresa el cambio en la matriz de pesos para una capa determinada, para los vectores de entrada P a la capa, los vectores delta D, y la razón de aprendizaje lr. </li></ul><ul><li>[dW,db]=learnbp(P,D,lr) </li></ul><ul><li>Regresa tanto el cambio en la matriz de pesos W por capa como el cambio en en el vector de umbrales b </li></ul>
  58. 64. <ul><li>Ejemplo: Codigo para solucionar el problema de la OR-EXCLUSIVA. </li></ul><ul><li>P=[0 0 1 1; 0 1 0 1] </li></ul><ul><li>T=[0 1 1 0] </li></ul><ul><li>[W1,b1,W2,b2]=initff(P,8,´tansig´,T,´purelin´) </li></ul><ul><li>tp=[25 100 0.02 0.01] </li></ul><ul><li>[W1,b1,W2,b2,epochs,tr] = trainbp (W1,b1,’tansig’, W2,b2,’purelin’,p,t,tp) </li></ul><ul><li>[a1,a2] = simuff (P,W1,b1,’tansig’, W2,b2,’purelin’) </li></ul>
  59. 66. Dudas ???
  60. 67. Hasta la próxima !!!

×