Impulso y embolsado: cómo desarrollar un algoritmo robusto de aprendizaje automático

El aprendizaje automático y la ciencia de datos requieren más que simplemente arrojar datos a una biblioteca de Python y utilizar lo que salga

Bootstrapping / Bagging / Boosting

El aprendizaje automático y la ciencia de datos requieren más que simplemente arrojar datos a una biblioteca de Python y utilizar lo que sea que salga.

Los científicos de datos necesitan comprender realmente los datos y los procesos detrás de ellos para poder implementar un sistema exitoso.

Una metodología clave para la implementación es saber cuándo un modelo podría beneficiarse al utilizar métodos de arranque. Estos son los llamados modelos de conjunto. Algunos ejemplos de modelos de conjunto son AdaBoost y Stochastic Gradient Boosting.

¿Por qué usar modelos de conjunto?

Pueden ayudar a mejorar la precisión del algoritmo o hacer que un modelo sea más robusto. Dos ejemplos de esto son aumentar y embolsar. El impulso y el embolsado son temas que los científicos de datos y los ingenieros de aprendizaje automático deben conocer, especialmente si planea asistir a una entrevista de ciencia de datos / aprendizaje automático.

Esencialmente, el aprendizaje en conjunto es fiel a la palabra conjunto. Excepto que, en lugar de tener a varias personas cantando en diferentes octavas, se crea una hermosa armonía (cada voz llena el vacío de la otra), el aprendizaje conjunto usa cientos de miles de modelos del mismo algoritmo que trabajan juntos para encontrar la clasificación correcta.

Otra forma de pensar sobre el aprendizaje conjunto es la fábula de los ciegos y el elefante. En este ejemplo, cada ciego siente una parte diferente de un elefante, por lo que no está de acuerdo con lo que siente. Sin embargo, si se hubieran reunido y discutido, podrían haber podido darse cuenta de que estaban viendo diferentes partes de la misma cosa.

El uso de técnicas como el refuerzo y el embolsado ha llevado a una mayor robustez de los modelos estadísticos y a una menor variación.

Ahora la pregunta es, ¿cuál es la diferencia entre todas estas diferentes palabras "B"?

Bootstrapping

Primero hablemos sobre el concepto muy importante de bootstrapping. Muchos científicos de datos extrañan esto y van directamente a explicar el impulso y el embolsado. Pero ambos requieren bootstrapping.

Figura 1 Bootstrapping

En el aprendizaje automático, el método bootstrap se refiere al muestreo aleatorio con reemplazo. Esta muestra se denomina remuestreo. Esto permite que el modelo o algoritmo comprenda mejor los diversos sesgos, variaciones y características que existen en la muestra. Tomar una muestra de los datos permite que la muestra contenga características diferentes de las que podría haber contenido en su conjunto. Esto se demuestra en la Figura 1, donde cada población de muestra tiene piezas diferentes y ninguna es idéntica. Esto afectaría la media general, la desviación estándar y otras métricas descriptivas de un conjunto de datos. A su vez, puede desarrollar modelos más robustos.

Bootstrapping también es ideal para conjuntos de datos de pequeño tamaño que pueden tener tendencia a sobreajustarse. De hecho, recomendamos esto a una compañía que estaba preocupada de que sus conjuntos de datos estuvieran lejos de ser "Big Data". Bootstrapping puede ser una solución en este caso porque los algoritmos que utilizan bootstrapping pueden ser más robustos y manejar nuevos conjuntos de datos, dependiendo de metodología (refuerzo o embolsado).

La razón para usar el método bootstrap es porque puede probar la estabilidad de una solución. Puede aumentar la robustez utilizando múltiples conjuntos de datos de muestra y probando múltiples modelos. Quizás un conjunto de datos de muestra tenga una media mayor que otra, o una desviación estándar diferente. Esto podría romper un modelo que estaba sobreajustado y no probado usando conjuntos de datos con diferentes variaciones.

Una de las muchas razones por las cuales el bootstrapping se ha vuelto común es debido al aumento en la potencia de cómputo. Esto permite que se realicen muchas más permutaciones con diferentes muestreos de lo que de otra manera sería posible. Bootstrapping se usa tanto en embolsado como en refuerzo, como se discutirá a continuación.

Harpillera

El ensacado en realidad se refiere a (Agregadores de Bootstrap). Casi cualquier artículo o publicación que haga referencia a algoritmos de ensacado también hará referencia a Leo Breiman, quien escribió un artículo en 1996 llamado "Predictores de ensacado".

Donde Leo describe el embolsado como:

"Los predictores de ensacado son un método para generar múltiples versiones de un predictor y usarlas para obtener un predictor agregado".

El ensacado ayuda a reducir la variación de los modelos que pueden ser muy precisos, pero solo en los datos sobre los que fueron entrenados. Esto también se conoce como sobreajuste.

El sobreajuste es cuando una función se ajusta demasiado bien a los datos. Por lo general, esto se debe a que la ecuación real es demasiado complicada para tener en cuenta cada punto de datos y valores atípicos.

Figura 2 Sobreajuste

Otro ejemplo de un algoritmo que se puede sobreajustar fácilmente es un árbol de decisión. Los modelos que se desarrollan utilizando árboles de decisión requieren una heurística muy simple. Los árboles de decisión se componen de un conjunto de declaraciones "if-else" realizadas en un orden específico. Por lo tanto, si el conjunto de datos se cambia a un nuevo conjunto de datos que podría tener algún sesgo o diferencia en lugar de características subyacentes en comparación con el conjunto anterior, el modelo no será tan preciso. Esto se debe a que los datos no se ajustarán también al modelo (que de todos modos es una declaración al revés).

El empaquetamiento evita esto al crear su propia variación entre los datos al muestrear y reemplazar los datos mientras prueba múltiples hipótesis (modelos). A su vez, esto reduce el ruido al utilizar múltiples muestras que probablemente estarían formadas por datos con varios atributos (mediana, promedio, etc.).

Una vez que cada modelo ha desarrollado una hipótesis, los modelos usan la votación para la clasificación o el promedio para la regresión. Aquí es donde entra en juego la "Agregación" en "Agregación Bootstrap". Cada hipótesis tiene el mismo peso que todas las demás. Cuando más tarde discutamos el impulso, este es uno de los lugares donde las dos metodologías difieren.

Figura 3 Embolsado

Esencialmente, todos estos modelos se ejecutan al mismo tiempo, y el voto sobre qué hipótesis es la más precisa.

Esto ayuda a disminuir la varianza, es decir, reduce el sobreajuste.

Impulsar

Impulso se refiere a un grupo de algoritmos que utilizan promedios ponderados para convertir a los alumnos débiles en alumnos más fuertes. A diferencia del embolsado, que hizo que cada modelo se ejecutara de manera independiente y luego agregara los resultados al final sin preferencia a ningún modelo, el impulso tiene que ver con el "trabajo en equipo". Cada modelo que se ejecuta dicta las características en las que se centrará el siguiente modelo.

Impulsar también requiere bootstrapping. Sin embargo, hay otra diferencia aquí. A diferencia del embolsado, aumentar los pesos de cada muestra de datos. Esto significa que algunas muestras se ejecutarán con más frecuencia que otras.

¿Por qué poner pesos en las muestras de datos?

Figura 4 Impulso

Cuando el refuerzo ejecuta cada modelo, rastrea qué muestras de datos son las más exitosas y cuáles no. Los conjuntos de datos con las salidas más mal clasificadas reciben pesos más pesados. Estos se consideran datos que tienen más complejidad y requieren más iteraciones para entrenar adecuadamente el modelo.

Durante la etapa de clasificación real, también hay una diferencia en cómo el impulso trata los modelos. Al impulsar, se realiza un seguimiento de las tasas de error del modelo porque a los mejores modelos se les da un mejor peso.

De esa manera, cuando se produce la "votación", como en el ensacado, los modelos con mejores resultados tienen una mayor influencia en el resultado final.

Resumen

Impulsar y embolsar son excelentes técnicas para disminuir la variación. Los métodos de conjunto generalmente superan a un modelo único. Es por eso que muchos de los ganadores de Kaggle han utilizado metodologías de conjunto. Uno que no se discutió aquí fue el apilamiento. (Eso requiere su propia publicación).

Sin embargo, no solucionarán todos los problemas, y ellos mismos tienen sus propios problemas. Hay diferentes razones por las que usarías una sobre la otra. El ensacado es ideal para disminuir la variación cuando un modelo está sobreajustado. Sin embargo, aumentar es mucho más probable que sea una mejor elección de los dos métodos. Impulsar también es mucho más probable que cause problemas de rendimiento. También es ideal para disminuir el sesgo en un modelo de underfit.

¡Aquí es donde entran en juego la experiencia y la experiencia en el tema! Puede ser fácil saltar sobre el primer modelo que funciona. Sin embargo, es importante analizar el algoritmo y todas las características que selecciona. Por ejemplo, si un árbol de decisión establece hojas específicas, la pregunta es por qué. Si no puede admitirlo con otros puntos de datos y elementos visuales, probablemente no debería implementarse.

No se trata solo de probar AdaBoost o bosques aleatorios en varios conjuntos de datos. El algoritmo final depende de los resultados que está obteniendo y de qué soporte hay.