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

Codificando Bits

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

6 – Entrenamiento desde cero de una Red Convolucional

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

En la lección anterior vimos cómo implementar un clasificador de imágenes usando Redes Convolucionales pre-entrenadas. Pero a pesar de lo simple que resulta este enfoque, su principal limitación radica en la dificultad de encontrar un modelo que haya sido pre-entrenado con imágenes similares a las que queremos clasificar.

Y es debido a este inconveniente que surgen diferentes estrategias de clasificación más sofisticadas que la anterior. Así que en esta lección veremos cómo usar la librería PyTorch para implementar la primera de estas estrategias, que consiste en entrenar desde cero una Red Convolucional usando un set de datos propio.

Así que comencemos viendo el problema a resolver así como el set de datos que usaremos en esta lecció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.

Muy bien, el objetivo de esta lección es crear, entrenar, validar y poner a prueba una Red Convolucional para clasificar imágenes de resonancia magnética del cerebro que contienen diferentes tipo de tumores (meningioma, glioma y «otro»).

El set de datos está prácticamente balanceado y contiene un poco más de 6.000 imágenes. Además, vimos cómo crear los sets de entrenamiento, validación y prueba y cómo crear el DataSet de PyTorch con el cual alimentaremos el modelo.

Veamos entonces cómo crear, entrenar y validar nuestra Red Convolucional:

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.

En este caso hemos creado una Red Convolucional con las siguientes características:

  • 2 capas convolucionales, la primera con 12 filtros y la segunda con 24
  • Una capa «fully connected» con dos capas ocultas de 64 y 32 neuronas respectivamente y una capa de salida con 3 neuronas (que corresponde al número de categorías en las que queremos clasificar las imágenes)

Aunque durante el entrenamiento y validación vimos que el modelo alcanza una exactitud cercana al 80% tras 5 iteraciones, también vimos que realmente nada nos garantiza que el conjunto de hiper-parámetros seleccionados sea el que genere las mejores predicciones posibles.

Habiendo entrenado y validado el modelo, veamos cómo se comporta con imágenes totalmente nuevas (es decir las del set de prueba):

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 modelo implementado alcanza un puntaje F1 global de 0.82 (u 82%). Y si analizamos los «precision» y «recall» obtenidos individualmente, encontramos que:

  • En el caso del «precision» la categoría «glioma» alcanza el valor más alto (0.96) mientras que la categoría «meningioma» tiene el valor más bajo (0.69)
  • En el caso del «recall» las categorías «meningioma» y «otro» alcanzan valores de 0.86, mientras que la categoría «glioma» tiene el desempeño más bajo en esta métrica (0.75)

Así que con lo visto en esta lección podemos ver que las principales desventajas de este primer enfoque de clasificación se resumen en que:

  • Se debe contar con un gran número de imágenes de entrenamiento
  • Se requieren buenas capacidades de cómputo y un tiempo prolongado de entrenamiento
  • Es necesario afinar los hiper-parámetros del modelo para obtener el mejor desempeño posible

Teniendo en cuenta estas desventajas, en la próxima lección veremos un segundo enfoque que resuelve varias de estas limitaciones. Así que veremos cómo implementar clasificadores de imágenes usando transferencia de aprendizaje.

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 }