Una red neuronal convolucional ( CNN ) es un tipo regularizado de red neuronal de retroalimentación que aprende características por sí misma mediante la optimización del filtro (o kernel). Los gradientes que desaparecen y explotan, observados durante la retropropagación en redes neuronales anteriores, se evitan mediante el uso de pesos regularizados en menos conexiones. [1] [2] Por ejemplo, para cada neurona en la capa completamente conectada, se necesitarían 10.000 pesos para procesar una imagen de 100 × 100 píxeles. Sin embargo, al aplicar núcleos de convolución (o correlación cruzada) en cascada, [3] [4] solo se requieren 25 neuronas para procesar mosaicos de tamaño 5x5. [5] [6] Las características de la capa superior se extraen de ventanas de contexto más amplias, en comparación con las características de la capa inferior.
Tienen aplicaciones en:
Las CNN también se conocen como redes neuronales artificiales invariantes de desplazamiento o invariantes de espacio ( SIANN ), basadas en la arquitectura de peso compartido de los núcleos de convolución o filtros que se deslizan a lo largo de las características de entrada y proporcionan respuestas equivalentes a la traducción conocidas como mapas de características. [12] [13] Contrariamente a la intuición, la mayoría de las redes neuronales convolucionales no son invariantes a la traducción , debido a la operación de reducción de resolución que aplican a la entrada. [14]
Las redes neuronales de retroalimentación suelen ser redes completamente conectadas, es decir, cada neurona de una capa está conectada a todas las neuronas de la siguiente capa . La "total conectividad" de estas redes las hace propensas a sobreajustar los datos. Las formas típicas de regularización, o prevención del sobreajuste, incluyen: penalizar los parámetros durante el entrenamiento (como la disminución de peso) o recortar la conectividad (conexiones omitidas, abandonos, etc.). Los conjuntos de datos sólidos también aumentan la probabilidad de que las CNN aprendan los principios generalizados que caracterizan un determinado conjunto de datos en lugar de los sesgos de un conjunto pobremente poblado. [15]
Las redes convolucionales se inspiraron en procesos biológicos [16] [17] [18] [19] en el sentido de 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 estímulos sólo 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 preprocesamiento 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) mediante el aprendizaje automatizado, mientras que en los algoritmos tradicionales estos filtros están diseñados manualmente . Esta independencia del conocimiento previo y la intervención humana en la extracción de características es una gran ventaja. [ ¿A quien? ]
Una red neuronal convolucional consta de una capa de entrada, capas ocultas y una capa de salida. En una red neuronal convolucional, las capas ocultas incluyen una o más 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 de 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 capas de agrupación, capas completamente conectadas y capas de normalización. Aquí cabe señalar qué tan cerca está una red neuronal convolucional de un filtro coincidente . [20]
En una CNN, la entrada es un tensor con forma:
(número de entradas) × (alto de entrada) × (ancho de entrada) × ( 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 la forma:
(número de entradas) × (altura del mapa de funciones) × (ancho del mapa de funciones) × ( canales del mapa de funciones ).
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. [21] Cada neurona convolucional procesa datos solo para su campo receptivo .
Aunque se pueden utilizar redes neuronales de alimentación directa completamente conectadas para aprender características y clasificar datos, esta arquitectura generalmente no es práctica para entradas más grandes (por ejemplo, imágenes de alta resolución), que requerirían cantidades masivas de neuronas porque cada píxel es una característica de entrada relevante. Una capa completamente conectada para una imagen de tamaño 100 × 100 tiene 10.000 pesos para cada neurona en la segunda capa. La convolución reduce la cantidad de parámetros libres, lo que permite que la red sea más profunda. [5] Por ejemplo, usar una región de mosaico de 5 × 5, cada una con los mismos pesos compartidos, requiere solo 25 neuronas. El uso de pesos regularizados en menos parámetros evita los problemas de gradientes que desaparecen y de gradientes explosivos que se observan durante la retropropagación en redes neuronales anteriores. [1] [2]
Para acelerar el procesamiento, las capas convolucionales estándar se pueden reemplazar por capas convolucionales separables en profundidad, [22] que se basan en una convolución en profundidad seguida de una convolución puntual. La convolución en profundidad es una convolución espacial aplicada de forma independiente sobre cada canal del tensor de entrada, mientras que la convolución puntual es una convolución estándar restringida al uso de núcleos.
Las redes convolucionales pueden incluir capas de agrupación locales y/o globales junto con capas convolucionales tradicionales. Las capas de agrupación reducen las dimensiones de los datos al combinar las salidas de los grupos de neuronas en una capa en una sola neurona en la siguiente capa. La agrupación local combina pequeños grupos; comúnmente se utilizan tamaños de mosaico como 2 × 2. La agrupación global actúa sobre todas las neuronas del mapa de características. [23] [24] Hay dos tipos comunes de agrupación de uso popular: máxima y promedio. La agrupación máxima utiliza el valor máximo de cada grupo local de neuronas en el mapa de características, [25] [26] mientras que la agrupación promedio toma el valor promedio.
Las capas completamente conectadas conectan cada neurona de una capa con cada neurona de 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.
En las redes neuronales, cada neurona recibe información de una cierta cantidad de 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 la aplicación de la convolución una y otra vez, 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 sus dimensiones crecen cuando se combina el efecto de varias capas.
Para manipular el tamaño del campo receptivo como se desee, existen algunas alternativas a la capa convolucional estándar. Por ejemplo, la convolución atroz o dilatada [27] [28] expande el tamaño del campo receptivo sin aumentar el número de parámetros entrelazando regiones visibles y ciegas. Además, una única capa convolucional dilatada puede comprender filtros con múltiples relaciones de dilatación, [29] teniendo así un tamaño de campo receptivo variable.
Cada neurona de 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.
Los vectores de pesos y sesgos 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 utiliza un único sesgo y un único vector de ponderaciones en todos los campos receptivos que comparten ese filtro, en lugar de que cada campo receptivo tenga su propio sesgo y ponderación vectorial. [30]
Las CNN se comparan a menudo con la forma en que el cerebro procesa la visión en los organismos vivos . [31]
El trabajo de Hubel y Wiesel en las décadas de 1950 y 1960 demostró que la corteza visual de los gatos contiene 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 campo receptivo . [32] 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. [ cita necesaria ] La corteza de cada hemisferio representa el campo visual contralateral . [ cita necesaria ]
Su artículo de 1968 identificó dos tipos básicos de células visuales en el cerebro: [17]
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. [33] [32]
El " neocognitrón " [16] fue introducido por Kunihiko Fukushima en 1980. [18] [26] [34] Se inspiró en el trabajo antes mencionado de Hubel y Wiesel. El neocognitrón introdujo los dos tipos básicos de capas:
En 1969, Fukushima introdujo la función de activación ReLU (unidad lineal rectificada) . [35] [36] No se utilizó en su neocognitrón ya que todos los pesos no eran negativos; en su lugar se utilizó la inhibición lateral. El rectificador se ha convertido en la función de activación más popular para las CNN y las redes neuronales profundas en general. [37]
En una variante del neocognitrón llamada cresceptrón, en lugar de utilizar el promedio espacial de Fukushima con inhibición y saturación, J. Weng et al. en 1993 introdujo un método llamado max-pooling donde una unidad de reducción de resolución calcula el máximo de activaciones de las unidades en su parche. [38] La agrupación máxima se utiliza a menudo en las CNN modernas. [39]
A lo largo de las décadas se han propuesto varios algoritmos de aprendizaje supervisados y no supervisados para entrenar los pesos de un neocognitrón. [16] Hoy en día, sin embargo, la arquitectura CNN generalmente se entrena mediante retropropagación .
El neocognitrón es la primera ANN que requiere que las unidades ubicadas en múltiples posiciones de la red tengan pesos compartidos, un sello distintivo de las CNN.
El término "convolución" aparece por primera vez en redes neuronales en un artículo de Toshiteru Homma, Les Atlas y Robert Marks II en la primera Conferencia sobre Sistemas de Procesamiento de Información Neural en 1987. Su artículo reemplazó la multiplicación con convolución en el tiempo, proporcionando inherentemente invariancia de cambio. motivado y conectándose más directamente con el concepto de procesamiento de señales de un filtro , y lo demostró en una tarea de reconocimiento de voz. [6] También señalaron que, como sistema entrenable con datos, la convolución es esencialmente equivalente a la correlación, ya que la inversión de los pesos no afecta la función aprendida final ("Por conveniencia, denotamos * como correlación en lugar de convolución. Tenga en cuenta que la convolución a(t) con b(t) es equivalente a correlacionar a(-t) con b(t)."). [6] Las implementaciones modernas de CNN generalmente hacen correlación y la llaman convolución, por conveniencia, como lo hicieron aquí.
La red neuronal de retardo de tiempo (TDNN) fue introducida en 1987 por Alex Waibel et al. para el reconocimiento de fonemas y fue una de las primeras redes convolucionales, ya que logró invariancia de cambio. [40] Una TDNN es una red neuronal convolucional 1-D donde la convolución se realiza a lo largo del eje temporal de los datos. Es la primera CNN que utiliza el peso compartido en combinación con un entrenamiento mediante descenso de gradiente, utilizando retropropagación . [41] Por lo tanto, 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. [40]
Las TDNN son redes convolucionales que comparten pesos a lo largo de la dimensión temporal. [42] Permiten que las señales de voz se procesen de forma invariante en el tiempo. En 1990, Hampshire y Waibel introdujeron una variante que realiza una convolución bidimensional. [43] Dado que estos TDNN operaban en espectrogramas, el sistema de reconocimiento de fonemas resultante era invariante tanto para los cambios de tiempo como de frecuencia, como ocurre con las imágenes procesadas por un neocognitrón.
Los TDNN mejoraron el rendimiento del reconocimiento de voz a larga distancia. [44]
Denker et al. (1989) diseñaron un sistema CNN 2-D para reconocer números de códigos postales escritos a mano . [45] Sin embargo, la falta de un método de entrenamiento eficiente para determinar los coeficientes del núcleo de las convoluciones involucradas significó que todos los coeficientes tuvieron que ser laboriosamente diseñados a mano. [46]
Siguiendo los avances en el entrenamiento de CNN 1-D por Waibel et al. (1987), Yann LeCun et al. (1989) [46] utilizaron la propagación hacia atrás 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, funcionó mejor que el diseño de coeficientes manual y se adaptó a una gama más amplia de problemas y tipos de imágenes de reconocimiento. Wei Zhang y cols. (1988) [12] [13] utilizaron retropropagación para entrenar los núcleos de convolución de una CNN para el reconocimiento de alfabetos. El modelo se llamó red neuronal de reconocimiento de patrones de cambio invariante antes de que se acuñara el nombre CNN a principios de la década de 1990. Wei Zhang y cols. También aplicó la misma CNN sin la última capa completamente conectada para la segmentación de objetos de imágenes médicas (1991) [47] y la detección de cáncer de mama en mamografías (1994). [48]
Este enfoque se convirtió en la base de la visión por computadora moderna .
En 1990 Yamaguchi et al. introdujo el concepto de agrupación máxima, una operación de filtrado fijo 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. [25] En su sistema utilizaron 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 luego se pasaron a las redes que realizaban la clasificación de palabras real.
LeNet-5, una red convolucional pionera de 7 niveles diseñada por LeCun et al. en 1995, [49] clasifica los números escritos a mano en cheques ( inglés británico : checks ) digitalizados en imágenes de 32x32 píxeles. La capacidad de procesar imágenes de mayor resolución requiere más y más capas de redes neuronales convolucionales, por lo que esta técnica está limitada por la disponibilidad de recursos informáticos.
Era superior a otros sistemas comerciales de lectura de importes de cortesía (a partir de 1995). El sistema se integró en los sistemas de lectura de cheques de NCR y se utilizó en varios bancos estadounidenses desde junio de 1996, leyendo millones de cheques por día. [50]
Wei Zhang et al. propusieron una red neuronal invariante por cambio. para el reconocimiento de caracteres de imágenes en 1988. [12] [13] Es un Neocognitron modificado que mantiene solo las interconexiones convolucionales entre las capas de características de la imagen y la última capa completamente conectada. El modelo fue entrenado con retropropagación. El algoritmo de entrenamiento se mejoró aún más en 1991 [51] para mejorar su capacidad de generalización. La arquitectura del modelo se modificó eliminando la última capa completamente conectada y se aplicó para la segmentación de imágenes médicas (1991) [47] y la detección automática de cáncer de mama en mamografías (1994) . [48]
En 1988 [52] se propuso un diseño diferente basado en la convolución para su aplicación a la descomposición de señales convolucionadas de electromiografía unidimensional mediante deconvolución. Este diseño se modificó en 1989 a otros diseños basados en deconvolución. [53] [54]
La arquitectura de retroalimentación de las redes neuronales convolucionales se amplió en la pirámide de abstracción neuronal [55] mediante conexiones laterales y de retroalimentación. La red convolucional recurrente resultante permite la incorporación flexible de información contextual para resolver iterativamente 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.
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 se pueden acelerar enormemente en GPU. Su implementación fue 20 veces más rápida que una implementación equivalente en CPU . [56] [39] En 2005, otro artículo también enfatizó el valor de GPGPU para el aprendizaje automático . [57]
La primera implementación 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. [58] El trabajo posterior también utilizó GPU, inicialmente para otros tipos de redes neuronales (diferentes de las CNN), especialmente redes neuronales no supervisadas. [59] [60] [61] [62]
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 aprendizaje supervisado mediante el antiguo método conocido como retropropagación . Su red superó a los métodos anteriores de aprendizaje automático en el punto de referencia de dígitos escritos a mano del MNIST . [63] En 2011, ampliaron este enfoque de GPU a las CNN, logrando un factor de aceleración de 60, con resultados impresionantes. [23] En 2011, utilizaron este tipo de CNN en GPU para ganar un concurso de reconocimiento de imágenes en el que lograron un rendimiento sobrehumano por primera vez. [64] Entre el 15 de mayo de 2011 y el 30 de septiembre de 2012, sus CNN ganaron no menos de cuatro concursos de imagen. [65] [39] 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 ). [26]
Posteriormente, una CNN similar basada en GPU realizada por Alex Krizhevsky et al. ganó el ImageNet Large Scale Visual Recognition Challenge 2012. [66] Una CNN muy profunda con más de 100 capas de Microsoft ganó el concurso ImageNet 2015. [67]
En comparación con el entrenamiento de CNN utilizando GPU , no se prestó mucha atención al coprocesador Intel Xeon Phi . [68] Un desarrollo notable es un método de paralelización para entrenar redes neuronales convolucionales en Intel Xeon Phi, llamado Controlled Hogwild with Arbitrary Order of Synchronization (CHAOS). [69] CHAOS explota el paralelismo a nivel de subprocesos y SIMD que está disponible en Intel Xeon Phi.
En el pasado, se utilizaban modelos tradicionales de perceptrón multicapa (MLP) para el reconocimiento de imágenes. [ ejemplo necesario ] Sin embargo, la conectividad total entre 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 por neurona completamente conectada, lo cual es demasiado alto para procesarlo de manera eficiente a escala.
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 única 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, y trata 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 datos con 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 propósitos 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:
Juntas, estas propiedades permiten a las CNN lograr una mejor generalización de 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.
Una arquitectura CNN está formada por una pila de capas distintas que transforman el volumen de entrada en un volumen de salida (por ejemplo, que contiene las puntuaciones de las clases) a través de una función diferenciable. Generalmente se utilizan algunos tipos distintos de capas. Estos se analizan con más detalle a continuación.
La capa convolucional es el componente central de una CNN. Los parámetros de la capa constan de un conjunto de filtros aprendibles (o núcleos ), que tienen un pequeño campo receptivo, pero se extienden a lo largo de toda la profundidad del volumen de entrada. Durante el paso directo, cada filtro convoluciona a lo ancho y alto 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. [72] [nota 1]
El apilamiento de 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 convolucional. Por lo tanto, cada entrada en el volumen de salida también puede interpretarse como una salida de una neurona que mira una pequeña región de la entrada. Cada entrada en un mapa de activación utiliza el mismo conjunto de parámetros que definen el filtro.
El aprendizaje autosupervisado se ha adaptado para su uso en capas convolucionales mediante el uso de parches dispersos con una relación de máscara alta y una capa de normalización de respuesta global. [ cita necesaria ]
Cuando se trata de entradas de alta dimensión, como imágenes, no resulta 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 espacial local al imponer un patrón de conectividad local escaso 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. Dicha arquitectura garantiza que los filtros aprendidos ( inglés británico : aprendido ) produzcan la respuesta más fuerte a un patrón de entrada espacialmente local.
Tres hiperparámetros controlan el tamaño del volumen de salida de la capa convolucional: la profundidad, la zancada y el tamaño del relleno:
El tamaño espacial del volumen de salida es 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 "caben" en un volumen determinado es entonces:
Si este número no es un número entero , entonces 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, establecer el relleno cero para que sea cuando se realiza la zancada garantiza que el volumen de entrada y el volumen de salida tendrán el mismo tamaño espacial. 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 sólo una parte del relleno.
Se utiliza un esquema de intercambio de parámetros en capas convolucionales para controlar el número de parámetros libres. Se basa en el supuesto de que si una característica de parche es útil para calcular en alguna posición espacial, entonces también debería ser útil para calcular en otras posiciones. Al denominar un único segmento de profundidad bidimensional como un segmento de profundidad , las neuronas en cada segmento de profundidad están obligadas a utilizar los mismos pesos y sesgos.
Dado que todas las neuronas en un único segmento de profundidad comparten los mismos parámetros, el paso hacia adelante en cada segmento de profundidad de la capa convolucional se puede calcular como una convolución de los pesos de la neurona con el volumen de entrada. [nb 2] Por lo tanto, es común referirse a los conjuntos de pesos como un filtro (o un núcleo ), que 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 a lo largo de la dimensión de profundidad para producir el volumen de salida. El intercambio de parámetros contribuye a la invariancia de traducción de la arquitectura CNN. [14]
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: podríamos 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 intercambio de parámetros y, en su lugar, simplemente llamar a la capa "capa conectada localmente".
Otro concepto importante de las CNN es la agrupación, que es una forma de muestreo descendente no lineal . Existen varias funciones no lineales para implementar la agrupación, donde la agrupación máxima es la más común. Divide la imagen de entrada en un conjunto de rectángulos y, para cada subregión, genera el máximo .
Intuitivamente, la ubicación exacta de una característica es menos importante que su ubicación aproximada en relación con otras características. Ésta es la idea detrás del uso de pooling en redes neuronales convolucionales. La capa de agrupación sirve para reducir progresivamente el tamaño espacial de la representación, para reducir la cantidad 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 por una función de activación, como una capa ReLU) en una arquitectura CNN. [72] : 460–461 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. [14] [71] La capa de agrupación comúnmente opera de forma independiente en cada profundidad, o segmento, de la entrada y cambia su tamaño 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 tanto a lo ancho como a lo alto, descartando el 75% de las activaciones: En este En este caso, cada operación máxima es de más de 4 números. La dimensión de profundidad permanece sin cambios (esto también se aplica a 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 normal ℓ 2 . Históricamente, la agrupación promedio se usaba a menudo, pero recientemente ha perdido popularidad en comparación con la agrupación máxima, que generalmente funciona mejor en la práctica. [74]
Debido a los efectos de la rápida reducción espacial del tamaño de la representación, [ cuál? ] existe una tendencia reciente hacia el uso de filtros más pequeños [75] o el descarte de las capas de agrupación por completo. [76]
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. [ cita necesaria ]
La agrupación es un método de reducción de resolución y un componente importante de las redes neuronales convolucionales para la detección de objetos basadas en la arquitectura Fast R-CNN [77] .
Una capa de operación de agrupación máxima de canales (CMP) lleva a cabo la operación MP a lo largo del lado del canal entre las posiciones correspondientes de los mapas de características consecutivos con el fin de eliminar información redundante. El CMP hace que las características importantes se reúnan en menos canales, lo cual es importante para la clasificación de imágenes detallada que necesita características más discriminantes. Mientras tanto, otra ventaja de la operación CMP es reducir el número de canales de mapas de características antes de que se conecte a la primera capa completamente conectada (FC). De manera similar a la operación MP, denotamos los mapas de características de entrada y los mapas de características de salida de una capa CMP como F ∈ R(C×M×N) y C ∈ R(c×M×N), respectivamente, donde C y c son los números de canal de los mapas de características de entrada y salida, M y N son los anchos y la altura de los mapas de características, respectivamente. Tenga en cuenta que la operación CMP solo cambia el número de canal de los mapas de características. El ancho y el alto de los mapas de características no cambian, lo cual es diferente de la operación MP. [78]
ReLU es la abreviatura de unidad lineal rectificada introducida por Kunihiko Fukushima en 1969. [35] [36] ReLU aplica la función de activación no saturada . [66] Elimina eficazmente los valores negativos de un mapa de activación poniéndolos en cero. [79] Introduce no linealidad en la función de decisión y en la red general sin afectar los campos receptivos de las capas convolucionales. En 2011, Xavier Glorot, Antoine Bordes y Yoshua Bengio descubrieron que ReLU permite un mejor entrenamiento de redes más profundas, [80] en comparación con las funciones de activación ampliamente utilizadas antes de 2011.
También se pueden utilizar otras funciones para aumentar la no linealidad, por ejemplo, la tangente hiperbólica de saturación , y la función sigmoidea . A menudo se prefiere ReLU a otras funciones porque entrena la red neuronal varias veces más rápido sin una penalización significativa en la precisión de la generalización . [81]
Después de varias capas convolucionales y de agrupación máxima, la clasificación final se realiza mediante 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 lo tanto, sus activaciones se pueden calcular como una transformación afín , con multiplicación de matrices seguida de un desplazamiento de sesgo ( suma vectorial de un término de sesgo fijo o aprendido).
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 verdaderas (durante el aprendizaje supervisado). Se pueden utilizar varias funciones de pérdida , según la tarea específica.
La función de pérdida Softmax se utiliza para predecir una única clase de K clases mutuamente excluyentes. [nb 3] 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 .
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).
El núcleo es el número de píxeles procesados juntos. Normalmente se expresa como las dimensiones del núcleo, por ejemplo, 2x2 o 3x3.
El relleno es la adición de (normalmente) píxeles con valor 0 en los bordes de una imagen. Esto se hace para que los píxeles del borde no se subvalúen (se pierdan) en la salida porque normalmente participarían en una sola instancia de campo receptivo. El relleno aplicado suele ser uno menos que la dimensión del núcleo correspondiente. Por ejemplo, una capa convolucional que utilice núcleos de 3x3 recibiría un panel de 2 píxeles, es decir, 1 píxel a cada lado de la imagen. [ cita necesaria ]
La zancada 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á desplazado en 2 píxeles con respecto a su predecesor.
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 más altas pueden tener más. Para ecualizar el cálculo en cada capa, el producto de los valores de las características v a con la posición del píxel se mantiene aproximadamente constante en todas las capas. Preservar 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.
La cantidad de mapas de características controla directamente la capacidad y depende de la cantidad de ejemplos disponibles y la complejidad de la tarea.
Los tamaños de filtro comunes que se encuentran en la literatura varían mucho y generalmente se eligen en función del conjunto de datos. Los tamaños de filtro típicos varían de 1x1 a 7x7. Como dos ejemplos famosos, AlexNet utilizó 3x3, 5x5 y 11x11. Inceptionv3 utilizó 1x1, 3x3 y 5x5.
El desafío es encontrar el nivel correcto de granularidad para crear abstracciones en la escala adecuada, dado un conjunto de datos particular, y sin sobreajuste .
Normalmente se utiliza la agrupación máxima , a menudo con una dimensión de 2x2. Esto implica que la entrada se reduce drásticamente , lo que reduce el costo de procesamiento.
Una mayor agrupación reduce la dimensión de la señal y puede provocar una pérdida de información inaceptable . A menudo, las ventanas de agrupación que no se superponen funcionan mejor. [74]
La dilatación implica ignorar los píxeles dentro de un núcleo. Esto reduce potencialmente el procesamiento/memoria sin una pérdida significativa de señal. Una dilatación de 2 en un kernel de 3x3 expande el kernel a 5x5, mientras sigue procesando 9 píxeles (espaciados uniformemente). En consecuencia, la dilatación de 4 expande el núcleo a 7x7. [ cita necesaria ]
Comúnmente se supone que las CNN son invariantes ante los cambios de la entrada. Las capas de convolución o agrupación dentro de una CNN que no tienen un paso mayor que uno son de hecho equivalentes a las traducciones de la entrada. [71] Sin embargo, las capas con un paso mayor que uno ignoran el teorema de muestreo de Nyquist-Shannon y podrían provocar un alias de la señal de entrada [71] Si bien, en principio, las CNN son capaces de implementar filtros anti-aliasing, se ha observado que esto no sucede en la práctica [82] y producen modelos que no son equivalentes a las traducciones. Además, si una CNN utiliza capas completamente conectadas, la equivarianza de traducción no implica invariancia de traducción, ya que las capas completamente conectadas no son invariantes a los cambios de la entrada. [83] [14] Una solución para una invariancia de traducción completa es evitar cualquier muestreo descendente en toda la red y aplicar una agrupación promedio global en la última capa. [71] Además, se han propuesto varias otras soluciones parciales, como suavizado antes de las operaciones de reducción de resolución, [84] redes de transformadores espaciales, [85] aumento de datos , submuestreo combinado con agrupación, [14] y redes neuronales de cápsula . [86]
La precisión del modelo final se basa en una subparte del conjunto de datos separada al principio, a menudo denominada 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 . [87] [88]
La regularización es un proceso de introducción de información adicional para resolver un problema mal planteado o para evitar el sobreajuste . Las CNN utilizan varios tipos de regularización.
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 el abandono , introducido en 2014. [89] En cada etapa de entrenamiento, los nodos individuales se "abandonan" 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 de un nodo abandonado. Solo la red reducida está entrenada con los datos en esa etapa. Luego, los nodos eliminados se reinsertan en la red con sus pesos originales.
En las etapas de formación, 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 muestral de todas las posibles redes abandonadas; Desafortunadamente, esto es inviable para valores grandes de . Sin embargo, podemos encontrar una aproximación utilizando 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 deserción: aunque genera efectivamente redes neuronales y, como tal, permite la combinación de modelos, en el momento de la prueba solo es necesario probar una única red.
Al evitar entrenar todos los nodos con todos los datos de entrenamiento, el abandono reduce el sobreajuste. El método también mejora significativamente la velocidad del 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 [ se necesita aclaración ] que se generalizan mejor a nuevos datos.
DropConnect es la generalización de la deserción en la que cada conexión, en lugar de cada unidad de salida, se puede descartar con probabilidad . Por tanto, cada unidad recibe información de un subconjunto aleatorio de unidades de la capa anterior. [90]
DropConnect es similar a dropout ya que introduce escasez dinámica dentro del modelo, pero se diferencia 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.
Una desventaja importante de Dropout es que no tiene los mismos beneficios para las capas convolucionales, donde las neuronas no están completamente conectadas.
Incluso antes de Dropout, en 2013 se utilizó una técnica llamada agrupación estocástica, [91] las operaciones de agrupación deterministas convencionales fueron reemplazadas por un procedimiento estocástico, donde 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 agrupación. regió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 visión 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, [92] que ofrece un rendimiento excelente en el conjunto de datos MNIST . [92] El uso de agrupación estocástica en un modelo multicapa da un número exponencial de deformaciones ya que las selecciones en las capas superiores son independientes de las inferiores.
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 a menudo no hay suficientes datos disponibles para entrenar, especialmente considerando que una parte debe reservarse para pruebas posteriores, dos enfoques son generar nuevos datos desde cero (si es posible) o alterar los datos existentes para crear otros nuevos. Este último se utiliza desde mediados de los años 1990. [49] 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. [93]
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. Tiene la desventaja de que se detiene el proceso de aprendizaje.
Otra forma sencilla de evitar el sobreajuste es limitar la cantidad de parámetros, generalmente limitando la cantidad de unidades ocultas en cada capa o limitando la profundidad de la red. Para las redes convolucionales, el tamaño del filtro también afecta la cantidad de parámetros. Limitar el número de parámetros restringe directamente el poder predictivo de la red, lo que reduce la complejidad de la función que puede realizar sobre los datos y, por lo tanto, limita la cantidad de sobreajuste. Esto equivale a una " norma cero ".
Una forma simple de regularizador agregado es la caída de 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 por 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 máximo y preferir los vectores de peso difuso. Debido a las interacciones multiplicativas entre pesos y entradas, esto tiene la útil propiedad de alentar a la red a usar todas sus entradas un poco en lugar de algunas de ellas 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 sólo un subconjunto escaso de sus entradas más importantes y se vuelven casi invariantes ante las entradas ruidosas. Se puede combinar la regularización L1 con L2; esto se llama regularización neta elástica .
Otra forma de regularización es imponer un límite superior absoluto en la magnitud del vector de peso para cada neurona y utilizar el descenso de gradiente proyectado para imponer la restricción. En la práctica, esto corresponde a realizar la actualización de parámetros de forma normal y luego aplicar la restricción sujetando el vector de peso de cada neurona para satisfacer . Los valores típicos de son del orden de 3 a 4. Algunos artículos informan mejoras [94] al utilizar esta forma de regularización.
La agrupación pierde las relaciones espaciales precisas entre partes de alto nivel (como la nariz y la boca en una imagen de rostro). Estas relaciones son necesarias para el reconocimiento de la identidad. Superponer los grupos para que cada característica ocurra 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 pueden reconocerla desde un punto de vista diferente. [95]
Una forma común anterior de abordar este problema es entrenar la red con 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 utilizar una jerarquía de marcos de coordenadas y utilizar un grupo de neuronas para representar una conjunción de la forma de la característica y su postura 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. [96]
Por tanto, una forma de representar algo es incrustar el marco de coordenadas en su interior. Esto permite reconocer rasgos grandes utilizando la consistencia de las poses de sus partes (por ejemplo, las posturas de la nariz y la boca hacen una predicción consistente de la pose de toda la cara). Este enfoque garantiza que la entidad de nivel superior (por ejemplo, cara) esté presente cuando la entidad de nivel inferior (por ejemplo, nariz y boca) esté de acuerdo en su predicción de la pose. Los vectores de actividad neuronal que representan la 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 entre puntos de vista. Esto es similar a la forma en que el sistema visual humano impone marcos de coordenadas para representar formas. [97]
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 MNIST . [26] 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 hasta 2011 se lograron en la base de datos MNIST y la base de datos NORB. [23] Posteriormente, una CNN similar llamada AlexNet [98] ganó el ImageNet Large Scale Visual Recognition Challenge 2012.
Cuando se aplicaron al reconocimiento facial , las CNN lograron una gran disminución en la tasa de error. [99] Otro artículo informó una tasa de reconocimiento del 97,6% en "5.600 imágenes fijas de más de 10 sujetos". [19] Las CNN se utilizaron para evaluar la calidad del vídeo de forma objetiva después del entrenamiento manual; el sistema resultante tenía un error cuadrático medio muy bajo . [100]
El desafío de reconocimiento visual a gran escala de ImageNet es un punto de referencia en clasificación y detección de objetos, con millones de imágenes y cientos de clases de objetos. En el ILSVRC 2014, [101] un desafío de reconocimiento visual a gran escala, casi todos los equipos altamente clasificados utilizaron CNN como marco básico. El ganador, GoogLeNet [102] (la base de DeepDream ) aumentó la precisión promedio promedio de la 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. [103] Los mejores algoritmos todavía tienen problemas 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 por los filtros, un fenómeno cada vez más común en las cámaras digitales modernas. Por el contrario, ese tipo de imágenes rara vez preocupan a los humanos. Los humanos, sin embargo, tienden a tener problemas con otras cuestiones. Por ejemplo, no son buenos para clasificar objetos en categorías detalladas, como la raza particular de perro o especie de pájaro, mientras que las redes neuronales convolucionales se encargan de esto. [ cita necesaria ]
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 basó 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. [104]
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 vídeo es más complejo que las imágenes ya que tiene otra dimensión (temporal). Sin embargo, se han explorado algunas extensiones de las CNN al dominio del vídeo. Un enfoque consiste en tratar el espacio y el tiempo como dimensiones equivalentes de la entrada y realizar convoluciones tanto en el tiempo como en el espacio. [105] [106] Otra forma es fusionar las características de dos redes neuronales convolucionales, una para el flujo espacial y otra para el temporal. [107] [108] [109] Las unidades recurrentes de memoria a largo plazo (LSTM) generalmente se incorporan después de la CNN para tener en cuenta las dependencias entre fotogramas o entre clips. [110] [111] Se han introducido esquemas de aprendizaje no supervisados para entrenar características espacio-temporales, basados en máquinas de Boltzmann restringidas con convolución cerrada [112] y análisis de subespacio independiente. [113] Su aplicación se puede ver en el modelo de texto a vídeo . [ cita necesaria ]
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 , [114] recuperación de consultas de búsqueda, [115] modelado de oraciones, [116] clasificación, [117] predicción [118] y otras tareas tradicionales de PNL. [119] 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 un supuesto de secuencia de serie, mientras que las RNN son más adecuadas cuando se requiere el modelado clásico de series de tiempo. [120] [121] [122] [123]
Se utilizó una CNN con convoluciones 1-D en series de tiempo en el dominio de la frecuencia (residuo espectral) mediante un modelo no supervisado para detectar anomalías en el dominio del tiempo. [124]
Las CNN se han utilizado en el descubrimiento de fármacos . Predecir 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 de fármacos basado en estructuras . [125] 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, [126] AtomNet descubre características químicas, como la aromaticidad , los carbonos sp 3 y los enlaces de hidrógeno . Posteriormente, AtomNet se utilizó para predecir nuevas biomoléculas candidatas para múltiples objetivos de enfermedades, en particular tratamientos para el virus del Ébola [127] y la esclerosis múltiple . [128]
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 podría aprender a jugar a las damas mediante 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 número de piezas entre los dos lados. Al final, el programa ( Blondie24 ) fue probado en 165 juegos contra jugadores y se ubicó entre el 0,4% más alto. [129] [130] También obtuvo una victoria contra el programa Chinook en su nivel de juego "experto". [131]
Las CNN se han utilizado en la computadora Go . En diciembre de 2014, Clark y Storkey publicaron un artículo que mostraba que una CNN entrenada mediante aprendizaje supervisado a partir de una base de datos de juegos profesionales humanos podía superar a GNU Go y ganar algunos juegos contra Monte Carlo Tree Search Fuego 1.1 en una fracción del tiempo que le tomó a Fuego. jugar. [132] 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 utilizó 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 árbol Monte Carlo Fuego simulando diez mil playouts (aproximadamente un millón de posiciones) por movimiento. [133]
AlphaGo , el primero en vencer al mejor jugador humano en ese momento, utilizó un par de CNN para elegir movimientos a probar ("red de políticas") y evaluar posiciones ("red de valores") que impulsaban MCTS. [134]
Las redes neuronales recurrentes generalmente se consideran las mejores arquitecturas de redes neuronales para el pronóstico de series temporales (y el modelado de secuencias en general), pero estudios recientes muestran que las redes convolucionales pueden funcionar de manera comparable o incluso mejor. [135] [11] Las convoluciones dilatadas [136] podrían permitir que las redes neuronales convolucionales unidimensionales aprendan de manera efectiva las dependencias de series temporales. [137] Las convoluciones se pueden implementar de manera más eficiente que las soluciones basadas en RNN y no sufren gradientes que desaparecen (o explotan). [138] Las redes convolucionales pueden proporcionar un rendimiento de pronóstico mejorado cuando hay varias series temporales similares de las que aprender. [139] 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 [140] o pronóstico cuantil [141] ).
A medida que los hallazgos arqueológicos, como tablillas de arcilla con escritura cuneiforme , se adquieren cada vez más mediante escáneres 3D , cada vez están más disponibles conjuntos de datos de referencia, incluido HeiCuBeDa [142], que proporciona casi 2000 conjuntos de datos 2D y 3D normalizados preparados con el marco de software GigaMesh . [143] Por lo tanto, las medidas basadas en la curvatura se utilizan junto con redes neuronales geométricas (GNN), por ejemplo, para la clasificación de períodos de aquellas tablillas de arcilla que se encuentran entre los documentos más antiguos de la historia de la humanidad. [144] [145]
Para muchas aplicaciones, los datos de entrenamiento no están muy 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 la red con 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 por transferencia . Además, esta técnica permite aplicar con éxito arquitecturas de redes convolucionales a problemas con conjuntos de entrenamiento pequeños. [146]
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 . [147] Con avances recientes en prominencia visual , atención espacial y atención temporal , las regiones espaciales/instantes temporales más críticos podrían visualizarse para justificar las predicciones de CNN. [148] [149]
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 entradas sensoriales de alta dimensión a través del aprendizaje por refuerzo. [150]
Los resultados preliminares se presentaron en 2014, acompañados de un artículo en febrero de 2015. [151] La investigación describió una aplicación a los juegos Atari 2600 . Otros modelos de aprendizaje por refuerzo profundo lo precedieron. [152]
Las redes convolucionales de creencias profundas (CDBN) tienen una estructura muy similar a las redes neuronales convolucionales y están entrenadas 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 utilizan el 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. Se han obtenido resultados de referencia en conjuntos de datos de imágenes estándar como CIFAR [153] utilizando CDBN. [154]
Las redes neuronales convolucionales representan arquitecturas de aprendizaje profundo que se utilizan actualmente en una amplia gama de aplicaciones, incluida la visión por computadora, el reconocimiento de voz, la detección de malware, el análisis de series temporales en finanzas y muchas otras.
{{cite book}}
: CS1 maint: location missing publisher (link) CS1 maint: multiple names: authors list (link)La noción de convolución o correlación utilizada en los modelos presentados es popular en las disciplinas de ingeniería y se ha aplicado ampliamente al diseño de filtros, sistemas de control, etc.
Las redes neuronales convolucionales son una herramienta prometedora para resolver el problema del reconocimiento de patrones.
Funciones de activación de rectificador y softplus. El segundo es una versión fluida del primero.
{{cite journal}}
: CS1 maint: multiple names: authors list (link){{cite book}}
: CS1 maint: multiple names: authors list (link)