Redes Neurais em IA e Deep Learning - página 70

 

7.3 Embolsado (L07: Métodos de conjunto)



7.3 Embolsado (L07: Métodos de conjunto)

Después de discutir a fondo el concepto de votación por mayoría en el video anterior, el próximo video profundizará en otro método fundamental conocido como embolsado, que significa agregación de arranque. El término "bagging" se deriva de la combinación de las iniciales "B" y "ag G" y está estrechamente relacionado con el concepto de bootstrapping. Esta técnica fue propuesta originalmente por Leo Breiman, una figura destacada en el campo de los árboles de decisión, específicamente árboles de clasificación y regresión (CART). Exploraremos las contribuciones de Breiman con más detalle en una conferencia futura centrada en los bosques aleatorios.

Para comenzar, describamos el algoritmo para embolsar. Aunque a primera vista pueda parecer complejo, en realidad es bastante sencillo y consta de tan solo seis líneas de código, o cinco si excluimos la línea en blanco. El algoritmo funciona de la siguiente manera: supongamos que tenemos un total de n muestras o rondas de arranque. Para cada ronda i, extraemos una muestra de arranque de tamaño m del conjunto de entrenamiento. Aquí, m representa el tamaño del conjunto de entrenamiento. Es importante tener en cuenta que el uso de letras individuales para las variables puede parecer poco convencional, pero fue necesario debido a las limitaciones impuestas por la elección de las letras. En el video anterior, usamos n para representar la cantidad de muestras de arranque, que corresponde a la cantidad de clasificadores en los clasificadores de votación del conjunto que discutimos.

Para cada muestra de arranque, entrenamos un clasificador y aplicamos la votación por mayoría. Este proceso es bastante similar al clasificador de votación de conjunto que cubrimos anteriormente, con la única diferencia de que, en lugar de entrenar cada clasificador en el conjunto de entrenamiento completo, entrenamos cada clasificador base en una muestra de arranque extraída del conjunto de entrenamiento.

Antes de continuar, recapitulemos brevemente el concepto de muestreo de arranque. Considere un conjunto de datos con un tamaño de m. Cada muestra de arranque extraída de este conjunto de datos también tendrá un tamaño de m, según el algoritmo mencionado anteriormente. El muestreo Bootstrap implica la selección aleatoria de puntos de datos del conjunto de datos con reemplazo. Por ejemplo, si tenemos diez puntos de datos etiquetados del uno al diez y realizamos un muestreo con reemplazo, algunos de los puntos de datos se duplicarán en el conjunto de datos de arranque. Esta duplicación ocurre porque cada posición se extrae independientemente del conjunto de entrenamiento. En consecuencia, algunos puntos de datos pueden aparecer varias veces, mientras que otros pueden no aparecer en absoluto, lo que da como resultado lo que llamamos muestras fuera de la bolsa (OOB). Estas muestras OOB son los puntos de datos que no están incluidos en la muestra de arranque para una ronda en particular.

Para obtener una mejor comprensión de la probabilidad asociada con no seleccionar un elemento específico en una muestra de arranque, examinemos la probabilidad de no seleccionar un punto de datos en particular para una sola posición. La probabilidad de elegir un punto de datos específico para una posición dada es 1/m, ya que hay m ejemplos en el conjunto de entrenamiento. Por lo tanto, la probabilidad de no seleccionar ese punto de datos en particular es 1 - 1/m. Dado que tenemos m opciones, la probabilidad de no elegir un ejemplo específico en toda la muestra de arranque es (1 - 1/m)^n. A medida que m se vuelve lo suficientemente grande, aproximadamente el 36,8 % de los puntos no se incluirán en la muestra de arranque. En consecuencia, el 63,2 % de los puntos de datos serán únicos en la muestra de arranque, mientras que los puntos restantes serán duplicados.

Visualizar el muestreo de arranque dentro del procedimiento de embolsado puede ayudar a una mayor comprensión del concepto. Se realizan varias rondas de muestreo de arranque, cada una de las cuales da como resultado una nueva muestra de arranque. Luego, se entrena un clasificador de forma independiente en cada muestra de arranque. Este proceso facilita el paralelismo del modelo ya que no hay dependencia entre las rondas de arranque. En consecuencia, cada ronda se puede ejecutar simultáneamente, mejorando el potencial para el procesamiento paralelo.

El diagrama de flujo del clasificador de embolsado proporciona una descripción general de los pasos involucrados. Similar al clasificador de votación, el clasificador de embolsado comienza con un conjunto de entrenamiento. Sin embargo, en el embolsado, reutilizamos el conjunto de entrenamiento para crear múltiples muestras de arranque. Cada muestra de arranque se utiliza para entrenar un clasificador, lo que da como resultado un total de m clasificadores. Cada clasificador genera predicciones, y la predicción final se determina mediante votación por mayoría. Este enfoque ayuda a reducir el sobreajuste y mejorar la estabilidad y la generalización del modelo.

El ensacado ofrece varias ventajas:

  • Reducción de la varianza: al generar múltiples muestras de arranque y entrenar clasificadores independientes en cada muestra, el embolsado reduce efectivamente la varianza de las predicciones. Esta reducción de la varianza es particularmente beneficiosa cuando el clasificador base es propenso a sobreajustarse.
  • Estabilidad mejorada: dado que el embolsado implica entrenar múltiples clasificadores en diferentes muestras de arranque, proporciona estabilidad al modelo. Es menos probable que pequeños cambios en el conjunto de entrenamiento tengan un impacto significativo en la predicción final, lo que da como resultado un modelo más sólido.
  • Manejo de conjuntos de datos complejos: el embolsado es muy eficaz en el manejo de conjuntos de datos complejos caracterizados por una gran variación y ruido. Al utilizar múltiples clasificadores y agregar sus predicciones, el embolsado captura diferentes patrones y disminuye la influencia de valores atípicos o datos ruidosos.
  • Procesamiento paralelo: el embolsado permite el procesamiento paralelo de las muestras de arranque y el entrenamiento de los clasificadores. Cada muestra de arranque es independiente de las demás, lo que permite una utilización eficiente de los recursos computacionales.

A pesar de sus ventajas, el embolsado también tiene algunas limitaciones:

  • Interpretabilidad: como el embolsado combina predicciones de múltiples clasificadores, interpretar las contribuciones individuales de cada clasificador a la predicción final puede ser un desafío. Si bien el modelo de conjunto puede proporcionar predicciones precisas, comprender el razonamiento subyacente detrás de ellas se vuelve más complejo.
  • Complejidad computacional: el entrenamiento de múltiples clasificadores en diferentes muestras de arranque aumenta la complejidad computacional del algoritmo de embolsado. El tiempo y los recursos necesarios para entrenar y agregar las predicciones pueden ser significativos, especialmente para grandes conjuntos de datos.
  • Sobreajuste potencial: aunque el ensacado reduce el riesgo de sobreajuste en comparación con un solo clasificador, no es completamente inmune al sobreajuste. Si el clasificador base ya es propenso a sobreajustarse, es posible que el embolsado no produzca mejoras significativas.
  • Diversidad limitada: el embolsado se basa en la creación de diversas muestras de arranque para obtener diversos clasificadores. Sin embargo, en ciertos casos en los que el conjunto de datos es pequeño o muestra una variabilidad limitada, las muestras de arranque pueden no ser lo suficientemente diversas, lo que reduce la eficacia del embolsado.

En esta sección, profundizaremos en los conceptos discutidos anteriormente. Cuando las predicciones de un modelo exhiben variaciones significativas, indica una alta variación. Por ejemplo, consideremos un árbol de decisión complejo para el caso naranja. Las predicciones de este modelo diferirán significativamente de las predicciones del modelo azul. De manera similar, el caso verde tendrá su propio conjunto de predicciones diferentes. Estas predicciones variables ilustran el concepto de alta varianza.

Para obtener una mejor comprensión del impacto de la alta varianza, examinemos los árboles de decisión reales ajustados en estos conjuntos de datos. A pesar de sus variaciones, el caso de alta varianza aún logra proporcionar una buena predicción promedio. Es importante tener en cuenta que, aunque aquí no he mostrado explícitamente la predicción promedio, promediar las predicciones de los tres modelos (modelo uno, dos y tres) ajustados en diferentes conjuntos de entrenamiento dará como resultado una predicción que se aproxima mucho a la función real. . Por el contrario, los modelos de alto sesgo, como se mostró anteriormente, solo son precisos en posiciones específicas donde las líneas se cruzan con la función verdadera. En todos los demás casos, se desempeñan mal debido a su alto sesgo.

Sin embargo, al emplear un modelo de alta varianza y promediar las predicciones de múltiples modelos, aún podemos lograr predicciones precisas. Este concepto forma la base del embolsado, que implica el uso de diferentes conjuntos de entrenamiento generados a través del muestreo de arranque. En embolsado, cada muestra de arranque se usa para ajustar un árbol de decisión, lo que da como resultado múltiples modelos de alta varianza. Luego, estos modelos se promedian mediante la votación del conjunto, ya sea considerando etiquetas de clase en tareas de clasificación o resultados de regresión en tareas de regresión. Este proceso de promedio ayuda a obtener predicciones muy precisas al reducir la varianza.

Al promediar las predicciones de los tres árboles de decisión ajustados en diferentes conjuntos de entrenamiento, obtendríamos una predicción promedio que se aproxima mucho a la función verdadera. Este promedio es similar al concepto de embolsado, donde cada conjunto de entrenamiento actúa como un conjunto de datos de arranque. En segundo lugar, es importante tener en cuenta que los árboles de decisión no pueden interpolar valores. Solo pueden predecir los valores objetivo que existen en el conjunto de entrenamiento o sus promedios. Por lo tanto, la función paso a paso que se muestra en la figura es una aproximación de un árbol de decisión no podado.

Para concluir, el embolsado es una técnica efectiva para reducir la varianza al promediar las predicciones de los modelos de alta varianza. Al emplear la paralelización, el embolsado puede acelerar el ajuste del modelo al utilizar varias CPU. Sin embargo, algunas computadoras con Windows pueden enfrentar problemas con el multiprocesamiento en Python, lo que limita el uso de múltiples trabajos. También vale la pena mencionar que los clasificadores de embolsado pueden calcular la precisión fuera de la bolsa, lo que implica el uso de puntos de datos que no están incluidos en la muestra de arranque para evaluar el rendimiento del modelo. Esto proporciona una métrica útil para evaluar la capacidad de generalización del modelo. En el ejemplo de código que usa scikit-learn, el clasificador de embolsado se puede importar desde el submódulo de conjunto.

El estimador base, que es el árbol de decisión en este caso, se inicializa con la profundidad máxima establecida en Ninguno para crear un árbol de decisión sin podar. El número de estimadores determina el número de rondas de arranque y la paralelización se puede lograr configurando el parámetro n_jobs en consecuencia. Además, el parámetro oob_score permite el cálculo de la puntuación fuera de bolsa. Después de entrenar al clasificador de embolsado, se puede evaluar la puntuación fuera de la bolsa y la precisión del conjunto de prueba.

En general, el embolsado ofrece un enfoque eficaz para mitigar la varianza alta y mejorar la precisión de la predicción mediante la combinación de varios modelos de varianza alta. En resumen, el embolsado es un poderoso método de conjunto que combina múltiples clasificadores entrenados en diferentes muestras de arranque para mejorar la precisión de la predicción y reducir la varianza. Es particularmente útil cuando se trata de conjuntos de datos complejos y puede mejorar la estabilidad y la generalización del modelo. Sin embargo, también tiene algunas limitaciones, incluida la capacidad de interpretación reducida y una mayor complejidad computacional.

7.3 Bagging (L07: Ensemble Methods)
7.3 Bagging (L07: Ensemble Methods)
  • 2020.10.20
  • www.youtube.com
In this video, we look at bagging (bootstrap aggregating) and also introduce the bias-variance trade-off and decomposition in order to understand why bagging...
 

7.4 Impulso y AdaBoost (L07: Métodos de conjunto)


7.4 Impulso y AdaBoost (L07: Métodos de conjunto)

En el video anterior, discutimos el concepto de modelos de alta varianza y bajo sesgo, centrándonos específicamente en árboles de decisión no podados. También aprendimos sobre una técnica llamada embolsado, que ayuda a mejorar el rendimiento de los modelos de alta varianza al reducir la varianza a través del promedio.

En esta lección, cambiaremos nuestra atención al impulso, que opera en la dirección opuesta. El impulso implica el uso de modelos de alto sesgo con baja varianza, como tocones de árboles de decisión simples, y potenciarlos para mejorar el rendimiento general del modelo. Este primer video brindará una descripción general de los conceptos de impulso e introducirá el impulso en general, mientras que el próximo video profundizará en un tipo popular de impulso llamado aumento de gradiente.

El refuerzo se puede clasificar en términos generales en dos tipos principales: refuerzo adaptativo (por ejemplo, adaboost) y refuerzo de gradiente. Históricamente, el aumento de gradiente se usaba menos debido a su complejidad computacional. Sin embargo, los avances recientes, como la introducción de XGBoost en 2016, han mejorado significativamente el rendimiento del aumento de gradiente. Hoy en día, han surgido variantes aún mejores como LightGBM, que discutiremos en el próximo video. Si bien el impulso de gradiente ha ganado popularidad, es esencial comprender el procedimiento general de impulso a través del impulso adaptativo.

El procedimiento de refuerzo sigue un esquema específico, que difiere del procedimiento de embolsado. Una distinción notable es la presencia de dependencias entre rondas. El procedimiento de impulso involucra múltiples clasificadores, denominados clasificador uno, clasificador dos, etc., hasta el clasificador M. Inicialmente, comenzamos con un conjunto de datos de entrenamiento regular y ajustamos el clasificador uno. Con base en las predicciones del clasificador uno, ponderamos las muestras de entrenamiento utilizando un método de ponderación específico, que analizaremos con más detalle más adelante. Luego, el segundo clasificador usa este conjunto de datos de entrenamiento ponderado y el proceso continúa. La ponderación depende de las predicciones de los clasificadores anteriores, lo que dificulta la paralelización de los impulsos. A diferencia del embolsado, donde los clasificadores se pueden entrenar simultáneamente, el impulso requiere esperar hasta que el clasificador anterior haya hecho predicciones antes de actualizar el conjunto de datos para el siguiente clasificador. Al hacer predicciones finales, el impulso emplea una combinación ponderada de los clasificadores, a diferencia de la votación por conjuntos o el promedio que se usa en el embolsado. La combinación ponderada se determina en función de la función de signo, que asigna pesos a la predicción de cada clasificador. Para la clasificación binaria, la función de signo devuelve 1 para resultados positivos y -1 para resultados negativos. Esta predicción ponderada da como resultado una predicción final de -1 o 1. El proceso se puede extender para manejar números arbitrarios de clases usando funciones indicadoras.

Para comprender mejor el procedimiento general de impulso, describamos los pasos involucrados. En primer lugar, inicializamos un vector de pesos con pesos uniformes para cada ejemplo de entrenamiento. Estos pesos representan la importancia de cada ejemplo de entrenamiento. Luego, ingresamos a un bucle que itera sobre los diferentes clasificadores o rondas del procedimiento de impulso. En cada ronda, aplicamos un alumno débil, que es un clasificador ligeramente mejor que las conjeturas aleatorias, a los ejemplos de entrenamiento ponderados. Podemos asignar pesos más altos a ejemplos específicos o dibujar muestras de arranque con probabilidades ponderadas. Después de entrenar al alumno débil, aumentamos el peso de los ejemplos mal clasificados, lo que permite que el próximo clasificador se centre en estos ejemplos mal clasificados. Este bucle se repite varias veces y, finalmente, se realiza una votación por mayoría ponderada en los clasificadores entrenados para obtener las predicciones finales.

Ahora centrémonos en el algoritmo adaboost, que se alinea estrechamente con el procedimiento de impulso general discutido anteriormente. Adaboost es similar al esquema de impulso general, donde los clasificadores se ajustan a ejemplos de entrenamiento ponderados. El algoritmo comienza inicializando los pesos para cada punto de datos de entrenamiento. Luego, comienza el ciclo for principal, que comprende las rondas de adaboost. En cada ronda, los pesos se normalizan para garantizar que sumen uno. A continuación, se entrena a un alumno débil en el conjunto de entrenamiento ponderado y se calculan los errores de predicción ponderados. Los errores de predicción son ponderados por los pesos del conjunto de entrenamiento e indican las clasificaciones erróneas. Los errores de predicción se utilizan luego para calcular la contribución del alumno débil a la predicción final. La contribución está determinada por la precisión del alumno débil, y los alumnos más precisos tienen una mayor contribución. La contribución luego se usa para actualizar los pesos de los ejemplos de entrenamiento. Los pesos de los ejemplos mal clasificados aumentan, mientras que los pesos de los ejemplos correctamente clasificados disminuyen. Este ajuste enfatiza la importancia de los ejemplos mal clasificados en rondas posteriores.

Después de actualizar los pesos, el proceso pasa a la siguiente ronda, donde el alumno débil recibe capacitación en el conjunto de entrenamiento ponderado actualizado. Este proceso iterativo continúa durante el número especificado de rondas o hasta que se cumple un cierto criterio. Una vez que se completan todas las rondas, se realiza la predicción final combinando las predicciones de todos los alumnos débiles. El peso de la predicción de cada estudiante débil está determinado por su contribución a la precisión general durante el entrenamiento.

El algoritmo adaboost combina de manera efectiva las predicciones de los alumnos débiles para crear un modelo de conjunto fuerte. Los pesos asignados a la predicción de cada estudiante débil reflejan su desempeño al clasificar los ejemplos de capacitación. Al ajustar iterativamente los pesos y centrarse en los ejemplos mal clasificados, adaboost puede mejorar la precisión del modelo con el tiempo.

Es importante tener en cuenta que adaboost es sensible a los valores atípicos y al ruido en los datos. Los valores atípicos pueden tener un impacto significativo en las actualizaciones de peso, lo que puede conducir a un sobreajuste. Por lo tanto, se recomienda preprocesar los datos para manejar valores atípicos y muestras ruidosas. Además, adaboost puede ser propenso a sobreajustarse si los alumnos débiles son demasiado complejos o si el número de rondas es demasiado alto. Las técnicas de regularización, como la limitación de la profundidad de los árboles de decisión o el uso de la detención anticipada, pueden ayudar a mitigar el sobreajuste.

Si tuviéramos que esbozar aproximadamente el concepto, se vería así: tenemos una flecha en el eje x, que representa el valor alfa. El valor alfa determina la importancia de cada clasificador en la predicción final. Cuando usamos el valor alfa para ponderar la estimación y la predicción, encontramos que si un clasificador tiene un gran error, el valor alfa será relativamente pequeño. Esto significa que un clasificador con un alto error no es tan importante para la predicción final. Por otro lado, los clasificadores con pequeños errores tendrán un mayor peso porque confiamos más en ellos a la hora de calcular la mayoría de votos.

Usamos el valor alfa de dos maneras: primero, lo usamos para ponderar la estimación y la predicción, y segundo, lo usamos para actualizar los pesos para la siguiente ronda. Si la predicción es correcta, el peso asignado a ese ejemplo de entrenamiento será pequeño. Esto significa que si hacemos una predicción correcta, no prestamos mucha atención a ese ejemplo de entrenamiento en la próxima ronda. Se considera un ejemplo fácil. En cambio, si nos equivocamos, el peso asignado a ese ejemplo será mayor. Esto significa que prestamos más atención a los ejemplos mal clasificados en la siguiente ronda. Cuanto menor sea el valor alfa, mayor será el peso asignado a los ejemplos mal clasificados.

Para ilustrar este concepto, consideremos un caso bidimensional. Tenemos un ejemplo de juguete con dos características, x1 y x2. Ajustamos un tocón de árbol de decisión, que es un árbol de decisión con una sola división. El tocón del árbol de decisión clasifica correctamente algunos puntos pero comete errores en otros. En la primera ronda de AdaBoost, damos mayor peso a los ejemplos mal clasificados y menor peso a los ejemplos correctamente clasificados. Luego ajustamos otro tocón de árbol de decisión, enfocándonos en los ejemplos mal clasificados de la ronda anterior. Este proceso continúa, con cada nuevo clasificador aprendiendo de los errores del clasificador anterior y prestando más atención a los ejemplos mal clasificados. Finalmente, cuando combinamos todos los clasificadores usando la votación por mayoría, podemos terminar con un clasificador que clasifique correctamente todos los ejemplos.

AdaBoost puede ser un poco complicado de entender, pero hay recursos disponibles para ayudar. El documento original sobre AdaBoost brinda una explicación detallada, pero para una introducción más accesible, se recomienda el documento tutorial de Manwani. Antes de pasar a los ejemplos de código, vale la pena mencionar una modificación del algoritmo AdaBoost para la clasificación de clases múltiples llamada AdaBoost.M2 o SAMME. Introduce una pequeña modificación al algoritmo original para manejar múltiples clases. También existe una versión de número real llamada SAMME.R. Si está interesado, puede explorar estas variaciones en los documentos respectivos.

En scikit-learn, AdaBoost se implementa como un clasificador de refuerzo. Utiliza tocones de árboles de decisión como clasificadores débiles y ajusta los pesos de los ejemplos de entrenamiento en función de los resultados de su clasificación. Al impulsar estos clasificadores débiles, AdaBoost mejora el rendimiento general. Al comparar la precisión de un árbol de decisión no podado y un tocón de árbol de decisión en el conjunto de datos del iris, AdaBoost con tocones de árbol de decisión logra una mayor precisión. El proceso de entrenamiento implica la actualización de los pesos de muestra, por lo que no existe una opción de paralelización como en el embolsado. AdaBoost en scikit-learn proporciona una forma efectiva de impulsar clasificadores débiles y lograr mejores resultados de clasificación.

A continuación, profundizaremos en el aumento de gradiente, otra variante popular de impulso. El aumento de gradiente se basa en los conceptos de AdaBoost pero presenta mejoras adicionales.

El aumento de gradiente es una variación popular del algoritmo de impulso que tiene como objetivo mejorar aún más el rendimiento de los clasificadores débiles mejorando iterativamente sus debilidades. Se basa en el concepto de descenso de gradiente, que se usa comúnmente en problemas de optimización. En el aumento de gradiente, los clasificadores débiles se entrenan secuencialmente y se combinan para crear un clasificador fuerte.

La idea básica detrás del aumento de gradiente es entrenar clasificadores débiles de forma iterativa y luego ajustar los pesos de los ejemplos de entrenamiento en función de los errores cometidos por el conjunto de clasificadores. Este ajuste se realiza calculando los gradientes de la función de pérdida con respecto a las predicciones del conjunto. Al minimizar la función de pérdida, el conjunto mejora gradualmente su desempeño.

Para ilustrar el concepto, consideremos un ejemplo simple. Supongamos que tenemos un problema de clasificación binaria en el que queremos clasificar los puntos de datos como positivos o negativos. Comenzamos entrenando un clasificador débil inicial, como un tocón de árbol de decisión, en los datos de entrenamiento. Este clasificador cometerá algunos errores y calculamos los errores o residuos comparando sus predicciones con las etiquetas verdaderas de los ejemplos de entrenamiento.

En la siguiente iteración, entrenamos un nuevo clasificador débil para predecir los residuos del clasificador anterior. Este nuevo clasificador se centra en corregir los errores cometidos por el anterior. Calculamos los residuos restando los valores pronosticados de los residuos verdaderos. Nuevamente, este nuevo clasificador cometerá algunos errores y calculamos los residuos.

Repetimos este proceso, entrenando secuencialmente nuevos clasificadores débiles para predecir los residuos del conjunto y actualizando los residuos en función de los errores cometidos por el conjunto actual. Cada clasificador débil está entrenado para minimizar la función de pérdida con respecto a los residuos actuales. El conjunto final se obtiene combinando todos los clasificadores débiles, y cada clasificador contribuye con un voto ponderado en función de su desempeño.

Los pesos de los clasificadores débiles están determinados por la tasa de aprendizaje, que controla la contribución de cada clasificador a la predicción final. Una tasa de aprendizaje más pequeña conduce a una convergencia más lenta, pero puede resultar en una mejor generalización. Una mayor tasa de aprendizaje puede dar lugar a una convergencia más rápida, pero también puede dar lugar a un sobreajuste.

El aumento de gradiente ha demostrado ser una técnica poderosa para una amplia gama de tareas de aprendizaje automático, incluidos problemas de regresión, clasificación y clasificación. Se ha aplicado con éxito en varios dominios, como la visión artificial, el procesamiento del lenguaje natural y la bioinformática.

En la práctica, existen varias implementaciones de aumento de gradiente disponibles, incluidas XGBoost, LightGBM y CatBoost, que ofrecen algoritmos eficientes y optimizados para el aumento de gradiente. Estas implementaciones brindan funciones adicionales, como paralelización, técnicas de regularización y manejo de valores faltantes, para mejorar aún más el rendimiento y la flexibilidad de los modelos de aumento de gradiente.

Con esto concluye la introducción a boosting y la descripción general del algoritmo adaboost. En el próximo video, exploraremos el aumento de gradiente con más detalle, incluidos los conceptos de descenso de gradiente, funciones de pérdida y los algoritmos específicos que se han desarrollado para mejorar el proceso de aumento de gradiente.

7.4 Boosting and AdaBoost (L07: Ensemble Methods)
7.4 Boosting and AdaBoost (L07: Ensemble Methods)
  • 2020.10.21
  • www.youtube.com
This video discusses the general concept behind boosting -- one of the model ensembling approaches in machine learning. Then, it goes over an early boosting ...
 

7.5 Aumento de gradiente (L07: Métodos de conjunto)


7.5 Aumento de gradiente (L07: Métodos de conjunto)

El concepto de aumento de gradiente se presenta como una versión moderna de aumento que utiliza árboles de decisión y una función de pérdida diferenciable. Si bien es similar a AdaBoost, el aumento de gradiente difiere en cómo se ajustan los árboles de decisión. En el aumento de gradiente, se utilizan árboles más profundos y no se asignan pesos a los clasificadores o ejemplos de entrenamiento. La idea clave detrás del aumento de gradiente es el uso de gradientes de la función de pérdida para mejorar el modelo, lo que da como resultado un mejor rendimiento en conjuntos de datos tabulares. Este algoritmo ha ganado popularidad, especialmente en competencias de aprendizaje automático.

En el contexto de la regresión, el aumento de gradiente comienza con la construcción de un árbol base. Por ejemplo, en un problema de predicción del precio de la vivienda, el árbol base inicial consta solo del nodo raíz. El objetivo se predice en función del valor promedio en ese nodo, que en este caso es el precio promedio de las cuatro casas en el conjunto de entrenamiento. Luego, el siguiente árbol se construye en base al error de predicción del árbol anterior. Este error predicho se usa para ajustar un nuevo árbol. Los árboles del primer y segundo paso se combinan, y este proceso se repite varias veces, y cada árbol subsiguiente se ajusta a los errores de los árboles anteriores. Al combinar el árbol de decisión simple con el nuevo basado en residuos, el modelo puede hacer predicciones mejores y más precisas.

Se discute el concepto de aumento de gradiente como un modelo aditivo, donde las predicciones de todos los árboles se combinan consecutivamente al sumarlos. También se introduce la tasa de aprendizaje o tamaño de paso, que determina el peso o contribución de cada árbol a la predicción final. El aumento de gradiente se ejecuta repitiendo el proceso de ajuste de árboles en los errores de la predicción anterior, construyendo gradualmente el modelo con un tamaño de paso pequeño para evitar el sobreajuste. Este proceso continúa hasta que se completa un número predeterminado de árboles, según la configuración de hiperparámetros.

El orador explica el algoritmo de aumento de gradiente, que se utiliza tanto para problemas de regresión como de clasificación. El algoritmo implica inicializar el modelo como un nodo raíz y luego ajustar varios árboles y crear nodos terminales. Se hacen predicciones en cada nodo y se calcula la pérdida. El algoritmo se puede repetir hasta alcanzar el número deseado de árboles, con el objetivo general de minimizar la pérdida.

Para calcular el modelo actual, se combinan el modelo anterior y el nuevo paso de predicción, ponderados por la tasa de aprendizaje o el tamaño del paso, para determinar el modelo actualizado. Este proceso se repite hasta que se alcanza el número deseado de árboles, indicado como T. Se calculan los pseudoresiduos, seguidos del cálculo de la derivada de la pérdida en función de las etiquetas y predicciones verdaderas del modelo de la ronda anterior. Luego se calculan los residuos y se determina el valor de predicción que minimiza la pérdida en el nodo específico. El modelo se actualiza en consecuencia, y este proceso se repite hasta que se alcanzan los modelos T. Aunque las funciones de pérdida diferenciables, como la pérdida de probabilidad logarítmica negativa, se pueden utilizar para la clasificación, el enfoque de esta clase es el error cuadrático de la suma o el error cuadrático medio.

El video analiza los pasos involucrados en el aumento de gradiente y su aplicación práctica. El primer paso consiste en minimizar la pérdida de todos los ejemplos de entrenamiento en un nodo determinado mediante la búsqueda de la predicción que minimiza la expresión. En el segundo paso, se usa un bucle para árboles T y la predicción en cada nodo hoja se calcula promediando los ejemplos en ese nodo. La predicción promedio se combina con el modelo anterior y se suman las predicciones para cada árbol. La tasa de aprendizaje se utiliza para disminuir los pseudo residuales y evitar el sobreajuste. El video también aborda brevemente otros aspectos interesantes del aumento de gradiente que se usa en la práctica.

El video destaca las posibles desventajas de impulsar como un algoritmo secuencial, ya que no puede utilizar completamente múltiples procesos o nodos informáticos. Sin embargo, existe una implementación llamada xgBoost que incorpora varios trucos para hacer que el proceso de aumento de gradiente sea más eficiente. De hecho, entre las 29 soluciones ganadoras del desafío publicadas en Kaggle entre 2015 y 2017, 17 de ellas usaron xgBoost. Ocho de esas soluciones se basaron únicamente en xgBoost para entrenar el modelo, mientras que otras combinaron xgBoost con redes neuronales o utilizaron apilamiento, una popular técnica de votación por conjuntos. El video presenta dos tablas de un documento que comparan diferentes implementaciones de impulso, lo que demuestra las características únicas de xgBoost que contribuyen a su eficacia.

El video analiza Extra Boost, una variante de aumento de gradiente que ofrece varias ventajas, como aprendizaje global aproximado fuera del núcleo, conciencia de escasez y paralelismo. Extra Boost incorpora métodos de aproximación para encontrar la mejor división utilizando estadísticas de resumen de subconjuntos de datos distribuidos. El video compara el rendimiento de Extra Boost con otras implementaciones de aumento de gradiente utilizando el método voraz exacto y demuestra que Extra Boost logra un rendimiento idéntico a una implementación pero con un tiempo significativamente reducido por árbol, lo que lo hace más atractivo para el ajuste de hiperparámetros.

Además, el video explica las diversas mejoras que ofrece Extra Boost, como las técnicas de regularización, el manejo de las características faltantes a través de la imputación y el almacenamiento en caché. Estas mejoras ayudan a reducir el sobreajuste y mejoran el rendimiento general de Extra Boost. Además, Extra Boost utiliza submuestreo basado en columnas y filas, que selecciona aleatoriamente subconjuntos de características y ejemplos de entrenamiento, mejorando tanto la eficiencia computacional como la reducción del sobreajuste. El video sugiere consultar el documento sobre Extra Boost para obtener una explicación más detallada de sus técnicas.

El video proporciona una descripción general de Extra Boost, una implementación más reciente de máquinas de aumento de gradiente. Extra Boost tiene como objetivo reducir el sobreajuste y mejorar la precisión de la predicción. El video analiza diferentes técnicas para encontrar divisiones, incluido el algoritmo voraz exacto y la búsqueda de divisiones basada en histogramas. El último enfoque implica agrupar una característica continua en un histograma discreto, lo que puede mejorar la velocidad de entrenamiento y reducir el uso de la memoria. El video también compara Extra Boost con Light GBM, otra implementación que es aún más rápida y precisa. Light GBM utiliza la búsqueda dividida basada en histogramas y ofrece un menor uso de memoria y una mayor precisión de predicción en comparación con Extra Boost.

El video analiza la implementación de clasificadores de aumento de gradiente en scikit-learn y presenta un nuevo clasificador de aumento de gradiente que se agregó en una versión reciente de la biblioteca. El nuevo clasificador utiliza una división basada en histogramas inspirada en LightGBM, lo que lo hace más rápido que el clasificador anterior. El video sugiere usar ambos clasificadores de aumento de gradiente y compararlos con XGBoost para determinar cuál funciona mejor. Se proporcionan ejemplos de código para servir como plantillas para proyectos de clase o uso general, incluida la implementación del clasificador de aumento de gradiente en scikit-learn y la utilización del nuevo clasificador de aumento de gradiente de histograma.

El presentador analiza el aumento de gradiente utilizando las bibliotecas XGBoost y LightGBM. La biblioteca XGBoost es similar, pero un poco más complicada que scikit-learn. Requiere convertir matrices NumPy al formato DMatrix y, en lugar de usar el método de ajuste, se usa el método de entrenamiento para entrenar el modelo. Las predicciones se pueden hacer llamando al método de predicción para obtener las probabilidades de pertenencia a la clase. Por otro lado, la biblioteca Microsoft LightGBM tiene una API similar a scikit-learn. Los hiperparámetros deben establecerse antes de ajustar la máquina de aumento de gradiente, y el método de puntuación se puede utilizar para calcular la precisión. En el caso presentado, el modelo exhibe una precisión de entrenamiento del 100 % sin ajustar hiperparámetros.

El video concluye enfatizando la efectividad de las técnicas de aumento de gradiente, particularmente a través de la utilización de bibliotecas como XGBoost y LightGBM. Estas bibliotecas brindan herramientas poderosas para implementar modelos de aumento de gradiente y ofrecen varias optimizaciones para mejorar el rendimiento y la precisión.

Además, el presentador reconoce la importancia del ajuste de hiperparámetros en el aumento de gradiente. Diferentes hiperparámetros, como la tasa de aprendizaje, la cantidad de árboles y la profundidad de los árboles, pueden afectar significativamente el rendimiento del modelo. Por lo tanto, se recomienda experimentar con diferentes configuraciones de hiperparámetros para encontrar la configuración óptima para un problema específico.

Para explorar más a fondo el aumento de gradiente, el video sugiere consultar documentos de investigación y documentación sobre XGBoost, LightGBM y otras implementaciones relevantes. Estos recursos brindan explicaciones detalladas de los algoritmos, las técnicas y las características avanzadas del aumento de gradiente.

En resumen, el video proporciona una descripción general completa del aumento de gradiente, sus conceptos y sus implementaciones prácticas utilizando bibliotecas como XGBoost y LightGBM. Destaca las ventajas del aumento de gradiente, como su capacidad para manejar conjuntos de datos tabulares complejos, su eficacia en las competiciones y su potencial para mejorar la precisión de la predicción. Al comprender los principios y las técnicas detrás del aumento de gradiente, los profesionales pueden aprovechar este poderoso algoritmo para abordar varios problemas de regresión y clasificación.

  • 00:00:00 El concepto de aumento de gradiente se presenta como una versión moderna de aumento que utiliza árboles de decisión y una función de pérdida diferenciable. Similar a AdaBoost, el aumento de gradiente es un proceso secuencial que impulsa a los alumnos débiles a convertirse en un modelo sólido. Sin embargo, la principal diferencia entre los dos radica en cómo se ajustan los árboles de decisión, con aumento de gradiente usando árboles más profundos y no usando pesos para ejemplos de entrenamiento o clasificadores. La idea clave del aumento de gradiente es el uso de gradientes de la función de pérdida para mejorar el modelo, lo que lleva a un mejor rendimiento en conjuntos de datos tabulares y lo convierte en un algoritmo popular para las competiciones. La sección proporciona una descripción general conceptual del aumento de gradiente en tres pasos básicos, a partir de la construcción de un árbol base.

  • 00:05:00 Aprendemos sobre el aumento de gradiente en el contexto de la regresión. Primero, comenzamos con un árbol base que consta solo del nodo raíz, que en este ejemplo es un problema de predicción del precio de la vivienda. Predecimos el objetivo según el promedio en ese nodo, que en este caso es el promedio de los precios de las cuatro casas en el conjunto de entrenamiento. Luego, construimos el siguiente árbol en función del error de predicción del árbol anterior y, utilizando este error predicho, ajustamos un nuevo árbol. Combinamos los árboles del paso uno y el paso dos y repetimos el proceso varias veces, ajustando los árboles en los errores en las rondas consiguientes. La predicción es siempre una combinación de la predicción de los árboles anteriores, y el mismo concepto se aplica a la clasificación mediante el uso de una función de pérdida diferente.

  • 00:10:00 El instructor explica cómo usar el aumento de gradiente para hacer mejores predicciones. El proceso consiste en construir un árbol de decisión para hacer una predicción inicial, calcular pseudoresiduos para hacer mejores predicciones sobre los errores del árbol anterior y combinar los árboles del paso uno con los árboles del paso dos. El instructor explica cómo se puede aplicar este proceso a un ejemplo simple relacionado con los precios de la vivienda y muestra cómo se vería el árbol de decisiones. Al combinar el árbol de decisión simple con el nuevo basado en residuos, el modelo puede hacer predicciones mejores y más precisas.

  • 00:15:00 Se discute el concepto de aumento de gradiente como un modelo aditivo, donde combinamos las predicciones de todos los árboles consecutivamente al sumarlos. El método también incluye un valor alfa, que se utiliza como tasa de aprendizaje o tamaño de paso. El aumento de gradiente se ejecuta repitiendo el paso dos varias veces y aumentando lentamente con un tamaño de paso pequeño para evitar el sobreajuste. Por lo tanto, se ajusta continuamente un nuevo árbol a los errores de la predicción anterior, lo que genera otra columna para la predicción. El proceso continúa hasta que se haya completado un número determinado de árboles en función de la configuración de hiperparámetros.

  • 00:20:00 El orador explica el algoritmo de aumento de gradiente, que se utiliza tanto para la regresión como para la clasificación. El algoritmo sigue un procedimiento general en el que el conjunto de datos de entrada del conjunto de datos de entrenamiento se usa junto con una función de pérdida diferenciable. En el primer paso, el modelo se inicializa como un nodo raíz y luego, en el segundo paso, el algoritmo ajusta varios árboles y crea nodos terminales. Luego, el orador entra en más detalles sobre la predicción en cada nodo y el cálculo de pérdidas. El algoritmo se puede repetir hasta alcanzar el número deseado de árboles y el objetivo general es minimizar la pérdida.

  • 00:25:00 El orador explica cómo calcular el modelo actual combinando el modelo anterior y el nuevo paso de predicción, ponderado por la tasa de aprendizaje o el tamaño del paso, para determinar el modelo actualizado hasta que alcance T veces. En primer lugar, se calcula el pseudo residual, luego se calcula la derivada de la pérdida en función de la etiqueta verdadera y las predicciones del modelo de la ronda anterior. Después de eso, se calculan los residuales y se determina el valor de predicción que minimiza la pérdida en función del nodo específico, y luego el modelo se actualiza nuevamente. Este proceso se repite hasta llegar a los modelos T. Aunque el orador menciona funciones de pérdida diferenciables como la pérdida de probabilidad logarítmica negativa, que se puede utilizar para la clasificación, en esta clase se centran en el error cuadrático de la suma o el error cuadrático medio.

  • 00:30:00 El orador analiza los pasos involucrados en el aumento de gradiente y cómo se usa en la práctica. El primer paso consiste en minimizar la pérdida de todos los ejemplos de entrenamiento en un nodo determinado mediante la búsqueda de la predicción que minimiza la expresión. El segundo paso utiliza un bucle para árboles T y calcula la predicción en cada nodo hoja promediando los ejemplos en cada nodo. Se agrega un nuevo término a la predicción promedio, que incluye el modelo anterior. La tasa de aprendizaje para cada árbol suele ser la misma y las predicciones para cada árbol se suman. El objetivo de la tasa de aprendizaje es disminuir los pseudo residuales para evitar el sobreajuste. Finalmente, el orador aborda brevemente algunos aspectos más interesantes del aumento de gradiente que se usa en la práctica.

  • 00:35:00 El orador analiza las posibles desventajas de impulsar como un algoritmo secuencial, lo que puede limitar su eficiencia ya que no puede aprovechar múltiples procesos o nodos informáticos. Sin embargo, existe una implementación de boosting llamada xgBoost que usa varios trucos para hacer que el proceso de boosting de gradiente sea más eficiente. De hecho, entre las 29 soluciones ganadoras del desafío publicadas en Kaggle entre 2015 y 2017, 17 de ellas usaron xgBoost. Ocho solo usaron xgBoost para entrenar el modelo, mientras que la mayoría de los demás combinaron xgBoost con redes neuronales o usaron apilamiento, que es una técnica popular de votación por conjuntos. Luego, el orador proporciona dos tablas de un documento que comparan diferentes implementaciones de refuerzo, donde se muestra que xgBoost tiene características únicas que contribuyen a su efectividad.

  • 00:40:00 El orador analiza las características de Extra Boost, una variante de aumento de gradiente que ofrece varias ventajas, como aprendizaje global aproximado, fuera del núcleo, conciencia de escasez y paralelismo. Extra Boost implementa métodos de aproximación para encontrar la mejor división en función de las estadísticas de resumen de los subconjuntos de los datos distribuidos. El orador compara el rendimiento de Extra Boost y otras implementaciones de aumento de gradiente en el método voraz exacto y muestra que Extra Boost tiene un rendimiento idéntico a una implementación pero con un tiempo significativamente reducido por árbol, lo que lo hace más atractivo para el ajuste de hiperparámetros.

  • 00:45:00 El video analiza Extra Boost, que es esencialmente una implementación escalable de aumento de gradiente que funciona bien con grandes conjuntos de datos. El video explica las diversas mejoras que Extra Boost tiene sobre las técnicas normales de aumento de gradiente, incluida la regularización, las técnicas de imputación para funciones faltantes y el almacenamiento en caché. Estas mejoras ayudan a reducir el sobreajuste y pueden mejorar el rendimiento general de Extra Boost. Además, Extra Boost utiliza submuestreos basados en columnas y filas para seleccionar aleatoriamente subconjuntos de características y ejemplos de entrenamiento, lo que puede ayudar a reducir el sobreajuste y la eficiencia computacional. El video recomienda leer el documento sobre Extra Boost para obtener una explicación más detallada de sus técnicas.

  • 00:50:00 El orador brinda una descripción general de Extra Boost, una implementación más reciente de máquinas de aumento de gradiente, que puede reducir el sobreajuste y mejorar la precisión de la predicción. El orador analiza las diferentes técnicas para encontrar divisiones, incluido el algoritmo voraz exacto y la búsqueda de divisiones basadas en histogramas. El último enfoque implica agrupar una característica continua en un histograma discreto, lo que puede mejorar la velocidad de entrenamiento y reducir el uso de la memoria. El orador también compara Extra Boost con Light GBM, otra implementación que es aún más rápida y precisa. Light GBM utiliza la búsqueda dividida basada en histogramas y ofrece un menor uso de memoria y una mayor precisión de predicción en comparación con Extra Boost.

  • 00:55:00 El orador analiza la implementación de clasificadores de aumento de gradiente en scikit-learn y presenta un nuevo clasificador de aumento de gradiente que se agregó en una versión reciente de scikit-learn. El nuevo clasificador utiliza una división basada en histogramas inspirada en LightGBM, lo que lo hace más rápido que el clasificador anterior. El orador sugiere usar los clasificadores de aumento de gradiente y compararlos con XGBoost para determinar cuál funciona mejor. El orador también proporciona a los espectadores ejemplos de código para usar como plantillas para sus proyectos de clase o para uso general. Los ejemplos incluyen la implementación del clasificador de aumento de gradiente en scikit-learn y el uso del nuevo clasificador de aumento de gradiente de histograma.

  • 01:00:00 El presentador analiza el aumento de gradiente con las bibliotecas XGBoost y LightGBM. La biblioteca XGBoost es similar, pero un poco más complicada que scikit-learn, y requiere convertir matrices NumPy a su formato de matriz D. El presentador establece parámetros arbitrarios y utiliza dot train en lugar de fit para entrenar el modelo. Posteriormente, el modelo puede llamar a predecir para predecir las probabilidades de pertenencia a la clase. La biblioteca Microsoft LightGBM tiene una API que es similar a scikit-learn y requiere configurar hiperparámetros antes de ajustar la máquina de aumento de gradiente y usar el método de puntuación para calcular la precisión. En este caso, el modelo exhibe una precisión de entrenamiento del 100 % sin ajustar hiperparámetros.
7.5 Gradient Boosting (L07: Ensemble Methods)
7.5 Gradient Boosting (L07: Ensemble Methods)
  • 2020.10.27
  • www.youtube.com
In this video, we will take the concept of boosting a step further and talk about gradient boosting. Where AdaBoost uses weights for training examples to boo...
 

7.6 Random Forests (L07: Ensemble Methods)



7.6 Random Forests (L07: Ensemble Methods)

Great! We have finally reached the last part of Lecture 5, which happens to be the most interesting one: sacred learn pipelines. Sacred learn pipelines are objects or classes that combine various data processing and prediction steps, making them extremely useful in real-world applications. To help you understand how pipelines work, let's take a look at an outline flowchart. I won't delve into all the intricacies right now, but we'll revisit it shortly after I provide an example of a pipeline.

In essence, a pipeline can be thought of as an estimator and transformer API. Similar to an estimator, a pipeline has a fit method that can be used on the training set. Internally, multiple fit and transform steps are performed, followed by a final fit step. Depending on the components included in the pipeline, you can define a sequence of operations such as data scaling (e.g., standardization or min-max scaling) or dimensionality reduction, followed by training a learning algorithm. The pipeline then returns a predictive model that can be used on the test set.

During the prediction phase, when you call the predict method on the test set, the pipeline internally uses transform to apply the same scaling that was carried out on the training set. It also applies the final prediction step, such as returning class labels in the case of a classifier. Let's examine a simple code example of a pipeline to illustrate this concept.

Here, I'm creating a pipeline using the make_pipeline function from sacred learn's scikit-learn.dot.pipeline submodule. Although there are different ways to create pipelines, this method is quite convenient. In this example, I'm constructing a simple pipeline consisting of a classifier and a standard scaler. The standard scaler, as discussed in the previous video, standardizes the data to have zero mean and unit variance. After creating the pipeline, we can use the fit method to train the pipeline on the training data. We can then use the predict method to make predictions on the test set.

Now, let's dive deeper into how the fit method works within the pipeline. When fit is called, the standard scaler is applied first. It learns the mean and standard deviation from the training data and uses them to scale the data. This process involves a fit and transform step, where the standard scaler calculates the scaled data and passes it to the next step. In this case, the next step is the K nearest neighbor classifier. The K nearest neighbor classifier receives the standardized data, effectively combining these four steps into one. By calling pipe.fit, all these steps are performed automatically, saving us the trouble of executing them individually.

During the prediction phase, the same process occurs, except that there is no fit step. Instead, the pipeline reuses the training set parameters to scale the test data, ensuring consistency. It then passes the scaled test data to the classifier for prediction.

To better visualize this process, let's revisit the flowchart. As a user, you only need to use the fit and predict methods. By calling fit, the pipeline automatically invokes the transform step. It's important to note that the convention in pipelines is to have the last step as the classifier. Only the last step calls fit, while all the preceding steps call fit and transform. Consequently, a pipeline can have multiple transformers, such as the standard scaler or even dimensionality reduction techniques like principal component analysis (PCA). However, it can only have one classifier as the last step. This design ensures the pipeline's compatibility and functionality.

To illustrate the pipeline in action, let's explore a simple model selection scenario using the holdout method. Please note that this is just a basic demonstration, and we'll cover more advanced model selection methods like K-fold cross-validation in later lectures.

The holdout method involves splitting the data into two subsets: a training set and a validation set. The training set is used to train the pipeline, while the validation set is used to evaluate its performance and select the best model.

Here's an example of how you can implement the holdout method with a pipeline:

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.pipeline import make_pipeline
from sklearn.metrics import accuracy_score

# Load the iris dataset
data = load_iris()
X = data.data
y = data.target

# Split the data into training and validation sets
X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=42)

# Create a pipeline
pipeline = make_pipeline(
    StandardScaler(),
    KNeighborsClassifier(n_neighbors=3)
)

# Train the pipeline
pipeline.fit(X_train, y_train)

# Make predictions on the validation set
y_pred = pipeline.predict(X_val)

# Evaluate the pipeline's accuracy
accuracy = accuracy_score(y_val, y_pred)
print(f"Validation accuracy: {accuracy}")
In this example, we first load the iris dataset. Then, we split the data into a training set (X_train and y_train) and a validation set (X_val and y_val) using the train_test_split function.

Next, we create a pipeline using make_pipeline and pass in the desired steps. In this case, we include a StandardScaler to standardize the data and a KNeighborsClassifier with n_neighbors=3 as the classifier.

We train the pipeline by calling the fit method on the training data (X_train and y_train).

After training, we use the pipeline to make predictions on the validation set (X_val) by calling the predict method.

Finally, we evaluate the pipeline's accuracy by comparing the predicted labels (y_pred) with the true labels (y_val) using the accuracy_score function.

This is a basic example of using a pipeline with the holdout method for model selection. Keep in mind that there are more advanced techniques, such as cross-validation, that can provide more robust evaluations of pipeline performance.

7.6 Random Forests (L07: Ensemble Methods)
7.6 Random Forests (L07: Ensemble Methods)
  • 2020.10.28
  • www.youtube.com
This video discusses random forests, how random forests are related to bagging, and why random forests might perform better than bagging in practice.-------T...
 

8.2 Intuición detrás del sesgo y la varianza (L08: Evaluación del modelo Parte 1)



8.2 Intuición detrás del sesgo y la varianza (L08: Evaluación del modelo Parte 1)

¡Hola a todos! Espero que lo estés haciendo bién. Tengo algunas noticias emocionantes para compartir con todos ustedes. En primer lugar, he completado la tarea de calificar sus propuestas de proyectos. Permítanme expresar mi alegría por leer todas sus ideas y planes brillantes para el resto del semestre. Es realmente impresionante ver que cada uno de ustedes tiene una hoja de ruta bien definida para las próximas semanas que conducen a las presentaciones e informes del proyecto.

Si alguno de ustedes siente la necesidad de comentarios adicionales o necesita una aclaración sobre algún aspecto, no dude en comunicarse conmigo por correo electrónico o por cualquier otro medio. Estaré más que feliz de brindarle más orientación e indicaciones sobre técnicas adicionales que podrían ser relevantes para sus proyectos.

Ahora, pasemos a la siguiente buena noticia. Hemos concluido con éxito la conferencia sobre métodos de conjunto y es hora de sumergirse en un tema nuevo y emocionante. En la próxima serie de conferencias, exploraremos el tema de la evaluación de modelos. A diferencia de las conferencias anteriores, donde presentamos varios clasificadores y algoritmos de aprendizaje automático, esta vez nos centraremos en evaluar esos algoritmos de manera justa.

Las conferencias sobre evaluación de modelos cubrirán varios aspectos. Comenzaremos por comprender los conceptos de subajuste y sobreajuste y su relación con el sesgo y la descomposición de la varianza en una función de pérdida. Luego, exploraremos métodos de validación cruzada que nos permitan comparar modelos de manera efectiva. Más adelante, discutiremos técnicas para comparar diferentes algoritmos de aprendizaje automático y su rendimiento en conjuntos de datos específicos.

Es importante tener en cuenta que la selección del modelo, que implica elegir un algoritmo bien ajustado, también se analizará con más detalle. Examinaremos en qué se diferencia de la evaluación del modelo. Entonces, comencemos nuestro viaje con una introducción a la evaluación de modelos y sigamos desarrollando nuestro conocimiento a partir de ahí.

Antes de profundizar en el nuevo tema, tomemos un momento para recapitular nuestro progreso en este curso. Comenzamos con una introducción y cubrimos aspectos computacionales importantes como Python, NumPy y scikit-learn. También exploramos métodos basados en árboles, que generaron algunos debates interesantes sobre su relevancia en la industria.

Ahora, al entrar en la fase de evaluación del modelo, exploraremos varios subtemas relacionados con el ajuste insuficiente y el ajuste excesivo. En esta lección en particular (Lección Ocho), nos centraremos en la descomposición del sesgo y la varianza y su conexión con el ajuste excesivo y el ajuste insuficiente. Examinaremos cómo los componentes de sesgo y varianza afectan el rendimiento de generalización de un modelo.

Además, exploraremos la descomposición del sesgo y la varianza de la pérdida 0-1, que es más relevante para los problemas de clasificación. Este análisis nos proporcionará una comprensión más profunda del ajuste excesivo y el ajuste insuficiente en el contexto de las tareas de clasificación.

Para concluir esta lección, abordaremos brevemente los diferentes tipos de sesgos en el aprendizaje automático más allá del sesgo estadístico discutido anteriormente.

Ahora, dirijamos nuestra atención a los conceptos principales de overfitting y underfitting. En el aprendizaje automático, nuestro objetivo final es desarrollar modelos (regresión o clasificación) que demuestren un buen rendimiento de generalización. Esto significa que los modelos deberían funcionar bien con datos no vistos, que generalmente provienen del conjunto de prueba. Si bien también consideramos el rendimiento en el conjunto de prueba, sirve como una estimación del rendimiento de generalización en datos no vistos.

En ausencia de ajuste o entrenamiento del modelo, esperamos que el error de entrenamiento sea similar al error de prueba. Sin embargo, cuando ajustamos el modelo al conjunto de entrenamiento, a menudo observamos que el error de entrenamiento es menor que el error de prueba. Este es el resultado del sobreajuste, donde el modelo se adapta demasiado a los datos de entrenamiento, incluido el ruido, lo que lleva a una estimación optimista del rendimiento.

Por el contrario, el ajuste insuficiente ocurre cuando el modelo no logra capturar los patrones subyacentes en los datos, lo que da como resultado que tanto los errores de entrenamiento como los de prueba sean altos. En este caso, el modelo carece.

suficiente complejidad para representar la verdadera relación entre las características y la variable de destino.

Para comprender mejor el ajuste excesivo y el ajuste insuficiente, consideremos el equilibrio entre sesgo y varianza. El sesgo se refiere al error introducido al aproximar un problema del mundo real con un modelo simplificado. Un modelo de alto sesgo tiende a simplificar demasiado los patrones subyacentes en los datos y puede resultar en un ajuste insuficiente. Por otro lado, la varianza se refiere al error introducido por la sensibilidad del modelo a las fluctuaciones en los datos de entrenamiento. Un modelo de alta varianza captura el ruido y las variaciones aleatorias en los datos de entrenamiento, lo que lleva a un sobreajuste.

La compensación de sesgo-varianza se puede ilustrar descomponiendo el error de prueba esperado en tres componentes: el error irreducible, el término de sesgo y el término de varianza. El error irreducible representa el ruido inherente a los datos que ningún modelo puede reducir. El término de sesgo mide el error introducido al aproximar un problema del mundo real con un modelo simplificado, y el término de varianza mide el error causado por la sensibilidad del modelo a las fluctuaciones en los datos de entrenamiento.

Matemáticamente, podemos expresar el error de prueba esperado de la siguiente manera:

Error de prueba esperado = Error irreducible + Sesgo ^ 2 + Varianza

Idealmente, queremos encontrar un equilibrio entre el sesgo y la varianza que minimice el error de prueba esperado. Sin embargo, la reducción de un componente a menudo conduce a un aumento en el otro. Esta compensación es crucial en la selección y evaluación del modelo.

En el contexto de los problemas de clasificación, también podemos examinar la descomposición de varianza de sesgo de la pérdida 0-1, que es una función de pérdida común utilizada en tareas de clasificación. La pérdida 0-1 mide el error como la proporción de instancias mal clasificadas. La descomposición de sesgo-varianza de la pérdida 0-1 proporciona información sobre las fuentes de error en los modelos de clasificación.

Más allá del sesgo estadístico, existen otros tipos de sesgos que pueden afectar los modelos de aprendizaje automático. Estos sesgos pueden surgir de varias fuentes, incluido el sesgo de muestreo, el sesgo de medición y el sesgo algorítmico. Comprender estos sesgos es esencial para construir sistemas de aprendizaje automático justos y confiables.

En la próxima lección, profundizaremos en la validación cruzada, una poderosa técnica para estimar el rendimiento de generalización de un modelo. La validación cruzada nos permite evaluar qué tan bien funcionará un modelo en datos no vistos al simular el proceso de entrenamiento y prueba en diferentes subconjuntos de datos. Exploraremos diferentes tipos de métodos de validación cruzada, como la validación cruzada k-fold y la validación cruzada estratificada, y discutiremos sus ventajas y limitaciones.

Eso es todo por la conferencia de hoy. Los animo a que revisen el material cubierto y vengan preparados con cualquier pregunta que puedan tener para nuestra próxima sesión. ¡Gracias y que tengas un buen día!

 

7.7 Apilamiento (L07: Métodos de conjunto)



7.7 Apilamiento (L07: Métodos de conjunto)

Sí, ha sido una larga, larga conferencia siete. Y finalmente, estamos llegando al último video para hablar sobre el apilamiento.

A lo largo de esta conferencia, hemos cubierto mucho terreno. Discutimos la votación por mayoría y el embolsado, donde ajustamos árboles de decisión en muestras de arranque. También cubrimos el impulso, donde ajustamos a los estudiantes profundos en función de los errores o errores de los alumnos anteriores, así como los residuos y el impulso de gradiente. Además, exploramos los bosques aleatorios, que mejoran el rendimiento en comparación con el embolsado regular mediante el uso de subconjuntos de características aleatorias en cada nodo. Y ahora, finalmente vamos a hablar sobre el apilamiento.

El apilamiento es similar a la votación por mayoría, pero con un meta clasificador que combina las predicciones de otros clasificadores en lugar de solo votar por mayoría. Profundicemos en los detalles del apilamiento.

Antes de continuar, permítame recordarle el tema de este video: el apilamiento. Me disculpo por la diapositiva innecesaria, pero concentrémonos en los conceptos básicos del algoritmo de apilamiento propuesto por David H. Wolpert en su artículo titulado 'Generalización apilada' publicado en 1992. Aunque es un artículo antiguo, la notación utilizada en un libro más reciente I estoy haciendo referencia hace que sea más fácil de entender. Entonces, comencemos con esta versión básica de apilamiento.

En este algoritmo, definimos la entrada y la salida, lo que plantea el problema. Estamos trabajando con un conjunto de datos de entrenamiento de tamaño 'n'. Cada vector de características, indicado como 'x_i', es un vector de dimensión 'm'. De manera similar, las etiquetas de clase correspondientes a los ejemplos de entrenamiento se indican como 'y_i'. La salida de este algoritmo es un clasificador de conjunto, al que llamaremos el segundo clasificador.

Ahora, concentrémonos en los pasos involucrados en el apilamiento. El primer paso es aprender clasificadores de primer nivel. Usamos un ciclo de uno a 't' para ajustar estos clasificadores. Entonces, tenemos una colección de clasificadores, denotados como 'h_1' a 'h_t', que están entrenados en los datos de entrada 'X' y las etiquetas de clase 'Y'.

Pasando al paso dos, construimos nuevos conjuntos de datos a partir del conjunto de entrenamiento. Para cada ejemplo de entrenamiento 'x_i', creamos un nuevo conjunto de datos que contiene el vector de características modificado 'x_i prime'. El vector de características modificado, 'x_i prime', contiene las predicciones de los clasificadores de primer nivel. Estas predicciones pueden ser las etiquetas de clase o incluso las probabilidades de pertenencia a la clase. Al usar estas predicciones, podemos realizar una votación por mayoría, similar a lo que discutimos anteriormente. Sin embargo, no nos detenemos ahí; procedemos al paso tres.

En el paso tres, en lugar de realizar una votación por mayoría, aprendemos un clasificador de segundo nivel basado en las predicciones de los clasificadores de primer nivel. 'x_i prime' representa una matriz de diseño modificada, donde cada columna contiene las predicciones de los clasificadores 'h_1' a 'h_t'. Podemos ajustar un clasificador a estas predicciones, teniendo en cuenta las etiquetas de clase o las probabilidades de pertenencia a la clase. Este clasificador de segundo nivel será entrenado en estas predicciones.

Una debilidad del procedimiento de apilamiento básico es su susceptibilidad al sobreajuste. Si alguno de los clasificadores de primer nivel sobreajusta el conjunto de entrenamiento, podría afectar negativamente el rendimiento del metaclasificador y dar lugar a un sobreajuste general del sistema. Para abordar esto, podemos mejorar el procedimiento de apilamiento incorporando validación cruzada.

La validación cruzada es una técnica en la que dividimos el conjunto de datos en múltiples subconjuntos y entrenamos el modelo en diferentes combinaciones de estos subconjuntos. Esto ayuda a reducir el sobreajuste y a obtener una estimación de rendimiento más fiable. Una variante de uso común es la validación cruzada de k-fold, donde el conjunto de datos se divide en 'k' subconjuntos o pliegues. Entrenamos el modelo en pliegues 'k-1' y evaluamos su rendimiento en el pliegue restante. Este proceso se repite 'k' veces, cada vez usando un pliegue diferente como conjunto de validación. Los resultados de rendimiento de cada pliegue se pueden promediar para obtener una estimación más sólida del rendimiento del modelo.

En el contexto del apilamiento, podemos utilizar la validación cruzada para mejorar el entrenamiento de los clasificadores de primer nivel. En lugar de entrenarlos en todo el conjunto de entrenamiento, dividimos los datos en pliegues 'k'. Para cada pliegue, entrenamos a los clasificadores de primer nivel en los pliegues 'k-1' restantes y los usamos para hacer predicciones en el pliegue que quedó fuera. Este proceso se repite para cada pliegue, lo que da como resultado predicciones para todo el conjunto de entrenamiento.

Una vez que tenemos las predicciones de los clasificadores de primer nivel para todo el conjunto de entrenamiento, podemos continuar con el paso tres del algoritmo de apilamiento, donde entrenamos al clasificador de segundo nivel en estas predicciones. Al incorporar la validación cruzada, nos aseguramos de que el clasificador de segundo nivel esté capacitado en predicciones diversas y confiables de los clasificadores de primer nivel, lo que reduce el riesgo de sobreajuste.

Después de entrenar el clasificador de segundo nivel, podemos usarlo para hacer predicciones sobre datos nuevos e invisibles. Las predicciones generalmente se obtienen alimentando la entrada a través de los clasificadores de primer nivel para obtener sus predicciones y luego usar estas predicciones como entradas para el clasificador de segundo nivel. La salida del clasificador de segundo nivel representa la predicción final del conjunto de apilamiento.

El apilamiento es una poderosa técnica de aprendizaje de conjuntos que aprovecha las fortalezas de múltiples clasificadores para mejorar el rendimiento general. Al combinar las predicciones de múltiples clasificadores, el apilamiento puede capturar diferentes aspectos de los datos y hacer predicciones más precisas. Es una técnica flexible y versátil que se puede adaptar a diferentes dominios de problemas y tipos de clasificadores.

En conclusión, el apilamiento es un método de aprendizaje conjunto que va más allá de la votación por mayoría simple. Combina las predicciones de múltiples clasificadores a través de un metaclasificador de segundo nivel, lo que permite una toma de decisiones más sofisticada. Al incorporar la validación cruzada, podemos mejorar la solidez y la capacidad de generalización del algoritmo de apilamiento. El apilamiento es una herramienta valiosa en el aprendizaje automático y se ha utilizado ampliamente en varias aplicaciones para mejorar el rendimiento de la predicción.

7.7 Stacking (L07: Ensemble Methods)
7.7 Stacking (L07: Ensemble Methods)
  • 2020.10.28
  • www.youtube.com
This video explains Wolpert's stacking algorithm (stacked generalization) and shows how to use stacking classifiers in mlxtend and scikit-learn.-------This v...
 

8.1 Introducción a overfitting y underfitting (L08: Evaluación del modelo Parte 1)



8.1 Introducción a overfitting y underfitting (L08: Evaluación del modelo Parte 1)

¡Buen día a todos! Espero que estéis todos bien. Tengo algunas noticias emocionantes para compartir con ustedes hoy, así que comencemos de inmediato.

En primer lugar, he terminado de calificar sus propuestas de proyectos y debo decir que estoy realmente encantado con las ideas y los planes que he visto. Es evidente que cada uno de ustedes ha pensado mucho en sus proyectos y tiene una visión clara para las próximas semanas hasta que las presentaciones e informes de los proyectos vencen a mediados de diciembre. Estoy genuinamente impresionado por el nivel de detalle y consideración de sus propuestas.

Sin embargo, si alguno de ustedes siente la necesidad de comentarios o aclaraciones adicionales, o si desea alguna orientación sobre cómo explorar técnicas adicionales, no dude en comunicarse conmigo. Estoy más que feliz de brindarle más ayuda y apoyo de cualquier manera que pueda. Simplemente envíeme un correo electrónico o programe una reunión y estaré allí para ayudarlo.

Pasando a más buenas noticias, hemos concluido con éxito la conferencia de métodos de conjunto, lo que significa que es hora de embarcarse en un tema nuevo y emocionante. En la próxima serie de conferencias, nos centraremos en la evaluación de modelos. A diferencia de las conferencias anteriores en las que presentamos varios clasificadores y algoritmos de aprendizaje automático, esta vez exploraremos cómo evaluar el rendimiento de estos algoritmos de manera justa.

A lo largo de esta nueva serie, cubriremos una variedad de temas. Comenzaremos por comprender los conceptos de subajuste y sobreajuste y cómo se relacionan con el sesgo y la descomposición de la varianza de una función de pérdida. Luego profundizaremos en métodos de validación cruzada que nos permitan comparar modelos de manera efectiva. Además, discutiremos técnicas para comparar diferentes algoritmos de aprendizaje automático para determinar su rendimiento en conjuntos de datos específicos. Es esencial diferenciar entre la selección del modelo y la selección del algoritmo, y exploraremos esta distinción con más detalle.

Sin más preámbulos, comencemos con la introducción a la evaluación de modelos y profundicemos en el mundo del sobreajuste y el ajuste insuficiente. En esta lección (lección ocho), discutiremos la descomposición del sesgo y la varianza y su relación con el sobreajuste y el desajuste. Analizaremos el sesgo y la descomposición de la varianza tanto de la pérdida de error cuadrático (relevante para la regresión) como de la pérdida 01 (relevante para la clasificación) para obtener una comprensión integral de estos conceptos. Además, abordaremos diferentes tipos de sesgos en el aprendizaje automático, yendo más allá del sesgo estadístico cubierto en la descomposición.

Antes de profundizar en el material de la lección, demos un paso atrás y recapitulemos brevemente dónde nos encontramos en el curso. Hemos cubierto la introducción, aspectos computacionales como Python, NumPy y scikit-learn, así como métodos basados en árboles. También hemos discutido la relevancia de los métodos basados en árboles y la popularidad de los métodos de conjunto, específicamente los bosques aleatorios y de impulso, en la industria. Ahora, con la evaluación de modelos como nuestro enfoque, exploraremos varios subtemas, incluidos los intervalos de confianza, la validación cruzada, la selección de modelos, la selección de algoritmos y las métricas de rendimiento. Hacia el final, tocaremos la reducción de la dimensionalidad y el aprendizaje no supervisado.

Quiero asegurarles que esta lección será más corta que la anterior sobre métodos de conjuntos, ya que es relativamente concisa. Sin embargo, cubre conceptos cruciales que nos ayudarán a comprender mejor la evaluación del modelo. Entonces, profundicemos en los seis subtemas que componen la lección ocho: sobreajuste, ajuste insuficiente, descomposición de varianza y sesgo, relación con ajuste excesivo y ajuste insuficiente, descomposición de varianza y sesgo de la pérdida de 01, y una descripción general de los diferentes tipos de sesgo en el aprendizaje automático.

A lo largo de esta conferencia, los animo a hacer una pausa y reflexionar sobre las preguntas que planteo, más allá de las pruebas. Siempre es útil hacer una pausa y formular sus propios pensamientos antes de considerar mi perspectiva sobre el asunto. Comprometerse con el material de esta manera mejorará su experiencia de aprendizaje.

  1. Sobreajuste y desajuste: en el aprendizaje automático, el sobreajuste se produce cuando un modelo se desempeña muy bien en los datos de entrenamiento, pero no se generaliza a datos nuevos e invisibles. Por otro lado, el ajuste insuficiente ocurre cuando un modelo es demasiado simple y no logra capturar los patrones subyacentes en los datos.

El sobreajuste puede deberse a modelos que son demasiado complejos y tienen demasiados parámetros en relación con la cantidad de datos de entrenamiento disponibles. Esto lleva a que el modelo ajuste el ruido en los datos de entrenamiento en lugar de los verdaderos patrones subyacentes. El ajuste insuficiente, por otro lado, ocurre cuando el modelo no es lo suficientemente complejo para capturar los patrones en los datos.

  1. Descomposición de sesgo y varianza: el sesgo y la varianza son dos fuentes de error en los modelos de aprendizaje automático. El sesgo mide qué tan lejos están las predicciones de los valores reales en promedio cuando el modelo se entrena en diferentes conjuntos de entrenamiento. La varianza, por otro lado, mide cuánto varían las predicciones para una entrada dada cuando el modelo se entrena en diferentes conjuntos de entrenamiento.

El sesgo y la varianza se pueden descomponer matemáticamente. El error cuadrático esperado de un modelo se puede descomponer en el sesgo cuadrático, la varianza y el error irreducible. El sesgo al cuadrado mide la diferencia promedio entre las predicciones del modelo y los valores reales. La varianza mide la variabilidad de las predicciones del modelo para una entrada determinada. El error irreducible representa el ruido inherente a los datos que ningún modelo puede reducir.

  1. Relación con el sobreajuste y el desajuste: el equilibrio entre la varianza y el sesgo está estrechamente relacionado con el sobreajuste y el desajuste. El sobreajuste a menudo se asocia con un sesgo bajo y una varianza alta. El modelo se ajusta muy bien a los datos de entrenamiento, pero no se puede generalizar a nuevos datos porque es demasiado sensible a las pequeñas fluctuaciones en el conjunto de entrenamiento.

El ajuste insuficiente, por otro lado, está asociado con un alto sesgo y una baja varianza. El modelo es demasiado simple y no puede capturar los patrones subyacentes en los datos, lo que da como resultado un rendimiento deficiente tanto en los datos de entrenamiento como de prueba.

  1. Descomposición del sesgo y la varianza de la pérdida 01: hasta ahora, hemos analizado la descomposición del sesgo y la varianza utilizando la pérdida del error cuadrático, que se usa comúnmente en problemas de regresión. Sin embargo, en los problemas de clasificación, normalmente usamos la pérdida 01, que mide la proporción de instancias mal clasificadas.

La descomposición de la varianza del sesgo de la pérdida 01 es similar a la de la pérdida del error al cuadrado, pero involucra matemáticas más complejas. El sesgo al cuadrado mide la diferencia esperada en la tasa de clasificación errónea entre las predicciones del modelo y las etiquetas verdaderas. La varianza mide la variabilidad en la tasa de clasificación errónea para una entrada determinada.

  1. Descripción general de los diferentes tipos de sesgos en el aprendizaje automático: más allá del sesgo estadístico analizado en la descomposición de la varianza del sesgo, existen otros tipos de sesgos en el aprendizaje automático:
  • Sesgo de muestreo: ocurre cuando los datos de entrenamiento no son representativos de la población real o tienen una distribución sesgada. Esto puede conducir a un modelo que funciona bien con los datos de entrenamiento, pero no se puede generalizar a una población más amplia.
  • Sesgo algorítmico: Se refiere a los sesgos que pueden surgir de los propios algoritmos. Por ejemplo, ciertos algoritmos pueden ser más propensos al sesgo en función de los datos de entrenamiento a los que están expuestos o las características que consideran.
  • Sesgo cognitivo: se refiere a los sesgos que pueden surgir del proceso humano de toma de decisiones, como el juicio subjetivo o sesgos inconscientes en el etiquetado de datos o la selección de características.

Comprender estos diferentes tipos de sesgos es crucial para construir modelos de aprendizaje automático justos y confiables.

Con esto concluyen los principales temas tratados en la conferencia ocho. Como puede ver, el sobreajuste, el ajuste insuficiente, el sesgo y la varianza son conceptos interconectados que juegan un papel crucial en la evaluación del modelo. Es importante lograr un equilibrio entre la complejidad y la generalización para evitar el sobreajuste o el ajuste insuficiente de los modelos. Además, ser consciente de los diferentes tipos de sesgos puede ayudar a abordar las consideraciones éticas y justas en el aprendizaje automático.

8.1 Intro to overfitting and underfitting (L08: Model Evaluation Part 1)
8.1 Intro to overfitting and underfitting (L08: Model Evaluation Part 1)
  • 2020.11.03
  • www.youtube.com
This video gives a brief overview of the topics to be covered in the model evaluation lectures. It will then start by giving a brief introduction to overfitt...
 

8.3 Descomposición de sesgo-varianza del error cuadrático (L08: Evaluación del modelo, parte 1)



8.3 Descomposición de sesgo-varianza del error cuadrático (L08: Evaluación del modelo, parte 1)

En la lección anterior, adquirimos cierta intuición sobre el sesgo y la varianza y abordamos brevemente la descomposición del sesgo y la varianza de una función de pérdida. Ahora, en esta lección, profundizaremos en la descomposición de la varianza del sesgo centrándonos en la pérdida del error cuadrático. Comenzar con la pérdida de error al cuadrado lo hace más simple e intuitivo antes de explorar su relación con el sobreajuste y el desajuste. Además, discutiremos brevemente la descomposición de varianza de sesgo de la pérdida 0-1, que es un tema más controvertido con trabajos recientes dedicados a él. Sin embargo, primero examinaremos el caso del error al cuadrado, ya que proporciona una comprensión más directa.

Para recapitular brevemente, el sesgo y la varianza se cubrieron con más detalle en el video anterior, pero es beneficioso dedicar un momento a recapitular la configuración. Estamos viendo el estimador puntual menos la predicción, que representa el objetivo predicho para un modelo dado y un conjunto de entrenamiento específico. La expectativa se toma sobre diferentes conjuntos de entrenamiento extraídos de la misma distribución o población. Esta expectativa representa la predicción promedio para un punto de datos dado en el conjunto de prueba.

El sesgo mide qué tan lejos está la predicción promedio del verdadero valor objetivo, mientras que la varianza cuantifica la cantidad por la cual cada predicción individual se desvía de la predicción promedio. El término de varianza se eleva al cuadrado para ignorar el signo y centrarse en la dispersión general de las predicciones alrededor del promedio.

La pérdida por error al cuadrado se puede representar como (theta - theta hat)^2, donde theta es el valor real y theta hat es el valor predicho para un punto de datos específico. En esta lección, nos centraremos en la descomposición de la varianza de polarización de la pérdida por error al cuadrado, considerando solo los términos de polarización y varianza e ignorando el término de ruido.

Para continuar con la descomposición de la varianza del sesgo, presentamos alguna notación y configuración para el escenario. Consideramos una función verdadera que genera las etiquetas (y), y tenemos una hipótesis (h) como modelo, que se aproxima a la función generadora de datos verdadera. Usamos y hat para representar una predicción. Con estos términos, podemos expresar la pérdida por error al cuadrado como (y - y hat)^2. Para evitar confusiones con el símbolo de expectativa (E), denotamos el error cuadrático como (s).

Ahora, descompongamos el error cuadrático en componentes de sesgo y varianza. Para lograr esto, empleamos un truco matemático de insertar y restar la expectativa de la predicción. Al hacer esto, expandimos la expresión cuadrática y la separamos en tres términos: (y^2, -2yy hat, y hat^2).

A continuación, aplicamos la expectativa a ambos lados de la ecuación. Aplicando la expectativa al primer término se obtiene y^2, que permanece sin cambios ya que y es una constante. La expectativa del segundo término, -2yy hat, es cero ya que estamos restando el mismo valor (expectativa de y hat) de sí mismo repetidamente. En cuanto al tercer término, la expectativa de y hat^2 representa el valor promedio de las predicciones.

Después de aplicar la expectativa, nos quedan dos términos: el sesgo al cuadrado y la varianza. El sesgo al cuadrado es (y - E[y hat])^2, que mide la diferencia entre la etiqueta verdadera y la predicción promedio. La varianza es E[(y hat - E[y hat])^2], que cuantifica la desviación cuadrática promedio de las predicciones individuales con respecto a la predicción promedio.

Para demostrar la eliminación del término -2yy hat al aplicar la expectativa, desglosamos los pasos. Aplicar la expectativa a -2yy hat da como resultado 2E[yy hat]. Expandiendo la expresión aún más, encontramos que la expectativa de yy hat es igual a E[y]E[y hat] ya que y es una constante. En consecuencia, la expectativa de -2yy hat se simplifica a -2E[y]E[y hat].

Restando este término del error al cuadrado (s) nos da:

s = y^2 - 2yy sombrero + y sombrero^2 = y^2 - 2yy sombrero + y sombrero^2 - 2E[y]E[y sombrero] + 2E[y]E[y sombrero]

Ahora, reordenemos los términos:

s = (y - E[y sombrero])^2 + 2(E[y]E[y sombrero] - yy sombrero)

Podemos simplificar aún más la expresión reconociendo que E[y]E[y hat] es un valor constante, denotado como c. Por lo tanto, tenemos:

s = (y - E[y sombrero])^2 + 2(c - yy sombrero)

Finalmente, centrémonos en el segundo término, 2(c - yy hat). Este término se puede descomponer de la siguiente manera:

2(c - yy sombrero) = 2c - 2yy sombrero

El primer término, 2c, es una constante y no depende de la predicción y hat. El segundo término, -2yy hat, representa la interacción entre la etiqueta verdadera y y la predicción y hat.

Ahora, podemos resumir la descomposición de varianza de sesgo de la pérdida por error cuadrático de la siguiente manera:

s = (y - E[y sombrero])^2 + 2c - 2yy sombrero

El primer término, (y - E[y hat])^2, corresponde al sesgo al cuadrado. Mide la discrepancia entre la etiqueta verdadera y y la predicción promedio E[y hat].

El segundo término, 2c, es una constante y representa el sesgo al cuadrado. No se ve afectado por la elección del sombrero de predicción.

El tercer término, -2yy hat, representa la varianza. Captura la variabilidad de las predicciones individuales y hat alrededor de su promedio E[y hat]. Está directamente influenciado por la elección del sombrero de predicción.

Por lo tanto, podemos concluir que la pérdida por error al cuadrado se puede descomponer en un término de sesgo al cuadrado, un término de sesgo al cuadrado constante y un término de varianza.

Comprender la descomposición de la varianza del sesgo nos ayuda a comprender mejor el comportamiento de un modelo. Un sesgo alto indica un ajuste insuficiente, donde el modelo no puede capturar los patrones subyacentes en los datos. Una varianza alta indica sobreajuste, donde el modelo es demasiado sensible a los datos de entrenamiento y no logra generalizar bien a los datos no vistos.

Al analizar los componentes de sesgo y varianza, podemos tomar decisiones informadas sobre la complejidad del modelo, las técnicas de regularización y las estrategias de recopilación de datos para optimizar el rendimiento de nuestros modelos.

En la próxima lección, extenderemos la descomposición de sesgo-varianza a la pérdida 0-1 y discutiremos sus implicaciones.

8.3 Bias-Variance Decomposition of the Squared Error (L08: Model Evaluation Part 1)
8.3 Bias-Variance Decomposition of the Squared Error (L08: Model Evaluation Part 1)
  • 2020.11.04
  • www.youtube.com
In this video, we decompose the squared error loss into its bias and variance components.-------This video is part of my Introduction of Machine Learning cou...
 

8.4 Sesgo y varianza frente a ajuste excesivo y ajuste insuficiente (L08: evaluación del modelo, parte 1)



8.4 Sesgo y varianza frente a ajuste excesivo y ajuste insuficiente (L08: evaluación del modelo, parte 1)

En este video, mi objetivo es establecer un récord para el video más corto de este curso. Quiero ser conciso y no alargar demasiado el tema. Solo tengo dos diapositivas, así que no tomará mucho tiempo. En este video, exploraremos la relación entre la descomposición de sesgo-varianza y los conceptos de subajuste y sobreajuste.

Comencemos mirando el gráfico que se muestra anteriormente en esta lección. Tenga en cuenta que este es un boceto simple y no se basa en números reales. En la práctica, la relación entre estos términos puede ser ruidosa cuando se trata de conjuntos de datos del mundo real. El gráfico ilustra la pérdida de error cuadrático trazada contra la capacidad del modelo, que se relaciona con su complejidad o capacidad para adaptarse a los datos de entrenamiento.

La capacidad se refiere a qué tan bien el modelo puede adaptarse al conjunto de entrenamiento. Una mayor capacidad significa que el modelo es más capaz de ajustar los datos. Por ejemplo, en modelos paramétricos como la regresión, la capacidad suele estar determinada por la cantidad de parámetros o términos. A medida que aumenta la capacidad, el error de entrenamiento disminuye porque un modelo más complejo puede ajustarse mejor a los datos de entrenamiento.

Sin embargo, tener un error de entrenamiento bajo no garantiza un buen rendimiento en datos nuevos. Es posible sobreajustar los datos de entrenamiento ajustándolos demasiado, lo que puede conducir a un aumento del error en los datos nuevos, conocido como error de generalización. El error de generalización se puede estimar usando un conjunto de prueba independiente. Inicialmente, a medida que aumenta la capacidad, el error de generalización mejora hasta cierto punto. Pero después de llegar a cierto punto, el error comienza a aumentar nuevamente, lo que indica un sobreajuste.

La brecha entre el error de entrenamiento y el error de generalización representa el grado de sobreajuste. A medida que aumenta la capacidad del modelo, aumenta la brecha porque el modelo se ajusta demasiado a los datos, incluido el ruido en los datos. El grado de sobreajuste indica cuánto sobreajusta el modelo a los datos de entrenamiento y no logra generalizar bien a los nuevos datos.

Ahora, relacionemos estos conceptos con el sesgo y la varianza. En el gráfico, agregué los términos sesgo y varianza en rojo. A medida que aumenta la capacidad del modelo, también aumenta su varianza. Esto se puede observar en el caso de árboles de decisión profundos en comparación con árboles de decisión cortos. Los modelos con mayor varianza son más propensos al sobreajuste. Cuanto mayor sea la varianza, mayor será el grado de sobreajuste, que está representado por la brecha entre el error de entrenamiento y el error de generalización.

Por el contrario, a medida que aumenta la varianza, el sesgo disminuye. Un modelo más complejo suele tener un sesgo más bajo. Puede parecer que el gráfico muestra que el sesgo baja y luego vuelve a subir, pero eso es solo el resultado de un mal dibujo. En realidad, el sesgo disminuye asintóticamente a medida que aumenta la varianza cuando aumenta la capacidad del modelo.

Por otro lado, cuando el modelo tiene poca capacidad (como un modelo simple), no se ajusta bien a los datos, lo que da como resultado un rendimiento deficiente tanto en los conjuntos de entrenamiento como de prueba. Esto se asocia con un alto sesgo. El ajuste insuficiente ocurre cuando el modelo es demasiado simple para capturar los patrones subyacentes en los datos.

Para resumir, un sesgo alto se correlaciona con un ajuste insuficiente, mientras que una varianza alta se correlaciona con un ajuste excesivo. En el siguiente video, exploraremos brevemente la descomposición de sesgo-varianza de la pérdida 0-1, que es más relevante para las tareas de clasificación. Aunque es menos intuitivo que descomponer la pérdida de error al cuadrado, proporciona información sobre los componentes de sesgo y varianza en un contexto de clasificación.

8.4 Bias and Variance vs Overfitting and Underfitting (L08: Model Evaluation Part 1)
8.4 Bias and Variance vs Overfitting and Underfitting (L08: Model Evaluation Part 1)
  • 2020.11.04
  • www.youtube.com
This brief video discusses the connection between bias & variance and overfitting & underfitting.-------This video is part of my Introduction of Machine Lear...
 

8.5 Descomposición de sesgo-varianza de la pérdida 0/1 (L08: Evaluación del modelo, parte 1)


8.5 Descomposición de sesgo-varianza de la pérdida 0/1 (L08: Evaluación del modelo, parte 1)

En esta discusión, profundizamos en la descomposición de la varianza del sesgo de la pérdida por error cuadrático y su relación con el ajuste excesivo y el ajuste insuficiente. Ahora, cambiaremos nuestro enfoque a la descomposición de varianza de sesgo de la pérdida 0/1, que es un poco más compleja debido a su naturaleza por partes. La pérdida 0/1 asigna un valor de 0 si la etiqueta verdadera coincide con la etiqueta predicha y 1 en caso contrario. Analizar esta función de pérdida es más complicado ya que no es una función continua.

Para explorar la descomposición sesgo-varianza en el contexto de la pérdida 0/1, nos referiremos al trabajo de Pedro Domingo y Common Dieterich. El artículo de Pedro Domingo, "La descomposición de varianza de sesgo unificado", tenía como objetivo unificar varias descomposiciones de varianza de sesgo relacionadas con la pérdida 0/1. Varios autores han propuesto diferentes descomposiciones, pero cada una de ellas tiene importantes deficiencias.

En esta clase, nos centraremos principalmente en la intuición detrás del puente entre la descomposición de la varianza del sesgo y la pérdida 0/1. Discutiremos brevemente el trabajo de combinatoria de 1995 y la explicación de Pedro Domingo de este trabajo. Para una comprensión más detallada, puede consultar los documentos de referencia.

Comencemos revisando la pérdida de error al cuadrado, que definimos como la diferencia al cuadrado entre el valor real y el valor predicho. Anteriormente, analizamos la expectativa de esta pérdida en diferentes conjuntos de entrenamiento y la descomponemos en términos de sesgo y varianza. Ahora, introduciremos una notación generalizada usando la función L para representar la pérdida y tomaremos la expectativa de esta función.

Cuando discutimos la descomposición de sesgo-varianza de la pérdida por error al cuadrado, la descomponemos en términos de sesgo y varianza. El término de sesgo, denominado Bias(Y), representa la diferencia entre la etiqueta verdadera (Y) y la predicción promedio (E[Y_hat]). El término de varianza, denominado Var(Y_hat), mide la variabilidad de las predicciones en torno a la predicción promedio. Estos términos capturan cuánto se desvían las predicciones de la etiqueta verdadera y cuánto se dispersan, respectivamente.

Ahora, definiremos un nuevo término llamado predicción principal. En el caso de la pérdida por error cuadrático, la predicción principal es la predicción promedio en diferentes conjuntos de entrenamiento. Sin embargo, cuando se trata de la pérdida 0/1, la predicción principal se obtiene tomando la moda de las predicciones, es decir, la predicción más frecuente. Esta distinción es crucial para comprender la descomposición de sesgo-varianza en el contexto de la clasificación.

Exploremos cómo se pueden definir el sesgo y la varianza en términos de la pérdida 0/1. Nos referiremos a la versión limpia de la diapositiva anterior. En el lado derecho, introducimos el término de sesgo. En los artículos de Kong y Dieterich, el sesgo se define como 1 si la predicción principal (E[Y_hat]) no es igual a la etiqueta verdadera (Y), y 0 en caso contrario. Esta definición captura si la predicción principal coincide o no con la etiqueta verdadera.

A continuación, centrémonos en el caso en el que el sesgo es cero, lo que indica que la predicción principal coincide con la etiqueta verdadera. En este escenario, la pérdida es igual a la varianza. Por definición, la pérdida representa la probabilidad de que la predicción no coincida con la etiqueta verdadera. Así, podemos interpretar la varianza como la probabilidad de que la predicción (Y_hat) no sea igual a la predicción principal (E[Y_hat]). Esta probabilidad refleja la variabilidad en las predicciones cuando el sesgo es cero.

Ahora, profundicemos en el caso donde el sesgo es uno, que es un poco más complicado. Comenzamos reescribiendo la pérdida como uno menos la probabilidad de que la predicción coincida con la etiqueta verdadera. Esto es equivalente a uno menos la precisión. Consideraremos dos aspectos: cuando Y no es igual a la predicción principal y cuando Y es igual a la predicción principal.

Cuando Y no es igual a la predicción principal, la pérdida es igual a uno, lo que indica una clasificación errónea. En este caso, el término de varianza no contribuye a la pérdida ya que la predicción principal es diferente de la etiqueta verdadera y la variabilidad en las predicciones es irrelevante. La pérdida total se puede atribuir al término de sesgo, que capta el hecho de que la predicción principal no coincide con la etiqueta verdadera.

Por otro lado, cuando Y es igual a la predicción principal, la pérdida es igual a uno menos la probabilidad de que todas las demás predicciones sean diferentes de la predicción principal. Esta probabilidad representa la variabilidad en las predicciones cuando el sesgo es uno. Por lo tanto, el término de varianza explica la pérdida en este caso, reflejando la incertidumbre en las predicciones en torno a la predicción principal.

Para resumir, en la descomposición de varianza de sesgo de la pérdida 0/1, el término de sesgo captura el error de clasificación cuando la predicción principal no coincide con la etiqueta verdadera. El término de varianza explica la variabilidad en las predicciones cuando la predicción principal coincide con la etiqueta verdadera.

Es importante tener en cuenta que la descomposición de la varianza de sesgo para la pérdida 0/1 es más matizada y compleja en comparación con la pérdida del error cuadrático debido a la naturaleza discreta de la función de pérdida. Los términos de sesgo y varianza se definen con base en el concepto de la predicción principal y capturan diferentes aspectos del desempeño de la clasificación.

Comprender la compensación de sesgo-varianza en el contexto de la pérdida 0/1 es crucial para evaluar y mejorar los modelos de clasificación. Al analizar los componentes de sesgo y varianza, podemos obtener información sobre las fuentes de error y tomar decisiones informadas para mitigar los problemas de ajuste insuficiente o excesivo.

Si está interesado en una exploración más detallada de la descomposición de la varianza del sesgo para la pérdida 0/1, le recomiendo leer el artículo de Pedro Domingo "La descomposición de la varianza del sesgo unificado" y los trabajos relacionados de Kong y Dieterich. Estos documentos proporcionan explicaciones detalladas y formalismos matemáticos para la descomposición.

La compensación de sesgo-varianza es un concepto fundamental en el aprendizaje automático que se relaciona con la capacidad del modelo para equilibrar entre el ajuste insuficiente y el ajuste excesivo. El término de sesgo representa el error debido a las suposiciones o simplificaciones del modelo, lo que lleva a un escenario de ajuste insuficiente en el que el modelo es demasiado simple para capturar los patrones subyacentes en los datos. Por otro lado, el término de varianza representa el error debido a la sensibilidad del modelo a las pequeñas fluctuaciones en los datos de entrenamiento, lo que da como resultado un escenario de sobreajuste donde el modelo es demasiado complejo y captura ruido en lugar de patrones generalizables.

En el caso de la pérdida 0/1, el término de sesgo captura el error de clasificación errónea cuando la predicción principal es diferente de la etiqueta verdadera. Un alto sesgo indica que el modelo constantemente hace predicciones incorrectas y no puede capturar los verdaderos patrones subyacentes en los datos. Esto suele ocurrir cuando el modelo es demasiado simple o carece de la complejidad necesaria para captar la complejidad del problema.

El término de varianza, por otro lado, captura la variabilidad en las predicciones cuando la predicción principal coincide con la etiqueta verdadera. Refleja la sensibilidad del modelo a diferentes muestras de datos de entrenamiento y la inestabilidad de sus predicciones. Una varianza alta indica que el modelo es demasiado sensible a pequeños cambios en los datos de entrenamiento y es probable que se sobreajuste. Esto significa que el modelo puede funcionar bien con los datos de entrenamiento, pero no puede generalizar a los datos no vistos.

Idealmente, queremos encontrar un modelo que logre un equilibrio entre el sesgo y la varianza, minimizando ambos tipos de errores. Sin embargo, a menudo hay una compensación entre los dos. Disminuir el sesgo puede aumentar la varianza y viceversa. Esto se conoce como compensación de sesgo-varianza.

Para lograr el equilibrio adecuado, se pueden emplear varias técnicas. Los métodos de regularización, como la regularización L1 o L2, pueden ayudar a reducir la complejidad del modelo y controlar la varianza. La validación cruzada se puede utilizar para evaluar el rendimiento del modelo en diferentes subconjuntos de datos e identificar posibles sobreajustes. Los métodos de conjunto, como embolsado o refuerzo, también se pueden emplear para reducir la varianza mediante la combinación de múltiples modelos.

Comprender el equilibrio entre sesgo y varianza es crucial para la selección del modelo y el ajuste de hiperparámetros. Nos permite evaluar el rendimiento de generalización del modelo y tomar decisiones informadas para mejorar su precisión y confiabilidad.

8.5 Bias-Variance Decomposition of the 0/1 Loss (L08: Model Evaluation Part 1)
8.5 Bias-Variance Decomposition of the 0/1 Loss (L08: Model Evaluation Part 1)
  • 2020.11.05
  • www.youtube.com
This video discusses the tricky topic of decomposing the 0/1 loss into bias and variance terms.-------This video is part of my Introduction of Machine Learni...
Razón de la queja: