logo

VGG-16 | modelo CNN

Una arquitectura de red neuronal convolucional (CNN) es un modelo de aprendizaje profundo diseñado para procesar datos estructurados en forma de cuadrícula, como imágenes. Consta de varias capas, incluidas capas convolucionales, de agrupación y totalmente conectadas. Las CNN son muy efectivas para tareas como clasificación de imágenes, detección de objetos y segmentación de imágenes debido a sus capacidades de extracción de características jerárquicas.

VGG-16

El modelo VGG-16 es una arquitectura de red neuronal convolucional (CNN) propuesta por el Visual Geometry Group (VGG) de la Universidad de Oxford. Se caracteriza por su profundidad, que consta de 16 capas, incluidas 13 capas convolucionales y 3 capas completamente conectadas. VGG-16 es conocido por su simplicidad y eficacia, así como por su capacidad para lograr un rendimiento sólido en diversas tareas de visión por computadora, incluida la clasificación de imágenes y el reconocimiento de objetos. La arquitectura del modelo presenta una pila de capas convolucionales seguidas de capas de agrupación máxima, con una profundidad cada vez mayor. Este diseño permite que el modelo aprenda representaciones jerárquicas intrincadas de características visuales, lo que lleva a predicciones sólidas y precisas. A pesar de su simplicidad en comparación con arquitecturas más recientes, VGG-16 sigue siendo una opción popular para muchas aplicaciones de aprendizaje profundo debido a su versatilidad y excelente rendimiento.



El ImageNet Large Scale Visual Recognition Challenge (ILSVRC) es una competencia anual en visión por computadora donde los equipos abordan tareas que incluyen la localización de objetos y la clasificación de imágenes. VGG16, propuesto por Karen Simonyan y Andrew Zisserman en 2014, alcanzó los primeros puestos en ambas tareas, detectando objetos de 200 clases y clasificando imágenes en 1000 categorías.


Oracle SQL no es igual

Arquitectura VGG-16



Este modelo logra 92,7% entre los 5 primeros precisión de la prueba en el conjunto de datos ImageNet que contiene 14 Millones de imágenes pertenecientes a 1000 clases.

Objetivo del modelo VGG-16:

El conjunto de datos ImageNet contiene imágenes de tamaño fijo de 224*224 y tener canales RGB. Entonces tenemos un tensor de (224, 224, 3) como nuestra entrada. Este modelo procesa la imagen de entrada y genera un vector de 1000 valores:

hat{y} =egin{bmatrix} hat{y_0} hat{y_1} hat{y_2} . . . hat{y}_{999} end{bmatrix}



Este vector representa la probabilidad de clasificación para la clase correspondiente. Supongamos que tenemos un modelo que predice que la imagen pertenece a la clase 0 con probabilidad 1 , clase 1 con probabilidad 0.05 , clase 2 con probabilidad 0.05 , clase 3 con probabilidad 0.03 , clase 780 con probabilidad 0.72 , clase 999 con probabilidad 0.05 y todas las demás clases con 0 .

entonces, el vector de clasificación para esto será:

hat{y}=egin{bmatrix} hat{y_{0}}=0.1 0.05 0.05 0.03 . . . hat{y_{780}} = 0.72 . . hat{y_{999}} = 0.05 end{bmatrix}

Para asegurarse de que estas probabilidades se sumen 1 , utilizamos la función softmax.

Esta función softmax se define de la siguiente manera:

hat{y}_i = frac{e^{z_i}}{sum_{j=1}^{n} e^{z_j}}

Después de esto, incorporamos al vector los 5 candidatos más probables.

C =egin{bmatrix} 780 0 1 2 999 end{bmatrix}

cómo convertir int a cadena java

y nuestro vector de verdad fundamental se define de la siguiente manera:

G = egin{bmatrix} G_{0} G_{1} G_{2} end{bmatrix}=egin{bmatrix} 780 2 999 end{bmatrix}

Luego definimos nuestra función de Error de la siguiente manera:

E = frac{1}{n}sum_{k}min_{i}d(c_{i}, G_{k})

conjunto de hash vs mapa de hash

Calcula la distancia mínima entre cada clase de verdad fundamental y los candidatos predichos, donde la función de distancia d se define como:

  • d=0 sic_i=G_k
  • d=1 en caso contrario

Entonces, la función de pérdida para este ejemplo es:

egin{aligned} E &=frac{1}{3}left ( min_{i}d(c_{i}, G_{1}) +min_{i}d(c_{i}, G_{2})+min_{i}d(c_{i}, G_{3}) ight ) &= frac{1}{3}(0 + 0 +0) &=0 end{aligned}

Dado que todas las categorías en la verdad fundamental están en la matriz de los 5 principales previstos, la pérdida se vuelve 0.

VGG Arquitectura:

La arquitectura VGG-16 es una red neuronal convolucional profunda (CNN) diseñada para tareas de clasificación de imágenes. Fue presentado por el Grupo de Geometría Visual de la Universidad de Oxford. VGG-16 se caracteriza por su simplicidad y arquitectura uniforme, lo que lo hace fácil de entender e implementar.

conjunto de hash java

La configuración VGG-16 normalmente consta de 16 capas, incluidas 13 capas convolucionales y 3 capas completamente conectadas. Estas capas están organizadas en bloques, y cada bloque contiene múltiples capas convolucionales seguidas de una capa de agrupación máxima para reducir la resolución.

Mapa de arquitectura VGG-16

A continuación se muestra un desglose de la arquitectura VGG-16 según los detalles proporcionados:

  1. Capa de entrada:
    1. Dimensiones de entrada: (224, 224, 3)
  2. Capas convolucionales (64 filtros, 3×3 filtros, mismo relleno):
    • Dos capas convolucionales consecutivas con 64 filtros cada una y un tamaño de filtro de 3×3.
    • Se aplica el mismo relleno para mantener las dimensiones espaciales.
  3. Capa de agrupación máxima (2×2, zancada 2):
    • Capa de piscina máxima con un tamaño de piscina de 2×2 y una zancada de 2.
  4. Capas convolucionales (128 filtros, 3×3 filtros, mismo relleno):
    • Dos capas convolucionales consecutivas con 128 filtros cada una y un tamaño de filtro de 3×3.
  5. Capa de agrupación máxima (2×2, zancada 2):
    • Capa de piscina máxima con un tamaño de piscina de 2×2 y una zancada de 2.
  6. Capas convolucionales (256 filtros, 3×3 filtros, mismo relleno):
    • Dos capas convolucionales consecutivas con 256 filtros cada una y un tamaño de filtro de 3×3.
  7. Capas convolucionales (512 filtros, 3×3 filtros, mismo relleno):
    • Dos conjuntos de tres capas convolucionales consecutivas con 512 filtros cada una y un tamaño de filtro de 3×3.
  8. Capa de agrupación máxima (2×2, zancada 2):
    • Capa de piscina máxima con un tamaño de piscina de 2×2 y una zancada de 2.
  9. Pila de capas convolucionales y agrupación máxima:
    • Dos capas convolucionales adicionales después de la pila anterior.
    • Tamaño del filtro: 3×3.
  10. Aplastamiento:
    • Aplana el mapa de características de salida (7x7x512) en un vector de tamaño 25088.
  11. Capas completamente conectadas:
    • Tres capas completamente conectadas con activación ReLU.
    • Primera capa con tamaño de entrada 25088 y tamaño de salida 4096.
    • Segunda capa con tamaño de entrada 4096 y tamaño de salida 4096.
    • Tercera capa con tamaño de entrada 4096 y tamaño de salida 1000, correspondiente a las 1000 clases en el desafío ILSVRC.
    • La activación de Softmax se aplica a la salida de la tercera capa completamente conectada para su clasificación.

Esta arquitectura sigue las especificaciones proporcionadas, incluido el uso de la función de activación ReLU y la capa final completamente conectada que genera probabilidades para 1000 clases usando la activación softmax.

Configuración VGG-16:

La principal diferencia entre las configuraciones C y D de VGG-16 radica en el uso de tamaños de filtro en algunas de las capas convolucionales. Si bien ambas versiones utilizan predominantemente filtros de 3×3, en la versión D, hay casos en los que se utilizan filtros de 1×1. Esta ligera variación da como resultado una diferencia en la cantidad de parámetros, ya que la versión D tiene una cantidad ligeramente mayor de parámetros en comparación con la versión C. Sin embargo, ambas versiones mantienen la arquitectura general y los principios del modelo VGG-16.

Configuración VGG diferente

Localización de objetos en imagen:

Para realizar la localización, necesitamos reemplazar la puntuación de la clase por las coordenadas de ubicación del cuadro delimitador. La ubicación de un cuadro delimitador está representada por el vector 4-D (coordenadas centrales (x,y), alto, ancho). Hay dos versiones de la arquitectura de localización, una es el cuadro delimitador que se comparte entre diferentes candidatos (el resultado es 4 vector de parámetros) y el otro es un cuadro delimitador específico de la clase (la salida es 4000 vector de parámetros). El artículo experimentó con ambos enfoques en la arquitectura VGG -16 (D). Aquí también necesitamos cambiar la pérdida de pérdida de clasificación a funciones de pérdida de regresión (como MSE ) que penalizan la desviación de la pérdida prevista de la verdad fundamental.

Resultados: VGG-16 fue una de las arquitecturas con mejor desempeño en el desafío ILSVRC 2014. Quedó en segundo lugar en la tarea de clasificación con un error de clasificación entre los 5 primeros de 7.32% (solo detrás de GoogLeNet con un error de clasificación de 6.66% ). También fue el ganador de la tarea de localización con 25.32% error de localización.

Limitaciones de VGG 16:

  • Su entrenamiento es muy lento (el modelo VGG original se entrenó en la GPU Nvidia Titan durante 2 o 3 semanas).
  • El tamaño de los pesos imageNet entrenados con VGG-16 es 528 MEGABYTE. Por lo tanto, requiere bastante espacio en disco y ancho de banda, lo que lo hace ineficiente.
  • 138 millones de parámetros provocan un problema de gradientes explosivos.

Avances adicionales: Se introducen Resnets para evitar el problema de explosión de gradientes que ocurrió en VGG-16.