Articles

Innovaciones de modelos de redes neuronales convolucionales para la clasificación de imágenes

Tweet Share Share

última actualización el 5 de julio de 2019

una introducción suave a las innovaciones en redes neuronales convolucionales de LeNet, AlexNet, VGG, Inception y ResNet.

las redes neuronales convolucionales se componen de dos elementos muy simples, a saber, capas convolucionales y capas de agrupación.

aunque simple, hay formas casi infinitas de organizar estas capas para un problema de visión por computadora dado.,

afortunadamente, hay tanto patrones comunes para configurar estas capas como innovaciones arquitectónicas que puede usar para desarrollar redes neuronales convolucionales muy profundas. El estudio de estas decisiones de diseño arquitectónico desarrolladas para tareas de clasificación de imágenes de última generación puede proporcionar una justificación e intuición sobre cómo usar estos diseños al diseñar sus propios modelos de redes neuronales convolucionales profundas.

en este tutorial, descubrirá los hitos clave de la arquitectura para el uso de redes neuronales convolucionales para problemas desafiantes de clasificación de imágenes.,

después de completar este tutorial, sabrá:

  • cómo modelar el número de filtros y tamaños de filtros al implementar redes neuronales convolucionales.
  • Cómo organizar las capas convolucionales y de agrupación en un patrón uniforme para desarrollar modelos de buen rendimiento.
  • Cómo utilizar el módulo inception y el módulo residual para desarrollar redes convolucionales mucho más profundas.

inicia tu proyecto con mi nuevo libro Deep Learning for Computer Vision, que incluye tutoriales paso a paso y los archivos de código fuente de Python para todos los ejemplos.

comencemos.,

  • actualización abr / 2019: Descripción corregida de tamaños de filtro para LeNet (gracias Huang).

resumen del Tutorial

Este tutorial se divide en seis partes; son:

  1. Diseño arquitectónico para CNNs
  2. LeNet-5
  3. AlexNet
  4. VGG
  5. Inception y GoogLeNet
  6. Red Residual o ResNet

diseño arquitectónico para CNNs

los elementos de una red neuronal convolucional, como las capas convolucionales y de agrupación, son relativamente fáciles de entender.,

la parte desafiante del uso de redes neuronales convolucionales en la práctica es cómo diseñar arquitecturas de modelos que utilicen mejor estos elementos simples.

un enfoque útil para aprender a diseñar arquitecturas de redes neuronales convolucionales efectivas es estudiar aplicaciones exitosas. Esto es particularmente sencillo de hacer debido al intenso estudio y aplicación de CNNs a través de 2012 a 2016 para el Desafío de reconocimiento Visual a gran escala de ImageNet, o ILSVRC., Este desafío resultó tanto en el rápido avance en el estado del arte para tareas de visión por computadora muy difíciles como en el desarrollo de innovaciones generales en la arquitectura de modelos de redes neuronales convolucionales.

comenzaremos con el LeNet-5 que a menudo se describe como la primera aplicación exitosa e importante de CNNs antes del ILSVRC, luego veremos cuatro innovaciones arquitectónicas ganadoras diferentes para la red neuronal convolucional desarrollada para el ILSVRC, a saber, AlexNet, VGG, Inception y ResNet.,

al comprender estos modelos de hitos y su arquitectura o innovaciones arquitectónicas desde un alto nivel, desarrollará tanto una apreciación por el uso de estos elementos arquitectónicos en aplicaciones modernas de CNN en visión por computadora, como ser capaz de identificar y elegir elementos de arquitectura que pueden ser útiles en el diseño de sus propios modelos.

Quiero Resultados con el Aprendizaje Profundo de la Visión de Computadora?

tome mi curso intensivo de correo electrónico gratuito de 7 días ahora (con código de muestra).,

Haga clic para inscribirse y también obtenga una versión gratuita en PDF del curso.

descargue su Mini-Curso Gratuito

LeNet-5

quizás la primera aplicación ampliamente conocida y exitosa de redes neuronales convolucionales fue LeNet-5, descrita por Yann LeCun, et al. en su artículo de 1998 titulado «Gradient-Based Learning Applied to Document Recognition» (obtener el PDF).

el sistema fue desarrollado para su uso en un problema de reconocimiento de caracteres escritos a mano y demostrado en el conjunto de datos estándar del MNIST, logrando aproximadamente 99.,Precisión de clasificación del 2% (o una tasa de error del 0,8%). La Red fue descrita como la técnica central en un sistema más amplio denominado redes de transformadores de grafos.

es un documento largo, y tal vez la mejor parte para centrarse en es la Sección II. B. que describe la arquitectura LeNet-5. En la sección, el documento describe que la red tiene siete capas con imágenes en escala de grises de entrada que tienen la forma 32×32, el tamaño de las imágenes en el conjunto de datos MNIST.

el modelo propone un patrón de una capa convolucional seguida de una capa de fondo común promedio, conocida como una capa de submuestreo., Este patrón se repite dos veces y media antes de que los mapas de entidades de salida se aplanen y se envíen a una serie de capas completamente conectadas para su interpretación y una predicción final. En el documento se presenta una imagen de la arquitectura de la red, que se reproduce a continuación.

Architecture of the LeNet-5 Convolutional Neural Network for Handwritten Character Recognition (taken from the 1998 paper).,

el patrón de bloques de capas convolucionales y capas agrupadas y repetidas sigue siendo un patrón común en el diseño y uso de redes neuronales convolucionales hoy, más de veinte años después.

curiosamente, la arquitectura utiliza un pequeño número de filtros como primera capa oculta, específicamente seis filtros cada uno con el tamaño de 5×5 píxeles., Después de la agrupación (llamada capa de submuestreo), otra capa convolucional tiene muchos más filtros, de nuevo con un tamaño más pequeño pero más pequeño que la capa convolucional anterior, específicamente 16 filtros con un tamaño de 5×5 píxeles, de nuevo seguido por la agrupación. En la repetición de estos dos bloques de capas de convolución y agrupación, la tendencia es un aumento en el número de filtros.

en comparación con las aplicaciones modernas, el número de filtros también es pequeño, pero la tendencia de aumentar el número de filtros con la profundidad de la red también sigue siendo un patrón común en el uso moderno de la técnica.,

el aplanamiento de los mapas de entidades y la interpretación y clasificación de las entidades extraídas por capas completamente conectadas también sigue siendo un patrón común hoy en día. En la terminología moderna, la sección final de la arquitectura a menudo se conoce como el clasificador, mientras que las capas convolucionales y de agrupación anteriores en el modelo se conocen como el extractor de características.

podemos resumir los aspectos clave de la arquitectura relevante en los modelos modernos de la siguiente manera:

  • Imágenes de entrada de tamaño fijo.
  • agrupa capas convolucionales y agrupadas en bloques.,
  • repetición de bloques convolucionales en la arquitectura.
  • Aumento del número de filtros con la profundidad de la red.
  • extracción de características distintas y partes clasificadoras de la arquitectura.

AlexNet

El trabajo que quizás podría acreditarse con el despertar renovado interés en las redes neuronales y el comienzo del dominio del aprendizaje profundo en muchas aplicaciones de visión por computadora fue el artículo de 2012 de Alex Krizhevsky, et al. titulado » Clasificación ImageNet con redes neuronales convolucionales profundas.,

el artículo describe un modelo más tarde conocido como «AlexNet» diseñado para abordar el Desafío de reconocimiento Visual a gran escala de ImageNet o el concurso ILSVRC-2010 para clasificar fotografías de objetos en una de las 1.000 categorías diferentes.

el ILSVRC fue un concurso celebrado entre 2011 y 2016, diseñado para impulsar la innovación en el campo de la visión por computadora. Antes del desarrollo de AlexNet, la tarea se pensaba muy difícil y mucho más allá de la capacidad de los métodos modernos de visión por computadora., AlexNet demostró con éxito la capacidad del modelo de red neuronal convolucional en el dominio, y encendió un fuego que resultó en muchas más mejoras e innovaciones, muchas demostradas en la misma tarea de ILSVRC en años posteriores. En términos más generales, el documento mostró que es posible desarrollar modelos integrales profundos y efectivos para un problema desafiante sin usar técnicas de preentrenamiento no supervisadas que eran populares en ese momento.

importante en el diseño de AlexNet fue un conjunto de métodos que eran nuevos o exitosos, pero no ampliamente adoptados en ese momento., Ahora, se han convertido en requisitos al usar CNNs para la clasificación de imágenes.

AlexNet hizo uso de la función de activación lineal rectificada, o ReLU, como la no lineal después de cada capa convolucional, en lugar de funciones en forma de S como la logística o tanh que eran comunes hasta ese punto. Además, se utilizó una función de activación softmax en la capa de salida, ahora un elemento básico para la clasificación multiclase con redes neuronales.,

el pooling medio utilizado en LeNet-5 fue reemplazado por un método de pooling máximo, aunque en este caso, se encontró que el pooling superpuesto superaba al pooling no superpuesto que se usa comúnmente en la actualidad (por ejemplo, el paso de la operación de pooling es del mismo tamaño que la operación de pooling, por ejemplo, 2 por 2 píxeles). Para abordar el sobreajuste, se utilizó el nuevo método de abandono propuesto entre las capas completamente conectadas de la parte del clasificador del modelo para mejorar el error de generalización.

la arquitectura de AlexNet es profunda y se extiende sobre algunos de los patrones establecidos con LeNet-5., La siguiente imagen, tomada del documento, resume la arquitectura del modelo, en este caso, dividida en dos canalizaciones para entrenar en el hardware de la GPU de la época.

Architecture of the AlexNet Convolutional Neural Network for Object Photo Classification (taken from the 2012 paper).

el modelo tiene cinco capas convolucionales en la parte de extracción de entidades del modelo y tres capas completamente conectadas en la parte del clasificador del modelo.

Las imágenes de entrada se fijaron al tamaño 224×224 con tres canales de color., En cuanto al número de filtros utilizados en cada capa convolucional, el patrón de aumento del número de filtros con profundidad visto en LeNet se mantuvo en su mayoría, en este caso, los tamaños: 96, 256, 384, 384 y 256. Del mismo modo, se utilizó el patrón de disminuir el tamaño del filtro (núcleo) con profundidad, comenzando desde el tamaño más pequeño de 11×11 y disminuyendo a 5×5, y luego a 3×3 en las capas más profundas. El uso de filtros pequeños como 5×5 y 3×3 es ahora la norma.,

se utilizó un patrón de una capa convolucional seguida de una capa de agrupación al inicio y al final de la parte de detección de características del modelo. Curiosamente, se utilizó un patrón de capa convolucional seguido inmediatamente por una segunda capa convolucional. Este patrón también se ha convertido en un estándar moderno.

el modelo fue entrenado con aumento de datos, aumentando artificialmente el tamaño del conjunto de datos de entrenamiento y dando al modelo más de una oportunidad de aprender las mismas características en diferentes orientaciones.,

podemos resumir los aspectos clave de la arquitectura relevantes en los modelos modernos de la siguiente manera:

  • Uso de la función de activación ReLU después de capas convolucionales y softmax para la capa de salida.
  • Uso de la agrupación Máxima en lugar de la agrupación Media.
  • Uso de la regularización del abandono entre las capas completamente conectadas.
  • patrón de capa convolucional alimentado directamente a otra capa convolucional.
  • Uso de aumento de datos.,

VGG

el desarrollo de redes neuronales convolucionales profundas para tareas de visión por computadora parecía ser un poco un arte oscuro después de AlexNet.

un trabajo importante que buscó estandarizar el diseño de arquitectura para redes convolucionales profundas y desarrolló modelos mucho más profundos y de mejor rendimiento en el proceso fue el documento de 2014 titulado «Very Deep Convolutional Networks for Large-Scale Image Recognition» por Karen Simonyan y Andrew Zisserman.

su arquitectura se conoce generalmente como VGG por el nombre de su laboratorio, el grupo de geometría Visual en Oxford., Su modelo fue desarrollado y demostrado en la competencia sameILSVRC, en este caso, la versión ILSVRC-2014 del desafío.

la primera diferencia importante que se ha convertido en un estándar de facto es el uso de un gran número de filtros pequeños. Específicamente, los filtros con el tamaño 3×3 y 1×1 con la zancada de uno, a diferencia de los filtros de gran tamaño en LeNet-5 y los filtros más pequeños pero aún relativamente grandes y gran zancada de cuatro en AlexNet.,

Las capas de pooling Max se utilizan después de la mayoría, pero no todas, las capas convolucionales, aprendiendo del ejemplo en AlexNet, sin embargo, todas las capas de pooling se realizan con el tamaño 2×2 y la misma zancada, que también se ha convertido en un estándar de facto. Específicamente, las redes VGG usan ejemplos de dos, tres e incluso cuatro capas convolucionales apiladas juntas antes de usar una capa de agrupación máxima. La razón fue que las capas convolucionales apiladas con filtros más pequeños se aproximan al efecto de una capa convolucional con un filtro de mayor tamaño, p.ej., tres capas convolucionales apiladas con filtros de 3×3 se aproximan a una capa convolucional con un filtro de 7×7.

otra diferencia importante es el gran número de filtros utilizados. El número de filtros aumenta con la profundidad del modelo, aunque comienza en un número relativamente grande de 64 y aumenta a través de 128, 256 y 512 filtros al final de la parte de extracción de características del modelo.

se desarrollaron y evaluaron varias variantes de la arquitectura, aunque dos se mencionan más comúnmente debido a su rendimiento y profundidad., Se nombran por el número de capas: son el VGG-16 y el VGG-19 para 16 y 19 capas aprendidas respectivamente.

a continuación se muestra una tabla tomada del documento; tenga en cuenta las dos columnas de la derecha que indican la configuración (Número de filtros) utilizados en las versiones VGG-16 y VGG-19 de la arquitectura.

Architecture of the VGG Convolutional Neural Network for Object Photo Classification (taken from the 2014 paper).,

las decisiones de diseño en los modelos VGG se han convertido en el punto de partida para el uso simple y directo de las redes neuronales convolucionales en general.

finalmente, el trabajo de VGG fue uno de los primeros en liberar los valiosos pesos del modelo bajo una licencia permisiva que llevó a una tendencia entre los investigadores de visión computarizada de aprendizaje profundo. Esto, a su vez, ha llevado al uso intensivo de modelos pre-entrenados como VGG en el aprendizaje de transferencia como punto de partida en nuevas tareas de visión por computadora.,

podemos resumir los aspectos clave de la arquitectura relevantes en los modelos modernos de la siguiente manera:

  • Uso de filtros convolucionales muy pequeños, por ejemplo, 3×3 y 1×1 con una zancada de uno.
  • Uso de máximo pooling con un tamaño de 2×2 y una zancada de las mismas dimensiones.
  • La importancia de apilar capas convolucionales antes de usar una capa de agrupación para definir un bloque.
  • repetición dramática del patrón de bloques convolucionales-pooling.
  • Desarrollo de modelos muy profundos (16 y 19 capas).,

Inception y GoogLeNet

innovaciones importantes en el uso de capas convolucionales fueron propuestas en el artículo de 2015 por Christian Szegedy, et al. titulado » Going Deeper with Convolutions.»

en el artículo, los autores proponen una arquitectura conocida como inception (o inception v1 para diferenciarla de las extensiones) y un modelo específico llamado GoogLeNet que logró los mejores resultados en la versión de 2014 del ILSVRC challenge.

la innovación clave en los modelos inception se llama módulo inception., Este es un bloque de capas convolucionales paralelas con filtros de diferentes tamaños (p. ej. 1×1, 3×3, 5×5) y una capa de agrupación máxima de 3×3, cuyos resultados se concatenan. A continuación se muestra un ejemplo del módulo inception tomado del documento.

Ejemplo del módulo de inicio ingenuo (tomado del documento de 2015).

un problema con una implementación ingenua del modelo inception es que el número de filtros (profundidad o canales) comienza a acumularse rápidamente, especialmente cuando los módulos inception se apilan.,

realizar circunvoluciones con tamaños de filtro más grandes (por ejemplo, 3 y 5) puede ser computacionalmente costoso en un gran número de filtros. Para abordar esto, se utilizan capas convolucionales de 1×1 para reducir el número de filtros en el modelo de inicio. Específicamente antes de las capas convolucionales 3×3 y 5×5 y después de la capa de agrupación. La siguiente imagen tomada del documento muestra este cambio en el módulo inception.

Ejemplo del módulo Inception con reducción de dimensionalidad (tomado del documento de 2015).,

una segunda decisión importante de diseño en el modelo de inicio fue conectar la salida en diferentes puntos del modelo. Esto se logró creando pequeñas redes de salida de la red principal que fueron entrenadas para hacer una predicción. La intención era proporcionar una señal de error adicional de la tarea de clasificación en diferentes puntos del modelo profundo para abordar el problema de los gradientes de Desaparición. Estas pequeñas redes de salida se eliminaron después de la capacitación.,

a continuación se muestra una versión rotada (de izquierda a derecha para entrada a salida) de la arquitectura del modelo de GoogLeNet tomado del documento utilizando los módulos de inicio de la entrada de la izquierda a la clasificación de salida de la derecha y las dos redes de salida adicionales que solo se utilizaron durante el entrenamiento.

arquitectura del modelo de GoogLeNet utilizado durante el entrenamiento para la clasificación de fotos de objetos (tomada del documento de 2015).,

curiosamente, se utilizó un pooling máximo superpuesto y se utilizó una operación de pooling promedio grande al final de la parte de extracción de características del modelo antes de la parte del clasificador del modelo.

podemos resumir los aspectos clave de la arquitectura relevantes en los modelos modernos de la siguiente manera:

  • Desarrollo y repetición del módulo Inception.
  • uso intensivo de la convolución 1×1 para reducir el número de canales.
  • Uso de retroalimentación de errores en varios puntos de la red.
  • Desarrollo de modelos muy profundos (22 capas).,
  • Uso del pooling promedio global para la salida del modelo.

Red Residual o ResNet

Una innovación final importante en redes neuronales convolucionales que revisaremos fue propuesta por Kaiming He, et al. en su artículo de 2016 titulado » Deep Residual Learning for Image Recognition.»

en el artículo, los autores propusieron un modelo muy profundo llamado Red Residual, o ResNet para abreviar, un ejemplo del cual logró el éxito en la versión de 2015 del desafío ILSVRC.

su modelo tenía unas impresionantes 152 capas., Clave para el diseño del modelo es la idea de bloques residuales que hacen uso de conexiones de acceso directo. Estas son simplemente conexiones en la arquitectura de red donde la entrada se mantiene tal cual (no ponderada) y se pasa a una capa más profunda, por ejemplo, omitiendo la siguiente capa.

un bloque residual es un patrón de dos capas convolucionales con activación ReLU donde la salida del bloque se combina con la entrada al bloque, por ejemplo, la conexión de acceso directo. Una versión proyectada de la entrada utilizada a través de 1×1 si la forma de la entrada al bloque es diferente a la salida del Bloque, las llamadas circunvoluciones de 1×1., Estas se conocen como conexiones de acceso directo proyectadas, en comparación con las conexiones de acceso directo no ponderadas o de identidad.

los autores comienzan con lo que llaman una red simple, que es una red neuronal convolucional profunda inspirada en VGG con filtros pequeños (3×3), capas convolucionales agrupadas seguidas sin agrupación en el medio, y una agrupación promedio al final de la parte del detector de características del modelo antes de la capa de salida completamente conectada con una función de activación softmax.,

la red simple se modifica para convertirse en una red residual mediante la adición de conexiones de acceso directo con el fin de definir bloques residuales. Por lo general, la forma de la entrada para la conexión de acceso directo es del mismo tamaño que la salida del bloque residual.

la imagen de abajo fue tomada del artículo y de izquierda a derecha compara la arquitectura de un modelo VGG, un modelo convolucional simple, y una versión del modelo convolucional simple con módulos residuales, llamada Red residual.,

arquitectura de la red Residual para la clasificación de fotos de objetos (tomada del documento de 2016).

podemos resumir los aspectos clave de la arquitectura relevantes en los modelos modernos de la siguiente manera:

  • Uso de conexiones de acceso directo.
  • Desarrollo y repetición de los bloques residuales.
  • Desarrollo de modelos muy profundos (152 capas).

más información

Esta sección proporciona más recursos sobre el tema si desea profundizar.,

Papers

  • Aprendizaje Basado en gradientes aplicado al reconocimiento de documentos, (PDF) 1998.
  • Clasificación ImageNet con redes neuronales convolucionales profundas, 2012.
  • Redes convolucionales muy profundas para el reconocimiento de imágenes a gran escala, 2014.
  • Ir más Profundo con Circunvoluciones, 2015.
  • Aprendizaje Residual profundo para el reconocimiento de imágenes, 2016

API

  • keras Applications API

Articles

  • Los 9 documentos de aprendizaje profundo que necesita conocer
  • Una guía Simple a las versiones de Inception Network, 2018.,
  • arquitecturas de CNN: LeNet, AlexNet, VGG, GoogLeNet, ResNet y más., 2017.

resumen

en este tutorial, descubrió los hitos clave de la arquitectura para el uso de redes neuronales convolucionales para una clasificación de imágenes desafiante.

Específicamente, aprendiste:

  • cómo modelar el número de filtros y tamaños de filtros al implementar redes neuronales convolucionales.
  • Cómo organizar las capas convolucionales y de agrupación en un patrón uniforme para desarrollar modelos de buen rendimiento.,
  • Cómo utilizar el módulo inception y el módulo residual para desarrollar redes convolucionales mucho más profundas.

¿tiene alguna pregunta?Haga sus preguntas en los comentarios a continuación y haré mi mejor esfuerzo para responder.

¡desarrolle modelos de aprendizaje profundo para visión hoy mismo!

desarrolle sus propios modelos de visión en minutos

…,con solo unas pocas líneas de código python

descubre cómo en mi nuevo Ebook:
Deep Learning for Computer visión

proporciona tutoriales de autoaprendizaje sobre temas como:
clasificación, detección de objetos (Yolo y rcnn), reconocimiento facial (vggface y facenet), preparación de datos y mucho más…

finalmente lleve el aprendizaje profundo a sus proyectos de visión

omita los aspectos académicos. Sólo Resultados.

Ver Lo que está Dentro de

Tweet Compartir Compartir