Facenet-Online-Tripelgenerierung

9

Der Artikel hier erwähnt eine intelligente Methode, um Triplets für ein konvolutionelles neuronales Netzwerk zu generieren (um Gesichtseinbettungen zu generieren). .

Für einen Minibatch mit n Bildern werden nur die halbharten Drillinge zum Lernen verwendet (Drillinge mit halbharten Negativen , die Negativbilder sind) nah genug am Ankerbild).

  1. Wie wird das Training erstellt? Was enthält eine Charge?
  

In unseren Experimenten nehmen wir die Trainingsdaten so auf, dass etwa 40   Gesichter werden pro Identität pro Minibatch ausgewählt. Zusätzlich,   zufällig ausgewählte negative Gesichter werden zu jedem Minibatch hinzugefügt.

Was ich gemacht habe

Ich habe Labelled Faces im Wild-Datensatz für das Training verwendet (13233 Bilder, 5749 Personen, 1680 Personen mit zwei oder mehr Bildern ) und für jeden Batch einen Anker, einige positive (das heißt ich konnte nur 1680 Chargen verwenden, da ich mehr als ein Bild von einer Person benötige), und Negative - Bilder von anderen zufällig ausgewählten Personen.

Irgendwas stimmt nicht mit meinem Trainingssatz. Sollte ein Mini-Batch more -Anker enthalten?

  

Anstatt das härteste Positiv auszuwählen, verwenden wir alle Ankerpositiven   pairs in einem Minibatch, während die harten Negative ausgewählt werden

  1. Online-Tripelerzeugung? Wie wird es gemacht? (technische Details sind willkommen)
  

Generieren Sie Triplets online. Dies kann durch Auswahl der Festplatte erfolgen   positive / negative Exemplare aus einem Mini-Batch.

Um die halbharten Negative auszuwählen, muss ich die Einbettungen meiner Triplets berechnen. Also muss ich durch das Triplett-Neuron gehen und die Einbettungen vergleichen. Und dann muss ich die Verlustfunktion only mit den harten Triplets berechnen. Das ist, was ich denke muss ich tun.

Ich habe drei konvolutionelle neuronale Netzwerke mit shared parameters verwendet (vier Faltungslayer mit maximalem Pooling und einem vollständig verbundenen Layer). Ich habe Online-Triplet-Generation noch nicht verwendet, weil ich nicht verstehen kann, wie es gemacht wird. Es ergibt nicht mehr als 70% Genauigkeit.

    
Hello Lili 05.08.2017, 19:48
quelle

0 Antworten