Una red neuronal en cápsula ( CapsNet ) es un sistema de aprendizaje automático que es un tipo de red neuronal artificial (RNA) que se puede utilizar para modelar mejor las relaciones jerárquicas. El enfoque es un intento de imitar más de cerca la organización neuronal biológica. [1]
La idea es añadir estructuras llamadas "cápsulas" a una red neuronal convolucional (CNN) y reutilizar la salida de varias de esas cápsulas para formar representaciones más estables (con respecto a varias perturbaciones) para cápsulas superiores. [2] La salida es un vector que consiste en la probabilidad de una observación y una pose para esa observación . Este vector es similar a lo que se hace, por ejemplo, cuando se hace una clasificación con localización en las CNN.
Entre otras ventajas, las capsnets resuelven el "problema de Picasso" en el reconocimiento de imágenes: imágenes que tienen todas las partes correctas pero que no están en la relación espacial correcta (por ejemplo, en una "cara", las posiciones de la boca y un ojo están intercambiadas). Para el reconocimiento de imágenes, las capsnets aprovechan el hecho de que, si bien los cambios de punto de vista tienen efectos no lineales a nivel de píxel, tienen efectos lineales a nivel de parte/objeto. [3] Esto se puede comparar con invertir la representación de un objeto de múltiples partes. [4]
En 2000, Geoffrey Hinton et al. describieron un sistema de imágenes que combinaba la segmentación y el reconocimiento en un único proceso de inferencia utilizando árboles de análisis sintáctico . Las denominadas redes de credibilidad describían la distribución conjunta sobre las variables latentes y sobre los posibles árboles de análisis sintáctico. Ese sistema resultó útil en la base de datos de dígitos manuscritos del MNIST . [4]
En 2017, Hinton y su equipo introdujeron un mecanismo de enrutamiento dinámico para redes de cápsulas. Se afirmó que el enfoque reducía las tasas de error en MNIST y los tamaños de los conjuntos de entrenamiento. Se afirmó que los resultados eran considerablemente mejores que los de una CNN en dígitos muy superpuestos. [1]
En la idea original de Hinton, una minicolumna representaría y detectaría una entidad multidimensional. [5] [nota 1]
Un invariante es una propiedad de un objeto que no cambia como resultado de alguna transformación. Por ejemplo, el área de un círculo no cambia si el círculo se desplaza hacia la izquierda.
De manera informal, una equivariante es una propiedad que cambia de manera predecible bajo una transformación. Por ejemplo, el centro de un círculo se mueve en la misma cantidad que el círculo cuando se desplaza. [6]
Una propiedad no equivariante es aquella cuyo valor no cambia de manera predecible bajo una transformación. Por ejemplo, transformar un círculo en una elipse significa que su perímetro ya no se puede calcular como π por el diámetro.
En la visión artificial, se espera que la clase de un objeto sea invariable a lo largo de muchas transformaciones. Es decir, un gato sigue siendo un gato si se lo desplaza, se lo pone boca abajo o se lo encoge de tamaño. Sin embargo, muchas otras propiedades son equivariantes. El volumen de un gato cambia cuando se lo escala.
Las propiedades equivalentes, como una relación espacial, se capturan en una pose , datos que describen la traslación , rotación , escala y reflexión de un objeto. La traslación es un cambio de ubicación en una o más dimensiones. La rotación es un cambio de orientación. La escala es un cambio de tamaño. La reflexión es una imagen reflejada. [1]
Las capsnets no supervisadas aprenden una variedad lineal global entre un objeto y su pose como una matriz de pesos. En otras palabras, las capsnets pueden identificar un objeto independientemente de su pose, en lugar de tener que aprender a reconocer el objeto mientras se incluyen sus relaciones espaciales como parte del objeto. En las capsnets, la pose puede incorporar propiedades distintas a las relaciones espaciales, por ejemplo, el color (los gatos pueden ser de varios colores).
Al multiplicar el objeto por la variedad se plantea el objeto (para un objeto, en el espacio). [7]
Las redes de captura rechazan la estrategia de capas de agrupamiento de las redes neuronales convolucionales convencionales, que reduce la cantidad de detalles que se deben procesar en la capa superior. El agrupamiento permite un grado de invariancia traslacional (puede reconocer el mismo objeto en una ubicación ligeramente diferente) y permite representar una mayor cantidad de tipos de características. Los defensores de las redes de captura argumentan que el agrupamiento: [1]
Una cápsula es un conjunto de neuronas que se activan individualmente para varias propiedades de un tipo de objeto, como la posición, el tamaño y el tono. Formalmente, una cápsula es un conjunto de neuronas que producen colectivamente un vector de actividad con un elemento para cada neurona para contener el valor de instanciación de esa neurona (por ejemplo, el tono). [1] Los programas de gráficos utilizan el valor de instanciación para dibujar un objeto. Las capsnets intentan derivarlos de su entrada. La probabilidad de la presencia de la entidad en una entrada específica es la longitud del vector, mientras que la orientación del vector cuantifica las propiedades de la cápsula. [1] [3]
Las neuronas artificiales tradicionalmente generan una activación escalar de valor real que representa vagamente la probabilidad de una observación. Las capsnets reemplazan los detectores de características de salida escalar con cápsulas de salida vectorial y el agrupamiento máximo con enrutamiento por acuerdo. [1]
Como las cápsulas son independientes, cuando varias cápsulas coinciden, la probabilidad de detección correcta es mucho mayor. Un grupo mínimo de dos cápsulas considerando una entidad de seis dimensiones coincidiría con un margen de error del 10 % solo una vez en un millón de ensayos. A medida que aumenta el número de dimensiones, la probabilidad de una coincidencia aleatoria en un grupo más grande con dimensiones más altas disminuye exponencialmente. [1]
Las cápsulas de las capas superiores toman los datos de salida de las cápsulas de las capas inferiores y aceptan aquellos datos cuyas salidas se agrupan. Una agrupación hace que la cápsula superior genere una alta probabilidad de observación de la presencia de una entidad y también genere una pose de alta dimensión (20-50+). [1]
Las cápsulas de nivel superior ignoran los valores atípicos y se concentran en los grupos. Esto es similar a la transformada de Hough , la RHT y la RANSAC del procesamiento de imágenes digitales clásico . [1]
Las salidas de una cápsula (hija) se envían a las cápsulas de la siguiente capa (padre) según la capacidad de la hija para predecir las salidas de los padres. En el transcurso de unas cuantas iteraciones, las salidas de cada padre pueden converger con las predicciones de algunos hijos y divergir de las de otros, lo que significa que ese padre está presente o ausente de la escena. [1]
Para cada padre posible, cada hijo calcula un vector de predicción multiplicando su salida por una matriz de peso (entrenada por retropropagación ). [3] A continuación, la salida del padre se calcula como el producto escalar de una predicción con un coeficiente que representa la probabilidad de que este hijo pertenezca a ese padre. Un hijo cuyas predicciones son relativamente cercanas a la salida resultante aumenta sucesivamente el coeficiente entre ese padre y ese hijo y lo disminuye para los padres con los que coincide menos. Esto aumenta la contribución que ese hijo hace a ese padre, aumentando así el producto escalar de la predicción de la cápsula con la salida del padre. Después de unas pocas iteraciones, los coeficientes conectan fuertemente a un padre con sus hijos más probables, lo que indica que la presencia de los hijos implica la presencia del padre en la escena. [1] Cuantos más hijos cuyas predicciones son cercanas a la salida de un padre, más rápidamente crecen los coeficientes, lo que impulsa la convergencia. La postura del padre (reflejada en su salida) se vuelve progresivamente compatible con la de sus hijos. [3]
Los logits iniciales de los coeficientes son las probabilidades logarítmicas previas de que un hijo pertenezca a un padre. Las probabilidades previas se pueden entrenar de forma discriminativa junto con los pesos. Las probabilidades previas dependen de la ubicación y el tipo de las cápsulas del hijo y del padre, pero no de la entrada actual. En cada iteración, los coeficientes se ajustan mediante un softmax de "enrutamiento" para que sigan sumando 1 (para expresar la probabilidad de que una cápsula dada sea el padre de un hijo dado). El softmax amplifica los valores más grandes y disminuye los valores más pequeños más allá de su proporción del total. De manera similar, la probabilidad de que una característica esté presente en la entrada se exagera mediante una función de "aplastamiento" no lineal que reduce los valores (los más pequeños drásticamente y los más grandes de modo que sean menores que 1). [3]
Este mecanismo de enrutamiento dinámico proporciona la necesaria depreciación de alternativas ("explicación") que se necesita para segmentar objetos superpuestos.
Este enrutamiento aprendido de señales no tiene un equivalente biológico claro. Se pueden encontrar algunas operaciones en las capas corticales, pero no parecen estar relacionadas con esta técnica.
El vector de pose se rota y se traduce mediante una matriz en un vector que predice la salida de la cápsula principal.
Las cápsulas del siguiente nivel superior reciben la suma de las predicciones de todas las cápsulas de la capa inferior, cada una con un coeficiente de acoplamiento.
Los coeficientes de acoplamiento de una cápsula en la capa a todas las cápsulas en la capa suman uno y se definen mediante un " softmax de enrutamiento ". Los logits iniciales son probabilidades logarítmicas previas para el enrutamiento. Esa es la probabilidad previa de que la cápsula en la capa se conecte con la cápsula en la capa . Normalización de los coeficientes de acoplamiento: [1]
Para que este procedimiento sea óptimo, habría que memorizar varios valores y restablecerlos en cada iteración. Es decir, si el vector cambia, entonces los valores memorizados deben actualizarse. No se muestra cómo debe hacerse esto. Tampoco se muestra la memorización del divisor. [1]
Como la longitud de los vectores representa probabilidades, deben estar entre cero y uno, y para ello se aplica una función de aplastamiento: [1]
Un vector aplastado a cero tiene un gradiente que desaparece.
Un enfoque para el enrutamiento es el siguiente: [1]
En la línea 8, la función softmax puede reemplazarse por cualquier tipo de red de ganador absoluto . Biológicamente, esto se parece un poco a las células de araña , pero también pueden participar en el cálculo de coeficientes de acoplamiento (línea 9) o en el cálculo de acuerdos (línea 11).
En la línea 9 se muestra la matriz de ponderación de los coeficientes de acoplamiento y la matriz de predicción oculta. La estructura de las capas I y II es algo similar a la de la corteza cerebral si se supone que las células estrelladas participan en la transposición de los vectores de entrada. No está claro si ambos tipos de células estrelladas tienen la misma función, ya que la capa I tiene células espinosas excitatorias y la capa II tiene células aspinosas inhibidoras. Esto último indica una red muy diferente.
En la línea 10, la función squash se puede reemplazar por otras funciones y topologías de red que conservan la dirección del vector.
El procedimiento realiza iteraciones, generalmente 4 a 5, con el índice para la capa de cápsula de origen o capa primaria, desde donde va el enrutamiento , y la capa de cápsula para la siguiente capa superior.
El aprendizaje es supervisado . [3] La red se entrena minimizando la distancia euclidiana entre la imagen y la salida de una CNN que reconstruye la entrada a partir de la salida de las cápsulas terminales. [1]
La red se entrena de forma discriminatoria, utilizando enrutamiento iterativo por acuerdo. [1]
Los vectores de actividad de todos los padres excepto el correcto están enmascarados. [1]
La longitud del vector de instanciación representa la probabilidad de que la entidad de una cápsula esté presente en la escena. Una cápsula de nivel superior tiene un vector largo si y solo si su entidad asociada está presente. Para permitir múltiples entidades, se calcula una pérdida de margen separada para cada cápsula. La reducción de la pérdida por entidades ausentes detiene el aprendizaje a partir de la reducción de las longitudes de los vectores de actividad para todas las entidades. La pérdida total es la suma de las pérdidas de todas las entidades. [1] En el ejemplo de Hinton, la función de pérdida es: [1]
Este tipo de función de pérdida es común en las ANN. Los parámetros y se establecen de modo que la longitud no alcance el máximo ni se colapse, y . La reducción de la ponderación de los pesos iniciales para las clases ausentes se controla mediante , con como una opción razonable. [1]
Una pérdida de reconstrucción adicional alienta a las entidades a codificar los parámetros de instanciación de sus entradas. El vector de actividad final se utiliza luego para reconstruir la imagen de entrada a través de un decodificador CNN que consta de 3 capas completamente conectadas. La reconstrucción minimiza la suma de las diferencias al cuadrado entre las salidas de las unidades logísticas y las intensidades de los píxeles. Esta pérdida de reconstrucción se reduce en 0,0005 para que no domine la pérdida de margen durante el entrenamiento. [1]
Las primeras capas convolucionales realizan la extracción de características. Para la prueba de imagen MNIST de 28x28 píxeles, 256 núcleos convolucionales iniciales de 9x9 píxeles (que utilizan activación de unidad lineal rectificada (ReLU) y paso 1, que definen campos receptivos de 20x20 ) convierten la entrada de píxeles en activaciones de características 1D e inducen la no linealidad. [1]
La capa de cápsula primaria (la más baja) divide los 256 núcleos en 32 cápsulas de 8 núcleos de 9x9 cada uno (usando el paso 2, definiendo campos receptivos de 6x6). Las activaciones de cápsulas invierten efectivamente el proceso de renderizado de gráficos, pasando de píxeles a características. Cada cápsula usa una única matriz de peso en todos los campos receptivos. Cada cápsula primaria ve todas las salidas de la capa inferior cuyos campos se superponen con el centro del campo en la capa primaria. Cada salida de cápsula primaria (para un campo en particular) es un vector de 8 dimensiones. [1] [3]
Una segunda capa de cápsula de dígitos tiene una cápsula de 16 dimensiones para cada dígito (0-9). El enrutamiento dinámico conecta (solamente) las capas primaria y de cápsula de dígitos. Una matriz de peso [32x6x6] x 10 controla el mapeo entre capas. [1]
Las capsnets son jerárquicas, en el sentido de que cada cápsula de nivel inferior contribuye significativamente a una sola cápsula de nivel superior. [1]
Sin embargo, replicar el conocimiento aprendido sigue siendo valioso. Para lograrlo, las capas inferiores de una capsnet son convolucionales , incluidas las capas de cápsula ocultas. Las capas superiores cubren regiones más grandes, al tiempo que retienen información sobre la posición precisa de cada objeto dentro de la región. Para las cápsulas de nivel bajo, la información de ubicación está "codificada por lugar" según qué cápsula esté activa. Más arriba, cada vez más información posicional está codificada por velocidad en el vector de salida de la cápsula. Este cambio de codificación por lugar a codificación por velocidad, combinado con el hecho de que las cápsulas de nivel superior representan objetos más complejos con más grados de libertad, sugiere que la dimensionalidad de la cápsula aumenta con el nivel. [1]
La visión humana examina una secuencia de puntos focales (dirigidos por movimientos sacádicos ), procesando solo una fracción de la escena en su resolución más alta. Los capsnets se basan en inspiraciones de minicolumnas corticales (también llamadas microcolumnas corticales) en la corteza cerebral . Una minicolumna es una estructura que contiene entre 80 y 120 neuronas, con un diámetro de aproximadamente 28 a 40 μm, que abarca todas las capas de la corteza cerebral. Todas las neuronas en las minicolumnas más grandes tienen el mismo campo receptivo y emiten sus activaciones como potenciales de acción o picos. [1] Las neuronas dentro de la microcolumna reciben entradas comunes, tienen salidas comunes, están interconectadas y pueden constituir una unidad computacional fundamental de la corteza cerebral . [8]
Los capsnets exploran la intuición de que el sistema visual humano crea una estructura similar a un árbol para cada punto focal y coordina estos árboles para reconocer objetos. Sin embargo, con los capsnets cada árbol se "talla" a partir de una red fija (mediante el ajuste de coeficientes) en lugar de ensamblarse sobre la marcha. [1]
Se afirma que las CapsNets tienen cuatro ventajas conceptuales importantes sobre las redes neuronales convolucionales (CNN):
Las redes puramente convolucionales no se pueden generalizar a puntos de vista no aprendidos (excepto la traducción). Para otras transformaciones afines , los detectores de características deben repetirse en una cuadrícula que crece exponencialmente con el número de dimensiones de transformación, o el tamaño del conjunto de entrenamiento etiquetado debe expandirse (exponencialmente) para abarcar esos puntos de vista. Estas explosiones exponenciales las hacen inadecuadas para problemas más grandes. [1]
Las matrices de transformación de Capsnet aprenden la relación espacial (independiente del punto de vista) entre una parte y un todo, lo que permite reconocer este último en función de dichas relaciones. Sin embargo, las Capsnets suponen que cada ubicación muestra como máximo una instancia del objeto de una cápsula. Esta suposición permite que una cápsula utilice una representación distribuida (su vector de actividad) de un objeto para representar ese objeto en esa ubicación. [1]
Las redes de captura utilizan actividades neuronales que varían según el punto de vista. No tienen que normalizar objetos (como en las redes de transformación espacial) e incluso pueden reconocer objetos transformados de forma múltiple. Las redes de captura también pueden procesar objetos segmentados. [1]