Comprender las Redes de Cápsulas de Hinton. Parte IV: Arquitectura CapsNet

Supongamos que la etiqueta correcta es 1, esto significa que el primer DigitCap es responsable de codificar la presencia del dígito 1. Para esta función de pérdida de DigitCap, T_c será una y para los nueve DigitCaps restantes, T_c será 0. Cuando T_c es 1, se calcula el primer término de la función de pérdida y el segundo se convierte en cero. Para nuestro ejemplo, para calcular la pérdida del primer DigitCap, tomamos el vector de salida de este DigitCap y lo restamos de m+, que se fija en 0.9. A continuación, mantenemos el valor resultante solo en el caso de que sea mayor que cero y lo cuadramos. De lo contrario, devuelve 0. En otras palabras, la pérdida será cero si el DigitCap correcto predice la etiqueta correcta con una probabilidad superior a 0,9, y será distinta de cero si la probabilidad es inferior a 0,9.

Valor de función de pérdida para DigitCap correcto e incorrecto. Tenga en cuenta que el gráfico rojo está «aplastado» verticalmente en comparación con el verde. Esto se debe al multiplicador lambda de la fórmula. Fuente: autor.

Para las tapas digitales que no coinciden con la etiqueta correcta, T_c será cero y, por lo tanto, se evaluará el segundo término (correspondiente a la parte (1 — T_c)). En este caso podemos ver que la pérdida será cero si el DigitCap no coincidente predice una etiqueta incorrecta con probabilidad menor que 0.1 y no cero si predice una etiqueta incorrecta con probabilidad mayor que 0.1.

Finalmente, en la fórmula se incluye el coeficiente lambda para la estabilidad numérica durante el entrenamiento (su valor se fija en 0,5). Los dos términos de la fórmula tienen cuadrados porque esta función de pérdida tiene la norma L2 y los autores aparentemente consideran que esta norma funciona mejor.

Parte II. Decodificador.

CapsNet decodificador de la arquitectura. Fuente: documento original.

El decodificador toma un vector de 16 dimensiones del DigitCap correcto y aprende a decodificarlo en una imagen de un dígito (tenga en cuenta que solo utiliza el vector DigitCap correcto durante el entrenamiento e ignora los incorrectos). El decodificador se utiliza como regularizador, toma la salida del DigitCap correcto como entrada y aprende a recrear una imagen de 28 por 28 píxeles, con la función de pérdida siendo la distancia euclidiana entre la imagen reconstruida y la imagen de entrada. El decodificador obliga a las cápsulas a aprender funciones que son útiles para reconstruir la imagen original. Cuanto más cerca esté la imagen reconstruida de la imagen de entrada, mejor. Ejemplos de imágenes reconstruidas se pueden ver en la imagen de abajo.

fila de Arriba: imágenes originales. Fila inferior: imágenes reconstruidas. Fuente: documento original.

Capa 4. Entrada #1

totalmente conectada: 16×10.
Salida: 512.
Número de parámetros: 82432.

Cada salida del nivel inferior se pondera y se dirige a cada neurona de la capa completamente conectada como entrada. Cada neurona también tiene un término de sesgo. Para esta capa hay entradas de 16×10 que están dirigidas a cada una de las 512 neuronas de esta capa. Por lo tanto, hay parámetros entrenables (16×10 + 1)x512.

Para las dos capas siguientes el cálculo es el mismo: número de parámetros = (número de entradas + sesgo) x número de neuronas en la capa. Esta es la razón por la que no hay explicación para las capas 2 y 3 completamente conectadas.

Capa 5. Totalmente conectado #2

Entrada: 512.
Salida: 1024.
Número de parámetros: 525312.

Capa 6. Totalmente conectado #3

Entrada: 1024.
Salida: 784 (que después de la remodelación devuelve una imagen decodificada de 28×28).
Número de parámetros: 803600.

Número total de parámetros en la red: 8238608.

Conclusión

Deja una respuesta

Tu dirección de correo electrónico no será publicada.