He estado estudiando la arquitectura de la red neuronal siamesa introducida por Yann LeCun y sus colegas en 1994 para el reconocimiento de firmas ( "Verificación de firma usando una red neuronal siamesa de retardo de tiempo" .pdf , NIPS 1994)
Entendí la idea general de esta arquitectura, pero realmente no puedo entender cómo funciona la retropropagación en este caso. No puedo entender cuáles son los valores objetivo de la red neuronal, que permitirán que la retropropagación establezca adecuadamente los pesos de cada neurona.
En esta arquitectura, el algoritmo calcula la similitud del coseno entre las representaciones finales de las dos redes neuronales. El documento establece: "La salida deseada es para un ángulo pequeño entre las salidas de las dos subredes (f1 y f2) cuando se presentan firmas genuinas , y un gran ángulo si una de las firmas es una falsificación ".
Realmente no puedo entender cómo podrían usar una función binaria (similitud de coseno entre dos vectores) como objetivo para ejecutar la propagación hacia atrás.
¿Cómo se calcula la propagación hacia atrás en las redes neuronales siamesas?
fuente
Respuestas:
Ambas redes comparten arquitecturas similares y están limitadas a tener los mismos pesos que la publicación describe en la sección 4 [1].
Su objetivo es aprender las características que minimizan la similitud de coseno entre sus vectores de salida cuando las firmas son genuinas y la maximizan cuando se falsifican (este también es el objetivo del backprop, pero no se presenta la función de pérdida real).
La similitud del coseno de dos vectores , es una medida de similitud que le da el coseno del ángulo entre ellos (por lo tanto, su salida no es binaria). Si le preocupa cómo puede retroceder a una función que genera verdadero o falso, piense en el caso de la clasificación binaria.cos(A,B)=A⋅B∥A∥∥B∥ A,B
No debe cambiar la capa de salida, consta de neuronas entrenadas con valores lineales y es una abstracción de nivel superior de su entrada. Toda la red debe ser entrenada en conjunto. Ambas salidas y pasan a través de una función que genera su similitud de coseno ( si son similares y si no lo son). Dado eso, y que tenemos dos conjuntos de tuplas de entrada , un ejemplo de la función de pérdida más simple contra la que podría tener que entrenar podría ser:O1 O2 cos(O1,O2) 1 0 XForged,XGenuine
Después de entrenar su red, simplemente ingresa las dos firmas, obtiene las dos salidas y las pasa a la función , y verifica su similitud.cos(O1,O2)
Finalmente, para mantener los pesos de red idénticos, hay varias formas de hacerlo (y también se usan en redes neuronales recurrentes); Un enfoque común es promediar los gradientes de las dos redes antes de realizar el paso de actualización Pendiente de degradado.
[1] http://papers.nips.cc/paper/769-signature-verification-using-a-siamese-time-delay-neural-network.pdf
fuente