RED NEURONAL Backpropagation

25,550 views

Published on

6.3 RED de Retro-propagación
6.3.1 Modelo y Arquitectura de la Red.
6.3.2 Algoritmo de Aprendizaje.

Published in: Education, Technology
2 Comments
11 Likes
Statistics
Notes
No Downloads
Views
Total views
25,550
On SlideShare
0
From Embeds
0
Number of Embeds
1,175
Actions
Shares
0
Downloads
921
Comments
2
Likes
11
Embeds 0
No embeds

No notes for slide

RED NEURONAL Backpropagation

  1. 1. UNIDAD VI Redes de propagación hacia delante y aprendizaje supervisado 6.3 RED de Retro-propagación 6.3.1 Modelo y Arquitectura de la Red. 6.3.2 Algoritmo de Aprendizaje.
  2. 2. 6.3 RED De Retro-propagación 6.3.1 Modelo Y Arquitectura De La Red
  3. 3. Multilayer Perceptron R – S 1 – S 2 – S 3 Network
  4. 4. Arquitectura general de una red de propagación hacia atrás
  5. 6. ARQUITECTURA DE LA RBP <ul><li>Esta red puede utilizarse para “Aproximar una función”. Puede aproximar cualquier función con un numero finito de discontinuidades. </li></ul>
  6. 7. Introducción <ul><li>En 1986, Rumelhart, Hinton y Williams formalizaron un método para que una red neuronal aprendiera la relación que existe entre los patrones de entrada a la red y las salidas correspondientes, utilizando más niveles de neuronas que los que utilizó Rosenblatt para desarrollar el Perceptron. </li></ul>
  7. 8. Introducción <ul><li>La red Back-Propagation está basada en la generalización de la regla delta. </li></ul><ul><li>Al igual que el Perceptron, ADALINE y MADALINE, la red Back-Propagation se caracteriza por tener una arquitectura en niveles y conexiones estrictamente hacia adelante entre las neuronas. </li></ul><ul><li>Utilizan aprendizaje supervisado. </li></ul>
  8. 9. ¿En que consiste la RBP? <ul><li>Consiste en un aprendizaje de un conjunto predefinido de pares de entradas-salidas dados como ejemplo, empleando un ciclo propagación-adaptación de dos fases. </li></ul>
  9. 10. FASES <ul><li>Primero .- se aplica un patrón de entrada como estímulo para la primera capa de las neuronas de la red, se va propagando a través de todas las capas superiores hasta generar una salida. </li></ul><ul><li>Después se compara el resultado obtenido en las neuronas de salida con la salida que se desea obtener y se calcula un valor del error para cada neurona de salida. </li></ul>
  10. 11. FASES <ul><li>Segundo .- estos errores se transmiten hacia atrás, partiendo de la capa de salida, hacia todas las neuronas de la capa intermedia que contribuyan directamente a la salida, recibiendo el porcentaje de error aproximado a la participación de la neurona intermedia en la salida original. </li></ul>
  11. 12. <ul><li>La importancia de este algoritmo consiste en su capacidad de auto adaptar los pesos de las neuronas de las capas intermedias para aprender la relación que existe entre un conjunto de patrones dados como ejemplo y sus salidas correspondientes. </li></ul>Importancia
  12. 13. <ul><li>Ya entrenada la red se podrá aplicar esa misma relación ( terminado el entrenamiento ), a nuevos vectores de entrada con ruido o incompletos, dando una salida activa si la nueva entrada es parecida a las presentadas durante el aprendizaje. </li></ul>Generalización
  13. 14. Regla Delta Generalizada <ul><li>Es una extensión de la regla delta propuesta por Widrow (1960). </li></ul><ul><li>Se usa en redes con capas intermedias con conexiones hacia delante y cuyas células tienen funciones de activación continuas. Estas funciones continuas son no decrecientes y derivables (la función sigmoidal pertenece a este tipo de funciones). </li></ul>
  14. 15. Superficie de error <ul><li>El algoritmo utiliza una superficie de error asociada a la red, buscando el estado de mínimo error a través del camino descendente de la superficie del error. </li></ul>
  15. 16. Superficie de error
  16. 17. Estructura y aprendizaje <ul><li>Capa de entrada con n neuronas. </li></ul><ul><li>Capa de salida con m neuronas. </li></ul><ul><li>Al menos una capa oculta de neuronas. </li></ul><ul><li>Cada neurona de una capa recibe entradas de todas las neuronas de la capa anterior y envía su salida a todas las neuronas de la capa posterior. No hay conexiones hacia atrás ni laterales entre neuronas de la misma capa. </li></ul>
  17. 18. 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>
  18. 19. <ul><li>Si una red 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>
  19. 20. BPN vs. PERCEPTRON <ul><li>La salida de BPN puede tomar valores entre 0 y 1; el perceptrón sólo toma 0 o 1. </li></ul><ul><li>Perceptrón y BPN normalmente empiezan con un conjunto de pesos aleatorios. </li></ul><ul><li>El método de la regla delta generalizada para ajustar pesos es el mismo que el de la regla delta utilizada en el perceptrón y ADALINE. </li></ul><ul><li>BPN usa neuronas con función de activación continua. </li></ul>
  20. 21. MATLAB RED BACKPROPAGATION
  21. 22. MODELO DE UNA NEURONA <ul><li>SE PUEDEN CREAR Y SIMULAR CON: </li></ul><ul><li>initff y simuff. </li></ul><ul><li>LAS FUNCIONES DE ENTRENAMIENTO SON: </li></ul><ul><ul><li>trainbp (normal), </li></ul></ul><ul><ul><li>trainbpx (rápida), </li></ul></ul><ul><ul><li>trainlm (más rapida, mucha memoria de PC). </li></ul></ul>
  22. 23. FUNCION DE TRANSFERENCIA <ul><li>La función lonsig: </li></ul><ul><ul><li>La función logsig(n) genera salidas 0 y 1 para entradas a la red neuronal que van desde un valor negativo a positivo, infinito. </li></ul></ul><ul><li>También se pueden utilizar las funciones: </li></ul><ul><ul><li>tansig(n) y purelin(n). </li></ul></ul>
  23. 24. <ul><li>Si la ultima capa de una RBP tiene neuronas con funciones sigmoides entonces las salidas de la red estarán limitadas a un rango pequeño. </li></ul><ul><li>Pero si se utilizan funciones lineales, entonces la salida de la red podrá tomar cualquier valor. </li></ul>FUNCION DE TRANSFERENCIA
  24. 25. DERIVADAS DE LAS F. T.´S <ul><li>En una RBP es importante el poder calcular las derivadas de cualquier función de transferencia utilizada. </li></ul><ul><li>Las derivas de las funciones lonsig, tansig y purelin son: deltalog, deltatan y deltalin. </li></ul><ul><li>Tansig(‘delta’) </li></ul><ul><li>ans=deltatan </li></ul>
  25. 26. ... <ul><li>La función “simuff “.- Simula una red feedforward. </li></ul><ul><li>“ Simuff” toma las entradas de la red, P; los pesos, W; el umbral, b, y la función de transferencia para tres capas, y regresa las salidas de cada capa. Por ejemplo para simular dos capas: </li></ul><ul><li>[a1, a2]=simuff(p, W1, b1, ‘tansig’, W2, b2, purelin’) </li></ul>
  26. 27. ... <ul><li>Para calcular las salidas de una red de una, dos y tres capas: </li></ul><ul><li>a=simuff(p, W, b, ‘tansig’) </li></ul><ul><li>[a1, a2]=simuff(p, W1,B1, ‘logsig’, W2, b2, ‘purelin’) </li></ul><ul><li>[a1, a2, a3]=simuff(p, W1,B1, ‘tansig’, W2, b2, ‘logsig’, W3, b3, ‘purelin’) </li></ul><ul><li>a2=simuff(p, W1, b1, ‘tansig’, W2, b2, ‘purelin’) </li></ul>
  27. 28. INICIALIZACIÓN <ul><li>Para crear una red de dos capas con ocho neuronas ocultas tansig y cuatro neuronas de salida purelin, se tiene: </li></ul><ul><li>[W1,b1,W2,b2]=initff(P,8, ‘tansig’, 4 ‘purelin’) </li></ul><ul><ul><li>donde es importante que P contenga los limites mínimo y máximo de cada entrada para que así los mejores W y b sean calculados. </li></ul></ul>
  28. 29. INICIALIZACIÓN <ul><li>[W1,b1,W2,b2]=initff(P,5,’tansig’); </li></ul><ul><li>Por ejemplo, una red de una capa con cinco neuronas puede tener dos entradas, una de las cuales siempre tiene valores en el intervalo [-10,+10], y la otra en [0,5]. </li></ul><ul><li>[W1,b1,W2,b2]=initff(P, [-10 10; 0 5], ‘tansig’); </li></ul>
  29. 30. INICIALIZACIÓN <ul><li>Initff .- Puede automáticamente establecer el numero de neuronas en la capa de salida al número de columnas de la matriz objetivo T. </li></ul><ul><li>[W1,b1,W2,b2]=initff(P,8,’tansig’,T,’purelin’); </li></ul>
  30. 31. Regla de Aprendizaje de la BP <ul><li>Utilizada para entrenar redes no lineales multicapa se usa para llevar a cabo: </li></ul><ul><li>La Aproximación de funciones, </li></ul><ul><li>La asociación de patrones, y </li></ul><ul><li>La clasificación de patrones. </li></ul>
  31. 32. Regla de Aprendizaje de la BP <ul><li>Las derivadas del error (llamadas vectores delta) son calculadas para la capa de salida de la red, y entonces propagadas hacia atrás a través de la red hasta que los vectores delta están disponibles para cada capa oculta. Los cuales son calculados con las funciones: </li></ul><ul><li>deltalin, deltalog, y deltatan. </li></ul>
  32. 33. Regla de Aprendizaje de la BP <ul><li>deltalin(a,e) regresa el vector delta para una capa de salida de neuronas lineales con un vector de salida a y un vector de errores e . </li></ul><ul><li>deltalin(a,d,W) regresa el vector delta para una capa oculta de neuronas lineales, con un vector de salida a, presedido de una capa con un vector delta d y una matriz de pesos W. </li></ul>
  33. 34. Regla de Aprendizaje de la BP <ul><li>deltalog(a,e) Regresa deltas para una capa de salida logsig. </li></ul><ul><li>deltalog(a,d,W) Regresa deltas para una capa de oculta logsig. </li></ul><ul><li>deltatan(a,e) Regresa deltas para una capa de salida tansig. </li></ul><ul><li>deltatan(a,d,W) Regresa deltas para una capa de oculta tansig. </li></ul>
  34. 35. Regla de Aprendizaje de la BP <ul><li>El cambio realizado en los pesos y los umbrales son calculados por learnbp . </li></ul><ul><li>El cambio lo realiza utilizando el vector delta de la capa, y su vector de la capa de entrada p , de acuerdo a la regla: </li></ul>
  35. 36. 6.3 RED De Retro-propagación 6.3.2 Algoritmo de Aprendizaje y Entrenamiento
  36. 37. Funcionamiento del Algoritmo de Aprendizaje <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>
  37. 38. Funcionamiento del Algoritmo de Aprendizaje <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><ul><li>Propague los valores de ajuste de regreso al nivel anterior. </li></ul></ul></ul><ul><ul><ul><li>Actualice los pesos que hay entre los dos niveles. </li></ul></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>
  38. 39. Funcionamiento del Algoritmo de Entrenamiento <ul><li>El método es exactamente el mismo que el de la regla delta utilizada en el Perceptrón y ADALINE. </li></ul>
  39. 40. Algoritmo de retropropagación Primer Paso
  40. 41. Algoritmo de retropropagación Segundo Paso
  41. 42. Algoritmo de retropropagación Tercer Paso
  42. 43. Suponer que se quiere utilizar una RNA (1-2-1)para aproximar la función :
  43. 44. Entrenamiento Si p = 1 y entonces:
  44. 45. Entrenamiento La salida de la primera capa es:
  45. 46. Entrenamiento Mientras que la salida para la segunda capa es : Y se calcula el error de la red que será de:
  46. 47. Entrenamiento Etapa 2 retropopagación de la sensibilidad. Se necesita derivar las funciones de transferencia de las capas de la Red:
  47. 48. Entrenamiento El punto de inicio se encuentra en la segunda etapa : La sensibilidad de la primera capa se calcula al retropropagar la sensibilidad desde la segunda capa :
  48. 49. Entrenamiento La etapa final del algoritmo conlleva la actualización de los pesos :
  49. 50. Entrenamiento La etapa final del algoritmo conlleva la actualización de los pesos y umbrales, para la capa de salida:
  50. 51. Entrenamiento Y para las capas ocultas:
  51. 52. Entrenamiento Estos resultados completan la primera iteración del algoritmo de la retropropagación. Se continuará iterando hasta que la diferencia entre la respuesta de la red y la función objetivo alcance algún nivel aceptable.
  52. 53. Consideraciones sobre el algoritmo de aprendizaje <ul><li>Este algoritmo encuentra un valor mínimo de error (local o global) mediante pasos descendentes (gradiente descendente). </li></ul><ul><li>Cada punto de la superficie corresponde a un conjunto de valores de los pesos de la red. </li></ul>
  53. 54. Consideraciones sobre el algoritmo de aprendizaje <ul><li>Con el gradiente descendente, siempre que se realiza un cambio en todos los pesos de la red, se asegura el descenso por la superficie del error hasta encontrar el valle más cercano, lo que puede hacer que el proceso de aprendizaje se detenga en un mínimo local de error. </li></ul>
  54. 55. Superficie de error
  55. 56. UNIDAD VI Redes de propagación hacia delante y aprendizaje supervisado 6.4 Solución de problemas con MATLAB

×