red neuronal siamesa


Una red neuronal siamesa (a veces llamada red neuronal gemela ) es una red neuronal artificial que usa los mismos pesos mientras trabaja en tándem en dos vectores de entrada diferentes para calcular vectores de salida comparables. [1] [2] [3] [4] A menudo, uno de los vectores de salida se calcula previamente, formando así una línea base contra la cual se compara el otro vector de salida. Esto es similar a la comparación de huellas dactilares , pero se puede describir más técnicamente como una función de distancia para el hashing sensible a la localidad . [ cita requerida ]

Es posible construir una arquitectura que sea funcionalmente similar a una red siamesa pero implemente una función ligeramente diferente. Esto se usa típicamente para comparar instancias similares en diferentes conjuntos de tipos. [ cita requerida ]

Los usos de las medidas de similitud donde se podría usar una red gemela son cosas como el reconocimiento de cheques escritos a mano , la detección automática de rostros en las imágenes de la cámara y la coincidencia de consultas con documentos indexados. La aplicación quizás más conocida de las redes gemelas es el reconocimiento facial , donde las imágenes conocidas de personas se calculan previamente y se comparan con una imagen de un torniquete o similar. No es obvio al principio, pero hay dos problemas ligeramente diferentes. Uno es reconocer a una persona entre un gran número de otras personas, ese es el problema del reconocimiento facial. DeepFace es un ejemplo de tal sistema. [4] En su forma más extrema, esto es reconocer a una sola persona en una estación de tren o aeropuerto. El otro esverificación facial , es decir, verificar si la foto en un pase es la misma que la persona que afirma ser la misma persona. La red gemela puede ser la misma, pero la implementación puede ser bastante diferente.

El aprendizaje en redes gemelas se puede realizar con pérdida de triplete o pérdida de contraste . Para el aprendizaje por pérdida de triplete, se compara un vector de referencia (imagen ancla) con un vector positivo (imagen verdadera) y un vector negativo (imagen falsa). El vector negativo forzará el aprendizaje en la red, mientras que el vector positivo actuará como un regularizador. Para el aprendizaje por pérdida contrastiva debe haber un decaimiento de peso para regularizar los pesos, o alguna operación similar como una normalización.

En particular, el algoritmo de pérdida de triplete a menudo se define con la distancia euclidiana al cuadrado (que, a diferencia de la euclidiana, no tiene desigualdad triangular) en su núcleo.

El objetivo de aprendizaje común es minimizar una métrica de distancia para objetos similares y maximizar para objetos distintos. Esto da una función de pérdida como