1 of 64

Clase 9

Arquitecturas CNN modernas

2 of 64

Recorrido Histórico

  1. Visión por Computadora Pre-ImageNet
  2. Visión por Computadora Post-ImageNet
                • AlexNet
                • VGG
                • NiN
                • GoogLeNet
                • ResNet
                • DenseNet

3 of 64

LeNet

Aunque LeNet logró buenos resultados en los primeros conjuntos de datos pequeños, aún no se había establecido el rendimiento y la viabilidad de entrenar CNN en conjuntos de datos más grandes y realistas.

  1. No había GPUs para entrenar una CNN multicanal y multicapa con una gran cantidad de parámetros.
  2. Los conjuntos de datos aún eran relativamente pequeños como para aprovechar el poder de expresión de la arquitectura.
  3. Aún faltaban trucos clave para entrenar redes neuronales como
    1. la heurística de inicialización de parámetros,
    2. variantes inteligentes de descenso de gradiente estocástico,
    3. funciones de activación que no desaparezcan los gradientes y
    4. técnicas de regularización efectivas.

4 of 64

Pre-ImageNet

Durante gran parte del tiempo transcurrido entre principios de la década de 1990 y los resultados decisivos de 2012, las redes neuronales a menudo fueron superadas por otros métodos de aprendizaje automático, como SVM.

5 of 64

ImageNet: El poder de los datos

Prof. Fei Fei Li

“El cambio de paradigma del pensamiento de ImageNet fue que mientras mucha gente estaba prestándole atención a los modelos, nosotros le prestáramos atención a los datos”, dijo Li.

ImageNet es una base de datos de imágenes organizada según la jerarquía de WordNet (actualmente solo los sustantivos), en la que cada nodo de la jerarquía está representado por cientos y miles de imágenes.

6 of 64

ImageNet Large Scale Visual Recognition Challenge (ILSVRC)

ILSVRC fue una competencia anual que utilizaba subconjuntos de ImageNet y estuvo diseñada para fomentar el desarrollo y la evaluación comparativa de algoritmos de última generación.

Las pruebas del desafío eran las siguientes:

  • Clasificación de imágenes: predice las clases de objetos presentes en una imagen.
  • Localización de un solo objeto: clasificación de imágenes + dibuje un cuadro delimitador alrededor de un ejemplo de cada objeto presente.
  • Detección de objetos: clasificación de imágenes + dibuje un cuadro delimitador alrededor de cada objeto presente.

7 of 64

ImageNet Large Scale Visual Recognition Challenge

(ILSVRC)

Los investigadores que participaron en las pruebas del ILSVRC movieron la frontera de lo conocido en la visión por computadora y los artículos que los describen son hitos en los campos de la visión por computadora, el aprendizaje profundo y, más ampliamente, en la inteligencia artificial.

8 of 64

AlexNet

AlexNet, que empleó una CNN de 8 capas, ganó el ILSRC-2012 por un margen extraordinariamente grande. Esta red demostró, por primera vez, que las features aprendidas pueden trascender las features diseñadas manualmente, rompiendo el paradigma anterior en visión por computadora.

Dr. Ilya Sutskever

Dr. Alex Krizhevsky

Dr. Geoffrey Hinton

9 of 64

AlexNet

Las filosofías de diseño de AlexNet y LeNet son muy similares, pero también existen diferencias significativas.

  • Primero, AlexNet es mucho más profunda que la relativamente pequeña LeNet5.
  • En segundo lugar, AlexNet usó ReLU en lugar de la sigmoidea como función de activación.
  • AlexNet controla la complejidad del modelo de las capas densas por Dropout, mientras que LeNet solo usa la reducción de peso.
  • El ciclo de entrenamiento de AlexNet agregó una gran cantidad de aumento de datos, como voltear, recortar y cambiar de color.
  • Alexnet implementó convoluciones rápidas utilizando dos NVIDIA GTX 580 con 3 GB de memoria. El código cuda-convnet fue lo suficientemente bueno como para que durante varios años fuera el estándar de la industria y alimentó los primeros dos años del boom del aprendizaje profundo.

10 of 64

Aumento de Imágenes

Transformaciones Geométricas

Transformaciones Lumínicas

11 of 64

83.6%

Accuracy de AlexNet en clasificación sobre ImageNet

12 of 64

Arquitecturas VGG

Para 2014, era evidente que a medida que se revelaban más y más arquitecturas nuevas, ninguna CNN podría ganar todas las pruebas del ILSVRC.

La arquitectura de VGGNet ganó la competencia en la tarea de localización y se quedó con la segunda posición en la tarea de clasificación. La belleza de esta red radica en su simplicidad arquitectónica y en el refuerzo de la idea de mejorar el rendimiento aumentando la profundidad de las CNN.

Karen Simonyan

Dr. Andrew Zisserman

13 of 64

Arquitecturas VGG

El bloque básico para construir una CNN clásica es una secuencia de lo siguiente:

  1. una capa convolucional con padding para mantener la resolución,
  2. una función de activación no lineal como un ReLU,
  3. una capa de pooling.

14 of 64

Bloque VGG

15 of 64

VGG-11

16 of 64

92.7%

Accuracy de VGG-16 en clasificación sobre ImageNet

17 of 64

NiN

LeNet, AlexNet y VGG comparten un patrón de diseño común:

  1. extraer características que explotan la estructura espacial a través de una secuencia de capas de convolución y polling
  2. postprocesar las representaciones aprendidas a través de capas densas.

Alternativamente, uno podría imaginar el uso de capas densas al principio del proceso.

Sin embargo, un uso descuidado de capas densas podría ceder la estructura espacial de la representación por completo, los bloques de red en red (NiN) ofrecen una alternativa. Se propusieron en base a una idea muy simple: usar un MLP en los canales para cada píxel por separado

18 of 64

NiN

Alternativamente, uno podría imaginar el uso de capas densas al principio del proceso.

Sin embargo, un uso descuidado de capas densas podría ocasionar la pérdida de la estructura espacial de la representación por completo.

Los bloques de red en red (NiN) ofrecen una alternativa. Se propusieron en base a una idea muy simple: �usar un MLP en los canales para cada píxel por separado

19 of 64

NiN

Aplicar un convolución de 1x1 es equivalente a tener una capa densa a nivel de píxel.

20 of 64

Bloque NiN

21 of 64

Bloque NiN

22 of 64

Arquitectura NiN

23 of 64

GoogLeNet

En 2014, GoogLeNet ganó la prueba de clasificación del ILSVRC , proponiendo una estructura que combinaba las fortalezas de NiN y paradigmas de bloques repetidos.

Uno de los objetivos del artículo fue abordar la cuestión de qué tamaño de kernel de convolución era mejor. Después de todo, las redes populares anteriores empleaban opciones tan pequeñas como 1 × 1 y tan grandes como 11 × 11.

Una idea de este documento fue que a veces puede ser ventajoso emplear una combinación de kernels de varios tamaños.

Fotos de los autores

24 of 64

GoogLeNet: Bloque Inception

25 of 64

GoogLeNet: Bloque Inception

Los bloques Inception tienen menos parámetros y requieren menos cálculos que una convolución 5x5 o 3x3 con los mismos canales de entrada y de salida.

Al mismo tiempo generan features más expresivas al concatenar features producidas por distintos tamaños de kernels.

26 of 64

GoogLeNet: Bloque Inception

27 of 64

GoogLeNet

28 of 64

93.3%

Accuracy de GoogLeNet en clasificación sobre ImageNet

29 of 64

INTERMEDIO

30 of 64

Normalización de las entradas

En 1998, Yan LeCun en su famoso artículo “Efficient BackProp” destacó la importancia de normalizar las entradas. El preprocesamiento de las entradas mediante la normalización es un procedimiento estándar de aprendizaje automático y se sabe que ayuda a una convergencia más rápida.

31 of 64

Normalización por Lotes

32 of 64

Normalización por Lotes

El resultado de esta cuenta es un bache con varianza 1 y media 0

33 of 64

Normalización por Lotes

Debido a que la elección de varianza 1 y media 0 es una elección arbitraria, se incluyen dos parámetros para acomodar la varianza y la media según sea conveniente

34 of 64

Normalización por Lotes

Cambian sus valores dependiendo del bache de entrada.

Es decir que son estimaciones ruidosas de la media y la varianza

35 of 64

Normalización por Lotes

Capas Densas

Capas Convolucionales

36 of 64

Normalización por Lotes: Predicción

¿¿¿Se hace normalización por lotes durante la predicción???

37 of 64

Normalización por Lotes: Predicción

¿¿¿Se hace normalización por lotes durante la predicción???

38 of 64

Normalización por Lotes: Predicción

Por lo general, después del entrenamiento, usamos todo el conjunto de datos para calcular estimaciones estables de las estadísticas de las variables y luego las dejamos constantes en el momento de la predicción. Esto se debe a 3 razones:

  1. Mantenemos los mapas de activación normalizados como durante el entrenamiento.
  2. El ruido en la media y la varianza ya no son deseables una vez concluído el entrenamiento.
  3. En el caso de que el modelo no recibiera lotes de entradas en el momento de la predicción sería imposible calcular la media y la varianza.

39 of 64

Normalización por Lotes: Implementación

Debemos codificar una capa que implemente los siguientes aspectos:

  1. Normalice los mapas de activación en función de la media y la varianza correspondiente (del lote o del dataset completo).
  2. Calcule la media y la varianza del dataset completo para cuando sean necesarias en la predicción.
  3. Establezca que gamma y beta son parámetros que deben ser aprendidos.
  4. Asegurarse de que las variables estén en el mismo dispositivo antes de realizar operaciones con ellas.

40 of 64

Normalización por Lotes: Implementación

Debemos codificar una capa que implemente los siguientes aspectos:

  • Normalice los mapas de activación en función de la media y la varianza correspondiente (del lote o del dataset completo).
  • Calcule la media y la varianza del dataset completo para cuando sean necesarias en la predicción.
  • Establezca que gamma y beta son parámetros que deben ser aprendidos.
  • Asegurarse de que las variables estén en el mismo dispositivo antes de realizar operaciones con ellas.

41 of 64

Normalización por Lotes: Implementación

42 of 64

Normalización por Lotes: Implementación

43 of 64

Normalización por Lotes: Implementación

LeNet con nuestra capa BatchNorm

LeNet con las capas BatchNorm de Pytorch

44 of 64

ResNet

Deep Residual Network fue posiblemente el trabajo más innovador en la comunidad de visión por computadora / aprendizaje profundo desde AlexNet. Su red ResNet les otorgó la victoria en el ILSVRC 2015.

ResNet hace posible entrenar hasta cientos o incluso miles de capas y aún logra un rendimiento convincente. Aprovechando su poderosa capacidad de representación, se ha mejorado el rendimiento de muchas aplicaciones de visión por computadora distintas de la clasificación de imágenes, como la detección de objetos y el reconocimiento facial.

Dr. Kaiming He

Dr. Shaoqing Ren

Dr. Jian Sun

45 of 64

ResNet

A medida que diseñamos redes cada vez más profundas, se vuelve imperativo comprender cómo la adición de capas puede aumentar tanto la complejidad como la expresividad de la red. Aún más importante es la capacidad de diseñar redes donde agregar capas hace que las redes sean estrictamente más expresivas en lugar de simplemente diferentes.

Familia de modelos

Modelo

Mejor modelo dentro de la familia

46 of 64

ResNet

A medida que diseñamos redes cada vez más profundas, se vuelve imperativo comprender cómo la adición de capas puede aumentar tanto la complejidad como la expresividad de la red. Aún más importante es la capacidad de diseñar redes donde agregar capas hace que las redes sean estrictamente más expresivas en lugar de simplemente diferentes.

47 of 64

ResNet

A medida que diseñamos redes cada vez más profundas, se vuelve imperativo comprender cómo la adición de capas puede aumentar tanto la complejidad como la expresividad de la red. Aún más importante es la capacidad de diseñar redes donde agregar capas hace que las redes sean estrictamente más expresivas en lugar de simplemente diferentes.

Por lo tanto, solo si las familias de modelos más grandes contienen las más pequeñas, tenemos la garantía de que aumentarlas aumenta estrictamente el poder expresivo de la red.

48 of 64

ResNet :Bloque Residual

Para las redes neuronales profundas, si podemos entrenar la capa recién agregada en una función de identidad f (x) = x, el nuevo modelo será como mínimo tan efectivo como el modelo original. Estas consideraciones son bastante profundas pero condujeron a una solución sorprendentemente simple, un bloque residual.

Bloque Común

Bloque Residual

49 of 64

ResNet :Bloque Residual

50 of 64

ResNet-18

51 of 64

ResNet-18

52 of 64

ResNet-18

53 of 64

96.4%

Accuracy de ResNet en clasificación sobre ImageNet

54 of 64

DenseNet

Este es el artículo de la CVPR de 2017 que obtuvo el premio al mejor artículo con más de 14.000 citas. Fue inventado conjuntamente por la Universidad de Cornwell, la Universidad de Tsinghua y Facebook AI Research (FAIR).

DenseNet se compone de bloques densos donde las capas están densamente conectadas entre sí. Esta reutilización extrema de los residuos crea una supervisión profunda porque cada capa recibe más supervisión de la capa anterior.

Dr. Gao Huang

Zhuang Liu

Dr. Laurens van der Maaten

Dr. Kilian Weinberger

55 of 64

DenseNet: Bloque Denso

ResNet

DenseNet

56 of 64

DenseNet: Bloque Denso

Dado que cada capa recibe mapas de activación de todas las capas anteriores, la red puede ser más delgada y compacta, es decir, el número de canales puede ser menor. Por lo tanto, tiene una mayor eficiencia computacional y eficiencia de memoria.

La tasa de crecimiento k es el número adicional de canales para cada capa.

57 of 64

DenseNet: Ventajas

  1. Flujo del gradiente mejorado

  • Eficiencia computacional y en los parámetros
  • Diversificación de las features

58 of 64

DenseNet: Ventajas

  • Flujo del gradiente mejorado
  • Eficiencia computacional y en los parámetros

  • Diversificación de las features

59 of 64

DenseNet: Ventajas

  • Flujo del gradiente mejorado
  • Eficiencia computacional y en los parámetros
  • Diversificación de las features

60 of 64

DenseNet: Implementación

61 of 64

DenseNet: Implementación

62 of 64

DenseNet: Implementación

63 of 64

DenseNet: Implementación

Bloque inicial idéntico a ResNet

Genera una lista de bloques densos

Ensambla la red agregando el bloque final para la clasificación

64 of 64

Conclusión