Clase 9
Arquitecturas CNN modernas
Recorrido Histórico
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.
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.
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.
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:
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.
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
AlexNet
Las filosofías de diseño de AlexNet y LeNet son muy similares, pero también existen diferencias significativas.
Aumento de Imágenes
Transformaciones Geométricas
Transformaciones Lumínicas
83.6%
Accuracy de AlexNet en clasificación sobre ImageNet
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
Arquitecturas VGG
El bloque básico para construir una CNN clásica es una secuencia de lo siguiente:
Bloque VGG
VGG-11
92.7%
Accuracy de VGG-16 en clasificación sobre ImageNet
NiN
LeNet, AlexNet y VGG comparten un patrón de diseño común:
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
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
NiN
Aplicar un convolución de 1x1 es equivalente a tener una capa densa a nivel de píxel.
Bloque NiN
Bloque NiN
Arquitectura NiN
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
GoogLeNet: Bloque Inception
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.
GoogLeNet: Bloque Inception
GoogLeNet
93.3%
Accuracy de GoogLeNet en clasificación sobre ImageNet
INTERMEDIO
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.
Normalización por Lotes
Normalización por Lotes
El resultado de esta cuenta es un bache con varianza 1 y media 0
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
Normalización por Lotes
Cambian sus valores dependiendo del bache de entrada.
Es decir que son estimaciones ruidosas de la media y la varianza
Normalización por Lotes
Capas Densas
Capas Convolucionales
Normalización por Lotes: Predicción
¿¿¿Se hace normalización por lotes durante la predicción???
Normalización por Lotes: Predicción
¿¿¿Se hace normalización por lotes durante la predicción???
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:
Normalización por Lotes: Implementación
Debemos codificar una capa que implemente los siguientes aspectos:
Normalización por Lotes: Implementación
Debemos codificar una capa que implemente los siguientes aspectos:
Normalización por Lotes: Implementación
Normalización por Lotes: Implementación
Normalización por Lotes: Implementación
LeNet con nuestra capa BatchNorm
LeNet con las capas BatchNorm de Pytorch
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
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
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.
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.
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
ResNet :Bloque Residual
ResNet-18
ResNet-18
ResNet-18
96.4%
Accuracy de ResNet en clasificación sobre ImageNet
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
DenseNet: Bloque Denso
ResNet
DenseNet
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.
DenseNet: Ventajas
DenseNet: Ventajas
DenseNet: Ventajas
DenseNet: Implementación
DenseNet: Implementación
DenseNet: Implementación
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
Conclusión