Resumen de los métodos de fusión de modelos

En términos generales, es posible mejorar el rendimiento del aprendizaje automático fusionando múltiples modelos diferentes. Este método se usa ampliamente en varias competencias de aprendizaje automático, como el Otto Product Classification Challenge en kaggle①. el campeonato y el subcampeonato son "gigantes" que combinan más de 1000 modelos.

Los métodos comunes de aprendizaje conjunto y fusión de modelos incluyen: votación/promedio simple (para problemas de clasificación y regresión respectivamente), apilamiento, impulso y embolsado.

Votar directamente o promediar los resultados de predicción de diferentes modelos sin cambiar el modelo. Este es un método de fusión simple pero efectivo.

Por ejemplo, para el problema de clasificación, supongamos que hay tres modelos independientes, cada uno con una tasa de precisión del 70%, y la votación se lleva a cabo de manera mayoritaria-subordinada. Entonces la tasa de precisión final será:

Es decir, después de una votación simple, la tasa de precisión aumentó en un 8%. Es una simple cuestión de probabilidad: si votan más modelos, obviamente los resultados serán mejores. Sin embargo, el requisito previo es que los modelos sean independientes entre sí y que no exista correlación entre los resultados. Cuanto más modelos similares se fusionen, peor será el efecto de fusión.

Por ejemplo, para una prueba donde el resultado correcto es 1, tenemos tres resultados de predicción muy similares, que son:

El resultado de la votación es:

Y si hay una gran diferencia entre nuestros resultados de predicción:

El resultado de la votación será:

Se puede ver que cuanto mayor sea la diferencia entre los modelos, más preciso El resultado de la fusión será bueno. //Esta característica no se verá afectada por el método de fusión. Tenga en cuenta que la diferencia entre modelos a la que se hace referencia aquí no se refiere a la diferencia en precisión, sino a la diferencia en correlación entre modelos.

Para problemas de regresión, promediar los resultados de predicción de varios modelos puede reducir el sobreajuste y suavizar los límites de un solo modelo. Esta es una propiedad muy intuitiva. Puedo simplemente poner una imagen ② sin dar un ejemplo detallado.

Basado en el método de fusión anterior, una forma mejorada es asignar diferentes pesos a cada votante/promedio para cambiar su impacto en el resultado final. A los modelos con baja precisión se les asignan pesos más bajos, mientras que a los modelos con mayor precisión se les asignan pesos más altos. Esto también se puede entender intuitivamente: la única forma de anular el modelo experto (modelo de alta precisión) es que el modelo zapatero (modelo de baja precisión) vote en contra de la misma opción al mismo tiempo. Específicamente para la asignación de ponderaciones, se puede utilizar la regularización de la clasificación de precisión.

Este método puede parecer simple, pero es la base para varios métodos "avanzados" que aparecen a continuación.

El impulso es un método de aprendizaje integrado que conecta varios clasificadores débiles en serie. El entrenamiento de cada clasificador depende de los resultados del clasificador anterior. El método de operación secuencial conduce a una velocidad de ejecución lenta. Como todos los métodos de fusión, no considera la estructura de cada modelo de clasificador débil en sí, sino que manipula los datos de entrenamiento (conjunto de muestra) y los métodos de conexión para obtener errores más pequeños. Sin embargo, para equilibrar los errores del clasificador fuerte final, los clasificadores seleccionados previamente son generalmente clasificadores relativamente débiles, porque una vez que un determinado clasificador es fuerte, los resultados posteriores se verán muy afectados. Por lo tanto, se utiliza principalmente para el aprendizaje conjunto en lugar de la fusión de modelos (fusionar múltiples modelos que ya tienen buenos resultados en un modelo mejor).

Aquí hay un PPT de dos páginas del profesor Alex Ihler de la Universidad de California, Irvine, citado en la columna de Zhihu "Descripción general de los métodos de fusión de modelos de aprendizaje automático" ③:

Los conceptos básicos El mecanismo de trabajo es el siguiente:

1. Capacitar a un alumno base a partir del conjunto de muestra inicial

2. Ajustar la distribución del conjunto de muestra de acuerdo con el desempeño del alumno base, de modo que las muestras erróneas pueden recibir más atención en el proceso;

3. Utilice el conjunto de muestras ajustado para capacitar al siguiente alumno base;

4. Repita los pasos anteriores hasta que se cumplan ciertas condiciones .

Tenga en cuenta que, en general, solo cuando los clasificadores débiles son todos el mismo clasificador (es decir, integración homogénea), el clasificador débil se denomina alumno base. Si se trata de una integración heterogénea, se denomina alumno base. aprendiz. Dado que no es el tema central de este artículo, aquí no se hará ninguna distinción. Por la presente explico.

Finalmente, estos clasificadores débiles se ponderan y suman.

Los métodos de impulso comunes incluyen Adaboost, GBDT, XGBOOST, etc. // A continuación se presentan solo brevemente varios métodos desde un nivel ideológico. Para obtener información sobre la derivación de fórmulas de razonamiento algorítmico específicas y los kits de herramientas disponibles, consulte el apéndice de este artículo.

Bagging es la abreviatura de Bootstrap Aggregating. Este método tampoco opera en el modelo en sí, sino en el conjunto de muestras. Lo que se utiliza es seleccionar aleatoriamente datos de entrenamiento con reemplazo, luego construir un clasificador y finalmente combinarlos. A diferencia de la dependencia mutua y la operación en serie entre clasificadores en el método Boosting, no existe una fuerte dependencia entre los alumnos base en el método Bagging y se generan operaciones paralelas al mismo tiempo.

La idea básica es:

1. Realizar K rondas de muestreo con reemplazo en el conjunto de muestras y extraer n muestras cada vez para obtener K conjuntos de entrenamiento

;

2. Utilice K conjuntos de entrenamiento para entrenar K modelos respectivamente.

3. Fusión de los resultados de predicción del modelo K obtenidos mediante votación o promediación.

Aquí, la selección del conjunto de entrenamiento puede no incluir todos los conjuntos de muestras, y los datos no incluidos se convierten en datos de bolsa/fuera de bolsa, que pueden usarse para una estimación generalizada de errores fuera de bolsa. . Durante el proceso de entrenamiento de cada modelo, todas las características de cada conjunto de entrenamiento se pueden usar para el entrenamiento, o algunas características se pueden seleccionar aleatoriamente para el entrenamiento. Por ejemplo, el algoritmo de bosque aleatorio muy representativo selecciona aleatoriamente algunas características cada vez.

Lo siguiente solo presenta el algoritmo de bosque aleatorio desde un nivel ideológico:

1. Realice K rondas de muestreo con reemplazo en el conjunto de muestras y extraiga n muestras cada vez para obtener K conjuntos de entrenamiento, donde n es generalmente mucho menor que el número total de conjuntos de muestra;

2. Seleccione el conjunto de entrenamiento y seleccione parte del conjunto de características m del conjunto de características general M para construir un. árbol de decisión, donde m es generalmente mucho más pequeño que M;

3. En el proceso de construcción de cada árbol de decisión, el nodo dividido se selecciona de acuerdo con el índice de Gini mínimo para construir el árbol de decisión. Otros nodos del árbol de decisión se construyen utilizando las mismas reglas de división hasta que todas las muestras de entrenamiento del nodo pertenezcan a la misma categoría o alcancen la profundidad máxima del árbol;

4. Repita los pasos anteriores para obtener el bosque aleatorio;

5. Se predicen múltiples árboles de decisión al mismo tiempo y los resultados se votan o se promedian para obtener el resultado de clasificación final.

El proceso de múltiples selecciones aleatorias hace que el bosque aleatorio tenga menos probabilidades de sobreajustarse y tiene una buena capacidad antiinterferencia.

Método de optimización >

En el aprendizaje automático, entrenar un modelo suele ser un proceso para minimizar la pérdida definida. Sin embargo, simplemente minimizar la pérdida no garantiza que el modelo pueda ser óptimo al resolver problemas generales, ni siquiera garantizar que el modelo sea utilizable. La diferencia entre la pérdida del conjunto de datos de entrenamiento y la pérdida del conjunto de datos de generalización se denomina error de generalización.

Demasiada variación hará que el modelo se ajuste demasiado, mientras que demasiado sesgo hará que el modelo no se ajuste bien.

? El método Bagging reduce principalmente el error al reducir la Varianza, y el método Boosting reduce principalmente el error al reducir el Sesgo.

El método Bagging utiliza múltiples conjuntos de entrenamiento no idénticos para entrenar múltiples modelos y los resultados finales se promedian. Dado que

el sesgo del resultado final es similar al sesgo de un solo modelo, el sesgo generalmente no se reducirá significativamente.

Por otro lado, para Varianza:

Los múltiples submodelos de Bagging se entrenan a partir de diferentes conjuntos de datos, por lo que existe una cierta correlación entre los submodelos, pero no completamente independientes. entonces el resultado está en algún punto intermedio de las dos ecuaciones anteriores. Por lo tanto, la variación se puede reducir hasta cierto punto, reduciendo así el error total.

Desde una perspectiva de optimización, el método Boosting utiliza un método codicioso como el avance por etapas para minimizar la función de pérdida

. El llamado paso adelante consiste en resolver el nuevo submodelo f (x) y el tamaño de paso a (o coeficiente de combinación) en el enésimo paso de la iteración para minimizar

, aquí

es la suma de los submodelos obtenidos en los n pasos anteriores. Por lo tanto, Boosting minimiza la función de pérdida y el sesgo, naturalmente, disminuye gradualmente. Sin embargo, debido a la fuerte correlación entre los modelos, la varianza no se puede reducir significativamente.

Cada clasificador en Bagging es un clasificador fuerte porque reduce la varianza. Si la varianza es demasiado alta y es necesario reducirla, se trata de sobreajuste.

Cada clasificador en el impulso es un clasificador débil porque reduce el sesgo. Si el sesgo es demasiado alto, está desadaptado.

Selección de muestra

Embolsado: el conjunto de entrenamiento se selecciona con reemplazo del conjunto original, y cada ronda de conjuntos de entrenamiento seleccionados del conjunto original es independiente.

Impulso: el conjunto de entrenamiento en cada ronda permanece sin cambios, pero el peso de cada muestra en el conjunto de entrenamiento en el clasificador cambia. Los pesos se ajustan en función de los resultados de clasificación de la ronda anterior.

Peso de la muestra>

Embolsado: utilice un muestreo uniforme y el peso de cada muestra sea igual.

Impulso: ajuste continuamente el peso de la muestra de acuerdo con el tasa de error, cuanto mayor es la tasa de error, mayor es el peso

Función de predicción>

Ensacado: los pesos de todas las funciones de predicción son iguales.

Impulso: cada clasificador débil tiene un peso correspondiente, y un clasificador con un pequeño error de clasificación tendrá un peso mayor.

Computación paralela>

Embolsado: cada uno la función de predicción se puede generar en paralelo

Impulso: en teoría, cada función de predicción solo se puede generar secuencialmente, porque los últimos parámetros del modelo requieren los resultados de la ronda anterior de modelos. Desde una perspectiva computacional, ambos enfoques pueden paralelizarse. El método de ensacado y paralelización de bosques aleatorios es obvio. Boosting tiene una poderosa herramienta llamada impulso de gradiente estocástico

A continuación se presenta el método de apilamiento conocido como la "habilidad mágica del dragón de siete cabezas" en varias competencias de aprendizaje automático.

(Sin embargo, debido a que el tamaño del modelo a menudo no es directamente proporcional a la mejora en efecto, generalmente es difícil de aplicar en la producción real)

La siguiente es una para entender pero no Tome el método de apilamiento de dos capas realmente utilizado como ejemplo para describir brevemente su estructura y principio de funcionamiento: (Este problema del modelo se explicará más adelante)

Supongamos que tenemos tres modelos base M1, M2, M3 y entrenamiento de uso Después de entrenarlo en el conjunto, se usa para predecir los resultados del conjunto de entrenamiento y del conjunto de prueba respectivamente para obtener P1, T1, P2, T2, P3, T3

El problema con este método es que el modelo M1/2/3 se entrena utilizando todo el conjunto de entrenamiento, y usamos estos modelos para predecir los resultados de todo el conjunto de entrenamiento. No hay duda de que el sobreajuste será muy grave. Por lo tanto, el método de validación cruzada se utiliza a menudo en aplicaciones prácticas para resolver el problema de sobreajuste.

Primero, pongamos algunas imágenes ⑤. Nos centramos en la primera capa del método de apilamiento y tomamos la validación cruzada quíntuple como ejemplo para ilustrar su principio de funcionamiento:

1. Primero, configuramos el conjunto de entrenamiento. Dividimos en cinco porciones.

2. Para cada modelo base, usamos cuatro de ellos para el entrenamiento y luego hacemos predicciones en el conjunto de entrenamiento y el conjunto de prueba que no se usaron para el entrenamiento.

Luego cambie el conjunto de entrenamiento seleccionado para entrenamiento y el conjunto de entrenamiento para validación, y repita este paso hasta obtener los resultados de predicción del conjunto de entrenamiento completo.

3. Realice el paso 2 para los cinco modelos respectivamente. Obtendremos los cinco modelos y los resultados de predicción del conjunto de entrenamiento obtenidos por los cinco modelos mediante validación cruzada. Es decir, P1, P2, P3, P4, P5.

4. Utilice cinco modelos para predecir el conjunto de prueba respectivamente y obtenga los resultados de predicción del conjunto de prueba: T1, T2, T3, T4, T5.

5. Utilice P1~5 y T1~5 como conjunto de entrenamiento y conjunto de prueba de la siguiente capa. En la figura, se utilizan como conjunto de entrenamiento y conjunto de prueba del modelo 6, respectivamente.

La estructura general del método de apilamiento se muestra en la siguiente figura:

La combinación es un método de fusión de modelos que es muy similar al apilamiento. La diferencia entre este y el apilamiento es que el. El conjunto de entrenamiento no se realiza a través de K-Fold. En lugar de utilizar la estrategia CV para obtener valores predichos para generar características del modelo de segunda etapa, se establece un conjunto de retención, como el 10% de los datos de entrenamiento. El modelo se basa en las predicciones del modelo de primera etapa para que estos valores de entrenamiento se ajusten al 10%.

Para decirlo sin rodeos, significa cambiar el CV K-Fold en el proceso de Apilamiento a CV HoldOut.

Tomando la primera capa como ejemplo, su validación cruzada HoldOut de 50 veces será como se muestra en la Figura 3 a continuación:

Cabe señalar que muchos artículos en Internet utilizan Apilar al presentarlo El diagrama de fusión anterior también lo explica enérgicamente, como ③, ⑤, etc.

Apilar En comparación con la combinación, las ventajas de la combinación son:

1. La combinación es relativamente simple, mientras que el apilamiento es relativamente complejo

2. Puede prevenir; fuga de información: los generalizadores y los apiladores utilizan datos diferentes

3. No es necesario compartir tus semillas aleatorias con tus compañeros de equipo

Las desventajas son:

1. Solo se utiliza una parte de los datos generales;

2. El modelo final puede sobreajustarse al conjunto de reservas;

3. Apilar múltiples validaciones cruzadas debería ser más sólido.

El documento ② afirma que los resultados obtenidos por las dos técnicas son similares y la elección depende de las preferencias personales. Si te cuesta decidirte, puedes utilizar ambas técnicas y combinar los resultados con una tercera capa.

Lo anterior es un resumen de mi estudio. Muchos contenidos no se han verificado en la práctica. Si encuentra que hay errores en el resumen o no son consistentes con el desempeño real, corríjame.

Referencias

①/c/otto-group-product-classification-challenge

②/kaggle-ensembling-guide/

③/p/25836678

④/human-ensemble-learning/

⑦/sinat_29819401/article/details/71191219

⑧/zwqjoy/article/ detalles /80431496

⑨/article/machinelearning/35135