No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

C贸mo mejorar las predicciones de redes neuronales

13/16
Recursos

Refuerza y practica tu ingl茅s con los cursos de English Academy 馃殌
Screenshot 2023-10-19 at 11.56.36鈥疉M.png

Aportes 12

Preguntas 1

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

Con este video me termino de quedar M脕S que claro los conceptos de OVERFITTING y UNDERFITTING:
https://www.youtube.com/watch?v=_opXSMa_nX4&ab_channel=AprendeInnovando

To understand a little bit more about overfitting and underfitting, I found this example:

Let鈥檚 Imagine we have three students, let鈥檚 call them student A, B and C respectively

  • Student A is not interested in learning and he/she doesn鈥檛 pay much attention
  • Student B pays attetion in class, but he/she memorizes absolutely all that professor says, not learning the main concepts
  • Student C pays attention in class and he/she learns the gist concepts from the classes, not memorizing but learning


Now, the professor decides to take a class test previosly before the official test, the class test would be the training set and the official test would be the test set

|

  • Student A obtains 50% in this class test because he/she is not interested in learning and hence in the official test she/he will obtain a bad result as well (Underfitting)
  • Student B obtains 98% in this class test because he has memorized all, but he will obtain a lower score in the official test because he/she will have difficulties to face the new information that he/she didn鈥檛 see in classes and the class test, since he/she doesn鈥檛 learn just memorize (Overfitting)
  • Student C obtains quite similiar results in both cases, because this student learned the main concepts and doesn鈥檛 have problems with new information (Ideal Case)

|

Reference link: https://www.analyticsvidhya.com/blog/2020/02/underfitting-overfitting-best-fitting-machine-learning/

Hay varias estrategias que se pueden utilizar para mejorar las predicciones de las redes neuronales.

Recopilar m谩s datos:

  • A menudo, el rendimiento de una red neuronal mejora cuando se tienen m谩s datos de entrenamiento. Cuanto m谩s variado y representativo sea el conjunto de datos, mejor ser谩 la capacidad del modelo para generalizar y realizar predicciones precisas.

Preprocesar los datos:

  • Realizar un buen preprocesamiento de los datos puede ayudar a mejorar las predicciones. Esto puede incluir normalizaci贸n, estandarizaci贸n, codificaci贸n de variables categ贸ricas, eliminaci贸n de valores at铆picos, manejo de valores faltantes, entre otros. El preprocesamiento adecuado puede ayudar a reducir el ruido y mejorar la calidad de los datos de entrada.

Ajustar la arquitectura de la red:

  • La elecci贸n de la arquitectura de la red neuronal es crucial. Puedes experimentar con diferentes configuraciones, como el n煤mero de capas ocultas, el n煤mero de neuronas por capa, las funciones de activaci贸n, etc. A veces, aumentar la complejidad de la red o agregar capas adicionales puede mejorar su capacidad de aprendizaje.

Regularizaci贸n:

  • La regularizaci贸n es una t茅cnica que ayuda a prevenir el sobreajuste (overfitting) de la red neuronal. Puedes utilizar m茅todos de regularizaci贸n como la regularizaci贸n L1 o L2, la eliminaci贸n aleatoria de neuronas (dropout), la normalizaci贸n de lotes (batch normalization), entre otros. Estas t茅cnicas ayudan a controlar la complejidad de la red y mejorar su capacidad de generalizaci贸n.

Optimizaci贸n del aprendizaje:

  • La elecci贸n del algoritmo de optimizaci贸n y la tasa de aprendizaje pueden afectar el rendimiento del modelo. Puedes probar diferentes algoritmos de optimizaci贸n, como el descenso de gradiente estoc谩stico (SGD), el optimizador Adam, el optimizador RMSprop, entre otros. Adem谩s, ajustar la tasa de aprendizaje puede ayudar a encontrar un equilibrio entre la velocidad de convergencia y la estabilidad del entrenamiento.

Aumento de datos (data augmentation):

  • Esta t茅cnica consiste en generar nuevas muestras de entrenamiento a partir de las muestras existentes mediante transformaciones y perturbaciones. Por ejemplo, se pueden aplicar rotaciones, desplazamientos, cambios de escala, recortes, cambios de iluminaci贸n, entre otros, a las im谩genes de entrada. El aumento de datos puede ayudar a mejorar la capacidad de generalizaci贸n y evitar el sobreajuste.

Ensamblaje de modelos (model ensembling):

  • Combinar las predicciones de varios modelos puede mejorar el rendimiento. Puedes entrenar m煤ltiples redes neuronales con diferentes configuraciones y luego combinar sus predicciones utilizando m茅todos como el promedio, votaci贸n o stacking. Esto puede ayudar a reducir el sesgo y la varianza y mejorar la precisi贸n del modelo final.

Muy buen curso

Concepto de 茅poca en ML: Cada ciclo de correcci贸n de propagaci贸n hacia atr谩s y hacia adelante para reducir la p茅rdida se denomina 茅poca. En resumen, la propagaci贸n hacia atr谩s consiste en determinar las mejores ponderaciones y sesgos de entrada para obtener un resultado m谩s preciso o "minimizar la p茅rdida". <https://learn.microsoft.com/es-es/archive/msdn-magazine/2019/april/artificially-intelligent-how-do-neural-networks-learn> Una ejecuci贸n completa del conjunto de datos de entrenamiento a trav茅s del algoritmo se conoce como una 茅poca en el aprendizaje autom谩tico. <https://coinmarketcap.com/academy/es/glossary/epoch> Epoch en el aprendizaje autom谩tico, una 茅poca (o 芦epoch禄 en ingl茅s) en inteligencia artificial se refiere a una iteraci贸n completa de entrenamiento de un modelo de aprendizaje autom谩tico en un conjunto de datos. Durante una 茅poca, el modelo recibe una serie de ejemplos de entrenamiento y ajusta sus par谩metros (como los pesos de las conexiones en una red neuronal) en funci贸n de los errores cometidos en la predicci贸n de las respuestas correctas. Una vez que todos los ejemplos de entrenamiento han sido vistos por el modelo, se completa una 茅poca y se repite el proceso de entrenamiento para tantas 茅pocas como sea necesario para mejorar la precisi贸n del modelo. El n煤mero de 茅pocas necesarias para entrenar un modelo depende de varios factores, como el tama帽o del conjunto de datos y la complejidad del modelo. <https://ciberseguridadmax.com/epoch/> Una 脡poca es cuando un conjunto de datos ENTERO se pasa hacia adelante y hacia atr谩s a trav茅s de la red neuronal solo UNA VEZ. Dado que una 茅poca es demasiado grande para alimentar la computadora a la vez, la dividimos en varios lotes (`batch`) m谩s peque帽os. <https://bookdown.org/victor_morales/TecnicasML/redes-neuronales.html> Recuerde que cada neurona de una red neuronal toma los valores de entrada multiplicados por una ponderaci贸n para representar la fortaleza de esa conexi贸n. La propagaci贸n hacia atr谩s detecta las ponderaciones correctas que se deben aplicar a los nodos de una red neuronal mediante la comparaci贸n de las salidas actuales de la red con los resultados correctos o deseados. La diferencia entre el resultado deseado y el resultado actual se calcula mediante la funci贸n de p茅rdida o costo. En otras palabras, la funci贸n de p茅rdida nos indica el grado de precisi贸n que tiene nuestra red neuronal al realizar predicciones para una entrada determinada. La f贸rmula para calcular la p茅rdida est谩 representada en la **figura 1**. No deje que las matem谩ticas le intimiden: solo se trata de sumar los cuadrados de todas las diferencias. Inicialmente, las ponderaciones y sesgos se suelen establecer en valores aleatorios que, a menudo, producen un valor alto de p茅rdida cuando se empieza a entrenar una red neuronal. La funci贸n de costo o p茅rdida **Figura 1 La funci贸n de costo o p茅rdida** A continuaci贸n, el algoritmo ajusta cada ponderaci贸n para minimizar la diferencia entre el valor calculado y el valor correcto. El t茅rmino "propagaci贸n hacia atr谩s" procede del hecho de que el algoritmo retrocede y ajusta las ponderaciones y los sesgos despu茅s de calcular una respuesta. Cuanto menor sea la p茅rdida para una red, m谩s precisa ser谩. A continuaci贸n, se puede cuantificar el proceso de aprendizaje como la reducci贸n del resultado de la funci贸n de p茅rdida. Cada ciclo de correcci贸n de propagaci贸n hacia atr谩s y hacia adelante para reducir la p茅rdida se denomina 茅poca. En resumen, la propagaci贸n hacia atr谩s consiste en determinar las mejores ponderaciones y sesgos de entrada para obtener un resultado m谩s preciso o "minimizar la p茅rdida". Si piensa que esto consume muchos recursos de proceso, est谩 en lo cierto. De hecho, la capacidad de proceso era insuficiente hasta hace relativamente poco para que este proceso resultara pr谩ctico para el uso general. <https://learn.microsoft.com/es-es/archive/msdn-magazine/2019/april/artificially-intelligent-how-do-neural-networks-learn>
El rendimiento nos puede indicar si el modelo es bueno. Al pasar por un procedimiento de entrenamiento con un pase hacia adelante, un calculo de perdidas y un pase hacia atras sobre cada punto de datos, se cumple un proceso llamado **epoca.** A menudo se pueden hacer multiples epocas hasta que el modelo aprenda los patrones que necesita para poder hacer una prediccion. Sin embargo, como las redes neuronales tienden a hacer Overfit, se puede ver que el rendimiento del aprendizaje en los datos de entrenamiento aumenta con el tiempo. Se puede utilizar con conjunto de datos de validacion para preguntar si efectivamente estos patrones de la red neuronal estan aprendiendo. De esta forma, el numero optimo de epocas y el modelo que deberias usar es aquel en el que el rendimiento alcanza su punto maximo y luego no cambia.

El sobreajuste (overfitting) es un problema com煤n en el aprendizaje de m谩quinas y ocurre cuando el modelo se ajusta demasiado a los datos de entrenamiento y no generaliza bien a nuevos datos. Aqu铆 hay algunas estrategias para prevenir el overfitting:

M谩s datos: Recopilar m谩s datos de entrenamiento puede ayudar a prevenir el sobreajuste, ya que brinda al modelo una mayor variedad de ejemplos para aprender y generalizar. Cuantos m谩s datos tenga, es menos probable que el modelo se ajuste demasiado a patrones espec铆ficos y se sobreajuste.

Validaci贸n cruzada: Utilizar t茅cnicas de validaci贸n cruzada, como la validaci贸n cruzada k-fold, puede proporcionar una evaluaci贸n m谩s robusta del rendimiento del modelo. Dividir el conjunto de datos en m煤ltiples conjuntos de entrenamiento y validaci贸n, y promediar los resultados de varias iteraciones de entrenamiento y evaluaci贸n, puede ayudar a detectar si el modelo est谩 sobreajustado.

Regularizaci贸n: La regularizaci贸n es una t茅cnica que agrega una penalizaci贸n adicional a la funci贸n de p茅rdida durante el entrenamiento. Los m茅todos de regularizaci贸n m谩s comunes son la regularizaci贸n L1 y L2, que agregan t茅rminos de penalizaci贸n basados en la magnitud de los pesos del modelo. Estos t茅rminos de penalizaci贸n ayudan a evitar que los pesos se vuelvan demasiado grandes y reducen la complejidad del modelo, lo que puede ayudar a prevenir el sobreajuste.

Dropout: El dropout es una t茅cnica que se aplica durante el entrenamiento y consiste en desactivar aleatoriamente un porcentaje de neuronas en cada capa durante cada paso de entrenamiento. Esto evita que las neuronas dependan demasiado de las dem谩s y reduce la posibilidad de sobreajuste. Durante la inferencia o la evaluaci贸n, no se aplica el dropout y se utilizan todas las neuronas.

Early stopping: El early stopping implica detener el entrenamiento del modelo antes de que alcance el n煤mero m谩ximo de 茅pocas. Se monitorea el rendimiento del modelo en un conjunto de validaci贸n y se detiene el entrenamiento cuando el rendimiento en el conjunto de validaci贸n comienza a empeorar. Esto evita que el modelo se ajuste demasiado a los datos de entrenamiento y ayuda a encontrar un punto 贸ptimo en t茅rminos de rendimiento en datos no vistos.

Reducci贸n de la complejidad del modelo: Reducir la complejidad del modelo puede ayudar a prevenir el sobreajuste. Esto puede implicar la reducci贸n del n煤mero de capas ocultas, el n煤mero de neuronas en cada capa o incluso el uso de una arquitectura de red neuronal m谩s simple en general. Un modelo m谩s simple es menos propenso a sobreajustarse y puede generalizar mejor.

Es importante recordar que no existe una soluci贸n 煤nica para prevenir el sobreajuste, y la elecci贸n de las estrategias adecuadas depender谩 del problema y los datos espec铆ficos. A menudo, es 煤til experimentar con diferentes enfoques y encontrar la combinaci贸n adecuada de t茅cnicas para obtener el mejor rendimiento del modelo.

Hay varias estrategias que se pueden utilizar para mejorar las predicciones de las redes neuronales. A continuaci贸n, se presentan algunas t茅cnicas comunes:

Recopilar m谩s datos: El rendimiento de las redes neuronales puede mejorar al proporcionar m谩s datos de entrenamiento. Cuanto m谩s variado y representativo sea el conjunto de datos, mejor podr谩 generalizar el modelo.

Preprocesamiento de datos: Aplicar t茅cnicas de preprocesamiento de datos puede ayudar a mejorar las predicciones. Esto incluye la normalizaci贸n de caracter铆sticas, el manejo de valores at铆picos, la eliminaci贸n de ruido y la selecci贸n de caracter铆sticas relevantes.

Ajustar la arquitectura de la red: La elecci贸n de una arquitectura adecuada es fundamental. Puede considerar aumentar o disminuir el n煤mero de capas ocultas, el n煤mero de neuronas en cada capa, la elecci贸n de funciones de activaci贸n y otros hiperpar谩metros relacionados con la arquitectura de la red. La arquitectura debe adaptarse al problema espec铆fico y a los datos disponibles.

Regularizaci贸n: La regularizaci贸n es una t茅cnica utilizada para evitar el sobreajuste (overfitting). Puede aplicar t茅cnicas de regularizaci贸n como la regularizaci贸n L1 o L2, la eliminaci贸n de dropout o la normalizaci贸n por lotes (batch normalization) para evitar que el modelo se ajuste demasiado a los datos de entrenamiento y mejore su capacidad de generalizaci贸n.

Ajuste de hiperpar谩metros: Los hiperpar谩metros, como la tasa de aprendizaje, el tama帽o del lote (batch size), el n煤mero de 茅pocas, entre otros, pueden tener un impacto significativo en el rendimiento del modelo. Puede utilizar t茅cnicas como la b煤squeda en cuadr铆cula (grid search) o la optimizaci贸n bayesiana para encontrar los mejores valores de hiperpar谩metros.

Ensamblado de modelos: Combinar las predicciones de varios modelos puede mejorar el rendimiento general. Esto se puede lograr mediante t茅cnicas como el promedio de modelos, la votaci贸n o el apilamiento (stacking).

Aumento de datos: El aumento de datos implica generar ejemplos adicionales a partir de los datos existentes mediante t茅cnicas como la rotaci贸n, el recorte, la inversi贸n, la ampliaci贸n o la adici贸n de ruido. Esto puede ayudar a ampliar el conjunto de datos de entrenamiento y mejorar la capacidad del modelo para generalizar.

Estas son solo algunas de las estrategias comunes para mejorar las predicciones de las redes neuronales. La elecci贸n de la t茅cnica adecuada depender谩 del problema espec铆fico y de los datos disponibles. Es recomendable probar diferentes enfoques y experimentar con diferentes combinaciones para obtener los mejores resultados.

Es incre铆ble que con herramientas matem谩ticas dispuestas en nodos y relacionando estos mismos entre si, podamos manipular grandes cuerpos de informaci贸n para entender los negocios, la vida, las enfermedades, nuestros sistemas, nuestras herramientas (el internet mismo), y en resumen, para vivir mejor. Que increible.

Los nodos 鈥榙ropout鈥 son nodos espec铆ficos que no activamos en casos aleatorios para evitar que nuestro modelo haga overfitting. Es decir, arbitrariamente decidimos que ciertos nodos en una de nuestras capas ocultas/hidden layers no entrar谩n dentro del rango de activaci贸n