Redes neuronales de cápsula: conjunto de capas neuronales anidadas



Capsule Networks: este blog habla sobre las limitaciones de las redes neuronales convolucionales y cómo las redes neuronales cápsula resuelven esas limitaciones.

Redes cápsula:

¿Qué son las redes cápsula? Básicamente, es una red de un conjunto de capas neuronales anidadas.

También te recomendaría que revises los blogs a continuación:





Supongo que ustedes conocen Convolutional Neural Networks (CNN). Aquí, les daré una pequeña introducción sobre el mismo, para poder discutir las limitaciones de las CNN.

También puede consultar el video a continuación sobre la red neuronal convolucional.



Redes neuronales convolucionales (CNN)

Las redes neuronales convolucionales son básicamente una pila de varias capas de neuronas artificiales, que se utilizan para la visión por computadora. A continuación, he mencionado esas capas:

Red neuronal convolucional - Red neuronal cápsula - Edureka

Capa convolucional: Cuando usamos redes neuronales Feedforward (perceptrón multicapa) para la clasificación de imágenes, existen muchos desafíos. El desafío más frustrante es que introduce muchos parámetros, considere el video tutorial en CNN.



Para superar este desafío Capa de convolución Fue presentado. Se supone que los píxeles que están espacialmente más juntos 'cooperarán' en la formación de una característica particular de interés mucho más que los que se encuentran en las esquinas opuestas de la imagen. Además, si una característica en particular (más pequeña) se considera de gran importancia al definir la etiqueta de una imagen, será igualmente importante si esta característica se encuentra en cualquier lugar de la imagen, independientemente de la ubicación.

Capa ReLU: La función de transformación de unidad lineal rectificada (ReLU) solo activa un nodo si la entrada está por encima de una cierta cantidad, mientras que la entrada está por debajo de cero, la salida es cero, pero cuando la entrada se eleva por encima de un cierto umbral, tiene una relación lineal con la variable dependiente.

  • En esta capa, eliminamos todos los valores negativos de las imágenes filtradas y lo reemplazamos con cero.
  • Esto se hace para evitar que los valores se sumen a cero

Capa de agrupación: Se utiliza para realizar una reducción de resolución, que consume fragmentos pequeños y (normalmente) inconexos de la imagen y los agrega en un solo valor. Hay varios esquemas posibles para la agregación, siendo el más popular Max-Pooling , donde se toma el valor máximo de píxeles dentro de cada fragmento. Hace que la red sea invariante a pequeñas transformaciones, distorsiones y traslaciones en la imagen de entrada (una pequeña distorsión en la entrada no cambiará la salida de Pooling, ya que tomamos el valor máximo / promedio en un vecindario local).

Capa completamente conectada: Esta capa calculará los puntajes de la clase, donde cada uno de los números corresponde a un puntaje de la clase. Al igual que con las redes neuronales ordinarias y como su nombre lo indica, cada neurona de esta capa estará conectada a todas las neuronas del volumen anterior. En pocas palabras, realiza la clasificación final.

De esta manera, ConvNets transforma la imagen original capa por capa desde los valores de píxeles originales hasta las puntuaciones finales de la clase.

Esta fue una introducción muy breve a las redes neuronales convolucionales. Aún así, le recomendaría que eche un vistazo al video de CNN que he incluido en esta publicación.

explicar la arquitectura mvc en java con un ejemplo

En este blog de Capsule Networks, ahora discutiré algunas limitaciones de las redes neuronales convolucionales.

Limitaciones de las redes neuronales convolucionales:

Bueno, déjame explicarte esto con una analogía.

Supongamos que hay un ser humano cuyos ojos pueden detectar las características de varias imágenes. Consideremos el rostro de un humano como ejemplo. Entonces, este tipo desafortunado puede identificar varias características como ojos, nariz, etc. pero es incapaz de identificar las relaciones espaciales entre las características (perspectiva, tamaño, orientación). Por ejemplo, la siguiente imagen puede engañar a ese tipo al clasificarla como un buen boceto de un rostro humano.

Este es también el problema de las redes neuronales convolucionales. CNN es bueno para detectar características, pero activará incorrectamente la neurona para la detección de rostros. Esto se debe a que es menos eficaz para explorar las relaciones espaciales entre características.

Un modelo simple de CNN puede extraer correctamente las características de la nariz, los ojos y la boca, pero activará incorrectamente la neurona para la detección de rostros. Sin darse cuenta de la falta de coincidencia en la orientación espacial y el tamaño, la activación para la detección de rostros será demasiado alta.

Bueno, esta limitación se debe a la capa de agrupación máxima.

La agrupación máxima en una CNN maneja la variación traslacional. Incluso una característica se mueve ligeramente, si todavía está dentro de la ventana de agrupación, aún se puede detectar. Sin embargo, este enfoque mantiene solo la característica máxima (la más dominante) y desecha las demás.

Por lo tanto, la imagen de la cara que se muestra arriba se clasificará como una cara normal. La capa de agrupación también agrega este tipo de invariancia.

Esta nunca fue la intención de la capa de agrupación. Lo que se suponía que debía hacer la agrupación era introducir invariancias posicionales, orientacionales y proporcionales.

En realidad, esta capa de agrupación agrega todo tipo de invariancia posicional. Como también puede ver en el diagrama anterior, conduce al dilema de detectar correctamente la cara.

Veamos cuál es la solución propuesta por Geoffrey Hinton .

¿Cómo resolver este problema?

Ahora, imaginamos que cada neurona contiene la probabilidad y las propiedades de las características. Por ejemplo, genera un vector que contiene [probabilidad, orientación, tamaño]. Con esta información espacial, podemos detectar la incoherencia en la orientación y el tamaño entre las características de la nariz, los ojos y los oídos y, por lo tanto, generar una activación mucho menor para la detección de rostros.

En el documento publicado por Geoffrey Hinton , estos tipos de neuronas se denominan cápsulas. Estas cápsulas generan un vector en lugar de un único valor de escala.

Permítanme aclarar qué son las redes cápsula.

¿Qué son las redes cápsula?

La cápsula es básicamente un conjunto de capas neuronales anidadas. El estado de las neuronas dentro de una cápsula captura las diversas propiedades como: pose (posición, tamaño, orientación), deformación, velocidad, textura, etc., de una entidad dentro de una imagen.

En lugar de capturar una característica con una variante específica, una cápsula se entrena para capturar la probabilidad de una característica y su variante. Entonces, el propósito de la cápsula no es solo detectar una característica, sino también entrenar al modelo para aprender la variante.

De modo que la misma cápsula puede detectar la misma clase de objeto con diferentes orientaciones (por ejemplo, girar en el sentido de las agujas del reloj):

Podemos decir que funciona con equivariancia, no invariancia.

Invarianza: es la detección de características independientemente de las variantes. Por ejemplo, una neurona de detección de nariz detecta una nariz independientemente de la orientación.

Equivariance: es la detección de objetos que pueden transformarse entre sí (por ejemplo, detectar caras con diferentes orientaciones). Intuitivamente, la red de cápsulas detecta que la cara se gira a la derecha 31 ° (equivariancia) en lugar de darse cuenta de que la cara coincide con una variante que se gira 31 °. Al obligar al modelo a aprender la variante de función en una cápsula, podemos extrapolar posibles variantes de manera más efectiva con menos datos de entrenamiento. Además, podemos rechazar a los adversarios de forma más eficaz.

Una cápsula genera un vector para representar la existencia de la entidad. La orientación del vector representa las propiedades de la entidad.

El vector se envía a todos los posibles padres en la red neuronal. Para cada posible padre, una cápsula puede encontrar un vector de predicción. El vector de predicción se calcula en base a la multiplicación de su propio peso y una matriz de peso. Cualquiera que sea el padre que tenga el producto vectorial de predicción escalar más grande, aumenta el enlace de la cápsula. El resto de los padres disminuyen su vínculo. Esto se llama como Enrutamiento por acuerdo .

Este es definitivamente un enfoque mejor que la agrupación máxima, en la que el enrutamiento se basa en la característica más fuerte detectada en la capa inferior.

Después de esto hay una función de aplastamiento que se agrega. Esto se hace para introducir la no linealidad. Esta función de aplastamiento se aplica a la salida vectorial de cada cápsula.

Déjame decirte ahora cómo funcionan las Capsule Networks.

¿Cómo funcionan las redes cápsula?

Demos un paso atrás. En una red completamente conectada, la salida de cada neurona es la suma ponderada de las entradas.

Ahora, veamos qué sucede en Capsule Networks.

Red neuronal cápsula:

Consideremos una red neuronal cápsula donde 'uyo'Es el vector de actividad de la cápsula'yo'en la capa de abajo.

Paso - 1: Aplicar una matriz de transformaciónENija la salida de la cápsula uyo de la capa anterior. Por ejemplo, con una matriz m × k, transformamos un k-Dtuyo a un m-Du ^j | yo. ((m×k) × (k×1) = m×1).

Es la predicción ( votar ) de la cápsula 'i' en la salida de la cápsula 'j' anterior. 'Vj'Es el vector de actividad de la cápsula'j ’en la capa de arriba

Paso - 2: Calcule una suma ponderada sjcon pesascij.cijson los coeficientes de acoplamiento. La suma de estos coeficientes es igual a uno. Es el parámetro real que trabaja en la relación del grupo de cápsulas que hablamos antes.

Paso - 3: En redes neuronales convolucionales utilizamos la función ReLU. Aquí, aplicaremos una función de aplastamiento para escalar el vector entre 0 y la unidad de longitud. Reduce los vectores pequeños a cero y los vectores largos a vectores unitarios. Por lo tanto, la probabilidad de cada cápsula está limitada entre cero y uno.

Es la predicción ( votar ) de la cápsula 'i' en la salida de la cápsula 'j' anterior. Si el vector de actividad tiene una gran similitud con el vector de predicción, llegamos a la conclusión de que la cápsula 'yo'está muy relacionado con la cápsula 'j ’. (Por ejemplo, la cápsula nasal está muy relacionada con la cápsula facial). Dicha similitud se mide utilizando el producto escalar del vector de predicción y actividad. Por lo tanto, la similitud tiene en cuenta tanto la probabilidad como las propiedades de la característica. (en lugar de simplemente verosimilitud en las neuronas).

Paso - 4: Calcular la puntuación de relevancia 'bij'. Será el producto escalar del vector de actividad y el vector de predicción. Los coeficientes de acoplamientocyojse calcula como el softmax debyoj:

El coeficiente de acoplamiento cijse calcula como el softmax de bij.

Esta bijse actualiza iterativamente en múltiples iteraciones.

Esto se llama como Enrutamiento por acuerdo .

El siguiente diagrama es un ejemplo:

Después de este blog sobre Capsule Networks, crearé un blog sobre la implementación de Capsule Neural Network usando TensorFlow.

Espero que hayas disfrutado leyendo este blog en las redes cápsula, echa un vistazo a la por Edureka, una empresa de aprendizaje en línea de confianza con una red de más de 250.000 alumnos satisfechos repartidos por todo el mundo. El curso Edureka Deep Learning with TensorFlow Certification Training ayuda a los estudiantes a convertirse en expertos en la capacitación y optimización de redes neuronales básicas y convolucionales utilizando proyectos y asignaciones en tiempo real junto con conceptos como la función SoftMax, redes neuronales de codificación automática, máquina de Boltzmann restringida (RBM).

Tienes una pregunta para nosotros? Menciónalo en la sección de comentarios y nos comunicaremos contigo.