Una red neuronal siamesa (a veces llamada red neuronal gemela ) es una red neuronal artificial que utiliza los mismos pesos mientras trabaja en conjunto sobre dos vectores de entrada diferentes para calcular vectores de salida comparables. [ 1 ] [ 2 ] [ 3 ] A menudo, uno de los vectores de salida se precalcula, formando así una línea base con la que se compara el otro vector de salida. Esto es similar a comparar huellas dactilares , pero puede describirse más técnicamente como una función de distancia para el hashing sensible a la localidad .
Es posible construir una arquitectura funcionalmente similar a una red gemela, pero que implementa una función ligeramente diferente. Esto se suele utilizar para comparar instancias similares en diferentes conjuntos de tipos.
Los usos de medidas de similitud donde se podría usar una red gemela son cosas tales como el reconocimiento de cheques escritos a mano, la detección automática de rostros en imágenes de cámara y la coincidencia de consultas de texto con documentos indexados [ 4 ] . Quizás la aplicación más conocida de las redes gemelas es el reconocimiento facial , donde se precalculan imágenes conocidas de personas 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, es decir, el problema del reconocimiento facial. DeepFace es un ejemplo de dicho sistema. [ 3 ] En su forma más extrema, esto es reconocer a una sola persona en una estación de tren o aeropuerto. El otro es la verificación facial , es decir, para verificar si una foto en un pasaporte coincide con el rostro del propietario del pasaporte. La red gemela puede ser la misma, pero la implementación puede ser bastante diferente.
Aprendiendo
El aprendizaje en redes gemelas se puede realizar con pérdida de triplete o pérdida contrastiva . Para el aprendizaje con 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 fuerza el aprendizaje en la red, mientras que el vector positivo actúa como un regularizador. Para el aprendizaje con pérdida contrastiva, se requiere una disminución gradual de los pesos para regularizarlos, o alguna operación similar como una normalización.
Una métrica de distancia para una función de pérdida puede tener las siguientes propiedades [ 5 ]
- No negatividad:
- Identidad de los no discernibles:
- Conmutatividad:
- Desigualdad triangular :
En particular, el algoritmo de pérdida de tripletas se define a menudo con la distancia euclidiana al cuadrado (que, a diferencia de la euclidiana, no tiene desigualdad triangular) como base.
Métricas predefinidas, métrica de distancia euclidiana
El objetivo común del aprendizaje es minimizar una métrica de distancia para objetos similares y maximizarla para objetos distintos. Esto da como resultado una función de pérdida como
- son índices en un conjunto de vectores
- función implementada por la red gemela
La métrica de distancia más común utilizada es la distancia euclidiana , en cuyo caso la función de pérdida se puede reescribir en forma matricial como
Métricas aprendidas, métrica de distancia no lineal
Un caso más general es aquel en el que el vector de salida de la red gemela se pasa a través de capas de red adicionales que implementan métricas de distancia no lineales.
- son índices en un conjunto de vectores
- función implementada por la red gemela
- función implementada por la red que une las salidas de la red gemela
En una forma matricial, lo anterior se aproxima a menudo como una distancia de Mahalanobis para un espacio lineal como [ 6 ].
Esto se puede subdividir aún más en al menos aprendizaje no supervisado y aprendizaje supervisado .
Métricas aprendidas, redes de gemelos incompletos
Esta forma también permite que la red gemela sea más bien una media gemela, implementando funciones ligeramente diferentes.
- son índices en un conjunto de vectores
- función implementada por la red de medio gemelo
- función implementada por la red que une las salidas de la red gemela
Redes gemelas para el seguimiento de objetos
Las redes gemelas se han utilizado en el seguimiento de objetos debido a sus dos entradas en tándem únicas y a la medición de similitud. En el seguimiento de objetos, una entrada de la red gemela es una imagen de ejemplo preseleccionada por el usuario, y la otra es una imagen de búsqueda más grande. La función de la red gemela es localizar el ejemplo dentro de la imagen de búsqueda. Al medir la similitud entre el ejemplo y cada parte de la imagen de búsqueda, la red gemela puede proporcionar un mapa de puntuación de similitud. Además, utilizando una red totalmente convolucional, el proceso de cálculo de la puntuación de similitud de cada sector puede reemplazarse con una sola capa de correlación cruzada. [ 7 ]
Después de ser introducida por primera vez en 2016, la red totalmente convolucional Twin se ha utilizado en muchas redes neuronales de seguimiento de objetos en tiempo real de alto rendimiento. Como CFnet, [ 8 ] StructSiam, [ 9 ] SiamFC-tri, [ 10 ] DSiam, [ 11 ] SA-Siam, [ 12 ] SiamRPN, [ 13 ] DaSiamRPN, [ 14 ] Cascaded SiamRPN, [ 15 ] SiamMask, [ 16 ] SiamRPN++, [ 17 ] Deeper and Wider SiamRPN. [ 18 ]
Véase también
Referencias
- ↑ Bromley, Jane; Guyon, Isabelle; LeCun, Yann; Säckinger, Eduard; Shah, Roopak (1994). "Verificación de firmas mediante una red neuronal de retardo temporal 'siamesa'" (PDF) . Advances in Neural Information Processing Systems . 6 : 737–744 .
- ↑ Chopra, S.; Hadsell, R.; LeCun, Y. (junio de 2005). "Aprendizaje discriminativo de una métrica de similitud, con aplicación a la verificación facial". Conferencia de la Sociedad de Computación IEEE de 2005 sobre Visión por Computadora y Reconocimiento de Patrones (CVPR'05) . Vol. 1. págs. 539–546 vol. 1. doi : 10.1109/CVPR.2005.202 . ISBN 0-7695-2372-2. S2CID 5555257 .
- 1 2 Taigman, Y.; Yang, M.; Ranzato, M.; Wolf, L. (junio de 2014). "DeepFace: Cerrando la brecha hacia un rendimiento a nivel humano en la verificación facial". Conferencia IEEE de 2014 sobre Visión por Computadora y Reconocimiento de Patrones . págs. 1701–1708 . doi : 10.1109/CVPR.2014.220 . ISBN 978-1-4799-5118-5. S2CID 2814088 .
- ↑ "Arquitecturas recurrentes siamesas para el aprendizaje de la similitud de oraciones" .
- ↑ Chatterjee, Moitreya; Luo, Yunan. "Aprendizaje de similitud con (o sin) red neuronal convolucional" (PDF) . Consultado el 7 de diciembre de 2018 .
- ↑ Chandra, MP (1936). "Sobre la distancia generalizada en estadística" (PDF) . Actas del Instituto Nacional de Ciencias de la India . 1. 2 : 49–55 .
- ↑ Redes siamesas totalmente convolucionales para el seguimiento de objetos arXiv : 1606.09549
- ↑ "Aprendizaje de representación de extremo a extremo para el seguimiento basado en filtros de correlación" .
- ↑ "Red siamesa estructurada para seguimiento visual en tiempo real" (PDF) .
- ↑ "Pérdida de tripletes en redes siamesas para el seguimiento de objetos" (PDF) .
- ↑ "Aprendizaje de redes siamesas dinámicas para el seguimiento de objetos visuales" (PDF) .
- ↑ "Una red siamesa doble para el seguimiento de objetos en tiempo real" (PDF) .
- ↑ "Seguimiento visual de alto rendimiento con red de propuesta de región siamesa" (PDF) .
- ^ Zhu, Zheng; Wang, Qiang; Li, Bo; Wu, Wei; Yan, Junjie; Hu, Weiming (2018). "Redes siamesas con capacidad de distracción para el seguimiento de objetos visuales". arXiv : 1808.06048 [ cs.CV ].
- ↑ Fan, Heng; Ling, Haibin (2018). "Redes de propuesta de región en cascada siamesa para seguimiento visual en tiempo real". arXiv : 1812.06148 [ cs.CV ].
- ↑ Wang, Qiang; Zhang, Li; Bertinetto, Luca; Hu, Weiming; Torr, Philip HS (2018). "Seguimiento y segmentación rápidos de objetos en línea: un enfoque unificador". arXiv : 1812.05050 [ cs.CV ].
- ↑ Li, Bo; Wu, Wei; Wang, Qiang; Zhang, Fang Yi; Xing, Junliang; Yan, Junjie (2018). "SiamRPN++: Evolución del seguimiento visual siamés con redes muy profundas". arXiv : 1812.11703 [ cs.CV ].
- ↑ Zhang, Zhipeng; Peng, Houwen (2019). "Redes siamesas más profundas y amplias para el seguimiento visual en tiempo real". arXiv : 1901.01660 [ cs.CV ].
- Arquitecturas de redes neuronales