Meta-Lernen & Meta-Lernen & Few-Shot-Lernen 2 || Siamese Network

Der Name ist Twin Neural Network, aber eigentlich gibt es nur ein Netzwerk

Methoden zum Training von Zwillingsnetzwerken (zwei)

Methode 1: Nehmen Sie jeweils zwei Proben und vergleichen Sie deren Ähnlichkeit

Das Training dieses großen neuronalen Netzwerks erfordert einen großen Datensatz und jede Kategorie muss gekennzeichnet sein.

Fügen Sie hier eine Bildbeschreibung ein

  1. Für die Einstellung positiver und negativer Proben werden zwei Bilder aus derselben Klasse platziert und die Beschriftung lautet 1 (vollständige Ähnlichkeit). Es werden zwei Bilder aus unterschiedlichen Klassen aufgenommen und die Beschriftung lautet 0.

    Bild-20220423154057713

  2. Aufbau eines neuronalen Netzwerks

    Bild-20220423154606491

    Das Bild wird nach der Faltung zu einem langen Vektor erweitert

    Bild-20220423154920704

    Hier sind h1 und h2 die Ergebnisse, die von demselben neuronalen Netzwerk erhalten wurden. Nach der Subtraktion wird der Absolutwert erhalten, um Z zu erhalten. Anschließend wird die vollständig verbundene Schicht eingegeben, um 1 Ausgabe zu erhalten. Schließlich wird die Sigmoidfunktion aktiviert, um die Wahrscheinlichkeit zu erhalten.

    损失函数: Die Verlustfunktion kann Kreuzentropie sein

    Das Gleiche gilt für negative Proben: (positive Probenbezeichnung ist 1, negative Probenbezeichnung ist 0)

    Bild-20220423155353947

  3. One-Shot-Vorhersage

    Zuerst müssen SieSupport Set bereitstellen. Beachten Sie, dass das inSupport Set angezeigte Bild nicht im Trainingssatz enthalten ist. Geben Sie dann eine Abfrage an. Die Abfrage sollte a sein eine bestimmte im Support-Set. Klasse, dann werden Abfrage und Support-Set nacheinander verglichen, um die Ähnlichkeit zu berechnen, und das mit der größten Ähnlichkeit wird als Vorhersageergebnis ausgewählt

    Bild-20220423155911992


Methode 2: Triplettverlust
  1. Datenaufbereitung

    Jedes Mal werden drei Bilder aus dem Trainingssatz für das Training ausgewählt, zwei davon gehören zur gleichen Kategorie und das andere zu einer anderen Kategorie. Von den beiden Bildern derselben Kategorie wird eines als Anker und das andere als Anker bezeichnet positiv, und das andere gehört zu verschiedenen Kategorien. Das Bild wird als negativ bezeichnet. Berechnung向量差的二范数的平方

    Bild-20220423161142281

    Hier gilt: Je kleiner d+ ist, desto besser ist es, die gleiche Kategorie anzuzeigen, und je größer d-, ​​desto besser, was auf unterschiedliche Kategorien hinweist.

    Bild-20220423161335783

  2. verlustfunktion

    Bild-20220423161524781

    Wenn der Verlust Null ist: (d-) - (d+) >= α (α ist der von uns festgelegte Hyperparameter), was darauf hinweist, dass das Netzwerk zu diesem Zeitpunkt positive und negative Stichproben unterscheiden kann

    Wenn der Verlust nicht Null ist: Wenn die obige Bedingung (d-) – (d+) >= α nicht erfüllt ist, dann sei Verlust = (d+) + α – (d-). Während des Optimierungsprozesses hoffen wir, dass die Je kleiner der Verlust, desto kleiner der Verlust. Je besser, desto kleiner wird d+ und größer d-, ​​wodurch der Abstand zwischen derselben Probe immer kleiner und der Abstand zwischen verschiedenen Proben immer größer wird größer.

    Bild-20220423162006473

    Bild-20220423162336015

  3. prüfen

    Die endgültige Ausgabe des neuronalen Netzwerks, die durch die obige Methode erhalten wird, ist d+ und d-. Zu diesem Zeitpunkt geben wir eine Abfrage in das Netzwerk ein, um dist zu erhalten, und finden den kleinsten dist.

    Bild-20220423162819232

Guess you like

Origin blog.csdn.net/qq_56039091/article/details/124366037