¿Puede el aprendizaje semisupervisado formar mejores modelos? | de Reinhard Sellmair | septiembre de 2024

¿Puede el aprendizaje semisupervisado formar mejores modelos? | de Reinhard Sellmair | septiembre de 2024

Evalúe cómo el aprendizaje semisupervisado puede explotar datos sin etiquetar

Imagen del autor: creada con Image Creator en Bing

Uno de los desafíos más comunes que enfrentan los científicos de datos es la falta de datos etiquetados para entrenar un modelo confiable y preciso. Los datos etiquetados son esenciales para tareas de aprendizaje supervisado, como clasificación o regresión. Sin embargo, obtener datos etiquetados puede resultar costoso, consumir mucho tiempo o resultar poco práctico en muchas áreas. Por otro lado, los datos sin etiquetar suelen ser fáciles de recopilar, pero no proporcionan información directa para entrenar un modelo.

¿Cómo podemos utilizar datos sin etiquetar para mejorar nuestros modelos de aprendizaje supervisado? Aquí es donde entra en juego el aprendizaje semisupervisado. El aprendizaje semisupervisado es una rama del aprendizaje automático que combina datos etiquetados y no etiquetados para entrenar un modelo que funciona mejor que el uso exclusivo de datos etiquetados. La intuición detrás del aprendizaje semisupervisado es que los datos no etiquetados pueden proporcionar información útil sobre la estructura subyacente, la distribución y la diversidad de los datos, lo que puede ayudar al modelo a generalizar mejor a ejemplos novedosos e inéditos.

En este artículo, presento tres métodos de aprendizaje semisupervisado que se pueden aplicar a diferentes tipos de datos y tareas. También evaluaré su desempeño en un conjunto de datos reales y lo compararé con la línea de base que utiliza solo datos etiquetados.

El aprendizaje semisupervisado es un tipo de aprendizaje automático que utiliza datos etiquetados y no etiquetados para entrenar un modelo. Los datos etiquetados son ejemplos que tienen una salida conocida o una variable objetivo, como la etiqueta de clase en una tarea de clasificación o el valor numérico en una tarea de regresión. Los datos sin etiquetar son ejemplos que no tienen una variable de salida ni un objetivo conocidos. El aprendizaje semisupervisado puede explotar la gran cantidad de datos sin etiquetar que a menudo están disponibles en los problemas del mundo real, mientras se utiliza la cantidad más pequeña de datos etiquetados, cuya obtención suele ser más costosa o lleva más tiempo.

La idea detrás del uso de datos sin etiquetar para entrenar un método de aprendizaje supervisado es etiquetar estos datos mediante métodos de aprendizaje supervisados ​​o no supervisados. Aunque es probable que estas etiquetas no sean tan precisas como las etiquetas reales, tener una cantidad significativa de estos datos puede mejorar el rendimiento de un método de aprendizaje supervisado en comparación con entrenar ese método solo con datos etiquetados.

El paquete scikit-learn proporciona tres métodos de aprendizaje semisupervisado:

  • autoestudio:Primero se entrena un clasificador con datos etiquetados solo para predecir las etiquetas de los datos sin etiquetar. En la siguiente iteración, se entrena otro clasificador con los datos etiquetados y predice los datos no etiquetados que tenían un alto nivel de confianza. Este procedimiento se repite hasta que no se predicen nuevas etiquetas con alta confianza o se alcanza un número máximo de iteraciones.
  • Propagación de etiquetas: se crea un gráfico en el que los nodos representan puntos de datos y los bordes representan similitudes entre ellos. Las etiquetas se propagan de forma iterativa a través del gráfico, lo que permite que el algoritmo asigne etiquetas a puntos de datos sin etiquetar en función de sus conexiones con los datos etiquetados.
  • Difusión de etiquetas: utiliza el mismo concepto que la propagación de etiquetas. La diferencia es que la propagación de etiquetas utiliza una asignación suave, donde las etiquetas se actualizan iterativamente en función de la similitud entre los puntos de datos. Este método también puede «sobrescribir» etiquetas del conjunto de datos etiquetado.

Para evaluar estos métodos, utilicé un predicción de diabetes Un conjunto de datos que contiene características de los datos del paciente, como la edad y el IMC, así como una etiqueta que describe si el paciente tiene diabetes. Este conjunto de datos contiene 100.000 registros que dividí aleatoriamente en 80.000 datos de entrenamiento, 10.000 datos de validación y 10.000 datos de prueba. Para analizar la efectividad de los métodos de aprendizaje con respecto a la cantidad de datos etiquetados, divido los datos de entrenamiento en un conjunto etiquetado y un conjunto sin etiquetar, donde el tamaño de la etiqueta describe la cantidad de muestras etiquetadas.

Particionar el conjunto de datos (imagen del autor)

Utilicé los datos de validación para evaluar diferentes parámetros y utilicé los datos de prueba para evaluar el rendimiento de cada método después del ajuste de parámetros.

Utilicé XG Boost para la predicción y la puntuación F1 para evaluar el rendimiento de la predicción.

La línea de base se utilizó para comparar los algoritmos de autoaprendizaje con el caso en el que no se utilizaron datos sin etiquetar. Por lo tanto, entrené XGB en conjuntos de datos etiquetados de diferentes tamaños y calculé la puntuación F1 en el conjunto de datos de validación:

Partitura de referencia (imagen del autor)

Los resultados mostraron que la puntuación F1 es bastante baja para conjuntos de entrenamiento con menos de 100 muestras, luego mejora gradualmente hasta una puntuación del 79% hasta alcanzar un tamaño de muestra de 1000. Los tamaños de muestra más altos hacen poco para mejorar la puntuación F1.

El autoaprendizaje implica el uso de múltiples iteraciones para predecir las etiquetas de datos sin etiquetar que luego se usarán en la siguiente iteración para entrenar otro modelo. Se pueden utilizar dos métodos para seleccionar predicciones que se utilizarán como datos etiquetados en la siguiente iteración:

  1. Umbral (predeterminado): se seleccionan todas las predicciones con confianza por encima de un umbral.
  2. K mejor: se seleccionan las predicciones con mayor confianza

Evalué la configuración predeterminada (ST Default) y ajusté el umbral (ST Thres Tuned) y k mejor configuración (ST KB Tuned) según el conjunto de datos de validación. Los resultados de predicción de estos modelos se evaluaron en el conjunto de datos de prueba:

Puntuación de autoestudio (imagen del autor)

Para tamaños de muestra pequeños (<100), la configuración predeterminada (línea roja) tuvo un rendimiento peor que la línea de base (línea azul). Para tamaños de muestra más grandes, se obtuvieron puntuaciones F1 ligeramente mejores que las iniciales. El ajuste del umbral (línea verde) produjo una mejora significativa; por ejemplo, con un tamaño de etiqueta de 200, la puntuación F1 base fue del 57 %, mientras que el algoritmo con umbrales ajustados alcanzó el 70 %. Con una excepción, con un tamaño de etiqueta de 30, establecer el mejor valor K (línea morada) dio como resultado un rendimiento casi idéntico al de la línea base.

La propagación de etiquetas tiene dos métodos de kernel integrados: RBF y KNN. El kernel RBF produce un gráfico completamente conectado utilizando una matriz densa, lo que requiere mucha memoria y tiempo para grandes conjuntos de datos. Para tener en cuenta las limitaciones de memoria, solo utilicé un tamaño de entrenamiento máximo de 3000 para el kernel RBF. El núcleo KNN utiliza una matriz dispersa más amigable con la memoria, lo que me permitió escalar los datos de entrenamiento configurados hasta 80.000 muestras. Los resultados de estos dos métodos del kernel se comparan en el siguiente gráfico:

Puntuación de distribución de etiquetas (imagen del autor)

El gráfico muestra la puntuación F1 en el conjunto de datos de prueba de diferentes métodos de propagación de etiquetas según el tamaño de la etiqueta. La línea azul representa la línea de base, que es la misma que para el autoentrenamiento. La línea roja representa la propagación de etiquetas con parámetros predeterminados, que claramente tiene un rendimiento inferior al de referencia para todos los tamaños de etiquetas. La línea verde representa la propagación de etiquetas con el kernel RBF y el conjunto de parámetros gamma. Gamma define hasta dónde se extiende la influencia de un único ejemplo de entrenamiento. El kernel RBF optimizado funcionó mejor que la línea base para tamaños de etiquetas pequeños (<=100), pero peor para tamaños de etiquetas más grandes. La línea violeta representa la propagación de etiquetas con el kernel KNN y el conjunto de parámetros k, que determina la cantidad de vecinos más cercanos a usar. El kernel KNN tuvo un rendimiento similar al kernel RBF.

La propagación de etiquetas es un enfoque similar a la propagación de etiquetas, pero con un parámetro alfa adicional que controla qué tan bien una instancia debe adoptar la información de sus vecinos. Alfa puede variar de 0 a 1, donde 0 significa que la instancia conserva su etiqueta original y 1 significa que adopta completamente las etiquetas de sus vecinos. También optimicé los métodos del kernel RBF y KNN para la propagación de etiquetas. Los resultados de la propagación de etiquetas se muestran en el siguiente gráfico:

Puntuación de distribución de etiquetas (imagen del autor)

Los resultados de la propagación de etiquetas son muy similares a los de la propagación de etiquetas, con una excepción. El método del núcleo RBF para la propagación de etiquetas tiene una puntuación de prueba más baja que la línea base para todos los tamaños de etiquetas, no solo las pequeñas. Esto sugiere que «reemplazar» etiquetas con etiquetas vecinas tiene un efecto bastante negativo para este conjunto de datos, que podría tener sólo unos pocos valores atípicos o etiquetas ruidosas. Por el contrario, el método del kernel KNN no se ve afectado por el parámetro alfa. Parece que este parámetro sólo es relevante para el método del kernel RBF.

Luego comparé todos los métodos con sus mejores parámetros entre sí.

Comparación de puntuaciones altas (imagen del autor)

El gráfico muestra la puntuación de la prueba de diferentes métodos de aprendizaje semisupervisado según el tamaño de la etiqueta. El autoaprendizaje supera la línea de base porque aprovecha bien los datos sin etiquetar. La propagación y difusión de etiquetas solo superan la línea de base para etiquetas de tamaño pequeño y funcionan peor para etiquetas de mayor tamaño.

Los resultados pueden variar significativamente según los conjuntos de datos, los métodos de clasificación y las métricas. El rendimiento del aprendizaje semisupervisado depende de muchos factores, como la calidad y cantidad de datos no etiquetados, la elección del alumno base y el criterio de evaluación. Por lo tanto, estos resultados no deben generalizarse a otros contextos sin las pruebas y validación adecuadas.

Si desea obtener más información sobre el aprendizaje semisupervisado, no dude en consultar mi repositorio de Git y experimentar usted mismo. Puede encontrar el código y los datos de este proyecto. aquí.

Una cosa que aprendí de este proyecto es que el ajuste de parámetros era importante para mejorar significativamente el rendimiento de estos métodos. Con configuraciones optimizadas, el autoaprendizaje funcionó mejor que el valor inicial para cualquier tamaño de etiqueta y logró mejores puntuaciones F1 de hasta un 13 %. La propagación de etiquetas y la difusión solo mejoraron el rendimiento para tamaños de muestra muy pequeños, pero el usuario debe tener mucho cuidado de no obtener peores resultados que si no utilizara un método de aprendizaje semisupervisado.