Saltar para o conteúdo

Technical

Entrenar Modelos con Datos Gratuitos

Paulo Maia · 23 de febrero de 2022

"Cuanto más veo, menos sé" será un dicho, pero no se aplica a los modelos de IA. Es bien sabido que el rendimiento de una red neuronal artificial depende en gran medida del volumen y la diversidad de los datos que se muestran al modelo. Esto ocurre porque exponer los modelos a la diversidad les ayuda a seleccionar características relevantes y mitigar sesgos potenciales, es decir, a comprender los objetos de estudio y a desempeñar mejor sus tareas.

Obtener datos para alimentar tales modelos podría parecer trivial, ya que los datos están por todas partes. Sin embargo, acceder a datos bien estructurados, etiquetados, libres de derechos de autor y que no comprometan la privacidad sigue siendo un desafío para la mayoría de los científicos de datos.

Para superar esto, los expertos en IA han desarrollado varios enfoques para optimizar el proceso de aprendizaje, en particular, arquitecturas inteligentes para modelos de Aprendizaje Autosupervisado.

En este artículo de blog, nos complace (re)presentarte el Aprendizaje Autosupervisado, junto con una de nuestras estrategias favoritas, los Modelos Siameses, y posibles aplicaciones. Si deseas profundizar más en el Aprendizaje Autosupervisado y otras técnicas de Machine Learning, consulta nuestro curso en línea:

¿Qué es el Aprendizaje Autosupervisado?

El Aprendizaje Supervisado es un enfoque de machine learning que recibe datos de entrada junto con un objetivo específico y busca aprender los patrones de los datos y la función de transformación que convierte la entrada en la salida. Por otro lado, tenemos el Aprendizaje no Supervisado, que es un método que no necesita un objetivo para cumplir su misión, ya que busca principalmente encontrar patrones en las distribuciones de datos.

Luego, tenemos el Aprendizaje Autosupervisado, que es un método de Aprendizaje no Supervisado ya que utiliza datos sin etiquetar y tiene la particularidad de crear etiquetas sintéticas para comportarse como un modelo de Aprendizaje Supervisado.

Estas etiquetas se pueden crear aplicando transformaciones triviales a los datos. Aquí hay algunos ejemplos:

Los modelos de Aprendizaje Autosupervisado pueden utilizarse de dos formas diferentes:

  • Para generar predicciones, en caso de que la tarea sintética corresponda al propósito principal del modelo. Por ejemplo, entrenar un modelo de colorización de imágenes y usarlo para colorizar imágenes en blanco y negro.
  • Para compartir su conocimiento (mediante el intercambio de sus pesos) con un modelo de Aprendizaje Supervisado con una tarea diferente. Por ejemplo, entrenar un modelo de Aprendizaje Autosupervisado para detectar si una imagen está invertida y usar los pesos para inicializar un modelo de detección de objetos.

Curso

El Espectro del Machine Learning

Si deseas aprender más sobre aprendizaje autosupervisado y otros métodos de aprendizaje, consulta este curso.

Más información

¿Cómo lo aplicamos?

En NILG.AI, una de nuestras arquitecturas de modelo favoritas son las Redes Siamesas. Los modelos siameses constan de una arquitectura de modelo con dos (o más) ramas, donde cada una recibe una entrada diferente. Los pesos de las ramas pueden compartirse o no, y en la capa final del modelo, se comparan los resultados de las ramas.

A continuación puedes ver un ejemplo de una arquitectura para una red siamesa aplicada a imágenes, que implementamos para demostrarte la utilidad de estos modelos:

Este modelo tiene dos ramas que comparten pesos. Cada rama se compone de un codificador (modelo CNN para extracción de características) y un bloque de capas completamente conectadas. La salida de las dos ramas se fusiona luego para calcular la función de pérdida.

Para alimentar el modelo, implementamos un generador de datos que toma una imagen como entrada, aplica una transformación definida por el usuario y devuelve las dos imágenes transformadas junto con un objetivo sintético. La función de transformación se define en la inicialización del modelo, pero la magnitud de la transformación debe ser un valor aleatorio que se ajuste al rango dado. Por ejemplo, para enseñar a un modelo a aprender la orientación de los objetos, se puede pasar una función de rotación junto con el rango de ángulos posibles. El generador de datos seleccionará dos ángulos aleatorios del rango dado y rotará la imagen de entrada considerando esos ángulos, creando dos imágenes transformadas diferentes. El generador compara los dos ángulos: si el ángulo de la primera transformación es mayor que el de la segunda transformación, establece la etiqueta sintética como 1; de lo contrario, la etiqueta se establece como 0. Finalmente, el generador devuelve las dos imágenes transformadas y la etiqueta sintética correspondiente.

Resultados Iniciales

Como ejercicio exploratorio, NILG.AI desarrolló varias funciones de transformación y entrenó un modelo con un conjunto de datos muy pequeño (menos de 100 muestras) de imágenes seleccionadas aleatoriamente de Unsplash. Las transformaciones triviales incluyeron:

  • Adición de desenfoque
  • Rotación de imágenes
  • Desviación de brillo

La arquitectura del modelo siamés se adaptó a cada función de transformación, creando tres modelos diferentes. Una única rama entrenada del modelo siamés se utilizó luego para calcular las predicciones en imágenes individuales, y estos son los resultados observados.

Nota: Las predicciones corresponden a la salida de la última capa completamente conectada de la rama. Estos valores deben interpretarse como aproximaciones de la magnitud de las transformaciones. Para usar estas salidas como predicciones del valor real de la transformación, por ejemplo, el ángulo de rotación, la salida debe calibrarse.

Adición de Desenfoque

Para la adición de desenfoque, aplicamos un filtro de desenfoque gaussiano con tamaño de ventana fijo y un valor sigma variable. Para probar el rendimiento del modelo, aplicamos adición de desenfoque con diferentes valores sigma a la misma imagen y extrajimos las predicciones del modelo. En la imagen a continuación, podemos observar que la salida del modelo aumenta con sigma, siendo capaz de distinguir la intensidad de la transformación.

En la segunda fase de prueba, repetimos las transformaciones en cada imagen del conjunto de prueba y extrajimos la correlación entre la salida del modelo y sigma. Este modelo tiene una correlación del 95,5% con los datos reales, teniendo el potencial de ser utilizado como detector de desenfoque.

Finalmente, extrajimos las predicciones para las imágenes originales del conjunto de prueba, presentando algunos ejemplos en la cuadrícula a continuación. Dado que trabajábamos con imágenes de alta calidad, el modelo devolvió valores bajos para la detección de desenfoque (generalmente menores que -6,4), excepto para la imagen con filtro de café que contiene un desenfoque de fondo significativo.

Rotación de Imágenes

Repetimos la misma prueba para el modelo de rotación, esta vez cambiando el valor del ángulo, obteniendo los resultados a continuación.

El valor de correlación para este modelo fue 0,37, lo cual es comprensible considerando la dificultad de la tarea. Reconocer si un objeto está inclinado e identificar el ángulo correspondiente requiere un conocimiento previo del objeto en sí, que es difícil de enseñar a un modelo con un conjunto de solo 100 imágenes que representan objetos diferentes. Por lo tanto, para usar este modelo como corrector de rotación, podríamos necesitar muchos más datos o establecer más restricciones en la selección de imágenes, por ejemplo, seleccionar solo imágenes de decoración interior.

Dado que esta tarea requiere un conocimiento más profundo de los objetos, también se puede utilizar como tarea secundaria en un modelo de aprendizaje multitarea. Esta estrategia puede ayudar al modelo a aprender mejor las características de los objetos de interés evitando costos de etiquetado adicionales.

Desviación de Brillo

El mismo análisis se realizó para el modelo de brillo. Para este ejemplo, la transformación se basa en manipular el valor (V) en la representación de color HSV sumando un número aleatorio. Al probar el modelo para la misma imagen transformada, podemos observar que el objetivo predicho aumenta con el valor añadido.

Analizando el rendimiento del modelo en el conjunto de prueba completo, podemos confirmar la correlación entre las salidas del modelo y los datos reales, ya que la tasa de correlación es alrededor del 77,5%. Este modelo se puede utilizar para corrección de brillo o evaluación de la calidad de la imagen. En la siguiente sección, verás algunos ejemplos prácticos de dónde utilizar estos modelos.

Una vez más, las predicciones del modelo fueron extraídas para las imágenes originales (que se muestran a continuación). Estas predicciones también son elocuentes, ya que el modelo devolvió valores positivos para las imágenes más brillantes y valores negativos para las más oscuras, en particular, las imágenes del filtro de café y el puente.

Casos de Uso

El Aprendizaje Autosupervisado puede ser muy útil para pre-entrenar codificadores que serán utilizados por otros modelos o para ser utilizados como una tarea adicional, haciendo el modelo final más robusto. Sin embargo, también hay mucho potencial para que estos modelos se utilicen directamente como predictores, y aquí hay algunos ejemplos de dónde usarlos.

Sanidad

Evaluación de la calidad de imágenes para diagnóstico médico por imágenes: modelos triviales como detectores de desenfoque, brillo y recorte pueden evaluar la calidad de la imagen en tiempo real, siendo útiles para seleccionar la muestra a analizar (por otro modelo o por un experto).

Sector Inmobiliario

Estandarización de imágenes en el sitio web: imágenes más brillantes y coloridas resultan más atractivas para los clientes potenciales, y tomar fotos en condiciones de poca iluminación puede influir en la propensión del usuario a interactuar con la imagen. Con un modelo de brillo como el propuesto anteriormente, es posible evaluar esta característica y corregirla automáticamente.

Concesionarios de Automoción

Similar al caso de uso anterior, las imágenes que muestran el producto (el automóvil, en este caso) pueden influir en la propensión de un usuario a convertirse en comprador. Modelos triviales de visión por computadora como cuantificadores de brillo y detectores de desenfoque pueden utilizarse para filtrar qué imágenes tienen suficiente calidad para ser publicadas en el sitio web.

Conclusión

Como vimos en este artículo, no siempre necesitas un conjunto de datos grande para construir un modelo que satisfaga las necesidades de tu negocio.

Si te interesa que las decisiones de tu empresa sean impulsadas por datos pero no estás seguro de contar con una estructura de datos preparada para ello, contáctanos en info@nilg.ai y discutamos algunas ideas.

Si deseas aprender más sobre esto, inscríbete en nuestro curso:

¿Deseas profundizar en esta idea?

Agenda una reunión con Rafael Cavalheiro

Conoce a Rafael Más información