Siamese Neural Networks

Las redes siamesas se introdujeron por primera vez por Bromley y LeCun [1] a principios de la década de 1990 para resolver la verificación de firma como un problema de coincidencia de imágenes. Una arquitectura similar se propuso para la identificación de huellas dactilares por Baldi y Chauvin [2] en 1992. Más tarde en 2015, Gregory Koch et al.[3] propusieron utilizar redes neuronales siamesas para el reconocimiento de imágenes mediante la técnica de one-shot learning.

Las redes neuronales siamesas están diseñadas como dos redes gemelas conectadas por su capa final por medio de una capa de distancia que está entrenada para predecir si dos imágenes pertenecen a la misma categoría o no. Las redes que componen la arquitectura siamesa se llaman gemelas porque todos los pesos y biases están unidos, lo que significa que ambas redes son simétricas. La simetría es importante ya que la red debe ser invariante a la conmutación de imágenes de entrada. Además, esta característica hace que sea mucho más rápido entrenar la red ya que el número de parámetros se reduce significativamente.

La última capa compara la salida de las redes gemelas y fuerza la distancia de las imágenes de la misma categoría hacia 0 y 1 para las diferentes. Se utiliza una función de pérdida llamada “contrastive loss” para este propósito, que fue introducida por Yann LeCun et al. [4] :

donde D_W es la distancia calculada por la red, Y el valor real (0/1) y m un parámetro cuyo valor está determinado por la distancia máxima elegida (1).

A parte de las primeras aplicaciones mencionadas, estas redes se pueden utilizar en muchas aplicaciones que implican una tarea de diferenciación. Además, la evolución de las redes neuronales basadas en la arquitectura convolucional fue crucial para aplicar estos métodos a imágenes más complejas. En este post abordamos una de las aplicaciones más interesantes de estas redes: one-shot learning. Este método consiste en predecir la categoría de una imagen simplemente comparándola con un solo ejemplo de cada clase.

Bajo este enfoque, una red siamesa se usa para aprender representaciones de imágenes a través de una métrica supervisada, y luego se vuelven a utilizar las características de esa red para el one-shot learning sin ningún tipo de reentrenamiento. En otras palabras, primero aprendemos una red neuronal que puede discriminar entre la identidad de clase de los pares de imágenes y generalizarla para una tarea de one-shot al evaluar nuevas imágenes Esto mapea cada representación de imagen en la última capa como un espacio vectorial donde las imágenes que pertenecen a la misma clase tienen una distancia cero y uno si son diferentes. Esto se puede ver fácilmente como una transformación espacial donde cada clase se ubica en un centro de hiperesfera.

En conclusión, la capacidad de distinguir de las redes de Siamesas es una cualidad interesante explotada en una amplia gama de aplicaciones. Hemos mencionado su uso en tareas como la verificación de firmas, identificación de huellas dactilares y one-shot learning pero también pueden ser utilizadas para verificar el autor de un texto, reconocimiento facial [5], etc…  One-shot learning es un problema interesante para el cual las redes siamesas son una solución, pero no la única. Entre otros enfoques para aplicaciones one-shot/few-shot nos encontramos redes prototípicas, redes condicionales, redes de emparejamiento y muchas más. Puede ser aplicadas para creación de sistemas de control de calidad para inspección superficial en entornos industriales, herramientas de ayuda al diagnóstico, buscadores de imagen por similitud visual (CBIR), etc.

Este tipo de técnicas están siendo aplicadas en el marco del proyecto Europeo H2020 PICCOLO (GA No. 732111) liderado por el grupo de Computer Vision de Tecnalia.

[1] J. Bromley, I. Guyon, Y. LeCun, E. Säckinger, and R. Shah. Signature verification using a “Siamese” time delay neural network. In Proceedings of the 6th International Conference on Neural Information Processing Systems (NIPS’93), San Francisco, 737-744, 1993.

[2] P. Baldi, Y. Chauvin. Neural Networks for Fingerprint Recognition. Neural Computation, 1993.

[3] Koch, Gregory R. Siamese Neural Networks for One-Shot Image Recognition, 2015.

[4] R. Hadsell, S. Chopra and Y. LeCun. Dimensionality Reduction by Learning an Invariant Mapping. New York, NY, USA,pp. 1735-1742, 2006.

[5] W. Mei, W. Deng. Deep Face Recognition: A Survey. 2018.

Nota: debido a la ley de privacidad y protección de datos, las imágenes de esta publicación han sido obtenidas de fuentes externas.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies