Una red neuronal convolucional ( CNN ) es un tipo regularizado de red neuronal de avance que aprende características por sí misma a través de la optimización del filtro (o kernel). Este tipo de red de aprendizaje profundo se ha aplicado para procesar y hacer predicciones a partir de muchos tipos diferentes de datos, incluidos texto, imágenes y audio. [1] Las redes basadas en convolución son el estándar de facto en los enfoques basados en aprendizaje profundo para la visión por computadora y el procesamiento de imágenes, y solo recientemente han sido reemplazadas, en algunos casos, por arquitecturas de aprendizaje profundo más nuevas, como el transformador . Los gradientes que desaparecen y los gradientes explosivos, vistos durante la retropropagación en redes neuronales anteriores, se evitan mediante el uso de pesos regularizados sobre menos conexiones. [2] [3] Por ejemplo, para cada neurona en la capa completamente conectada, se requerirían 10,000 pesos para procesar una imagen de tamaño 100 × 100 píxeles. Sin embargo, al aplicar núcleos de convolución en cascada (o correlación cruzada), [4] [5] solo se requieren 25 neuronas para procesar mosaicos de tamaño 5x5. [6] [7] Las características de las capas superiores se extraen de ventanas de contexto más amplias, en comparación con las características de las capas inferiores.
Algunas aplicaciones de las CNN incluyen:
Las CNN también se conocen como redes neuronales artificiales invariantes al desplazamiento o invariantes al espacio , 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 brindan respuestas equivariantes a la traducción conocidas como mapas de características. [13] [14] 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 submuestreo que aplican a la entrada. [15]
Las redes neuronales de propagación hacia adelante suelen ser redes completamente conectadas, es decir, cada neurona de una capa está conectada a todas las neuronas de la siguiente capa . La "conectividad total" de estas redes las hace propensas a sobreajustar los datos. Las formas típicas de regularización, o de prevención del sobreajuste, incluyen: penalizar parámetros durante el entrenamiento (como la disminución del peso) o recortar la conectividad (conexiones omitidas, abandono, etc.). Los conjuntos de datos robustos también aumentan la probabilidad de que las CNN aprendan los principios generalizados que caracterizan a un conjunto de datos dado en lugar de los sesgos de un conjunto poco poblado. [16]
Las redes convolucionales se inspiraron en procesos biológicos [17] [18] [19] [20] en 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 solo en una región restringida del campo visual conocida como campo receptivo . Los campos receptivos de diferentes neuronas se superponen parcialmente de tal manera 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 aprendizaje automático, mientras que en los algoritmos tradicionales estos filtros se diseñan a mano . Esta independencia del conocimiento previo y de la intervención humana en la extracción de características es una gran ventaja. [ ¿para quién? ]
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 es comúnmente 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í debe notarse qué tan cerca está una red neuronal convolucional de un filtro adaptado . [21]
En una CNN, la entrada es un tensor con forma:
(número de entradas) × (altura 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 forma:
(número de entradas) × (altura del mapa de características) × (ancho del mapa de características) × ( canales del mapa 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. [22] Cada neurona convolucional procesa datos solo para su campo receptivo .
Aunque las redes neuronales de propagación hacia adelante completamente conectadas se pueden utilizar 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. [6] 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 sobre menos parámetros evita los problemas de gradientes evanescentes y gradientes explosivos observados durante la retropropagación en redes neuronales anteriores. [2] [3]
Para acelerar el procesamiento, las capas convolucionales estándar pueden reemplazarse por capas convolucionales separables en profundidad [23] , 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 independientemente 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 grupos pequeños, los tamaños de mosaico como 2 × 2 se utilizan comúnmente. La agrupación global actúa sobre todas las neuronas del mapa de características. [24] [25] Hay dos tipos comunes de agrupación en uso popular: máximo y promedio. La agrupación máxima usa el valor máximo de cada grupo local de neuronas en el mapa de características, [26] [27] 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 perceptiva 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 solo de 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 toma 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, la cantidad de píxeles en el campo receptivo permanece constante, pero el campo está menos poblado a medida que sus dimensiones crecen al combinar 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 atrosa o dilatada [28] [29] expande el tamaño del campo receptivo sin aumentar el número de parámetros intercalando regiones visibles y ciegas. Además, una sola capa convolucional dilatada puede comprender filtros con múltiples relaciones de dilatación, [30] por lo que tiene 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 pesos.
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 solo sesgo y un solo vector de pesos en todos los campos receptivos que comparten ese filtro, a diferencia de que cada campo receptivo tenga su propio sesgo y ponderación vectorial. [31]
Una red neuronal deconvolucional es básicamente lo opuesto a una red neuronal convolucional. Consta de capas deconvolucionales y capas de desagrupamiento. [32]
Una capa deconvolucional es la transposición de una capa convolucional. En concreto, una capa convolucional se puede escribir como una multiplicación por una matriz, y una capa deconvolucional es una multiplicación por la transposición de esa matriz. [33]
Una capa de desagrupamiento expande la capa. La capa de desagrupamiento máximo es la más simple, ya que simplemente copia cada entrada varias veces. Por ejemplo, una capa de desagrupamiento máximo de 2 por 2 es .
Las capas de deconvolución se utilizan en los generadores de imágenes. De manera predeterminada, crean un artefacto periódico de tablero de ajedrez, que se puede corregir mediante la conversión a mayor escala y luego a convolución. [34]
Las CNN se comparan a menudo con la forma en que el cerebro logra el procesamiento de la visión en los organismos vivos . [35]
Los trabajos de Hubel y Wiesel en los años 1950 y 1960 demostraron 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 . [36] 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 requerida ] La corteza en cada hemisferio representa el campo visual contralateral . [ cita requerida ]
Su artículo de 1968 identificó dos tipos básicos de células visuales en el cerebro: [18]
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. [37] [36]
Inspirado por el trabajo de Hubel y Wiesel, en 1969, Kunihiko Fukushima publicó una CNN profunda que utiliza la función de activación ReLU . [38] A diferencia de la mayoría de las redes modernas, esta red utilizaba núcleos diseñados a mano. No se utilizó en su neocognitrón, ya que todos los pesos eran no 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. [39]
El " neocognitrón " fue introducido por Kunihiko Fukushima en 1979. [40] [19] [17] Los núcleos fueron entrenados mediante aprendizaje no supervisado . Se inspiró en el trabajo mencionado anteriormente de Hubel y Wiesel. El neocognitrón introdujo los dos tipos básicos de capas:
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 introdujeron un método llamado agrupamiento máximo donde una unidad de submuestreo calcula el máximo de las activaciones de las unidades en su parche. [41] El agrupamiento máximo se utiliza a menudo en las CNN modernas. [42]
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. [17] Sin embargo, hoy en día, la arquitectura CNN generalmente se entrena a través de retropropagación .
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 desplazamiento, motivada por 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. [7] También señalaron que, como un 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 convolucionar a(t) con b(t) es equivalente a correlacionar a(-t) con b(t)"). [7] Las implementaciones modernas de CNN generalmente hacen correlación y la llaman convolución, por conveniencia, como lo hicieron aquí.
La red neuronal con retardo temporal (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 desplazamiento. [43] Una TDNN es una red neuronal convolucional 1-D donde la convolución se realiza a lo largo del eje de tiempo de los datos. Es la primera CNN que utiliza el reparto de pesos en combinación con un entrenamiento por descenso de gradiente, utilizando retropropagación . [44] Por lo tanto, aunque también utiliza una estructura piramidal como en el neocognitrón, realizó una optimización global de los pesos en lugar de una local. [43]
Las TDNN son redes convolucionales que comparten pesos a lo largo de la dimensión temporal. [45] Permiten que las señales de voz se procesen de manera invariable en el tiempo. En 1990, Hampshire y Waibel introdujeron una variante que realiza una convolución bidimensional. [46] Dado que estas TDNN operaban sobre espectrogramas, el sistema de reconocimiento de fonemas resultante era invariable tanto a los cambios de tiempo como de frecuencia, como en el caso de las imágenes procesadas por un neocognitrón.
Las TDNN mejoraron el rendimiento del reconocimiento de voz a larga distancia. [47]
Denker et al. (1989) diseñaron un sistema CNN 2-D para reconocer números de códigos postales escritos a mano . [48] 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 diseñados a mano laboriosamente. [49]
Siguiendo los avances en el entrenamiento de las CNN 1-D de Waibel et al. (1987), Yann LeCun et al. (1989) [49] utilizaron la retropropagación para aprender los coeficientes del núcleo de convolución directamente de imágenes de números escritos a mano. De este modo, el aprendizaje era completamente automático, funcionaba mejor que el diseño de coeficientes manual y era adecuado para una gama más amplia de problemas de reconocimiento de imágenes y tipos de imágenes. Wei Zhang et al. (1988) [13] [14] utilizaron la retropropagación para entrenar los núcleos de convolución de una CNN para el reconocimiento de alfabetos. El modelo se denominó red neuronal de reconocimiento de patrones invariante al cambio antes de que se acuñara el nombre CNN a principios de los años 1990. Wei Zhang et al. también aplicaron la misma CNN sin la última capa completamente conectada para la segmentación de objetos de imágenes médicas (1991) [50] y la detección de cáncer de mama en mamografías (1994). [51]
Este enfoque se convirtió en la base de la visión artificial moderna .
En 1990, Yamaguchi et al. introdujeron el concepto de agrupamiento máximo, una operación de filtrado fija que calcula y propaga el valor máximo de una región dada. Lo hicieron combinando TDNN con agrupamiento máximo para lograr un sistema de reconocimiento de palabras aislado e independiente del hablante. [26] 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 agrupamiento máximo y las salidas de las capas de agrupamiento se pasaron luego a 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, [52] clasifica números escritos a mano en cheques ( en inglés británico : cheques ) digitalizados en imágenes de 32x32 píxeles. La capacidad de procesar imágenes de mayor resolución requiere redes neuronales convolucionales más grandes y con más capas, por lo que esta técnica está limitada por la disponibilidad de recursos informáticos.
Era superior a otros sistemas de lectura de cheques de cortesía comerciales (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. [53]
En 1988, Wei Zhang et al. propusieron una red neuronal invariante al cambio para el reconocimiento de caracteres de imágenes. [13] [14] Es un Neocognitrón modificado que conserva solo las interconexiones convolucionales entre las capas de características de la imagen y la última capa completamente conectada. El modelo se entrenó con retropropagación. El algoritmo de entrenamiento se mejoró aún más en 1991 [54] 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) [50] y la detección automática de cáncer de mama en mamografías (1994) . [51]
En 1988 [55] se propuso un diseño diferente basado en la convolución para su aplicación en la descomposición de señales convolucionadas de electromiografía unidimensional mediante deconvolución. Este diseño se modificó en 1989 para dar lugar a otros diseños basados en la deconvolución. [56] [57]
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 gráfico (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 . [58] En 2005, otro artículo también destacó el valor de GPGPU para el aprendizaje automático . [59]
La primera implementación de una CNN en GPU fue descrita en 2006 por K. Chellapilla et al. Su implementación fue cuatro veces más rápida que una implementación equivalente en CPU. [60] En el mismo período, las GPU también se utilizaron para el entrenamiento no supervisado de redes de creencias profundas . [61] [62] [63] [64]
En 2010, Dan Ciresan et al. de IDSIA entrenaron redes de propagación hacia adelante profundas en GPU. [65] En 2011, extendieron esto a las CNN, acelerando un 60% en comparación con el entrenamiento con CPU. [24] En 2011, la red ganó un concurso de reconocimiento de imágenes donde lograron un rendimiento sobrehumano por primera vez. [66] Luego ganaron más competencias y lograron el estado del arte en varios puntos de referencia. [67] [42] [27]
Posteriormente, AlexNet , una CNN similar basada en GPU de Alex Krizhevsky et al., ganó el ImageNet Large Scale Visual Recognition Challenge 2012. [68] Fue un evento catalizador temprano para el auge de la IA .
En comparación con el entrenamiento de CNN mediante GPU , no se le prestó mucha atención a la CPU. (Viebke et al 2019) paraleliza CNN mediante paralelismo a nivel de subproceso y SIMD que está disponible en Intel Xeon Phi . [69] [70]
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 provocó 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 = 3072 pesos. Sin embargo, una imagen de 200×200 daría lugar a neuronas con 200*200*3 = 120 000 pesos.
Además, esta arquitectura de red no tiene en cuenta la estructura espacial de los datos, ya que trata los píxeles de entrada que están muy separados de la misma manera que los píxeles que están cerca. Esto ignora la localidad de referencia en los datos con una topología de cuadrícula (como las imágenes), tanto desde el punto de vista computacional como semántico. 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 los perceptrones multicapa, diseñados para emular el comportamiento de una corteza visual . Estos modelos mitigan los desafíos que plantea 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:
En conjunto, estas propiedades permiten que las CNN logren una mejor generalización de los problemas de visión . La distribución de pesos 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 la clase) a través de una función diferenciable. Se utilizan habitualmente algunos tipos distintos de capas, que se analizan con más detalle a continuación.
La capa convolucional es el componente básico de una CNN. Los parámetros de la capa consisten en un conjunto de filtros que se pueden aprender (o núcleos ), que tienen un campo receptivo pequeño, pero se extienden a través de toda la profundidad del volumen de entrada. Durante el paso hacia adelante, cada filtro se convoluciona a lo largo del ancho y la altura del volumen de entrada, calculando el producto escalar entre las entradas del filtro y la entrada, lo que produce 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. [73] [nb 1]
Al apilar los mapas de activación de todos los filtros a lo largo de la dimensión de profundidad se forma el volumen de salida completo de la capa de convolución. De esta forma, cada entrada del volumen de salida también se puede interpretar como una salida de una neurona que observa una pequeña región en la entrada. Cada entrada de 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 alta relación de máscara y una capa de normalización de respuesta global. [ cita requerida ]
Cuando se trabaja con entradas de alta dimensión, como imágenes, no resulta práctico conectar neuronas a todas las neuronas del volumen anterior porque una arquitectura de red de este tipo 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 dispersa 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 largo del ancho y la altura), pero siempre se extienden a lo largo de toda la profundidad del volumen de entrada. Una arquitectura de este tipo garantiza que los filtros aprendidos ( en inglés británico : learned ) produzcan la respuesta más fuerte a un patrón de entrada local en el espacio.
Tres hiperparámetros controlan el tamaño del volumen de salida de la capa convolucional: la profundidad, el paso y el tamaño del 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 kernel de las neuronas de la capa convolucional, el paso y la cantidad de relleno de ceros en el borde. La cantidad de neuronas que "caben" en un volumen determinado es entonces:
Si este número no es un entero , entonces los pasos son incorrectos y las neuronas no se pueden colocar en mosaico para que encajen en el volumen de entrada de manera simétrica . En general, establecer el relleno en cero cuando el paso es garantiza 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.
En las capas convolucionales se utiliza un esquema de compartición de parámetros para controlar la cantidad 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 designar una sola porción bidimensional de profundidad como porción de profundidad , las neuronas en cada porción de profundidad están limitadas a usar los mismos pesos y sesgo.
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. [nb 2] 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 la traducción de la arquitectura CNN. [15]
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 una estructura centrada específica; para la 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 de los ojos o del cabello en diferentes partes de la imagen. En ese caso, es común relajar el esquema de compartir parámetros y, en su lugar, simplemente llamar a la capa una "capa conectada localmente".
Otro concepto importante de las CNN es el agrupamiento, que se utiliza como una forma de submuestreo no lineal . El agrupamiento proporciona submuestreo porque reduce las dimensiones espaciales (altura y ancho) de los mapas de características de entrada mientras retiene la información más importante. Hay varias funciones no lineales para implementar el agrupamiento, donde el agrupamiento máximo y el agrupamiento promedio son los más comunes. El agrupamiento agrega información de pequeñas regiones de la entrada creando particiones del mapa de características de entrada, generalmente usando una ventana de tamaño fijo (como 2x2) y aplicando un paso (a menudo 2) para mover la ventana a lo largo de la entrada. [75] Nótese que sin usar un paso mayor que 1, el agrupamiento no realizaría el submuestreo, ya que simplemente movería la ventana de agrupamiento a lo largo de la entrada un paso a la vez, sin reducir el tamaño del mapa de características. En otras palabras, el paso es lo que realmente causa el submuestreo al determinar cuánto se mueve la ventana de agrupamiento sobre la entrada.
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 agrupamiento en redes neuronales convolucionales. La capa de agrupamiento 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 computación en la red, y por lo tanto también para controlar el sobreajuste . Esto se conoce como submuestreo. Es común insertar periódicamente una capa de agrupamiento entre capas convolucionales sucesivas (cada una típicamente seguida por una función de activación, como una capa ReLU) en una arquitectura CNN. [73] : 460–461 Si bien las capas de agrupamiento contribuyen a la invariancia de traducción local, no proporcionan invariancia de traducción global en una CNN, a menos que se use una forma de agrupamiento global. [15] [72] La capa de agrupamiento comúnmente opera independientemente en cada profundidad, o porción, de la entrada y la redimensiona espacialmente. Una forma muy común de agrupamiento máximo es una capa con filtros de tamaño 2×2, aplicados con un paso de 2, que submuestrea cada porción de profundidad en la entrada por 2 a lo largo del ancho y la altura, descartando el 75 % de las activaciones: En este caso, cada operación máxima es sobre 4 números. La dimensión de profundidad permanece sin cambios (esto también es válido para otras formas de agrupamiento).
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 de norma ℓ 2. La agrupación promedio se utilizó a menudo históricamente, pero recientemente ha caído en desuso en comparación con la agrupación máxima, que generalmente funciona mejor en la práctica. [76]
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 [77] o a descartar por completo las capas de agrupamiento. [78]
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 la información redundante. La CMP hace que las características significativas se reúnan en menos canales, lo que es importante para la clasificación de imágenes de grano fino que necesita características más discriminantes. Mientras tanto, otra ventaja de la operación CMP es hacer que el número de canales de los mapas de características sea más pequeño 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 la altura de los mapas de características no se modifican, lo que es diferente de la operación MP. [79]
Consulte [80] [81] para obtener revisiones de los métodos de agrupamiento.
ReLU es la abreviatura de unidad lineal rectificada . Fue propuesta por Alston Householder en 1941, [82] y utilizada en CNN por Kunihiko Fukushima en 1969. [38] ReLU aplica la función de activación no saturada . [68] Elimina eficazmente los valores negativos de un mapa de activación estableciéndolos en cero. [83] Introduce no linealidad en la función de decisión y en la red general sin afectar los campos receptivos de las capas de convolución. En 2011, Xavier Glorot, Antoine Bordes y Yoshua Bengio descubrieron que ReLU permite un mejor entrenamiento de redes más profundas, [84] 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 saturada , y la función sigmoidea . ReLU suele preferirse a otras funciones porque entrena la red neuronal varias veces más rápido sin una penalización significativa de la precisión de generalización . [85]
Después de varias capas de agrupación máxima y convolucional, 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 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 aprendido o fijo).
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 reales (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 sola 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 realizar regresión a etiquetas de valor real .
Los hiperparámetros son diversas configuraciones que se utilizan para controlar el proceso de aprendizaje. Las CNN utilizan más hiperparámetros que un perceptrón multicapa (MLP) estándar.
El núcleo es la cantidad de píxeles procesados en conjunto. Normalmente se expresa como las dimensiones del núcleo, por ejemplo, 2x2 o 3x3.
El relleno es la adición de píxeles de valor (normalmente) 0 en los bordes de una imagen. Esto se hace para que los píxeles del borde no se subestimen (se pierdan) en la salida porque normalmente participarían en una única instancia de campo receptivo. El relleno aplicado es normalmente uno menos que la dimensión del núcleo correspondiente. Por ejemplo, una capa convolucional que utilice núcleos de 3x3 recibiría un relleno de 2 píxeles, es decir, 1 píxel en cada lado de la imagen. [ cita requerida ]
El paso es la cantidad de píxeles que se mueve la ventana de análisis en cada iteración. Un paso de 2 significa que cada núcleo está desplazado 2 píxeles respecto de 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 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. Para preservar más información sobre la entrada, sería necesario mantener la cantidad total de activaciones (cantidad de mapas de características multiplicada por la cantidad 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 de la complejidad de la tarea.
Los tamaños de filtro habituales que se encuentran en la literatura varían mucho y, por lo general, 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 adecuado de granularidad para crear abstracciones en la escala apropiada, dado un conjunto de datos particular y sin sobreajuste .
Generalmente se utiliza el agrupamiento máximo , 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 dar como resultado una pérdida de información inaceptable . A menudo, las ventanas de agrupación que no se superponen funcionan mejor. [76]
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 núcleo de 3x3 expande el núcleo a 5x5, mientras que aún procesa 9 píxeles (espaciados uniformemente). En consecuencia, una dilatación de 4 expande el núcleo a 7x7. [ cita requerida ]
Se asume comúnmente que las CNN son invariantes a los cambios de la entrada. Las capas de convolución o agrupamiento dentro de una CNN que no tienen un paso mayor que uno son de hecho equivariantes a las traslaciones de la entrada. [72] Sin embargo, las capas con un paso mayor que uno ignoran el teorema de muestreo de Nyquist-Shannon y podrían conducir a aliasing de la señal de entrada [72] Si bien, en principio, las CNN son capaces de implementar filtros anti-aliasing, se ha observado que esto no sucede en la práctica [86] y producen modelos que no son equivariantes a las traslaciones. Además, si una CNN hace uso de capas completamente conectadas, la equivariancia de la traslación no implica invariancia de la traslación, ya que las capas completamente conectadas no son invariantes a los cambios de la entrada. [87] [15] Una solución para la invariancia de la traslación completa es evitar cualquier submuestreo en toda la red y aplicar agrupamiento promedio global en la última capa. [72] Además, se han propuesto varias otras soluciones parciales, como el anti-aliasing antes de las operaciones de submuestreo, [88] redes de transformadores espaciales, [89] aumento de datos , submuestreo combinado con agrupamiento, [15] y redes neuronales de cápsula . [90]
La precisión del modelo final se basa en una subparte del conjunto de datos que se separa al principio, a menudo denominada conjunto de prueba. En otras ocasiones, se aplican métodos como la validación cruzada de k -fold. Otras estrategias incluyen el uso de predicción conforme . [91] [92]
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.
Debido a que una capa completamente conectada ocupa la mayoría de los parámetros, es propensa al sobreajuste. Un método para reducir el sobreajuste es el dropout , introducido en 2014. [93] En cada etapa de entrenamiento, los nodos individuales son "eliminados" de la red (ignorados) con probabilidad o mantenidos con probabilidad , de modo que queda una red reducida; los bordes entrantes y salientes de un nodo eliminado también se eliminan. Solo la red reducida se entrena en los datos en esa etapa. Los nodos eliminados se reinsertan luego en la red con sus pesos originales.
En las etapas de entrenamiento, normalmente es 0,5; para los nodos de entrada, normalmente es mucho mayor porque la información se pierde directamente cuando se ignoran los nodos de entrada.
En el momento de la prueba, una vez finalizado el entrenamiento, lo ideal sería encontrar un promedio de muestra de todas las posibles redes abandonadas; desafortunadamente, esto no es factible 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 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 única red.
Al evitar entrenar todos los nodos con todos los datos de entrenamiento, la deserción disminuye 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 [ aclaración necesaria ] que se generalizan mejor a nuevos datos.
DropConnect es la generalización de dropout en la que cada conexión, en lugar de cada unidad de salida, se puede descartar con una probabilidad . De este modo, cada unidad recibe una entrada de un subconjunto aleatorio de unidades en la capa anterior. [94]
DropConnect es similar a Dropout, ya que introduce escasez dinámica dentro del modelo, pero se diferencia en que la escasez se encuentra 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, una técnica llamada agrupación estocástica [95] , 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 elige 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 visión alternativa del agrupamiento estocástico es que es equivalente al agrupamiento máximo 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, [96] que ofrece un excelente rendimiento en el conjunto de datos MNIST . [96] El uso del agrupamiento estocástico en un modelo multicapa proporciona un número exponencial de deformaciones, ya que las selecciones en las capas superiores son independientes de las inferiores.
Dado 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. Dado que a menudo no hay suficientes datos disponibles para entrenar, especialmente si se considera que una parte debe reservarse para pruebas posteriores, existen dos enfoques: generar nuevos datos desde cero (si es posible) o perturbar los datos existentes para crear otros nuevos. Este último enfoque se utiliza desde mediados de los años 1990. [52] Por ejemplo, las imágenes de entrada se pueden recortar, rotar o reescalar para crear nuevos ejemplos con las mismas etiquetas que el conjunto de entrenamiento original. [97]
Uno de los métodos más simples para evitar el sobreajuste de una red es simplemente detener el entrenamiento antes de que el sobreajuste haya tenido la oportunidad de ocurrir. Esto 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, normalmente limitando la cantidad de unidades ocultas en cada capa o limitando la profundidad de la red. En el caso de las redes convolucionales, el tamaño del filtro también afecta la cantidad de parámetros. Limitar la cantidad 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 es equivalente a una " norma cero ".
Una forma sencilla de regularizador añadido es la descomposición de pesos, que simplemente añade un error adicional, proporcional a la suma de pesos ( norma L1 ) o magnitud al cuadrado ( norma L2 ) del vector de pesos, al error en cada nodo. El nivel de complejidad aceptable del modelo se puede reducir aumentando la constante de proporcionalidad (hiperparámetro 'alfa'), lo que aumenta la penalización para vectores de pesos 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 con picos y preferir los vectores de peso difusos. Debido a las interacciones multiplicativas entre pesos y entradas, esto tiene la propiedad útil de alentar a la red a usar un poco todas sus entradas en lugar de usar mucho algunas de ellas.
La regularización L1 también es común. Hace que los vectores de peso sean dispersos durante la optimización. En otras palabras, las neuronas con regularización L1 terminan utilizando solo un subconjunto disperso 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 red elástica .
Otra forma de regularización es imponer un límite superior absoluto a 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 manera normal y luego imponer la restricción fijando el vector de peso de cada neurona para satisfacer . Los valores típicos de son del orden de 3-4. Algunos artículos informan mejoras [98] al utilizar esta forma de regularización.
La agrupación hace que se pierdan las relaciones espaciales precisas entre las partes de alto nivel (como la nariz y la boca en una imagen de un rostro). Estas relaciones son necesarias para el reconocimiento de la identidad. La superposición de los conjuntos de modo que cada característica aparezca en varios conjuntos 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, las personas son muy buenas en la extrapolación; después de ver una nueva forma una vez, pueden reconocerla desde un punto de vista diferente. [99]
Una forma común de abordar este problema es entrenar la red con datos transformados en diferentes orientaciones, escalas, iluminación, etc., de modo que la red pueda hacer frente a estas variaciones. Esto requiere un gran esfuerzo computacional 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 relativa a la retina . La postura 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. [100]
Por lo tanto, una forma de representar algo es incrustar el marco de coordenadas dentro de él. Esto permite que se reconozcan grandes características utilizando la consistencia de las poses de sus partes (por ejemplo, las poses 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, la cara) esté presente cuando el nivel inferior (por ejemplo, la nariz y la boca) concuerde 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 las entidades visuales y generalice a través de los puntos de vista. Esto es similar a la forma en que el sistema visual humano impone marcos de coordenadas para representar formas. [101]
Las CNN se utilizan a menudo en sistemas de reconocimiento de imágenes . En 2012, se informó de una tasa de error del 0,23 % en la base de datos MNIST . [27] Otro artículo sobre el uso de CNN para la clasificación de imágenes informó de que el proceso de aprendizaje era "sorprendentemente rápido"; en el mismo artículo, los mejores resultados publicados hasta 2011 se consiguieron en la base de datos MNIST y en la base de datos NORB. [24] Posteriormente, una CNN similar llamada AlexNet [102] 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. [103] Otro artículo informó una tasa de reconocimiento del 97,6% en "5600 imágenes fijas de más de 10 sujetos". [20] Las CNN se utilizaron para evaluar la calidad del video de manera objetiva después del entrenamiento manual; el sistema resultante tuvo un error cuadrático medio muy bajo . [104]
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, [105] un desafío de reconocimiento visual a gran escala, casi todos los equipos mejor clasificados utilizaron CNN como su marco básico. El ganador GoogLeNet [106] (la base de DeepDream ) aumentó la precisión 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. [107] Los mejores algoritmos aún tienen dificultades con objetos 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 imágenes que se han distorsionado 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. Sin embargo, los humanos tienden a tener problemas con otras cuestiones. Por ejemplo, no son buenos para clasificar objetos en categorías de grano fino, como la raza particular de perro o especie de ave, mientras que las redes neuronales convolucionales se encargan de esto. [ cita requerida ]
En 2015, una CNN de múltiples capas demostró la capacidad de detectar rostros desde una amplia gama de ángulos, incluso boca abajo, incluso cuando estaban parcialmente ocluidos, con un rendimiento competitivo. La red se entrenó con 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 a lo largo de 50.000 iteraciones. [108]
En comparación con los dominios de datos de imágenes, hay relativamente poco trabajo sobre la aplicación de las CNN a la clasificación de videos. El video 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 en el dominio del 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. [109] [110] Otra forma es fusionar las características de dos redes neuronales convolucionales, una para el flujo espacial y otra para el temporal. [111] [112] [113] Las unidades recurrentes de memoria a corto plazo larga (LSTM) generalmente se incorporan después de la CNN para tener en cuenta las dependencias entre cuadros o entre clips. [114] [115] Se han introducido esquemas de aprendizaje no supervisado para entrenar características espaciotemporales, basados en máquinas de Boltzmann restringidas con compuerta convolucional [116] y análisis de subespacio independiente. [117] Su aplicación se puede ver en el modelo de texto a video . [ cita requerida ]
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 , [118] recuperación de consultas de búsqueda, [119] modelado de oraciones, [120] clasificación, [121] predicción [122] y otras tareas tradicionales de PNL. [123] En comparación con los métodos de procesamiento del lenguaje tradicionales, como las redes neuronales recurrentes , las CNN pueden representar diferentes realidades contextuales del lenguaje que no dependen de un supuesto de serie-secuencia, mientras que las RNN son más adecuadas cuando se requiere un modelado clásico de series de tiempo. [124] [125] [126] [127]
Se utilizó una CNN con convoluciones 1-D en series de tiempo en el dominio de frecuencia (residuo espectral) mediante un modelo no supervisado para detectar anomalías en el dominio del tiempo. [128]
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 posibles tratamientos. En 2015, Atomwise presentó AtomNet, la primera red neuronal de aprendizaje profundo para el diseño de fármacos basado en la estructura . [129] 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, [130] AtomNet descubre características químicas, como la aromaticidad , los carbonos sp3 y los enlaces de hidrógeno . Posteriormente, AtomNet se utilizó para predecir nuevas biomoléculas candidatas para múltiples objetivos de enfermedades, en particular los tratamientos para el virus del Ébola [131] y la esclerosis múltiple . [132]
Las redes neuronales convolucionales se han utilizado en el juego de damas . Entre 1999 y 2001, Fogel y Chellapilla publicaron artículos que mostraban cómo una red neuronal convolucional podía aprender a jugar a las damas mediante la coevolución. El proceso de aprendizaje no utilizó partidas profesionales humanas anteriores, sino que se centró en un conjunto mínimo de información contenida en el tablero de damas: la ubicación y el tipo de piezas, y la diferencia en el número de piezas entre los dos lados. Finalmente, el programa ( Blondie24 ) se probó en 165 partidas contra jugadores y se clasificó en el 0,4 % más alto. [133] [134] También obtuvo una victoria contra el programa Chinook en su nivel de juego "experto". [135]
Las CNN se han utilizado en el Go por ordenador . 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 Fuego 1.1, un buscador de árboles de Monte Carlo, en una fracción del tiempo que le tomó a Fuego jugar. [136] 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 partidas de Go, sin ninguna búsqueda, superó al programa de búsqueda tradicional GNU Go en el 97% de las partidas e igualó el rendimiento del programa de búsqueda de árboles de Monte Carlo Fuego, simulando diez mil jugadas (alrededor de un millón de posiciones) por movimiento. [137]
AlphaGo , el primero en vencer al mejor jugador humano en ese momento, utilizó un par de CNN para elegir movimientos a intentar ("red de políticas") y evaluar posiciones ("red de valores") que impulsaban MCTS. [138]
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 tener un rendimiento comparable o incluso mejor. [139] [12] Las convoluciones dilatadas [140] podrían permitir que las redes neuronales convolucionales unidimensionales aprendan de manera efectiva las dependencias de las series de tiempo. [141] 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). [142] Las redes convolucionales pueden proporcionar un rendimiento de pronóstico mejorado cuando hay múltiples series de tiempo similares de las que aprender. [143] 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 [144] o pronóstico cuantil [145] ).
A medida que los hallazgos arqueológicos, como tablillas de arcilla con escritura cuneiforme , se adquieren cada vez más mediante escáneres 3D , se están volviendo disponibles conjuntos de datos de referencia, incluido HeiCuBeDa [146] que proporciona casi 2000 conjuntos de datos 2-D y 3-D normalizados preparados con el marco de software GigaMesh . [147] Por lo tanto, las medidas basadas en la curvatura se utilizan junto con redes neuronales geométricas (GNN), por ejemplo, para la clasificación del período de aquellas tablillas de arcilla que se encuentran entre los documentos más antiguos de la historia humana. [148] [149]
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 que las arquitecturas de redes convolucionales se apliquen con éxito a problemas con conjuntos de entrenamiento pequeños. [150]
El entrenamiento y la predicción de extremo a extremo son prácticas comunes en la visión artificial . Sin embargo, se requieren explicaciones interpretables por humanos para sistemas críticos como los automóviles autónomos . [151] Con los 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. [152] [153]
Una red Q profunda (DQN) es un tipo de modelo de aprendizaje profundo que combina una red neuronal profunda con aprendizaje Q , una forma de aprendizaje de refuerzo . A diferencia de los agentes de aprendizaje de refuerzo anteriores, las DQN que utilizan CNN pueden aprender directamente de las entradas sensoriales de alta dimensión a través del aprendizaje de refuerzo. [154]
Los resultados preliminares se presentaron en 2014, con un artículo adjunto en febrero de 2015. [155] La investigación describió una aplicación para los juegos de Atari 2600. Otros modelos de aprendizaje de refuerzo profundo la precedieron. [156]
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 preentrenamiento como las 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 [157] utilizando CDBN. [158]
La arquitectura de retroalimentación de las redes neuronales convolucionales se extendió en la pirámide de abstracción neuronal [159] 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 salidas 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.
Las redes neuronales convolucionales representan arquitecturas de aprendizaje profundo que se utilizan actualmente en una amplia gama de aplicaciones, incluidas la visión artificial, 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. La segunda es una versión suave de la primera.
{{cite journal}}
: CS1 maint: multiple names: authors list (link){{cite book}}
: CS1 maint: multiple names: authors list (link)