Aprendizaje no supervisado pero realmente genial
Introducción
Introducción muy amplia
Las redes de alta capacidad están resolviendo muchas tareas de aprendizaje automático, que van desde la clasificación de imágenes a gran escala, la segmentación y la generación de imágenes hasta la comprensión natural del habla. y texto a voz realistas, posiblemente pasen algunas formulaciones de una prueba de Turing.
Algunas tendencias generales se identifican fácilmente en el mundo académico y en la industria: las redes más profundas muestran resultados cada vez mejores, siempre que se alimenten con cantidades cada vez mayores de Datos, y datos etiquetados en particular.
Los costos computacionales y económicos aumentan linealmente con el tamaño del conjunto de datos y, por esta razón, a partir de 2015, una serie de enfoques no supervisados que apuntan a la explotación de datos no marcados están creciendo en popularidad.
Introducción real sobre aprendizaje auto supervisado
La intuición detrás de muchas de estas técnicas es emular la capacidad de los cerebros humanos para autodeterminar el objetivo de una tarea y mejorar hacia ella. A partir de 2015, los avances en algoritmos capaces de explotar etiquetas contenidas inherentemente dentro de un conjunto de datos sin etiquetar dieron lugar a lo que ahora se conoce como aprendizaje auto supervisado.
LeNet-5 popularizó los operadores convolucionales incorporando el conocimiento a priori de los datos en las redes preservando la correlación espacial de los píxeles de una imagen a medida que la señal avanza a través de las capas de la propia red.
De manera similar, la autosupervisión incorpora un conocimiento a priori sobre el conjunto de datos en la red, pero no mediante la introducción de un operador diferente.
En su lugar, la salida de la red está normalmente restringida para ser coherente con una transformación conocida de las entradas. Como se conocen la entrada y la transformación, podemos imaginar esta situación como derivar una etiqueta de los datos de entrada y obligar a la red a converger a esa etiqueta.
Asumiendo que los pesos aprendidos a través del aprendizaje auto supervisado se generalizan a una tarea similar, se puede usar transferencia de aprendizaje para afinar la red en un conjunto de datos etiquetado.
Sigue leyendo …
Técnicas auto-supervisadas de Dope
Algunas ejemplos de aprendizaje auto supervisado incluyen:
- Supervisión sin etiquetas de redes neuronales con física y conocimiento de dominio
Uno de los experimentos en este documento muestra cómo una CNN alimentada con imágenes de un flujo de video de una bola en caída aprende a predice la altura de un objeto que cae, solo forzando la salida para que sea las coordenadas de una parábola, que es la trayectoria físicamente factible de un cuerpo que cae. - Aprendizaje no supervisado de representaciones visuales resolviendo rompecabezas :
Al seguir los principios de la autosupervisión, los autores construyen una red neuronal convolucional que puede entrenarse para resolver rompecabezas como una tarea de pretexto, que no requiere etiquetado manual. La CNN se rediseñó posteriormente para resolver la clasificación y detección de objetos mediante el aprendizaje por transferencia. - Colorización como una tarea de proxy para comprensión visual :
Aquí la tarea auxiliar es predecir dos canales de color de una imagen dada la luminosidad de cada pixel Una vez más, las representaciones de las características internas aprendidas al colorear imágenes sin etiquetar pueden ajustarse para su clasificación o detección.
Aprendiendo a ver moviéndose
En el documento Aprendiendo a Vea por Moving donde los autores “investigan si el conocimiento de egomotion se puede usar como una señal de supervisión para el aprendizaje de características”.
Un bebé que se mueve alrededor de un objeto nunca visto antes sabe cuánto se mueve (el bebé) y que el objeto todavía está allí y sigue siendo el mismo: en otras palabras, es posible que el bebé no sepa qué es realmente el objeto, pero aprende las características visuales, como la textura, los bordes y los colores, necesarios para reconocerla y diferenciarla de otros objetos circundantes,
Una forma de simular la situación de aprendizaje a través de egomotion es:
- Presente una (parte inferior) CNN con la imagen de un objeto sin etiquetar y dejar que emita un tensor w · h · f donde f es el número de filtros de la última capa
- Alimenta la misma red a versión aleatoriamente transformada de la misma imagen, al traducirla / rotarla y dejar que produzca un nuevo tensor w · h · f
- Concatene las dos salidas para formar un w · h · 2f tensor y se alimenta a un CNN (superior) encargado de predecir la transformación aleatoria, que se conoce y constituye es nuestra etiqueta
La propagación hacia atrás y la iteración sobre el conjunto de datos sin etiquetar deben converger en una red que use características visuales para predecir las transformaciones aleatorias aplicadas a la imagen.
Es razonable suponer que estas características pueden ser reutilizadas para clasificar una imagen, a través del aprendizaje por transferencia.
En particular, podríamos estar interesados en la CNN inferior, en cortar la CNN superior y en ajustar los pesos. del primero en el conjunto de datos etiquetado.
Experimento muy científico y exhaustivo
Probé este enfoque durante el Reto de detección de la enfermedad de la yuca donde había dos conjuntos de datos disponibles: un conjunto de datos etiquetado para su clasificación y conjunto de datos de imágenes sin etiquetar aproximadamente el doble de grande.
Al capacitar a MobileNetV2 (previamente entrenado en ImageNet) en el conjunto de datos etiquetado, logré aproximadamente el 81% de precisión en la validación.
Al usar MobileNetV2 como CNN inferior y seguir los pasos de egomotion-self-supervection en el conjunto de datos sin etiquetar, luego podría transferir el aprendizaje a la tarea de clasificación en el conjunto de datos etiquetado, logrando un 85% de precisión en la validación.
El código está disponible en mi GitHub página con un práctico módulo de Python listo para otras tareas de preentrenamiento de egomotion.