Todo lo que ves no es verdad: hacia la IA

Estás leyendo la publicación: Todo lo que ves no es verdad: hacia la IA

Publicado originalmente en Hacia la IA, la empresa líder mundial en noticias y medios de IA y tecnología. Si está creando un producto o servicio relacionado con la IA, lo invitamos a considerar convertirse en patrocinador de la IA. En Hacia la IA, ayudamos a escalar las empresas emergentes de IA y tecnología. Permítanos ayudarlo a dar rienda suelta a su tecnología a las masas.

Alternativa costosa a las redes neuronales convolucionales (CNN)

Hoy, cuando hablamos de datos, ya no estamos confinados a las fuentes de datos tradicionales en columnas o de tipo CSV. Ha habido un aumento en los datos de todos los formatos y tipos, desde datos de sonido hasta datos de imágenes, desde cortes transversales hasta formatos de series de tiempo debido a una mejor disponibilidad de estructuras de datos y métodos para recuperar y almacenar diferentes tipos de datos.

Este artículo se centra más bien en uno de esos tipos de datos, datos visuales para ser precisos, y su contexto con el aprendizaje automático. El enfoque más importante anterior para tratar con los datos de imagen era aplanar los datos en un vector y pasarlos a una red neuronal o algún otro algoritmo de aprendizaje automático para diferentes propósitos. Con el desarrollo de Deep Learning, las cosas dieron un giro drástico y el mundo se presentó a Redes neuronales de convolución (CNN) de Yann LeCun a finales de los 80. Las CNN han demostrado ser la metodología de vanguardia actual (SOTA) para trabajar con datos visuales de todo tipo, desde imágenes hasta datos continuos como clips de video.

En el caso de las CNN, solo cargamos los datos y entrenamos la red para identificar características en el espacio 2D que se enredan cuando se aplanan. Con capas sucesivas que construyen la red, el campo de visión de las capas posteriores sigue aumentando, lo que permite aprender características más complejas. Yann LeCun demostró este concepto entrenando un modelo de cinco capas en el conjunto de datos MNIST y clasificando los dígitos con una precisión del 98,49 %.

A pesar de ser el cambio de juego en el campo del aprendizaje profundo, las CNN tienen desventajas inherentes que la mayoría de las personas desconocen. Los exploraremos ahora y eso nos ayudará a construir una base para el tema principal de este blog: CapsuleNets.

Desventaja #1

Debido a su naturaleza de capturar información de características para tareas de nivel superior, como clasificación, segmentación, ubicación de objetos, etc., han sido independientes de la posición y/o la orientación de esas características. Cuando esperamos que aprendan la distribución de un conjunto de datos, prefieren centrarse en las imágenes de entrenamiento que se les proporcionan.

Desventaja #2

Dada la limitación anterior, las CNN también son independientes de las posiciones relativas de estas características. Mientras se mueven hacia arriba en las capas, solo capturan qué características están presentes en la imagen para realizar su tarea. Esta limitación surge debido a problemas estructurales en cualquier arquitectura de CNN.

🔥 Recomendado:  Aprendizaje automático para documentos: hacia la IA

En las CNN, a menudo usamos capas de agrupación para reducir el tamaño de la imagen o reducir la carga computacional, pero lo que no pensamos es que al promediar o tomar el píxel con los valores más altos, estamos perdiendo mucha información posicional sobre esa característica Además, al elegir el que tiene el valor más alto, básicamente estamos submuestreando las características de la imagen.

Concéntrese en la imagen a continuación para comprender mejor estas dos desventajas:

Tome la imagen más a la izquierda como imagen de referencia, hemos entrenado a nuestro ConvNet actual en ella. Ahora, según la primera desventaja, cuando giramos la imagen, los filtros que extraen la información importante, como los ojos, la nariz y la boca, pueden no estar alineados con su posición en la imagen más a la derecha. Y como la red no ha visto ninguna imagen así en su entrenamiento, no ha generalizado bien por lo que hace una predicción equivocada.

Ahora, para la segunda desventaja, considere la imagen en el medio. La orientación general de la cara es similar, pero hemos intercambiado las ubicaciones de algunas de las características. Aquí, la red puede reconocer algunas de las características, si no todas, con los respectivos filtros colocados en su espacio, y así lo clasifica como una cara.

Desventaja #3

El tercer y último defecto se debe nuevamente al diseño de estas ConvNets. La forma en que enrutan la información a las capas superiores crea un campo receptivo más amplio para estas capas superiores. En lugar de enrutar toda la información a través de todas las capas, las redes pueden hacerse selectivas para pasar la información requerida a la capa respectiva.

Nuestro cerebro funciona de manera similar, tenemos diferentes lóbulos que tienen su propia función específica en la que son buenos. Del mismo modo, enrutar la característica de un ojo solo a la parte que detecta la cara es mucho más intuitivo que enviarlo al filtro que detecta animales, sillas, etc.

CapsuleNets están inspirados en este fenómeno, como nuestro cerebro funciona usando el concepto de . Comprendamos el funcionamiento de CapsuleNets usando un ejemplo. La arquitectura general se divide en tres subpartes:

  1. Cápsulas primarias
  2. Cápsulas de capa superior
  3. Cálculo de pérdidas

Veremos el uso de cada una de las subpartes en el ejemplo.

Antes de comenzar, aprenderemos sobre el componente básico de CapsuleNets, es decir, la Cápsula, y en qué se diferencia de una neurona. Para todas las demás redes, tenemos un concepto de neurona que se parece a la que se encuentra en nuestro cerebro. Toma un conjunto de entradas, las pesa usando sus pesos aprendidos y luego aplica una función de activación encima para construir complejidad en el modelo.

🔥 Recomendado:  Cómo obtener la función de deslizamiento hacia arriba de Instagram

Capsule hace cosas similares, pero la principal diferencia radica en la salida de ambos bloques. La cápsula genera un vector en lugar de una cantidad escalar como las neuronas. Este vector lleva información sobre la orientación del objeto dentro de la imagen. Si gira el objeto y/o la imagen, esta representación vectorial se vería afectada simultáneamente.

Cápsulas primarias

Considere la imagen de arriba. Podemos decir que las imágenes anteriores se componen de dos partes fundamentales, un triángulo y un rectángulo. Ahora supongamos que inicializamos la capa Primary Capsule con 200 cápsulas, 100 representan el rectángulo y las otras 100 el triángulo.

Se distribuyen de forma que cubren toda la imagen. La salida de cada una de estas cápsulas se representa mediante flechas en la imagen de abajo; las flechas negras representan la salida del rectángulo y las azules para un triángulo. Para decidir si un objeto en particular está presente o no, nos enfocamos en la longitud de esas flechas, mientras que su pose nos brinda información sobre la orientación de ese objeto en particular (posición, escala, rotación, etc.).

Estas cápsulas también siguen la propiedad de la equivarianza, es decir, por un ligero cambio en la posición/orientación del objeto, veremos un cambio correspondiente en las flechas que representan estos objetos. Esto ayuda a CapsuleNet a ubicar el objeto en la imagen y tener información precisa sobre los parámetros de pose.

Para lograr esto, la capa de la Cápsula Primaria pasa por tres fases diferentes:

i) Convolución

ii) Reformar

iii) Función de aplastamiento

Tomamos la imagen y la procesamos a través de capas de convolución para obtener mapas de características de salida. Luego remodelamos esos mapas de características.

En nuestro ejemplo, supongamos que tenemos 50 mapas de características como salida, los remodelamos a dos vectores de 25 dimensiones (50 = 25*2) para cada ubicación en la imagen. Cada vector representa una de las dos formas fundamentales. Estos valores ahora se pueden inferir como la probabilidad de que cada una de las formas fundamentales esté presente o no en un lugar particular de la imagen, pero para hacerlo deben tener sus longitudes entre 0 y 1. Para lograr esto, aplicamos el . Básicamente toma el vector y aplica la norma y luego una función no lineal para mantener su longitud entre 0 y 1.

Entonces, hasta ahora tenemos la información sobre la presencia de las formas fundamentales en la imagen. Ahora necesitamos tomar esta información e inferir si es un bote o una casa. Para eso, pasamos a la siguiente capa en CapsuleNet: Capas superiores.

Capas Superiores

El siguiente paso es la función de las capas superiores. Pero antes de saltar a ellas, las capas primarias tienen una función más que hacer. Después de la salida de squash, las capas primarias también intentan predecir la salida de cada una de las capas superiores. Teníamos 100 cápsulas para rectángulos y 100 para triángulos que darán algunas predicciones, suponiendo que la capa superior tiene dos cápsulas, una para la casa y otra para el bote, estas predicciones se hacen en forma y se encuentra la orientación de las formas.

🔥 Recomendado:  uso y limpieza; Un camino hacia Tableau Desktop… – Hacia la IA

Debido a la información adicional sobre la pose, las cápsulas podrán llegar a un consenso de que el objeto presente puede ser un bote. Se llama . Debido a esto, las señales ahora solo se envían a la cápsula de nivel superior que representa al barco y no al otro.

Ahora, comienza el trabajo de la capa superior, aunque las capas primarias predijeron alguna salida para la capa superior, aún necesita predecir su propia salida y validarla. Inicialmente, las capas superiores establecen las que utilizan las capas inferiores para enrutar la señal de la imagen. Lo hace calculando su propia salida y luego valida la salida de las capas inferiores. En función de la similitud de ambas predicciones, se actualizan los pesos.

Además, después de obtener la salida de las capas superiores, podemos agregar una tercera capa encima de la capa superior, que será una capa de neuronas para clasificar la imagen en función de la salida vectorial que recibirá.

¡Envolver!

En el artículo, vimos el funcionamiento de CapsuleNet y la intuición que dio origen a este concepto. A partir de los inconvenientes de las CNN, nos basamos en sus soluciones y en cómo CapsuleNets puede ser una alternativa viable para ellas.

Aunque la intuición y los algoritmos parecen funcionar bien, tienen sus propias desventajas cuando se trata de la realidad.

  • Debido al enrutamiento dinámico y al gran número de cápsulas, el cálculo se vuelve pesado y demanda un mayor recurso computacional.
  • También sufre el problema del hacinamiento cuando dos objetos del mismo tipo se colocan uno cerca del otro.

A pesar de esto, CapsuleNets sirve como un enfoque prometedor para la comunidad y, por lo tanto, se puede mejorar aún más.

Espero que el artículo haya arrojado algo de luz sobre el concepto general y lo haya ayudado a obtener una comprensión más profunda de CapsuleNets. Estén atentos para más piezas de este tipo en el futuro. ¡Hasta la vista!


Capsule Networks: Everything You See Is Not True se publicó originalmente en Towards AI en Medium, donde las personas continúan la conversación resaltando y respondiendo a esta historia.

Publicado a través de Hacia la IA