Réseau neuronal siamois

Un réseau neuronal siamois (parfois appelé réseau neuronal jumeau) est un réseau neuronal artificiel qui utilise les mêmes poids tout en travaillant en tandem sur deux vecteurs d'entrée différents pour calculer des vecteurs de sortie comparables[1],[2],[3]. Souvent, un des vecteurs de sortie est précalculé, formant ainsi une ligne de base à laquelle l'autre vecteur de sortie est comparé. Ceci est similaire à la comparaison d'empreintes digitales, mais peut être décrit plus techniquement par une fonction de distance.

Des utilisations sont par exemple la reconnaissance d'écriture manuscrite, la détection automatique des visages, le suivi d'objets (voir ci-dessous) et la correspondance des requêtes avec des documents indexés. L'application peut-être la plus connue des réseaux siamois est la reconnaissance faciale, où des images connues de personnes sont précalculées et comparées à une image d'un tourniquet ou similaire. Il y a en fait deux problèmes légèrement différents. L'un est la reconnaissance d'une personne parmi un grand nombre d'autres personnes, c'est le problème de la reconnaissance faciale. DeepFace est un exemple d'un tel système[3]. Dans sa forme la plus extrême, il s'agit de reconnaître une seule personne dans une gare ou un aéroport. L'autre est l'authentification faciale, c'est-à-dire vérifier que la personne présente est bien le propriétaire du laisser-passer présenté.

Apprentissage modifier

L'apprentissage dans les réseaux jumeaux peut se faire avec une fonction de coût par triplet ou contrastive. Pour l'apprentissage par triplet, un vecteur de base (image d'ancrage) est comparé à un vecteur positif (image vraie) et à un vecteur négatif (image fausse). Le vecteur négatif forcera l'apprentissage dans le réseau, tandis que le vecteur positif agira comme un régularisateur. Pour apprendre par perte contrastive, il doit y avoir une décroissance de poids pour régulariser les poids, ou une opération similaire comme une normalisation.

Une métrique de distance pour une fonction de perte peut avoir les propriétés suivantes[4] :

  • Non-négativité :  
  • Identité des non-discernables :  
  • Symétrie:  
  • Inégalité triangulaire :  

En particulier, on utilise souvent la distance euclidienne au carré (qui, contrairement à la distance euclidienne, ne vérifie pas l'inégalité triangulaire).

Métriques prédéfinies modifier

L'objectif d'apprentissage commun est de minimiser une métrique de distance pour des objets similaires et de la maximiser pour des objets distincts.

Métriques apprises modifier

Un cas plus général est celui où le vecteur de sortie du réseau jumeau est transmis à travers des couches de réseau supplémentaires mettant en œuvre des métriques de distance non linéaires.

Réseaux siamois pour le suivi d'objets modifier

Les réseaux siamois ont été utilisés dans le suivi d'objets (dans des flux vidéo). Dans le suivi d'objets, une entrée du réseau jumeau est une image d'exemplaire présélectionnée par l'utilisateur, l'autre entrée est une image de recherche plus grande, dont le travail de réseau jumeau est de localiser l'exemplaire à l'intérieur de l'image de recherche. En mesurant la similarité entre l'exemplaire et chaque partie de l'image de recherche, une carte du score de similarité peut être donnée par le réseau siamois. De plus, en utilisant un réseau entièrement convolutif, le processus de calcul du score de similarité de chaque secteur peut être remplacé par une seule couche de corrélation croisée[5].

Après avoir été introduit pour la première fois en 2016, les réseaux siamois entièrement convolutifs ont été utilisés dans de nombreux réseaux de neurones de suivi d'objets en temps réel : CFnet[6], StructSiam[7], SiamFC-tri[8], DSiam[9], SA-Siam[10], SiamRPN[11], DaSiamRPN[12], Cascaded SiamRPN[13], SiamMask[14], SiamRPN++[15], DWSiamRPN[16].

Réseaux siamois dans le traitement du langage modifier

Les réseaux siamois sont à la base du modèle Sentence BERT (SBERT[17]), une version du modèle BERT développé par Google. L'idée derrière SBERT est de permettre de créer des plongements contextuels de phrase dans l'objectif d'accélérer les tâches de comparaison de phrases.

L'utilisation de réseaux siamois a permis de réduire un temps de computation de 65 heures (pour un set de 10 000 phrases sur un GPU V100) à 5 secondes avec SBERT[17].

Articles connexes modifier

Références modifier

  1. Bromley, Guyon, LeCun et Säckinger, « Signature verification using a "Siamese" time delay neural network », Advances in Neural Information Processing Systems 6,‎ , p. 737–744 (lire en ligne)
  2. Chopra, Hadsell et LeCun, « Learning a similarity metric discriminatively, with application to face verification », 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR'05), vol. 1,‎ , p. 539–546 vol. 1 (ISBN 0-7695-2372-2, DOI 10.1109/CVPR.2005.202, S2CID 5555257)
  3. a et b Taigman, Yang, Ranzato et Wolf, « DeepFace: Closing the Gap to Human-Level Performance in Face Verification », 2014 IEEE Conference on Computer Vision and Pattern Recognition,‎ , p. 1701–1708 (ISBN 978-1-4799-5118-5, DOI 10.1109/CVPR.2014.220, S2CID 2814088)
  4. Chatterjee et Luo, « Similarity Learning with (or without) Convolutional Neural Network » (consulté le )
  5. Luca Bertinetto, Jack Valmadre, João F. Henriques, Andrea Vedaldi & Philip H. S. Torr, « Fully-Convolutional Siamese Networks for Object Tracking », ECCV 2016,‎ (« 1606.09549 », texte en accès libre, sur arXiv.)
  6. Jack Valmadre Luca Bertinetto João Henriques Andrea Vedaldi Philip H. S. Torr, « End-to-end representation learning for Correlation Filter based tracking », CVPR 2017,‎ (lire en ligne)
  7. « Structured Siamese Network for Real-Time Visual Tracking »
  8. « Triplet Loss in Siamese Network for Object Tracking »
  9. « Learning Dynamic Siamese Network for Visual Object Tracking »
  10. « A Twofold Siamese Network for Real-Time Object Tracking »
  11. « High Performance Visual Tracking with Siamese Region Proposal Network »
  12. (en) Auteur inconnu, « Distractor-aware Siamese Networks for Visual Object Tracking », .
    erreur modèle {{Lien arXiv}} : renseignez un paramètre « |eprint »
  13. (en) Auteur inconnu, « Siamese Cascaded Region Proposal Networks for Real-Time Visual Tracking », .
    erreur modèle {{Lien arXiv}} : renseignez un paramètre « |eprint »
  14. (en) Auteur inconnu, « Fast Online Object Tracking and Segmentation: A Unifying Approach », .
    erreur modèle {{Lien arXiv}} : renseignez un paramètre « |eprint »
  15. (en) Auteur inconnu, « SiamRPN++: Evolution of Siamese Visual Tracking with Very Deep Networks », .
    erreur modèle {{Lien arXiv}} : renseignez un paramètre « |eprint »
  16. (en) Auteur inconnu, « Deeper and Wider Siamese Networks for Real-Time Visual Tracking », .
    erreur modèle {{Lien arXiv}} : renseignez un paramètre « |eprint »
  17. a et b (en) Nils Reimers et Iryna Gurevych, « *Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks* », Ubiquitous Knowledge Processing Lab (UKP-TUDA),‎ (lire en ligne [PDF])