Clasificación de imágenes semisupervisadas con datos sin etiquetar
Publicado: 2022-03-11El aprendizaje supervisado ha estado a la vanguardia de la investigación en visión artificial y aprendizaje profundo durante la última década.
En un entorno de aprendizaje supervisado, se requiere que los humanos anoten una gran cantidad de conjuntos de datos manualmente. Luego, los modelos usan estos datos para aprender relaciones subyacentes complejas entre los datos y la etiqueta y desarrollar la capacidad de predecir la etiqueta, dados los datos. Los modelos de aprendizaje profundo generalmente consumen muchos datos y requieren enormes cantidades de conjuntos de datos para lograr un buen rendimiento. El hardware en constante mejora y la disponibilidad de grandes conjuntos de datos etiquetados por humanos han sido la razón de los éxitos recientes del aprendizaje profundo.
Un inconveniente importante del aprendizaje profundo supervisado es que se basa en la presencia de una gran cantidad de conjuntos de datos etiquetados por humanos para el entrenamiento. Este lujo no está disponible en todos los dominios, ya que podría ser logísticamente difícil y muy costoso obtener grandes conjuntos de datos anotados por profesionales. Si bien la adquisición de datos etiquetados puede ser un esfuerzo desafiante y costoso, generalmente tenemos acceso a grandes cantidades de conjuntos de datos no etiquetados, especialmente datos de imágenes y texto. Por lo tanto, necesitamos encontrar una manera de aprovechar estos conjuntos de datos infrautilizados y usarlos para el aprendizaje.
Transferir el aprendizaje de modelos previamente entrenados
Ante la ausencia de grandes cantidades de datos etiquetados, solemos recurrir al uso del aprendizaje por transferencia . Entonces, ¿qué es el aprendizaje por transferencia?
Transferir el aprendizaje significa usar el conocimiento de una tarea similar para resolver un problema en cuestión. En la práctica, generalmente significa usar como inicializaciones los pesos de la red neuronal profunda aprendidos de una tarea similar, en lugar de comenzar con una inicialización aleatoria de los pesos, y luego entrenar más el modelo con los datos etiquetados disponibles para resolver la tarea en cuestión.
El aprendizaje de transferencia nos permite entrenar modelos en conjuntos de datos tan pequeños como unos pocos miles de ejemplos, y puede ofrecer un rendimiento muy bueno. La transferencia de aprendizaje de modelos previamente entrenados se puede realizar de tres maneras:
1. Extracción de características
Por lo general, las últimas capas de la red neuronal realizan los cálculos más abstractos y específicos de tareas, que generalmente no son fácilmente transferibles a otras tareas. Por el contrario, las capas iniciales de la red aprenden algunas características básicas como bordes y formas comunes, que son fácilmente transferibles entre tareas.
Los conjuntos de imágenes a continuación muestran lo que los núcleos de convolución en diferentes niveles en una red neuronal convolucional (CNN) están aprendiendo esencialmente. Vemos una representación jerárquica, con las capas iniciales aprendiendo formas básicas y, progresivamente, las capas superiores aprendiendo conceptos semánticos más complejos.
Una práctica común es tomar un modelo previamente entrenado en grandes conjuntos de datos de imágenes etiquetados (como ImageNet) y cortar las capas completamente conectadas al final. Luego, se adjuntan y configuran nuevas capas completamente conectadas de acuerdo con el número requerido de clases. Las capas transferidas se congelan y las nuevas capas se entrenan en los datos etiquetados disponibles para su tarea.
En esta configuración, el modelo preentrenado se usa como un extractor de características y las capas completamente conectadas en la parte superior pueden considerarse un clasificador superficial. Esta configuración es más robusta que el sobreajuste ya que la cantidad de parámetros entrenables es relativamente pequeña, por lo que esta configuración funciona bien cuando los datos etiquetados disponibles son muy escasos. Qué tamaño de conjunto de datos califica como un conjunto de datos muy pequeño suele ser un problema complicado con muchos aspectos a considerar, incluido el problema en cuestión y el tamaño de la columna vertebral del modelo. En términos generales, usaría esta estrategia para un conjunto de datos que consta de un par de miles de imágenes.
2. Ajuste fino
Alternativamente, podemos transferir las capas desde una red previamente entrenada y entrenar toda la red con los datos etiquetados disponibles. Esta configuración necesita un poco más de datos etiquetados porque está entrenando toda la red y, por lo tanto, una gran cantidad de parámetros. Esta configuración es más propensa al sobreajuste cuando hay escasez de datos.
3. Aprendizaje de transferencia en dos etapas
Este enfoque es mi favorito personal y generalmente produce los mejores resultados, al menos en mi experiencia. Aquí, entrenamos las capas recién adjuntas mientras congelamos las capas transferidas durante algunas épocas antes de ajustar toda la red.
El ajuste fino de toda la red sin dar algunas épocas a las capas finales puede dar como resultado la propagación de gradientes dañinos desde las capas inicializadas aleatoriamente a la red base. Además, el ajuste fino requiere una tasa de aprendizaje comparativamente menor, y un enfoque en dos etapas es una solución conveniente.
La necesidad de métodos semisupervisados y no supervisados
Por lo general, esto funciona muy bien para la mayoría de las tareas de clasificación de imágenes porque tenemos grandes conjuntos de datos de imágenes como ImageNet que cubren una buena parte del espacio de imagen posible y, por lo general, los pesos aprendidos de él son transferibles a tareas de clasificación de imágenes personalizadas. Además, las redes preentrenadas están fácilmente disponibles, lo que facilita el proceso.
Sin embargo, este enfoque no funcionará bien si la distribución de imágenes en su tarea es drásticamente diferente de las imágenes en las que se entrenó la red base. Por ejemplo, si está tratando con imágenes en escala de grises generadas por un dispositivo de imágenes médicas, la transferencia de aprendizaje de los pesos de ImageNet no será tan efectiva y necesitará más de un par de miles de imágenes etiquetadas para entrenar su red para un rendimiento satisfactorio.
Por el contrario, es posible que tenga acceso a grandes cantidades de conjuntos de datos sin etiquetar para su problema. Es por eso que la capacidad de aprender de conjuntos de datos sin etiquetar es crucial. Además, el conjunto de datos sin etiquetar suele ser mucho mayor en variedad y volumen que incluso los conjuntos de datos etiquetados más grandes.
Se ha demostrado que los enfoques semisupervisados ofrecen un rendimiento superior a los enfoques supervisados en grandes puntos de referencia como ImageNet. La famosa analogía del pastel de Yann LeCun enfatiza la importancia del aprendizaje no supervisado:
Aprendizaje semisupervisado
Este enfoque aprovecha los datos etiquetados y no etiquetados para el aprendizaje, por lo que se denomina aprendizaje semisupervisado. Este suele ser el enfoque preferido cuando tiene una pequeña cantidad de datos etiquetados y una gran cantidad de datos sin etiquetar. Hay técnicas en las que aprende de datos etiquetados y no etiquetados simultáneamente, pero discutiremos el problema en el contexto de un enfoque de dos etapas: aprendizaje no supervisado en datos no etiquetados y aprendizaje de transferencia utilizando una de las estrategias descritas anteriormente para resolver su tarea de clasificación. .
En estos casos, el aprendizaje no supervisado es un término bastante confuso. Estos enfoques no están realmente sin supervisión en el sentido de que hay una señal de supervisión que guía el aprendizaje de los pesos, pero por lo tanto la señal de supervisión se deriva de los datos mismos. Por lo tanto, a veces se lo denomina aprendizaje autosupervisado, pero estos términos se han usado indistintamente en la literatura para referirse al mismo enfoque.
Las técnicas principales en el aprendizaje autosupervisado se pueden dividir según cómo generan esta señal de supervisión a partir de los datos, como se analiza a continuación.

Métodos generativos
Los métodos generativos apuntan a la reconstrucción precisa de los datos después de pasarlos por un cuello de botella. Un ejemplo de este tipo de redes son los codificadores automáticos. Reducen la entrada a un espacio de representación de baja dimensión usando una red codificadora y reconstruyen la imagen usando la red decodificadora.
En esta configuración, la entrada misma se convierte en la señal de supervisión (etiqueta) para entrenar la red. Luego, la red del codificador se puede extraer y usar como punto de partida para construir su clasificador, usando una de las técnicas de aprendizaje por transferencia discutidas en la sección anterior.
De manera similar, se puede usar otra forma de redes generativas, las redes adversas generativas (GAN), para el entrenamiento previo en datos no etiquetados. Luego, se puede adoptar un discriminador y ajustarlo aún más para la tarea de clasificación.
Métodos Discriminativos
Los enfoques discriminativos entrenan una red neuronal para aprender una tarea de clasificación auxiliar. Se elige una tarea auxiliar de modo que la señal de supervisión se pueda derivar de los propios datos, sin anotación humana.
Ejemplos de este tipo de tareas son aprender las posiciones relativas de los parches de imagen, colorear imágenes en escala de grises o aprender las transformaciones geométricas aplicadas en las imágenes. Hablaremos de dos de ellos con más detalle.
Aprendizaje de posiciones relativas de parches de imagen
En esta técnica, los parches de imagen se extraen de la imagen de origen para formar una cuadrícula similar a un rompecabezas. Las posiciones de la ruta se mezclan y la entrada mezclada se alimenta a la red, que está entrenada para predecir correctamente la ubicación de cada parche en la cuadrícula. Por lo tanto, la señal de supervisión es la posición real de cada ruta en la cuadrícula.
Al aprender a hacer eso, la red aprende la estructura relativa y la orientación de los objetos, así como la continuidad de las características visuales de bajo nivel como el color. Los resultados muestran que las características aprendidas al resolver este rompecabezas son altamente transferibles a tareas como la clasificación de imágenes y la detección de objetos.
Aprendizaje de transformaciones geométricas aplicadas a imágenes
Estos enfoques aplican un pequeño conjunto de transformaciones geométricas a las imágenes de entrada y entrenan a un clasificador para predecir la transformación aplicada observando solo la imagen transformada. Un ejemplo de estos enfoques es aplicar una rotación 2D a las imágenes sin etiquetar para obtener un conjunto de imágenes rotadas y luego entrenar la red para predecir la rotación de cada imagen.
Esta simple señal de supervisión obliga a la red a aprender a localizar los objetos en una imagen y comprender su orientación. Las características aprendidas por estos enfoques han demostrado ser altamente transferibles y generar un rendimiento de vanguardia para tareas de clasificación en entornos semisupervisados.
Enfoques basados en la similitud
Estos enfoques proyectan las imágenes en un espacio de representación de tamaño fijo donde las imágenes similares están más juntas y las imágenes diferentes están más separadas. Una forma de lograr esto es usar redes siamesas basadas en pérdida de triplete, lo que minimiza la distancia entre imágenes semánticamente similares. La pérdida de triplete necesita un ancla, un ejemplo positivo y un ejemplo negativo e intenta acercar lo positivo al ancla que lo negativo en términos de distancia euclidiana en el espacio latente. El ancla y el positivo son de la misma clase, y el ejemplo negativo se elige al azar de las clases restantes.
En los datos no etiquetados, debemos idear una estrategia para producir este triplete de ejemplos positivos y negativos de anclaje sin conocer las clases de imágenes. Una forma de hacerlo es utilizar una transformación afín aleatoria de la imagen ancla como ejemplo positivo y seleccionar aleatoriamente otra imagen como ejemplo negativo.
Experimentar
En esta sección, relataré un experimento que establece empíricamente el potencial del pre-entrenamiento no supervisado para la clasificación de imágenes. Este fue mi proyecto semestral para una clase de aprendizaje profundo que tomé con Yann LeCun en NYU la primavera pasada.
- conjunto de datos Está compuesto por 128K ejemplos etiquetados, la mitad de los cuales son para entrenamiento y la otra mitad para validación. Además, se nos proporcionan 512K imágenes sin etiquetar. Los datos contienen 1.000 clases en total.
- Pre-entrenamiento sin supervisión . AlexNet fue entrenado para la clasificación de rotación utilizando un aumento de datos extenso para 63 épocas. Usamos los hiperparámetros documentados por Rotnet en su artículo.
- Formación de clasificadores . Las características se extrajeron de la cuarta capa de convolución y se le agregaron tres capas completamente conectadas. Estas capas se inicializaron aleatoriamente y se entrenaron con una tasa de aprendizaje decreciente programada, y se implementó una parada anticipada para detener el entrenamiento.
- Puesta a punto de toda la red . Eventualmente, ajustamos la red entrenada en todos los datos etiquetados. Tanto el extractor de características como el clasificador, que antes se entrenaron por separado, se ajustaron con una pequeña tasa de aprendizaje durante 15 épocas.
Entrenamos siete modelos, cada uno usando un número diferente de ejemplos de entrenamiento etiquetados por clase. Esto se hizo para comprender cómo el tamaño de los datos de entrenamiento influye en el rendimiento de nuestra configuración semisupervisada.
Pudimos obtener una tasa de precisión del 82% para el entrenamiento previo en la clasificación de rotación. Para el entrenamiento del clasificador, la precisión del 5 % superior se saturó en torno al valor del 46,24 %, y el ajuste fino de toda la red arrojó la cifra final del 50,17 %. Al aprovechar el entrenamiento previo, obtuvimos un mejor rendimiento que el del entrenamiento supervisado, que brinda una precisión del 40 % entre los 5 primeros.
Como era de esperar, la precisión de la validación disminuye con la disminución de los datos de entrenamiento etiquetados. Sin embargo, la disminución del rendimiento no es tan significativa como cabría esperar en un entorno supervisado. Una disminución del 50 % en los datos de entrenamiento de 64 ejemplos por clase a 32 ejemplos por clase solo da como resultado una disminución del 15 % en la precisión de la validación.
Al usar solo 32 ejemplos por clase, nuestro modelo semisupervisado logra un rendimiento superior al modelo supervisado entrenado con 64 ejemplos por clase. Esto proporciona evidencia empírica del potencial de los enfoques semisupervisados para la clasificación de imágenes en conjuntos de datos etiquetados de bajos recursos.
Terminando
Podemos concluir que el aprendizaje no supervisado es un paradigma poderoso que tiene la capacidad de aumentar el rendimiento de conjuntos de datos de bajos recursos. El aprendizaje no supervisado se encuentra actualmente en su infancia, pero expandirá gradualmente su participación en el espacio de la visión artificial al permitir el aprendizaje a partir de datos no etiquetados baratos y de fácil acceso.
Lecturas adicionales en el blog de ingeniería de Toptal:
- Grafique la ciencia de datos con Python/NetworkX