• Saltar a la navegación principal
  • Saltar al contenido principal
Logo Codificando Bits

Codificando Bits

  • Academia
    • Rutas
    • Cursos
    • Proyectos
    • Tutoriales
  • Acceder
  • Suscribirse

10 – Afinación del Vision Transformer

Lección 10 del curso Clasificación de Imágenes con Deep Learning.

En la lección anterior vimos cómo usar el Vision Transformer pre-entrenado para realizar una tarea de clasificación de imágenes.

Sin embargo, vimos que la limitación de ese enfoque radica en que para que las predicciones hechas por el modelo sean adecuadas debemos garantizar que el modelo haya sido pre-entrenado con imágenes similares a las que queremos clasificar.

Así que en esta última lección del curso veremos cómo usar librerías de HuggingFace para realizar la afinación de un Vision Transformer usando imágenes propias, lo que permitirá especializar el modelo en la clasificación de nuestros datos.

Comencemos viendo en qué consiste la estrategia de afinación (o transferencia de aprendizaje) que usaremos en este caso así como las librerías a usar y la creación del dataset en el formato de HuggingFace:

Contenido exclusivo para suscriptores

Si eres suscriptor accede en este enlace ó suscríbete a la Academia Online y accede a todo el contenido (lecciones en video, código fuente, sets de datos y descargas) de todos los cursos, proyectos y tutoriales.

Teniendo en cuenta que el Vision Transformer es un modelo bastante grande (un poco más de 87 millones de parámetros), para su afinarlo mantendremos congelados los parámetros de los bloques extractores de características y únicamente modificaremos y entrenaremos la capa de clasificación (la capa de salida).

De todos modos también es posible implementar la segunda alternativa (afinar la totalidad del modelo), simplemente se requerirán más capacidades de cómputo y más tiempo de entrenamiento.

Además vimos cómo usar los módulos «load_dataset» y «DatasetDict» de la librería «datasets» de HuggingFace para de manera sencilla crear los sets de entrenamiento y validación del modelo.

Así que en este punto ya estamos listos para afinar el Vision Transformer. Veamos paso a paso esta parte de la implementación:

Contenido exclusivo para suscriptores

Si eres suscriptor accede en este enlace ó suscríbete a la Academia Online y accede a todo el contenido (lecciones en video, código fuente, sets de datos y descargas) de todos los cursos, proyectos y tutoriales.

Como acabamos de ver, el uso de las librerías «transformers», «datasets» y «evaluate» de HuggingFace reduce en gran medida la cantidad de código requerido para afinar nuestro modelo.

En el caso del Vision Transformer los pasos requeridos para esta afinación son los siguientes:

  1. Pre-procesar las imágenes
  2. Crear un «data-collator» de HuggingFace, que permitirá presentar las imágenes al modelo durante la afinación
  3. Crear una función para calcular la métrica de desempeño
  4. Cargar el modelo pre-entrenado
  5. Definir los parámetros del entrenamiento
  6. Afinar el modelo
  7. Evaluar el modelo afinado

En este caso particular, hemos usado 5 iteraciones de entrenamiento que requirieron un poco más de 4 minutos de procesamiento. Es un tiempo relativamente elevado teniendo en cuenta que tan sólo estamos entrenando la capa de clasificación y esto se debe precisamente a que el Vision Transformer es un modelo con un alto número de parámetros.

Además, vimos que el modelo afinado tiene un desempeño ligeramente inferior al del modelo equivalente entrenado en la lección 7, cuando usamos Rede Convolucionales para realizar clasificación de imágenes con transferencia de aprendizaje.

Este es un resultado particular y no quiere decir que la afinación de modelos basados en Redes Convolucionales siempre será mejor que la afinación de modelos basados en el Vision Transformer. En últimas, este desempeño final dependerá de elementos como el set de datos que estemos usando, el modelo escogido y los hiper-parámetros del entrenamiento.

Sin embargo, teniendo en cuenta que el Vision Transformer es un modelo con muchísimos más parámetros que los de una Red Convolucional, la sugerencia al abordar un problema de clasificación de imágenes es primero intentar afinar una Red Convolucional y, si no estamos conformes con su desempeño, podemos intentar hacer lo mismo con el Vision Transformer para intentar obtener mejores resultados durante la clasificación.

Así que con todo esto ya hemos llegado al final de este curso, ¡te felicito por haber llegado hasta este punto!

A lo largo del curso hemos aprendido a implementar diferentes estrategias de clasificación de imágenes usando las dos principales arquitecturas de Deep Learning usadas en la actualidad: las Redes Convolucionales y las Redes Transformer.

Te invito entonces a contactarme a través de la Intranet para que me compartas tus comentarios sobre este curso y tus sugerencias para seguir mejorando el contenido de la Academia.

¡Te envío un saludo y nos vemos en el próximo curso!

Todas las lecciones del curso Clasificación de Imágenes con Deep Learning

© Codificando Bits, LLC | Blog | Contacto | Servicios | Acerca de | Políticas

¿Has olvidado la contraseña?
¿Has perdido tu contraseña? Por favor, introduce tu nombre de usuario o dirección de correo electrónico. Recibirás por correo electrónico un enlace para crear una nueva contraseña.
body::-webkit-scrollbar { width: 7px; } body::-webkit-scrollbar-track { border-radius: 10px; background: #f0f0f0; } body::-webkit-scrollbar-thumb { border-radius: 50px; background: #dfdbdb }