Construccion , Diseño y Entrenamiento de Redes Neuronales Artificiales

14,032 views

Published on

Published in: Education, Technology
6 Comments
4 Likes
Statistics
Notes
No Downloads
Views
Total views
14,032
On SlideShare
0
From Embeds
0
Number of Embeds
13
Actions
Shares
0
Downloads
485
Comments
6
Likes
4
Embeds 0
No embeds

No notes for slide

Construccion , Diseño y Entrenamiento de Redes Neuronales Artificiales

  1. 1. Diseño y Entrenamiento de Redes Neuronales Artificiales (Parte 2) “ Construcción de una Red”
  2. 2. Introducción <ul><li>Construir una red neuronal tiene una inherente calidad de experimentación. </li></ul><ul><li>Cada formula para el diseño de redes no es mas que una ayuda para su estimación. </li></ul><ul><li>En el diseño de redes neuronales no se puede evitar una cierta cantidad de Prueba y Error . </li></ul>
  3. 3. Tamaño de la capa oculta <ul><li>Existe un compromiso entre la precisión y la capacidad de generalización de una red neuronal; el cual dependerá del numero de neuronas en la capa oculta. </li></ul><ul><li>El número de neuronas debe ser suficiente para la realización correcta de la tarea, pero lo suficientemente bajo para permitir la generalización. </li></ul>
  4. 4. <ul><li>Entre mas complejo sea el problema, se requiere un mayor número de neuronas en la capa oculta. </li></ul><ul><li>Cualquier problema que requiera una compresión de datos presenta una capa oculta con un menor número de neuronas que en la capa de entrada. </li></ul><ul><li>Por ejemplo compresión de imagenes </li></ul>
  5. 5. <ul><li>En redes recurrentes la capa oculta es copiada regresando a la de entrada a través de otras unidades de entrada; por lo que fuerza a que la capa de entrada sea igual al numero de unidades de entrada mas el numero de neuronas en la capa oculta </li></ul>
  6. 6. <ul><li>De acuerdo con Hecht-Neilson basado en el teorema de Kolmogorov, “El numero de neuronas en la capa oculta no requieren ser mas grande que dos veces el numero de entradas”. </li></ul>
  7. 7. <ul><li>De manera que la red neuronal pueda generalizar se requiere que las funciones de transferencia sean suaves. P/ej. Funciones sigmoidales. </li></ul><ul><li>El numero de parámetros requeridos para codificar P patrones binarios es </li></ul>
  8. 8. <ul><li>De acuerdo con Widrow & lehr, en una red el numero de patrones de entrenamiento a aprender es reflejado en el numero de salidas en la red. </li></ul>
  9. 9. <ul><li>De acuerdo con Baum and Haussler; el numero de ejemplos de entrenamiento requeridos es aproximadamente igual al numero de pesos en la red multiplicado por el inverso del error. </li></ul>
  10. 10. <ul><li>Un pequeño error logrado por una red con overfitting no constituye una sesión de entrenamiento exitosa. </li></ul><ul><li>Si se desea usar una mayor cantidad de pesos respecto a al conjunto de datos, se debe ajustar un mayor error de entrenamiento con objeto de conservar la capacidad de generalización. </li></ul>
  11. 11. <ul><li>Es necesario sacrificar precisión en aras de obtener una mayor capacidad de generalización. </li></ul><ul><li>Para una red con una capa oculta, el numero de neuronas en la capa oculta estará dado por: </li></ul>
  12. 12. Conclusiones: Numero de Neuronas Ocultas (h) <ul><li>Nunca escoja el numero de neuronas ocultas mayor a dos veces el numero de unidades de entrada </li></ul><ul><li>Puede cargar P patrones de i elementos en numero de neuronas ocultas dado por: </li></ul>
  13. 13. <ul><li>Nunca use mas. Si quiere una buena característica de generalización use considerablemente menos. </li></ul><ul><li>Asegurese de tener al menos 1/  veces ejemplos de entrenamiento como tenga pesos en su red. </li></ul>
  14. 14. <ul><li>Donde: </li></ul><ul><li>P es el numero de patrones de entrenamiento necesarios. </li></ul><ul><li>W es el numero de pesos en la capa oculta. </li></ul><ul><li> es el error mínimo propuesto para la red. </li></ul>
  15. 15. <ul><li>El numero de unidades ocultas requeridas para tareas de clasificación se incrementa conforme al número de clases en la tarea. </li></ul><ul><li>Existe un compromiso entre la generalización (menos neuronas ocultas) y la precisión (mas neuronas ocultas) lo cual será de aplicación especifica. </li></ul>
  16. 16. <ul><li>Entre mas grande sea la red neuronal mayor será el tiempo de entrenamiento que se requiera. </li></ul>
  17. 17. Algoritmos Constructivos <ul><li>Se recomienda iniciar el entrenamiento con una unidad menos de la calculada en el limite inferior y entrenar hasta que el error se mantenga constante. </li></ul><ul><li>Después agregar otra neurona oculta, con valores de pesos pequeños y se repite el proceso. </li></ul>
  18. 18. <ul><li>Si el error de entrenamiento es bajo y el error de la prueba es alto, entonces se tienen muchos pesos. </li></ul><ul><li>Si tanto el error de entrenamiento y el de prueba es alto, se tienen muy pocos pesos. </li></ul><ul><li>Si los pesos son todos muy grandes entonces se tienen muy pocos pesos. </li></ul>
  19. 19. <ul><li>El agregar pesos no es una panacea, puede haber otras causas de error tales como un conjunto insuficiente de datos, o datos que no sean aprendibles. </li></ul><ul><li>Muy importante: los pesos iniciales de una red deben ser valores aleatorios en un pequeño intervalo (por ejemplo, +-1) </li></ul>
  20. 20. <ul><li>Kurkova: Cualquier función puede ser aproximada cuando mucho por una red de cuatro capas. </li></ul><ul><li>Hecht-Neilson: Solo se requieren tres capas pero el uso de una capa extra reducirá el numero total de neuronas en las capas ocultas. </li></ul><ul><li>De acuerdo a los resultados publicados los problemas deben ser resultos aplicando una capa oculta o máximo dos. </li></ul>
  21. 21. Funciones de Activación <ul><li>Funciones Sigmoidales: </li></ul><ul><li>Función logística: su salida esta acotada entre 0 y 1. </li></ul>Fácil implementaron en Hardware
  22. 22. <ul><li>Función Tangente hiperbólica: Su salida esta acotada entre -1 y 1. </li></ul>Nota: Aprendizaje más rápido, tiempos de entrenamiento menores
  23. 23. <ul><li>Lineal: Su salida no esta acotada. </li></ul>
  24. 24. Mediciones del Error
  25. 25. Mediciones de error <ul><li>La meta del entrenamiento de una red neuronal es minimizar el error en cada unidad de salida para el conjunto completo de datos de entrenamiento. </li></ul><ul><li>El error puede ser positivo o negativo, nuestro interés esta en la magnitud. </li></ul>
  26. 26. <ul><li>El error mas común es la diferencia simple: </li></ul><ul><li>El error total en la capa de salida: La Raíz del Error Cuadrático (RSE) </li></ul>
  27. 27. El error medio cuadrático (MSE) <ul><li>Para una sola presentación (Patrón) </li></ul>Donde: n es el numero de neuronas en la capa de salida. t es el valor objetivo. a es la salida de la neurona O bien
  28. 28. El error medio cuadrático (MSE) <ul><li>Para una Epoca </li></ul>Donde: E p es error medio cuadratico por cada presentación. m es el numero de presentaciones (patrones)en la Epoca.
  29. 29. Ajuste de la Razón de Aprendizaje y el Momento <ul><li>Un valor alto de   (0.75) producirá un aprendizaje mas rápido, pero incrementa el riesgo de que sobre impulso la solución provocando la oscilación. </li></ul><ul><li>Un valor bajo de   (0.1) evita el problema anterior pero hace lento el entrenamiento. </li></ul>
  30. 30. <ul><li>Un valor alto de   reducirá el riesgo de que la red sea atrapada en un mínimo local pero también puede provocar sobre impulso de la solución, tal como un valor alto de  . </li></ul><ul><li>Valores característicos: </li></ul>
  31. 31. Directrices de Entrenamiento <ul><li>Si la razón del error disminuye lentamente pero estable: se puede incrementar  y  . </li></ul><ul><li>Si la razón de error esta oscilando sobre un punto: Reduzca  (ayudará a que la red converja hacia un punto), incremente  (evitará el sobre impulso de la salida). </li></ul>
  32. 32. <ul><li>Si la razón del error no cambia: Probablemente haya convergido a una solución. </li></ul><ul><li>Siempre guarde una copia de los pesos </li></ul>
  33. 33. Entrenamiento de Redes Neuronales <ul><li>Se requiere una dosis de prueba y error. </li></ul><ul><li>Construir una red neuronal para solucionar aun el mas trivial de los problemas, Requiere: </li></ul><ul><li>Construir varias redes con diferente complejidad. </li></ul>
  34. 34. <ul><li>Detener el entrenamiento en diferentes puntos. </li></ul><ul><li>Iniciar con diferentes configuraciones aleatorias de pesos. </li></ul><ul><li>Cada red debe ser guardada, probada, analizada y la más apropiada finalmente seleccionada. </li></ul>
  35. 35. Formas de Entrenamiento
  36. 36. Modos de entrenamiento: Patrón o Lote (Batch) <ul><li>Patrón: los pesos son actualizados después de que cada patrón individual es presentado. </li></ul><ul><li>Lote: Cada vez que se concluye una época un solo error promedio se calcula y los parámetros de la red se actualizan en base a ese error. </li></ul>
  37. 37. Características del entrenamiento por Lotes <ul><li>Requiere un menor numero de actualizaciones: Es mas rápido. </li></ul><ul><li>Proporciona una medida mas precisa del cambio de pesos necesario. </li></ul>
  38. 38. <ul><li>Este modo se refiere únicamente al ajuste de los pesos. Los errores deben se retropropagados para cada patrón. </li></ul><ul><li>Este modo tiene mayor probabilidad de ser atrapada su solución en un mínimo local. </li></ul>
  39. 39. <ul><li>Un proyecto con redes neuronales requiere que se entrenen varias redes con el mismo conjunto de entrenamiento hasta encontrar la mejor solución </li></ul>
  40. 40. Cuando detener el entrenamiento <ul><li>El error promedio de entrenamiento ha alcanzado un valor objetivo predeterminado. </li></ul><ul><li>El error promedio de entrenamiento no disminuye mas, o cae en una cantidad insignificante. </li></ul><ul><li>El error promedio del conjunto de prueba independiente comienza incrementarse ( overfitting ) </li></ul>
  41. 41. Algoritmos de entrenamiento <ul><li>Backpropagation simple. </li></ul><ul><li>Backpropagation con Momento (  ) y razón de aprendizaje (  ) variable. </li></ul>
  42. 42. Algoritmo Backpropagation Estándar <ul><li>1) Construir la red con el numero seleccionado de unidades de entrada, ocultas, y de salidas. </li></ul><ul><li>2) Inicializar todos los pesos a valores aleatorios pequeños. </li></ul><ul><li>Repetir: </li></ul><ul><ul><li>3) Escoger un par de entrenamiento aleatorio </li></ul></ul>
  43. 43. <ul><ul><li>4) copiar el patrón de entrada en la capa de entrada. </li></ul></ul><ul><ul><li>5) Genere un ciclo en la red de tal forma que la activación de las entradas genere la activación de la capa oculta y la de salida. </li></ul></ul><ul><ul><li>6) Calcule el error derivado entre la activación de la salida y la salida objetivo </li></ul></ul>
  44. 44. <ul><ul><li>7) Retropropague el el producto sumado de de los pesos y los errores en la capa de salida de tal forma que calcule el error en la capa oculta. </li></ul></ul><ul><ul><li>8) Actualice los pesos en cada unidad de acuerdo al error en la unidad bajo los parámetros de entrenamiento. </li></ul></ul><ul><li>Hasta: El error sea suficientemente bajo de acuerdo al valor prefijado. </li></ul>
  45. 45. Bibliografía: <ul><li>Applying Neural Networks, A Practical Guide; Kevin Swingler ; Editorial Morgan Kaufmann. </li></ul>
  46. 46. Dudas ???
  47. 47. Hasta la próxima !!!

×