
Aprendizaje Semi-Supervisado
Aprendizaje Semi-Supervisado
En la última década se ha avanzado mucho en la resolución de problemas complejos gracias a los algoritmos de Inteligencia Artificial. Estos algoritmos necesitan de un gran volumen de información para poder descubrir y aprender, acerca de los patrones ocultos en los datos. Pese a todo, esta no es la forma en que la mente humana aprende.
Una persona no requiere de millones de datos y múltiples iteraciones para solucionar un determinado problema, ya que lo único que necesita son algunos ejemplos para resolverlo. En este contexto, técnicas como el semi-supervised learning o aprendizaje semi-supervisado están jugando un papel importante hoy en día.
Dentro de las técnicas de Machine Learning podemos encontrar varios enfoques bien diferenciados (Gráfico 1). Los algoritmos supervisados tratan con conjuntos de datos etiquetados y su objetivo es construir modelos predictivos, ya sean de clasificación (estimando una clase) o de regresión (estimando un valor numérico). Dichos modelos se generan a partir de datos etiquetados y, posteriormente, realizan predicciones sobre los datos no etiquetados.
Por su lado, los algoritmos no supervisados utilizan datos no etiquetados y su objetivo, entre otros, es el de agruparlos, en función de la similitud de sus características, en un conjunto de clusters.
A diferencia de los dos enfoques más tradicionales (supervised learning y unsupervised learning), los algoritmos semi-supervisados emplean pocos datos etiquetados y muchos datos no etiquetados como parte del conjunto de entrenamiento. Dichos algoritmos tratan de explorar la información estructural que contienen los datos no etiquetados con el objetivo de generar modelos predictivos que funcionen mejor que los que sólo utilizan datos etiquetados.
Los modelos de aprendizaje semi-supervisados son cada vez más utilizados en nuestros días. Un ejemplo clásico en el que se observa el valor que aportan dichos modelos es el análisis de las conversaciones grabadas en un call center. Con el objetivo de inferir automáticamente características de los interlocutores (género, edad, geografía,…), sus estados de ánimo (contentos, enfadados, sorprendidos,…), los motivos de la llamada (error en la factura, nivel de servicio, problemas de calidad,…), entre otros, es necesario disponer de un volumen elevado de casos ya etiquetados sobre las cuales aprender los patrones de cada tipología de llamada.
El etiquetado de estos casos es una tarea ardua de conseguir, ya que etiquetar archivos de audio, por lo general, es una tarea que requiere tiempo y mucha intervención humana. En estas situaciones en las que etiquetado de los casos es escaso, ya sea porque es costoso, necesita mucho tiempo de recopilación, requiere de mucha intervención humana o simplemente porque es completamente desconocido, los algoritmos de aprendizaje semi-supervisado son de gran utilidad gracias a sus características de funcionamiento.
Sin embargo, no todos los problemas pueden abordarse directamente con estas técnicas, ya que existen algunas características esenciales que deben estar presentes en los problemas para poder solucionarlos, de manera efectiva, utilizando esta tipología de algoritmos.
Probablemente la primera aproximación sobre el uso de datos no etiquetados para construir un modelo de clasificación es el método Self-Learning, también conocido como self-training, self-labeling, o decision-directed learning. El Self-learning es un método wrapper muy simple y uno de los métodos más utilizados en la práctica.
La primera fase de dicho algoritmo consiste en aprender un clasificador con los pocos datos etiquetados. Posteriormente, el clasificador es usado para predecir los datos no etiquetados y sus predicciones de mayor fiabilidad son añadidas al conjunto de entrenamiento. Finalmente, el clasificador es reentrenado con el nuevo conjunto de entrenamiento. Este proceso (Gráfico 2) se repite hasta que no se puedan añadir nuevos datos al conjunto de entrenamiento.
En el enfoque semi-supervisado se asume cierta estructura en la distribución subyacente de los datos, es decir, los datos más próximos entre sí se supone que tienen la misma etiqueta.
El Gráfico 3, refleja cómo los algoritmos semi supervisados van ajustando, iteración tras iteración, la frontera de decisión entre las etiquetas. Si solo se dispone de datos etiquetados la frontera de decisión es muy distinta a la frontera aprendida al incorporar la información de la estructura subyacente de todos los datos no etiquetados.
Otra situación en la que los datos semi-etiquetados son de utilidad es en la detección de anomalías, ya que se trata de un problema típico en el que es difícil disponer de una gran cantidad de datos etiquetados.
Este tipo de problema puede abordarse con un enfoque no supervisado. El objetivo de dicho enfoque es el de identificar, en base a las características de los datos, aquellos casos que difieren mucho del patrón habitual de comportamiento.
En este contexto, el subconjunto de datos etiquetados puede ayudar a evaluar las distintas iteraciones del algoritmo, y así, guiar la búsqueda de los parámetros óptimos del algoritmo analizado.
En resumen, con los ejemplos anteriormente expuestos, queda demostrado que el uso de datos no etiquetados junto con una pequeña cantidad de datos etiquetados puede mejorar considerablemente la precisión tanto de los modelos supervisados como la de los no supervisados.
Aprendizaje semi supervisado
El aprendizaje semi-supervisado se encuentra a medio camino entre el aprendizaje supervisado y el no supervisado.
Ahora lo que tenemos son tanto datos etiquetados como datos no etiquetados, es decir, además de tener tuplas (X,Y) , tenemos datos sólo de X de los que no sabemos su respuesta Y .
El reto se encuentra en combinar datos etiquetados y no etiquetados para construir un modelo modelo supervisado que sea mejor ya que:
La cantidad de datos etiquetados se puede aumentar, lo que generalmente mejora los resultados de los modelos.
Hay un alto coste de etiquetar los datos X sin etiquetas.
Supuesto: que los datos etiquetados y no etiquetados provienen de la misma distribución. Por otro lado, puede existir un sesgo en la elección de datos no etiquetados.
Entre los métodos de aprendizaje semisupervisado se encuentran:
- Selft-training
- Co-training
- Assemble
- Re-Weighting
Clasificación semi supervisada
En esta sección, se va ha realizar una tarea de clasificación utilizando un enfoque de aprendizaje semi supervisado.
Ejemplo : Detección de fraude utilizando aprendizaje semi-supervisado
Usando el conjunto de datos de detección de fraude de tarjeta de crédito por el grupo de aprendizaje automático ULB. En kaggle se encuenta diferentes enfoques, como el equilibrio de conjuntos de datos, detección de anomalías, modelos de refuerzo, aprendizaje profundo, etc., pero este enfoque es diferente.
1. Preparación de datos
El conjunto de datos consta de 28 variables anonimizadas, 1 variable «cantidad», 1 variable «tiempo» y 1 variable objetivo – Clase. Veamos la distribución del objetivo.
Uno de los mayores desafíos de este problema es que el objetivo está altamente desequilibrado, ya que solo el 0,17% de los casos son transacciones fraudulentas. Pero la ventaja del enfoque de aprendizaje de representación es que todavía puede manejar la naturaleza de desequilibrio de los problemas. Veremos cómo. Para nuestro caso de uso, tomemos solo alrededor de 1000 filas de transacciones sin fraude.
2. Visualice transacciones fraudulentas y no fraudulentas
Visualicemos la naturaleza de las transacciones fraudulentas y no fraudulentas utilizando T-SNE. T-SNE (incrustación de vecino estocástico distribuido en t ) es una técnica de descomposición de conjuntos de datos que reduce las dimensiones de los datos y produce solo n componentes superiores con la máxima información.
Cada punto en lo siguiente representa una transacción. Las transacciones sin fraude se representan en verde mientras que las transacciones con fraude se representan en rojo. Los dos ejes son los componentes extraídos por tsne.
En el gráfico anterior, podemos observar que hay muchas transacciones sin fraude que están muy cerca de las transacciones fraudulentas, por lo que es difícil clasificarlas con precisión a partir de un modelo supervizado. En síntesis, el aprendizaje semi-supervisado es una herramienta que puede servir en casos donde se debe realizar clasificaciones y se cuentan con pocos datos de los fenómenos que se quieren analizar.