Redes Siamesas
Una red siamesa usa dos subredes gemelas de pesos compartidos para medir cuánto se parecen dos entradas en un espacio de embeddings. De la verificación de firmas y rostros al aprendizaje de un solo ejemplo, es la herramienta del aprendizaje métrico.
Una red siamesa (Siamese network) es una arquitectura formada por dos —o más— subredes idénticas que comparten exactamente los mismos pesos y procesan, cada una, una entrada distinta. En lugar de clasificar una entrada en categorías, su objetivo es comparar: aprende a medir cuán parecidas o distintas son dos entradas, proyectándolas a un espacio de embeddings donde la distancia entre los vectores refleja su similitud.
Compartir los pesos es la clave: garantiza que ambas entradas se transforman con la misma función, de modo que dos elementos iguales producen vectores cercanos y dos distintos, vectores alejados. La red no aprende «qué es» cada entrada, sino «cuánto se parecen» dos de ellas.
Cómo aprende: embeddings y pérdidas por comparación
Una red siamesa no se entrena con la típica pérdida de clasificación, sino con funciones que operan sobre pares o tríos de ejemplos. La pérdida contrastiva (contrastive loss), formalizada por Raia Hadsell, Sumit Chopra y Yann LeCun en 2006, acerca en el espacio de embeddings los pares que deberían ser iguales y aleja los que deberían ser distintos, con un margen. La pérdida de triplete (triplet loss) trabaja con tres entradas a la vez: un ancla, un ejemplo positivo (de la misma clase que el ancla) y uno negativo (de otra clase); el entrenamiento empuja al ancla a estar más cerca del positivo que del negativo por un margen dado. El resultado es un espacio donde la mera distancia ya codifica la identidad.
Usos: verificación facial y de firmas, y one-shot
La idea nació precisamente para comparar. Jane Bromley, Isabelle Guyon, Yann LeCun y sus colegas presentaron las redes siamesas a comienzos de los años noventa para la verificación de firmas manuscritas, decidiendo si dos firmas pertenecían a la misma persona. Su aplicación más conocida es la verificación facial: FaceNet, de Google (Florian Schroff y colaboradores, 2015), usó la pérdida de triplete para aprender embeddings de rostros con los que confirmar si dos fotos son de la misma persona. Y en el aprendizaje de un solo ejemplo (one-shot learning), Gregory Koch, Richard Zemel y Ruslan Salakhutdinov (2015) mostraron que una red siamesa puede reconocer una clase nueva a partir de un único ejemplo, comparándolo con la referencia. Estas aplicaciones tienen entradas propias en este glosario.
Por qué funciona: aprendizaje métrico con muchas clases y pocos ejemplos
Las redes siamesas son una forma de aprendizaje métrico (metric learning): en vez de aprender fronteras entre clases, aprenden una medida de distancia. Esa diferencia las hace idóneas cuando hay muchísimas clases y muy pocos ejemplos de cada una —millones de rostros o firmas distintos, con apenas una o dos muestras por identidad—, un escenario donde un clasificador convencional es inviable porque tendría que reentrenarse cada vez que aparece una identidad nueva. Una red siamesa, en cambio, generaliza: aprendida la noción de «parecido», puede comparar caras o firmas que nunca vio en el entrenamiento. Quedan como cuestiones abiertas la elección de los pares o tríos de entrenamiento —el «minado» de negativos difíciles influye mucho en la calidad— y el que los embeddings hereden sesgos presentes en los datos.
Este artículo se ha elaborado con inteligencia artificial bajo supervisión editorial humana.