Red neuronal convolucional - Convolutional neural network

En el aprendizaje profundo , una red neuronal convolucional ( CNN o ConvNet ) es una clase de red neuronal artificial , más comúnmente aplicada para analizar imágenes visuales. También se conocen como redes neuronales artificiales invariantes en el desplazamiento o invariantes en el espacio ( SIANN ), basadas en la arquitectura de peso compartido de los núcleos o filtros de convolución que se deslizan a lo largo de las características de entrada y proporcionan respuestas equivariantes de traducción conocidas como mapas de características. Contrariamente a la intuición, la mayoría de las redes neuronales convolucionales son solo equivariantes , en oposición a invariantes , a la traducción. Tienen aplicaciones en la imagen y de vídeo de reconocimiento , sistemas de recomendación , la clasificación de imágenes , segmentación de imágenes , análisis de imágenes médicas , procesamiento del lenguaje natural , interfaces cerebro-ordenador , y financieros de series temporales .

Las CNN son versiones regularizadas de perceptrones multicapa . Perceptrones multicapa generalmente significan redes completamente conectados, es decir, cada neurona en una capa está conectada a todas las neuronas en la siguiente capa . La "conectividad total" de estas redes las hace propensas a sobreajustar los datos. Las formas típicas de regularización, o prevenir el sobreajuste, incluyen: penalizar los parámetros durante el entrenamiento (como la disminución del peso) o recortar la conectividad (conexiones omitidas, abandono, etc.) Las CNN adoptan un enfoque diferente hacia la regularización: aprovechan el patrón jerárquico en los datos y ensamblar patrones de complejidad creciente utilizando patrones más pequeños y simples estampados en sus filtros. Por lo tanto, en una escala de conectividad y complejidad, las CNN están en el extremo inferior.

Las redes convolucionales se inspiraron en procesos biológicos en los que el patrón de conectividad entre neuronas se asemeja a la organización de la corteza visual animal . Las neuronas corticales individuales responden a los estímulos solo en una región restringida del campo visual conocida como campo receptivo . Los campos receptivos de diferentes neuronas se superponen parcialmente de modo que cubren todo el campo visual.

Las CNN utilizan relativamente poco procesamiento previo en comparación con otros algoritmos de clasificación de imágenes . Esto significa que la red aprende a optimizar los filtros (o núcleos) a través del aprendizaje automatizado, mientras que en los algoritmos tradicionales estos filtros se diseñan a mano . Esta independencia del conocimiento previo y la intervención humana en la extracción de características es una gran ventaja.

Definición

El nombre "red neuronal convolucional" indica que la red emplea una operación matemática llamada convolución . Las redes convolucionales son un tipo especializado de redes neuronales que utilizan la convolución en lugar de la multiplicación de matrices general en al menos una de sus capas.

Arquitectura

Comparación de la convolución LeNet y AlexNet, agrupación y capas densas

Una red neuronal convolucional consta de una capa de entrada, capas ocultas y una capa de salida. En cualquier red neuronal de alimentación directa, las capas intermedias se denominan ocultas porque sus entradas y salidas están enmascaradas por la función de activación y la convolución final . En una red neuronal convolucional, las capas ocultas incluyen capas que realizan convoluciones. Normalmente, esto incluye una capa que realiza un producto escalar del núcleo de convolución con la matriz de entrada de la capa. Este producto suele ser el producto interno de Frobenius y su función de activación suele ser ReLU . A medida que el núcleo de convolución se desliza a lo largo de la matriz de entrada para la capa, la operación de convolución genera un mapa de características, que a su vez contribuye a la entrada de la siguiente capa. A esto le siguen otras capas, como las capas de agrupación, las capas completamente conectadas y las capas de normalización.

Capas convolucionales

En una CNN, la entrada es un tensor con una forma: (número de entradas) x (altura de entrada) x (ancho de entrada) x ( canales de entrada ). Después de pasar por una capa convolucional, la imagen se abstrae en un mapa de características, también llamado mapa de activación, con forma: (número de entradas) x (altura del mapa de características) x (ancho del mapa de características) x ( canales de mapas de características ).

Las capas convolucionales convolucionan la entrada y pasan su resultado a la siguiente capa. Esto es similar a la respuesta de una neurona en la corteza visual a un estímulo específico. Cada neurona convolucional procesa datos solo para su campo receptivo . Aunque se pueden utilizar redes neuronales feedforward completamente conectadas para aprender características y clasificar datos, esta arquitectura generalmente no es práctica para entradas más grandes, como imágenes de alta resolución. Requeriría una gran cantidad de neuronas, incluso en una arquitectura poco profunda, debido al gran tamaño de entrada de las imágenes, donde cada píxel es una característica de entrada relevante. Por ejemplo, una capa completamente conectada para una imagen (pequeña) de tamaño 100 x 100 tiene 10,000 pesos para cada neurona en la segunda capa. En cambio, la convolución reduce la cantidad de parámetros libres, lo que permite que la red sea más profunda. Por ejemplo, independientemente del tamaño de la imagen, el uso de una región de mosaico de 5 x 5, cada una con los mismos pesos compartidos, requiere solo 25 parámetros que se pueden aprender. El uso de pesos regularizados sobre menos parámetros evita los gradientes que desaparecen y los problemas de gradientes explosivos que se observan durante la propagación hacia atrás en las redes neuronales tradicionales. Además, las redes neuronales convolucionales son ideales para datos con una topología en forma de cuadrícula (como imágenes), ya que las relaciones espaciales entre características separadas se tienen en cuenta durante la convolución y / o agrupación.

Agrupación de capas

Las redes convolucionales pueden incluir capas de agrupación local y / o global junto con capas convolucionales tradicionales. La agrupación de capas reduce las dimensiones de los datos al combinar las salidas de los grupos de neuronas en una capa en una sola neurona en la siguiente. La agrupación local combina grupos pequeños, los tamaños de mosaico como 2 x 2 se utilizan comúnmente. La agrupación global actúa sobre todas las neuronas del mapa de características. Hay dos tipos comunes de agrupación en uso popular: máximo y promedio. La agrupación máxima utiliza el valor máximo de cada grupo local de neuronas en el mapa de características, mientras que la agrupación promedio toma el valor promedio.

Capas completamente conectadas

Las capas completamente conectadas conectan cada neurona en una capa con cada neurona en otra capa . Es lo mismo que una red neuronal de perceptrón multicapa (MLP) tradicional . La matriz aplanada pasa por una capa completamente conectada para clasificar las imágenes.

Campo receptivo

En las redes neuronales, cada neurona recibe información de varias ubicaciones en la capa anterior. En una capa convolucional, cada neurona recibe información de solo un área restringida de la capa anterior llamada campo receptivo de la neurona . Normalmente, el área es un cuadrado (por ejemplo, 5 por 5 neuronas). Mientras que, en una capa completamente conectada, el campo receptivo es toda la capa anterior . Por lo tanto, en cada capa convolucional, cada neurona recibe información de un área más grande en la entrada que las capas anteriores. Esto se debe a que se aplica la convolución una y otra vez, lo que tiene en cuenta el valor de un píxel, así como los píxeles circundantes. Cuando se utilizan capas dilatadas , el número de píxeles en el campo receptivo permanece constante, pero el campo está menos poblado a medida que aumentan sus dimensiones al combinar el efecto de varias capas.

Pesos

Cada neurona en una red neuronal calcula un valor de salida aplicando una función específica a los valores de entrada recibidos del campo receptivo en la capa anterior. La función que se aplica a los valores de entrada está determinada por un vector de pesos y un sesgo (normalmente números reales). El aprendizaje consiste en ajustar iterativamente estos sesgos y ponderaciones.

El vector de pesos y el sesgo se denominan filtros y representan características particulares de la entrada (por ejemplo, una forma particular). Una característica distintiva de las CNN es que muchas neuronas pueden compartir el mismo filtro. Esto reduce la huella de memoria porque se usa un solo sesgo y un solo vector de pesos en todos los campos receptivos que comparten ese filtro, en lugar de que cada campo receptivo tenga su propio sesgo y ponderación vectorial.

Historia

Las CNN a menudo se comparan con la forma en que el cerebro logra el procesamiento de la visión en los organismos vivos .

Campos receptivos en la corteza visual

El trabajo de Hubel y Wiesel en las décadas de 1950 y 1960 mostró que las cortezas visuales de los gatos contienen neuronas que responden individualmente a pequeñas regiones del campo visual . Siempre que los ojos no se muevan, la región del espacio visual dentro de la cual los estímulos visuales afectan la activación de una sola neurona se conoce como su campo receptivo . Las células vecinas tienen campos receptivos similares y superpuestos. El tamaño y la ubicación del campo receptivo varían sistemáticamente a lo largo de la corteza para formar un mapa completo del espacio visual. La corteza de cada hemisferio representa el campo visual contralateral .

Su artículo de 1968 identificó dos tipos básicos de células visuales en el cerebro:

  • células simples , cuya salida se maximiza por bordes rectos que tienen orientaciones particulares dentro de su campo receptivo
  • células complejas , que tienen campos receptivos más grandes , cuya salida es insensible a la posición exacta de los bordes en el campo.

Hubel y Wiesel también propusieron un modelo en cascada de estos dos tipos de células para su uso en tareas de reconocimiento de patrones.

Neocognitron, origen de la arquitectura CNN

El " neocognitron " fue introducido por Kunihiko Fukushima en 1980. Se inspiró en el trabajo antes mencionado de Hubel y Wiesel. El neocognitrón introdujo los dos tipos básicos de capas en las CNN: capas convolucionales y capas de submuestreo. Una capa convolucional contiene unidades cuyos campos receptivos cubren un parche de la capa anterior. El vector de peso (el conjunto de parámetros adaptativos) de dicha unidad a menudo se denomina filtro. Las unidades pueden compartir filtros. Las capas de submuestreo contienen unidades cuyos campos receptivos cubren parches de capas convolucionales anteriores. Esta unidad normalmente calcula el promedio de las activaciones de las unidades en su parche. Esta reducción de resolución ayuda a clasificar correctamente los objetos en escenas visuales incluso cuando los objetos se desplazan.

En una variante del neocognitrón llamada cresceptron, en lugar de utilizar el promedio espacial de Fukushima, J. Weng et al. introdujo un método llamado max-pooling donde una unidad de submuestreo calcula el máximo de las activaciones de las unidades en su parche. La agrupación máxima se utiliza a menudo en las CNN modernas.

Se han propuesto varios algoritmos de aprendizaje supervisados ​​y no supervisados ​​a lo largo de las décadas para entrenar los pesos de un neocognitrón. Hoy, sin embargo, la arquitectura de CNN generalmente se entrena mediante retropropagación .

El neocognitrón es la primera CNN que requiere que las unidades ubicadas en múltiples posiciones de la red tengan pesos compartidos.

Las redes neuronales convolucionales se presentaron en el Taller de procesamiento de información neuronal en 1987, analizando automáticamente señales que varían en el tiempo al reemplazar la multiplicación aprendida con convolución en el tiempo, y demostradas para el reconocimiento de voz.

Redes neuronales de retardo de tiempo

La red neuronal de retardo de tiempo (TDNN) fue introducida en 1987 por Alex Waibel et al. y fue una de las primeras redes convolucionales, ya que logró invarianza de cambio. Lo hizo utilizando el peso compartido en combinación con el entrenamiento de retropropagación . Así, aunque también utilizó una estructura piramidal como en el neocognitrón, realizó una optimización global de los pesos en lugar de una local.

Las TDNN son redes convolucionales que comparten pesos a lo largo de la dimensión temporal. Permiten que las señales de voz se procesen invariablemente en el tiempo. En 1990, Hampshire y Waibel introdujeron una variante que realiza una convolución bidimensional. Dado que estos TDNN operaban sobre espectrogramas, el sistema de reconocimiento de fonemas resultante era invariable tanto para los cambios en el tiempo como en la frecuencia. Esta invariancia de traducción inspirada en el procesamiento de imágenes con CNN. El mosaico de salidas de neuronas puede cubrir etapas cronometradas.

Los TDNN ahora logran el mejor rendimiento en el reconocimiento de voz a larga distancia.

Agrupación máxima

En 1990 Yamaguchi et al. introdujo el concepto de agrupación máxima, que es una operación de filtrado fija que calcula y propaga el valor máximo de una región determinada. Lo hicieron combinando TDNN con agrupación máxima para realizar un sistema de reconocimiento de palabras aislado e independiente del hablante. En su sistema usaban varios TDNN por palabra, uno para cada sílaba . Los resultados de cada TDNN sobre la señal de entrada se combinaron utilizando la agrupación máxima y las salidas de las capas de agrupación se pasaron luego a las redes que realizan la clasificación de palabras real.

Reconocimiento de imágenes con CNN entrenados por descenso de gradiente

Un sistema para reconocer los números de códigos postales escritos a mano implicaba convoluciones en las que los coeficientes del núcleo se habían diseñado laboriosamente a mano.

Yann LeCun y col. (1989) utilizaron la retropropagación para aprender los coeficientes del núcleo de convolución directamente a partir de imágenes de números escritos a mano. Por lo tanto, el aprendizaje fue completamente automático, tuvo un mejor rendimiento que el diseño de coeficientes manuales y fue adecuado para una gama más amplia de problemas de reconocimiento de imágenes y tipos de imágenes.

Este enfoque se convirtió en la base de la visión por computadora moderna .

LeNet-5

LeNet-5, una red convolucional pionera de 7 niveles de LeCun et al. en 1998, varios bancos aplicaron la clasificación de dígitos para reconocer números escritos a mano en cheques ( inglés británico : cheques ) digitalizados en imágenes de 32x32 píxeles. La capacidad de procesar imágenes de mayor resolución requiere capas más grandes y más de redes neuronales convolucionales, por lo que esta técnica está limitada por la disponibilidad de recursos informáticos.

Red neuronal invariante al cambio

De manera similar, W. Zhang et al. para el reconocimiento de caracteres de imágenes en 1988. La arquitectura y el algoritmo de entrenamiento se modificaron en 1991 y se aplicaron para el procesamiento de imágenes médicas y la detección automática del cáncer de mama en mamografías .

En 1988 se propuso un diseño diferente basado en convolución para su aplicación a la descomposición de señales convolucionadas electromiográficas unidimensionales mediante deconvolución. Este diseño se modificó en 1989 a otros diseños basados ​​en la deconvolución.

Pirámide de abstracción neuronal

Neural Abstraction Pyramid
Pirámide de abstracción neuronal

La arquitectura de retroalimentación de las redes neuronales convolucionales se extendió en la pirámide de abstracción neuronal mediante conexiones laterales y de retroalimentación. La red convolucional recurrente resultante permite la incorporación flexible de información contextual para resolver iterativamente las ambigüedades locales. A diferencia de los modelos anteriores, se generaron resultados similares a imágenes con la resolución más alta, por ejemplo, para tareas de segmentación semántica, reconstrucción de imágenes y localización de objetos.

Implementaciones de GPU

Aunque las CNN se inventaron en la década de 1980, su avance en la década de 2000 requirió implementaciones rápidas en unidades de procesamiento de gráficos (GPU).

En 2004, KS Oh y K. Jung demostraron que las redes neuronales estándar pueden acelerarse enormemente en las GPU. Su implementación fue 20 veces más rápida que una implementación equivalente en la CPU . En 2005, otro artículo también enfatizó el valor de GPGPU para el aprendizaje automático .

La primera implementación de GPU de una CNN fue descrita en 2006 por K. Chellapilla et al. Su implementación fue 4 veces más rápida que una implementación equivalente en CPU. El trabajo posterior también utilizó GPU, inicialmente para otros tipos de redes neuronales (diferentes de las CNN), especialmente redes neuronales no supervisadas.

En 2010, Dan Ciresan et al. en IDSIA demostró que incluso las redes neuronales estándar profundas con muchas capas se pueden entrenar rápidamente en GPU mediante el aprendizaje supervisado a través del antiguo método conocido como retropropagación . Su red superó los métodos de aprendizaje automático anteriores en el punto de referencia de dígitos manuscritos del MNIST . En 2011, extendieron este enfoque de GPU a las CNN, logrando un factor de aceleración de 60, con resultados impresionantes. En 2011, utilizaron CNN en GPU para ganar un concurso de reconocimiento de imágenes en el que lograron un rendimiento sobrehumano por primera vez. Entre el 15 de mayo de 2011 y el 30 de septiembre de 2012, sus CNN ganaron nada menos que cuatro concursos de imagen. En 2012, también mejoraron significativamente el mejor rendimiento en la literatura para múltiples bases de datos de imágenes , incluida la base de datos MNIST , la base de datos NORB, el conjunto de datos HWDB1.0 (caracteres chinos) y el conjunto de datos CIFAR10 (conjunto de datos de 60000 imágenes RGB etiquetadas de 32x32 ) .

Posteriormente, una CNN similar basada en GPU de Alex Krizhevsky et al. ganó el ImageNet Large Scale Visual Recognition Challenge 2012. Una CNN muy profunda con más de 100 capas de Microsoft ganó el concurso ImageNet 2015.

Implementaciones de Intel Xeon Phi

En comparación con el entrenamiento de CNN con GPU , no se prestó mucha atención al coprocesador Intel Xeon Phi . Un desarrollo notable es un método de paralelización para entrenar redes neuronales convolucionales en Intel Xeon Phi, llamado Hogwild controlado con orden arbitrario de sincronización (CHAOS). CHAOS explota el paralelismo a nivel de subprocesos y SIMD que está disponible en Intel Xeon Phi.

Características distintivas

En el pasado, los modelos tradicionales de perceptrón multicapa (MLP) se utilizaban para el reconocimiento de imágenes. Sin embargo, la conectividad total entre los nodos causó la maldición de la dimensionalidad y era computacionalmente intratable con imágenes de mayor resolución. Una imagen de 1000 × 1000 píxeles con canales de color RGB tiene 3 millones de pesos, lo cual es demasiado alto para procesar de manera eficiente a escala con conectividad total.

Capas de CNN dispuestas en 3 dimensiones

Por ejemplo, en CIFAR-10 , las imágenes solo tienen un tamaño de 32 × 32 × 3 (32 de ancho, 32 de alto, 3 canales de color), por lo que una sola neurona completamente conectada en la primera capa oculta de una red neuronal regular tendría 32 * 32 * 3 = 3,072 pesos. Sin embargo, una imagen de 200 × 200 conduciría a neuronas que tienen 200 * 200 * 3 = 120.000 pesos.

Además, dicha arquitectura de red no tiene en cuenta la estructura espacial de los datos, tratando los píxeles de entrada que están muy separados de la misma manera que los píxeles que están muy juntos. Esto ignora la localidad de referencia en los datos con una topología de cuadrícula (como imágenes), tanto computacional como semánticamente. Por lo tanto, la conectividad total de las neuronas es un desperdicio para fines como el reconocimiento de imágenes que están dominados por patrones de entrada espacialmente locales .

Las redes neuronales convolucionales son variantes de perceptrones multicapa, diseñadas para emular el comportamiento de una corteza visual . Estos modelos mitigan los desafíos planteados por la arquitectura MLP al explotar la fuerte correlación espacial local presente en las imágenes naturales. A diferencia de las MLP, las CNN tienen las siguientes características distintivas:

  • Volúmenes 3D de neuronas. Las capas de una CNN tienen neuronas dispuestas en 3 dimensiones : ancho, alto y profundidad. Donde cada neurona dentro de una capa convolucional está conectada a solo una pequeña región de la capa anterior, llamada campo receptivo. Se apilan distintos tipos de capas, tanto localmente como completamente conectadas, para formar una arquitectura CNN.
  • Conectividad local: siguiendo el concepto de campos receptivos, las CNN explotan la localidad espacial imponiendo un patrón de conectividad local entre neuronas de capas adyacentes. La arquitectura asegura así que los " filtros " aprendidos producen la respuesta más fuerte a un patrón de entrada espacialmente local. Apilar muchas de estas capas conduce a filtros no lineales que se vuelven cada vez más globales (es decir, que responden a una región más grande de espacio de píxeles) de modo que la red primero crea representaciones de pequeñas partes de la entrada y luego a partir de ellas ensambla representaciones de áreas más grandes.
  • Pesos compartidos: en las CNN, cada filtro se replica en todo el campo visual. Estas unidades replicadas comparten la misma parametrización (vector de peso y sesgo) y forman un mapa de características. Esto significa que todas las neuronas de una determinada capa convolucional responden a la misma característica dentro de su campo de respuesta específico. La replicación de unidades de esta manera permite que el mapa de activación resultante sea equivariante bajo los cambios de las ubicaciones de las entidades de entrada en el campo visual, es decir, otorgan equivariancia de traslación , dado que la capa tiene una zancada de uno.
  • Agrupación: en las capas de agrupación de una CNN, los mapas de características se dividen en subregiones rectangulares, y las características en cada rectángulo se muestrean de forma independiente a un valor único, comúnmente tomando su valor promedio o máximo. Además de reducir los tamaños de los mapas de características, la operación de agrupación otorga un grado de invariancia de traducción local a las características contenidas en ellos, lo que permite que la CNN sea más robusta a las variaciones en sus posiciones.

Juntas, estas propiedades permiten a las CNN lograr una mejor generalización sobre los problemas de visión . El peso compartido reduce drásticamente la cantidad de parámetros libres aprendidos, lo que reduce los requisitos de memoria para ejecutar la red y permite el entrenamiento de redes más grandes y potentes.

Bloques de construcción

Una arquitectura CNN está formada por una pila de capas distintas que transforman el volumen de entrada en un volumen de salida (por ejemplo, manteniendo las puntuaciones de la clase) a través de una función diferenciable. Normalmente se utilizan algunos tipos distintos de capas. Estos se analizan con más detalle a continuación.

Neuronas de capa convolucional (azul), conectadas a su campo receptivo (rojo)

Capa convolucional

La capa convolucional es el bloque de construcción central de una CNN. Los parámetros de la capa consisten en un conjunto de filtros (o núcleos ) que se pueden aprender , que tienen un pequeño campo receptivo, pero se extienden por toda la profundidad del volumen de entrada. Durante el pase directo, cada filtro se convoluciona a lo largo y ancho del volumen de entrada, calculando el producto escalar entre las entradas del filtro y la entrada, produciendo un mapa de activación bidimensional de ese filtro. Como resultado, la red aprende filtros que se activan cuando detecta algún tipo específico de característica en alguna posición espacial en la entrada.

Apilar los mapas de activación para todos los filtros a lo largo de la dimensión de profundidad forma el volumen de salida completo de la capa de convolución. Cada entrada en el volumen de salida también puede interpretarse como una salida de una neurona que mira una pequeña región en la entrada y comparte parámetros con neuronas en el mismo mapa de activación.

Conectividad local

Arquitectura típica de CNN

Cuando se trata de entradas de alta dimensión, como imágenes, no es práctico conectar neuronas a todas las neuronas del volumen anterior porque dicha arquitectura de red no tiene en cuenta la estructura espacial de los datos. Las redes convolucionales explotan la correlación espacialmente local al imponer un patrón de conectividad local disperso entre neuronas de capas adyacentes: cada neurona está conectada solo a una pequeña región del volumen de entrada.

El alcance de esta conectividad es un hiperparámetro llamado campo receptivo de la neurona. Las conexiones son locales en el espacio (a lo ancho y alto), pero siempre se extienden a lo largo de toda la profundidad del volumen de entrada. Tal arquitectura asegura que los filtros aprendidos produzcan la respuesta más fuerte a un patrón de entrada espacialmente local.

Disposición espacial

Tres hiperparámetros controlan el tamaño del volumen de salida de la capa convolucional: la profundidad, la zancada y el tamaño del acolchado.

  • La profundidad del volumen de salida controla la cantidad de neuronas en una capa que se conectan a la misma región del volumen de entrada. Estas neuronas aprenden a activarse para diferentes características en la entrada. Por ejemplo, si la primera capa convolucional toma la imagen sin procesar como entrada, entonces diferentes neuronas a lo largo de la dimensión de profundidad pueden activarse en presencia de varios bordes orientados o manchas de color.
  • Stride controla cómo se asignan las columnas de profundidad alrededor del ancho y alto. Si la zancada es 1, entonces movemos los filtros un píxel a la vez. Esto conduce acampos receptivosmuy superpuestos entre las columnas y a grandes volúmenes de salida. Para cualquier número entero,una zancada S significa que el filtro se traduce S unidades a la vez por salida. En la práctica,es raro. Un paso más grande significa una superposición más pequeña de campos receptivos y dimensiones espaciales más pequeñas del volumen de salida.
  • A veces, es conveniente rellenar la entrada con ceros (u otros valores, como el promedio de la región) en el borde del volumen de entrada. El tamaño de este relleno es un tercer hiperparámetro. El relleno proporciona control del tamaño espacial del volumen de salida. En particular, a veces es deseable preservar exactamente el tamaño espacial del volumen de entrada, esto se conoce comúnmente como "el mismo" relleno.

El tamaño espacial del volumen de salida es una función del tamaño del volumen de entrada , el tamaño del campo del núcleo de las neuronas de la capa convolucional, la zancada y la cantidad de relleno de ceros en el borde. El número de neuronas que "encajan" en un volumen dado es entonces:

Si este número no es un número entero , los pasos son incorrectos y las neuronas no se pueden colocar en mosaico para que quepan en el volumen de entrada de forma simétrica . En general, configurar el relleno de cero para que sea el momento en que se da el paso asegura que el volumen de entrada y el volumen de salida tendrán el mismo tamaño espacialmente. Sin embargo, no siempre es completamente necesario utilizar todas las neuronas de la capa anterior. Por ejemplo, un diseñador de redes neuronales puede decidir utilizar solo una parte del relleno.

Compartir parámetros

Se utiliza un esquema de compartición de parámetros en capas convolucionales para controlar el número de parámetros libres. Se basa en la suposición de que si una característica de parche es útil para calcular en alguna posición espacial, también debería ser útil para calcular en otras posiciones. Denotando un solo corte bidimensional de profundidad como un corte de profundidad , las neuronas en cada corte de profundidad están restringidas a usar los mismos pesos y sesgos.

Dado que todas las neuronas en un solo corte de profundidad comparten los mismos parámetros, el paso hacia adelante en cada corte de profundidad de la capa convolucional se puede calcular como una convolución de los pesos de la neurona con el volumen de entrada. Por lo tanto, es común referirse a los conjuntos de pesos como un filtro (o un núcleo ), que se convoluciona con la entrada. El resultado de esta convolución es un mapa de activación , y el conjunto de mapas de activación para cada filtro diferente se apilan juntos a lo largo de la dimensión de profundidad para producir el volumen de salida. El uso compartido de parámetros contribuye a la invariancia de traducción de la arquitectura CNN.

A veces, la suposición de compartir parámetros puede no tener sentido. Este es especialmente el caso cuando las imágenes de entrada a una CNN tienen alguna estructura centrada específica; para lo cual esperamos que se aprendan características completamente diferentes en diferentes ubicaciones espaciales. Un ejemplo práctico es cuando las entradas son caras que se han centrado en la imagen: podemos esperar que se aprendan diferentes características específicas del ojo o del cabello en diferentes partes de la imagen. En ese caso, es común relajar el esquema de uso compartido de parámetros y, en su lugar, simplemente llamar a la capa "capa conectada localmente".

Capa de agrupación

Agrupación máxima con un filtro 2x2 y zancada = 2

Otro concepto importante de las CNN es la agrupación, que es una forma de muestreo descendente no lineal . Hay varias funciones no lineales para implementar la agrupación, donde la agrupación máxima es la más común. Se particiona la imagen de entrada en un conjunto de rectángulos y, para cada una de tales sub-región, da salida a la máxima.

Intuitivamente, la ubicación exacta de una característica es menos importante que su ubicación aproximada en relación con otras características. Esta es la idea detrás del uso de la agrupación en redes neuronales convolucionales. La capa de agrupación sirve para reducir progresivamente el tamaño espacial de la representación, para reducir el número de parámetros, la huella de memoria y la cantidad de cálculo en la red y, por lo tanto, también para controlar el sobreajuste . Esto se conoce como muestreo descendente. Es común insertar periódicamente una capa de agrupación entre capas convolucionales sucesivas (cada una normalmente seguida de una función de activación, como una capa ReLU ) en una arquitectura CNN. Si bien las capas de agrupación contribuyen a la invariancia de traducción local, no proporcionan invariancia de traducción global en una CNN, a menos que se utilice una forma de agrupación global. La capa de agrupación normalmente opera de forma independiente en cada profundidad, o corte, de la entrada y la redimensiona espacialmente. Una forma muy común de agrupación máxima es una capa con filtros de tamaño 2 × 2, aplicada con un paso de 2, que submuestra cada corte de profundidad en la entrada en 2 a lo largo de la anchura y la altura, descartando el 75% de las activaciones:

En este caso, cada operación máxima tiene más de 4 números. La dimensión de profundidad permanece sin cambios (esto también es cierto para otras formas de agrupación).

Además de la agrupación máxima, las unidades de agrupación pueden utilizar otras funciones, como la agrupación promedio o la agrupación 2 -norm . La agrupación promedio se utilizó a menudo históricamente, pero recientemente ha caído en desgracia en comparación con la agrupación máxima, que generalmente funciona mejor en la práctica.

Debido a los efectos de la rápida reducción espacial del tamaño de la representación, existe una tendencia reciente hacia el uso de filtros más pequeños o el descarte de las capas agrupadas por completo.

Agrupación de RoI a tamaño 2x2. En esta propuesta de región de ejemplo (un parámetro de entrada) tiene un tamaño de 7x5.

La agrupación de " Región de interés " (también conocida como agrupación de RoI) es una variante de la agrupación máxima, en la que el tamaño de salida es fijo y el rectángulo de entrada es un parámetro.

La agrupación es un componente importante de las redes neuronales convolucionales para la detección de objetos basada en la arquitectura Fast R-CNN.

Capa ReLU

ReLU es la abreviatura de unidad lineal rectificada , que aplica la función de activación no saturante . Elimina eficazmente los valores negativos de un mapa de activación poniéndolos a cero. Introduce no linealidades en la función de decisión y en la red general sin afectar los campos receptivos de las capas de convolución.

Otras funciones también se pueden utilizar para aumentar la no linealidad, por ejemplo la saturación de tangente hiperbólica , y la función sigmoide . A menudo, se prefiere ReLU a otras funciones porque entrena la red neuronal varias veces más rápido sin una penalización significativa para la precisión de la generalización .

Capa completamente conectada

Después de varias capas de agrupación convolucional y máxima, la clasificación final se realiza a través de capas completamente conectadas. Las neuronas en una capa completamente conectada tienen conexiones con todas las activaciones en la capa anterior, como se ve en las redes neuronales artificiales regulares (no convolucionales) . Por tanto, sus activaciones pueden calcularse como una transformación afín , con una multiplicación de matrices seguida de un desplazamiento de sesgo ( suma vectorial de un término de sesgo fijo o aprendido).

Capa de pérdida

La "capa de pérdida", o " función de pérdida ", especifica cómo el entrenamiento penaliza la desviación entre la salida prevista de la red y las etiquetas de datos verdaderos (durante el aprendizaje supervisado). Se pueden utilizar varias funciones de pérdida , dependiendo de la tarea específica.

La función de pérdida Softmax se utiliza para predecir una sola clase de K clases mutuamente excluyentes. La pérdida de entropía cruzada sigmoidea se utiliza para predecir K valores de probabilidad independientes en . La pérdida euclidiana se utiliza para regresar a etiquetas de valor real .

Hiperparámetros

Los hiperparámetros son varias configuraciones que se utilizan para controlar el proceso de aprendizaje. Las CNN utilizan más hiperparámetros que un perceptrón multicapa estándar (MLP).

Tamaño de grano

El kernel es el número de píxeles procesados ​​juntos. Normalmente se expresa como las dimensiones del kernel, por ejemplo, 2x2 o 3x3.

Relleno

El relleno es la adición (normalmente) de píxeles de valor 0 en los bordes de una imagen. Esto se hace para que los píxeles del borde no se subestimen (pierdan) de la salida porque normalmente participarían en una sola instancia de campo receptivo. El relleno generalmente se establece en la dimensión del kernel -1. Entonces, un kernel de 3x3 recibiría una almohadilla de 2 píxeles en todos los lados de la imagen.

Paso

El paso es el número de píxeles que mueve la ventana de análisis en cada iteración. Un paso de 2 significa que cada núcleo está compensado por 2 píxeles de su predecesor.

Numero de filtros

Dado que el tamaño del mapa de características disminuye con la profundidad, las capas cercanas a la capa de entrada tienden a tener menos filtros, mientras que las capas superiores pueden tener más. Para igualar el cálculo en cada capa, el producto de los valores de las características v a con la posición de los píxeles se mantiene aproximadamente constante en todas las capas. Conservar más información sobre la entrada requeriría mantener el número total de activaciones (número de mapas de características multiplicado por el número de posiciones de píxeles) sin disminuir de una capa a la siguiente.

El número de mapas de características controla directamente la capacidad y depende del número de ejemplos disponibles y de la complejidad de la tarea.

Tamaño del filtro

Los tamaños de filtro comunes que se encuentran en la literatura varían mucho y, por lo general, se eligen en función del conjunto de datos.

El desafío es encontrar el nivel correcto de granularidad para crear abstracciones a la escala adecuada, dado un conjunto de datos en particular, y sin sobreajuste .

Tipo y tamaño de agrupación

Normalmente se utiliza la agrupación máxima , a menudo con una dimensión de 2x2. Esto implica que la entrada está drásticamente muestrea , reduciendo el coste de procesamiento.

Los grandes volúmenes de entrada pueden justificar la agrupación 4 × 4 en las capas inferiores. Una mayor agrupación reduce la dimensión de la señal y puede resultar en una pérdida de información inaceptable . A menudo, las ventanas agrupadas que no se superponen funcionan mejor.

Dilatación

La dilatación implica ignorar los píxeles dentro de un kernel. Esto reduce el procesamiento / memoria potencialmente sin una pérdida de señal significativa. Una dilatación de 2 en un kernel de 3x3 expande el kernel a 7x7, mientras sigue procesando 9 píxeles (espaciados uniformemente). En consecuencia, la dilatación de 4 expande el núcleo a 15x15.

Equivariancia de traducción

Se asume comúnmente que las CNN son invariables a los cambios de la entrada. Sin embargo, las capas de convolución o agrupación dentro de una CNN que no tienen un paso mayor que uno son equivariantes , a diferencia de invariantes , a las traducciones de la entrada. Las capas con una zancada mayor que uno ignoran el teorema de muestreo de Nyquist-Shannon y conducen al aliasing de la señal de entrada, lo que rompe la propiedad de equivariancia (también conocida como covarianza). Además, si una CNN utiliza capas completamente conectadas, la equivalencia de traducción no implica invariancia de traducción , ya que las capas completamente conectadas no son invariantes a los cambios de la entrada. Una solución para la invariancia de traducción completa es evitar el muestreo descendente en toda la red y aplicar la agrupación promedio global en la última capa. Además, se han propuesto varias otras soluciones parciales, como anti-aliasing , redes de transformadores espaciales, aumento de datos , submuestreo combinado con agrupación y redes neuronales de cápsula .

Evaluación

La precisión del modelo final basada en una subparte del conjunto de datos además al principio, a menudo llamado conjunto de prueba. Otras veces se aplican métodos como la validación cruzada de k- veces . Otras estrategias incluyen el uso de predicción conforme .

Métodos de regularización

La regularización es un proceso de introducción de información adicional para resolver un problema mal planteado o para evitar un sobreajuste . Las CNN utilizan varios tipos de regularización.

Empírico

Abandonar

Debido a que una capa completamente conectada ocupa la mayoría de los parámetros, es propensa a sobreajustarse. Un método para reducir el sobreajuste es la deserción . En cada etapa de entrenamiento, los nodos individuales se "eliminan" de la red (se ignoran) con probabilidad o se mantienen con probabilidad , de modo que queda una red reducida; También se eliminan los bordes entrantes y salientes a un nodo eliminado. Solo la red reducida se entrena con los datos en esa etapa. Luego, los nodos eliminados se reinsertan en la red con sus pesos originales.

En las etapas de entrenamiento, suele ser 0,5; para los nodos de entrada, suele ser mucho mayor porque la información se pierde directamente cuando se ignoran los nodos de entrada.

En el momento de la prueba, una vez finalizada la formación, lo ideal sería encontrar un promedio de muestra de todas las posibles redes abandonadas; desafortunadamente, esto es inviable para grandes valores de . Sin embargo, podemos encontrar una aproximación usando la red completa con la salida de cada nodo ponderada por un factor de , por lo que el valor esperado de la salida de cualquier nodo es el mismo que en las etapas de entrenamiento. Esta es la mayor contribución del método de abandono: aunque genera redes neuronales de manera efectiva y, como tal, permite la combinación de modelos, en el momento de la prueba solo es necesario probar una sola red.

Al evitar entrenar todos los nodos en todos los datos de entrenamiento, la deserción reduce el sobreajuste. El método también mejora significativamente la velocidad de entrenamiento. Esto hace que la combinación de modelos sea práctica, incluso para redes neuronales profundas . La técnica parece reducir las interacciones de los nodos, lo que los lleva a aprender características más sólidas que se generalizan mejor a los nuevos datos.

DropConnect

DropConnect es la generalización de la deserción en la que cada conexión, en lugar de cada unidad de salida, se puede eliminar con probabilidad . Por tanto, cada unidad recibe información de un subconjunto aleatorio de unidades en la capa anterior.

DropConnect es similar a la deserción, ya que introduce escasez dinámica dentro del modelo, pero difiere en que la escasez está en los pesos, en lugar de en los vectores de salida de una capa. En otras palabras, la capa completamente conectada con DropConnect se convierte en una capa escasamente conectada en la que las conexiones se eligen al azar durante la etapa de entrenamiento.

Pooling estocástico

Un gran inconveniente de Dropout es que no tiene los mismos beneficios para las capas convolucionales, donde las neuronas no están completamente conectadas.

En la agrupación estocástica, las operaciones de agrupación deterministas convencionales se sustituyen por un procedimiento estocástico, en el que la activación dentro de cada región de agrupación se selecciona aleatoriamente de acuerdo con una distribución multinomial , dada por las actividades dentro de la región de agrupación. Este enfoque está libre de hiperparámetros y se puede combinar con otros enfoques de regularización, como el abandono y el aumento de datos .

Una vista alternativa de la agrupación estocástica es que es equivalente a la agrupación máxima estándar pero con muchas copias de una imagen de entrada, cada una con pequeñas deformaciones locales . Esto es similar a las deformaciones elásticas explícitas de las imágenes de entrada, lo que ofrece un rendimiento excelente en el conjunto de datos MNIST . El uso de agrupaciones estocásticas en un modelo multicapa da un número exponencial de deformaciones, ya que las selecciones en las capas superiores son independientes de las siguientes.

Datos artificiales

Debido a que el grado de sobreajuste del modelo está determinado tanto por su potencia como por la cantidad de entrenamiento que recibe, proporcionar una red convolucional con más ejemplos de entrenamiento puede reducir el sobreajuste. Debido a que estas redes generalmente están capacitadas con todos los datos disponibles, un enfoque es generar nuevos datos desde cero (si es posible) o alterar los datos existentes para crear nuevos. Por ejemplo, las imágenes de entrada se pueden recortar, rotar o cambiar de escala para crear nuevos ejemplos con las mismas etiquetas que el conjunto de entrenamiento original.

Explícito

Parada anticipada

Uno de los métodos más simples para evitar el sobreajuste de una red es simplemente detener el entrenamiento antes de que se produzca el sobreajuste. Viene con la desventaja de que el proceso de aprendizaje se detiene.

Numero de parámetros

Otra forma sencilla de evitar el sobreajuste es limitar el número de parámetros, normalmente limitando el número de unidades ocultas en cada capa o limitando la profundidad de la red. Para redes convolucionales, el tamaño del filtro también afecta el número de parámetros. Limitar el número de parámetros restringe el poder predictivo de la red directamente, lo que reduce la complejidad de la función que puede realizar en los datos y, por lo tanto, limita la cantidad de sobreajuste. Esto es equivalente a una " norma cero ".

Deterioro de peso

Una forma simple de regularizador agregado es la disminución del peso, que simplemente agrega un error adicional, proporcional a la suma de pesos ( norma L1 ) o magnitud al cuadrado ( norma L2 ) del vector de peso, al error en cada nodo. El nivel de complejidad aceptable del modelo se puede reducir aumentando la constante de proporcionalidad (hiperparámetro 'alfa'), aumentando así la penalización para los vectores de peso grandes.

La regularización L2 es la forma más común de regularización. Se puede implementar penalizando la magnitud al cuadrado de todos los parámetros directamente en el objetivo. La regularización L2 tiene la interpretación intuitiva de penalizar fuertemente los vectores de peso pico y preferir los vectores de peso difusos. Debido a las interacciones multiplicativas entre los pesos y las entradas, esto tiene la propiedad útil de alentar a la red a utilizar un poco todas sus entradas en lugar de algunas de sus entradas mucho.

La regularización L1 también es común. Hace que los vectores de peso sean escasos durante la optimización. En otras palabras, las neuronas con regularización L1 terminan usando solo un escaso subconjunto de sus entradas más importantes y se vuelven casi invariantes a las entradas ruidosas. La regularización L1 con L2 se puede combinar; esto se llama regularización de la red elástica .

Restricciones normativas máximas

Otra forma de regularización es imponer un límite superior absoluto en la magnitud del vector de peso para cada neurona y usar el descenso de gradiente proyectado para hacer cumplir la restricción. En la práctica, esto corresponde a realizar la actualización del parámetro de forma normal y luego hacer cumplir la restricción sujetando el vector de peso de cada neurona a satisfacer . Los valores típicos de son del orden de 3 a 4. Algunos artículos informan mejoras al utilizar esta forma de regularización.

Marcos de coordenadas jerárquicas

La agrupación pierde las relaciones espaciales precisas entre las partes de alto nivel (como la nariz y la boca en una imagen facial). Estas relaciones son necesarias para el reconocimiento de identidad. La superposición de los grupos para que cada característica se produzca en varios grupos ayuda a retener la información. La traducción por sí sola no puede extrapolar la comprensión de las relaciones geométricas a un punto de vista radicalmente nuevo, como una orientación o escala diferente. Por otro lado, la gente es muy buena extrapolando; después de ver una nueva forma una vez que puedan reconocerla desde un punto de vista diferente.

Una forma común anterior de lidiar con este problema es entrenar a la red en datos transformados en diferentes orientaciones, escalas, iluminación, etc. para que la red pueda hacer frente a estas variaciones. Esto es computacionalmente intensivo para grandes conjuntos de datos. La alternativa es usar una jerarquía de marcos de coordenadas y usar un grupo de neuronas para representar una conjunción de la forma de la característica y su pose en relación con la retina . La pose relativa a la retina es la relación entre el marco de coordenadas de la retina y el marco de coordenadas de las características intrínsecas.

Por lo tanto, una forma de representar algo es incrustar el marco de coordenadas dentro de él. Esto permite reconocer grandes rasgos usando la consistencia de las poses de sus partes (por ejemplo, las posturas de nariz y boca hacen una predicción consistente de la postura de toda la cara). Este enfoque asegura que la entidad de nivel superior (por ejemplo, la cara) esté presente cuando la entidad de nivel inferior (por ejemplo, la nariz y la boca) concuerden en su predicción de la pose. Los vectores de actividad neuronal que representan pose ("vectores de pose") permiten transformaciones espaciales modeladas como operaciones lineales que facilitan que la red aprenda la jerarquía de entidades visuales y generalice a través de puntos de vista. Esto es similar a la forma en que el sistema visual humano impone marcos de coordenadas para representar formas.

Aplicaciones

Reconocimiento de imagen

Las CNN se utilizan a menudo en sistemas de reconocimiento de imágenes . En 2012 se informó una tasa de error del 0,23% en la base de datos del MNIST . Otro artículo sobre el uso de CNN para la clasificación de imágenes informó que el proceso de aprendizaje fue "sorprendentemente rápido"; en el mismo artículo, los mejores resultados publicados a partir de 2011 se obtuvieron en la base de datos MNIST y la base de datos NORB. Posteriormente, una CNN similar llamada AlexNet ganó el ImageNet Large Scale Visual Recognition Challenge 2012.

Cuando se aplica al reconocimiento facial , las CNN lograron una gran disminución en la tasa de error. Otro artículo informó una tasa de reconocimiento del 97,6% en "5.600 imágenes fijas de más de 10 sujetos". Las CNN se utilizaron para evaluar la calidad del video de manera objetiva después del entrenamiento manual; el sistema resultante tenía un error cuadrático medio muy bajo .

El desafío de reconocimiento visual a gran escala de ImageNet es un punto de referencia en la clasificación y detección de objetos, con millones de imágenes y cientos de clases de objetos. En el ILSVRC 2014, un desafío de reconocimiento visual a gran escala, casi todos los equipos de alto rango utilizaron CNN como su marco básico. El ganador GoogLeNet (la base de DeepDream ) aumentó la precisión promedio promedio de detección de objetos a 0.439329 y redujo el error de clasificación a 0.06656, el mejor resultado hasta la fecha. Su red aplicó más de 30 capas. Ese rendimiento de las redes neuronales convolucionales en las pruebas de ImageNet fue cercano al de los humanos. Los mejores algoritmos todavía luchan con objetos que son pequeños o delgados, como una pequeña hormiga en el tallo de una flor o una persona que sostiene una pluma en la mano. También tienen problemas con las imágenes distorsionadas con filtros, un fenómeno cada vez más común con las cámaras digitales modernas. Por el contrario, ese tipo de imágenes rara vez preocupan a los humanos. Los seres humanos, sin embargo, tienden a tener problemas con otros problemas. Por ejemplo, no son buenos para clasificar objetos en categorías detalladas, como la raza particular de perro o la especie de ave, mientras que las redes neuronales convolucionales se encargan de esto.

En 2015, una CNN de muchas capas demostró la capacidad de detectar rostros desde una amplia gama de ángulos, incluso al revés, incluso cuando están parcialmente ocluidos, con un rendimiento competitivo. La red se entrenó en una base de datos de 200.000 imágenes que incluían rostros en varios ángulos y orientaciones y otros 20 millones de imágenes sin rostros. Utilizaron lotes de 128 imágenes en 50.000 iteraciones.

Análisis de video

En comparación con los dominios de datos de imágenes, hay relativamente poco trabajo en la aplicación de CNN a la clasificación de videos. El video es más complejo que las imágenes porque tiene otra dimensión (temporal). Sin embargo, se han explorado algunas extensiones de CNN en el dominio de video. Un enfoque es tratar el espacio y el tiempo como dimensiones equivalentes de la entrada y realizar convoluciones tanto en el tiempo como en el espacio. Otra forma es fusionar las características de dos redes neuronales convolucionales, una para la secuencia espacial y otra para la temporal. Las unidades recurrentes de memoria a largo plazo a corto plazo (LSTM) generalmente se incorporan después de la CNN para tener en cuenta las dependencias entre cuadros o clips. Se han introducido esquemas de aprendizaje no supervisado para el entrenamiento de características espacio-temporales, basados ​​en máquinas de Boltzmann restringidas con compuerta convolucional y análisis de subespacio independiente.

Procesamiento natural del lenguaje

Las CNN también se han explorado para el procesamiento del lenguaje natural . Los modelos CNN son efectivos para varios problemas de PNL y lograron excelentes resultados en análisis semántico , recuperación de consultas de búsqueda, modelado de oraciones, clasificación, predicción y otras tareas tradicionales de PNL. En comparación con los métodos tradicionales de procesamiento del lenguaje, como las redes neuronales recurrentes , las CNN pueden representar diferentes realidades contextuales del lenguaje que no se basan en una suposición de secuencia en serie, mientras que las RNN son más adecuadas cuando se requiere el modelado clásico de series de tiempo.

Detección de anomalías

Se utilizó una CNN con convoluciones 1-D en series de tiempo en el dominio de la frecuencia (residual espectral) mediante un modelo no supervisado para detectar anomalías en el dominio del tiempo.

Descubrimiento de medicamento

Las CNN se han utilizado en el descubrimiento de fármacos . La predicción de la interacción entre moléculas y proteínas biológicas puede identificar tratamientos potenciales. En 2015, Atomwise presentó AtomNet, la primera red neuronal de aprendizaje profundo para el diseño racional de fármacos basado en estructuras . El sistema se entrena directamente en representaciones tridimensionales de interacciones químicas. De manera similar a cómo las redes de reconocimiento de imágenes aprenden a componer características más pequeñas y espacialmente próximas en estructuras más grandes y complejas, AtomNet descubre características químicas, como aromaticidad , carbonos sp 3 y enlaces de hidrógeno . Posteriormente, se utilizó AtomNet para predecir nuevas biomoléculas candidatas para múltiples objetivos de enfermedades, sobre todo tratamientos para el virus del Ébola y la esclerosis múltiple .

Evaluación de riesgos para la salud y descubrimiento de biomarcadores del envejecimiento

Las CNN se pueden adaptar naturalmente para analizar una colección suficientemente grande de datos de series de tiempo que representan flujos de actividad física humana de una semana de duración aumentados por los ricos datos clínicos (incluido el registro de muertes, como lo proporciona, por ejemplo, el estudio NHANES ). Se combinó una CNN simple con el modelo de riesgos proporcionales de Cox-Gompertz y se utilizó para producir un ejemplo de prueba de concepto de biomarcadores digitales del envejecimiento en forma de predictor de mortalidad por todas las causas.

Juego de damas

Las CNN se han utilizado en el juego de damas . De 1999 a 2001, Fogel y Chellapilla publicaron artículos que mostraban cómo una red neuronal convolucional podía aprender a jugar a las damas usando la coevolución. El proceso de aprendizaje no utilizó juegos profesionales humanos previos, sino que se centró en un conjunto mínimo de información contenida en el tablero de ajedrez: la ubicación y el tipo de piezas, y la diferencia en el número de piezas entre los dos lados. En última instancia, el programa ( Blondie24 ) se probó en 165 juegos contra jugadores y se ubicó en el 0,4% más alto. También obtuvo una victoria contra el programa Chinook en su nivel de juego "experto".

Ir

Las CNN se han utilizado en Computer Go . En diciembre de 2014, Clark y Storkey publicaron un artículo que mostraba que una CNN entrenada mediante el aprendizaje supervisado de una base de datos de juegos profesionales humanos podría superar a GNU Go y ganar algunos juegos contra la búsqueda de árboles de Monte Carlo Fuego 1.1 en una fracción del tiempo que tardó Fuego en juego. Más tarde se anunció que una gran red neuronal convolucional de 12 capas había predicho correctamente el movimiento profesional en el 55% de las posiciones, igualando la precisión de un jugador humano de 6 dan . Cuando la red convolucional entrenada se usó directamente para jugar juegos de Go, sin ninguna búsqueda, superó al programa de búsqueda tradicional GNU Go en el 97% de los juegos, e igualó el rendimiento del programa de búsqueda de árboles de Monte Carlo , Fuego, que simula diez mil playouts (aproximadamente un millón de posiciones) por movimiento.

AlphaGo utilizó un par de CNN para elegir movimientos para probar ("red de políticas") y evaluar posiciones ("red de valor") que conducen a MCTS , el primero en vencer al mejor jugador humano en ese momento.

Pronóstico de series de tiempo

Las redes neuronales recurrentes generalmente se consideran las mejores arquitecturas de redes neuronales para el pronóstico de series de tiempo (y el modelado de secuencias en general), pero estudios recientes muestran que las redes convolucionales pueden funcionar de manera comparable o incluso mejor. Las convoluciones dilatadas podrían permitir que las redes neuronales convolucionales unidimensionales aprendan eficazmente las dependencias de las series de tiempo. Las convoluciones se pueden implementar de manera más eficiente que las soluciones basadas en RNN y no sufren de gradientes que desaparecen (o explotan). Las redes convolucionales pueden proporcionar un rendimiento de pronóstico mejorado cuando hay varias series de tiempo similares de las que aprender. Las CNN también se pueden aplicar a otras tareas en el análisis de series de tiempo (por ejemplo, clasificación de series de tiempo o pronóstico de cuantiles).

Patrimonio cultural y conjuntos de datos 3D

A medida que los hallazgos arqueológicos como las tabletas de arcilla con escritura cuneiforme se adquieren cada vez más utilizando escáneres 3D, los primeros conjuntos de datos de referencia están disponibles como HeiCuBeDa, que proporciona casi 2.000 conjuntos de datos 2D y 3D normalizados preparados con el marco de software GigaMesh . Por lo tanto, las medidas basadas en la curvatura se utilizan junto con las redes neuronales geométricas (GNN), por ejemplo, para la clasificación de períodos de las tablillas de arcilla que se encuentran entre los documentos más antiguos de la historia humana.

Sintonia FINA

Para muchas aplicaciones, los datos de entrenamiento están menos disponibles. Las redes neuronales convolucionales suelen requerir una gran cantidad de datos de entrenamiento para evitar el sobreajuste . Una técnica común es entrenar a la red en un conjunto de datos más grande de un dominio relacionado. Una vez que los parámetros de la red han convergido, se realiza un paso de entrenamiento adicional utilizando los datos del dominio para ajustar los pesos de la red, esto se conoce como aprendizaje de transferencia . Además, esta técnica permite que las arquitecturas de red convolucionales se apliquen con éxito a problemas con pequeños conjuntos de entrenamiento.

Explicaciones humanas interpretables

El entrenamiento y la predicción de un extremo a otro son una práctica común en la visión por computadora . Sin embargo, se requieren explicaciones interpretables por humanos para sistemas críticos como los automóviles autónomos . Con los avances recientes en la prominencia visual , la atención espacial y temporal , las regiones espaciales / instantes temporales más críticos podrían visualizarse para justificar las predicciones de CNN.

Arquitecturas relacionadas

Redes Q profundas

Una red Q profunda (DQN) es un tipo de modelo de aprendizaje profundo que combina una red neuronal profunda con Q-learning , una forma de aprendizaje por refuerzo . A diferencia de los agentes de aprendizaje por refuerzo anteriores, los DQN que utilizan CNN pueden aprender directamente de las entradas sensoriales de alta dimensión a través del aprendizaje por refuerzo.

Los resultados preliminares se presentaron en 2014, con un documento adjunto en febrero de 2015. La investigación describió una aplicación para los juegos de Atari 2600 . Otros modelos de aprendizaje por refuerzo profundo lo precedieron.

Redes de creencias profundas

Las redes convolucionales de creencias profundas (CDBN) tienen una estructura muy similar a las redes neuronales convolucionales y se entrenan de manera similar a las redes de creencias profundas. Por lo tanto, explotan la estructura 2D de las imágenes, como lo hacen las CNN, y hacen uso del entrenamiento previo como redes de creencias profundas . Proporcionan una estructura genérica que se puede utilizar en muchas tareas de procesamiento de imágenes y señales. Los resultados de referencia en conjuntos de datos de imágenes estándar como CIFAR se han obtenido utilizando CDBN.

Bibliotecas notables

  • Caffe : una biblioteca para redes neuronales convolucionales. Creado por el Berkeley Vision and Learning Center (BVLC). Es compatible con CPU y GPU. Desarrollado en C ++ y tiene envoltorios de Python y MATLAB .
  • Deeplearning4j : aprendizaje profundo en Java y Scala en Spark habilitado para múltiples GPU . Una biblioteca de aprendizaje profundo de propósito general para la pila de producción de JVM que se ejecuta en un motor de computación científica C ++. Permite la creación de capas personalizadas. Se integra con Hadoop y Kafka.
  • Dlib : un conjunto de herramientas para crear aplicaciones de análisis de datos y aprendizaje automático en el mundo real en C ++.
  • Kit de herramientas cognitivas de Microsoft : un kit de herramientas de aprendizaje profundo escrito por Microsoft con varias características únicas que mejoran la escalabilidad en varios nodos. Es compatible con interfaces completas para el entrenamiento en C ++ y Python y con soporte adicional para la inferencia de modelos en C # y Java.
  • TensorFlow : biblioteca similar a Theano con licencia de Apache 2.0 compatible con CPU, GPU, la unidad de procesamiento de tensor (TPU) patentada de Google y dispositivos móviles.
  • Theano : la biblioteca de referencia de aprendizaje profundo para Python con una API ampliamente compatible con la popular biblioteca NumPy . Permite al usuario escribir expresiones matemáticas simbólicas, luego genera automáticamente sus derivadas, evitando al usuario tener que codificar gradientes o retropropagación. Estas expresiones simbólicas se compilan automáticamente en código CUDA para una implementación rápida en la GPU .
  • Torch : un marco de trabajo de computación científica con amplio soporte para algoritmos de aprendizaje automático, escrito en C y Lua . El autor principal es Ronan Collobert, y ahora se usa en Facebook AI Research y Twitter.

API notables

Ver también

Notas

Referencias

enlaces externos